Commit 400dfcbf authored by Jasa Digital's avatar Jasa Digital

fixed bug di halaman confirmation gabisa refresh

parent ab387a28
...@@ -9,6 +9,7 @@ class OrdersBloc extends Cubit<List<Orders>> { ...@@ -9,6 +9,7 @@ class OrdersBloc extends Cubit<List<Orders>> {
if (json['action'] == 'editVariant') { if (json['action'] == 'editVariant') {
// hanya ketika bottom sheet muncul untuk order yang mempunyai variant // hanya ketika bottom sheet muncul untuk order yang mempunyai variant
// Orders singleOrder = list[0][1]; // Orders singleOrder = list[0][1];
List<Orders> newResult = [];
List<Orders> listOrders = json['list_orders']; List<Orders> listOrders = json['list_orders'];
OrderDetail singleOrderDetail = json['single_order_detail']; OrderDetail singleOrderDetail = json['single_order_detail'];
...@@ -27,14 +28,16 @@ class OrdersBloc extends Cubit<List<Orders>> { ...@@ -27,14 +28,16 @@ class OrdersBloc extends Cubit<List<Orders>> {
singleOrderDetail.totalItem; singleOrderDetail.totalItem;
listOrders[indexListOrder].orderDetail[indexListOrderDetail].totalHarga = listOrders[indexListOrder].orderDetail[indexListOrderDetail].totalHarga =
singleOrderDetail.totalHarga; singleOrderDetail.totalHarga;
listOrders[indexListOrder].orderDetail[indexListOrderDetail].note =
singleOrderDetail.note;
if (singleOrderDetail.totalItem == 0) { if (singleOrderDetail.totalItem == 0) {
listOrders[indexListOrder].orderDetail.removeAt(indexListOrderDetail); listOrders[indexListOrder].orderDetail.removeAt(indexListOrderDetail);
if (listOrders[indexListOrder].orderDetail.isEmpty) { if (listOrders[indexListOrder].orderDetail.isEmpty) {
listOrders.removeAt(indexListOrder); listOrders.removeAt(indexListOrder);
} }
} }
newResult = listOrders;
emit(listOrders); emit(newResult);
} else { } else {
var listOrderOld = json['old_order']; // orderan lama var listOrderOld = json['old_order']; // orderan lama
List<Orders> orders = []; List<Orders> orders = [];
......
// ignore_for_file: must_be_immutable // ignore_for_file: must_be_immutable
import 'package:byod/helper/widget/style.dart'; import 'package:byod/helper/widget/style.dart';
import 'package:byod/models/order_details.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';
...@@ -19,7 +20,7 @@ class NoteModalBottomSheet extends StatelessWidget { ...@@ -19,7 +20,7 @@ class NoteModalBottomSheet extends StatelessWidget {
required this.initialValue, required this.initialValue,
required this.orderVariants, required this.orderVariants,
required this.menuItem, required this.menuItem,
required this.lisrOrders, required this.listOrders,
required this.from, required this.from,
this.idOrderan = '', this.idOrderan = '',
this.noteInit = '', this.noteInit = '',
...@@ -27,15 +28,19 @@ class NoteModalBottomSheet extends StatelessWidget { ...@@ -27,15 +28,19 @@ class NoteModalBottomSheet extends StatelessWidget {
this.menuName = '', this.menuName = '',
this.imageUrl = '', this.imageUrl = '',
this.priceMemu = 0, this.priceMemu = 0,
this.editVariantConfirmationPage = false,
required this.contextFrom, required this.contextFrom,
this.indexOrder = 0,
this.indexOrderDetail = 0,
}) : super(key: key); }) : super(key: key);
late TextEditingController noteController; late TextEditingController noteController;
final int initialValue; final int initialValue;
final List<OrderVariant> orderVariants; final List<OrderVariant> orderVariants;
final FilterMenu menuItem; final FilterMenu menuItem;
final List<Orders> lisrOrders; final List<Orders> listOrders;
final String from; final String from;
final bool editVariantConfirmationPage;
final String idOrderan; final String idOrderan;
final String noteInit; final String noteInit;
final BuildContext contextFrom; final BuildContext contextFrom;
...@@ -43,6 +48,8 @@ class NoteModalBottomSheet extends StatelessWidget { ...@@ -43,6 +48,8 @@ class NoteModalBottomSheet extends StatelessWidget {
final String menuName; final String menuName;
final String imageUrl; final String imageUrl;
final int priceMemu; final int priceMemu;
final int indexOrder;
final int indexOrderDetail;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
...@@ -99,7 +106,7 @@ class NoteModalBottomSheet extends StatelessWidget { ...@@ -99,7 +106,7 @@ class NoteModalBottomSheet extends StatelessWidget {
'menu_name': menuItem.name, 'menu_name': menuItem.name,
'initvalue': initialValue, 'initvalue': initialValue,
'menu_price': amountParseToInt(menuItem.price), 'menu_price': amountParseToInt(menuItem.price),
'old_order': lisrOrders, 'old_order': listOrders,
'image_url': menuItem.imageUrlMedium, 'image_url': menuItem.imageUrlMedium,
'total_price': amountParseToInt(menuItem.price), 'total_price': amountParseToInt(menuItem.price),
'order_variant': orderVariants, 'order_variant': orderVariants,
...@@ -117,13 +124,36 @@ class NoteModalBottomSheet extends StatelessWidget { ...@@ -117,13 +124,36 @@ class NoteModalBottomSheet extends StatelessWidget {
context.read<ViewBillBloc>().getBill(); context.read<ViewBillBloc>().getBill();
}); });
} }
} else if (from == fromConfirmationPage &&
editVariantConfirmationPage) {
OrderDetail orderDetailNow = OrderDetail(
allIdVariant: listOrders[indexOrder]
.orderDetail[indexOrderDetail]
.allIdVariant,
totalItem: listOrders[indexOrder]
.orderDetail[indexOrderDetail]
.totalItem,
totalHarga: listOrders[indexOrder]
.orderDetail[indexOrderDetail]
.totalHarga,
note: noteController.text,
orderVariant: listOrders[indexOrder]
.orderDetail[indexOrderDetail]
.orderVariant,
);
Map<String, dynamic> insertData = {
'action': 'editVariant',
'list_orders': listOrders,
'single_order_detail': orderDetailNow,
};
context.read<OrdersBloc>().insertData(insertData);
} else if (from == fromConfirmationPage) { } else if (from == fromConfirmationPage) {
Map<String, dynamic> insertData = { Map<String, dynamic> insertData = {
'menu_id': idMenu, 'menu_id': idMenu,
'menu_name': menuName, 'menu_name': menuName,
'initvalue': initialValue, 'initvalue': initialValue,
'menu_price': priceMemu, 'menu_price': priceMemu,
'old_order': lisrOrders, 'old_order': listOrders,
'image_url': menuItem.imageUrlMedium, 'image_url': menuItem.imageUrlMedium,
'total_price': priceMemu, 'total_price': priceMemu,
'order_variant': orderVariants, 'order_variant': orderVariants,
......
// ignore_for_file: sized_box_for_whitespace // ignore_for_file: sized_box_for_whitespace
import 'package:byod/helper/helper.dart'; import 'package:byod/helper/helper.dart';
import 'package:byod/helper/widget/plus_minus_button.dart';
import 'package:byod/helper/widget/style.dart'; import 'package:byod/helper/widget/style.dart';
import 'package:byod/ui/screen_responsive.dart'; import 'package:byod/ui/screen_responsive.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
...@@ -46,7 +45,7 @@ class CoreConfirm extends StatelessWidget { ...@@ -46,7 +45,7 @@ class CoreConfirm extends StatelessWidget {
double widthRowForNote = double widthRowForNote =
MediaQuery.of(context).size.width - 20 - 12 - 80 - 20; MediaQuery.of(context).size.width - 20 - 12 - 80 - 20;
return BlocBuilder<OrdersBloc, List<Orders>>( return BlocBuilder<OrdersBloc, List<Orders>>(
builder: (context, listOrders) { builder: (ctx, listOrders) {
int totalHarga = 0; int totalHarga = 0;
List indexTidakAdaVariant = []; List indexTidakAdaVariant = [];
List indexAdaVariant = []; List indexAdaVariant = [];
...@@ -128,14 +127,11 @@ class CoreConfirm extends StatelessWidget { ...@@ -128,14 +127,11 @@ class CoreConfirm extends StatelessWidget {
height: 24, height: 24,
), ),
for (var i in indexAdaVariant) for (var i in indexAdaVariant)
Container( VariantOrder(
child: listWithVariant( i: i,
listOrders, indexAdaVariant: indexAdaVariant,
i, widthRowForNote: widthRowForNote,
context, listOrders: listOrders,
indexAdaVariant,
widthRowForNote,
),
), ),
for (int j in indexTidakAdaVariant) for (int j in indexTidakAdaVariant)
Column( Column(
...@@ -217,72 +213,6 @@ class CoreConfirm extends StatelessWidget { ...@@ -217,72 +213,6 @@ class CoreConfirm extends StatelessWidget {
), ),
) )
: const SizedBox(), : 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,
// ),
// ),
// ],
// )
], ],
) )
], ],
...@@ -318,7 +248,7 @@ class CoreConfirm extends StatelessWidget { ...@@ -318,7 +248,7 @@ class CoreConfirm extends StatelessWidget {
noteController: noteController, noteController: noteController,
initialValue: initialValue:
listOrders[j].totalItem, listOrders[j].totalItem,
orderVariants: [], orderVariants: const [],
menuItem: FilterMenu( menuItem: FilterMenu(
id: '', id: '',
name: '', name: '',
...@@ -334,7 +264,7 @@ class CoreConfirm extends StatelessWidget { ...@@ -334,7 +264,7 @@ class CoreConfirm extends StatelessWidget {
groupName: '', groupName: '',
groupId: '', groupId: '',
), ),
lisrOrders: listOrders, listOrders: listOrders,
from: fromConfirmationPage, from: fromConfirmationPage,
contextFrom: context, contextFrom: context,
idMenu: listOrders[j].id, idMenu: listOrders[j].id,
...@@ -758,141 +688,175 @@ class CoreConfirm extends StatelessWidget { ...@@ -758,141 +688,175 @@ class CoreConfirm extends StatelessWidget {
}, },
); );
} }
}
class VariantOrder extends StatefulWidget {
VariantOrder({
Key? key,
required this.i,
required this.indexAdaVariant,
required this.widthRowForNote,
required this.listOrders,
}) : super(key: key);
var i;
final List indexAdaVariant;
final double widthRowForNote;
final List<Orders> listOrders;
Column listWithVariant( @override
List<Orders> listOrders, State<VariantOrder> createState() => _VariantOrderState();
i, }
BuildContext context,
List<dynamic> indexAdaVariant, class _VariantOrderState extends State<VariantOrder> {
double widthRowForNote, @override
) { Widget build(BuildContext context) {
// dippecah lagi masing2 indexnya // dippecah lagi masing2 indexnya
int indexOrder = int.parse(i.split('|')[0]); int indexOrder = int.parse(widget.i.split('|')[0]);
int indexOrderDetail = int.parse(i.split('|')[1]); int indexOrderDetail = int.parse(widget.i.split('|')[1]);
List<String> variantCaption = []; List<String> variantCaption = [];
List<String> variantName = []; List<String> variantName = [];
if (listOrders[indexOrder].orderDetail.isNotEmpty) { if (widget.listOrders[indexOrder].orderDetail.isNotEmpty) {
for (int y = 0; for (int y = 0;
y < y <
listOrders[indexOrder] widget.listOrders[indexOrder].orderDetail[indexOrderDetail]
.orderDetail[indexOrderDetail] .orderVariant.length;
.orderVariant
.length;
y++) { y++) {
int indexCaption = variantCaption.indexWhere((element) => int indexCaption = variantCaption.indexWhere((element) =>
element == element ==
listOrders[indexOrder] widget.listOrders[indexOrder].orderDetail[indexOrderDetail]
.orderDetail[indexOrderDetail] .orderVariant[y].caption);
.orderVariant[y]
.caption);
if (indexCaption == -1) { if (indexCaption == -1) {
variantCaption.add(listOrders[indexOrder] variantCaption.add(widget.listOrders[indexOrder]
.orderDetail[indexOrderDetail] .orderDetail[indexOrderDetail].orderVariant[y].caption);
.orderVariant[y] variantName.add(widget.listOrders[indexOrder]
.caption); .orderDetail[indexOrderDetail].orderVariant[y].name);
variantName.add(listOrders[indexOrder]
.orderDetail[indexOrderDetail]
.orderVariant[y]
.name);
} else { } else {
variantName[indexCaption] += variantName[indexCaption] +=
", ${listOrders[indexOrder].orderDetail[indexOrderDetail].orderVariant[y].name}"; ", ${widget.listOrders[indexOrder].orderDetail[indexOrderDetail].orderVariant[y].name}";
} }
} }
} }
return Column( return Container(
children: [ // child: listWithVariant(
Container( // listOrders,
width: double.infinity, // i,
padding: const EdgeInsets.symmetric( // context,
horizontal: paddingLeftRight, // indexAdaVariant,
vertical: 16, // widthRowForNote,
), // ),
color: backgroundWhite, child: Column(
child: Row( children: [
crossAxisAlignment: CrossAxisAlignment.center, Container(
mainAxisAlignment: MainAxisAlignment.start, width: double.infinity,
children: [ padding: const EdgeInsets.symmetric(
(listOrders[indexOrder].imageUrl != '') horizontal: paddingLeftRight,
? Image( vertical: 16,
width: 80, ),
height: 80, color: backgroundWhite,
fit: BoxFit.fill, child: Row(
image: NetworkImage(listOrders[indexOrder].imageUrl), crossAxisAlignment: CrossAxisAlignment.center,
) mainAxisAlignment: MainAxisAlignment.start,
: const Image( children: [
width: 80, (widget.listOrders[indexOrder].imageUrl != '')
height: 80, ? Image(
fit: BoxFit.fill, width: 80,
image: AssetImage('assets/noimage.png'), height: 80,
fit: BoxFit.fill,
image: NetworkImage(
widget.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: [
Container(
width: widget.widthRowForNote,
child: defaultText(
context,
widget.listOrders[indexOrder].namaMenu,
// maxLines: 2,
// overFlow: TextOverflow.ellipsis,
style: menuNameListViewBill(),
),
), ),
const SizedBox( const SizedBox(
width: 12, height: 6,
), ),
Column( defaultText(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Container(
width: widthRowForNote,
child: defaultText(
context, context,
listOrders[indexOrder].namaMenu, '${widget.listOrders[indexOrder].orderDetail[indexOrderDetail].totalItem} X Rp ${formatNumber().format(widget.listOrders[indexOrder].satuanHarga)}',
// maxLines: 2, style: viewbillStyle(
// overFlow: TextOverflow.ellipsis, font: 12,
style: menuNameListViewBill(), fontWeight: FontWeight.w300,
),
), ),
), const SizedBox(
const SizedBox( height: 6,
height: 6,
),
defaultText(
context,
'${listOrders[indexOrder].orderDetail[indexOrderDetail].totalItem} X Rp ${formatNumber().format(listOrders[indexOrder].satuanHarga)}',
style: viewbillStyle(
font: 12,
fontWeight: FontWeight.w300,
), ),
), for (int a = 0; a < variantCaption.length; a++)
const SizedBox( if (variantCaption[a] != '')
height: 6, // defaultText(
), // context,
for (int a = 0; a < variantCaption.length; 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: Container(
// FontWeight.w300, width: widget.widthRowForNote,
// ), child: Row(
// ), children: [
Container( defaultText(
width: widthRowForNote, context,
child: Row( "${variantCaption[a]} : ",
children: [ // maxLines: 2,
defaultText( // overFlow: TextOverflow.ellipsis,
context, style: viewbillStyle(
"${variantCaption[a]} : ", font: 12,
// maxLines: 2, fontWeight: FontWeight.w300,
// overFlow: TextOverflow.ellipsis, ),
style: viewbillStyle(
font: 12,
fontWeight: FontWeight.w300,
), ),
), defaultText(
defaultText( context,
variantName[a],
// maxLines: 2,
// overFlow: TextOverflow.ellipsis,
style: viewbillStyle(
font: 12,
fontWeight: FontWeight.w300,
),
),
],
),
),
(widget.listOrders[indexOrder].orderDetail[indexOrderDetail]
.note !=
'')
? Container(
width: widget.widthRowForNote,
child: defaultText(
context, context,
variantName[a], "Catatan: ${widget.listOrders[indexOrder].orderDetail[indexOrderDetail].note}",
// maxLines: 2, // maxLines: 2,
// overFlow: TextOverflow.ellipsis, // overFlow: TextOverflow.ellipsis,
style: viewbillStyle( style: viewbillStyle(
...@@ -900,269 +864,648 @@ class CoreConfirm extends StatelessWidget { ...@@ -900,269 +864,648 @@ class CoreConfirm extends StatelessWidget {
fontWeight: FontWeight.w300, fontWeight: FontWeight.w300,
), ),
), ),
], )
), : const SizedBox(),
), ],
(listOrders[indexOrder].orderDetail[indexOrderDetail].note != )
'') ],
? Container( ),
width: widthRowForNote,
child: defaultText(
context,
"Catatan: ${listOrders[indexOrder].orderDetail[indexOrderDetail].note}",
// maxLines: 2,
// overFlow: TextOverflow.ellipsis,
style: viewbillStyle(
font: 12,
fontWeight: FontWeight.w300,
),
),
)
: const SizedBox(),
],
)
],
),
),
Container(
width: double.infinity,
color: backgroundWhite,
padding: const EdgeInsets.only(
left: paddingLeftRight,
right: paddingLeftRight,
bottom: 10,
), ),
child: Row( Container(
children: [ width: double.infinity,
GestureDetector( color: backgroundWhite,
onTap: () { padding: const EdgeInsets.only(
final noteController = TextEditingController( left: paddingLeftRight,
text: listOrders[indexOrder] right: paddingLeftRight,
.orderDetail[indexOrderDetail] bottom: 10,
.note); ),
FocusScopeNode currentFocus = FocusScope.of(context); child: Row(
children: [
GestureDetector(
onTap: () {
final noteController = TextEditingController(
text: widget.listOrders[indexOrder]
.orderDetail[indexOrderDetail].note);
FocusScopeNode currentFocus = FocusScope.of(context);
if (!currentFocus.hasPrimaryFocus) { if (!currentFocus.hasPrimaryFocus) {
currentFocus.unfocus(); currentFocus.unfocus();
} }
showModalBottomSheet( showModalBottomSheet(
backgroundColor: backgroundColor, backgroundColor: backgroundColor,
isScrollControlled: true, isScrollControlled: true,
context: context, context: context,
builder: (context) { builder: (context) {
return NoteModalBottomSheet( return NoteModalBottomSheet(
noteController: noteController, noteController: noteController,
initialValue: listOrders[indexOrder].totalItem, initialValue: widget.listOrders[indexOrder].totalItem,
orderVariants: const [], orderVariants: const [],
menuItem: FilterMenu( menuItem: FilterMenu(
id: '', id: '',
name: '', name: '',
price: '', price: '',
originalPrice: '', originalPrice: '',
imageUrlMedium: '', imageUrlMedium: '',
imageUrlThumbnail: '', imageUrlThumbnail: '',
isSell: false, isSell: false,
type: 1, type: 1,
categoryName: '', categoryName: '',
categoryId: '', categoryId: '',
description: '', description: '',
groupName: '', groupName: '',
groupId: '', groupId: '',
),
listOrders: widget.listOrders,
from: fromConfirmationPage,
contextFrom: context,
idMenu: widget.listOrders[indexOrder].id,
menuName: widget.listOrders[indexOrder].namaMenu,
priceMemu: widget.listOrders[indexOrder].satuanHarga,
imageUrl: widget.listOrders[indexOrder].imageUrl,
editVariantConfirmationPage: true,
indexOrder: indexOrder,
indexOrderDetail: indexOrderDetail,
);
},
);
},
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'),
), ),
lisrOrders: listOrders, const SizedBox(
from: fromConfirmationPage, width: 10,
contextFrom: context, ),
idMenu: listOrders[indexOrder].id, Container(
menuName: listOrders[indexOrder].namaMenu, height: 16,
priceMemu: listOrders[indexOrder].satuanHarga, child: Center(
imageUrl: listOrders[indexOrder].imageUrl, child: defaultText(
); context,
}, (widget.listOrders[indexOrder].note != '')
); ? 'Ubah'
}, : 'Catatan',
child: Container( style: noteViewBill(
height: 30, color: textInButton,
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[indexOrder].note != '')
? 'Ubah'
: 'Catatan',
style: noteViewBill(
color: textInButton,
), ),
), ),
), )
) ],
], ),
), ),
), ),
), const Spacer(),
const Spacer(), Stack(
Stack( children: [
children: [ Container(
Container( width: 94,
width: 94, height: 22,
height: 22, decoration: BoxDecoration(
decoration: BoxDecoration( borderRadius: BorderRadius.circular(30),
borderRadius: BorderRadius.circular(30), color: backgroundColor,
color: backgroundColor, ),
), child: Center(
child: Center( child: defaultText(
child: defaultText( context,
context, widget.listOrders[indexOrder]
listOrders[indexOrder] .orderDetail[indexOrderDetail].totalItem
.orderDetail[indexOrderDetail] .toString(),
.totalItem style: amountViewBillButton(),
.toString(), ),
style: amountViewBillButton(),
), ),
), ),
), Positioned(
Positioned( left: 0,
left: 0, child: GestureDetector(
child: GestureDetector( onTap: () {
onTap: () { FocusScopeNode currentFocus = FocusScope.of(context);
FocusScopeNode currentFocus = FocusScope.of(context);
if (!currentFocus.hasPrimaryFocus) { if (!currentFocus.hasPrimaryFocus) {
currentFocus.unfocus(); currentFocus.unfocus();
} }
int totalHarga = listOrders[indexOrder] int totalHarga = widget.listOrders[indexOrder]
.orderDetail[indexOrderDetail] .orderDetail[indexOrderDetail].totalHarga
.totalHarga .toInt();
.toInt(); int totalItem = widget.listOrders[indexOrder]
int totalItem = listOrders[indexOrder] .orderDetail[indexOrderDetail].totalItem
.orderDetail[indexOrderDetail] .toInt();
.totalItem int satuanHarga = totalHarga ~/ totalItem;
.toInt(); OrderDetail orderDetailNow = OrderDetail(
int satuanHarga = totalHarga ~/ totalItem; allIdVariant: widget.listOrders[indexOrder]
OrderDetail orderDetailNow = OrderDetail( .orderDetail[indexOrderDetail].allIdVariant,
allIdVariant: listOrders[indexOrder] totalItem: widget.listOrders[indexOrder]
.orderDetail[indexOrderDetail] .orderDetail[indexOrderDetail].totalItem -
.allIdVariant, 1,
totalItem: listOrders[indexOrder] totalHarga: widget.listOrders[indexOrder]
.orderDetail[indexOrderDetail] .orderDetail[indexOrderDetail].totalHarga -
.totalItem - satuanHarga,
1, note: widget.listOrders[indexOrder]
totalHarga: listOrders[indexOrder] .orderDetail[indexOrderDetail].note,
.orderDetail[indexOrderDetail] orderVariant: widget.listOrders[indexOrder]
.totalHarga - .orderDetail[indexOrderDetail].orderVariant,
satuanHarga, );
note: listOrders[indexOrder] Map<String, dynamic> insertData = {
.orderDetail[indexOrderDetail] 'action': 'editVariant',
.note, 'list_orders': widget.listOrders,
orderVariant: listOrders[indexOrder] 'single_order_detail': orderDetailNow,
.orderDetail[indexOrderDetail] };
.orderVariant, context.read<OrdersBloc>().insertData(insertData);
); setState(() {});
Map<String, dynamic> insertData = { },
'action': 'editVariant', child: Container(
'list_orders': listOrders, width: 22,
'single_order_detail': orderDetailNow, height: 22,
}; child: Image(
context.read<OrdersBloc>().insertData(insertData); image: AssetImage((isExcelso)
}, ? 'assets/icons/minus-gold.png'
child: Container( : 'assets/icons/minus-blue.png'),
width: 22, ),
height: 22,
child: Image(
image: AssetImage((isExcelso)
? 'assets/icons/minus-gold.png'
: 'assets/icons/minus-blue.png'),
), ),
), ),
), ),
), Positioned(
Positioned( right: 0,
right: 0, child: GestureDetector(
child: GestureDetector( onTap: () {
onTap: () { FocusScopeNode currentFocus = FocusScope.of(context);
FocusScopeNode currentFocus = FocusScope.of(context);
if (!currentFocus.hasPrimaryFocus) { if (!currentFocus.hasPrimaryFocus) {
currentFocus.unfocus(); currentFocus.unfocus();
} }
int totalHarga = listOrders[indexOrder] int totalHarga = widget.listOrders[indexOrder]
.orderDetail[indexOrderDetail] .orderDetail[indexOrderDetail].totalHarga
.totalHarga .toInt();
.toInt(); int totalItem = widget.listOrders[indexOrder]
int totalItem = listOrders[indexOrder] .orderDetail[indexOrderDetail].totalItem
.orderDetail[indexOrderDetail] .toInt();
.totalItem int satuanHarga = totalHarga ~/ totalItem;
.toInt(); OrderDetail orderDetailNow = OrderDetail(
int satuanHarga = totalHarga ~/ totalItem; allIdVariant: widget.listOrders[indexOrder]
OrderDetail orderDetailNow = OrderDetail( .orderDetail[indexOrderDetail].allIdVariant,
allIdVariant: listOrders[indexOrder] totalItem: widget.listOrders[indexOrder]
.orderDetail[indexOrderDetail] .orderDetail[indexOrderDetail].totalItem +
.allIdVariant, 1,
totalItem: listOrders[indexOrder] totalHarga: widget.listOrders[indexOrder]
.orderDetail[indexOrderDetail] .orderDetail[indexOrderDetail].totalHarga +
.totalItem + satuanHarga,
1, note: widget.listOrders[indexOrder]
totalHarga: listOrders[indexOrder] .orderDetail[indexOrderDetail].note,
.orderDetail[indexOrderDetail] orderVariant: widget.listOrders[indexOrder]
.totalHarga + .orderDetail[indexOrderDetail].orderVariant,
satuanHarga, );
note: listOrders[indexOrder] Map<String, dynamic> insertData = {
.orderDetail[indexOrderDetail] 'action': 'editVariant',
.note, 'list_orders': widget.listOrders,
orderVariant: listOrders[indexOrder] 'single_order_detail': orderDetailNow,
.orderDetail[indexOrderDetail] };
.orderVariant, context.read<OrdersBloc>().insertData(insertData);
); setState(() {});
Map<String, dynamic> insertData = { },
'action': 'editVariant', child: Container(
'list_orders': listOrders, width: 22,
'single_order_detail': orderDetailNow, height: 22,
}; child: Image(
context.read<OrdersBloc>().insertData(insertData); image: AssetImage((isExcelso)
}, ? 'assets/icons/plus-gold.png'
child: Container( : 'assets/icons/plus.png'),
width: 22, ),
height: 22,
child: Image(
image: AssetImage((isExcelso)
? 'assets/icons/plus-gold.png'
: 'assets/icons/plus.png'),
), ),
), ),
), )
) ],
], ),
), const SizedBox(
const SizedBox( width: 12,
width: 12, )
) ],
], ),
), ),
), const SizedBox(
const SizedBox( height: 24,
height: 24, )
) ],
], ),
); );
} }
} }
// Column listWithVariant(
// List<Orders> listOrders,
// i,
// BuildContext context,
// List<dynamic> indexAdaVariant,
// double widthRowForNote,
// ) {
// // 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: [
// Container(
// width: widthRowForNote,
// child: 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,
// ),
// 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,
// // ),
// // ),
// Container(
// width: widthRowForNote,
// child: 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,
// ),
// ),
// ],
// ),
// ),
// (listOrders[indexOrder].orderDetail[indexOrderDetail].note !=
// '')
// ? Container(
// width: widthRowForNote,
// child: defaultText(
// context,
// "Catatan: ${listOrders[indexOrder].orderDetail[indexOrderDetail].note}",
// // maxLines: 2,
// // overFlow: TextOverflow.ellipsis,
// style: viewbillStyle(
// font: 12,
// fontWeight: FontWeight.w300,
// ),
// ),
// )
// : 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[indexOrder]
// .orderDetail[indexOrderDetail]
// .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[indexOrder].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[indexOrder].id,
// menuName: listOrders[indexOrder].namaMenu,
// priceMemu: listOrders[indexOrder].satuanHarga,
// imageUrl: listOrders[indexOrder].imageUrl,
// editVariantConfirmationPage: true,
// indexOrder: indexOrder,
// indexOrderDetail: indexOrderDetail,
// );
// },
// );
// },
// 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[indexOrder].note != '')
// ? 'Ubah'
// : 'Catatan',
// style: noteViewBill(
// color: textInButton,
// ),
// ),
// ),
// )
// ],
// ),
// ),
// ),
// const Spacer(),
// Stack(
// children: [
// Container(
// width: 94,
// height: 22,
// decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(30),
// color: backgroundColor,
// ),
// child: Center(
// child: defaultText(
// context,
// listOrders[indexOrder]
// .orderDetail[indexOrderDetail]
// .totalItem
// .toString(),
// style: amountViewBillButton(),
// ),
// ),
// ),
// Positioned(
// left: 0,
// child: GestureDetector(
// onTap: () {
// FocusScopeNode currentFocus = FocusScope.of(context);
// if (!currentFocus.hasPrimaryFocus) {
// currentFocus.unfocus();
// }
// int totalHarga = listOrders[indexOrder]
// .orderDetail[indexOrderDetail]
// .totalHarga
// .toInt();
// int totalItem = listOrders[indexOrder]
// .orderDetail[indexOrderDetail]
// .totalItem
// .toInt();
// int satuanHarga = totalHarga ~/ totalItem;
// OrderDetail orderDetailNow = OrderDetail(
// allIdVariant: listOrders[indexOrder]
// .orderDetail[indexOrderDetail]
// .allIdVariant,
// totalItem: listOrders[indexOrder]
// .orderDetail[indexOrderDetail]
// .totalItem -
// 1,
// totalHarga: listOrders[indexOrder]
// .orderDetail[indexOrderDetail]
// .totalHarga -
// satuanHarga,
// note: listOrders[indexOrder]
// .orderDetail[indexOrderDetail]
// .note,
// orderVariant: listOrders[indexOrder]
// .orderDetail[indexOrderDetail]
// .orderVariant,
// );
// Map<String, dynamic> insertData = {
// 'action': 'editVariant',
// 'list_orders': listOrders,
// 'single_order_detail': orderDetailNow,
// };
// 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();
// }
// int totalHarga = listOrders[indexOrder]
// .orderDetail[indexOrderDetail]
// .totalHarga
// .toInt();
// int totalItem = listOrders[indexOrder]
// .orderDetail[indexOrderDetail]
// .totalItem
// .toInt();
// int satuanHarga = totalHarga ~/ totalItem;
// OrderDetail orderDetailNow = OrderDetail(
// allIdVariant: listOrders[indexOrder]
// .orderDetail[indexOrderDetail]
// .allIdVariant,
// totalItem: listOrders[indexOrder]
// .orderDetail[indexOrderDetail]
// .totalItem +
// 1,
// totalHarga: listOrders[indexOrder]
// .orderDetail[indexOrderDetail]
// .totalHarga +
// satuanHarga,
// note: listOrders[indexOrder]
// .orderDetail[indexOrderDetail]
// .note,
// orderVariant: listOrders[indexOrder]
// .orderDetail[indexOrderDetail]
// .orderVariant,
// );
// Map<String, dynamic> insertData = {
// 'action': 'editVariant',
// 'list_orders': listOrders,
// 'single_order_detail': orderDetailNow,
// };
// 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(
// height: 24,
// )
// ],
// );
// }
Future<dynamic> modalInputName(BuildContext context, Future<dynamic> modalInputName(BuildContext context,
TextEditingController nameController, List<Orders> listOrders) { TextEditingController nameController, List<Orders> listOrders) {
return showDialog( return showDialog(
......
...@@ -397,7 +397,7 @@ class FavGridMenu extends StatelessWidget { ...@@ -397,7 +397,7 @@ class FavGridMenu extends StatelessWidget {
initialValue: initialValue, initialValue: initialValue,
orderVariants: orderVariants, orderVariants: orderVariants,
menuItem: menuFav, menuItem: menuFav,
lisrOrders: list, listOrders: list,
from: fromMenu, from: fromMenu,
contextFrom: context, contextFrom: context,
); );
......
...@@ -446,7 +446,7 @@ class MenuListUtama extends StatelessWidget { ...@@ -446,7 +446,7 @@ class MenuListUtama extends StatelessWidget {
initialValue: initialValue, initialValue: initialValue,
orderVariants: orderVariants, orderVariants: orderVariants,
menuItem: menuUtama, menuItem: menuUtama,
lisrOrders: list, listOrders: list,
from: fromMenu, from: fromMenu,
contextFrom: context, contextFrom: context,
); );
......
...@@ -369,7 +369,7 @@ class _OrderViewBillNewState extends State<OrderViewBillNew> { ...@@ -369,7 +369,7 @@ class _OrderViewBillNewState extends State<OrderViewBillNew> {
description: '', description: '',
groupName: '', groupName: '',
groupId: ''), groupId: ''),
lisrOrders: const [], listOrders: const [],
from: fromBill, from: fromBill,
idOrderan: widget.billDetail.id, idOrderan: widget.billDetail.id,
contextFrom: contextOrderViewBill, contextFrom: contextOrderViewBill,
......
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