Commit ecb565e5 authored by Dio Maulana's avatar Dio Maulana

variant confirm fixed

parent 7c0c03be
......@@ -67,11 +67,13 @@ void main() async {
prefs = value;
configLoading();
for (int d = 0; d < Uri.base.pathSegments.length; d++) {
stringPath.add(Uri.base.pathSegments[d]);
if (d == Uri.base.pathSegments.length - 1) {
routesToAccess += Uri.base.pathSegments[d];
} else {
routesToAccess += '${Uri.base.pathSegments[d]}/';
if (Uri.base.pathSegments[0] != 'byod-neo/') {
stringPath.add(Uri.base.pathSegments[d]);
if (d == Uri.base.pathSegments.length - 1) {
routesToAccess += Uri.base.pathSegments[d];
} else {
routesToAccess += '${Uri.base.pathSegments[d]}/';
}
}
}
loadAssetConfig().then((title) {
......
......@@ -41,8 +41,8 @@ class CoreConfirm extends StatelessWidget {
return BlocBuilder<OrdersBloc, List<Orders>>(
builder: (context, listOrders) {
int totalHarga = 0;
// List indexTidakAdaVariant = [];
// List<String> indexAdaVariant = [];
List indexTidakAdaVariant = [];
List indexAdaVariant = [];
// if (listOrders.isNotEmpty) {
// int fixTotalHarga = 0;
......@@ -78,14 +78,15 @@ class CoreConfirm extends StatelessWidget {
// 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);
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}';
// indexAdaVariant.add(indexWithVariant);
String indexWithVariant =
'$i|$kk'; // index orderan|index order detail
indexAdaVariant.add(indexWithVariant);
totalHargaOrderDetail +=
listOrders[i].orderDetail[kk].totalHarga;
// totalItemOrderDetail +=
......@@ -98,6 +99,7 @@ class CoreConfirm extends StatelessWidget {
totalHarga = fixTotalHarga + totalHargaBukanOrderDetail;
// totalItem = fixTotalItem + totalItemBukanOrderDetail;
}
return Container(
width: widthScreen,
child: Stack(
......@@ -114,208 +116,365 @@ class CoreConfirm extends StatelessWidget {
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,
),
for (var i in indexAdaVariant)
Container(
child: listWithVariant(
listOrders,
i,
context,
indexAdaVariant,
),
),
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(
height: 6,
const SizedBox(
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(
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: 6,
),
(listOrders[j].note != '')
? defaultText(
context,
"Catatan: ${listOrders[j].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 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()
],
),
......@@ -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,
......
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