Commit 33466091 authored by Jasa Digital's avatar Jasa Digital

trigger refresh pada menu saat pickup time

parent fd2ad158
import 'package:flutter_bloc/flutter_bloc.dart';
// bloc ini kepaksa dibuat untuk trigger refres di confirmation page, mungkin dibutuhkan juga untuk trigger di tempat lain nantinya
class TriggerRefreshInConfirmationPage extends Cubit<bool> {
TriggerRefreshInConfirmationPage() : super(false);
class TriggerRefresh extends Cubit<bool> {
TriggerRefresh() : super(false);
void trigger(bool status) {
emit(status);
......
......@@ -198,7 +198,7 @@ class _MyAppState extends State<MyApp> {
BlocProvider(create: (_) => AddressUser()),
BlocProvider(create: (_) => ExpandDetailOutlet()),
BlocProvider(create: (_) => ChangeDeliveryPickupBloc()),
BlocProvider(create: (_) => TriggerRefreshInConfirmationPage()),
BlocProvider(create: (_) => TriggerRefresh()),
],
child: MaterialApp(
title: (widget.title == null) ? defaultTitle : widget.title,
......
......@@ -45,7 +45,7 @@ class CoreConfirm extends StatelessWidget {
double widthScreen = responsiveWidthScreen(context);
double widthRowForNote =
MediaQuery.of(context).size.width - 20 - 12 - 80 - 20;
return BlocBuilder<TriggerRefreshInConfirmationPage, bool>(
return BlocBuilder<TriggerRefresh, bool>(
builder: (_, trigger) {
return BlocBuilder<OrdersBloc, List<Orders>>(
builder: (ctx, listOrders) {
......@@ -1050,7 +1050,7 @@ class _VariantOrderState extends State<VariantOrder> {
};
context.read<OrdersBloc>().insertData(insertData);
context
.read<TriggerRefreshInConfirmationPage>()
.read<TriggerRefresh>()
.trigger(!widget.trigger);
// setState(() {});
},
......@@ -1102,7 +1102,7 @@ class _VariantOrderState extends State<VariantOrder> {
};
context.read<OrdersBloc>().insertData(insertData);
context
.read<TriggerRefreshInConfirmationPage>()
.read<TriggerRefresh>()
.trigger(!widget.trigger);
// setState(() {});
},
......
......@@ -25,6 +25,7 @@ import '../../bloc/branch_exist.dart';
import '../../bloc/change_delivery_pickup.dart';
import '../../bloc/feedback_option.dart';
import '../../bloc/outlet_detail.dart';
import '../../bloc/trigger_refresh_in_confirmation_page.dart';
import '../../bloc/view_bill.dart';
import '../../bloc/voucher_list.dart';
import '../../helper/logger.dart';
......@@ -1807,21 +1808,25 @@ class DeliveryPickupDetail extends StatelessWidget {
const SizedBox(
height: 5,
),
Row(
children: [
defaultText(
context,
"Pickup: ",
maxLines: 1,
overFlow: TextOverflow.ellipsis,
),
defaultText(
context,
getPickupTime(),
maxLines: 1,
overFlow: TextOverflow.ellipsis,
),
],
BlocBuilder<TriggerRefresh, bool>(
builder: (_, trigger) {
return Row(
children: [
defaultText(
context,
"Pickup: ",
maxLines: 1,
overFlow: TextOverflow.ellipsis,
),
defaultText(
context,
getPickupTime(),
maxLines: 1,
overFlow: TextOverflow.ellipsis,
),
],
);
},
),
const SizedBox(
height: 5,
......@@ -1832,133 +1837,139 @@ class DeliveryPickupDetail extends StatelessWidget {
width: 12,
),
const Spacer(),
Column(
children: [
changeOutlet(context),
const SizedBox(
height: 5,
),
GestureDetector(
onTap: () {
showTimePicker(
context: context,
initialTime: timeOfDayPickup,
).then((value) {
if (value == null) {
return;
} else {
void ontapClose() {
Navigator.pop(context);
}
BlocBuilder<TriggerRefresh, bool>(
builder: (_, trigger) {
return Column(
children: [
changeOutlet(context),
const SizedBox(
height: 5,
),
GestureDetector(
onTap: () {
showTimePicker(
context: context,
initialTime: timeOfDayPickup,
).then((value) {
if (value == null) {
return;
} else {
void ontapClose() {
Navigator.pop(context);
}
String closeOutlet = getCloseTime();
String hourClose = closeOutlet.split(':')[0];
String minuteClose = closeOutlet.split(':')[1];
String openOutlet = getOpenTime();
String hourOpen = openOutlet.split(':')[0];
String minuteOpen = openOutlet.split(':')[1];
// TimeOfDay timeClose = TimeOfDay(
// hour: int.parse(hourClose),
// minute: int.parse(minuteClose),
// );
var now = DateTime.now().toLocal();
var dateNow = DateFormat('yyyy-MM-dd').format(now);
String dateTimeCloseOutletString =
"$dateNow $hourClose:$minuteClose:00";
String dateTimeOpenOutletString =
"$dateNow $hourOpen:$minuteOpen:00";
DateTime dateTimeCloseOutlet =
DateTime.parse(dateTimeCloseOutletString);
DateTime dateTimeOpenOutlet =
DateTime.parse(dateTimeOpenOutletString);
DateTime dateSelectedPickupTime = DateTime(
now.year, now.month, now.day, value.hour, value.minute);
final differenceClose =
dateTimeCloseOutlet.difference(dateSelectedPickupTime);
final differenceOpen =
dateSelectedPickupTime.difference(dateTimeOpenOutlet);
final differenceFromNow =
dateSelectedPickupTime.difference(now);
if (differenceFromNow.inMinutes < 0) {
buttonDialogGlobal(
context,
'Informasi',
'Pickup time tidak dapat dipilih pada waktu yang sudah berlalu',
'OK',
'Close',
ontapClose,
ontapClose,
isOkeButtonShow: false,
);
return;
}
if (differenceClose.inMinutes < 59) {
buttonDialogGlobal(
context,
'Informasi',
'Pickup Hanya Bisa Dilakukan 1 Jam sebelum outlet tutup',
'OK',
'Close',
ontapClose,
ontapClose,
isOkeButtonShow: false,
);
return;
}
String closeOutlet = getCloseTime();
String hourClose = closeOutlet.split(':')[0];
String minuteClose = closeOutlet.split(':')[1];
String openOutlet = getOpenTime();
String hourOpen = openOutlet.split(':')[0];
String minuteOpen = openOutlet.split(':')[1];
// TimeOfDay timeClose = TimeOfDay(
// hour: int.parse(hourClose),
// minute: int.parse(minuteClose),
// );
var now = DateTime.now().toLocal();
var dateNow = DateFormat('yyyy-MM-dd').format(now);
String dateTimeCloseOutletString =
"$dateNow $hourClose:$minuteClose:00";
String dateTimeOpenOutletString =
"$dateNow $hourOpen:$minuteOpen:00";
DateTime dateTimeCloseOutlet =
DateTime.parse(dateTimeCloseOutletString);
DateTime dateTimeOpenOutlet =
DateTime.parse(dateTimeOpenOutletString);
DateTime dateSelectedPickupTime = DateTime(now.year,
now.month, now.day, value.hour, value.minute);
final differenceClose = dateTimeCloseOutlet
.difference(dateSelectedPickupTime);
final differenceOpen = dateSelectedPickupTime
.difference(dateTimeOpenOutlet);
final differenceFromNow =
dateSelectedPickupTime.difference(now);
if (differenceFromNow.inMinutes < 0) {
buttonDialogGlobal(
context,
'Informasi',
'Pickup time tidak dapat dipilih pada waktu yang sudah berlalu',
'OK',
'Close',
ontapClose,
ontapClose,
isOkeButtonShow: false,
);
return;
}
if (differenceClose.inMinutes < 59) {
buttonDialogGlobal(
context,
'Informasi',
'Pickup Hanya Bisa Dilakukan 1 Jam sebelum outlet tutup',
'OK',
'Close',
ontapClose,
ontapClose,
isOkeButtonShow: false,
);
return;
}
if (differenceOpen.inMinutes < 0) {
buttonDialogGlobal(
if (differenceOpen.inMinutes < 0) {
buttonDialogGlobal(
context,
'Informasi',
'Pickup Hanya Bisa Dilakukan Setelah Outlet Buka',
'OK',
'Close',
ontapClose,
ontapClose,
isOkeButtonShow: false,
);
return;
}
// String timeToset = value.format(context);
final hourString =
value.hour.toString().padLeft(2, '0');
final minuteString =
value.minute.toString().padLeft(2, '0');
// String amPM = timeToset.split(' ')[1];
String setPickup = "$hourString:$minuteString";
setPickupTime(setPickup);
context.read<TriggerRefresh>().trigger(!trigger);
context.read<ViewBillBloc>().getBill();
}
});
// ketika user click OK
},
child: Container(
width: 98,
height: 30,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(40),
color: (isFromMenu) ? backgroundColor : backgroundWhite,
border: Border.all(
color: buttonColor,
),
),
child: Center(
child: defaultText(
context,
'Informasi',
'Pickup Hanya Bisa Dilakukan Setelah Outlet Buka',
'OK',
'Close',
ontapClose,
ontapClose,
isOkeButtonShow: false,
);
return;
}
// String timeToset = value.format(context);
final hourString = value.hour.toString().padLeft(2, '0');
final minuteString =
value.minute.toString().padLeft(2, '0');
// String amPM = timeToset.split(' ')[1];
String setPickup = "$hourString:$minuteString";
setPickupTime(setPickup);
context.read<ViewBillBloc>().getBill();
}
});
// ketika user click OK
},
child: Container(
width: 98,
height: 30,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(40),
color: (isFromMenu) ? backgroundColor : backgroundWhite,
border: Border.all(
color: buttonColor,
),
),
child: Center(
child: defaultText(
context,
'Pickup Time',
style: addButton(
font: 8,
color: buttonColor,
'Pickup Time',
style: addButton(
font: 8,
color: buttonColor,
),
),
),
),
),
),
),
const SizedBox(
height: 5,
),
detailOutlet(context),
],
const SizedBox(
height: 5,
),
detailOutlet(context),
],
);
},
)
],
);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment