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
@@ -23,7 +23,8 @@ class SalesListOrder extends StatelessWidget {
builder: (context, state) {
return state.maybeWhen(
orElse: () => const SizedBox.shrink(),
loaded: (orderX, selectedItems, isAllSelected) => Column(
loaded: (orderX, selectedItems, totalVoidOrRefund, isAllSelected) =>
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
@@ -83,54 +84,83 @@ class SalesListOrder extends StatelessWidget {
return Padding(
padding: const EdgeInsets.symmetric(vertical: 12, horizontal: 16)
.copyWith(top: 0),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
child: Column(
children: [
SizedBox(
width: context.deviceWidth * 0.2,
child: Row(
children: [
Checkbox(
value: isSelected,
activeColor: AppColors.primary,
onChanged: (_) {
context
.read<OrderFormBloc>()
.add(OrderFormEvent.toggleItem(product));
},
),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
Align(
alignment: Alignment.centerRight,
child: Text(
product.status == "pending"
? "Pending"
: product.status == "cancelled"
? "Batal"
: product.status == 'refund'
? "Refund"
: "Selesai",
style: TextStyle(
fontSize: 10,
fontWeight: FontWeight.w600,
color: product.status == "pending"
? Colors.blue
: product.status == "cancelled"
? Colors.red
: product.status == 'refund'
? Colors.red
: Colors.green,
),
),
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
SizedBox(
width: context.deviceWidth * 0.2,
child: Row(
children: [
Text(
product.productName ?? '',
style: const TextStyle(
fontSize: 14,
fontWeight: FontWeight.w600,
),
Checkbox(
value: isSelected,
activeColor: AppColors.primary,
onChanged: (_) {
context
.read<OrderFormBloc>()
.add(OrderFormEvent.toggleItem(product));
},
),
Text(
(product.unitPrice ?? 0).toString().currencyFormatRpV2,
style: const TextStyle(
fontSize: 14,
),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
product.productName ?? '',
style: const TextStyle(
fontSize: 14,
fontWeight: FontWeight.w600,
),
),
Text(
(product.unitPrice ?? 0)
.toString()
.currencyFormatRpV2,
style: const TextStyle(
fontSize: 14,
),
),
],
),
],
),
],
),
),
Text(
'X${product.quantity}',
style: const TextStyle(
fontSize: 14,
),
),
Text(
(product.totalPrice ?? 0).toString().currencyFormatRpV2,
style: const TextStyle(
fontSize: 14,
),
),
Text(
'X${product.quantity}',
style: const TextStyle(
fontSize: 14,
),
),
Text(
(product.totalPrice ?? 0).toString().currencyFormatRpV2,
style: const TextStyle(
fontSize: 14,
),
),
],
),
],
),