sunmi
This commit is contained in:
@@ -38,11 +38,11 @@ EXTERNAL SOURCES:
|
|||||||
|
|
||||||
SPEC CHECKSUMS:
|
SPEC CHECKSUMS:
|
||||||
Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467
|
Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467
|
||||||
flutter_secure_storage: 1ed9476fba7e7a782b22888f956cce43e2c62f13
|
flutter_secure_storage: d33dac7ae2ea08509be337e775f6b59f1ff45f12
|
||||||
mobile_scanner: 9157936403f5a0644ca3779a38ff8404c5434a93
|
mobile_scanner: 77265f3dc8d580810e91849d4a0811a90467ed5e
|
||||||
path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564
|
path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46
|
||||||
printing: 54ff03f28fe9ba3aa93358afb80a8595a071dd07
|
printing: 233e1b73bd1f4a05615548e9b5a324c98588640b
|
||||||
sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0
|
sqflite_darwin: 5a7236e3b501866c1c9befc6771dfd73ffb8702d
|
||||||
|
|
||||||
PODFILE CHECKSUM: 3c63482e143d1b91d2d2560aee9fb04ecc74ac7e
|
PODFILE CHECKSUM: 3c63482e143d1b91d2d2560aee9fb04ecc74ac7e
|
||||||
|
|
||||||
|
|||||||
@@ -21,39 +21,42 @@ class SunmiService {
|
|||||||
String? barcodeData,
|
String? barcodeData,
|
||||||
}) async {
|
}) async {
|
||||||
try {
|
try {
|
||||||
// Check if printer is bound
|
|
||||||
final bool? isBound = await SunmiPrinter.bindingPrinter();
|
|
||||||
if (isBound != true) {
|
|
||||||
throw Exception('Sunmi printer not available');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Format current date
|
// Format current date
|
||||||
final dt = DateFormat('dd/MM/yyyy HH:mm').format(DateTime.now());
|
final dt = DateFormat('dd/MM/yyyy HH:mm').format(DateTime.now());
|
||||||
|
|
||||||
// Reset printer
|
|
||||||
await SunmiPrinter.initPrinter();
|
|
||||||
await SunmiPrinter.resetFontSize();
|
|
||||||
|
|
||||||
// Title - PHIẾU XUẤT KHO
|
// Title - PHIẾU XUẤT KHO
|
||||||
await SunmiPrinter.setAlignment(SunmiPrintAlign.CENTER);
|
await SunmiPrinter.printText(
|
||||||
await SunmiPrinter.bold();
|
'PHIEU XUAT KHO',
|
||||||
await SunmiPrinter.setCustomFontSize(30);
|
style: SunmiTextStyle(
|
||||||
await SunmiPrinter.printText('PHIEU XUAT KHO');
|
align: SunmiPrintAlign.CENTER,
|
||||||
await SunmiPrinter.resetBold();
|
bold: true,
|
||||||
await SunmiPrinter.setCustomFontSize(24);
|
fontSize: 48,
|
||||||
|
),
|
||||||
|
);
|
||||||
await SunmiPrinter.lineWrap(1);
|
await SunmiPrinter.lineWrap(1);
|
||||||
|
|
||||||
// Company name
|
// Company name
|
||||||
await SunmiPrinter.printText('Cong ty TNHH Co Khi Chinh Xac Minh Thu');
|
await SunmiPrinter.printText(
|
||||||
await SunmiPrinter.resetFontSize();
|
'Cong ty TNHH Co Khi Chinh Xac Minh Thu',
|
||||||
|
style: SunmiTextStyle(
|
||||||
|
align: SunmiPrintAlign.CENTER,
|
||||||
|
fontSize: 32,
|
||||||
|
),
|
||||||
|
);
|
||||||
await SunmiPrinter.lineWrap(1);
|
await SunmiPrinter.lineWrap(1);
|
||||||
|
|
||||||
// Warehouse name
|
// Warehouse name
|
||||||
await SunmiPrinter.printText(warehouseName);
|
await SunmiPrinter.printText(
|
||||||
|
warehouseName,
|
||||||
|
style: SunmiTextStyle(align: SunmiPrintAlign.CENTER),
|
||||||
|
);
|
||||||
await SunmiPrinter.lineWrap(1);
|
await SunmiPrinter.lineWrap(1);
|
||||||
|
|
||||||
// Date
|
// Date
|
||||||
await SunmiPrinter.printText('Ngay: $dt');
|
await SunmiPrinter.printText(
|
||||||
|
'Ngay: $dt',
|
||||||
|
style: SunmiTextStyle(align: SunmiPrintAlign.CENTER),
|
||||||
|
);
|
||||||
await SunmiPrinter.lineWrap(2);
|
await SunmiPrinter.lineWrap(2);
|
||||||
|
|
||||||
// Separator line
|
// Separator line
|
||||||
@@ -61,26 +64,41 @@ class SunmiService {
|
|||||||
await SunmiPrinter.lineWrap(1);
|
await SunmiPrinter.lineWrap(1);
|
||||||
|
|
||||||
// Product information
|
// Product information
|
||||||
await SunmiPrinter.setAlignment(SunmiPrintAlign.LEFT);
|
await SunmiPrinter.printText(
|
||||||
await SunmiPrinter.bold();
|
'THONG TIN SAN PHAM',
|
||||||
await SunmiPrinter.printText('THONG TIN SAN PHAM');
|
style: SunmiTextStyle(
|
||||||
await SunmiPrinter.resetBold();
|
align: SunmiPrintAlign.LEFT,
|
||||||
|
bold: true,
|
||||||
|
),
|
||||||
|
);
|
||||||
await SunmiPrinter.lineWrap(1);
|
await SunmiPrinter.lineWrap(1);
|
||||||
|
|
||||||
// ProductId
|
// ProductId
|
||||||
await SunmiPrinter.printText('ProductId: $productId');
|
await SunmiPrinter.printText(
|
||||||
|
'ProductId: $productId',
|
||||||
|
style: SunmiTextStyle(align: SunmiPrintAlign.LEFT),
|
||||||
|
);
|
||||||
await SunmiPrinter.lineWrap(1);
|
await SunmiPrinter.lineWrap(1);
|
||||||
|
|
||||||
// Product Code
|
// Product Code
|
||||||
await SunmiPrinter.printText('Ma san pham: $productCode');
|
await SunmiPrinter.printText(
|
||||||
|
'Ma san pham: $productCode',
|
||||||
|
style: SunmiTextStyle(align: SunmiPrintAlign.LEFT),
|
||||||
|
);
|
||||||
await SunmiPrinter.lineWrap(1);
|
await SunmiPrinter.lineWrap(1);
|
||||||
|
|
||||||
// Product Name
|
// Product Name
|
||||||
await SunmiPrinter.printText('Ten san pham: $productName');
|
await SunmiPrinter.printText(
|
||||||
|
'Ten san pham: $productName',
|
||||||
|
style: SunmiTextStyle(align: SunmiPrintAlign.LEFT),
|
||||||
|
);
|
||||||
await SunmiPrinter.lineWrap(1);
|
await SunmiPrinter.lineWrap(1);
|
||||||
|
|
||||||
// Stage Name
|
// Stage Name
|
||||||
await SunmiPrinter.printText('Cong doan: ${stageName ?? '-'}');
|
await SunmiPrinter.printText(
|
||||||
|
'Cong doan: ${stageName ?? '-'}',
|
||||||
|
style: SunmiTextStyle(align: SunmiPrintAlign.LEFT),
|
||||||
|
);
|
||||||
await SunmiPrinter.lineWrap(2);
|
await SunmiPrinter.lineWrap(2);
|
||||||
|
|
||||||
// Separator line
|
// Separator line
|
||||||
@@ -88,23 +106,37 @@ class SunmiService {
|
|||||||
await SunmiPrinter.lineWrap(1);
|
await SunmiPrinter.lineWrap(1);
|
||||||
|
|
||||||
// Quantities
|
// Quantities
|
||||||
await SunmiPrinter.bold();
|
await SunmiPrinter.printText(
|
||||||
await SunmiPrinter.printText('SO LUONG');
|
'SO LUONG',
|
||||||
await SunmiPrinter.resetBold();
|
style: SunmiTextStyle(
|
||||||
|
align: SunmiPrintAlign.LEFT,
|
||||||
|
bold: true,
|
||||||
|
),
|
||||||
|
);
|
||||||
await SunmiPrinter.lineWrap(1);
|
await SunmiPrinter.lineWrap(1);
|
||||||
|
|
||||||
// Table header
|
// Table header
|
||||||
await SunmiPrinter.setAlignment(SunmiPrintAlign.LEFT);
|
await SunmiPrinter.printText(
|
||||||
await SunmiPrinter.printText('Loai KG PCS');
|
'Loai KG PCS',
|
||||||
|
style: SunmiTextStyle(align: SunmiPrintAlign.LEFT),
|
||||||
|
);
|
||||||
await SunmiPrinter.line();
|
await SunmiPrinter.line();
|
||||||
|
|
||||||
// Passed quantity (Hàng đạt)
|
// Passed quantity (Hàng đạt)
|
||||||
final passedLine = 'Hang dat ${passedKg.toStringAsFixed(2).padLeft(7)} ${passedPcs.toString().padLeft(5)}';
|
final passedLine =
|
||||||
await SunmiPrinter.printText(passedLine);
|
'Hang dat ${passedKg.toStringAsFixed(2).padLeft(7)} ${passedPcs.toString().padLeft(5)}';
|
||||||
|
await SunmiPrinter.printText(
|
||||||
|
passedLine,
|
||||||
|
style: SunmiTextStyle(align: SunmiPrintAlign.LEFT),
|
||||||
|
);
|
||||||
|
|
||||||
// Issued quantity (Hàng lỗi)
|
// Issued quantity (Hàng lỗi)
|
||||||
final issuedLine = 'Hang loi ${issuedKg.toStringAsFixed(2).padLeft(7)} ${issuedPcs.toString().padLeft(5)}';
|
final issuedLine =
|
||||||
await SunmiPrinter.printText(issuedLine);
|
'Hang loi ${issuedKg.toStringAsFixed(2).padLeft(7)} ${issuedPcs.toString().padLeft(5)}';
|
||||||
|
await SunmiPrinter.printText(
|
||||||
|
issuedLine,
|
||||||
|
style: SunmiTextStyle(align: SunmiPrintAlign.LEFT),
|
||||||
|
);
|
||||||
await SunmiPrinter.lineWrap(2);
|
await SunmiPrinter.lineWrap(2);
|
||||||
|
|
||||||
// Separator line
|
// Separator line
|
||||||
@@ -112,29 +144,44 @@ class SunmiService {
|
|||||||
await SunmiPrinter.lineWrap(1);
|
await SunmiPrinter.lineWrap(1);
|
||||||
|
|
||||||
// Responsible person
|
// Responsible person
|
||||||
await SunmiPrinter.printText('Nhan vien kho: ${responsibleName ?? '-'}');
|
await SunmiPrinter.printText(
|
||||||
|
'Nhan vien kho: ${responsibleName ?? '-'}',
|
||||||
|
style: SunmiTextStyle(align: SunmiPrintAlign.LEFT),
|
||||||
|
);
|
||||||
await SunmiPrinter.lineWrap(1);
|
await SunmiPrinter.lineWrap(1);
|
||||||
|
|
||||||
// Receiver
|
// Receiver
|
||||||
await SunmiPrinter.printText('Nhan vien tiep nhan: ${receiverName ?? '-'}');
|
await SunmiPrinter.printText(
|
||||||
|
'Nhan vien tiep nhan: ${receiverName ?? '-'}',
|
||||||
|
style: SunmiTextStyle(align: SunmiPrintAlign.LEFT),
|
||||||
|
);
|
||||||
await SunmiPrinter.lineWrap(2);
|
await SunmiPrinter.lineWrap(2);
|
||||||
|
|
||||||
// Barcode
|
// Barcode
|
||||||
if (barcodeData != null && barcodeData.isNotEmpty) {
|
if (barcodeData != null && barcodeData.isNotEmpty) {
|
||||||
await SunmiPrinter.line();
|
await SunmiPrinter.line();
|
||||||
await SunmiPrinter.setAlignment(SunmiPrintAlign.CENTER);
|
await SunmiPrinter.printBarCode(
|
||||||
await SunmiPrinter.printBarCode(barcodeData);
|
barcodeData,
|
||||||
|
style: SunmiBarcodeStyle(
|
||||||
|
type: SunmiBarcodeType.CODE128,
|
||||||
|
textPos: SunmiBarcodeTextPos.TEXT_UNDER,
|
||||||
|
height: 100,
|
||||||
|
align: SunmiPrintAlign.CENTER,
|
||||||
|
),
|
||||||
|
);
|
||||||
await SunmiPrinter.lineWrap(2);
|
await SunmiPrinter.lineWrap(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Footer
|
// Footer
|
||||||
await SunmiPrinter.line();
|
await SunmiPrinter.line();
|
||||||
await SunmiPrinter.setAlignment(SunmiPrintAlign.CENTER);
|
await SunmiPrinter.printText(
|
||||||
await SunmiPrinter.printText('Nguoi nhan');
|
'Nguoi nhan',
|
||||||
|
style: SunmiTextStyle(align: SunmiPrintAlign.CENTER),
|
||||||
|
);
|
||||||
await SunmiPrinter.lineWrap(4);
|
await SunmiPrinter.lineWrap(4);
|
||||||
|
|
||||||
// Cut paper
|
// Cut paper
|
||||||
await SunmiPrinter.cut();
|
await SunmiPrinter.cutPaper();
|
||||||
|
|
||||||
// Show success message
|
// Show success message
|
||||||
if (context.mounted) {
|
if (context.mounted) {
|
||||||
|
|||||||
Reference in New Issue
Block a user