Compare commits
2
Commits
eb031d4c2a
...
f5b0e66706
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f5b0e66706 | ||
|
|
1ff144a1a2 |
@@ -460,78 +460,78 @@ class PrinterRepository implements IPrinterRepository {
|
|||||||
required Order order,
|
required Order order,
|
||||||
}) async {
|
}) async {
|
||||||
return await _globalPrintLock.synchronized(() 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();
|
||||||
|
|
||||||
// Struck for customer
|
// Struck for customer
|
||||||
if (order.totalPaid > 0) {
|
if (order.totalPaid > 0) {
|
||||||
final result = await _printReceipt(
|
final result = await _printReceipt(
|
||||||
|
order: order,
|
||||||
|
outlet: outlet,
|
||||||
|
cashieName: user.name,
|
||||||
|
);
|
||||||
|
if (result.isLeft()) return result; // Jika gagal, return error
|
||||||
|
}
|
||||||
|
|
||||||
|
// Struck for cashier
|
||||||
|
final cashierResult = await _printCashier(
|
||||||
order: order,
|
order: order,
|
||||||
outlet: outlet,
|
outlet: outlet,
|
||||||
cashieName: user.name,
|
cashieName: user.name,
|
||||||
);
|
);
|
||||||
if (result.isLeft()) return result; // Jika gagal, return error
|
if (cashierResult.isLeft()) return cashierResult;
|
||||||
}
|
|
||||||
|
|
||||||
// Struck for cashier
|
// Struck for checker
|
||||||
final cashierResult = await _printCashier(
|
final checkerResult = await _printChecker(
|
||||||
order: order,
|
|
||||||
outlet: outlet,
|
|
||||||
cashieName: user.name,
|
|
||||||
);
|
|
||||||
if (cashierResult.isLeft()) return cashierResult;
|
|
||||||
|
|
||||||
// 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,
|
order: order,
|
||||||
outlet: outlet,
|
outlet: outlet,
|
||||||
cashieName: user.name,
|
cashieName: user.name,
|
||||||
);
|
);
|
||||||
if (kitchenResult.isLeft()) return kitchenResult;
|
if (checkerResult.isLeft()) return checkerResult;
|
||||||
}
|
|
||||||
|
|
||||||
// Struck for bar if exist product bar
|
// Struck for bar if exist product bar
|
||||||
final itemsBar = order.orderItems.where(
|
final itemsKitchen = order.orderItems.where(
|
||||||
(item) => item.printerType == 'bar',
|
(item) => item.printerType == 'kitchen',
|
||||||
);
|
);
|
||||||
|
|
||||||
if (itemsBar.isNotEmpty) {
|
if (itemsKitchen.isNotEmpty) {
|
||||||
final barResult = await _printBar(
|
final kitchenResult = await _printKitchen(
|
||||||
order: order,
|
order: order,
|
||||||
outlet: outlet,
|
outlet: outlet,
|
||||||
cashieName: user.name,
|
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) {
|
||||||
|
final barResult = await _printBar(
|
||||||
|
order: order,
|
||||||
|
outlet: outlet,
|
||||||
|
cashieName: user.name,
|
||||||
|
);
|
||||||
|
if (barResult.isLeft()) return barResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
return right(unit);
|
||||||
|
} catch (e, stackTrace) {
|
||||||
|
FirebaseCrashlytics.instance.recordError(
|
||||||
|
'Print Struck Order Error: $e',
|
||||||
|
stackTrace,
|
||||||
|
reason:
|
||||||
|
'Print struck order error / Printer not setting in printer page',
|
||||||
|
information: ['Order ID: ${order.id}'],
|
||||||
|
);
|
||||||
|
log("Error printing struck order", name: _logName, error: e);
|
||||||
|
return left(
|
||||||
|
const PrinterFailure.dynamicErrorMessage('Error printing order'),
|
||||||
);
|
);
|
||||||
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(
|
|
||||||
'Print Struck Order Error: $e',
|
|
||||||
stackTrace,
|
|
||||||
reason:
|
|
||||||
'Print struck order error / Printer not setting in printer page',
|
|
||||||
information: ['Order ID: ${order.id}'],
|
|
||||||
);
|
|
||||||
log("Error printing struck order", name: _logName, error: e);
|
|
||||||
return left(
|
|
||||||
const PrinterFailure.dynamicErrorMessage('Error printing order'),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}); // end _globalPrintLock.synchronized
|
}); // end _globalPrintLock.synchronized
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -540,69 +540,69 @@ class PrinterRepository implements IPrinterRepository {
|
|||||||
required Order order,
|
required Order order,
|
||||||
}) async {
|
}) async {
|
||||||
return await _globalPrintLock.synchronized(() 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();
|
||||||
|
|
||||||
// Struck for cashier
|
// Struck for cashier
|
||||||
final cashierResult = await _printCashier(
|
final cashierResult = await _printCashier(
|
||||||
order: order,
|
|
||||||
outlet: outlet,
|
|
||||||
cashieName: user.name,
|
|
||||||
);
|
|
||||||
if (cashierResult.isLeft()) return cashierResult;
|
|
||||||
|
|
||||||
// Struck for kitchen
|
|
||||||
// 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,
|
order: order,
|
||||||
outlet: outlet,
|
outlet: outlet,
|
||||||
cashieName: user.name,
|
cashieName: user.name,
|
||||||
);
|
);
|
||||||
if (kitchenResult.isLeft()) return kitchenResult;
|
if (cashierResult.isLeft()) return cashierResult;
|
||||||
}
|
|
||||||
|
|
||||||
// Struck for bar if exist product bar
|
// Struck for checker
|
||||||
final itemsBar = order.orderItems.where(
|
final checkerResult = await _printChecker(
|
||||||
(item) => item.printerType == 'bar',
|
|
||||||
);
|
|
||||||
|
|
||||||
if (itemsBar.isNotEmpty) {
|
|
||||||
final barResult = await _printBar(
|
|
||||||
order: order,
|
order: order,
|
||||||
outlet: outlet,
|
outlet: outlet,
|
||||||
cashieName: user.name,
|
cashieName: user.name,
|
||||||
);
|
);
|
||||||
if (barResult.isLeft()) return barResult;
|
if (checkerResult.isLeft()) return checkerResult;
|
||||||
|
|
||||||
|
// Struck for kitchen
|
||||||
|
// 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) {
|
||||||
|
final barResult = await _printBar(
|
||||||
|
order: order,
|
||||||
|
outlet: outlet,
|
||||||
|
cashieName: user.name,
|
||||||
|
);
|
||||||
|
if (barResult.isLeft()) return barResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
return right(unit);
|
||||||
|
} catch (e, stackTrace) {
|
||||||
|
FirebaseCrashlytics.instance.recordError(
|
||||||
|
'Print Struck Save Order Error: $e',
|
||||||
|
stackTrace,
|
||||||
|
reason:
|
||||||
|
'Print struck save order error / Printer not setting in printer page',
|
||||||
|
information: ['Order ID: ${order.id}'],
|
||||||
|
);
|
||||||
|
log("Error printing struck save order", name: _logName, error: e);
|
||||||
|
return left(
|
||||||
|
const PrinterFailure.dynamicErrorMessage('Error printing save order'),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 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(
|
|
||||||
'Print Struck Save Order Error: $e',
|
|
||||||
stackTrace,
|
|
||||||
reason:
|
|
||||||
'Print struck save order error / Printer not setting in printer page',
|
|
||||||
information: ['Order ID: ${order.id}'],
|
|
||||||
);
|
|
||||||
log("Error printing struck save order", name: _logName, error: e);
|
|
||||||
return left(
|
|
||||||
const PrinterFailure.dynamicErrorMessage('Error printing save order'),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}); // end _globalPrintLock.synchronized
|
}); // end _globalPrintLock.synchronized
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -611,9 +611,9 @@ class PrinterRepository implements IPrinterRepository {
|
|||||||
required Order order,
|
required Order order,
|
||||||
}) async {
|
}) async {
|
||||||
return await _globalPrintLock.synchronized(() 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);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -622,9 +622,9 @@ class PrinterRepository implements IPrinterRepository {
|
|||||||
required Order order,
|
required Order order,
|
||||||
}) async {
|
}) async {
|
||||||
return await _globalPrintLock.synchronized(() 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);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -633,9 +633,13 @@ class PrinterRepository implements IPrinterRepository {
|
|||||||
required Order order,
|
required Order order,
|
||||||
}) async {
|
}) async {
|
||||||
return await _globalPrintLock.synchronized(() 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,
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -644,9 +648,9 @@ class PrinterRepository implements IPrinterRepository {
|
|||||||
required Order order,
|
required Order order,
|
||||||
}) async {
|
}) async {
|
||||||
return await _globalPrintLock.synchronized(() 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);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1075,9 +1079,9 @@ class PrinterRepository implements IPrinterRepository {
|
|||||||
required Order order,
|
required Order order,
|
||||||
}) async {
|
}) async {
|
||||||
return await _globalPrintLock.synchronized(() 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);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1086,9 +1090,9 @@ class PrinterRepository implements IPrinterRepository {
|
|||||||
required Order order,
|
required Order order,
|
||||||
}) async {
|
}) async {
|
||||||
return await _globalPrintLock.synchronized(() 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);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1097,9 +1101,9 @@ class PrinterRepository implements IPrinterRepository {
|
|||||||
required Order order,
|
required Order order,
|
||||||
}) async {
|
}) async {
|
||||||
return await _globalPrintLock.synchronized(() 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);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -3,7 +3,7 @@ description: "A new Flutter project."
|
|||||||
|
|
||||||
publish_to: "none"
|
publish_to: "none"
|
||||||
|
|
||||||
version: 1.0.10+16
|
version: 1.0.11+17
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ^3.8.1
|
sdk: ^3.8.1
|
||||||
|
|||||||
Reference in New Issue
Block a user