Commit 7e2362fc authored by Dio Maulana's avatar Dio Maulana

change ordersbloc from array to json

parent 89abd9a1
This diff is collapsed.
......@@ -30,9 +30,12 @@ class OrderDetailVariant extends Cubit<OrderDetail> {
totalHarga: totalHarga,
note: note,
orderVariant: orderVariant);
context.read<OrdersBloc>().insertData([
['editVariant', orders, listCurrentOrder, orderDetailNow]
], context);
Map<String, dynamic> insertData = {
'action': 'editVariant',
'list_orders': listCurrentOrder,
'single_order_detail': orderDetailNow,
};
context.read<OrdersBloc>().insertData(insertData);
emit(orderDetailNow);
}
......
......@@ -86,19 +86,18 @@ class NoteModalBottomSheet extends StatelessWidget {
GestureDetector(
onTap: () {
if (from == fromMenu) {
context.read<OrdersBloc>().insertData([
[
menuItem.id,
menuItem.name,
initialValue,
amountParseToInt(menuItem.price),
lisrOrders,
menuItem.imageUrlMedium,
orderVariants,
amountParseToInt(menuItem.price),
noteController.text
]
], context);
Map<String, dynamic> insertData = {
'menu_id': menuItem.id,
'menu_name': menuItem.name,
'initvalue': initialValue,
'menu_price': amountParseToInt(menuItem.price),
'old_order': lisrOrders,
'image_url': menuItem.imageUrlMedium,
'total_price': amountParseToInt(menuItem.price),
'order_variant': orderVariants,
'note': noteController.text,
};
context.read<OrdersBloc>().insertData(insertData);
} else if (from == fromBill) {
if (idOrderan != '') {
Api.changeOrderDetail(
......
......@@ -192,21 +192,22 @@ class _ShowMenuModalState extends State<ShowMenuModal> {
}
} else {
initialValue += 1;
context.read<OrdersBloc>().insertData([
[
widget.id,
widget.namaMenu,
initialValue,
widget.hargaMenu,
list,
widget.imageUrl,
orderVariants,
widget.hargaMenu,
(indexListOrderan != -1)
? list[indexListOrderan].note
: '',
]
], context);
Map<String, dynamic> insertData = {
'menu_id': widget.id,
'menu_name': widget.namaMenu,
'initvalue': initialValue,
'menu_price': widget.hargaMenu,
'total_price': widget.hargaMenu,
'old_order': list,
'image_url': widget.imageUrl,
'order_variant': [],
'note': (indexListOrderan != -1)
? list[indexListOrderan].note
: '',
};
context
.read<OrdersBloc>()
.insertData(insertData);
Navigator.pop(context);
}
}
......
......@@ -158,21 +158,22 @@ class ShowMenuBottomSheet extends StatelessWidget {
}
} else {
initialValue += 1;
context.read<OrdersBloc>().insertData([
[
menuDetail[i].id,
menuDetail[i].name,
initialValue,
amountParseToInt(menuDetail[i].price),
list,
menuDetail[i].imageUrlMedium,
[],
amountParseToInt(menuDetail[i].price),
(indexListOrderan != -1)
? list[indexListOrderan].note
: '',
]
], context);
Map<String, dynamic> insertData = {
'menu_id': menuDetail[i].id,
'menu_name': menuDetail[i].name,
'initvalue': initialValue,
'menu_price':
amountParseToInt(menuDetail[i].price),
'total_price':
amountParseToInt(menuDetail[i].price),
'old_order': list,
'image_url': menuDetail[i].imageUrlMedium,
'order_variant': [],
'note': (indexListOrderan != -1)
? list[indexListOrderan].note
: '',
};
context.read<OrdersBloc>().insertData(insertData);
Navigator.pop(context);
}
}
......
......@@ -109,19 +109,20 @@ GestureDetector noteMenu(
onPressed: () async {
// list[index].note = noteController.text;
if (callFrom == fromMenu) {
context.read<OrdersBloc>().insertData([
[
id,
namaMenu,
initialValue,
hargaFix,
list,
imageUrl,
orderVariants,
hargaFix,
noteController.text
]
], context);
Map<String, dynamic> insertData = {
'menu_id': id,
'menu_name': namaMenu,
'initvalue': initialValue,
'menu_price': hargaFix,
'total_price': hargaFix,
'old_order': list,
'image_url': imageUrl,
'order_variant': [],
'note': noteController.text,
};
context
.read<OrdersBloc>()
.insertData(insertData);
} else if (callFrom == fromBill) {
await Api.changeOrderDetail(
context,
......
......@@ -222,19 +222,19 @@ class FavGridMenu extends StatelessWidget {
}
if (initialValue > 0) {
initialValue -= 1;
context.read<OrdersBloc>().insertData([
[
menuFav.id,
menuFav.name,
initialValue,
amountParseToInt(menuFav.price),
list,
menuFav.imageUrlMedium,
orderVariants,
amountParseToInt(menuFav.price),
(indexListOrderan != -1) ? list[indexListOrderan].note : ''
]
], context);
Map<String, dynamic> insertData = {
'menu_id': menuFav.id,
'menu_name': menuFav.name,
'initvalue': initialValue,
'menu_price': amountParseToInt(menuFav.price),
'old_order': list,
'total_price': amountParseToInt(menuFav.price),
'image_url': menuFav.imageUrlMedium,
'order_variant': [],
'note':
(indexListOrderan != -1) ? list[indexListOrderan].note : '',
};
context.read<OrdersBloc>().insertData(insertData);
// setState(() {});
}
}
......@@ -246,19 +246,18 @@ class FavGridMenu extends StatelessWidget {
currentFocus.unfocus();
}
initialValue += 1;
context.read<OrdersBloc>().insertData([
[
menuFav.id,
menuFav.name,
initialValue,
amountParseToInt(menuFav.price),
list,
menuFav.imageUrlMedium,
orderVariants,
amountParseToInt(menuFav.price),
(indexListOrderan != -1) ? list[indexListOrderan].note : '',
]
], context);
Map<String, dynamic> insertData = {
'menu_id': menuFav.id,
'menu_name': menuFav.name,
'initvalue': initialValue,
'menu_price': amountParseToInt(menuFav.price),
'total_price': amountParseToInt(menuFav.price),
'old_order': list,
'image_url': menuFav.imageUrlMedium,
'order_variant': [],
'note': (indexListOrderan != -1) ? list[indexListOrderan].note : '',
};
context.read<OrdersBloc>().insertData(insertData);
}
return AnimatedSwitcher(
......@@ -320,21 +319,20 @@ class FavGridMenu extends StatelessWidget {
} else {
if (initialValue == 0) {
initialValue += 1;
context.read<OrdersBloc>().insertData([
[
menuFav.id,
menuFav.name,
initialValue,
amountParseToInt(menuFav.price),
list,
menuFav.imageUrlMedium,
orderVariants,
amountParseToInt(menuFav.price),
(indexListOrderan != -1)
? list[indexListOrderan].note
: ''
]
], context);
Map<String, dynamic> insertData = {
'menu_id': menuFav.id,
'menu_name': menuFav.name,
'initvalue': initialValue,
'menu_price': amountParseToInt(menuFav.price),
'total_price': amountParseToInt(menuFav.price),
'old_order': list,
'image_url': menuFav.imageUrlMedium,
'order_variant': [],
'note': (indexListOrderan != -1)
? list[indexListOrderan].note
: '',
};
context.read<OrdersBloc>().insertData(insertData);
// setState(() {});
}
}
......
......@@ -278,21 +278,19 @@ class _MenuViewState extends State<MenuView> {
} else {
if (initialValue == 0) {
initialValue += 1;
context.read<OrdersBloc>().insertData([
[
widget.id,
widget.namaMenu,
initialValue,
widget.hargaFix,
list,
widget.imageUrl,
orderVariants,
widget.hargaFix,
(indexListOrderan != -1)
? list[indexListOrderan].note
: ''
]
], context);
Map<String, dynamic> insertData = {
'menu_id': widget.id,
'menu_name': widget.namaMenu,
'initvalue': initialValue,
'menu_price': widget.hargaFix,
'old_order': list,
'image_url': widget.imageUrl,
'order_variant': [],
'note': (indexListOrderan != -1)
? list[indexListOrderan].note
: '',
};
context.read<OrdersBloc>().insertData(insertData);
// setState(() {});
}
}
......@@ -339,24 +337,21 @@ class _MenuViewState extends State<MenuView> {
onTap: () {
if (initialValue > 0) {
initialValue -= 1;
Map<String, dynamic> insertData = {
'menu_id': widget.id,
'menu_name': widget.namaMenu,
'initvalue': initialValue,
'menu_price': widget.hargaFix,
'old_order': list,
'image_url': widget.imageUrl,
'order_variant': [],
'note': (indexListOrderan != -1)
? list[indexListOrderan].note
: '',
};
context
.read<OrdersBloc>()
.insertData([
[
widget.id,
widget.namaMenu,
initialValue,
widget.hargaFix,
list,
widget.imageUrl,
orderVariants,
widget.hargaFix,
(indexListOrderan != -1)
? list[indexListOrderan]
.note
: ''
]
], context);
.insertData(insertData);
// setState(() {});
}
},
......@@ -394,23 +389,22 @@ class _MenuViewState extends State<MenuView> {
GestureDetector(
onTap: () {
initialValue += 1;
Map<String, dynamic> insertData = {
'menu_id': widget.id,
'menu_name': widget.namaMenu,
'initvalue': initialValue,
'menu_price': widget.hargaFix,
'total_price': widget.hargaFix,
'old_order': list,
'image_url': widget.imageUrl,
'order_variant': [],
'note': (indexListOrderan != -1)
? list[indexListOrderan].note
: '',
};
context
.read<OrdersBloc>()
.insertData([
[
widget.id,
widget.namaMenu,
initialValue,
widget.hargaFix,
list,
widget.imageUrl,
orderVariants,
widget.hargaFix,
(indexListOrderan != -1)
? list[indexListOrderan].note
: '',
]
], context);
.insertData(insertData);
// setState(() {});
},
child: Container(
......
This diff is collapsed.
......@@ -4,7 +4,6 @@ import 'package:byod/bloc/order_bloc.dart';
import 'package:byod/helper/widget/button_modal.dart';
import 'package:byod/helper/widget/plus_minus_button.dart';
import 'package:byod/models/orders.dart';
import 'package:byod/ui/home/variant_cat.dart';
import 'package:byod/ui/screen_responsive.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
......@@ -14,7 +13,6 @@ import '../../helper/helper.dart';
import '../../helper/widget/note_modal_bottom_sheet.dart';
import '../../helper/widget/style.dart';
import '../../models/filter_menu.dart';
import '../../models/order_details.dart';
import '../../models/order_variants.dart';
import 'bottom_sheet_menu_new.dart';
import 'bottom_sheet_variant.dart';
......@@ -195,7 +193,7 @@ class MenuListUtama extends StatelessWidget {
addCondition; // true untuk menampilkan tambah, false untuk menampilkan quantity plus minus
int indexListOrderan =
list.indexWhere((listOrderan) => listOrderan.id == menuUtama.id);
int initialValue;
int initialValue = 0;
if (indexListOrderan != -1) {
if (menuUtama.variantCat.isNotEmpty) {
addCondition = true; // kalau menu itu ada variantnya, biarin true
......@@ -203,7 +201,15 @@ class MenuListUtama extends StatelessWidget {
addCondition = false;
}
initialValue = list[indexListOrderan].totalItem;
if (list[indexListOrderan].orderDetail.isNotEmpty) {
for (int d = 0;
d < list[indexListOrderan].orderDetail.length;
d++) {
initialValue += list[indexListOrderan].orderDetail[d].totalItem;
}
} else {
initialValue = list[indexListOrderan].totalItem;
}
} else {
addCondition = true;
initialValue = 0;
......@@ -225,19 +231,19 @@ class MenuListUtama extends StatelessWidget {
}
if (initialValue > 0) {
initialValue -= 1;
context.read<OrdersBloc>().insertData([
[
menuUtama.id,
menuUtama.name,
initialValue,
amountParseToInt(menuUtama.price),
list,
menuUtama.imageUrlMedium,
orderVariants,
amountParseToInt(menuUtama.price),
(indexListOrderan != -1) ? list[indexListOrderan].note : ''
]
], context);
Map<String, dynamic> insertData = {
'menu_id': menuUtama.id,
'menu_name': menuUtama.name,
'initvalue': initialValue,
'menu_price': amountParseToInt(menuUtama.price),
'total_price': amountParseToInt(menuUtama.price),
'old_order': list,
'image_url': menuUtama.imageUrlMedium,
'order_variant': [],
'note':
(indexListOrderan != -1) ? list[indexListOrderan].note : '',
};
context.read<OrdersBloc>().insertData(insertData);
// setState(() {});
}
}
......@@ -249,19 +255,18 @@ class MenuListUtama extends StatelessWidget {
currentFocus.unfocus();
}
initialValue += 1;
context.read<OrdersBloc>().insertData([
[
menuUtama.id,
menuUtama.name,
initialValue,
amountParseToInt(menuUtama.price),
list,
menuUtama.imageUrlMedium,
orderVariants,
amountParseToInt(menuUtama.price),
(indexListOrderan != -1) ? list[indexListOrderan].note : '',
]
], context);
Map<String, dynamic> insertData = {
'menu_id': menuUtama.id,
'menu_name': menuUtama.name,
'initvalue': initialValue,
'menu_price': amountParseToInt(menuUtama.price),
'total_price': amountParseToInt(menuUtama.price),
'old_order': list,
'image_url': menuUtama.imageUrlMedium,
'order_variant': [],
'note': (indexListOrderan != -1) ? list[indexListOrderan].note : '',
};
context.read<OrdersBloc>().insertData(insertData);
}
return AnimatedSwitcher(
......@@ -325,6 +330,9 @@ class MenuListUtama extends StatelessWidget {
amountParseToInt(menuUtama.price),
variantCategories: menuUtama.variantCat,
namaMenu: menuUtama.name,
idItem: menuUtama.id,
imageUrl: menuUtama.imageUrlMedium,
listCurrentOrder: list,
),
),
);
......@@ -343,21 +351,24 @@ class MenuListUtama extends StatelessWidget {
} else {
if (initialValue == 0) {
initialValue += 1;
context.read<OrdersBloc>().insertData([
[
menuUtama.id,
menuUtama.name,
initialValue,
amountParseToInt(menuUtama.price),
list,
menuUtama.imageUrlMedium,
orderVariants,
amountParseToInt(menuUtama.price),
(indexListOrderan != -1)
? list[indexListOrderan].note
: ''
]
], context);
Map<String, dynamic> insertData = {
'menu_id': menuUtama.id,
'menu_name': menuUtama.name,
'initvalue': initialValue,
'menu_price':
amountParseToInt(menuUtama.price),
'total_price':
amountParseToInt(menuUtama.price),
'old_order': list,
'image_url': menuUtama.imageUrlMedium,
'order_variant': [],
'note': (indexListOrderan != -1)
? list[indexListOrderan].note
: '',
};
context
.read<OrdersBloc>()
.insertData(insertData);
// setState(() {});
}
}
......
......@@ -345,21 +345,20 @@ class _VariantCatState extends State<VariantCat> {
}
}
if (prosesOrderan) {
context.read<OrdersBloc>().insertData([
[
widget.idItem,
widget.namaMenu,
initialValue,
widget.initPrice,
widget.listCurrentOrder,
widget.imageUrl,
orderVariants,
totalPrice,
(noteCatController.text.isEmpty)
? ''
: noteCatController.text
]
], context);
Map<String, dynamic> insertData = {
'menu_id': widget.idItem,
'menu_name': widget.namaMenu,
'initvalue': initialValue,
'menu_price': widget.initPrice,
'total_price': totalPrice,
'old_order': widget.listCurrentOrder,
'image_url': widget.imageUrl,
'order_variant': orderVariants,
'note': (noteCatController.text.isEmpty)
? ''
: noteCatController.text,
};
context.read<OrdersBloc>().insertData(insertData);
Navigator.pop(context);
} else {
EasyLoading.showToast(
......
// ignore_for_file: sized_box_for_whitespace, must_be_immutable
import 'package:byod/helper/helper.dart';
import 'package:byod/helper/widget/button_modal.dart';
import 'package:byod/helper/widget/style.dart';
import 'package:byod/models/order_details.dart';
import 'package:byod/ui/home/variant_new.dart';
import 'package:byod/ui/screen_responsive.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart';
import '../../bloc/order_bloc.dart';
import '../../bloc/order_variant_temporary.dart';
import '../../bloc/order_variant_value.dart';
import '../../helper/widget/plus_minus_button.dart';
import '../../main.dart';
import '../../models/order_variants.dart';
import '../../models/orders.dart';
import '../../models/variant_categories.dart';
class VariantCatNew extends StatefulWidget {
final List<VariantCategories> variantCategories;
final int initPrice;
final String namaMenu;
final String idItem;
final List<Orders> listCurrentOrder;
final String imageUrl;
const VariantCatNew({
Key? key,
required this.variantCategories,
required this.initPrice,
required this.namaMenu,
required this.idItem,
required this.listCurrentOrder,
required this.imageUrl,
}) : super(key: key);
@override
......@@ -93,6 +103,8 @@ class _VariantCatNewState extends State<VariantCatNew> {
satuanPrice: satuanPrice,
totalPrice: totalPrice,
context: context,
orderVariants: orderVariants,
noteCatController: noteCatController,
),
isCoreLayout: true,
widthScreen: MediaQuery.of(context).size.width,
......@@ -118,6 +130,8 @@ class CoreVariant extends StatelessWidget {
required this.satuanPrice,
required this.totalPrice,
required this.context,
required this.orderVariants,
required this.noteCatController,
}) : super(key: key);
final double widthScreen;
......@@ -129,6 +143,8 @@ class CoreVariant extends StatelessWidget {
final int satuanPrice;
final int totalPrice;
final BuildContext context;
final List<OrderVariant> orderVariants;
final TextEditingController noteCatController;
void plus() {
initialValue += 1;
context
......@@ -301,6 +317,7 @@ class CoreVariant extends StatelessWidget {
Container(
height: 35,
child: TextField(
controller: noteCatController,
maxLength: maxLengthTextField,
autofocus: false,
style: const TextStyle(
......@@ -397,21 +414,46 @@ class CoreVariant extends StatelessWidget {
const SizedBox(
height: 14,
),
Container(
height: 43,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(33),
color: buttonColor,
),
child: Center(
child: defaultText(
context,
'Tambahkan - Rp ${formatNumber().format(totalPrice)}',
style: addButton(
font: 14,
),
),
),
GestureDetector(
onTap: () {
bool prosesOrderan = true;
for (int y = 0;
y < widget.variantCategories.length;
y++) {
if (widget.variantCategories[y].type == typeMandatory) {
int index = orderVariants.indexWhere((order) =>
order.categoryId ==
widget.variantCategories[y].id);
if (index == -1) {
prosesOrderan = false;
}
}
}
if (prosesOrderan) {
Map<String, dynamic> insertData = {
'menu_id': widget.idItem,
'menu_name': widget.namaMenu,
'initvalue': initialValue,
'menu_price': widget.initPrice,
'old_order': widget.listCurrentOrder,
'image_url': widget.imageUrl,
'order_variant': orderVariants,
'note': (noteCatController.text.isEmpty)
? ''
: noteCatController.text,
'total_price': totalPrice,
};
context.read<OrdersBloc>().insertData(insertData);
Navigator.pop(context);
} else {
EasyLoading.showToast(
'Masih ada variant yang belum dipilih');
}
},
child: ButtonComponent(
buttonColor: buttonColor,
teksButton:
'Tambahkan - Rp ${formatNumber().format(totalPrice)}'),
)
],
),
......
......@@ -512,10 +512,9 @@ class CoreBill extends StatelessWidget {
isHistory: isHistory,
tableStatus: dataBill[0].tableStatus,
),
const SizedBox(
height: 24,
),
const AddMoreOrder(),
(dataBill[0].tableStatus == tableStatusOpen)
? const AddMoreOrder()
: const SizedBox(),
const SizedBox(
height: 24,
),
......@@ -1838,52 +1837,59 @@ class AddMoreOrder extends StatelessWidget {
color: backgroundWhite,
padding: const EdgeInsets.symmetric(horizontal: paddingLeftRight),
// color: Colors.red,
child: Row(
child: Column(
children: [
Expanded(
child: Container(
child: defaultText(
context,
'Tambahkan menu lainnya?',
maxLines: 2,
overFlow: TextOverflow.ellipsis,
style: viewbillStyle(
font: 16,
fontWeight: FontWeight.w400,
),
),
),
),
const SizedBox(
width: 19,
height: 24,
),
GestureDetector(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (_) => const NewHome2(),
Row(
children: [
Expanded(
child: Container(
child: defaultText(
context,
'Tambahkan menu lainnya?',
maxLines: 2,
overFlow: TextOverflow.ellipsis,
style: viewbillStyle(
font: 16,
fontWeight: FontWeight.w400,
),
),
),
);
},
child: Container(
width: 98,
height: 30,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(21),
color: buttonColor,
),
child: Center(
child: defaultText(
context,
'Tambah',
style: addButton(
font: 8,
const SizedBox(
width: 19,
),
GestureDetector(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (_) => const NewHome2(),
),
);
},
child: Container(
width: 98,
height: 30,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(21),
color: buttonColor,
),
child: Center(
child: defaultText(
context,
'Tambah',
style: addButton(
font: 8,
),
),
),
),
),
),
)
)
],
),
],
),
);
......
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