feat: void order

This commit is contained in:
efrilm
2025-08-04 11:39:47 +07:00
parent cbfa1689ba
commit ee38b6218f
9 changed files with 824 additions and 114 deletions
+27 -9
View File
@@ -7,6 +7,7 @@ import 'package:enaklo_pos/presentation/sales/blocs/day_sales/day_sales_bloc.dar
import 'package:enaklo_pos/presentation/sales/blocs/order_loader/order_loader_bloc.dart';
import 'package:enaklo_pos/presentation/sales/dialog/payment_dialog.dart';
import 'package:enaklo_pos/presentation/sales/dialog/refund_dialog.dart';
import 'package:enaklo_pos/presentation/sales/dialog/void_dialog.dart';
import 'package:enaklo_pos/presentation/sales/widgets/sales_detail.dart';
import 'package:enaklo_pos/presentation/sales/widgets/sales_list_order.dart';
import 'package:enaklo_pos/presentation/sales/widgets/sales_order_information.dart';
@@ -171,11 +172,29 @@ class _SalesPageState extends State<SalesPage> {
order: orderDetail,
actionWidget: [
if (widget.status == 'pending') ...[
Button.outlined(
onPressed: () {},
label: 'Void',
icon: Icon(Icons.undo),
),
BlocBuilder<OrderFormBloc, OrderFormState>(
builder: (context, state) {
return state.maybeWhen(
orElse: () => Button.outlined(
onPressed: () {},
label: 'Void',
icon: Icon(Icons.undo),
),
loaded: (order, selectedItems,
totalVoidOrRefund, isAllSelected) =>
Button.outlined(
onPressed: () => showDialog(
context: context,
builder: (context) => VoidDialog(
order: orderDetail!,
selectedItems: selectedItems,
),
),
label: 'Void',
icon: Icon(Icons.undo),
),
);
}),
SpaceWidth(8),
Button.outlined(
onPressed: () => showDialog(
@@ -197,14 +216,13 @@ class _SalesPageState extends State<SalesPage> {
label: 'Refund',
icon: Icon(Icons.autorenew),
),
loaded:
(order, selectedItems, isAllSelected) =>
Button.outlined(
loaded: (order, selectedItems,
totalVoidOrRefund, isAllSelected) =>
Button.outlined(
onPressed: () {
if (selectedItems.isEmpty) {
AppFlushbar.showError(context,
'Silahkan pilih item yang ingin di refund.');
return;
}