fix printer fc
This commit is contained in:
parent
3513c63259
commit
9e4e2ebbd1
@ -31,6 +31,7 @@ class PrinterRepository implements IPrinterRepository {
|
||||
);
|
||||
|
||||
final Map<String, Lock> _locks = {};
|
||||
final Lock _globalPrintLock = Lock();
|
||||
String? _connectedMac;
|
||||
|
||||
Lock _getLock(String address) {
|
||||
@ -454,6 +455,7 @@ class PrinterRepository implements IPrinterRepository {
|
||||
Future<Either<PrinterFailure, Unit>> printStruckOrder({
|
||||
required Order order,
|
||||
}) async {
|
||||
return await _globalPrintLock.synchronized(() async {
|
||||
try {
|
||||
final outlet = await _outletLocalDatasource.currentOutlet();
|
||||
final user = await _authLocalDataProvider.currentUser();
|
||||
@ -526,12 +528,14 @@ class PrinterRepository implements IPrinterRepository {
|
||||
const PrinterFailure.dynamicErrorMessage('Error printing order'),
|
||||
);
|
||||
}
|
||||
}); // end _globalPrintLock.synchronized
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Either<PrinterFailure, Unit>> printStruckSaveOrder({
|
||||
required Order order,
|
||||
}) async {
|
||||
return await _globalPrintLock.synchronized(() async {
|
||||
try {
|
||||
final outlet = await _outletLocalDatasource.currentOutlet();
|
||||
final user = await _authLocalDataProvider.currentUser();
|
||||
@ -595,42 +599,51 @@ class PrinterRepository implements IPrinterRepository {
|
||||
const PrinterFailure.dynamicErrorMessage('Error printing save order'),
|
||||
);
|
||||
}
|
||||
}); // end _globalPrintLock.synchronized
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Either<PrinterFailure, Unit>> printStruckCashier({
|
||||
required Order order,
|
||||
}) async {
|
||||
return await _globalPrintLock.synchronized(() async {
|
||||
final outlet = await _outletLocalDatasource.currentOutlet();
|
||||
final user = await _authLocalDataProvider.currentUser();
|
||||
return _printCashier(order: order, outlet: outlet, cashieName: user.name);
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Either<PrinterFailure, Unit>> printStruckVoid({
|
||||
required Order order,
|
||||
}) async {
|
||||
return await _globalPrintLock.synchronized(() 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>> printStruckSplitBill({
|
||||
required Order order,
|
||||
}) async {
|
||||
return await _globalPrintLock.synchronized(() 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,
|
||||
}) async {
|
||||
return await _globalPrintLock.synchronized(() async {
|
||||
final outlet = await _outletLocalDatasource.currentOutlet();
|
||||
final user = await _authLocalDataProvider.currentUser();
|
||||
return _printReceipt(order: order, outlet: outlet, cashieName: user.name);
|
||||
});
|
||||
}
|
||||
|
||||
Future<Either<PrinterFailure, Unit>> _printReceipt({
|
||||
@ -1040,7 +1053,7 @@ class PrinterRepository implements IPrinterRepository {
|
||||
final chunk = data.sublist(i, end);
|
||||
bool result = await PrintBluetoothThermal.writeBytes(chunk);
|
||||
if (!result) return false;
|
||||
await Future.delayed(const Duration(milliseconds: 30));
|
||||
await Future.delayed(const Duration(milliseconds: 100));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@ -1049,26 +1062,32 @@ class PrinterRepository implements IPrinterRepository {
|
||||
Future<Either<PrinterFailure, Unit>> printStruckBar({
|
||||
required Order order,
|
||||
}) async {
|
||||
return await _globalPrintLock.synchronized(() async {
|
||||
final outlet = await _outletLocalDatasource.currentOutlet();
|
||||
final user = await _authLocalDataProvider.currentUser();
|
||||
return _printBar(order: order, outlet: outlet, cashieName: user.name);
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Either<PrinterFailure, Unit>> printStruckChecker({
|
||||
required Order order,
|
||||
}) async {
|
||||
return await _globalPrintLock.synchronized(() async {
|
||||
final outlet = await _outletLocalDatasource.currentOutlet();
|
||||
final user = await _authLocalDataProvider.currentUser();
|
||||
return _printChecker(order: order, outlet: outlet, cashieName: user.name);
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Either<PrinterFailure, Unit>> printStruckKitchen({
|
||||
required Order order,
|
||||
}) async {
|
||||
return await _globalPrintLock.synchronized(() async {
|
||||
final outlet = await _outletLocalDatasource.currentOutlet();
|
||||
final user = await _authLocalDataProvider.currentUser();
|
||||
return _printKitchen(order: order, outlet: outlet, cashieName: user.name);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user