openFiscalReceipt method
Future<void>
openFiscalReceipt(
{ - required int opperatorCode,
- required String opperatorPassword,
- String? uniqueSaleNumber,
- required int salePoint,
- bool invoice = false,
})
Implementation
Future<void> openFiscalReceipt({
required int opperatorCode,
required String opperatorPassword,
String? uniqueSaleNumber,
required int salePoint,
bool invoice = false,
}) async {
assert(
opperatorCode >= 1 && opperatorCode <= 30,
'opperatorCode must be in range 1..30',
);
assert(
opperatorPassword.length <= 8,
'opperatorPassword must 8 characters or less',
);
assert(
salePoint >= 1 && salePoint <= 99999,
'salePoint must be in range 1..99999',
);
assert(
uniqueSaleNumber == null ||
RegExp(
r'^[A-Z]{2}[0-9]{6}-[0-9A-Za-z]{4}-[0-9]{7}$',
).hasMatch(uniqueSaleNumber),
'Invalid format: must match "LLDDDDDD-CCCC-DDDDDDD"',
);
debugPrint('openFiscalReceipt');
final message = await execute(
Commands.openFiscalReceipt.code,
data: [
opperatorCode,
opperatorPassword,
if (uniqueSaleNumber != null) uniqueSaleNumber,
salePoint,
invoice ? "I" : "",
].toCommand(),
);
final [$e, ...rest] = message.data.response;
final error = int.tryParse($e) ?? 0;
if (error != 0) {
throw FiscalCodeException('Error opening fiscal receipt', error);
}
}