feat: refund page

This commit is contained in:
efrilm
2025-08-04 23:13:52 +07:00
parent 2912a438e3
commit 1b1d01c1e8
14 changed files with 2349 additions and 32 deletions
+8 -32
View File
@@ -1,13 +1,12 @@
import 'package:enaklo_pos/core/components/buttons.dart';
import 'package:enaklo_pos/core/components/flushbar.dart';
import 'package:enaklo_pos/core/components/spaces.dart';
import 'package:enaklo_pos/core/extensions/build_context_ext.dart';
import 'package:enaklo_pos/data/models/response/order_response_model.dart';
import 'package:enaklo_pos/presentation/home/bloc/order_form/order_form_bloc.dart';
import 'package:enaklo_pos/presentation/refund/pages/refund_page.dart';
import 'package:enaklo_pos/presentation/sales/blocs/day_sales/day_sales_bloc.dart';
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/void/pages/void_page.dart';
import 'package:enaklo_pos/presentation/sales/widgets/sales_detail.dart';
import 'package:enaklo_pos/presentation/sales/widgets/sales_list_order.dart';
@@ -214,37 +213,14 @@ class _SalesPageState extends State<SalesPage> {
),
],
if (widget.status == 'completed')
BlocBuilder<OrderFormBloc, OrderFormState>(
builder: (context, state) {
return state.maybeWhen(
orElse: () => Button.outlined(
onPressed: () {},
label: 'Refund',
icon: Icon(Icons.autorenew),
),
loaded: (order, selectedItems,
totalVoidOrRefund, isAllSelected) =>
Button.outlined(
onPressed: () {
if (selectedItems.isEmpty) {
AppFlushbar.showError(context,
'Silahkan pilih item yang ingin di refund.');
return;
}
showDialog(
context: context,
builder: (context) => RefundDialog(
order: orderDetail!,
selectedItems: selectedItems,
),
);
},
label: 'Refund',
icon: Icon(Icons.autorenew),
),
);
Button.outlined(
onPressed: () {
context.push(RefundPage(
selectedOrder: orderDetail!,
));
},
label: 'Refund',
icon: Icon(Icons.autorenew),
),
],
),