fix: print

This commit is contained in:
efrilm 2025-08-07 14:28:52 +07:00
parent d0e1f9a5b6
commit 9d78c9dcce
5 changed files with 31 additions and 11 deletions

View File

@ -5,6 +5,7 @@ import 'package:enaklo_pos/core/utils/printer_service.dart';
import 'package:enaklo_pos/data/dataoutputs/print_dataoutputs.dart'; import 'package:enaklo_pos/data/dataoutputs/print_dataoutputs.dart';
import 'package:enaklo_pos/data/datasources/auth_local_datasource.dart'; import 'package:enaklo_pos/data/datasources/auth_local_datasource.dart';
import 'package:enaklo_pos/data/datasources/product_local_datasource.dart'; import 'package:enaklo_pos/data/datasources/product_local_datasource.dart';
import 'package:enaklo_pos/data/datasources/settings_local_datasource.dart';
import 'package:enaklo_pos/data/models/response/order_response_model.dart'; import 'package:enaklo_pos/data/models/response/order_response_model.dart';
import 'package:enaklo_pos/presentation/home/models/product_quantity.dart'; import 'package:enaklo_pos/presentation/home/models/product_quantity.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -21,6 +22,8 @@ Future<void> onPrint(
final barPrinter = final barPrinter =
await ProductLocalDatasource.instance.getPrinterByCode('bar'); await ProductLocalDatasource.instance.getPrinterByCode('bar');
final authData = await AuthLocalDataSource().getAuthData();
// Checker printer // Checker printer
if (checkerPrinter != null) { if (checkerPrinter != null) {
try { try {
@ -28,7 +31,7 @@ Future<void> onPrint(
productQuantity, productQuantity,
order.tableNumber ?? "", order.tableNumber ?? "",
order.orderNumber ?? "", order.orderNumber ?? "",
'kasir', authData.user?.name ?? "",
checkerPrinter.paper.toIntegerFromText, checkerPrinter.paper.toIntegerFromText,
order.orderType ?? "", order.orderType ?? "",
); );
@ -51,7 +54,7 @@ Future<void> onPrint(
productQuantity, productQuantity,
order.tableNumber!, order.tableNumber!,
order.orderNumber ?? "", order.orderNumber ?? "",
'kasir', authData.user?.name ?? "",
kitchenPrinter.paper.toIntegerFromText, kitchenPrinter.paper.toIntegerFromText,
order.orderType ?? "", order.orderType ?? "",
); );
@ -73,7 +76,7 @@ Future<void> onPrint(
productQuantity, productQuantity,
order.tableNumber ?? "", order.tableNumber ?? "",
order.orderNumber ?? "", order.orderNumber ?? "",
'kasir', authData.user?.name ?? "",
barPrinter.paper.toIntegerFromText, barPrinter.paper.toIntegerFromText,
order.orderType ?? "", order.orderType ?? "",
); );
@ -94,11 +97,11 @@ Future<void> onPrintRecipt(
required String paymentMethod, required String paymentMethod,
required int nominalBayar, required int nominalBayar,
required int kembalian, required int kembalian,
required int taxPercentage,
}) async { }) async {
final receiptPrinter = final receiptPrinter =
await ProductLocalDatasource.instance.getPrinterByCode('receipt'); await ProductLocalDatasource.instance.getPrinterByCode('receipt');
final authData = await AuthLocalDataSource().getAuthData(); final authData = await AuthLocalDataSource().getAuthData();
final settings = await SettingsLocalDatasource().getTax();
if (receiptPrinter != null) { if (receiptPrinter != null) {
try { try {
@ -108,7 +111,7 @@ Future<void> onPrintRecipt(
paymentMethod, paymentMethod,
nominalBayar, nominalBayar,
kembalian, kembalian,
taxPercentage, settings.value,
receiptPrinter.paper.toIntegerFromText, receiptPrinter.paper.toIntegerFromText,
); );
await PrinterService() await PrinterService()

View File

@ -375,6 +375,8 @@ class _PaymentPageState extends State<PaymentPage> {
.toList() ?? .toList() ??
[], [],
payment: data, payment: data,
paymentMethod: selectedPaymentMethod?.name ?? '',
nominalBayar: totalPriceController.text.toIntegerFromText,
)); ));
}, },
error: (message) { error: (message) {

View File

@ -343,6 +343,8 @@ class _PaymentDialogState extends State<PaymentDialog> {
.toList() ?? .toList() ??
[], [],
payment: data, payment: data,
paymentMethod: selectedPaymentMethod?.name ?? "",
nominalBayar: totalPriceController.text.toIntegerFromText,
)); ));
}, },
error: (message) { error: (message) {

View File

@ -1005,10 +1005,11 @@ class _SuccessOrderPageState extends State<SuccessOrderPage>
context, context,
order: widget.order, order: widget.order,
paymentMethod: widget.paymentMethod, paymentMethod: widget.paymentMethod,
nominalBayar: widget.nominalBayar, nominalBayar: widget.paymentMethod == "Cash"
? widget.nominalBayar
: widget.order.totalAmount ?? 0,
kembalian: widget.nominalBayar - kembalian: widget.nominalBayar -
(widget.order.totalAmount ?? 0), (widget.order.totalAmount ?? 0),
taxPercentage: widget.taxPercentage,
); );
onPrint( onPrint(
context, context,

View File

@ -14,8 +14,15 @@ import 'package:flutter_bloc/flutter_bloc.dart';
class SuccessPaymentPage extends StatefulWidget { class SuccessPaymentPage extends StatefulWidget {
final List<ProductQuantity> productQuantity; final List<ProductQuantity> productQuantity;
final PaymentData payment; final PaymentData payment;
const SuccessPaymentPage( final String paymentMethod;
{super.key, required this.payment, required this.productQuantity}); final int nominalBayar;
const SuccessPaymentPage({
super.key,
required this.payment,
required this.productQuantity,
required this.paymentMethod,
required this.nominalBayar,
});
@override @override
State<SuccessPaymentPage> createState() => _SuccessPaymentPageState(); State<SuccessPaymentPage> createState() => _SuccessPaymentPageState();
@ -781,10 +788,15 @@ class _SuccessPaymentPageState extends State<SuccessPaymentPage> {
child: InkWell( child: InkWell(
borderRadius: BorderRadius.circular(16), borderRadius: BorderRadius.circular(16),
onTap: () async { onTap: () async {
onPrint( onPrintRecipt(
context, context,
productQuantity: widget.productQuantity,
order: order, order: order,
paymentMethod: widget.paymentMethod,
nominalBayar: widget.paymentMethod == "Cash"
? widget.nominalBayar
: order.totalAmount ?? 0,
kembalian:
widget.nominalBayar - (order.totalAmount ?? 0),
); );
}, },
child: const Row( child: const Row(