fix printer

This commit is contained in:
efrilm 2025-11-13 15:57:43 +07:00
parent d8a28c084d
commit e3b9444a08

View File

@ -429,21 +429,19 @@ class PrinterRepository implements IPrinterRepository {
);
if (cashierResult.isLeft()) return cashierResult;
// Struck for kitchen
final kitchenResult = await _printKitchen(
order: order,
outlet: outlet,
cashieName: user.name,
// Struck for bar if exist product bar
final itemsKitchen = order.orderItems.where(
(item) => item.printerType == 'kitchen',
);
if (kitchenResult.isLeft()) return kitchenResult;
// Struck for checker
final checkerResult = await _printChecker(
order: order,
outlet: outlet,
cashieName: user.name,
);
if (checkerResult.isLeft()) return checkerResult;
if (itemsKitchen.isNotEmpty) {
final kitchenResult = await _printKitchen(
order: order,
outlet: outlet,
cashieName: user.name,
);
if (kitchenResult.isLeft()) return kitchenResult;
}
// Struck for bar if exist product bar
final itemsBar = order.orderItems.where(
@ -459,6 +457,14 @@ class PrinterRepository implements IPrinterRepository {
if (barResult.isLeft()) return barResult;
}
// Struck for checker
final checkerResult = await _printChecker(
order: order,
outlet: outlet,
cashieName: user.name,
);
if (checkerResult.isLeft()) return checkerResult;
return right(unit);
} catch (e, stackTrace) {
FirebaseCrashlytics.instance.recordError(
@ -484,20 +490,50 @@ class PrinterRepository implements IPrinterRepository {
final user = await _authLocalDataProvider.currentUser();
// 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);
// Struck for checker
_printChecker(order: order, outlet: outlet, cashieName: user.name);
// Struck for bar if exist product bar
final itemsKitchen = order.orderItems.where(
(item) => item.printerType == 'kitchen',
);
if (itemsKitchen.isNotEmpty) {
final kitchenResult = await _printKitchen(
order: order,
outlet: outlet,
cashieName: user.name,
);
if (kitchenResult.isLeft()) return kitchenResult;
}
// 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;
}
// Struck for checker
final checkerResult = await _printChecker(
order: order,
outlet: outlet,
cashieName: user.name,
);
if (checkerResult.isLeft()) return checkerResult;
return right(unit);
} catch (e, stackTrace) {
FirebaseCrashlytics.instance.recordError(
@ -672,15 +708,23 @@ class PrinterRepository implements IPrinterRepository {
);
if (kitchenPrinter.hasData) {
try {
final printer = kitchenPrinter.data!.toDomain();
final productKitchen = order.orderItems
.where((item) => item.printerType == 'kitchen')
.toList();
final printValue = await PrintUi().printKitchen(
order: order,
outlet: outlet,
cashierName: cashieName,
);
if (productKitchen.isNotEmpty) {
final printer = kitchenPrinter.data!.toDomain();
await printStruct(printer, printValue);
final printValue = await PrintUi().printKitchen(
order: order.copyWith(orderItems: productKitchen),
outlet: outlet,
cashierName: cashieName,
);
await printStruct(printer, printValue);
} else {
log('Product with printer type bar not found', name: _logName);
}
log('Finished printed kitchen', name: _logName);
@ -789,7 +833,7 @@ class PrinterRepository implements IPrinterRepository {
final printer = barPrinter.data!.toDomain();
final printValue = await PrintUi().printBar(
order: order,
order: order.copyWith(orderItems: productBar),
outlet: outlet,
cashierName: cashieName,
);