From d3974b8eda7a0d0235e4bf74594a510f55d8b75a Mon Sep 17 00:00:00 2001 From: efrilm Date: Thu, 13 Nov 2025 12:56:28 +0700 Subject: [PATCH] fix printer --- .../repositories/printer_repository.dart | 69 +++++++++++++++---- 1 file changed, 57 insertions(+), 12 deletions(-) diff --git a/lib/infrastructure/printer/repositories/printer_repository.dart b/lib/infrastructure/printer/repositories/printer_repository.dart index 0d09995..5389f1c 100644 --- a/lib/infrastructure/printer/repositories/printer_repository.dart +++ b/lib/infrastructure/printer/repositories/printer_repository.dart @@ -413,21 +413,50 @@ class PrinterRepository implements IPrinterRepository { // Struck for customer if (order.totalPaid > 0) { - _printReceipt(order: order, outlet: outlet, cashieName: user.name); + final result = await _printReceipt( + order: order, + outlet: outlet, + cashieName: user.name, + ); + if (result.isLeft()) return result; // Jika gagal, return error } + // Struck for cashier - _printCashier(order: order, outlet: outlet, cashieName: user.name); + final cashierResult = await _printCashier( + order: order, + outlet: outlet, + cashieName: user.name, + ); + if (cashierResult.isLeft()) return cashierResult; + // Struck for kitchen - _printKitchen(order: order, outlet: outlet, cashieName: user.name); + final kitchenResult = await _printKitchen( + order: order, + outlet: outlet, + cashieName: user.name, + ); + if (kitchenResult.isLeft()) return kitchenResult; + // Struck for checker - _printChecker(order: order, outlet: outlet, cashieName: user.name); + final checkerResult = await _printChecker( + order: order, + outlet: outlet, + cashieName: user.name, + ); + if (checkerResult.isLeft()) return checkerResult; + // Struck for bar if exist product bar final itemsBar = order.orderItems.where( (item) => item.printerType == 'bar', ); if (itemsBar.isNotEmpty) { - _printBar(order: order, outlet: outlet, cashieName: user.name); + final barResult = await _printBar( + order: order, + outlet: outlet, + cashieName: user.name, + ); + if (barResult.isLeft()) return barResult; } return right(unit); @@ -561,6 +590,7 @@ class PrinterRepository implements IPrinterRepository { ); } } else { + log('Receipt printer not found', name: _logName); FirebaseCrashlytics.instance.recordError( 'Receipt printer not found', null, @@ -569,7 +599,9 @@ class PrinterRepository implements IPrinterRepository { information: ['Order ID: ${order.id}'], ); return left( - const PrinterFailure.dynamicErrorMessage('Receipt printer not found'), + const PrinterFailure.dynamicErrorMessage( + 'Receipt printer belum terhubung, Silahkan hubungkan printer di pengaturan.', + ), ); } } @@ -622,7 +654,9 @@ class PrinterRepository implements IPrinterRepository { information: ['Order ID: ${order.id}'], ); return left( - const PrinterFailure.dynamicErrorMessage('Cashier printer not found'), + const PrinterFailure.dynamicErrorMessage( + 'Receipt printer belum terhubung, Silahkan hubungkan printer di pengaturan.', + ), ); } } @@ -675,7 +709,9 @@ class PrinterRepository implements IPrinterRepository { information: ['Order ID: ${order.id}'], ); return left( - const PrinterFailure.dynamicErrorMessage('Kitchen printer not found'), + const PrinterFailure.dynamicErrorMessage( + 'Kitchen printer belum terhubung, Silahkan hubungkan printer di pengaturan.', + ), ); } } @@ -720,6 +756,7 @@ class PrinterRepository implements IPrinterRepository { ); } } else { + log('Checker printer not found', name: _logName); FirebaseCrashlytics.instance.recordError( 'Checker printer not found', null, @@ -728,7 +765,9 @@ class PrinterRepository implements IPrinterRepository { information: ['Order ID: ${order.id}'], ); return left( - const PrinterFailure.dynamicErrorMessage('Checker printer not found'), + const PrinterFailure.dynamicErrorMessage( + 'Checker printer belum terhubung, Silahkan hubungkan printer di pengaturan.', + ), ); } } @@ -785,7 +824,9 @@ class PrinterRepository implements IPrinterRepository { information: ['Order ID: ${order.id}'], ); return left( - const PrinterFailure.dynamicErrorMessage('Bar printer not found'), + const PrinterFailure.dynamicErrorMessage( + 'Bar printer belum terhubung, Silahkan hubungkan printer di pengaturan.', + ), ); } } @@ -833,7 +874,9 @@ class PrinterRepository implements IPrinterRepository { information: ['Order ID: ${order.id}'], ); return left( - const PrinterFailure.dynamicErrorMessage('Void printer not found'), + const PrinterFailure.dynamicErrorMessage( + 'Receipt printer belum terhubung, Silahkan hubungkan printer di pengaturan.', + ), ); } } @@ -886,7 +929,9 @@ class PrinterRepository implements IPrinterRepository { information: ['Order ID: ${order.id}'], ); return left( - const PrinterFailure.dynamicErrorMessage('SplitBill printer not found'), + const PrinterFailure.dynamicErrorMessage( + 'Receipt printer belum terhubung, Silahkan hubungkan printer di pengaturan.', + ), ); } }