Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.gypsy;
- import androidx.annotation.NonNull;
- import androidx.appcompat.app.AppCompatActivity;
- import android.app.DatePickerDialog;
- import android.content.Intent;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.View;
- import android.widget.ArrayAdapter;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.NumberPicker;
- import android.widget.Spinner;
- import android.widget.Toast;
- import com.google.firebase.auth.FirebaseAuth;
- import com.google.firebase.auth.FirebaseUser;
- import com.google.firebase.database.DataSnapshot;
- import com.google.firebase.database.DatabaseError;
- import com.google.firebase.database.DatabaseReference;
- import com.google.firebase.database.FirebaseDatabase;
- import com.google.firebase.database.ValueEventListener;
- import java.util.Calendar;
- import java.util.List;
- public class ReserveForm extends AppCompatActivity {
- private EditText fullNameEditText;
- private EditText contactNumberEditText;
- private EditText emailEditText;
- private EditText reservationDateEditText;
- private EditText yourGcashNameResto;
- private EditText yourGcashNumberResto;
- private EditText referenceNumberResto;
- private DatabaseReference databaseReference;
- private Button submitButton;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_reserve_form);
- Intent intent = getIntent();
- String restoId = intent.getStringExtra("restoKey");
- Log.d("ReserveFormActivity", "restoId: " + restoId);
- fullNameEditText = findViewById(R.id.fullNameEditText);
- contactNumberEditText = findViewById(R.id.contactNumberEditText);
- emailEditText = findViewById(R.id.emailEditText);
- reservationDateEditText = findViewById(R.id.reservationDateEditText);
- yourGcashNameResto = findViewById(R.id.yourGcashNameResto);
- yourGcashNumberResto = findViewById(R.id.yourGcashNumberResto);
- referenceNumberResto = findViewById(R.id.referenceNumberResto);
- submitButton = findViewById(R.id.submitButton);
- databaseReference = FirebaseDatabase.getInstance().getReference();
- NumberPicker customersNumberPicker = findViewById(R.id.customersNumberPicker);
- customersNumberPicker.setMinValue(0);
- customersNumberPicker.setMaxValue(10);
- reservationDateEditText.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- showDatePickerDialog(reservationDateEditText);
- }
- });
- submitButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- if (areAllFieldsFilled()) {
- FirebaseUser currentUser = FirebaseAuth.getInstance().getCurrentUser();
- if (currentUser != null) {
- String userId = currentUser.getUid();
- String fullName = fullNameEditText.getText().toString();
- String contactNumber = contactNumberEditText.getText().toString();
- String email = emailEditText.getText().toString();
- int customers = customersNumberPicker.getValue();
- save(userId, restoId, fullName, contactNumber, email, customers,
- yourGcashNameResto.getText().toString(), yourGcashNumberResto.getText().toString(),
- referenceNumberResto.getText().toString());
- Toast.makeText(ReserveForm.this, "Reservation submitted.", Toast.LENGTH_SHORT).show();
- } else {
- Log.e("ReserveForm", "User is not authenticated");
- }
- } else {
- Toast.makeText(ReserveForm.this, "All fields are required.", Toast.LENGTH_SHORT).show();
- }
- }
- });
- }
- private void save(String userId, String restoId, String fullName, String contactNumber, String email, int customers,
- String gcashNameResto, String gcashNumberResto, String referenceNumberResto) {
- FirebaseUser currentUser = FirebaseAuth.getInstance().getCurrentUser();
- if (currentUser != null) {
- String userType = "Tourist";
- String userPath = "users/" + userType + "/" + currentUser.getUid() + "/name";
- DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference();
- DatabaseReference userRef = databaseReference.child(userPath);
- userRef.addListenerForSingleValueEvent(new ValueEventListener() {
- @Override
- public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
- Log.d("ReserveForm", "onDataChange called");
- if (dataSnapshot.exists()) {
- String userName = dataSnapshot.getValue(String.class);
- Log.d("ReserveForm", "Name retrieved: " + userName);
- DatabaseReference restaurantRef = databaseReference.child("restaurants").child(restoId).child("user_id");
- Log.d("BookForm", "restaurantref: " + restaurantRef);
- restaurantRef.addListenerForSingleValueEvent(new ValueEventListener() {
- @Override
- public void onDataChange(@NonNull DataSnapshot restaurantDataSnapshot) {
- if (restaurantDataSnapshot.exists()) {
- String restoUserId = restaurantDataSnapshot.getValue(String.class);
- Log.d("ReserveForm", "restoUserId: " + restoUserId);
- DatabaseReference reservationsRef = databaseReference.child("reservation_info").push();
- String reservationId = reservationsRef.getKey();
- reservationsRef.child("fullName").setValue(fullName);
- reservationsRef.child("contactNumber").setValue(contactNumber);
- reservationsRef.child("email").setValue(email);
- reservationsRef.child("customers").setValue(customers);
- reservationsRef.child("userName").setValue(userName);
- reservationsRef.child("restoUserId").setValue(restoUserId);
- reservationsRef.child("gcashNameResto").setValue(gcashNameResto);
- reservationsRef.child("gcashNumberResto").setValue(gcashNumberResto);
- reservationsRef.child("referenceNumberResto").setValue(referenceNumberResto);
- Log.d("ReservationForm", "Booking data saved");
- }
- }
- @Override
- public void onCancelled(@NonNull DatabaseError databaseError) {
- Log.e("BookForm", "Database error: " + databaseError.getMessage());
- }
- });
- } else {
- Log.e("BookForm", "User is not authenticated");
- }
- }
- @Override
- public void onCancelled(@NonNull DatabaseError databaseError) {
- Log.e("BookForm", "Database error: " + databaseError.getMessage());
- }
- });
- } else {
- Log.e("BookForm", "User is not authenticated");
- }
- }
- private void showDatePickerDialog(final EditText editText) {
- final Calendar calendar = Calendar.getInstance();
- int year = calendar.get(Calendar.YEAR);
- int month = calendar.get(Calendar.MONTH);
- int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
- DatePickerDialog datePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
- @Override
- public void onDateSet(android.widget.DatePicker view, int year, int monthOfYear, int dayOfMonth) {
- String selectedDate = (monthOfYear + 1) + "/" + dayOfMonth + "/" + year;
- editText.setText(selectedDate);
- }
- }, year, month, dayOfMonth);
- datePickerDialog.show();
- }
- private boolean areAllFieldsFilled() {
- return !fullNameEditText.getText().toString().isEmpty() &&
- !contactNumberEditText.getText().toString().isEmpty() &&
- !emailEditText.getText().toString().isEmpty() &&
- !reservationDateEditText.getText().toString().isEmpty() &&
- !yourGcashNameResto.getText().toString().isEmpty() &&
- !yourGcashNumberResto.getText().toString().isEmpty() &&
- !referenceNumberResto.getText().toString().isEmpty();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement