Compare commits
2 Commits
3513c63259
...
6ac88b92ae
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6ac88b92ae | ||
|
|
9e4e2ebbd1 |
@ -31,6 +31,7 @@ class PrinterRepository implements IPrinterRepository {
|
|||||||
);
|
);
|
||||||
|
|
||||||
final Map<String, Lock> _locks = {};
|
final Map<String, Lock> _locks = {};
|
||||||
|
final Lock _globalPrintLock = Lock();
|
||||||
String? _connectedMac;
|
String? _connectedMac;
|
||||||
|
|
||||||
Lock _getLock(String address) {
|
Lock _getLock(String address) {
|
||||||
@ -454,6 +455,7 @@ class PrinterRepository implements IPrinterRepository {
|
|||||||
Future<Either<PrinterFailure, Unit>> printStruckOrder({
|
Future<Either<PrinterFailure, Unit>> printStruckOrder({
|
||||||
required Order order,
|
required Order order,
|
||||||
}) async {
|
}) async {
|
||||||
|
return await _globalPrintLock.synchronized(() async {
|
||||||
try {
|
try {
|
||||||
final outlet = await _outletLocalDatasource.currentOutlet();
|
final outlet = await _outletLocalDatasource.currentOutlet();
|
||||||
final user = await _authLocalDataProvider.currentUser();
|
final user = await _authLocalDataProvider.currentUser();
|
||||||
@ -526,12 +528,14 @@ class PrinterRepository implements IPrinterRepository {
|
|||||||
const PrinterFailure.dynamicErrorMessage('Error printing order'),
|
const PrinterFailure.dynamicErrorMessage('Error printing order'),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
}); // end _globalPrintLock.synchronized
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<Either<PrinterFailure, Unit>> printStruckSaveOrder({
|
Future<Either<PrinterFailure, Unit>> printStruckSaveOrder({
|
||||||
required Order order,
|
required Order order,
|
||||||
}) async {
|
}) async {
|
||||||
|
return await _globalPrintLock.synchronized(() async {
|
||||||
try {
|
try {
|
||||||
final outlet = await _outletLocalDatasource.currentOutlet();
|
final outlet = await _outletLocalDatasource.currentOutlet();
|
||||||
final user = await _authLocalDataProvider.currentUser();
|
final user = await _authLocalDataProvider.currentUser();
|
||||||
@ -595,42 +599,51 @@ class PrinterRepository implements IPrinterRepository {
|
|||||||
const PrinterFailure.dynamicErrorMessage('Error printing save order'),
|
const PrinterFailure.dynamicErrorMessage('Error printing save order'),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
}); // end _globalPrintLock.synchronized
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<Either<PrinterFailure, Unit>> printStruckCashier({
|
Future<Either<PrinterFailure, Unit>> printStruckCashier({
|
||||||
required Order order,
|
required Order order,
|
||||||
}) async {
|
}) async {
|
||||||
|
return await _globalPrintLock.synchronized(() async {
|
||||||
final outlet = await _outletLocalDatasource.currentOutlet();
|
final outlet = await _outletLocalDatasource.currentOutlet();
|
||||||
final user = await _authLocalDataProvider.currentUser();
|
final user = await _authLocalDataProvider.currentUser();
|
||||||
return _printCashier(order: order, outlet: outlet, cashieName: user.name);
|
return _printCashier(order: order, outlet: outlet, cashieName: user.name);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<Either<PrinterFailure, Unit>> printStruckVoid({
|
Future<Either<PrinterFailure, Unit>> printStruckVoid({
|
||||||
required Order order,
|
required Order order,
|
||||||
}) async {
|
}) async {
|
||||||
|
return await _globalPrintLock.synchronized(() async {
|
||||||
final outlet = await _outletLocalDatasource.currentOutlet();
|
final outlet = await _outletLocalDatasource.currentOutlet();
|
||||||
final user = await _authLocalDataProvider.currentUser();
|
final user = await _authLocalDataProvider.currentUser();
|
||||||
return _printVoid(order: order, outlet: outlet, cashieName: user.name);
|
return _printVoid(order: order, outlet: outlet, cashieName: user.name);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<Either<PrinterFailure, Unit>> printStruckSplitBill({
|
Future<Either<PrinterFailure, Unit>> printStruckSplitBill({
|
||||||
required Order order,
|
required Order order,
|
||||||
}) async {
|
}) async {
|
||||||
|
return await _globalPrintLock.synchronized(() async {
|
||||||
final outlet = await _outletLocalDatasource.currentOutlet();
|
final outlet = await _outletLocalDatasource.currentOutlet();
|
||||||
final user = await _authLocalDataProvider.currentUser();
|
final user = await _authLocalDataProvider.currentUser();
|
||||||
return _printSplitBill(order: order, outlet: outlet, cashieName: user.name);
|
return _printSplitBill(order: order, outlet: outlet, cashieName: user.name);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<Either<PrinterFailure, Unit>> printStruckPayment({
|
Future<Either<PrinterFailure, Unit>> printStruckPayment({
|
||||||
required Order order,
|
required Order order,
|
||||||
}) async {
|
}) async {
|
||||||
|
return await _globalPrintLock.synchronized(() async {
|
||||||
final outlet = await _outletLocalDatasource.currentOutlet();
|
final outlet = await _outletLocalDatasource.currentOutlet();
|
||||||
final user = await _authLocalDataProvider.currentUser();
|
final user = await _authLocalDataProvider.currentUser();
|
||||||
return _printReceipt(order: order, outlet: outlet, cashieName: user.name);
|
return _printReceipt(order: order, outlet: outlet, cashieName: user.name);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<Either<PrinterFailure, Unit>> _printReceipt({
|
Future<Either<PrinterFailure, Unit>> _printReceipt({
|
||||||
@ -1040,7 +1053,7 @@ class PrinterRepository implements IPrinterRepository {
|
|||||||
final chunk = data.sublist(i, end);
|
final chunk = data.sublist(i, end);
|
||||||
bool result = await PrintBluetoothThermal.writeBytes(chunk);
|
bool result = await PrintBluetoothThermal.writeBytes(chunk);
|
||||||
if (!result) return false;
|
if (!result) return false;
|
||||||
await Future.delayed(const Duration(milliseconds: 30));
|
await Future.delayed(const Duration(milliseconds: 100));
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -1049,26 +1062,32 @@ class PrinterRepository implements IPrinterRepository {
|
|||||||
Future<Either<PrinterFailure, Unit>> printStruckBar({
|
Future<Either<PrinterFailure, Unit>> printStruckBar({
|
||||||
required Order order,
|
required Order order,
|
||||||
}) async {
|
}) async {
|
||||||
|
return await _globalPrintLock.synchronized(() async {
|
||||||
final outlet = await _outletLocalDatasource.currentOutlet();
|
final outlet = await _outletLocalDatasource.currentOutlet();
|
||||||
final user = await _authLocalDataProvider.currentUser();
|
final user = await _authLocalDataProvider.currentUser();
|
||||||
return _printBar(order: order, outlet: outlet, cashieName: user.name);
|
return _printBar(order: order, outlet: outlet, cashieName: user.name);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<Either<PrinterFailure, Unit>> printStruckChecker({
|
Future<Either<PrinterFailure, Unit>> printStruckChecker({
|
||||||
required Order order,
|
required Order order,
|
||||||
}) async {
|
}) async {
|
||||||
|
return await _globalPrintLock.synchronized(() async {
|
||||||
final outlet = await _outletLocalDatasource.currentOutlet();
|
final outlet = await _outletLocalDatasource.currentOutlet();
|
||||||
final user = await _authLocalDataProvider.currentUser();
|
final user = await _authLocalDataProvider.currentUser();
|
||||||
return _printChecker(order: order, outlet: outlet, cashieName: user.name);
|
return _printChecker(order: order, outlet: outlet, cashieName: user.name);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<Either<PrinterFailure, Unit>> printStruckKitchen({
|
Future<Either<PrinterFailure, Unit>> printStruckKitchen({
|
||||||
required Order order,
|
required Order order,
|
||||||
}) async {
|
}) async {
|
||||||
|
return await _globalPrintLock.synchronized(() async {
|
||||||
final outlet = await _outletLocalDatasource.currentOutlet();
|
final outlet = await _outletLocalDatasource.currentOutlet();
|
||||||
final user = await _authLocalDataProvider.currentUser();
|
final user = await _authLocalDataProvider.currentUser();
|
||||||
return _printKitchen(order: order, outlet: outlet, cashieName: user.name);
|
return _printKitchen(order: order, outlet: outlet, cashieName: user.name);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -70,6 +70,9 @@ class CheckoutPage extends StatelessWidget implements AutoRouteWrapper {
|
|||||||
(f) => AppFlushbar.showOrderFailureToast(context, f),
|
(f) => AppFlushbar.showOrderFailureToast(context, f),
|
||||||
(order) {
|
(order) {
|
||||||
if (context.mounted) {
|
if (context.mounted) {
|
||||||
|
context.read<CheckoutFormBloc>().add(
|
||||||
|
CheckoutFormEvent.orderAddedItems(order),
|
||||||
|
);
|
||||||
context.router.replace(const SuccessAddItemOrderRoute());
|
context.router.replace(const SuccessAddItemOrderRoute());
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -188,10 +188,14 @@ class SuccessAddItemOrderLeftPanel extends StatelessWidget {
|
|||||||
Expanded(
|
Expanded(
|
||||||
child: AppElevatedButton.filled(
|
child: AppElevatedButton.filled(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
|
print("onPressed");
|
||||||
|
print(checkoutState.orderAdded);
|
||||||
|
final order = checkoutState.orderAdded;
|
||||||
|
if (order == null) return;
|
||||||
context.read<PrintStruckBloc>().add(
|
context.read<PrintStruckBloc>().add(
|
||||||
PrintStruckEvent.order(
|
PrintStruckEvent.order(
|
||||||
Order.fromLastOrder(
|
Order.fromLastOrder(
|
||||||
checkoutState.orderAdded!,
|
order,
|
||||||
checkoutState.items,
|
checkoutState.items,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user