feat: print
This commit is contained in:
parent
c667584b11
commit
f73aa619e9
96
lib/core/function/app_function.dart
Normal file
96
lib/core/function/app_function.dart
Normal file
@ -0,0 +1,96 @@
|
||||
import 'dart:developer';
|
||||
|
||||
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/presentation/home/models/product_quantity.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
Future<void> onPrint(
|
||||
BuildContext context, {
|
||||
required List<ProductQuantity> productQuantity,
|
||||
required Order order,
|
||||
}) 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
|
||||
.where((e) => e.product.printerType == "checker")
|
||||
.toList(),
|
||||
order.tableNumber ?? "",
|
||||
order.orderNumber ?? "",
|
||||
'kasir',
|
||||
checkerPrinter.paper.toIntegerFromText,
|
||||
order.orderType ?? "",
|
||||
);
|
||||
|
||||
await PrinterService()
|
||||
// ignore: use_build_context_synchronously
|
||||
.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
|
||||
.where((e) => e.product.printerType == "kitchen")
|
||||
.toList(),
|
||||
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.where((e) => e.product.printerType == "bar").toList(),
|
||||
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')),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,14 +1,10 @@
|
||||
import 'dart:developer';
|
||||
|
||||
import 'package:enaklo_pos/core/components/components.dart';
|
||||
import 'package:enaklo_pos/core/components/dashed_divider.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/date_time_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/core/function/app_function.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';
|
||||
@ -173,94 +169,11 @@ class SuccessOrderPage extends StatelessWidget {
|
||||
Expanded(
|
||||
child: 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(
|
||||
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')),
|
||||
);
|
||||
}
|
||||
}
|
||||
onPrint(
|
||||
context,
|
||||
productQuantity: productQuantity,
|
||||
order: order,
|
||||
);
|
||||
},
|
||||
label: 'Cetak',
|
||||
icon: Icon(
|
||||
|
||||
@ -1,5 +1,3 @@
|
||||
import 'dart:developer';
|
||||
|
||||
import 'package:enaklo_pos/core/components/buttons.dart';
|
||||
import 'package:enaklo_pos/core/components/dashed_divider.dart';
|
||||
import 'package:enaklo_pos/core/components/spaces.dart';
|
||||
@ -7,9 +5,7 @@ import 'package:enaklo_pos/core/constants/colors.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/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/core/function/app_function.dart';
|
||||
import 'package:enaklo_pos/data/models/response/payment_response_model.dart';
|
||||
import 'package:enaklo_pos/presentation/home/models/product_quantity.dart';
|
||||
import 'package:enaklo_pos/presentation/home/pages/dashboard_page.dart';
|
||||
@ -184,97 +180,11 @@ class _SuccessPaymentPageState extends State<SuccessPaymentPage> {
|
||||
Expanded(
|
||||
child: 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.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(
|
||||
widget.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(
|
||||
widget.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')),
|
||||
);
|
||||
}
|
||||
}
|
||||
onPrint(
|
||||
context,
|
||||
productQuantity: widget.productQuantity,
|
||||
order: order,
|
||||
);
|
||||
},
|
||||
label: 'Cetak',
|
||||
icon: Icon(
|
||||
|
||||
@ -1,14 +1,10 @@
|
||||
import 'dart:developer';
|
||||
|
||||
import 'package:enaklo_pos/core/components/components.dart';
|
||||
import 'package:enaklo_pos/core/components/dashed_divider.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/date_time_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/core/function/app_function.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/sales/blocs/order_loader/order_loader_bloc.dart';
|
||||
@ -203,97 +199,11 @@ class _SuccessSaveOrderPageState extends State<SuccessSaveOrderPage> {
|
||||
Expanded(
|
||||
child: 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.productQuantity,
|
||||
orderx.tableNumber ?? "",
|
||||
orderx.orderNumber ?? "",
|
||||
'kasir',
|
||||
checkerPrinter.paper.toIntegerFromText,
|
||||
orderx.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(
|
||||
widget.productQuantity,
|
||||
orderx.tableNumber!,
|
||||
orderx.orderNumber ?? "",
|
||||
'kasir',
|
||||
kitchenPrinter.paper.toIntegerFromText,
|
||||
orderx.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(
|
||||
widget.productQuantity,
|
||||
orderx.tableNumber ?? "",
|
||||
orderx.orderNumber ?? "",
|
||||
'kasir',
|
||||
barPrinter.paper.toIntegerFromText,
|
||||
orderx.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')),
|
||||
);
|
||||
}
|
||||
}
|
||||
onPrint(
|
||||
context,
|
||||
productQuantity: widget.productQuantity,
|
||||
order: orderx,
|
||||
);
|
||||
},
|
||||
label: 'Cetak',
|
||||
icon: Icon(
|
||||
|
||||
@ -632,14 +632,5 @@ class _SuccessVoidPageState extends State<SuccessVoidPage>
|
||||
);
|
||||
}
|
||||
|
||||
void _printVoidReceipt() {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(
|
||||
content: Text('Struk void sedang dicetak...'),
|
||||
backgroundColor: primaryColor,
|
||||
behavior: SnackBarBehavior.floating,
|
||||
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)),
|
||||
),
|
||||
);
|
||||
}
|
||||
void _printVoidReceipt() {}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user