feat: get table
This commit is contained in:
@@ -117,7 +117,7 @@ class _PaymentSaveDialogState extends State<PaymentSaveDialog> {
|
||||
(TableModel value) =>
|
||||
DropdownMenuItem<TableModel>(
|
||||
value: value,
|
||||
child: Text(value.tableName),
|
||||
child: Text(value.tableName ?? ""),
|
||||
),
|
||||
)
|
||||
.toList(),
|
||||
|
||||
@@ -829,7 +829,8 @@ class _ConfirmPaymentPageState extends State<ConfirmPaymentPage> {
|
||||
DropdownMenuItem<
|
||||
TableModel>(
|
||||
value: value,
|
||||
child: Text(value.tableName),
|
||||
child: Text(
|
||||
value.tableName ?? ""),
|
||||
),
|
||||
)
|
||||
.toList(),
|
||||
@@ -1192,28 +1193,28 @@ class _ConfirmPaymentPageState extends State<ConfirmPaymentPage> {
|
||||
savedDraftOrder: (orderDraftId) {
|
||||
log("PRICEVALUE: ${priceValue}");
|
||||
|
||||
final newTabel = TableModel(
|
||||
id: widget.isTable
|
||||
? widget.table!.id
|
||||
: selectTable?.id,
|
||||
tableName: widget.isTable
|
||||
? widget.table!.tableName
|
||||
: selectTable?.tableName ??
|
||||
'0',
|
||||
status: 'occupied',
|
||||
paymentAmount: priceValue,
|
||||
orderId: orderDraftId,
|
||||
startTime: DateTime.now()
|
||||
.toIso8601String(),
|
||||
position: widget.isTable
|
||||
? widget.table!.position
|
||||
: selectTable!.position);
|
||||
log('new tabel: ${newTabel.toMap()}');
|
||||
context
|
||||
.read<StatusTableBloc>()
|
||||
.add(StatusTableEvent.statusTabel(
|
||||
newTabel,
|
||||
));
|
||||
// final newTabel = TableModel(
|
||||
// id: widget.isTable
|
||||
// ? widget.table!.id
|
||||
// : selectTable?.id,
|
||||
// tableName: widget.isTable
|
||||
// ? widget.table!.tableName
|
||||
// : selectTable?.tableName ??
|
||||
// '0',
|
||||
// status: 'occupied',
|
||||
// paymentAmount: priceValue,
|
||||
// orderId: orderDraftId,
|
||||
// startTime: DateTime.now()
|
||||
// .toIso8601String(),
|
||||
// position: widget.isTable
|
||||
// ? widget.table!.position
|
||||
// : selectTable!.position);
|
||||
// log('new tabel: ${newTabel.toMap()}');
|
||||
// context
|
||||
// .read<StatusTableBloc>()
|
||||
// .add(StatusTableEvent.statusTabel(
|
||||
// newTabel,
|
||||
// ));
|
||||
});
|
||||
},
|
||||
child:
|
||||
@@ -1357,16 +1358,16 @@ class _ConfirmPaymentPageState extends State<ConfirmPaymentPage> {
|
||||
|
||||
if (widget.isTable) {
|
||||
log("discountAmountValue: $totalDiscount");
|
||||
context.read<CheckoutBloc>().add(
|
||||
CheckoutEvent
|
||||
.saveDraftOrder(
|
||||
widget.isTable == true
|
||||
? widget.table!.id!
|
||||
: selectTable!.id!,
|
||||
customerController.text,
|
||||
totalDiscount.toInt(),
|
||||
),
|
||||
);
|
||||
// context.read<CheckoutBloc>().add(
|
||||
// CheckoutEvent
|
||||
// .saveDraftOrder(
|
||||
// widget.isTable == true
|
||||
// ? widget.table!.id!
|
||||
// : selectTable!.id!,
|
||||
// customerController.text,
|
||||
// totalDiscount.toInt(),
|
||||
// ),
|
||||
// );
|
||||
await showDialog(
|
||||
context: context,
|
||||
barrierDismissible: false,
|
||||
@@ -1515,120 +1516,120 @@ class _ConfirmPaymentPageState extends State<ConfirmPaymentPage> {
|
||||
// Tambahkan ke pesanan meja yang sudah ada
|
||||
if (selectTable != null) {
|
||||
// Ambil draft order yang sudah ada
|
||||
final existingDraftOrder =
|
||||
await ProductLocalDatasource
|
||||
.instance
|
||||
.getDraftOrderById(
|
||||
selectTable
|
||||
?.orderId ??
|
||||
0);
|
||||
// final existingDraftOrder =
|
||||
// await ProductLocalDatasource
|
||||
// .instance
|
||||
// .getDraftOrderById(
|
||||
// selectTable
|
||||
// ?.orderId ??
|
||||
// 0);
|
||||
|
||||
if (existingDraftOrder !=
|
||||
null) {
|
||||
// Convert items ke DraftOrderItem
|
||||
final newDraftItems = items
|
||||
.map((item) =>
|
||||
DraftOrderItem(
|
||||
product:
|
||||
item.product,
|
||||
quantity:
|
||||
item.quantity,
|
||||
))
|
||||
.toList();
|
||||
// if (existingDraftOrder !=
|
||||
// null) {
|
||||
// // Convert items ke DraftOrderItem
|
||||
// final newDraftItems = items
|
||||
// .map((item) =>
|
||||
// DraftOrderItem(
|
||||
// product:
|
||||
// item.product,
|
||||
// quantity:
|
||||
// item.quantity,
|
||||
// ))
|
||||
// .toList();
|
||||
|
||||
// Gabungkan dengan pesanan yang sudah ada
|
||||
final updatedItems = [
|
||||
...existingDraftOrder
|
||||
.orders,
|
||||
...newDraftItems
|
||||
];
|
||||
// // Gabungkan dengan pesanan yang sudah ada
|
||||
// final updatedItems = [
|
||||
// ...existingDraftOrder
|
||||
// .orders,
|
||||
// ...newDraftItems
|
||||
// ];
|
||||
|
||||
final updatedDraftOrder =
|
||||
existingDraftOrder
|
||||
.copyWith(
|
||||
orders: updatedItems,
|
||||
totalQuantity:
|
||||
updatedItems.fold<int>(
|
||||
0,
|
||||
(sum, item) =>
|
||||
sum +
|
||||
item.quantity),
|
||||
subTotal: updatedItems.fold<
|
||||
int>(
|
||||
0,
|
||||
(sum, item) =>
|
||||
sum +
|
||||
(item.product
|
||||
.price ??
|
||||
0) *
|
||||
item.quantity),
|
||||
);
|
||||
// final updatedDraftOrder =
|
||||
// existingDraftOrder
|
||||
// .copyWith(
|
||||
// orders: updatedItems,
|
||||
// totalQuantity:
|
||||
// updatedItems.fold<int>(
|
||||
// 0,
|
||||
// (sum, item) =>
|
||||
// sum +
|
||||
// item.quantity),
|
||||
// subTotal: updatedItems.fold<
|
||||
// int>(
|
||||
// 0,
|
||||
// (sum, item) =>
|
||||
// sum +
|
||||
// (item.product
|
||||
// .price ??
|
||||
// 0) *
|
||||
// item.quantity),
|
||||
// );
|
||||
|
||||
// Update draft order
|
||||
await ProductLocalDatasource
|
||||
.instance
|
||||
.updateDraftOrder(
|
||||
updatedDraftOrder);
|
||||
// // Update draft order
|
||||
// await ProductLocalDatasource
|
||||
// .instance
|
||||
// .updateDraftOrder(
|
||||
// updatedDraftOrder);
|
||||
|
||||
// Tampilkan dialog sukses
|
||||
await showDialog(
|
||||
context: context,
|
||||
barrierDismissible: false,
|
||||
builder: (context) =>
|
||||
SaveOrderDialog(
|
||||
data: items,
|
||||
totalQty: totalQty,
|
||||
totalPrice:
|
||||
totalPriceFinal,
|
||||
totalTax:
|
||||
finalTax.toInt(),
|
||||
totalDiscount:
|
||||
totalDiscount.toInt(),
|
||||
subTotal:
|
||||
subTotal.toInt(),
|
||||
normalPrice: price,
|
||||
table: selectTable!,
|
||||
draftName:
|
||||
customerController
|
||||
.text,
|
||||
),
|
||||
);
|
||||
} else {
|
||||
// Jika tidak ada draft order, buat baru
|
||||
context
|
||||
.read<CheckoutBloc>()
|
||||
.add(
|
||||
CheckoutEvent
|
||||
.saveDraftOrder(
|
||||
selectTable!.id!,
|
||||
customerController
|
||||
.text,
|
||||
totalDiscount.toInt(),
|
||||
),
|
||||
);
|
||||
await showDialog(
|
||||
context: context,
|
||||
barrierDismissible: false,
|
||||
builder: (context) =>
|
||||
SaveOrderDialog(
|
||||
data: items,
|
||||
totalQty: totalQty,
|
||||
totalPrice:
|
||||
totalPriceFinal,
|
||||
totalTax:
|
||||
finalTax.toInt(),
|
||||
totalDiscount:
|
||||
totalDiscount.toInt(),
|
||||
subTotal:
|
||||
subTotal.toInt(),
|
||||
normalPrice: price,
|
||||
table: selectTable!,
|
||||
draftName:
|
||||
customerController
|
||||
.text,
|
||||
),
|
||||
);
|
||||
}
|
||||
// // Tampilkan dialog sukses
|
||||
// await showDialog(
|
||||
// context: context,
|
||||
// barrierDismissible: false,
|
||||
// builder: (context) =>
|
||||
// SaveOrderDialog(
|
||||
// data: items,
|
||||
// totalQty: totalQty,
|
||||
// totalPrice:
|
||||
// totalPriceFinal,
|
||||
// totalTax:
|
||||
// finalTax.toInt(),
|
||||
// totalDiscount:
|
||||
// totalDiscount.toInt(),
|
||||
// subTotal:
|
||||
// subTotal.toInt(),
|
||||
// normalPrice: price,
|
||||
// table: selectTable!,
|
||||
// draftName:
|
||||
// customerController
|
||||
// .text,
|
||||
// ),
|
||||
// );
|
||||
// } else {
|
||||
// // Jika tidak ada draft order, buat baru
|
||||
// context
|
||||
// .read<CheckoutBloc>()
|
||||
// .add(
|
||||
// CheckoutEvent
|
||||
// .saveDraftOrder(
|
||||
// selectTable!.id!,
|
||||
// customerController
|
||||
// .text,
|
||||
// totalDiscount.toInt(),
|
||||
// ),
|
||||
// );
|
||||
// await showDialog(
|
||||
// context: context,
|
||||
// barrierDismissible: false,
|
||||
// builder: (context) =>
|
||||
// SaveOrderDialog(
|
||||
// data: items,
|
||||
// totalQty: totalQty,
|
||||
// totalPrice:
|
||||
// totalPriceFinal,
|
||||
// totalTax:
|
||||
// finalTax.toInt(),
|
||||
// totalDiscount:
|
||||
// totalDiscount.toInt(),
|
||||
// subTotal:
|
||||
// subTotal.toInt(),
|
||||
// normalPrice: price,
|
||||
// table: selectTable!,
|
||||
// draftName:
|
||||
// customerController
|
||||
// .text,
|
||||
// ),
|
||||
// );
|
||||
// }
|
||||
} else {
|
||||
ScaffoldMessenger.of(context)
|
||||
.showSnackBar(
|
||||
@@ -1640,16 +1641,16 @@ class _ConfirmPaymentPageState extends State<ConfirmPaymentPage> {
|
||||
);
|
||||
}
|
||||
} else {
|
||||
context.read<CheckoutBloc>().add(
|
||||
CheckoutEvent
|
||||
.saveDraftOrder(
|
||||
widget.isTable == true
|
||||
? widget.table!.id!
|
||||
: selectTable!.id!,
|
||||
customerController.text,
|
||||
totalDiscount.toInt(),
|
||||
),
|
||||
);
|
||||
// context.read<CheckoutBloc>().add(
|
||||
// CheckoutEvent
|
||||
// .saveDraftOrder(
|
||||
// widget.isTable == true
|
||||
// ? widget.table!.id!
|
||||
// : selectTable!.id!,
|
||||
// customerController.text,
|
||||
// totalDiscount.toInt(),
|
||||
// ),
|
||||
// );
|
||||
await showDialog(
|
||||
context: context,
|
||||
barrierDismissible: false,
|
||||
|
||||
@@ -97,98 +97,108 @@ class _SaveOrderDialogState extends State<SaveOrderDialog> {
|
||||
builder: (context, state) {
|
||||
final orderType = state.maybeWhen(
|
||||
orElse: () => OrderType.dineIn,
|
||||
loaded: (items, discountModel, discount, discountAmount, tax, serviceCharge, totalQuantity, totalPrice, draftName, orderType) => orderType,
|
||||
loaded: (items,
|
||||
discountModel,
|
||||
discount,
|
||||
discountAmount,
|
||||
tax,
|
||||
serviceCharge,
|
||||
totalQuantity,
|
||||
totalPrice,
|
||||
draftName,
|
||||
orderType) =>
|
||||
orderType,
|
||||
);
|
||||
|
||||
|
||||
return Button.filled(
|
||||
onPressed: () async {
|
||||
final checkerPrinter = await ProductLocalDatasource
|
||||
.instance
|
||||
.getPrinterByCode('checker');
|
||||
final kitchenPrinter = await ProductLocalDatasource
|
||||
.instance
|
||||
.getPrinterByCode('kitchen');
|
||||
final barPrinter = await ProductLocalDatasource.instance
|
||||
.getPrinterByCode('bar');
|
||||
|
||||
log("Checker printer: ${checkerPrinter?.toMap()}");
|
||||
log("Kitchen printer: ${kitchenPrinter?.toMap()}");
|
||||
log("Bar printer: ${barPrinter?.toMap()}");
|
||||
|
||||
// Checker printer
|
||||
if (checkerPrinter != null) {
|
||||
try {
|
||||
final printValue = await PrintDataoutputs.instance
|
||||
.printChecker(
|
||||
widget.data,
|
||||
widget.table.tableName,
|
||||
widget.draftName,
|
||||
'kasir',
|
||||
checkerPrinter.paper.toIntegerFromText,
|
||||
orderType.value);
|
||||
|
||||
await PrinterService().printWithPrinter(
|
||||
checkerPrinter,
|
||||
printValue,
|
||||
context
|
||||
);
|
||||
} catch (e) {
|
||||
log("Error printing checker: $e");
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(content: Text('Error printing checker: $e')),
|
||||
);
|
||||
}
|
||||
}
|
||||
final checkerPrinter = await ProductLocalDatasource
|
||||
.instance
|
||||
.getPrinterByCode('checker');
|
||||
final kitchenPrinter = await ProductLocalDatasource
|
||||
.instance
|
||||
.getPrinterByCode('kitchen');
|
||||
final barPrinter = await ProductLocalDatasource
|
||||
.instance
|
||||
.getPrinterByCode('bar');
|
||||
|
||||
// Kitchen printer
|
||||
if (kitchenPrinter != null) {
|
||||
try {
|
||||
final printValue = await PrintDataoutputs.instance.printKitchen(
|
||||
widget.data,
|
||||
widget.table.tableName,
|
||||
widget.draftName,
|
||||
'kasir',
|
||||
kitchenPrinter.paper.toIntegerFromText,
|
||||
orderType.value,
|
||||
);
|
||||
|
||||
await PrinterService().printWithPrinter(
|
||||
kitchenPrinter,
|
||||
printValue,
|
||||
context
|
||||
);
|
||||
} catch (e) {
|
||||
log("Error printing kitchen order: $e");
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(content: Text('Error printing kitchen order: $e')),
|
||||
);
|
||||
}
|
||||
}
|
||||
log("Checker printer: ${checkerPrinter?.toMap()}");
|
||||
log("Kitchen printer: ${kitchenPrinter?.toMap()}");
|
||||
log("Bar printer: ${barPrinter?.toMap()}");
|
||||
|
||||
// Bar printer
|
||||
if (barPrinter != null) {
|
||||
try {
|
||||
final printValue = await PrintDataoutputs.instance.printBar(
|
||||
widget.data,
|
||||
widget.table.tableName,
|
||||
widget.draftName,
|
||||
'kasir',
|
||||
barPrinter.paper.toIntegerFromText,
|
||||
orderType.value,
|
||||
);
|
||||
|
||||
await PrinterService().printWithPrinter(
|
||||
barPrinter,
|
||||
printValue,
|
||||
context
|
||||
);
|
||||
} catch (e) {
|
||||
log("Error printing bar order: $e");
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(content: Text('Error printing bar order: $e')),
|
||||
);
|
||||
}
|
||||
}
|
||||
// Checker printer
|
||||
if (checkerPrinter != null) {
|
||||
try {
|
||||
final printValue = await PrintDataoutputs.instance
|
||||
.printChecker(
|
||||
widget.data,
|
||||
widget.table.tableName!,
|
||||
widget.draftName,
|
||||
'kasir',
|
||||
checkerPrinter.paper.toIntegerFromText,
|
||||
orderType.value);
|
||||
|
||||
await PrinterService().printWithPrinter(
|
||||
checkerPrinter, printValue, context);
|
||||
} catch (e) {
|
||||
log("Error printing checker: $e");
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(
|
||||
content:
|
||||
Text('Error printing checker: $e')),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// Kitchen printer
|
||||
if (kitchenPrinter != null) {
|
||||
try {
|
||||
final printValue =
|
||||
await PrintDataoutputs.instance.printKitchen(
|
||||
widget.data,
|
||||
widget.table.tableName!,
|
||||
widget.draftName,
|
||||
'kasir',
|
||||
kitchenPrinter.paper.toIntegerFromText,
|
||||
orderType.value,
|
||||
);
|
||||
|
||||
await PrinterService().printWithPrinter(
|
||||
kitchenPrinter, printValue, context);
|
||||
} catch (e) {
|
||||
log("Error printing kitchen order: $e");
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(
|
||||
content: Text(
|
||||
'Error printing kitchen order: $e')),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// Bar printer
|
||||
if (barPrinter != null) {
|
||||
try {
|
||||
final printValue =
|
||||
await PrintDataoutputs.instance.printBar(
|
||||
widget.data,
|
||||
widget.table.tableName!,
|
||||
widget.draftName,
|
||||
'kasir',
|
||||
barPrinter.paper.toIntegerFromText,
|
||||
orderType.value,
|
||||
);
|
||||
|
||||
await PrinterService().printWithPrinter(
|
||||
barPrinter, printValue, context);
|
||||
} catch (e) {
|
||||
log("Error printing bar order: $e");
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(
|
||||
content:
|
||||
Text('Error printing bar order: $e')),
|
||||
);
|
||||
}
|
||||
}
|
||||
},
|
||||
label: 'Print Checker',
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user