feat: print on receipt

This commit is contained in:
efrilm
2025-08-07 11:39:33 +07:00
parent 811ae06e58
commit 8022fa6b32
4 changed files with 336 additions and 6 deletions
@@ -961,6 +961,23 @@ class _ConfirmPaymentPageState extends State<ConfirmPaymentPage> {
) =>
products,
);
int tax = state.maybeWhen(
orElse: () => 0,
loaded: (
products,
discountModel,
discount,
discountAmount,
tax,
serviceCharge,
totalQuantity,
totalPrice,
draftName,
orderType,
deliveryType,
) =>
tax,
);
return Container(
padding: EdgeInsets.all(16),
@@ -1018,6 +1035,11 @@ class _ConfirmPaymentPageState extends State<ConfirmPaymentPage> {
.pushReplacement(SuccessOrderPage(
productQuantity: items,
order: data,
paymentMethod:
selectedPaymentMethod?.name ?? "",
nominalBayar: totalPriceController
.text.toIntegerFromText,
taxPercentage: tax,
));
},
error: (message) => AppFlushbar.showError(
@@ -11,8 +11,18 @@ import 'package:flutter/material.dart';
class SuccessOrderPage extends StatefulWidget {
final List<ProductQuantity> productQuantity;
final Order order;
const SuccessOrderPage(
{super.key, required this.order, required this.productQuantity});
final String paymentMethod;
final int nominalBayar;
final int taxPercentage;
const SuccessOrderPage({
super.key,
required this.order,
required this.productQuantity,
required this.paymentMethod,
required this.nominalBayar,
required this.taxPercentage,
});
@override
State<SuccessOrderPage> createState() => _SuccessOrderPageState();
@@ -991,6 +1001,15 @@ class _SuccessOrderPageState extends State<SuccessOrderPage>
child: InkWell(
borderRadius: BorderRadius.circular(16),
onTap: () async {
onPrintRecipt(
context,
order: widget.order,
paymentMethod: widget.paymentMethod,
nominalBayar: widget.nominalBayar,
kembalian: widget.nominalBayar -
(widget.order.totalAmount ?? 0),
taxPercentage: widget.taxPercentage,
);
onPrint(
context,
productQuantity: widget.productQuantity,