Compare commits
2 Commits
ee38b6218f
...
e462326495
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e462326495 | ||
|
|
c906d5ebe5 |
@ -133,9 +133,12 @@ class _PaymentAddOrderDialogState extends State<PaymentAddOrderDialog> {
|
|||||||
state.maybeWhen(
|
state.maybeWhen(
|
||||||
orElse: () {},
|
orElse: () {},
|
||||||
success: (data) {
|
success: (data) {
|
||||||
context.pushReplacement(SuccessSaveOrderPage(
|
context.pushReplacement(
|
||||||
|
SuccessSaveOrderPage(
|
||||||
|
productQuantity: widget.items,
|
||||||
order: data,
|
order: data,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
},
|
},
|
||||||
error: (message) => AppFlushbar.showError(context, message),
|
error: (message) => AppFlushbar.showError(context, message),
|
||||||
);
|
);
|
||||||
|
|||||||
@ -145,6 +145,7 @@ class _PaymentSaveDialogState extends State<PaymentSaveDialog> {
|
|||||||
orElse: () {},
|
orElse: () {},
|
||||||
success: (data) {
|
success: (data) {
|
||||||
context.pushReplacement(SuccessSaveOrderPage(
|
context.pushReplacement(SuccessSaveOrderPage(
|
||||||
|
productQuantity: widget.items,
|
||||||
order: data,
|
order: data,
|
||||||
));
|
));
|
||||||
},
|
},
|
||||||
|
|||||||
@ -906,6 +906,7 @@ class _ConfirmPaymentPageState extends State<ConfirmPaymentPage> {
|
|||||||
success: (data) {
|
success: (data) {
|
||||||
context
|
context
|
||||||
.pushReplacement(SuccessOrderPage(
|
.pushReplacement(SuccessOrderPage(
|
||||||
|
productQuantity: items,
|
||||||
order: data,
|
order: data,
|
||||||
));
|
));
|
||||||
},
|
},
|
||||||
|
|||||||
@ -90,7 +90,9 @@ class _VoidDialogState extends State<VoidDialog> {
|
|||||||
],
|
],
|
||||||
),
|
),
|
||||||
if (widget.selectedItems.isNotEmpty)
|
if (widget.selectedItems.isNotEmpty)
|
||||||
Column(
|
Padding(
|
||||||
|
padding: const EdgeInsets.only(top: 16.0),
|
||||||
|
child: Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
@ -109,6 +111,7 @@ class _VoidDialogState extends State<VoidDialog> {
|
|||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
),
|
||||||
SpaceHeight(16),
|
SpaceHeight(16),
|
||||||
CustomTextField(
|
CustomTextField(
|
||||||
controller: _reasonController,
|
controller: _reasonController,
|
||||||
|
|||||||
@ -1,16 +1,24 @@
|
|||||||
|
import 'dart:developer';
|
||||||
|
|
||||||
import 'package:enaklo_pos/core/components/components.dart';
|
import 'package:enaklo_pos/core/components/components.dart';
|
||||||
import 'package:enaklo_pos/core/components/dashed_divider.dart';
|
import 'package:enaklo_pos/core/components/dashed_divider.dart';
|
||||||
import 'package:enaklo_pos/core/constants/colors.dart';
|
import 'package:enaklo_pos/core/constants/colors.dart';
|
||||||
import 'package:enaklo_pos/core/extensions/build_context_ext.dart';
|
import 'package:enaklo_pos/core/extensions/build_context_ext.dart';
|
||||||
import 'package:enaklo_pos/core/extensions/date_time_ext.dart';
|
import 'package:enaklo_pos/core/extensions/date_time_ext.dart';
|
||||||
import 'package:enaklo_pos/core/extensions/string_ext.dart';
|
import 'package:enaklo_pos/core/extensions/string_ext.dart';
|
||||||
|
import 'package:enaklo_pos/core/utils/printer_service.dart';
|
||||||
|
import 'package:enaklo_pos/data/dataoutputs/print_dataoutputs.dart';
|
||||||
|
import 'package:enaklo_pos/data/datasources/product_local_datasource.dart';
|
||||||
import 'package:enaklo_pos/data/models/response/order_response_model.dart';
|
import 'package:enaklo_pos/data/models/response/order_response_model.dart';
|
||||||
|
import 'package:enaklo_pos/presentation/home/models/product_quantity.dart';
|
||||||
import 'package:enaklo_pos/presentation/home/pages/dashboard_page.dart';
|
import 'package:enaklo_pos/presentation/home/pages/dashboard_page.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
class SuccessOrderPage extends StatelessWidget {
|
class SuccessOrderPage extends StatelessWidget {
|
||||||
|
final List<ProductQuantity> productQuantity;
|
||||||
final Order order;
|
final Order order;
|
||||||
const SuccessOrderPage({super.key, required this.order});
|
const SuccessOrderPage(
|
||||||
|
{super.key, required this.order, required this.productQuantity});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
@ -164,7 +172,96 @@ class SuccessOrderPage extends StatelessWidget {
|
|||||||
SpaceWidth(12),
|
SpaceWidth(12),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Button.filled(
|
child: Button.filled(
|
||||||
onPressed: () {},
|
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(
|
||||||
|
productQuantity,
|
||||||
|
order.tableNumber ?? "",
|
||||||
|
order.orderNumber ?? "",
|
||||||
|
'kasir',
|
||||||
|
checkerPrinter.paper.toIntegerFromText,
|
||||||
|
order.orderType ?? "",
|
||||||
|
);
|
||||||
|
|
||||||
|
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(
|
||||||
|
productQuantity,
|
||||||
|
order.tableNumber!,
|
||||||
|
order.orderNumber ?? "",
|
||||||
|
'kasir',
|
||||||
|
kitchenPrinter.paper.toIntegerFromText,
|
||||||
|
order.orderType ?? "",
|
||||||
|
);
|
||||||
|
|
||||||
|
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(
|
||||||
|
productQuantity,
|
||||||
|
order.tableNumber ?? "",
|
||||||
|
order.orderNumber ?? "",
|
||||||
|
'kasir',
|
||||||
|
barPrinter.paper.toIntegerFromText,
|
||||||
|
order.orderType ?? "",
|
||||||
|
);
|
||||||
|
|
||||||
|
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: 'Cetak',
|
label: 'Cetak',
|
||||||
icon: Icon(
|
icon: Icon(
|
||||||
Icons.print,
|
Icons.print,
|
||||||
|
|||||||
@ -1,16 +1,24 @@
|
|||||||
|
import 'dart:developer';
|
||||||
|
|
||||||
import 'package:enaklo_pos/core/components/components.dart';
|
import 'package:enaklo_pos/core/components/components.dart';
|
||||||
import 'package:enaklo_pos/core/components/dashed_divider.dart';
|
import 'package:enaklo_pos/core/components/dashed_divider.dart';
|
||||||
import 'package:enaklo_pos/core/constants/colors.dart';
|
import 'package:enaklo_pos/core/constants/colors.dart';
|
||||||
import 'package:enaklo_pos/core/extensions/build_context_ext.dart';
|
import 'package:enaklo_pos/core/extensions/build_context_ext.dart';
|
||||||
import 'package:enaklo_pos/core/extensions/date_time_ext.dart';
|
import 'package:enaklo_pos/core/extensions/date_time_ext.dart';
|
||||||
import 'package:enaklo_pos/core/extensions/string_ext.dart';
|
import 'package:enaklo_pos/core/extensions/string_ext.dart';
|
||||||
|
import 'package:enaklo_pos/core/utils/printer_service.dart';
|
||||||
|
import 'package:enaklo_pos/data/dataoutputs/print_dataoutputs.dart';
|
||||||
|
import 'package:enaklo_pos/data/datasources/product_local_datasource.dart';
|
||||||
import 'package:enaklo_pos/data/models/response/order_response_model.dart';
|
import 'package:enaklo_pos/data/models/response/order_response_model.dart';
|
||||||
|
import 'package:enaklo_pos/presentation/home/models/product_quantity.dart';
|
||||||
import 'package:enaklo_pos/presentation/home/pages/dashboard_page.dart';
|
import 'package:enaklo_pos/presentation/home/pages/dashboard_page.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
class SuccessSaveOrderPage extends StatelessWidget {
|
class SuccessSaveOrderPage extends StatelessWidget {
|
||||||
|
final List<ProductQuantity> productQuantity;
|
||||||
final Order order;
|
final Order order;
|
||||||
const SuccessSaveOrderPage({super.key, required this.order});
|
const SuccessSaveOrderPage(
|
||||||
|
{super.key, required this.order, required this.productQuantity});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
@ -160,7 +168,96 @@ class SuccessSaveOrderPage extends StatelessWidget {
|
|||||||
SpaceWidth(12),
|
SpaceWidth(12),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Button.filled(
|
child: Button.filled(
|
||||||
onPressed: () {},
|
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(
|
||||||
|
productQuantity,
|
||||||
|
order.tableNumber ?? "",
|
||||||
|
order.orderNumber ?? "",
|
||||||
|
'kasir',
|
||||||
|
checkerPrinter.paper.toIntegerFromText,
|
||||||
|
order.orderType ?? "",
|
||||||
|
);
|
||||||
|
|
||||||
|
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(
|
||||||
|
productQuantity,
|
||||||
|
order.tableNumber!,
|
||||||
|
order.orderNumber ?? "",
|
||||||
|
'kasir',
|
||||||
|
kitchenPrinter.paper.toIntegerFromText,
|
||||||
|
order.orderType ?? "",
|
||||||
|
);
|
||||||
|
|
||||||
|
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(
|
||||||
|
productQuantity,
|
||||||
|
order.tableNumber ?? "",
|
||||||
|
order.orderNumber ?? "",
|
||||||
|
'kasir',
|
||||||
|
barPrinter.paper.toIntegerFromText,
|
||||||
|
order.orderType ?? "",
|
||||||
|
);
|
||||||
|
|
||||||
|
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: 'Cetak',
|
label: 'Cetak',
|
||||||
icon: Icon(
|
icon: Icon(
|
||||||
Icons.print,
|
Icons.print,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user