fix printer
This commit is contained in:
@@ -117,6 +117,13 @@ class PrinterFormBloc extends Bloc<PrinterFormEvent, PrinterFormState> {
|
||||
|
||||
final currentOutlet = await _outletRepository.currentOutlet();
|
||||
|
||||
// Ambil paper size dari DB, fallback ke state.paper jika belum tersimpan
|
||||
final savedPrinter = await _printerRepository.getPrinterByCode(e.code);
|
||||
final paper = savedPrinter.fold(
|
||||
(_) => int.tryParse(state.paper) ?? 58,
|
||||
(p) => int.tryParse(p.paper) ?? 58,
|
||||
);
|
||||
|
||||
List<int> printValue = [];
|
||||
|
||||
if (e.code == "receipt") {
|
||||
@@ -124,29 +131,34 @@ class PrinterFormBloc extends Bloc<PrinterFormEvent, PrinterFormState> {
|
||||
order: Order.mockOrder(),
|
||||
outlet: currentOutlet,
|
||||
cashierName: 'Kasir Test',
|
||||
paper: paper,
|
||||
);
|
||||
} else if (e.code == "checker") {
|
||||
printValue = await PrintUi().printChecker(
|
||||
order: Order.mockOrder(),
|
||||
outlet: currentOutlet,
|
||||
cashierName: 'Kasir Test',
|
||||
paper: paper,
|
||||
);
|
||||
} else if (e.code == 'kitchen') {
|
||||
printValue = await PrintUi().printKitchen(
|
||||
order: Order.mockOrder(),
|
||||
outlet: currentOutlet,
|
||||
cashierName: 'Kasir Test',
|
||||
paper: paper,
|
||||
);
|
||||
} else if (e.code == 'bar') {
|
||||
printValue = await PrintUi().printBar(
|
||||
order: Order.mockOrder(),
|
||||
outlet: currentOutlet,
|
||||
cashierName: 'Kasir Test',
|
||||
paper: paper,
|
||||
);
|
||||
} else if (e.code == 'ticket') {
|
||||
printValue = await PrintUi().printTicket(
|
||||
order: Order.mockOrder(),
|
||||
outlet: currentOutlet,
|
||||
paper: paper,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -154,7 +166,7 @@ class PrinterFormBloc extends Bloc<PrinterFormEvent, PrinterFormState> {
|
||||
code: e.code,
|
||||
name: state.name,
|
||||
address: e.macAccdress,
|
||||
paper: state.paper,
|
||||
paper: paper.toString(),
|
||||
type: state.type,
|
||||
);
|
||||
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ abstract class Env {
|
||||
@dev
|
||||
class DevEnv implements Env {
|
||||
@override
|
||||
String get baseUrl => 'http://192.168.1.13:4000';
|
||||
String get baseUrl => 'https://api-pos.apskel.id';
|
||||
|
||||
@override
|
||||
String get dbName => "apskel_pos_dev.db"; // example value
|
||||
|
||||
@@ -15,8 +15,19 @@ class PrinterDto with _$PrinterDto {
|
||||
@JsonKey(name: 'updated_at') required DateTime updatedAt,
|
||||
}) = _PrinterDto;
|
||||
|
||||
factory PrinterDto.fromJson(Map<String, dynamic> json) =>
|
||||
_$PrinterDtoFromJson(json);
|
||||
factory PrinterDto.fromJson(Map<String, dynamic> json) => _$PrinterDtoFromJson(
|
||||
// Normalize paper field: SQLite bisa return int atau String
|
||||
{
|
||||
...json,
|
||||
'paper': json['paper']?.toString() ?? '58',
|
||||
'created_at': json['created_at'] is DateTime
|
||||
? (json['created_at'] as DateTime).toIso8601String()
|
||||
: json['created_at'],
|
||||
'updated_at': json['updated_at'] is DateTime
|
||||
? (json['updated_at'] as DateTime).toIso8601String()
|
||||
: json['updated_at'],
|
||||
},
|
||||
);
|
||||
|
||||
// Optional mapper to domain
|
||||
Printer toDomain() => Printer(
|
||||
|
||||
@@ -674,6 +674,7 @@ class PrinterRepository implements IPrinterRepository {
|
||||
if (printResult.isLeft()) return printResult.map((_) => unit);
|
||||
|
||||
log('Finished printed receipt', name: _logName);
|
||||
log('Printer Size: ', name: printer.paper);
|
||||
|
||||
return right(unit);
|
||||
} catch (e, stackTrace) {
|
||||
|
||||
@@ -21,7 +21,7 @@ class PrintUi {
|
||||
);
|
||||
final builder = ReceiptComponentBuilder(
|
||||
generator: generator,
|
||||
paperSize: 58,
|
||||
paperSize: paper,
|
||||
);
|
||||
|
||||
bytes += generator.reset();
|
||||
@@ -85,7 +85,7 @@ class PrintUi {
|
||||
);
|
||||
final builder = ReceiptComponentBuilder(
|
||||
generator: generator,
|
||||
paperSize: 58,
|
||||
paperSize: paper,
|
||||
);
|
||||
|
||||
bytes += generator.reset();
|
||||
@@ -147,7 +147,7 @@ class PrintUi {
|
||||
);
|
||||
final builder = ReceiptComponentBuilder(
|
||||
generator: generator,
|
||||
paperSize: 58,
|
||||
paperSize: paper,
|
||||
);
|
||||
|
||||
for (final item in order.orderItems) {
|
||||
@@ -198,7 +198,7 @@ class PrintUi {
|
||||
);
|
||||
final builder = ReceiptComponentBuilder(
|
||||
generator: generator,
|
||||
paperSize: 58,
|
||||
paperSize: paper,
|
||||
);
|
||||
|
||||
for (final item in order.orderItems) {
|
||||
@@ -248,7 +248,7 @@ class PrintUi {
|
||||
);
|
||||
final builder = ReceiptComponentBuilder(
|
||||
generator: generator,
|
||||
paperSize: 58,
|
||||
paperSize: paper,
|
||||
);
|
||||
|
||||
bytes += generator.reset();
|
||||
@@ -289,7 +289,7 @@ class PrintUi {
|
||||
);
|
||||
final builder = ReceiptComponentBuilder(
|
||||
generator: generator,
|
||||
paperSize: 58,
|
||||
paperSize: paper,
|
||||
);
|
||||
|
||||
bytes += generator.reset();
|
||||
@@ -355,7 +355,7 @@ class PrintUi {
|
||||
);
|
||||
final builder = ReceiptComponentBuilder(
|
||||
generator: generator,
|
||||
paperSize: 58,
|
||||
paperSize: paper,
|
||||
);
|
||||
|
||||
bytes += generator.reset();
|
||||
@@ -420,7 +420,7 @@ class PrintUi {
|
||||
);
|
||||
final builder = ReceiptComponentBuilder(
|
||||
generator: generator,
|
||||
paperSize: 58,
|
||||
paperSize: paper,
|
||||
);
|
||||
|
||||
bytes += generator.reset();
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import 'package:esc_pos_utils_plus/esc_pos_utils_plus.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
|
||||
/// Reusable component builder untuk thermal receipt printer
|
||||
@@ -265,7 +266,11 @@ class ReceiptComponentBuilder {
|
||||
height: PosTextSize.size1,
|
||||
width: PosTextSize.size1,
|
||||
);
|
||||
if (kDebugMode) {
|
||||
bytes += textCenter("$paperSize MM", );
|
||||
}
|
||||
bytes += feed(paperSize == 80 ? 3 : 1);
|
||||
|
||||
bytes += generator.cut();
|
||||
|
||||
return bytes;
|
||||
|
||||
Reference in New Issue
Block a user