feat: payment split
This commit is contained in:
@@ -17,7 +17,14 @@ import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
|
||||
class PaymentPage extends StatefulWidget {
|
||||
final Order order;
|
||||
const PaymentPage({Key? key, required this.order}) : super(key: key);
|
||||
final bool isSplit;
|
||||
final String? splitType;
|
||||
const PaymentPage({
|
||||
super.key,
|
||||
required this.order,
|
||||
this.isSplit = false,
|
||||
this.splitType,
|
||||
});
|
||||
|
||||
@override
|
||||
State<PaymentPage> createState() => _PaymentPageState();
|
||||
@@ -434,23 +441,42 @@ class _PaymentPageState extends State<PaymentPage> {
|
||||
final itemPending = widget.order.orderItems
|
||||
?.where((item) => item.status == "pending")
|
||||
.toList();
|
||||
if (widget.isSplit == false) {
|
||||
final request = PaymentRequestModel(
|
||||
amount: widget.order.totalAmount ?? 0,
|
||||
orderId: widget.order.id,
|
||||
paymentMethodId: selectedPaymentMethod?.id,
|
||||
splitDescription: '',
|
||||
splitNumber: 1,
|
||||
splitTotal: 1,
|
||||
transactionId: '',
|
||||
paymentOrderItems: itemPending
|
||||
?.map((item) => PaymentOrderItemModel(
|
||||
orderItemId: item.id,
|
||||
amount: item.totalPrice,
|
||||
))
|
||||
.toList(),
|
||||
);
|
||||
|
||||
final request = PaymentRequestModel(
|
||||
amount: widget.order.totalAmount ?? 0,
|
||||
orderId: widget.order.id,
|
||||
paymentMethodId: selectedPaymentMethod?.id,
|
||||
splitDescription: '',
|
||||
splitNumber: 1,
|
||||
splitTotal: 1,
|
||||
transactionId: '',
|
||||
paymentOrderItems: itemPending
|
||||
?.map((item) => PaymentOrderItemModel(
|
||||
orderItemId: item.id,
|
||||
amount: item.totalPrice,
|
||||
))
|
||||
.toList(),
|
||||
);
|
||||
|
||||
context.read<PaymentFormBloc>().add(PaymentFormEvent.create(request));
|
||||
context.read<PaymentFormBloc>().add(PaymentFormEvent.create(request));
|
||||
} else {
|
||||
final request = PaymentSplitBillRequest(
|
||||
amount: widget.order.totalAmount ?? 0,
|
||||
customerId: '',
|
||||
items: itemPending
|
||||
?.map((item) => SplitItem(
|
||||
orderItemId: item.id ?? "",
|
||||
quantity: item.quantity ?? 0,
|
||||
))
|
||||
.toList() ??
|
||||
[],
|
||||
orderId: widget.order.id ?? "",
|
||||
paymentMethodId: selectedPaymentMethod?.id ?? "",
|
||||
type: widget.splitType ?? "",
|
||||
);
|
||||
context.read<PaymentFormBloc>().add(
|
||||
PaymentFormEvent.createSplitBill(request),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user