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