Commit e92aa2ba authored by Jasa Digital's avatar Jasa Digital

02/11/22

parent 1d782096
...@@ -14,6 +14,7 @@ import 'package:byod/models/filter_menu.dart'; ...@@ -14,6 +14,7 @@ import 'package:byod/models/filter_menu.dart';
import 'package:byod/models/member_info.dart'; import 'package:byod/models/member_info.dart';
import 'package:byod/models/payment_list.dart'; import 'package:byod/models/payment_list.dart';
import 'package:byod/models/voucher_list.dart'; import 'package:byod/models/voucher_list.dart';
import 'package:byod/ui/home/new_home2.dart';
import 'package:byod/ui/viewbill/view_bill_new.dart'; import 'package:byod/ui/viewbill/view_bill_new.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_bloc/flutter_bloc.dart';
...@@ -1020,6 +1021,9 @@ class Api { ...@@ -1020,6 +1021,9 @@ class Api {
jsonObject['data']['rdm_staff_courier_name'] ?? "", jsonObject['data']['rdm_staff_courier_name'] ?? "",
"rdm_staff_courier_mobile": "rdm_staff_courier_mobile":
jsonObject['data']['rdm_staff_courier_mobile'] ?? "", jsonObject['data']['rdm_staff_courier_mobile'] ?? "",
"branch_name": jsonObject['data']['branch_name'],
"type": jsonObject['data']['type'],
"payment_mode": jsonObject['data']['payment_mode'],
}; };
if (jsonObject['data']['type'] == typeOrderDelivery) { if (jsonObject['data']['type'] == typeOrderDelivery) {
...@@ -1483,10 +1487,17 @@ class Api { ...@@ -1483,10 +1487,17 @@ class Api {
// MaterialPageRoute( // MaterialPageRoute(
// builder: (_) => FinishOrder(pinOrder: jsonObject['pin']))); // builder: (_) => FinishOrder(pinOrder: jsonObject['pin'])));
context.read<OrdersBloc>().clearOrder(); context.read<OrdersBloc>().clearOrder();
if (getPaymentMode() == openBill) {
Navigator.pushAndRemoveUntil(
context,
MaterialPageRoute(builder: (_) => const NewHome2()),
(route) => false);
} else {
Navigator.pushAndRemoveUntil( Navigator.pushAndRemoveUntil(
context, context,
MaterialPageRoute(builder: (_) => const ViewBillNew()), MaterialPageRoute(builder: (_) => const ViewBillNew()),
(route) => false); (route) => false);
}
} else if (jsonObject['code'] == 'ORDER_LOCK') { } else if (jsonObject['code'] == 'ORDER_LOCK') {
await EasyLoading.dismiss(); await EasyLoading.dismiss();
EasyLoading.showToast(jsonObject['msg']); EasyLoading.showToast(jsonObject['msg']);
...@@ -2156,12 +2167,16 @@ class Api { ...@@ -2156,12 +2167,16 @@ class Api {
if (jsonObject != false) { if (jsonObject != false) {
if (jsonObject['status'].toString().toLowerCase() == 'ok') { if (jsonObject['status'].toString().toLowerCase() == 'ok') {
setBranch(newBranch); setBranch(newBranch);
setBranchName(jsonObject['data']['code']); setBranchName(jsonObject['data']['name']);
setLatOutlet(jsonObject['data']['lat']); setLatOutlet(jsonObject['data']['lat']);
setLongOutlet(jsonObject['data']['long']); setLongOutlet(jsonObject['data']['long']);
setOpenTime(jsonObject['data']['open_time']); setOpenTime(jsonObject['data']['open_time']);
setCloseTime(jsonObject['data']['close_time']); setCloseTime(jsonObject['data']['close_time']);
setServiceRadius(jsonObject['data']['service_radius']); setServiceRadius(jsonObject['data']['service_radius']);
setAddressOutlet(jsonObject['data']['address']);
setIsDelivery(jsonObject['data']['is_delivery']);
setIsPickup(jsonObject['data']['is_pickup']);
setPhoneOutlet(jsonObject['data']['mobile']);
} }
Map<String, dynamic> returnResult = { Map<String, dynamic> returnResult = {
"status": jsonObject['status'], "status": jsonObject['status'],
...@@ -2196,8 +2211,6 @@ class Api { ...@@ -2196,8 +2211,6 @@ class Api {
String baseUrl = getBaseUrl(); String baseUrl = getBaseUrl();
String apiUrl = "$baseUrl${endPointRdm}get_address/"; String apiUrl = "$baseUrl${endPointRdm}get_address/";
String sessionId = getSessionId();
Address defaultResult = Address( Address defaultResult = Address(
id: '', id: '',
label: '', label: '',
...@@ -2209,6 +2222,7 @@ class Api { ...@@ -2209,6 +2222,7 @@ class Api {
recepientPhone: '', recepientPhone: '',
notes: '', notes: '',
); );
String sessionId = getSessionId();
try { try {
Map data = { Map data = {
"session_id": sessionId, "session_id": sessionId,
......
...@@ -80,6 +80,18 @@ String getOrderStatus(int status) { ...@@ -80,6 +80,18 @@ String getOrderStatus(int status) {
} }
} }
String typeOrderString(int typeOrder) {
if (typeOrder == typeOrderDineIn) {
return 'Dine In';
} else if (typeOrder == typeOrderDelivery) {
return 'Delivery';
} else if (typeOrder == typeOrderPickup) {
return 'Pickup';
} else {
return 'Unknown';
}
}
Color getOrderStatusColor(int status) { Color getOrderStatusColor(int status) {
if (status == completeOrder) { if (status == completeOrder) {
return successColor; return successColor;
...@@ -185,7 +197,7 @@ String formatDate(String timeString, {toLocal = false}) { ...@@ -185,7 +197,7 @@ String formatDate(String timeString, {toLocal = false}) {
} }
void setIsCanChangeDeliveryPickupFunc(int orderState) { void setIsCanChangeDeliveryPickupFunc(int orderState) {
if (orderState >= orderStatePaid) { if (orderState >= orderStatePending) {
setIsCanChangeDeliveryPickup(false); setIsCanChangeDeliveryPickup(false);
} else { } else {
setIsCanChangeDeliveryPickup(true); setIsCanChangeDeliveryPickup(true);
......
...@@ -201,7 +201,7 @@ class EmoticonRateNew extends StatelessWidget { ...@@ -201,7 +201,7 @@ class EmoticonRateNew extends StatelessWidget {
controller: rateNote, controller: rateNote,
maxLength: maxLengthTextField, maxLength: maxLengthTextField,
decoration: const InputDecoration( decoration: const InputDecoration(
labelText: 'Beri Masukan', labelText: 'Beri Penilaian',
labelStyle: TextStyle( labelStyle: TextStyle(
fontFamily: 'OpenSans', fontFamily: 'OpenSans',
fontSize: 12, fontSize: 12,
...@@ -280,7 +280,7 @@ class EmoticonRateNew extends StatelessWidget { ...@@ -280,7 +280,7 @@ class EmoticonRateNew extends StatelessWidget {
child: Center( child: Center(
child: defaultText( child: defaultText(
context, context,
'Kirim Masukan', 'Kirim Penilaian',
style: rincianPembayaran( style: rincianPembayaran(
color: textInButton, color: textInButton,
fontWeight: FontWeight.w400, fontWeight: FontWeight.w400,
......
import 'package:byod/helper/helper.dart';
import 'package:byod/models/payment_list.dart'; import 'package:byod/models/payment_list.dart';
import 'bill_detail.dart'; import 'bill_detail.dart';
...@@ -29,6 +30,9 @@ class Bill { ...@@ -29,6 +30,9 @@ class Bill {
int deliveryState; int deliveryState;
String courierName; String courierName;
String courierPhone; String courierPhone;
String branchName;
int typeOrder;
int paymentMode;
// List<MemberInfo> memberInfo; // List<MemberInfo> memberInfo;
Bill({ Bill({
...@@ -58,6 +62,9 @@ class Bill { ...@@ -58,6 +62,9 @@ class Bill {
this.deliveryState = 0, this.deliveryState = 0,
this.courierName = '', this.courierName = '',
this.courierPhone = '', this.courierPhone = '',
this.branchName = '',
this.typeOrder = typeOrderDineIn,
this.paymentMode = openBill
// this.memberInfo = const [] // this.memberInfo = const []
}); });
...@@ -89,6 +96,9 @@ class Bill { ...@@ -89,6 +96,9 @@ class Bill {
deliveryState: json['delivery_state'] ?? 0, deliveryState: json['delivery_state'] ?? 0,
courierName: json['rdm_staff_courier_name'] ?? '', courierName: json['rdm_staff_courier_name'] ?? '',
courierPhone: json['rdm_staff_courier_mobile'] ?? '', courierPhone: json['rdm_staff_courier_mobile'] ?? '',
branchName: json['branch_name'] ?? '',
typeOrder: json['type'] ?? typeOrderDineIn,
paymentMode: json['payment_mode'] ?? openBill,
// memberInfo: json['member_info'] // memberInfo: json['member_info']
); );
} }
......
...@@ -44,7 +44,7 @@ class CustomAppBarConfirm extends StatelessWidget { ...@@ -44,7 +44,7 @@ class CustomAppBarConfirm extends StatelessWidget {
Center( Center(
child: defaultText( child: defaultText(
context, context,
'Konfirmasi Orderan', 'Konfirmasi Pesanan',
maxLines: 1, maxLines: 1,
overFlow: TextOverflow.ellipsis, overFlow: TextOverflow.ellipsis,
style: appBarNameViewBill(), style: appBarNameViewBill(),
......
...@@ -81,7 +81,7 @@ class HistoryOrderNew extends StatelessWidget { ...@@ -81,7 +81,7 @@ class HistoryOrderNew extends StatelessWidget {
borderRadius: BorderRadius.circular(6), borderRadius: BorderRadius.circular(6),
color: backgroundWhite, color: backgroundWhite,
), ),
height: 72, // height: 72,
child: Container( child: Container(
padding: const EdgeInsets.only( padding: const EdgeInsets.only(
left: 16, left: 16,
...@@ -109,6 +109,14 @@ class HistoryOrderNew extends StatelessWidget { ...@@ -109,6 +109,14 @@ class HistoryOrderNew extends StatelessWidget {
context, context,
"Rp ${formatNumber().format(amountParseToInt(jsonDecodeHistory['total_order']))}", "Rp ${formatNumber().format(amountParseToInt(jsonDecodeHistory['total_order']))}",
style: historyOrderStyle(), style: historyOrderStyle(),
),
const SizedBox(
height: 4,
),
defaultText(
context,
jsonDecodeHistory['typeOrder'],
style: historyOrderStyle(),
) )
], ],
), ),
......
...@@ -78,7 +78,9 @@ class MenuListUtama extends StatelessWidget { ...@@ -78,7 +78,9 @@ class MenuListUtama extends StatelessWidget {
categoryNonFav[i].name, categoryNonFav[i].name,
style: menuNameStyle(), style: menuNameStyle(),
), ),
const Spacer(), const SizedBox(
height: 10,
),
defaultText( defaultText(
maxLines: 2, maxLines: 2,
overFlow: TextOverflow.ellipsis, overFlow: TextOverflow.ellipsis,
...@@ -86,6 +88,7 @@ class MenuListUtama extends StatelessWidget { ...@@ -86,6 +88,7 @@ class MenuListUtama extends StatelessWidget {
categoryNonFav[i].description, categoryNonFav[i].description,
style: deskripsiMenuStyle(), style: deskripsiMenuStyle(),
), ),
const Spacer(),
const SizedBox( const SizedBox(
height: 4, height: 4,
), ),
......
...@@ -192,6 +192,10 @@ class _NewHome2State extends State<NewHome2> { ...@@ -192,6 +192,10 @@ class _NewHome2State extends State<NewHome2> {
isCallDeliveryCharge: false, isCallDeliveryCharge: false,
isGetBranchList: true, isGetBranchList: true,
); );
context
.read<ChangeDeliveryPickupBloc>()
.toDelivery(getIsCustomerDelivery());
} }
// double heightTotal = MediaQuery.of(context).size.height; // double heightTotal = MediaQuery.of(context).size.height;
double appBarHeight = 50; double appBarHeight = 50;
...@@ -694,7 +698,7 @@ class _NewHome2State extends State<NewHome2> { ...@@ -694,7 +698,7 @@ class _NewHome2State extends State<NewHome2> {
child: BlocBuilder<ChangeDeliveryPickupBloc, bool>( child: BlocBuilder<ChangeDeliveryPickupBloc, bool>(
builder: (ctx, isDelivery) { builder: (ctx, isDelivery) {
return ComponentNameUser( return ComponentNameUser(
isDeliveryPickuup: true, isDeliveryPickuup: getIsDeliveryPickup(),
backgroundColorComponent: backgroundColor, backgroundColorComponent: backgroundColor,
isFromMenu: true, isFromMenu: true,
isdelivery: isDelivery, isdelivery: isDelivery,
......
...@@ -49,7 +49,7 @@ class _SplashState extends State<Splash> { ...@@ -49,7 +49,7 @@ class _SplashState extends State<Splash> {
} }
} }
int durationDelayBeforToMenu = 2000; int durationDelayBeforToMenu = 3000;
@override @override
void initState() { void initState() {
...@@ -82,13 +82,13 @@ class _SplashState extends State<Splash> { ...@@ -82,13 +82,13 @@ class _SplashState extends State<Splash> {
} }
widget.context.read<BranchExist>().branchExist( widget.context.read<BranchExist>().branchExist(
getBranchPref(), '',
getBrand(), '',
getRole(), getRole(),
getCashierName(), getCashierName(),
'', '',
widget.context, widget.context,
getBrancList: true, // getBrancList: true,
); );
Future.delayed(Duration(milliseconds: durationDelayBeforToMenu), () async { Future.delayed(Duration(milliseconds: durationDelayBeforToMenu), () async {
// if (getStatusOrderCreated()) { // if (getStatusOrderCreated()) {
......
...@@ -11,11 +11,13 @@ class RincianPembayaran extends StatelessWidget { ...@@ -11,11 +11,13 @@ class RincianPembayaran extends StatelessWidget {
required this.dataBill, required this.dataBill,
required this.totalDiscount, required this.totalDiscount,
required this.outStandingAll, required this.outStandingAll,
this.serviceCharge = 0,
}) : super(key: key); }) : super(key: key);
final List<Bill> dataBill; final List<Bill> dataBill;
final int totalDiscount; final int totalDiscount;
final int outStandingAll; final int outStandingAll;
final int serviceCharge;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
...@@ -89,15 +91,47 @@ class RincianPembayaran extends StatelessWidget { ...@@ -89,15 +91,47 @@ class RincianPembayaran extends StatelessWidget {
), ),
], ],
), ),
(getIsDeliveryPickup()) (dataBill[0].paymentMode == openBill)
? (getTypeOrder() == typeOrderDelivery) ? Column(
children: [
const SizedBox(
height: 8,
),
Row(
children: [
defaultText(
context,
'Service',
style: rincianPembayaran(
font: 12,
color: textGreyBill,
),
),
const Spacer(),
defaultText(
context,
(serviceCharge == 0)
? '-'
: 'Rp ${formatNumber().format(serviceCharge)}',
style: rincianPembayaran(
font: 12,
color: textGreyBill,
),
),
],
),
],
)
: const SizedBox(),
(dataBill[0].typeOrder != typeOrderDineIn)
? (dataBill[0].typeOrder== typeOrderDelivery)
? const SizedBox( ? const SizedBox(
height: 8, height: 8,
) )
: const SizedBox() : const SizedBox()
: const SizedBox(), : const SizedBox(),
(getIsDeliveryPickup()) (dataBill[0].typeOrder != typeOrderDineIn)
? (getTypeOrder() == typeOrderDelivery) ? (dataBill[0].typeOrder== typeOrderDelivery)
? Row( ? Row(
children: [ children: [
defaultText( defaultText(
...@@ -123,12 +157,12 @@ class RincianPembayaran extends StatelessWidget { ...@@ -123,12 +157,12 @@ class RincianPembayaran extends StatelessWidget {
) )
: const SizedBox() : const SizedBox()
: const SizedBox(), : const SizedBox(),
(getIsDeliveryPickup()) (dataBill[0].typeOrder != typeOrderDineIn)
? const SizedBox( ? const SizedBox(
height: 8, height: 8,
) )
: const SizedBox(), : const SizedBox(),
(getIsDeliveryPickup()) (dataBill[0].typeOrder != typeOrderDineIn)
? Row( ? Row(
children: [ children: [
defaultText( defaultText(
...@@ -153,12 +187,12 @@ class RincianPembayaran extends StatelessWidget { ...@@ -153,12 +187,12 @@ class RincianPembayaran extends StatelessWidget {
], ],
) )
: const SizedBox(), : const SizedBox(),
(getIsDeliveryPickup()) (dataBill[0].typeOrder != typeOrderDineIn)
? const SizedBox( ? const SizedBox(
height: 8, height: 8,
) )
: const SizedBox(), : const SizedBox(),
(getIsDeliveryPickup()) (dataBill[0].typeOrder != typeOrderDineIn)
? Row( ? Row(
children: [ children: [
defaultText( defaultText(
......
...@@ -18,6 +18,7 @@ import 'package:flutter_bloc/flutter_bloc.dart'; ...@@ -18,6 +18,7 @@ import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:intl/intl.dart'; import 'package:intl/intl.dart';
import 'package:mqtt_client/mqtt_client.dart'; import 'package:mqtt_client/mqtt_client.dart';
import 'package:time_picker_widget/time_picker_widget.dart';
import '../../api/api.dart'; import '../../api/api.dart';
import '../../bloc/address_user_bloc.dart'; import '../../bloc/address_user_bloc.dart';
...@@ -73,7 +74,6 @@ class ViewBillNew extends StatefulWidget { ...@@ -73,7 +74,6 @@ class ViewBillNew extends StatefulWidget {
this.isRepeatViewBill = false, this.isRepeatViewBill = false,
}) : super(key: key); }) : super(key: key);
@override @override
State<ViewBillNew> createState() => _ViewBillNewState(); State<ViewBillNew> createState() => _ViewBillNewState();
} }
...@@ -178,7 +178,9 @@ class _ViewBillNewState extends State<ViewBillNew> { ...@@ -178,7 +178,9 @@ class _ViewBillNewState extends State<ViewBillNew> {
}, },
); );
}, },
child: BlocBuilder<ViewBillBloc, List<Bill>>( child: BlocBuilder<AddressUser, Address>(
builder: (_, addressUser) {
return BlocBuilder<ViewBillBloc, List<Bill>>(
builder: (ctxViewBill, dataBill) { builder: (ctxViewBill, dataBill) {
if (dataBill.isNotEmpty) { if (dataBill.isNotEmpty) {
if (dataBill[0].id == defaultViewBill) { if (dataBill[0].id == defaultViewBill) {
...@@ -209,6 +211,7 @@ class _ViewBillNewState extends State<ViewBillNew> { ...@@ -209,6 +211,7 @@ class _ViewBillNewState extends State<ViewBillNew> {
// int allPaymentPaid = 0; // int allPaymentPaid = 0;
int outStandingAll = 0; int outStandingAll = 0;
int totalDiscount = 0; int totalDiscount = 0;
int serviceCharge = 0;
// bool isIndividuHaveWaitingPayment = false; // bool isIndividuHaveWaitingPayment = false;
// String paymentToRedirect = ''; // String paymentToRedirect = '';
...@@ -239,7 +242,31 @@ class _ViewBillNewState extends State<ViewBillNew> { ...@@ -239,7 +242,31 @@ class _ViewBillNewState extends State<ViewBillNew> {
"branch_code": branchCode, "branch_code": branchCode,
"brand": brandCode, "brand": brandCode,
"token": widget.token, "token": widget.token,
"typeOrder":
typeOrderString(dataBill[0].typeOrder),
"outlet_name": getBranchName()
}; };
if (dataBill[0].typeOrder != typeOrderDineIn) {
historyOrder['address_outlet'] =
getAddressOutlet();
historyOrder['phone_outlet'] = getPhoneOutlet();
historyOrder['open_hour'] =
"${getOpenTime().split(':')[0]}:${getOpenTime().split(':')[1]} - ${getCloseTime().split(':')[0]}:${getCloseTime().split(':')[1]}";
historyOrder['lat_outlet'] = getLatOutlet();
historyOrder['long_outlet'] = getLongOutlet();
if (dataBill[0].typeOrder ==
typeOrderDelivery &&
addressUser.id != '') {
historyOrder['recepient_name'] =
addressUser.recepientName;
historyOrder['recepient_phone'] =
addressUser.recepientPhone;
historyOrder['address'] = addressUser.address;
historyOrder['detail_loc'] =
addressUser.locationDetail;
historyOrder['note_loc'] = addressUser.notes;
}
}
String historySave = jsonEncode(historyOrder); String historySave = jsonEncode(historyOrder);
listHistoryOrder.add(historySave); listHistoryOrder.add(historySave);
setListHistory(listHistoryOrder); setListHistory(listHistoryOrder);
...@@ -257,7 +284,31 @@ class _ViewBillNewState extends State<ViewBillNew> { ...@@ -257,7 +284,31 @@ class _ViewBillNewState extends State<ViewBillNew> {
"branch_code": branchCode, "branch_code": branchCode,
"brand": brandCode, "brand": brandCode,
"token": widget.token, "token": widget.token,
"typeOrder":
typeOrderString(dataBill[0].typeOrder),
"outlet_name": getBranchName()
}; };
if (dataBill[0].typeOrder != typeOrderDineIn) {
historyOrder['address_outlet'] =
getAddressOutlet();
historyOrder['phone_outlet'] = getPhoneOutlet();
historyOrder['open_hour'] =
"${getOpenTime().split(':')[0]}:${getOpenTime().split(':')[1]} - ${getCloseTime().split(':')[0]}:${getCloseTime().split(':')[1]}";
historyOrder['lat_outlet'] = getLatOutlet();
historyOrder['long_outlet'] = getLongOutlet();
if (dataBill[0].typeOrder ==
typeOrderDelivery &&
addressUser.id != '') {
historyOrder['recepient_name'] =
addressUser.recepientName;
historyOrder['recepient_phone'] =
addressUser.recepientPhone;
historyOrder['address'] = addressUser.address;
historyOrder['detail_loc'] =
addressUser.locationDetail;
historyOrder['note_loc'] = addressUser.notes;
}
}
String historySave = jsonEncode(historyOrder); String historySave = jsonEncode(historyOrder);
listHistoryOrder.add(historySave); listHistoryOrder.add(historySave);
setListHistory(listHistoryOrder); setListHistory(listHistoryOrder);
...@@ -308,7 +359,11 @@ class _ViewBillNewState extends State<ViewBillNew> { ...@@ -308,7 +359,11 @@ class _ViewBillNewState extends State<ViewBillNew> {
// } // }
outStandingAll = outStandingAll =
amountParseToInt(dataBill[0].outStandingPay); amountParseToInt(dataBill[0].outStandingPay);
totalDiscount = amountParseToInt(dataBill[0].discountTotal); totalDiscount =
amountParseToInt(dataBill[0].discountTotal);
serviceCharge =
amountParseToInt(dataBill[0].totalService) +
amountParseToInt(dataBill[0].totalServiceTax);
outStandingIndividu = outStandingIndividu =
amountParseToInt(dataBill[0].outStandingIndividu); amountParseToInt(dataBill[0].outStandingIndividu);
} }
...@@ -352,9 +407,9 @@ class _ViewBillNewState extends State<ViewBillNew> { ...@@ -352,9 +407,9 @@ class _ViewBillNewState extends State<ViewBillNew> {
// Navigator.pop(context); // Navigator.pop(context);
title = 'Tutup Pesanan'; title = 'Tutup Pesanan';
description = ''' description = '''
Selesaikan transaksi dan tutup pesanan ? Selesaikan transaksi dan tutup pesanan ?
Mohon menuju kasir untuk meminta bukti pembayaran'''; Mohon menuju kasir untuk meminta bukti pembayaran''';
// } else { // } else {
// // // Navigator.pop(context); // // // Navigator.pop(context);
// // EasyLoading.showInfo('Tidak ada tagihan yang perlu dibayar'); // // EasyLoading.showInfo('Tidak ada tagihan yang perlu dibayar');
...@@ -393,6 +448,7 @@ Mohon menuju kasir untuk meminta bukti pembayaran'''; ...@@ -393,6 +448,7 @@ Mohon menuju kasir untuk meminta bukti pembayaran''';
brandCode: brandCode, brandCode: brandCode,
orderId: orderId, orderId: orderId,
isShowOutletDetail: isShowOutletDetail, isShowOutletDetail: isShowOutletDetail,
serviceCharge: serviceCharge,
), ),
widthScreen: MediaQuery.of(context).size.width, widthScreen: MediaQuery.of(context).size.width,
isCoreLayout: true, isCoreLayout: true,
...@@ -415,6 +471,8 @@ Mohon menuju kasir untuk meminta bukti pembayaran'''; ...@@ -415,6 +471,8 @@ Mohon menuju kasir untuk meminta bukti pembayaran''';
); );
} }
}, },
);
},
), ),
), ),
), ),
...@@ -438,6 +496,7 @@ class CoreBill extends StatelessWidget { ...@@ -438,6 +496,7 @@ class CoreBill extends StatelessWidget {
required this.brandCode, required this.brandCode,
required this.orderId, required this.orderId,
required this.isShowOutletDetail, required this.isShowOutletDetail,
required this.serviceCharge,
}) : super(key: key); }) : super(key: key);
final double widthScreen; final double widthScreen;
...@@ -453,6 +512,7 @@ class CoreBill extends StatelessWidget { ...@@ -453,6 +512,7 @@ class CoreBill extends StatelessWidget {
final String brandCode; final String brandCode;
final String orderId; final String orderId;
final bool isShowOutletDetail; final bool isShowOutletDetail;
final int serviceCharge;
void getBillFunction(BuildContext context) { void getBillFunction(BuildContext context) {
context.read<ViewBillBloc>().getBill(); context.read<ViewBillBloc>().getBill();
...@@ -460,7 +520,8 @@ class CoreBill extends StatelessWidget { ...@@ -460,7 +520,8 @@ class CoreBill extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final bool isDeliveryPickuup = getIsDeliveryPickup(); final bool isDeliveryPickuup =
(dataBill[0].typeOrder != typeOrderDineIn) ? true : false;
return BlocBuilder<MemberInfoBloc, MemberInfo>( return BlocBuilder<MemberInfoBloc, MemberInfo>(
builder: (contextMember, memberinfo) { builder: (contextMember, memberinfo) {
int outStandingTopayMember = 0; int outStandingTopayMember = 0;
...@@ -487,14 +548,14 @@ class CoreBill extends StatelessWidget { ...@@ -487,14 +548,14 @@ class CoreBill extends StatelessWidget {
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
(getIsDeliveryPickup()) (dataBill[0].typeOrder != typeOrderDineIn)
? (dataBill[0].state == orderStateDone) ? (dataBill[0].state == orderStateDone)
? const SizedBox( ? const SizedBox(
height: 24, height: 24,
) )
: const SizedBox() : const SizedBox()
: const SizedBox(), : const SizedBox(),
(getIsDeliveryPickup()) (dataBill[0].typeOrder != typeOrderDineIn)
? DeliveryPickupStatus(dataBill: dataBill) ? DeliveryPickupStatus(dataBill: dataBill)
: const SizedBox(), : const SizedBox(),
ComponentNameUser( ComponentNameUser(
...@@ -516,6 +577,7 @@ class CoreBill extends StatelessWidget { ...@@ -516,6 +577,7 @@ class CoreBill extends StatelessWidget {
? DeliveryPickupDetail( ? DeliveryPickupDetail(
isShowOutletDetail: isShowOutletDetail, isShowOutletDetail: isShowOutletDetail,
databill: dataBill, databill: dataBill,
isHistory: isHistory,
) )
: const SizedBox(), : const SizedBox(),
(isDeliveryPickuup) (isDeliveryPickuup)
...@@ -531,7 +593,10 @@ class CoreBill extends StatelessWidget { ...@@ -531,7 +593,10 @@ class CoreBill extends StatelessWidget {
: const SizedBox(), : const SizedBox(),
(isDeliveryPickuup) (isDeliveryPickuup)
? (isShowOutletDetail) ? (isShowOutletDetail)
? const OutletDetail() ? OutletDetail(
isHistory: isHistory,
dataBill: dataBill,
)
: const SizedBox() : const SizedBox()
: const SizedBox(), : const SizedBox(),
const SizedBox( const SizedBox(
...@@ -659,6 +724,7 @@ class CoreBill extends StatelessWidget { ...@@ -659,6 +724,7 @@ class CoreBill extends StatelessWidget {
dataBill: dataBill, dataBill: dataBill,
totalDiscount: totalDiscount, totalDiscount: totalDiscount,
outStandingAll: outStandingAll, outStandingAll: outStandingAll,
serviceCharge: serviceCharge,
), ),
(dataBill[0].paymentList.isNotEmpty) (dataBill[0].paymentList.isNotEmpty)
? Column( ? Column(
...@@ -963,7 +1029,7 @@ class CoreBill extends StatelessWidget { ...@@ -963,7 +1029,7 @@ class CoreBill extends StatelessWidget {
width: widthScreen, width: widthScreen,
child: Column( child: Column(
children: [ children: [
(!getIsDeliveryPickup() && (dataBill[0].typeOrder == typeOrderDineIn &&
dataBill[0].tableStatus == tableStatusOpen) dataBill[0].tableStatus == tableStatusOpen)
? ButtonPayment( ? ButtonPayment(
dataBill: dataBill, dataBill: dataBill,
...@@ -979,7 +1045,7 @@ class CoreBill extends StatelessWidget { ...@@ -979,7 +1045,7 @@ class CoreBill extends StatelessWidget {
isHistory: isHistory, isHistory: isHistory,
) )
: const SizedBox(), : const SizedBox(),
(getIsDeliveryPickup()) (dataBill[0].typeOrder != typeOrderDineIn)
? ButtonPayment( ? ButtonPayment(
dataBill: dataBill, dataBill: dataBill,
paymentMode: paymentMode, paymentMode: paymentMode,
...@@ -994,7 +1060,7 @@ class CoreBill extends StatelessWidget { ...@@ -994,7 +1060,7 @@ class CoreBill extends StatelessWidget {
isHistory: isHistory, isHistory: isHistory,
) )
: const SizedBox(), : const SizedBox(),
(!getIsDeliveryPickup()) (dataBill[0].typeOrder == typeOrderDineIn)
? (dataBill[0].tableStatus == tableStatusOpen && ? (dataBill[0].tableStatus == tableStatusOpen &&
dataBill[0].state != orderStateDone) dataBill[0].state != orderStateDone)
? Column( ? Column(
...@@ -1052,6 +1118,7 @@ class CoreBill extends StatelessWidget { ...@@ -1052,6 +1118,7 @@ class CoreBill extends StatelessWidget {
getOrderId(), getOrderId(),
context, context,
); );
setPickupTime('');
Navigator.pushReplacement( Navigator.pushReplacement(
context, context,
MaterialPageRoute( MaterialPageRoute(
...@@ -1182,7 +1249,7 @@ class ButtonPayment extends StatelessWidget { ...@@ -1182,7 +1249,7 @@ class ButtonPayment extends StatelessWidget {
if (dataBill[0].tableStatus == tableStatusOpen) { if (dataBill[0].tableStatus == tableStatusOpen) {
if (isCanButtonCheckoutToTap(dataBill[0].state)) { if (isCanButtonCheckoutToTap(dataBill[0].state)) {
if (dataBill[0].state == orderStateCreated) { if (dataBill[0].state == orderStateCreated) {
if (getIsDeliveryPickup()) { if (dataBill[0].typeOrder != typeOrderDineIn) {
if (getIsCustomerDelivery()) { if (getIsCustomerDelivery()) {
if (addressUser.id == '') { if (addressUser.id == '') {
EasyLoading.showToast( EasyLoading.showToast(
...@@ -1238,7 +1305,10 @@ class ButtonPayment extends StatelessWidget { ...@@ -1238,7 +1305,10 @@ class ButtonPayment extends StatelessWidget {
getCashierName(), getCashierName(),
getOrderId(), getOrderId(),
context, context,
getMenu: true,
getBrancList: true,
); );
setPickupTime('');
Navigator.pushReplacement( Navigator.pushReplacement(
context, context,
MaterialPageRoute( MaterialPageRoute(
...@@ -1607,11 +1677,35 @@ class OutletDetail extends StatelessWidget { ...@@ -1607,11 +1677,35 @@ class OutletDetail extends StatelessWidget {
const OutletDetail({ const OutletDetail({
super.key, super.key,
this.isFromMenu = false, this.isFromMenu = false,
this.isHistory = false,
this.dataBill = const [],
}); });
final bool isFromMenu; final bool isFromMenu;
final bool isHistory;
final List<Bill> dataBill;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
List<String> listHistoryOrder = getListHistory();
int indexListhIstory = listHistoryOrder.indexWhere((listHistoryOrders) =>
jsonDecode(listHistoryOrders)['order_id'] == dataBill[0].id);
String openHours = "${timeHm(getOpenTime())} - ${timeHm(getCloseTime())}";
String phoneOutlet = getPhoneOutlet();
bool isDeliveryCustomer = getIsCustomerDelivery();
String latOutlet = getLatOutlet();
String longOutlet = getLongOutlet();
if (isHistory && indexListhIstory != -1) {
var historyOrder = jsonDecode(listHistoryOrder[indexListhIstory]);
openHours = historyOrder['open_hour'];
phoneOutlet = historyOrder['phone_outlet'];
latOutlet = historyOrder['lat_outlet'];
longOutlet = historyOrder['long_outlet'];
if (historyOrder['typeOrder'] == 'Delivery') {
isDeliveryCustomer = true;
} else {
isDeliveryCustomer = false;
}
}
return Container( return Container(
padding: const EdgeInsets.symmetric( padding: const EdgeInsets.symmetric(
horizontal: paddingLeftRight, horizontal: paddingLeftRight,
...@@ -1622,7 +1716,7 @@ class OutletDetail extends StatelessWidget { ...@@ -1622,7 +1716,7 @@ class OutletDetail extends StatelessWidget {
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
(getIsCustomerDelivery()) (isDeliveryCustomer)
? Column( ? Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
...@@ -1640,7 +1734,7 @@ class OutletDetail extends StatelessWidget { ...@@ -1640,7 +1734,7 @@ class OutletDetail extends StatelessWidget {
children: [ children: [
defaultText( defaultText(
context, context,
"Open Hour: ${timeHm(getOpenTime())} - ${timeHm(getCloseTime())}", "Open Hour: $openHours",
maxLines: 2, maxLines: 2,
overFlow: TextOverflow.ellipsis, overFlow: TextOverflow.ellipsis,
style: viewbillStyle(), style: viewbillStyle(),
...@@ -1664,7 +1758,7 @@ class OutletDetail extends StatelessWidget { ...@@ -1664,7 +1758,7 @@ class OutletDetail extends StatelessWidget {
GestureDetector( GestureDetector(
onTap: () { onTap: () {
htmlOpenLink( htmlOpenLink(
'https://wa.me/${getPhoneOutlet()}', 'https://wa.me/$phoneOutlet',
self: false, self: false,
); );
}, },
...@@ -1693,7 +1787,7 @@ class OutletDetail extends StatelessWidget { ...@@ -1693,7 +1787,7 @@ class OutletDetail extends StatelessWidget {
String latUser = getLatitude(); String latUser = getLatitude();
String longUser = getLongitude(); String longUser = getLongitude();
String urlDirection = String urlDirection =
'https://www.google.com/maps/dir/$latUser,$longUser/${getLatOutlet()},${getLongOutlet()}'; 'https://www.google.com/maps/dir/$latUser,$longUser/$latOutlet,$longOutlet';
// Geolocator.getCurrentPosition().then((position) { // Geolocator.getCurrentPosition().then((position) {
htmlOpenLink( htmlOpenLink(
urlDirection, urlDirection,
...@@ -1743,12 +1837,14 @@ class DeliveryPickupDetail extends StatelessWidget { ...@@ -1743,12 +1837,14 @@ class DeliveryPickupDetail extends StatelessWidget {
required this.isShowOutletDetail, required this.isShowOutletDetail,
this.isFromMenu = false, this.isFromMenu = false,
this.databill = const [], this.databill = const [],
this.isHistory = false,
}) : super(key: key); }) : super(key: key);
// final bool isDelivery = getIsCustomerDelivery(); // final bool isDelivery = getIsCustomerDelivery();
final bool isShowOutletDetail; final bool isShowOutletDetail;
final bool isFromMenu; final bool isFromMenu;
final List<Bill> databill; final List<Bill> databill;
final bool isHistory;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
...@@ -1761,20 +1857,46 @@ class DeliveryPickupDetail extends StatelessWidget { ...@@ -1761,20 +1857,46 @@ class DeliveryPickupDetail extends StatelessWidget {
), ),
color: color:
(isFromMenu) ? backgroundColor : backgroundWhite.withOpacity(0.9), (isFromMenu) ? backgroundColor : backgroundWhite.withOpacity(0.9),
child: (isDelivery) child: (isHistory == false)
? deliveryOption(context, isFromMenu, databill) ? (isDelivery)
: pickupOption(context), ? deliveryOption(
context,
isFromMenu,
databill,
)
: pickupOption(
context,
databill: databill,
)
: (databill[0].typeOrder == typeOrderDelivery)
? deliveryOption(
context,
isFromMenu,
databill,
isHistory: isHistory,
)
: (databill[0].typeOrder == typeOrderPickup)
? pickupOption(
context,
databill: databill,
isHistory: isHistory,
)
: const SizedBox(),
); );
}, },
); );
} }
Row pickupOption(BuildContext context) { Row pickupOption(
BuildContext context, {
List<Bill> databill = const [],
bool isHistory = false,
}) {
DateTime dateTime = DateTime.now().toLocal(); DateTime dateTime = DateTime.now().toLocal();
String hourTime = DateFormat.H().format(dateTime); String hourTime = DateFormat.H().format(dateTime);
String minuteTime = DateFormat.m().format(dateTime); String minuteTime = DateFormat.m().format(dateTime);
TimeOfDay timeOfDayPickup = TimeOfDay timeOfDayPickup =
TimeOfDay(hour: int.parse(hourTime) + 1, minute: int.parse(minuteTime)); TimeOfDay(hour: int.parse(hourTime) + 1, minute: 0);
return Row( return Row(
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
...@@ -1794,10 +1916,13 @@ class DeliveryPickupDetail extends StatelessWidget { ...@@ -1794,10 +1916,13 @@ class DeliveryPickupDetail extends StatelessWidget {
children: [ children: [
defaultText( defaultText(
context, context,
getBranchName(), (isHistory) ? databill[0].branchName : getBranchName(),
maxLines: 2, maxLines: 2,
overFlow: TextOverflow.ellipsis, overFlow: TextOverflow.ellipsis,
), ),
(isHistory == false)
? Column(
children: [
const SizedBox( const SizedBox(
height: 5, height: 5,
), ),
...@@ -1811,12 +1936,16 @@ class DeliveryPickupDetail extends StatelessWidget { ...@@ -1811,12 +1936,16 @@ class DeliveryPickupDetail extends StatelessWidget {
), ),
], ],
), ),
],
)
: const SizedBox(),
const SizedBox( const SizedBox(
height: 5, height: 5,
), ),
BlocBuilder<TriggerRefresh, bool>( BlocBuilder<TriggerRefresh, bool>(
builder: (_, trigger) { builder: (_, trigger) {
return Row( return (isHistory == false)
? Row(
children: [ children: [
defaultText( defaultText(
context, context,
...@@ -1831,7 +1960,8 @@ class DeliveryPickupDetail extends StatelessWidget { ...@@ -1831,7 +1960,8 @@ class DeliveryPickupDetail extends StatelessWidget {
overFlow: TextOverflow.ellipsis, overFlow: TextOverflow.ellipsis,
), ),
], ],
); )
: const SizedBox();
}, },
), ),
const SizedBox( const SizedBox(
...@@ -1849,7 +1979,7 @@ class DeliveryPickupDetail extends StatelessWidget { ...@@ -1849,7 +1979,7 @@ class DeliveryPickupDetail extends StatelessWidget {
Navigator.pop(context); Navigator.pop(context);
} }
void setPickupTimeUser(int time) { void setPickupTimeUser(int time, {String typeSatuan = 'jam'}) {
String closeOutlet = getCloseTime(); String closeOutlet = getCloseTime();
String hourClose = closeOutlet.split(':')[0]; String hourClose = closeOutlet.split(':')[0];
String minuteClose = closeOutlet.split(':')[1]; String minuteClose = closeOutlet.split(':')[1];
...@@ -1862,9 +1992,24 @@ class DeliveryPickupDetail extends StatelessWidget { ...@@ -1862,9 +1992,24 @@ class DeliveryPickupDetail extends StatelessWidget {
String hourTime = DateFormat.H().format(dateTime); String hourTime = DateFormat.H().format(dateTime);
String minuteTime = DateFormat.m().format(dateTime); String minuteTime = DateFormat.m().format(dateTime);
DateTime dateSelectedPickupTime;
if (typeSatuan == 'jam') {
dateSelectedPickupTime = DateTime(now.year, now.month, now.day,
int.parse(hourTime) + time, int.parse(minuteTime));
} else {
int hourMod;
int minuteMod;
if (int.parse(minuteTime) + time > 60) {
hourMod = 1;
minuteMod = (int.parse(minuteTime) + time) % 60;
} else {
hourMod = 0;
minuteMod = int.parse(minuteTime) + time;
}
dateSelectedPickupTime = DateTime(now.year, now.month, now.day,
int.parse(hourTime) + hourMod, minuteMod);
}
DateTime dateSelectedPickupTime = DateTime(now.year, now.month,
now.day, int.parse(hourTime) + time, int.parse(minuteTime));
final differenceClose = final differenceClose =
dateTimeCloseOutlet.difference(dateSelectedPickupTime); dateTimeCloseOutlet.difference(dateSelectedPickupTime);
...@@ -1881,10 +2026,28 @@ class DeliveryPickupDetail extends StatelessWidget { ...@@ -1881,10 +2026,28 @@ class DeliveryPickupDetail extends StatelessWidget {
); );
return; return;
} }
TimeOfDay timeOfDayPickup;
TimeOfDay timeOfDayPickup = TimeOfDay( if (typeSatuan == 'jam') {
timeOfDayPickup = TimeOfDay(
hour: int.parse(hourTime) + time, hour: int.parse(hourTime) + time,
minute: int.parse(minuteTime)); minute: int.parse(minuteTime),
);
} else {
int hourMod;
int minuteMod;
if (int.parse(minuteTime) + time > 60) {
hourMod = 1;
minuteMod = (int.parse(minuteTime) + time) % 60;
} else {
hourMod = 0;
minuteMod = int.parse(minuteTime) + time;
}
timeOfDayPickup = TimeOfDay(
hour: int.parse(hourTime) + hourMod,
minute: minuteMod,
);
}
// String timeToset = timeOfDayPickup.format(context); // String timeToset = timeOfDayPickup.format(context);
final hourString = final hourString =
timeOfDayPickup.hour.toString().padLeft(2, '0'); timeOfDayPickup.hour.toString().padLeft(2, '0');
...@@ -1920,11 +2083,14 @@ class DeliveryPickupDetail extends StatelessWidget { ...@@ -1920,11 +2083,14 @@ class DeliveryPickupDetail extends StatelessWidget {
children: [ children: [
GestureDetector( GestureDetector(
onTap: () { onTap: () {
setPickupTimeUser(0); setPickupTimeUser(
30,
typeSatuan: 'menit',
);
}, },
child: ButtonComponent( child: ButtonComponent(
buttonColor: buttonColor, buttonColor: buttonColor,
teksButton: 'Sekarang'), teksButton: '30 Menit'),
), ),
const SizedBox( const SizedBox(
height: 10, height: 10,
...@@ -1940,34 +2106,19 @@ class DeliveryPickupDetail extends StatelessWidget { ...@@ -1940,34 +2106,19 @@ class DeliveryPickupDetail extends StatelessWidget {
const SizedBox( const SizedBox(
height: 10, height: 10,
), ),
GestureDetector(
onTap: () {
setPickupTimeUser(3);
},
child: ButtonComponent(
buttonColor: buttonColor,
teksButton: '3 Jam'),
),
const SizedBox(
height: 10,
),
GestureDetector(
onTap: () {
setPickupTimeUser(5);
},
child: ButtonComponent(
buttonColor: buttonColor,
teksButton: '5 Jam'),
),
const SizedBox(
height: 10,
),
GestureDetector( GestureDetector(
onTap: () { onTap: () {
Navigator.pop(context); Navigator.pop(context);
showTimePicker( showCustomTimePicker(
context: context, context: context,
onFailValidation: (context) =>
EasyLoading.showToast(
'Unavailable selection time'),
initialTime: timeOfDayPickup, initialTime: timeOfDayPickup,
selectableTimePredicate: (time) =>
time!.hour > 1 &&
time.hour < 25 &&
time.minute % 15 == 0,
).then((value) { ).then((value) {
if (value == null) { if (value == null) {
return; return;
...@@ -2193,6 +2344,13 @@ class DeliveryPickupDetail extends StatelessWidget { ...@@ -2193,6 +2344,13 @@ class DeliveryPickupDetail extends StatelessWidget {
onTap: () { onTap: () {
void ontapOkeChange() { void ontapOkeChange() {
Navigator.pop(context); Navigator.pop(context);
EasyLoading.show(
status: 'Getting outlet...',
maskType: EasyLoadingMaskType.none,
);
Api.getBranchList().then((value) {
EasyLoading.dismiss();
if (value.isNotEmpty) {
Navigator.push( Navigator.push(
context, context,
MaterialPageRoute( MaterialPageRoute(
...@@ -2201,6 +2359,10 @@ class DeliveryPickupDetail extends StatelessWidget { ...@@ -2201,6 +2359,10 @@ class DeliveryPickupDetail extends StatelessWidget {
), ),
), ),
); );
} else {
EasyLoading.showToast('List outlet tidak ditemukan');
}
});
} }
void onTapCancelChange() { void onTapCancelChange() {
...@@ -2256,7 +2418,11 @@ Apakah ingin melanjutkan ?'''; ...@@ -2256,7 +2418,11 @@ Apakah ingin melanjutkan ?''';
} }
BlocBuilder deliveryOption( BlocBuilder deliveryOption(
BuildContext context, bool isFromMenu, List<Bill> databill) { BuildContext context,
bool isFromMenu,
List<Bill> databill, {
bool isHistory = false,
}) {
void ontapAddressDetail() { void ontapAddressDetail() {
Navigator.pop(context); Navigator.pop(context);
} }
...@@ -2266,6 +2432,33 @@ Apakah ingin melanjutkan ?'''; ...@@ -2266,6 +2432,33 @@ Apakah ingin melanjutkan ?''';
if (address.id != '') { if (address.id != '') {
setLatitude(address.lat); setLatitude(address.lat);
setLongitude(address.long); setLongitude(address.long);
String recepientName = '';
String recepientPhone = '';
String recepientAddress = '';
String recepientDetailLoc = '';
String recepientNotes = '';
if (isHistory) {
List<String> listHistoryOrder = getListHistory();
int indexListhIstory = listHistoryOrder.indexWhere(
(listHistoryOrders) =>
jsonDecode(listHistoryOrders)['order_id'] ==
databill[0].id);
if (indexListhIstory != -1) {
var historyOrder = jsonDecode(listHistoryOrder[indexListhIstory]);
recepientName = historyOrder['recepient_name'] ?? '';
recepientPhone = historyOrder['recepient_phone'] ?? '';
recepientAddress = historyOrder['address'] ?? '';
recepientDetailLoc = historyOrder['detail_loc'] ?? '';
recepientNotes = historyOrder['note_loc'] ?? '';
}
} else {
recepientName = address.recepientName;
recepientPhone = address.recepientPhone;
recepientAddress = address.address;
recepientDetailLoc = address.locationDetail;
recepientNotes = address.notes;
}
return Column( return Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
...@@ -2288,7 +2481,7 @@ Apakah ingin melanjutkan ?'''; ...@@ -2288,7 +2481,7 @@ Apakah ingin melanjutkan ?''';
), ),
defaultText( defaultText(
context, context,
address.recepientName, recepientName,
style: addressStyle( style: addressStyle(
font: 10, font: 10,
), ),
...@@ -2298,7 +2491,7 @@ Apakah ingin melanjutkan ?'''; ...@@ -2298,7 +2491,7 @@ Apakah ingin melanjutkan ?''';
), ),
defaultText( defaultText(
context, context,
address.recepientPhone, recepientPhone,
style: addressStyle( style: addressStyle(
font: 10, font: 10,
), ),
...@@ -2308,7 +2501,7 @@ Apakah ingin melanjutkan ?'''; ...@@ -2308,7 +2501,7 @@ Apakah ingin melanjutkan ?''';
), ),
defaultText( defaultText(
context, context,
address.address, recepientAddress,
style: addressStyle( style: addressStyle(
font: 10, font: 10,
), ),
...@@ -2316,7 +2509,7 @@ Apakah ingin melanjutkan ?'''; ...@@ -2316,7 +2509,7 @@ Apakah ingin melanjutkan ?''';
(address.locationDetail != '') (address.locationDetail != '')
? defaultText( ? defaultText(
context, context,
"Detail Lokasi: ${address.locationDetail}", "Detail Lokasi: $recepientDetailLoc",
style: addressStyle( style: addressStyle(
font: 10, font: 10,
), ),
...@@ -2325,7 +2518,7 @@ Apakah ingin melanjutkan ?'''; ...@@ -2325,7 +2518,7 @@ Apakah ingin melanjutkan ?''';
(address.notes != '') (address.notes != '')
? defaultText( ? defaultText(
context, context,
"Catatan : ${address.notes}", "Catatan : $recepientNotes",
style: addressStyle( style: addressStyle(
font: 10, font: 10,
), ),
...@@ -2343,7 +2536,7 @@ Apakah ingin melanjutkan ?'''; ...@@ -2343,7 +2536,7 @@ Apakah ingin melanjutkan ?''';
databill[0].courierPhone != '') databill[0].courierPhone != '')
? defaultText( ? defaultText(
context, context,
'Kurir Detail :', 'Detail Kurir :',
style: addressStyle( style: addressStyle(
font: 10, font: 10,
), ),
...@@ -2352,7 +2545,7 @@ Apakah ingin melanjutkan ?'''; ...@@ -2352,7 +2545,7 @@ Apakah ingin melanjutkan ?''';
(databill.isNotEmpty && databill[0].courierName != '') (databill.isNotEmpty && databill[0].courierName != '')
? defaultText( ? defaultText(
context, context,
"Kurir Name : ${databill[0].courierName}", "Nama : ${databill[0].courierName}",
style: addressStyle( style: addressStyle(
font: 10, font: 10,
), ),
...@@ -2366,7 +2559,22 @@ Apakah ingin melanjutkan ?'''; ...@@ -2366,7 +2559,22 @@ Apakah ingin melanjutkan ?''';
self: false, self: false,
); );
}, },
child: Container(
width: 120,
// height: 30,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(40),
color: (isFromMenu)
? backgroundColor
: backgroundWhite,
border: Border.all(
color: buttonColor,
),
),
padding: const EdgeInsets.all(3),
margin: const EdgeInsets.only(top: 5),
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
fontAwesomeNew( fontAwesomeNew(
phoneIcon, phoneIcon,
...@@ -2377,13 +2585,14 @@ Apakah ingin melanjutkan ?'''; ...@@ -2377,13 +2585,14 @@ Apakah ingin melanjutkan ?''';
), ),
defaultText( defaultText(
context, context,
"Kurir Mobile : ${databill[0].courierPhone}", databill[0].courierPhone,
style: addressStyle( style: addressStyle(
font: 10, font: 10,
), ),
) )
], ],
), ),
),
) )
: const SizedBox(), : const SizedBox(),
// (address.locationDetail != '') // (address.locationDetail != '')
...@@ -2464,6 +2673,7 @@ Apakah ingin melanjutkan ?'''; ...@@ -2464,6 +2673,7 @@ Apakah ingin melanjutkan ?''';
), ),
GestureDetector( GestureDetector(
onTap: () { onTap: () {
if (getIsCanChangeDeliveryPickup()) {
void ontapOkeChange() { void ontapOkeChange() {
Navigator.push( Navigator.push(
context, context,
...@@ -2496,6 +2706,10 @@ Apakah ingin melanjutkan ?'''; ...@@ -2496,6 +2706,10 @@ Apakah ingin melanjutkan ?''';
onTapCancelChange, onTapCancelChange,
okButtonColor: buttonColor, okButtonColor: buttonColor,
); );
} else {
EasyLoading.showToast(
'Tidak dapat ganti oulet karena status orderan sedang diproses / telah selesai');
}
}, },
child: Container( child: Container(
width: 98, width: 98,
......
...@@ -483,6 +483,13 @@ packages: ...@@ -483,6 +483,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.4.12" version: "0.4.12"
time_picker_widget:
dependency: "direct main"
description:
name: time_picker_widget
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.0+10"
timeline_tile: timeline_tile:
dependency: "direct main" dependency: "direct main"
description: description:
......
...@@ -45,6 +45,7 @@ dependencies: ...@@ -45,6 +45,7 @@ dependencies:
shared_preferences: ^2.0.15 shared_preferences: ^2.0.15
shimmer: ^2.0.0 shimmer: ^2.0.0
sliver_tools: ^0.2.8 sliver_tools: ^0.2.8
time_picker_widget: ^1.0.0+10
timeline_tile: ^2.0.0 timeline_tile: ^2.0.0
url_launcher: ^6.1.5 url_launcher: ^6.1.5
url_strategy: ^0.2.0 url_strategy: ^0.2.0
......
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