feat: ticket printer

This commit is contained in:
efrilm
2025-08-07 15:30:05 +07:00
parent ffe076e120
commit 5a260ca3a1
14 changed files with 1245 additions and 58 deletions
@@ -161,62 +161,71 @@ class _ReceiptPrinterPageState extends State<ReceiptPrinterPage> {
SpaceHeight(16),
// button test print
Button.outlined(
onPressed: () async {
if (addressController!.text.isNotEmpty && printNameController!.text.isNotEmpty) {
try {
// Get actual tax and service charge settings
final settingsLocalDatasource = SettingsLocalDatasource();
final taxModel = await settingsLocalDatasource.getTax();
final serviceChargeValue = await settingsLocalDatasource.getServiceCharge();
// Create a test print model
final testPrinter = PrintModel(
code: 'receipt',
name: printNameController!.text,
address: addressController!.text,
paper: paper,
type: selectedPrinter,
);
// Generate test print data
final testPrintData = await PrintDataoutputs.instance.printOrderV3(
[], // Empty product list for test
0,
0,
'Test',
0,
0,
0,
0,
0,
1,
'Test Cashier',
'Test Customer',
int.parse(paper),
taxPercentage: taxModel.value,
serviceChargePercentage: serviceChargeValue,
);
// Print test
await PrinterService().printWithPrinter(
testPrinter,
testPrintData,
context,
);
} catch (e) {
log("Error test printing: $e");
onPressed: () async {
if (addressController!.text.isNotEmpty &&
printNameController!.text.isNotEmpty) {
try {
// Get actual tax and service charge settings
final settingsLocalDatasource =
SettingsLocalDatasource();
final taxModel =
await settingsLocalDatasource.getTax();
final serviceChargeValue =
await settingsLocalDatasource
.getServiceCharge();
// Create a test print model
final testPrinter = PrintModel(
code: 'receipt',
name: printNameController!.text,
address: addressController!.text,
paper: paper,
type: selectedPrinter,
);
// Generate test print data
final testPrintData = await PrintDataoutputs
.instance
.printOrderV3(
[], // Empty product list for test
0,
0,
'Test',
0,
0,
0,
0,
0,
1,
'Test Cashier',
'Test Customer',
int.parse(paper),
taxPercentage: taxModel.value,
serviceChargePercentage: serviceChargeValue,
);
// Print test
await PrinterService().printWithPrinter(
testPrinter,
testPrintData,
context,
);
} catch (e) {
log("Error test printing: $e");
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text('Error test printing: $e')),
);
}
} else {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('Error test printing: $e')),
SnackBar(
content: Text(
'Please fill in printer details first')),
);
}
} else {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('Please fill in printer details first')),
);
}
},
label: 'Test Print'
),
},
label: 'Test Print'),
SpaceHeight(8),
// button save
data == null