Commit 16cd711c authored by Jasa Digital's avatar Jasa Digital

add trigger refresh

parent 400dfcbf
import 'package:flutter_bloc/flutter_bloc.dart';
class TriggerRefreshInConfirmationPage extends Cubit<bool> {
TriggerRefreshInConfirmationPage() : super(false);
void trigger(bool status) {
emit(status);
}
}
......@@ -33,6 +33,7 @@ import 'bloc/outlet_detail.dart';
import 'bloc/search_active.dart';
import 'bloc/search_branch.dart';
import 'bloc/search_history.dart';
import 'bloc/trigger_refresh_in_confirmation_page.dart';
import 'bloc/view_bill.dart';
import 'package:flutter/services.dart' as bundle_root;
......@@ -197,6 +198,7 @@ class _MyAppState extends State<MyApp> {
BlocProvider(create: (_) => AddressUser()),
BlocProvider(create: (_) => ExpandDetailOutlet()),
BlocProvider(create: (_) => ChangeDeliveryPickupBloc()),
BlocProvider(create: (_) => TriggerRefreshInConfirmationPage()),
],
child: MaterialApp(
title: (widget.title == null) ? defaultTitle : widget.title,
......
......@@ -7,6 +7,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import '../../bloc/order_bloc.dart';
import '../../bloc/trigger_refresh_in_confirmation_page.dart';
import '../../helper/prefs.dart';
import '../../helper/widget/button_modal.dart';
import '../../helper/widget/modal_input_name.dart';
......@@ -44,646 +45,670 @@ class CoreConfirm extends StatelessWidget {
double widthScreen = responsiveWidthScreen(context);
double widthRowForNote =
MediaQuery.of(context).size.width - 20 - 12 - 80 - 20;
return BlocBuilder<OrdersBloc, List<Orders>>(
builder: (ctx, listOrders) {
int totalHarga = 0;
List indexTidakAdaVariant = [];
List indexAdaVariant = [];
return BlocBuilder<TriggerRefreshInConfirmationPage, bool>(
builder: (_, trigger) {
return BlocBuilder<OrdersBloc, List<Orders>>(
builder: (ctx, listOrders) {
int totalHarga = 0;
List indexTidakAdaVariant = [];
List indexAdaVariant = [];
// if (listOrders.isNotEmpty) {
// int fixTotalHarga = 0;
// int totalHargaOrderDetail = 0;
// int totalHargaBukanOrderDetail = 0;
// for (var i = 0; i < listOrders.length; i++) {
// if (listOrders[i].orderDetail.isEmpty) {
// // indexTidakAdaVariant.add(i);
// totalHargaBukanOrderDetail +=
// (listOrders[i].totalItem * listOrders[i].totalHarga);
// } else {
// // for (int kk = 0; kk < listOrders[i].orderDetail.length; kk++) {
// // String indexWithVariant = '$i|$kk';
// // indexAdaVariant.add(indexWithVariant);
// // totalHargaOrderDetail +=
// // listOrders[i].orderDetail[kk].totalHarga;
// // }
// fixTotalHarga = totalHargaOrderDetail;
// }
// }
// totalHarga = fixTotalHarga + totalHargaBukanOrderDetail;
// }
// if (listOrders.isNotEmpty) {
// int fixTotalHarga = 0;
// int totalHargaOrderDetail = 0;
// int totalHargaBukanOrderDetail = 0;
// for (var i = 0; i < listOrders.length; i++) {
// if (listOrders[i].orderDetail.isEmpty) {
// // indexTidakAdaVariant.add(i);
// totalHargaBukanOrderDetail +=
// (listOrders[i].totalItem * listOrders[i].totalHarga);
// } else {
// // for (int kk = 0; kk < listOrders[i].orderDetail.length; kk++) {
// // String indexWithVariant = '$i|$kk';
// // indexAdaVariant.add(indexWithVariant);
// // totalHargaOrderDetail +=
// // listOrders[i].orderDetail[kk].totalHarga;
// // }
// fixTotalHarga = totalHargaOrderDetail;
// }
// }
// totalHarga = fixTotalHarga + totalHargaBukanOrderDetail;
// }
if (listOrders.isNotEmpty) {
int fixTotalHarga = 0;
int totalHargaOrderDetail = 0;
int totalHargaBukanOrderDetail = 0;
if (listOrders.isNotEmpty) {
int fixTotalHarga = 0;
int totalHargaOrderDetail = 0;
int totalHargaBukanOrderDetail = 0;
// int fixTotalItem = 0;
// int totalItemOrderDetail = 0;
// int totalItemBukanOrderDetail = 0;
for (var i = 0; i < listOrders.length; i++) {
// totalItem += listOrders[i].totalItem;
// check apakah ada order detail. kalau ada rekalkulasi total harga sesuai order detail
if (listOrders[i].orderDetail.isEmpty) {
indexTidakAdaVariant.add(i);
totalHargaBukanOrderDetail +=
(listOrders[i].totalItem * listOrders[i].totalHarga);
// totalItemBukanOrderDetail += listOrders[i].totalItem;
} else {
for (int kk = 0; kk < listOrders[i].orderDetail.length; kk++) {
String indexWithVariant =
'$i|$kk'; // index orderan|index order detail
indexAdaVariant.add(indexWithVariant);
totalHargaOrderDetail +=
listOrders[i].orderDetail[kk].totalHarga;
// totalItemOrderDetail +=
// listOrders[i].orderDetail[kk].totalItem;
// int fixTotalItem = 0;
// int totalItemOrderDetail = 0;
// int totalItemBukanOrderDetail = 0;
for (var i = 0; i < listOrders.length; i++) {
// totalItem += listOrders[i].totalItem;
// check apakah ada order detail. kalau ada rekalkulasi total harga sesuai order detail
if (listOrders[i].orderDetail.isEmpty) {
indexTidakAdaVariant.add(i);
totalHargaBukanOrderDetail +=
(listOrders[i].totalItem * listOrders[i].totalHarga);
// totalItemBukanOrderDetail += listOrders[i].totalItem;
} else {
for (int kk = 0;
kk < listOrders[i].orderDetail.length;
kk++) {
String indexWithVariant =
'$i|$kk'; // index orderan|index order detail
indexAdaVariant.add(indexWithVariant);
totalHargaOrderDetail +=
listOrders[i].orderDetail[kk].totalHarga;
// totalItemOrderDetail +=
// listOrders[i].orderDetail[kk].totalItem;
}
fixTotalHarga = totalHargaOrderDetail;
// fixTotalItem = totalItemOrderDetail;
}
}
fixTotalHarga = totalHargaOrderDetail;
// fixTotalItem = totalItemOrderDetail;
totalHarga = fixTotalHarga + totalHargaBukanOrderDetail;
// totalItem = fixTotalItem + totalItemBukanOrderDetail;
}
}
totalHarga = fixTotalHarga + totalHargaBukanOrderDetail;
// totalItem = fixTotalItem + totalItemBukanOrderDetail;
}
void plus() {}
void plus() {}
void minus() {}
void minus() {}
return Container(
width: widthScreen,
child: Stack(
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
return Container(
width: widthScreen,
child: Stack(
children: [
const CustomAppBarConfirm(),
Expanded(
child: SingleChildScrollView(
physics: const AlwaysScrollableScrollPhysics(),
child: Column(
children: [
const SizedBox(
height: 24,
),
for (var i in indexAdaVariant)
VariantOrder(
i: i,
indexAdaVariant: indexAdaVariant,
widthRowForNote: widthRowForNote,
listOrders: listOrders,
),
for (int j in indexTidakAdaVariant)
Column(
children: [
Container(
width: double.infinity,
padding: const EdgeInsets.symmetric(
horizontal: paddingLeftRight,
vertical: 16,
),
color: backgroundWhite,
child: Row(
crossAxisAlignment:
CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.start,
children: [
(listOrders[j].imageUrl != '')
? Image(
width: 80,
height: 80,
fit: BoxFit.fill,
image: NetworkImage(
listOrders[j].imageUrl),
)
: const Image(
width: 80,
height: 80,
fit: BoxFit.fill,
image: AssetImage(
'assets/noimage.png'),
),
const SizedBox(
width: 12,
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const CustomAppBarConfirm(),
Expanded(
child: SingleChildScrollView(
physics: const AlwaysScrollableScrollPhysics(),
child: Column(
children: [
const SizedBox(
height: 24,
),
for (var i in indexAdaVariant)
VariantOrder(
i: i,
indexAdaVariant: indexAdaVariant,
widthRowForNote: widthRowForNote,
listOrders: listOrders,
trigger: trigger,
),
for (int j in indexTidakAdaVariant)
Column(
children: [
Container(
width: double.infinity,
padding: const EdgeInsets.symmetric(
horizontal: paddingLeftRight,
vertical: 16,
),
Column(
color: backgroundWhite,
child: Row(
crossAxisAlignment:
CrossAxisAlignment.start,
CrossAxisAlignment.center,
mainAxisAlignment:
MainAxisAlignment.center,
MainAxisAlignment.start,
children: [
Container(
width: widthRowForNote,
child: defaultText(
context,
listOrders[j].namaMenu,
maxLines: 2,
overFlow: TextOverflow.ellipsis,
style: menuNameListViewBill(),
),
),
const SizedBox(
height: 6,
),
defaultText(
context,
'${listOrders[j].totalItem} X Rp ${formatNumber().format(listOrders[j].satuanHarga)}',
style: viewbillStyle(
font: 12,
fontWeight: FontWeight.w300,
),
),
const SizedBox(
height: 6,
),
(listOrders[j].note != '')
? Container(
width: widthRowForNote,
child: defaultText(
context,
"Catatan: ${listOrders[j].note}",
// maxLines: 2,
// overFlow:
// TextOverflow.ellipsis,
style: viewbillStyle(
font: 12,
fontWeight:
FontWeight.w300,
),
),
(listOrders[j].imageUrl != '')
? Image(
width: 80,
height: 80,
fit: BoxFit.fill,
image: NetworkImage(
listOrders[j].imageUrl),
)
: const SizedBox(),
],
)
],
),
),
Container(
width: double.infinity,
color: backgroundWhite,
padding: const EdgeInsets.only(
left: paddingLeftRight,
right: paddingLeftRight,
bottom: 10,
),
child: Row(
children: [
GestureDetector(
onTap: () {
final noteController =
TextEditingController(
text: listOrders[j].note);
FocusScopeNode currentFocus =
FocusScope.of(context);
if (!currentFocus.hasPrimaryFocus) {
currentFocus.unfocus();
}
showModalBottomSheet(
backgroundColor: backgroundColor,
isScrollControlled: true,
context: context,
builder: (context) {
return NoteModalBottomSheet(
noteController: noteController,
initialValue:
listOrders[j].totalItem,
orderVariants: const [],
menuItem: FilterMenu(
id: '',
name: '',
price: '',
originalPrice: '',
imageUrlMedium: '',
imageUrlThumbnail: '',
isSell: false,
type: 1,
categoryName: '',
categoryId: '',
description: '',
groupName: '',
groupId: '',
: const Image(
width: 80,
height: 80,
fit: BoxFit.fill,
image: AssetImage(
'assets/noimage.png'),
),
listOrders: listOrders,
from: fromConfirmationPage,
contextFrom: context,
idMenu: listOrders[j].id,
menuName:
listOrders[j].namaMenu,
priceMemu:
listOrders[j].satuanHarga,
imageUrl:
listOrders[j].imageUrl,
);
},
);
},
child: Container(
height: 30,
width: 98,
decoration: BoxDecoration(
borderRadius:
BorderRadius.circular(21),
color: buttonColor),
child: Row(
const SizedBox(
width: 12,
),
Column(
crossAxisAlignment:
CrossAxisAlignment.start,
mainAxisAlignment:
MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
const Image(
height: 16,
width: 16,
image: AssetImage(
'assets/icons/note.png'),
Container(
width: widthRowForNote,
child: defaultText(
context,
listOrders[j].namaMenu,
maxLines: 2,
overFlow:
TextOverflow.ellipsis,
style: menuNameListViewBill(),
),
),
const SizedBox(
width: 10,
height: 6,
),
Container(
height: 16,
child: Center(
child: defaultText(
context,
(listOrders[j].note != '')
? 'Ubah'
: 'Catatan',
style: noteViewBill(
color: textInButton,
),
),
defaultText(
context,
'${listOrders[j].totalItem} X Rp ${formatNumber().format(listOrders[j].satuanHarga)}',
style: viewbillStyle(
font: 12,
fontWeight: FontWeight.w300,
),
)
),
const SizedBox(
height: 6,
),
(listOrders[j].note != '')
? Container(
width: widthRowForNote,
child: defaultText(
context,
"Catatan: ${listOrders[j].note}",
// maxLines: 2,
// overFlow:
// TextOverflow.ellipsis,
style: viewbillStyle(
font: 12,
fontWeight:
FontWeight.w300,
),
),
)
: const SizedBox(),
],
),
),
)
],
),
const Spacer(),
Stack(
),
Container(
width: double.infinity,
color: backgroundWhite,
padding: const EdgeInsets.only(
left: paddingLeftRight,
right: paddingLeftRight,
bottom: 10,
),
child: Row(
children: [
Container(
width: 94,
height: 22,
decoration: BoxDecoration(
borderRadius:
BorderRadius.circular(30),
color: backgroundColor,
),
child: Center(
child: defaultText(
context,
listOrders[j]
.totalItem
.toString(),
style: amountViewBillButton(),
GestureDetector(
onTap: () {
final noteController =
TextEditingController(
text: listOrders[j].note);
FocusScopeNode currentFocus =
FocusScope.of(context);
if (!currentFocus
.hasPrimaryFocus) {
currentFocus.unfocus();
}
showModalBottomSheet(
backgroundColor:
backgroundColor,
isScrollControlled: true,
context: context,
builder: (context) {
return NoteModalBottomSheet(
noteController:
noteController,
initialValue:
listOrders[j].totalItem,
orderVariants: const [],
menuItem: FilterMenu(
id: '',
name: '',
price: '',
originalPrice: '',
imageUrlMedium: '',
imageUrlThumbnail: '',
isSell: false,
type: 1,
categoryName: '',
categoryId: '',
description: '',
groupName: '',
groupId: '',
),
listOrders: listOrders,
from: fromConfirmationPage,
contextFrom: context,
idMenu: listOrders[j].id,
menuName:
listOrders[j].namaMenu,
priceMemu: listOrders[j]
.satuanHarga,
imageUrl:
listOrders[j].imageUrl,
);
},
);
},
child: Container(
height: 30,
width: 98,
decoration: BoxDecoration(
borderRadius:
BorderRadius.circular(21),
color: buttonColor),
child: Row(
mainAxisAlignment:
MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
const Image(
height: 16,
width: 16,
image: AssetImage(
'assets/icons/note.png'),
),
const SizedBox(
width: 10,
),
Container(
height: 16,
child: Center(
child: defaultText(
context,
(listOrders[j].note !=
'')
? 'Ubah'
: 'Catatan',
style: noteViewBill(
color: textInButton,
),
),
),
)
],
),
),
),
Positioned(
left: 0,
child: GestureDetector(
onTap: () {
FocusScopeNode currentFocus =
FocusScope.of(context);
if (!currentFocus
.hasPrimaryFocus) {
currentFocus.unfocus();
}
Map<String, dynamic>
insertData = {
'menu_id': listOrders[j].id,
'menu_name':
listOrders[j].namaMenu,
'initvalue':
listOrders[j].totalItem -
1,
'menu_price':
listOrders[j].satuanHarga,
'total_price':
listOrders[j].satuanHarga,
'old_order': listOrders,
'image_url':
listOrders[j].imageUrl,
'order_variant': [],
'note': listOrders[j].note,
};
context
.read<OrdersBloc>()
.insertData(insertData);
},
child: Container(
width: 22,
const Spacer(),
Stack(
children: [
Container(
width: 94,
height: 22,
child: Image(
image: AssetImage((isExcelso)
? 'assets/icons/minus-gold.png'
: 'assets/icons/minus-blue.png'),
decoration: BoxDecoration(
borderRadius:
BorderRadius.circular(30),
color: backgroundColor,
),
child: Center(
child: defaultText(
context,
listOrders[j]
.totalItem
.toString(),
style:
amountViewBillButton(),
),
),
),
),
),
Positioned(
right: 0,
child: GestureDetector(
onTap: () {
FocusScopeNode currentFocus =
FocusScope.of(context);
Positioned(
left: 0,
child: GestureDetector(
onTap: () {
FocusScopeNode
currentFocus =
FocusScope.of(context);
if (!currentFocus
.hasPrimaryFocus) {
currentFocus.unfocus();
}
Map<String, dynamic>
insertData = {
'menu_id': listOrders[j].id,
'menu_name':
listOrders[j].namaMenu,
'initvalue':
listOrders[j].totalItem +
if (!currentFocus
.hasPrimaryFocus) {
currentFocus.unfocus();
}
Map<String, dynamic>
insertData = {
'menu_id':
listOrders[j].id,
'menu_name': listOrders[j]
.namaMenu,
'initvalue': listOrders[j]
.totalItem -
1,
'menu_price':
listOrders[j].satuanHarga,
'total_price':
listOrders[j].satuanHarga,
'old_order': listOrders,
'image_url':
listOrders[j].imageUrl,
'order_variant': [],
'note': listOrders[j].note,
};
context
.read<OrdersBloc>()
.insertData(insertData);
},
child: Container(
width: 22,
height: 22,
child: Image(
image: AssetImage((isExcelso)
? 'assets/icons/plus-gold.png'
: 'assets/icons/plus.png'),
'menu_price':
listOrders[j]
.satuanHarga,
'total_price':
listOrders[j]
.satuanHarga,
'old_order': listOrders,
'image_url': listOrders[j]
.imageUrl,
'order_variant': [],
'note':
listOrders[j].note,
};
context
.read<OrdersBloc>()
.insertData(insertData);
},
child: Container(
width: 22,
height: 22,
child: Image(
image: AssetImage((isExcelso)
? 'assets/icons/minus-gold.png'
: 'assets/icons/minus-blue.png'),
),
),
),
),
),
Positioned(
right: 0,
child: GestureDetector(
onTap: () {
FocusScopeNode
currentFocus =
FocusScope.of(context);
if (!currentFocus
.hasPrimaryFocus) {
currentFocus.unfocus();
}
Map<String, dynamic>
insertData = {
'menu_id':
listOrders[j].id,
'menu_name': listOrders[j]
.namaMenu,
'initvalue': listOrders[j]
.totalItem +
1,
'menu_price':
listOrders[j]
.satuanHarga,
'total_price':
listOrders[j]
.satuanHarga,
'old_order': listOrders,
'image_url': listOrders[j]
.imageUrl,
'order_variant': [],
'note':
listOrders[j].note,
};
context
.read<OrdersBloc>()
.insertData(insertData);
},
child: Container(
width: 22,
height: 22,
child: Image(
image: AssetImage((isExcelso)
? 'assets/icons/plus-gold.png'
: 'assets/icons/plus.png'),
),
),
),
)
],
),
const SizedBox(
width: 12,
)
],
),
const SizedBox(
width: 12,
)
],
),
),
const SizedBox(
height: 24,
)
],
),
const SizedBox(
height: 24,
)
],
),
// ListView.builder(
// physics:
// const NeverScrollableScrollPhysics(), // to disable scrolling
// shrinkWrap: true,
// itemCount: listOrders.length,
// itemBuilder: (context, i) {
// List<String> variantCaption = [];
// List<String> variantName = [];
// int totalItem;
// if (listOrders[i].orderDetail.isNotEmpty) {
// for (int y = 0;
// y <
// listOrders[i]
// .orderDetail[i]
// .orderVariant
// .length;
// y++) {
// int indexCaption = variantCaption.indexWhere(
// (element) =>
// element ==
// listOrders[i]
// .orderDetail[i]
// .orderVariant[y]
// .caption);
// if (indexCaption == -1) {
// variantCaption.add(listOrders[i]
// .orderDetail[i]
// .orderVariant[y]
// .caption);
// variantName.add(listOrders[i]
// .orderDetail[i]
// .orderVariant[y]
// .name);
// } else {
// variantName[indexCaption] +=
// ", ${listOrders[i].orderDetail[i].orderVariant[y].name}";
// }
// }
// int totalItemOrderDetail = 0;
// for (int kk = 0;
// kk < listOrders[i].orderDetail.length;
// kk++) {
// totalItemOrderDetail +=
// listOrders[i].orderDetail[kk].totalItem;
// }
// totalItem = totalItemOrderDetail;
// } else {
// totalItem = listOrders[i].totalItem;
// }
// return Column(
// children: [
// Container(
// width: double.infinity,
// padding: const EdgeInsets.symmetric(
// horizontal: paddingLeftRight,
// vertical: 16,
// ),
// color: backgroundWhite,
// child: Row(
// crossAxisAlignment:
// CrossAxisAlignment.center,
// mainAxisAlignment:
// MainAxisAlignment.start,
// children: [
// (listOrders[i].imageUrl != '')
// ? Image(
// width: 80,
// height: 80,
// fit: BoxFit.fill,
// image: NetworkImage(
// listOrders[i].imageUrl),
// )
// : const Image(
// width: 80,
// height: 80,
// fit: BoxFit.fill,
// image: AssetImage(
// 'assets/noimage.png'),
// ),
// const SizedBox(
// width: 12,
// ),
// Column(
// crossAxisAlignment:
// CrossAxisAlignment.start,
// mainAxisAlignment:
// MainAxisAlignment.center,
// children: [
// defaultText(
// context,
// listOrders[i].namaMenu,
// maxLines: 2,
// overFlow: TextOverflow.ellipsis,
// style: menuNameListViewBill(),
// ),
// const SizedBox(
// height: 6,
// ),
// defaultText(
// context,
// '$totalItem X Rp ${formatNumber().format(listOrders[i].satuanHarga)}',
// style: viewbillStyle(
// font: 12,
// fontWeight: FontWeight.w300,
// ),
// ),
// const SizedBox(
// height: 6,
// ),
// (listOrders[i].note != '')
// ? defaultText(
// context,
// "Catatan: ${listOrders[i].note}",
// maxLines: 2,
// overFlow:
// TextOverflow.ellipsis,
// style: viewbillStyle(
// font: 12,
// fontWeight:
// FontWeight.w300,
// ),
// )
// : const SizedBox(),
// // (listOrders[i]
// // .orderDetail
// // .isNotEmpty)
// // ? defaultText(
// // context,
// // 'Variant : ',
// // maxLines: 2,
// // overFlow:
// // TextOverflow.ellipsis,
// // style: viewbillStyle(
// // font: 12,
// // fontWeight:
// // FontWeight.w300,
// // ),
// // )
// // : const SizedBox(),
// if (listOrders[i]
// .orderDetail
// .isNotEmpty)
// for (int a = 0;
// a < variantCaption.length;
// a++)
// if (variantCaption[a] != '')
// // defaultText(
// // context,
// // listOrders[i]
// // .orderDetail[0]
// // .orderVariant[a]
// // .name,
// // maxLines: 2,
// // overFlow:
// // TextOverflow.ellipsis,
// // style: viewbillStyle(
// // font: 12,
// // fontWeight:
// // FontWeight.w300,
// // ),
// // ),
// Row(
// children: [
// defaultText(
// context,
// "${variantCaption[a]} : ",
// maxLines: 2,
// overFlow: TextOverflow
// .ellipsis,
// style: viewbillStyle(
// font: 12,
// fontWeight:
// FontWeight.w300,
// ),
// ),
// defaultText(
// context,
// variantName[a],
// maxLines: 2,
// overFlow: TextOverflow
// .ellipsis,
// style: viewbillStyle(
// font: 12,
// fontWeight:
// FontWeight.w300,
// ),
// ),
// ],
// )
// ],
// )
// ],
// ),
// ),
// const SizedBox(
// height: 24,
// )
// ],
// );
// },
// ),
const AddMoreOrder()
// ListView.builder(
// physics:
// const NeverScrollableScrollPhysics(), // to disable scrolling
// shrinkWrap: true,
// itemCount: listOrders.length,
// itemBuilder: (context, i) {
// List<String> variantCaption = [];
// List<String> variantName = [];
// int totalItem;
// if (listOrders[i].orderDetail.isNotEmpty) {
// for (int y = 0;
// y <
// listOrders[i]
// .orderDetail[i]
// .orderVariant
// .length;
// y++) {
// int indexCaption = variantCaption.indexWhere(
// (element) =>
// element ==
// listOrders[i]
// .orderDetail[i]
// .orderVariant[y]
// .caption);
// if (indexCaption == -1) {
// variantCaption.add(listOrders[i]
// .orderDetail[i]
// .orderVariant[y]
// .caption);
// variantName.add(listOrders[i]
// .orderDetail[i]
// .orderVariant[y]
// .name);
// } else {
// variantName[indexCaption] +=
// ", ${listOrders[i].orderDetail[i].orderVariant[y].name}";
// }
// }
// int totalItemOrderDetail = 0;
// for (int kk = 0;
// kk < listOrders[i].orderDetail.length;
// kk++) {
// totalItemOrderDetail +=
// listOrders[i].orderDetail[kk].totalItem;
// }
// totalItem = totalItemOrderDetail;
// } else {
// totalItem = listOrders[i].totalItem;
// }
// return Column(
// children: [
// Container(
// width: double.infinity,
// padding: const EdgeInsets.symmetric(
// horizontal: paddingLeftRight,
// vertical: 16,
// ),
// color: backgroundWhite,
// child: Row(
// crossAxisAlignment:
// CrossAxisAlignment.center,
// mainAxisAlignment:
// MainAxisAlignment.start,
// children: [
// (listOrders[i].imageUrl != '')
// ? Image(
// width: 80,
// height: 80,
// fit: BoxFit.fill,
// image: NetworkImage(
// listOrders[i].imageUrl),
// )
// : const Image(
// width: 80,
// height: 80,
// fit: BoxFit.fill,
// image: AssetImage(
// 'assets/noimage.png'),
// ),
// const SizedBox(
// width: 12,
// ),
// Column(
// crossAxisAlignment:
// CrossAxisAlignment.start,
// mainAxisAlignment:
// MainAxisAlignment.center,
// children: [
// defaultText(
// context,
// listOrders[i].namaMenu,
// maxLines: 2,
// overFlow: TextOverflow.ellipsis,
// style: menuNameListViewBill(),
// ),
// const SizedBox(
// height: 6,
// ),
// defaultText(
// context,
// '$totalItem X Rp ${formatNumber().format(listOrders[i].satuanHarga)}',
// style: viewbillStyle(
// font: 12,
// fontWeight: FontWeight.w300,
// ),
// ),
// const SizedBox(
// height: 6,
// ),
// (listOrders[i].note != '')
// ? defaultText(
// context,
// "Catatan: ${listOrders[i].note}",
// maxLines: 2,
// overFlow:
// TextOverflow.ellipsis,
// style: viewbillStyle(
// font: 12,
// fontWeight:
// FontWeight.w300,
// ),
// )
// : const SizedBox(),
// // (listOrders[i]
// // .orderDetail
// // .isNotEmpty)
// // ? defaultText(
// // context,
// // 'Variant : ',
// // maxLines: 2,
// // overFlow:
// // TextOverflow.ellipsis,
// // style: viewbillStyle(
// // font: 12,
// // fontWeight:
// // FontWeight.w300,
// // ),
// // )
// // : const SizedBox(),
// if (listOrders[i]
// .orderDetail
// .isNotEmpty)
// for (int a = 0;
// a < variantCaption.length;
// a++)
// if (variantCaption[a] != '')
// // defaultText(
// // context,
// // listOrders[i]
// // .orderDetail[0]
// // .orderVariant[a]
// // .name,
// // maxLines: 2,
// // overFlow:
// // TextOverflow.ellipsis,
// // style: viewbillStyle(
// // font: 12,
// // fontWeight:
// // FontWeight.w300,
// // ),
// // ),
// Row(
// children: [
// defaultText(
// context,
// "${variantCaption[a]} : ",
// maxLines: 2,
// overFlow: TextOverflow
// .ellipsis,
// style: viewbillStyle(
// font: 12,
// fontWeight:
// FontWeight.w300,
// ),
// ),
// defaultText(
// context,
// variantName[a],
// maxLines: 2,
// overFlow: TextOverflow
// .ellipsis,
// style: viewbillStyle(
// font: 12,
// fontWeight:
// FontWeight.w300,
// ),
// ),
// ],
// )
// ],
// )
// ],
// ),
// ),
// const SizedBox(
// height: 24,
// )
// ],
// );
// },
// ),
const AddMoreOrder()
],
),
),
)
],
),
Positioned(
bottom: 0,
child: Container(
decoration: const BoxDecoration(
borderRadius: BorderRadius.only(
topLeft: Radius.circular(16),
topRight: Radius.circular(16),
),
color: backgroundWhite,
boxShadow: [
BoxShadow(
color: Colors.grey,
blurRadius: 10.0,
)
],
),
padding: const EdgeInsets.all(paddingLeftRight),
width: widthScreen,
child: GestureDetector(
onTap: () {
String username = getCustomerName();
if (username != '') {
checkOut(context, listOrders, username);
} else {
modalInputName(context, nameController, listOrders);
}
},
child: ButtonComponent(
buttonColor: buttonColor,
teksButton:
'Pesan - Rp ${formatNumber().format(totalHarga)}'),
),
),
)
],
),
Positioned(
bottom: 0,
child: Container(
decoration: const BoxDecoration(
borderRadius: BorderRadius.only(
topLeft: Radius.circular(16),
topRight: Radius.circular(16),
),
color: backgroundWhite,
boxShadow: [
BoxShadow(
color: Colors.grey,
blurRadius: 10.0,
)
],
),
padding: const EdgeInsets.all(paddingLeftRight),
width: widthScreen,
child: GestureDetector(
onTap: () {
String username = getCustomerName();
if (username != '') {
checkOut(context, listOrders, username);
} else {
modalInputName(context, nameController, listOrders);
}
},
child: ButtonComponent(
buttonColor: buttonColor,
teksButton:
'Pesan - Rp ${formatNumber().format(totalHarga)}'),
),
),
)
],
),
);
},
);
},
);
......@@ -691,18 +716,20 @@ class CoreConfirm extends StatelessWidget {
}
class VariantOrder extends StatefulWidget {
VariantOrder({
const VariantOrder({
Key? key,
required this.i,
required this.indexAdaVariant,
required this.widthRowForNote,
required this.listOrders,
required this.trigger,
}) : super(key: key);
var i;
final String i;
final List indexAdaVariant;
final double widthRowForNote;
final List<Orders> listOrders;
final bool trigger;
@override
State<VariantOrder> createState() => _VariantOrderState();
......@@ -1021,7 +1048,10 @@ class _VariantOrderState extends State<VariantOrder> {
'single_order_detail': orderDetailNow,
};
context.read<OrdersBloc>().insertData(insertData);
setState(() {});
context
.read<TriggerRefreshInConfirmationPage>()
.trigger(!widget.trigger);
// setState(() {});
},
child: Container(
width: 22,
......@@ -1070,7 +1100,10 @@ class _VariantOrderState extends State<VariantOrder> {
'single_order_detail': orderDetailNow,
};
context.read<OrdersBloc>().insertData(insertData);
setState(() {});
context
.read<TriggerRefreshInConfirmationPage>()
.trigger(!widget.trigger);
// setState(() {});
},
child: Container(
width: 22,
......
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