Commit ecb565e5 authored by Dio Maulana's avatar Dio Maulana

variant confirm fixed

parent 7c0c03be
...@@ -67,11 +67,13 @@ void main() async { ...@@ -67,11 +67,13 @@ void main() async {
prefs = value; prefs = value;
configLoading(); configLoading();
for (int d = 0; d < Uri.base.pathSegments.length; d++) { for (int d = 0; d < Uri.base.pathSegments.length; d++) {
stringPath.add(Uri.base.pathSegments[d]); if (Uri.base.pathSegments[0] != 'byod-neo/') {
if (d == Uri.base.pathSegments.length - 1) { stringPath.add(Uri.base.pathSegments[d]);
routesToAccess += Uri.base.pathSegments[d]; if (d == Uri.base.pathSegments.length - 1) {
} else { routesToAccess += Uri.base.pathSegments[d];
routesToAccess += '${Uri.base.pathSegments[d]}/'; } else {
routesToAccess += '${Uri.base.pathSegments[d]}/';
}
} }
} }
loadAssetConfig().then((title) { loadAssetConfig().then((title) {
......
...@@ -41,8 +41,8 @@ class CoreConfirm extends StatelessWidget { ...@@ -41,8 +41,8 @@ class CoreConfirm extends StatelessWidget {
return BlocBuilder<OrdersBloc, List<Orders>>( return BlocBuilder<OrdersBloc, List<Orders>>(
builder: (context, listOrders) { builder: (context, listOrders) {
int totalHarga = 0; int totalHarga = 0;
// List indexTidakAdaVariant = []; List indexTidakAdaVariant = [];
// List<String> indexAdaVariant = []; List indexAdaVariant = [];
// if (listOrders.isNotEmpty) { // if (listOrders.isNotEmpty) {
// int fixTotalHarga = 0; // int fixTotalHarga = 0;
...@@ -78,14 +78,15 @@ class CoreConfirm extends StatelessWidget { ...@@ -78,14 +78,15 @@ class CoreConfirm extends StatelessWidget {
// totalItem += listOrders[i].totalItem; // totalItem += listOrders[i].totalItem;
// check apakah ada order detail. kalau ada rekalkulasi total harga sesuai order detail // check apakah ada order detail. kalau ada rekalkulasi total harga sesuai order detail
if (listOrders[i].orderDetail.isEmpty) { if (listOrders[i].orderDetail.isEmpty) {
// indexTidakAdaVariant.add(i); indexTidakAdaVariant.add(i);
totalHargaBukanOrderDetail += totalHargaBukanOrderDetail +=
(listOrders[i].totalItem * listOrders[i].totalHarga); (listOrders[i].totalItem * listOrders[i].totalHarga);
// totalItemBukanOrderDetail += listOrders[i].totalItem; // totalItemBukanOrderDetail += listOrders[i].totalItem;
} else { } else {
for (int kk = 0; kk < listOrders[i].orderDetail.length; kk++) { for (int kk = 0; kk < listOrders[i].orderDetail.length; kk++) {
// String indexWithVariant = '${i}|${kk}'; String indexWithVariant =
// indexAdaVariant.add(indexWithVariant); '$i|$kk'; // index orderan|index order detail
indexAdaVariant.add(indexWithVariant);
totalHargaOrderDetail += totalHargaOrderDetail +=
listOrders[i].orderDetail[kk].totalHarga; listOrders[i].orderDetail[kk].totalHarga;
// totalItemOrderDetail += // totalItemOrderDetail +=
...@@ -98,6 +99,7 @@ class CoreConfirm extends StatelessWidget { ...@@ -98,6 +99,7 @@ class CoreConfirm extends StatelessWidget {
totalHarga = fixTotalHarga + totalHargaBukanOrderDetail; totalHarga = fixTotalHarga + totalHargaBukanOrderDetail;
// totalItem = fixTotalItem + totalItemBukanOrderDetail; // totalItem = fixTotalItem + totalItemBukanOrderDetail;
} }
return Container( return Container(
width: widthScreen, width: widthScreen,
child: Stack( child: Stack(
...@@ -114,208 +116,365 @@ class CoreConfirm extends StatelessWidget { ...@@ -114,208 +116,365 @@ class CoreConfirm extends StatelessWidget {
const SizedBox( const SizedBox(
height: 24, height: 24,
), ),
ListView.builder( for (var i in indexAdaVariant)
physics: Container(
const NeverScrollableScrollPhysics(), // to disable scrolling child: listWithVariant(
shrinkWrap: true, listOrders,
itemCount: listOrders.length, i,
itemBuilder: (context, i) { context,
List<String> variantCaption = ['']; indexAdaVariant,
List<String> variantName = ['']; ),
),
int totalItem; for (int j in indexTidakAdaVariant)
if (listOrders[i].orderDetail.isNotEmpty) { Column(
for (int y = 0; children: [
y < Container(
listOrders[i] width: double.infinity,
.orderDetail[i] padding: const EdgeInsets.symmetric(
.orderVariant horizontal: paddingLeftRight,
.length; vertical: 16,
y++) { ),
int indexCaption = variantCaption.indexWhere( color: backgroundWhite,
(element) => child: Row(
element == crossAxisAlignment:
listOrders[i] CrossAxisAlignment.center,
.orderDetail[i] mainAxisAlignment: MainAxisAlignment.start,
.orderVariant[y] children: [
.caption); (listOrders[j].imageUrl != '')
if (indexCaption == -1) { ? Image(
variantCaption.add(listOrders[i] width: 80,
.orderDetail[i] height: 80,
.orderVariant[y] fit: BoxFit.fill,
.caption); image: NetworkImage(
variantName.add(listOrders[i] listOrders[j].imageUrl),
.orderDetail[i] )
.orderVariant[y] : const Image(
.name); width: 80,
} else { height: 80,
variantName[indexCaption] += fit: BoxFit.fill,
", ${listOrders[i].orderDetail[i].orderVariant[y].name}"; image: AssetImage(
} 'assets/noimage.png'),
}
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( const SizedBox(
height: 6, width: 12,
),
Column(
crossAxisAlignment:
CrossAxisAlignment.start,
mainAxisAlignment:
MainAxisAlignment.center,
children: [
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,
), ),
(listOrders[i].note != '') ),
? defaultText( const SizedBox(
context, height: 6,
"Catatan: ${listOrders[i].note}", ),
maxLines: 2, (listOrders[j].note != '')
overFlow: ? defaultText(
TextOverflow.ellipsis, context,
style: viewbillStyle( "Catatan: ${listOrders[j].note}",
font: 12, maxLines: 2,
fontWeight: overFlow:
FontWeight.w300, TextOverflow.ellipsis,
), style: viewbillStyle(
) font: 12,
: const SizedBox(), fontWeight: FontWeight.w300,
// (listOrders[i] ),
// .orderDetail )
// .isNotEmpty) : const SizedBox(),
// ? defaultText( // (listOrders[i]
// context, // .orderDetail
// 'Variant : ', // .isNotEmpty)
// maxLines: 2, // ? defaultText(
// overFlow: // context,
// TextOverflow.ellipsis, // 'Variant : ',
// style: viewbillStyle( // maxLines: 2,
// font: 12, // overFlow:
// fontWeight: // TextOverflow.ellipsis,
// FontWeight.w300, // style: viewbillStyle(
// ), // font: 12,
// ) // fontWeight:
// : const SizedBox(), // FontWeight.w300,
if (listOrders[i] // ),
.orderDetail // )
.isNotEmpty) // : const SizedBox(),
for (int a = 0; // if (listOrders[i]
a < variantCaption.length; // .orderDetail
a++) // .isNotEmpty)
if (variantCaption[a] != '') // for (int a = 0;
// defaultText( // a < variantCaption.length;
// context, // a++)
// listOrders[i] // if (variantCaption[a] != '')
// .orderDetail[0] // // defaultText(
// .orderVariant[a] // // context,
// .name, // // listOrders[i]
// maxLines: 2, // // .orderDetail[0]
// overFlow: // // .orderVariant[a]
// TextOverflow.ellipsis, // // .name,
// style: viewbillStyle( // // maxLines: 2,
// font: 12, // // overFlow:
// fontWeight: // // TextOverflow.ellipsis,
// FontWeight.w300, // // style: viewbillStyle(
// ), // // font: 12,
// ), // // fontWeight:
Row( // // FontWeight.w300,
children: [ // // ),
defaultText( // // ),
context, // Row(
"${variantCaption[a]} : ", // children: [
maxLines: 2, // defaultText(
overFlow: TextOverflow // context,
.ellipsis, // "${variantCaption[a]} : ",
style: viewbillStyle( // maxLines: 2,
font: 12, // overFlow:
fontWeight: // TextOverflow.ellipsis,
FontWeight.w300, // style: viewbillStyle(
), // font: 12,
), // fontWeight:
defaultText( // FontWeight.w300,
context, // ),
variantName[a], // ),
maxLines: 2, // defaultText(
overFlow: TextOverflow // context,
.ellipsis, // variantName[a],
style: viewbillStyle( // maxLines: 2,
font: 12, // overFlow:
fontWeight: // TextOverflow.ellipsis,
FontWeight.w300, // style: viewbillStyle(
), // font: 12,
), // fontWeight:
], // FontWeight.w300,
) // ),
], // ),
) // ],
], // )
), ],
)
],
), ),
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() const AddMoreOrder()
], ],
), ),
...@@ -363,6 +522,164 @@ class CoreConfirm extends StatelessWidget { ...@@ -363,6 +522,164 @@ class CoreConfirm extends StatelessWidget {
}, },
); );
} }
Column listWithVariant(List<Orders> listOrders, i, BuildContext context,
List<dynamic> indexAdaVariant) {
// dippecah lagi masing2 indexnya
int indexOrder = int.parse(i.split('|')[0]);
int indexOrderDetail = int.parse(i.split('|')[1]);
List<String> variantCaption = [];
List<String> variantName = [];
if (listOrders[indexOrder].orderDetail.isNotEmpty) {
for (int y = 0;
y <
listOrders[indexOrder]
.orderDetail[indexOrderDetail]
.orderVariant
.length;
y++) {
int indexCaption = variantCaption.indexWhere((element) =>
element ==
listOrders[indexOrder]
.orderDetail[indexOrderDetail]
.orderVariant[y]
.caption);
if (indexCaption == -1) {
variantCaption.add(listOrders[indexOrder]
.orderDetail[indexOrderDetail]
.orderVariant[y]
.caption);
variantName.add(listOrders[indexOrder]
.orderDetail[indexOrderDetail]
.orderVariant[y]
.name);
} else {
variantName[indexCaption] +=
", ${listOrders[indexOrder].orderDetail[indexOrderDetail].orderVariant[y].name}";
}
}
}
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[indexOrder].imageUrl != '')
? Image(
width: 80,
height: 80,
fit: BoxFit.fill,
image: NetworkImage(listOrders[indexOrder].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[indexOrder].namaMenu,
maxLines: 2,
overFlow: TextOverflow.ellipsis,
style: menuNameListViewBill(),
),
const SizedBox(
height: 6,
),
defaultText(
context,
'${listOrders[indexOrder].orderDetail[indexOrderDetail].totalItem} X Rp ${formatNumber().format(listOrders[indexOrder].satuanHarga)}',
style: viewbillStyle(
font: 12,
fontWeight: FontWeight.w300,
),
),
const SizedBox(
height: 6,
),
(listOrders[indexOrder].orderDetail[indexOrderDetail].note !=
'')
? defaultText(
context,
"Catatan: ${listOrders[indexOrder].orderDetail[indexOrderDetail].note}",
maxLines: 2,
overFlow: TextOverflow.ellipsis,
style: viewbillStyle(
font: 12,
fontWeight: FontWeight.w300,
),
)
: const SizedBox(),
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,
)
],
);
}
} }
Future<dynamic> modalInputName(BuildContext context, Future<dynamic> modalInputName(BuildContext 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