From 699ca4cfb7d6b3f505397bbdcf7de632e3003bdd Mon Sep 17 00:00:00 2001 From: Efril Date: Mon, 27 Apr 2026 12:53:55 +0700 Subject: [PATCH] handler error print --- .../repositories/printer_repository.dart | 27 +++++++++++++------ .../dialog/printer_bluetooth_dialog.dart | 14 +++++++--- 2 files changed, 29 insertions(+), 12 deletions(-) diff --git a/lib/infrastructure/printer/repositories/printer_repository.dart b/lib/infrastructure/printer/repositories/printer_repository.dart index 779d430..dbebbc3 100644 --- a/lib/infrastructure/printer/repositories/printer_repository.dart +++ b/lib/infrastructure/printer/repositories/printer_repository.dart @@ -394,7 +394,11 @@ class PrinterRepository implements IPrinterRepository { Future _printNetwork(String ipAddress, List printData) async { try { - final printer = PrinterNetworkManager(ipAddress); + final printer = PrinterNetworkManager( + ipAddress, + port: 9100, + timeout: const Duration(seconds: 15), + ); PosPrintResult connect = await printer.connect(); if (connect == PosPrintResult.success) { @@ -666,7 +670,8 @@ class PrinterRepository implements IPrinterRepository { paper: printer.paper.toIntegerFromText, ); - await printStruct(printer, printValue); + final printResult = await printStruct(printer, printValue); + if (printResult.isLeft()) return printResult.map((_) => unit); log('Finished printed receipt', name: _logName); @@ -723,7 +728,8 @@ class PrinterRepository implements IPrinterRepository { paper: printer.paper.toIntegerFromText, ); - await printStruct(printer, printValue); + final printResult = await printStruct(printer, printValue); + if (printResult.isLeft()) return printResult.map((_) => unit); log('Finished printing cashier', name: _logName); @@ -784,7 +790,8 @@ class PrinterRepository implements IPrinterRepository { paper: printer.paper.toIntegerFromText, ); - await printStruct(printer, printValue); + final printResult = await printStruct(printer, printValue); + if (printResult.isLeft()) return printResult.map((_) => unit); } else { log('Product with printer type bar not found', name: _logName); } @@ -843,7 +850,8 @@ class PrinterRepository implements IPrinterRepository { paper: printer.paper.toIntegerFromText, ); - await printStruct(printer, printValue); + final printResult = await printStruct(printer, printValue); + if (printResult.isLeft()) return printResult.map((_) => unit); log('Finished printed checker', name: _logName); @@ -903,7 +911,8 @@ class PrinterRepository implements IPrinterRepository { paper: printer.paper.toIntegerFromText, ); - await printStruct(printer, printValue); + final printResult = await printStruct(printer, printValue); + if (printResult.isLeft()) return printResult.map((_) => unit); log('Finished printed bar', name: _logName); } else { @@ -958,7 +967,8 @@ class PrinterRepository implements IPrinterRepository { paper: printer.paper.toIntegerFromText, ); - await printStruct(printer, printValue); + final printResult = await printStruct(printer, printValue); + if (printResult.isLeft()) return printResult.map((_) => unit); log('Finished printed void', name: _logName); @@ -1011,7 +1021,8 @@ class PrinterRepository implements IPrinterRepository { paper: printer.paper.toIntegerFromText, ); - await printStruct(printer, printValue); + final printResult = await printStruct(printer, printValue); + if (printResult.isLeft()) return printResult.map((_) => unit); log('Finished printed splitBill', name: _logName); diff --git a/lib/presentation/components/dialog/printer_bluetooth_dialog.dart b/lib/presentation/components/dialog/printer_bluetooth_dialog.dart index facc634..4b5204a 100644 --- a/lib/presentation/components/dialog/printer_bluetooth_dialog.dart +++ b/lib/presentation/components/dialog/printer_bluetooth_dialog.dart @@ -12,11 +12,17 @@ class PrinterBluetoothDialog extends StatefulWidget { class _PrinterBluetoothDialogState extends State { @override void initState() { - loadPermissionBluetooth(); - context.read().add( - const BluetoothLoaderEvent.fetched(), - ); super.initState(); + _initBluetooth(); + } + + Future _initBluetooth() async { + await loadPermissionBluetooth(); + if (mounted) { + context.read().add( + const BluetoothLoaderEvent.fetched(), + ); + } } @override