feat: refund

This commit is contained in:
efrilm
2025-08-04 02:04:03 +07:00
parent c1a739f7bd
commit cbfa1689ba
7 changed files with 709 additions and 206 deletions
+34 -4
View File
@@ -1,10 +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/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/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/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';
@@ -187,10 +189,38 @@ class _SalesPageState extends State<SalesPage> {
),
],
if (widget.status == 'completed')
Button.outlined(
onPressed: () {},
label: 'Refund',
icon: Icon(Icons.autorenew),
BlocBuilder<OrderFormBloc, OrderFormState>(
builder: (context, state) {
return state.maybeWhen(
orElse: () => Button.outlined(
onPressed: () {},
label: 'Refund',
icon: Icon(Icons.autorenew),
),
loaded:
(order, selectedItems, 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),
),
);
},
),
],
),