BASE: Update Icons & Name Of The App.

This commit is contained in:
2025-12-04 10:23:59 +05:00
parent b04050384d
commit e602782edd
228 changed files with 34364 additions and 7905 deletions

View File

@@ -8,16 +8,18 @@ import 'package:easy_localization/easy_localization.dart';
import '../screen_ui/multi_vendor_service/dine_in_booking/dine_in_booking_screen.dart';
import '../service/fire_store_utils.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:get/get.dart' hide Trans;
import 'package:intl/intl.dart';
import '../service/send_notification.dart';
import '../themes/show_toast_dialog.dart';
class DineInRestaurantDetailsController extends GetxController {
Rx<TextEditingController> searchEditingController = TextEditingController().obs;
Rx<TextEditingController> searchEditingController =
TextEditingController().obs;
Rx<TextEditingController> additionRequestController = TextEditingController().obs;
Rx<TextEditingController> additionRequestController =
TextEditingController().obs;
RxBool isLoading = true.obs;
RxBool firstVisit = false.obs;
@@ -42,6 +44,7 @@ class DineInRestaurantDetailsController extends GetxController {
return key;
}
}
RxString selectedOccasion = "".obs;
RxList<DateModel> dateList = <DateModel>[].obs;
@@ -65,30 +68,53 @@ class DineInRestaurantDetailsController extends GetxController {
ShowToastDialog.showLoader("Please wait...".tr());
DateTime dt = selectedDate.value.toDate();
String hour = DateFormat("kk:mm").format(DateFormat('hh:mm a').parse((Intl.getCurrentLocale() == "en_US") ? selectedTimeSlot.value : selectedTimeSlot.value.toLowerCase()));
dt = DateTime(dt.year, dt.month, dt.day, int.parse(hour.split(":")[0]), int.parse(hour.split(":")[1]), dt.second, dt.millisecond, dt.microsecond);
String hour = DateFormat("kk:mm").format(
DateFormat('hh:mm a').parse(
(Intl.getCurrentLocale() == "en_US")
? selectedTimeSlot.value
: selectedTimeSlot.value.toLowerCase(),
),
);
dt = DateTime(
dt.year,
dt.month,
dt.day,
int.parse(hour.split(":")[0]),
int.parse(hour.split(":")[1]),
dt.second,
dt.millisecond,
dt.microsecond,
);
selectedDate.value = Timestamp.fromDate(dt);
DineInBookingModel dineInBookingModel = DineInBookingModel(
id: Constant.getUuid(),
author: Constant.userModel,
authorID: FireStoreUtils.getCurrentUid(),
createdAt: Timestamp.now(),
date: selectedDate.value,
status: Constant.orderPlaced,
vendor: vendorModel.value,
specialRequest: additionRequestController.value.text.isEmpty ? "" : additionRequestController.value.text,
vendorID: vendorModel.value.id,
guestEmail: Constant.userModel!.email,
guestFirstName: Constant.userModel!.firstName,
guestLastName: Constant.userModel!.lastName,
guestPhone: Constant.userModel!.phoneNumber,
occasion: selectedOccasion.value,
discount: selectedTimeDiscount.value,
discountType: selectedTimeDiscountType.value,
totalGuest: noOfQuantity.value.toString(),
firstVisit: firstVisit.value);
id: Constant.getUuid(),
author: Constant.userModel,
authorID: FireStoreUtils.getCurrentUid(),
createdAt: Timestamp.now(),
date: selectedDate.value,
status: Constant.orderPlaced,
vendor: vendorModel.value,
specialRequest:
additionRequestController.value.text.isEmpty
? ""
: additionRequestController.value.text,
vendorID: vendorModel.value.id,
guestEmail: Constant.userModel!.email,
guestFirstName: Constant.userModel!.firstName,
guestLastName: Constant.userModel!.lastName,
guestPhone: Constant.userModel!.phoneNumber,
occasion: selectedOccasion.value,
discount: selectedTimeDiscount.value,
discountType: selectedTimeDiscountType.value,
totalGuest: noOfQuantity.value.toString(),
firstVisit: firstVisit.value,
);
await FireStoreUtils.setBookedOrder(dineInBookingModel);
await SendNotification.sendFcmMessage(Constant.dineInPlaced, vendorModel.value.fcmToken.toString(), {});
await SendNotification.sendFcmMessage(
Constant.dineInPlaced,
vendorModel.value.fcmToken.toString(),
{},
);
ShowToastDialog.closeLoader();
Get.back();
Get.to(const DineInBookingScreen());
@@ -99,27 +125,46 @@ class DineInRestaurantDetailsController extends GetxController {
for (int i = 0; i < 7; i++) {
final now = DateTime.now().add(Duration(days: i));
var day = DateFormat('EEEE').format(now);
if (vendorModel.value.specialDiscount?.isNotEmpty == true && vendorModel.value.specialDiscountEnable == true) {
if (vendorModel.value.specialDiscount?.isNotEmpty == true &&
vendorModel.value.specialDiscountEnable == true) {
for (var element in vendorModel.value.specialDiscount!) {
if (day == element.day.toString()) {
if (element.timeslot!.isNotEmpty) {
SpecialDiscountTimeslot employeeWithMaxSalary =
element.timeslot!.reduce((item1, item2) => double.parse(item1.discount.toString()) > double.parse(item2.discount.toString()) ? item1 : item2);
SpecialDiscountTimeslot employeeWithMaxSalary = element.timeslot!
.reduce(
(item1, item2) =>
double.parse(item1.discount.toString()) >
double.parse(item2.discount.toString())
? item1
: item2,
);
if (employeeWithMaxSalary.discountType == "dinein") {
DateModel model = DateModel(date: Timestamp.fromDate(now), discountPer: employeeWithMaxSalary.discount.toString());
DateModel model = DateModel(
date: Timestamp.fromDate(now),
discountPer: employeeWithMaxSalary.discount.toString(),
);
dateList.add(model);
} else {
DateModel model = DateModel(date: Timestamp.fromDate(now), discountPer: "0");
DateModel model = DateModel(
date: Timestamp.fromDate(now),
discountPer: "0",
);
dateList.add(model);
}
} else {
DateModel model = DateModel(date: Timestamp.fromDate(now), discountPer: "0");
DateModel model = DateModel(
date: Timestamp.fromDate(now),
discountPer: "0",
);
dateList.add(model);
}
}
}
} else {
DateModel model = DateModel(date: Timestamp.fromDate(now), discountPer: "0");
DateModel model = DateModel(
date: Timestamp.fromDate(now),
discountPer: "0",
);
dateList.add(model);
}
}
@@ -127,70 +172,116 @@ class DineInRestaurantDetailsController extends GetxController {
timeSet(selectedDate.value);
if (timeSlotList.isNotEmpty) {
selectedTimeSlot.value = DateFormat('hh:mm a').format(timeSlotList[0].time!);
selectedTimeSlot.value = DateFormat(
'hh:mm a',
).format(timeSlotList[0].time!);
}
}
void timeSet(Timestamp selectedDate) {
timeSlotList.clear();
for (DateTime time = Constant.stringToDate(vendorModel.value.openDineTime.toString());
time.isBefore(Constant.stringToDate(vendorModel.value.closeDineTime.toString()));
time = time.add(const Duration(minutes: 30))) {
for (
DateTime time = Constant.stringToDate(
vendorModel.value.openDineTime.toString(),
);
time.isBefore(
Constant.stringToDate(vendorModel.value.closeDineTime.toString()),
);
time = time.add(const Duration(minutes: 30))
) {
final now = DateTime.parse(selectedDate.toDate().toString());
var day = DateFormat('EEEE').format(now);
var date = DateFormat('dd-MM-yyyy').format(now);
if (vendorModel.value.specialDiscount?.isNotEmpty == true && vendorModel.value.specialDiscountEnable == true) {
if (vendorModel.value.specialDiscount?.isNotEmpty == true &&
vendorModel.value.specialDiscountEnable == true) {
for (var element in vendorModel.value.specialDiscount!) {
if (day == element.day.toString()) {
if (element.timeslot!.isNotEmpty) {
for (var element in element.timeslot!) {
if (element.discountType == "dinein") {
var start = DateFormat("dd-MM-yyyy HH:mm").parse("$date ${element.from}");
var end = DateFormat("dd-MM-yyyy HH:mm").parse("$date ${element.to}");
var selected = DateFormat("dd-MM-yyyy HH:mm").parse("$date ${DateFormat.Hm().format(time)}");
var start = DateFormat(
"dd-MM-yyyy HH:mm",
).parse("$date ${element.from}");
var end = DateFormat(
"dd-MM-yyyy HH:mm",
).parse("$date ${element.to}");
var selected = DateFormat(
"dd-MM-yyyy HH:mm",
).parse("$date ${DateFormat.Hm().format(time)}");
if (isCurrentDateInRangeDineIn(start, end, selected)) {
var contains = timeSlotList.where((element) => element.time == time);
var contains = timeSlotList.where(
(element) => element.time == time,
);
if (contains.isNotEmpty) {
var index = timeSlotList.indexWhere((element) => element.time == time);
var index = timeSlotList.indexWhere(
(element) => element.time == time,
);
if (timeSlotList[index].discountPer == "0") {
timeSlotList.removeAt(index);
TimeModel model = TimeModel(time: time, discountPer: element.discount, discountType: element.type);
TimeModel model = TimeModel(
time: time,
discountPer: element.discount,
discountType: element.type,
);
timeSlotList.insert(index == 0 ? 0 : index, model);
}
} else {
TimeModel model = TimeModel(time: time, discountPer: element.discount, discountType: element.type);
TimeModel model = TimeModel(
time: time,
discountPer: element.discount,
discountType: element.type,
);
timeSlotList.add(model);
}
} else {
var contains = timeSlotList.where((element) => element.time == time);
var contains = timeSlotList.where(
(element) => element.time == time,
);
if (contains.isEmpty) {
TimeModel model = TimeModel(time: time, discountPer: "0", discountType: "amount");
TimeModel model = TimeModel(
time: time,
discountPer: "0",
discountType: "amount",
);
timeSlotList.add(model);
}
}
} else {
TimeModel model = TimeModel(time: time, discountPer: "0", discountType: "amount");
TimeModel model = TimeModel(
time: time,
discountPer: "0",
discountType: "amount",
);
timeSlotList.add(model);
}
}
} else {
TimeModel model = TimeModel(time: time, discountPer: "0", discountType: "amount");
TimeModel model = TimeModel(
time: time,
discountPer: "0",
discountType: "amount",
);
timeSlotList.add(model);
}
}
}
} else {
TimeModel model = TimeModel(time: time, discountPer: "0", discountType: "amount");
TimeModel model = TimeModel(
time: time,
discountPer: "0",
discountType: "amount",
);
timeSlotList.add(model);
}
}
}
void animateSlider() {
if (vendorModel.value.photos != null && vendorModel.value.photos!.isNotEmpty) {
if (vendorModel.value.photos != null &&
vendorModel.value.photos!.isNotEmpty) {
Timer.periodic(const Duration(seconds: 2), (Timer timer) {
if (currentPage < vendorModel.value.photos!.length) {
currentPage++;
@@ -226,18 +317,16 @@ class DineInRestaurantDetailsController extends GetxController {
Future<void> getFavouriteList() async {
if (Constant.userModel != null) {
await FireStoreUtils.getFavouriteRestaurant().then(
(value) {
favouriteList.value = value;
},
);
await FireStoreUtils.getFavouriteRestaurant().then((value) {
favouriteList.value = value;
});
}
await FireStoreUtils.getVendorCuisines(vendorModel.value.id.toString()).then(
(value) {
tags.value = value;
},
);
await FireStoreUtils.getVendorCuisines(
vendorModel.value.id.toString(),
).then((value) {
tags.value = value;
});
update();
}
@@ -251,8 +340,12 @@ class DineInRestaurantDetailsController extends GetxController {
if (day == element.day.toString()) {
if (element.timeslot!.isNotEmpty) {
for (var element in element.timeslot!) {
var start = DateFormat("dd-MM-yyyy HH:mm").parse("$date ${element.from}");
var end = DateFormat("dd-MM-yyyy HH:mm").parse("$date ${element.to}");
var start = DateFormat(
"dd-MM-yyyy HH:mm",
).parse("$date ${element.from}");
var end = DateFormat(
"dd-MM-yyyy HH:mm",
).parse("$date ${element.to}");
if (isCurrentDateInRange(start, end)) {
isOpen.value = true;
}
@@ -262,8 +355,14 @@ class DineInRestaurantDetailsController extends GetxController {
}
}
bool isCurrentDateInRangeDineIn(DateTime startDate, DateTime endDate, DateTime selected) {
return selected.isAtSameMomentAs(startDate) || selected.isAtSameMomentAs(endDate) || selected.isAfter(startDate) && selected.isBefore(endDate);
bool isCurrentDateInRangeDineIn(
DateTime startDate,
DateTime endDate,
DateTime selected,
) {
return selected.isAtSameMomentAs(startDate) ||
selected.isAtSameMomentAs(endDate) ||
selected.isAfter(startDate) && selected.isBefore(endDate);
}
bool isCurrentDateInRange(DateTime startDate, DateTime endDate) {
@@ -284,5 +383,9 @@ class TimeModel {
String? discountPer;
String? discountType;
TimeModel({required this.time, required this.discountPer, required this.discountType});
TimeModel({
required this.time,
required this.discountPer,
required this.discountType,
});
}