Advertisement
kitlolz012

reserveformJAVA(no photo attachment)

Oct 6th, 2023
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 9.09 KB | Source Code | 0 0
  1. package com.example.gypsy;
  2.  
  3. import androidx.annotation.NonNull;
  4. import androidx.appcompat.app.AppCompatActivity;
  5.  
  6. import android.app.DatePickerDialog;
  7. import android.content.Intent;
  8. import android.os.Bundle;
  9. import android.util.Log;
  10. import android.view.View;
  11. import android.widget.ArrayAdapter;
  12. import android.widget.Button;
  13. import android.widget.EditText;
  14. import android.widget.NumberPicker;
  15. import android.widget.Spinner;
  16. import android.widget.Toast;
  17.  
  18. import com.google.firebase.auth.FirebaseAuth;
  19. import com.google.firebase.auth.FirebaseUser;
  20. import com.google.firebase.database.DataSnapshot;
  21. import com.google.firebase.database.DatabaseError;
  22. import com.google.firebase.database.DatabaseReference;
  23. import com.google.firebase.database.FirebaseDatabase;
  24. import com.google.firebase.database.ValueEventListener;
  25.  
  26. import java.util.Calendar;
  27. import java.util.List;
  28.  
  29. public class ReserveForm extends AppCompatActivity {
  30.  
  31.     private EditText fullNameEditText;
  32.     private EditText contactNumberEditText;
  33.     private EditText emailEditText;
  34.     private EditText reservationDateEditText;
  35.     private EditText yourGcashNameResto;
  36.     private EditText yourGcashNumberResto;
  37.     private EditText referenceNumberResto;
  38.     private DatabaseReference databaseReference;
  39.     private Button submitButton;
  40.  
  41.     @Override
  42.     protected void onCreate(Bundle savedInstanceState) {
  43.         super.onCreate(savedInstanceState);
  44.         setContentView(R.layout.activity_reserve_form);
  45.  
  46.         Intent intent = getIntent();
  47.         String restoId = intent.getStringExtra("restoKey");
  48.         Log.d("ReserveFormActivity", "restoId: " + restoId);
  49.  
  50.         fullNameEditText = findViewById(R.id.fullNameEditText);
  51.         contactNumberEditText = findViewById(R.id.contactNumberEditText);
  52.         emailEditText = findViewById(R.id.emailEditText);
  53.         reservationDateEditText = findViewById(R.id.reservationDateEditText);
  54.         yourGcashNameResto = findViewById(R.id.yourGcashNameResto);
  55.         yourGcashNumberResto = findViewById(R.id.yourGcashNumberResto);
  56.         referenceNumberResto = findViewById(R.id.referenceNumberResto);
  57.         submitButton = findViewById(R.id.submitButton);
  58.         databaseReference = FirebaseDatabase.getInstance().getReference();
  59.         NumberPicker customersNumberPicker = findViewById(R.id.customersNumberPicker);
  60.         customersNumberPicker.setMinValue(0);
  61.         customersNumberPicker.setMaxValue(10);
  62.  
  63.         reservationDateEditText.setOnClickListener(new View.OnClickListener() {
  64.             @Override
  65.             public void onClick(View v) {
  66.                 showDatePickerDialog(reservationDateEditText);
  67.             }
  68.         });
  69.  
  70.         submitButton.setOnClickListener(new View.OnClickListener() {
  71.             @Override
  72.             public void onClick(View v) {
  73.                 if (areAllFieldsFilled()) {
  74.                     FirebaseUser currentUser = FirebaseAuth.getInstance().getCurrentUser();
  75.                     if (currentUser != null) {
  76.  
  77.                         String userId = currentUser.getUid();
  78.                         String fullName = fullNameEditText.getText().toString();
  79.                         String contactNumber = contactNumberEditText.getText().toString();
  80.                         String email = emailEditText.getText().toString();
  81.                         int customers = customersNumberPicker.getValue();
  82.  
  83.                         save(userId, restoId, fullName, contactNumber, email, customers,
  84.                              yourGcashNameResto.getText().toString(), yourGcashNumberResto.getText().toString(),
  85.                              referenceNumberResto.getText().toString());
  86.  
  87.                         Toast.makeText(ReserveForm.this, "Reservation submitted.", Toast.LENGTH_SHORT).show();
  88.  
  89.                     } else {
  90.                         Log.e("ReserveForm", "User is not authenticated");
  91.                     }
  92.                 } else {
  93.                     Toast.makeText(ReserveForm.this, "All fields are required.", Toast.LENGTH_SHORT).show();
  94.                 }
  95.             }
  96.         });
  97.     }
  98.  
  99.     private void save(String userId, String restoId, String fullName, String contactNumber, String email, int customers,
  100.                       String gcashNameResto, String gcashNumberResto, String referenceNumberResto) {
  101.         FirebaseUser currentUser = FirebaseAuth.getInstance().getCurrentUser();
  102.  
  103.         if (currentUser != null) {
  104.             String userType = "Tourist";
  105.             String userPath = "users/" + userType + "/" + currentUser.getUid() + "/name";
  106.             DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference();
  107.             DatabaseReference userRef = databaseReference.child(userPath);
  108.             userRef.addListenerForSingleValueEvent(new ValueEventListener() {
  109.                 @Override
  110.                 public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
  111.                     Log.d("ReserveForm", "onDataChange called");
  112.                     if (dataSnapshot.exists()) {
  113.                         String userName = dataSnapshot.getValue(String.class);
  114.                         Log.d("ReserveForm", "Name retrieved: " + userName);
  115.  
  116.                         DatabaseReference restaurantRef = databaseReference.child("restaurants").child(restoId).child("user_id");
  117.                         Log.d("BookForm", "restaurantref: " + restaurantRef);
  118.                         restaurantRef.addListenerForSingleValueEvent(new ValueEventListener() {
  119.                             @Override
  120.                             public void onDataChange(@NonNull DataSnapshot restaurantDataSnapshot) {
  121.                                 if (restaurantDataSnapshot.exists()) {
  122.                                     String restoUserId = restaurantDataSnapshot.getValue(String.class);
  123.                                     Log.d("ReserveForm", "restoUserId: " + restoUserId);
  124.  
  125.                                     DatabaseReference reservationsRef = databaseReference.child("reservation_info").push();
  126.                                     String reservationId = reservationsRef.getKey();
  127.  
  128.                                     reservationsRef.child("fullName").setValue(fullName);
  129.                                     reservationsRef.child("contactNumber").setValue(contactNumber);
  130.                                     reservationsRef.child("email").setValue(email);
  131.                                     reservationsRef.child("customers").setValue(customers);
  132.                                     reservationsRef.child("userName").setValue(userName);
  133.                                     reservationsRef.child("restoUserId").setValue(restoUserId);
  134.                                     reservationsRef.child("gcashNameResto").setValue(gcashNameResto);
  135.                                     reservationsRef.child("gcashNumberResto").setValue(gcashNumberResto);
  136.                                     reservationsRef.child("referenceNumberResto").setValue(referenceNumberResto);
  137.  
  138.                                     Log.d("ReservationForm", "Booking data saved");
  139.                                 }
  140.                             }
  141.  
  142.                             @Override
  143.                             public void onCancelled(@NonNull DatabaseError databaseError) {
  144.                                 Log.e("BookForm", "Database error: " + databaseError.getMessage());
  145.                             }
  146.                         });
  147.                     } else {
  148.                         Log.e("BookForm", "User is not authenticated");
  149.                     }
  150.                 }
  151.  
  152.                 @Override
  153.                 public void onCancelled(@NonNull DatabaseError databaseError) {
  154.                     Log.e("BookForm", "Database error: " + databaseError.getMessage());
  155.                 }
  156.             });
  157.         } else {
  158.             Log.e("BookForm", "User is not authenticated");
  159.         }
  160.     }
  161.  
  162.     private void showDatePickerDialog(final EditText editText) {
  163.         final Calendar calendar = Calendar.getInstance();
  164.         int year = calendar.get(Calendar.YEAR);
  165.         int month = calendar.get(Calendar.MONTH);
  166.         int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
  167.  
  168.         DatePickerDialog datePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
  169.             @Override
  170.             public void onDateSet(android.widget.DatePicker view, int year, int monthOfYear, int dayOfMonth) {
  171.                 String selectedDate = (monthOfYear + 1) + "/" + dayOfMonth + "/" + year;
  172.                 editText.setText(selectedDate);
  173.             }
  174.         }, year, month, dayOfMonth);
  175.  
  176.         datePickerDialog.show();
  177.     }
  178.  
  179.     private boolean areAllFieldsFilled() {
  180.     return !fullNameEditText.getText().toString().isEmpty() &&
  181.             !contactNumberEditText.getText().toString().isEmpty() &&
  182.             !emailEditText.getText().toString().isEmpty() &&
  183.             !reservationDateEditText.getText().toString().isEmpty() &&
  184.             !yourGcashNameResto.getText().toString().isEmpty() &&
  185.             !yourGcashNumberResto.getText().toString().isEmpty() &&
  186.             !referenceNumberResto.getText().toString().isEmpty();
  187.     }
  188. }
  189.  
Tags: Android
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement