split struct
This commit is contained in:
@@ -498,6 +498,15 @@ class PrinterRepository implements IPrinterRepository {
|
||||
return _printVoid(order: order, outlet: outlet, cashieName: user.name);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Either<PrinterFailure, Unit>> printStruckSplitBill({
|
||||
required Order order,
|
||||
}) async {
|
||||
final outlet = await _outletLocalDatasource.currentOutlet();
|
||||
final user = await _authLocalDataProvider.currentUser();
|
||||
return _printSplitBill(order: order, outlet: outlet, cashieName: user.name);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Either<PrinterFailure, Unit>> printStruckPayment({
|
||||
required Order order,
|
||||
@@ -823,4 +832,57 @@ class PrinterRepository implements IPrinterRepository {
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Future<Either<PrinterFailure, Unit>> _printSplitBill({
|
||||
required Order order,
|
||||
required Outlet outlet,
|
||||
required String cashieName,
|
||||
}) async {
|
||||
log('Starting to print splitBill', name: _logName);
|
||||
final splitBillPrinter = await _localDataProvider.findPrinterByCode(
|
||||
'receipt',
|
||||
);
|
||||
if (splitBillPrinter.hasData) {
|
||||
try {
|
||||
final printer = splitBillPrinter.data!.toDomain();
|
||||
|
||||
final printValue = await PrintUi().printSplit(
|
||||
order: order,
|
||||
outlet: outlet,
|
||||
cashierName: cashieName,
|
||||
);
|
||||
|
||||
await printStruct(printer, printValue);
|
||||
|
||||
log('Finished printed splitBill', name: _logName);
|
||||
|
||||
return right(unit);
|
||||
} catch (e, stackTrace) {
|
||||
FirebaseCrashlytics.instance.recordError(
|
||||
'Print Struck SplitBill Error: $e',
|
||||
stackTrace,
|
||||
reason:
|
||||
'Print struck splitBill error / Printer not setting in printer page',
|
||||
information: ['Order ID: ${order.id}'],
|
||||
);
|
||||
log("Error printing splitBill", name: _logName, error: e);
|
||||
return left(
|
||||
const PrinterFailure.dynamicErrorMessage(
|
||||
'Error printing splitBill order',
|
||||
),
|
||||
);
|
||||
}
|
||||
} else {
|
||||
FirebaseCrashlytics.instance.recordError(
|
||||
'SplitBill printer not found',
|
||||
null,
|
||||
reason:
|
||||
'SplitBill printer not found / Printer not setting in printer page',
|
||||
information: ['Order ID: ${order.id}'],
|
||||
);
|
||||
return left(
|
||||
const PrinterFailure.dynamicErrorMessage('SplitBill printer not found'),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user