Compare commits
No commits in common. "7b64ca2bb3676903f851ef395fd5a15a454e45be" and "e825e5daed819ae9fa6d8dbefb09b663f7e212e2" have entirely different histories.
7b64ca2bb3
...
e825e5daed
@ -1,41 +0,0 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class DashedDivider extends StatelessWidget {
|
||||
final double height;
|
||||
final double dashWidth;
|
||||
final double dashSpacing;
|
||||
final Color color;
|
||||
|
||||
const DashedDivider({
|
||||
super.key,
|
||||
this.height = 1,
|
||||
this.dashWidth = 5,
|
||||
this.dashSpacing = 3,
|
||||
this.color = Colors.grey,
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return SizedBox(
|
||||
height: height,
|
||||
child: LayoutBuilder(
|
||||
builder: (context, constraints) {
|
||||
final boxWidth = constraints.constrainWidth();
|
||||
final dashCount = (boxWidth / (dashWidth + dashSpacing)).floor();
|
||||
return Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: List.generate(dashCount, (_) {
|
||||
return SizedBox(
|
||||
width: dashWidth,
|
||||
height: height,
|
||||
child: DecoratedBox(
|
||||
decoration: BoxDecoration(color: color),
|
||||
),
|
||||
);
|
||||
}),
|
||||
);
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -7,6 +7,7 @@ import 'package:enaklo_pos/data/models/response/table_model.dart';
|
||||
import 'package:enaklo_pos/presentation/home/models/order_model.dart';
|
||||
import 'package:enaklo_pos/presentation/table/models/draft_order_item.dart';
|
||||
import 'package:enaklo_pos/presentation/table/models/draft_order_model.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:sqflite/sqflite.dart';
|
||||
|
||||
import '../../presentation/home/models/product_quantity.dart';
|
||||
@ -168,8 +169,7 @@ class ProductLocalDatasource {
|
||||
if (oldVersion < 2) {
|
||||
// Add order_type column to orders table if it doesn't exist
|
||||
try {
|
||||
await db.execute(
|
||||
'ALTER TABLE $tableOrder ADD COLUMN order_type TEXT DEFAULT "DINE IN"');
|
||||
await db.execute('ALTER TABLE $tableOrder ADD COLUMN order_type TEXT DEFAULT "DINE IN"');
|
||||
log("Added order_type column to orders table");
|
||||
} catch (e) {
|
||||
log("order_type column might already exist: $e");
|
||||
@ -238,31 +238,6 @@ class ProductLocalDatasource {
|
||||
});
|
||||
}
|
||||
|
||||
Future<List<OrderModel>> getAllOrderByRange(
|
||||
DateTime start, DateTime end) async {
|
||||
final db = await instance.database;
|
||||
|
||||
// Format ke ISO 8601 untuk range, hasil: yyyy-MM-ddTHH:mm:ss
|
||||
final startIso = start.toIso8601String();
|
||||
final endIso = end.toIso8601String();
|
||||
|
||||
final startDateYYYYMMDD = startIso.substring(0, 10);
|
||||
final endDateYYYYMMDD = endIso.substring(0, 10);
|
||||
|
||||
final List<Map<String, dynamic>> maps = await db.query(
|
||||
tableOrder,
|
||||
where: 'substr(transaction_time, 1, 10) BETWEEN ? AND ?',
|
||||
whereArgs: [startDateYYYYMMDD, endDateYYYYMMDD],
|
||||
orderBy: 'transaction_time DESC',
|
||||
);
|
||||
log("Get All Order By Range: $startDateYYYYMMDD $endDateYYYYMMDD");
|
||||
|
||||
return List.generate(maps.length, (i) {
|
||||
log("Save save OrderModel: ${OrderModel.fromMap(maps[i])}");
|
||||
return OrderModel.fromMap(maps[i]);
|
||||
});
|
||||
}
|
||||
|
||||
//get order item by order id
|
||||
Future<List<ProductQuantity>> getOrderItemByOrderId(int orderId) async {
|
||||
final db = await instance.database;
|
||||
@ -603,8 +578,7 @@ class ProductLocalDatasource {
|
||||
where: 'id_draft_order = ?', whereArgs: [draftOrder.id]);
|
||||
|
||||
for (var orderItem in draftOrder.orders) {
|
||||
await db.insert(
|
||||
'draft_order_items', orderItem.toMapForLocal(draftOrder.id!));
|
||||
await db.insert('draft_order_items', orderItem.toMapForLocal(draftOrder.id!));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -3,6 +3,7 @@ import 'dart:developer';
|
||||
import 'package:bloc/bloc.dart';
|
||||
import 'package:enaklo_pos/data/datasources/product_local_datasource.dart';
|
||||
import 'package:enaklo_pos/data/models/response/discount_response_model.dart';
|
||||
import 'package:enaklo_pos/presentation/home/models/order_item.dart';
|
||||
import 'package:enaklo_pos/presentation/table/models/draft_order_item.dart';
|
||||
import 'package:enaklo_pos/presentation/table/models/draft_order_model.dart';
|
||||
import 'package:freezed_annotation/freezed_annotation.dart';
|
||||
@ -20,8 +21,7 @@ part 'checkout_bloc.freezed.dart';
|
||||
class CheckoutBloc extends Bloc<CheckoutEvent, CheckoutState> {
|
||||
final SettingsLocalDatasource settingsLocalDatasource;
|
||||
|
||||
CheckoutBloc({required this.settingsLocalDatasource})
|
||||
: super(const CheckoutState.initial()) {
|
||||
CheckoutBloc({required this.settingsLocalDatasource}) : super(const CheckoutState.initial()) {
|
||||
on<_AddItem>((event, emit) {
|
||||
var currentState = state as _Loaded;
|
||||
List<ProductQuantity> items = [...currentState.items];
|
||||
@ -74,28 +74,6 @@ class CheckoutBloc extends Bloc<CheckoutEvent, CheckoutState> {
|
||||
currentState.orderType));
|
||||
});
|
||||
|
||||
on<_DeleteItem>((event, emit) {
|
||||
var currentState = state as _Loaded;
|
||||
List<ProductQuantity> items = [...currentState.items];
|
||||
var index =
|
||||
items.indexWhere((element) => element.product.id == event.product.id);
|
||||
emit(const _Loading());
|
||||
|
||||
items.removeAt(index);
|
||||
|
||||
emit(_Loaded(
|
||||
items,
|
||||
currentState.discountModel,
|
||||
currentState.discount,
|
||||
currentState.discountAmount,
|
||||
currentState.tax,
|
||||
currentState.serviceCharge,
|
||||
currentState.totalQuantity,
|
||||
currentState.totalPrice,
|
||||
currentState.draftName,
|
||||
currentState.orderType));
|
||||
});
|
||||
|
||||
on<_Started>((event, emit) async {
|
||||
emit(const _Loading());
|
||||
try {
|
||||
@ -103,8 +81,7 @@ class CheckoutBloc extends Bloc<CheckoutEvent, CheckoutState> {
|
||||
final tax = await settingsLocalDatasource.getTax();
|
||||
final serviceCharge = await settingsLocalDatasource.getServiceCharge();
|
||||
|
||||
emit(_Loaded([], null, 0, 0, tax.value, serviceCharge, 0, 0, '',
|
||||
OrderType.dineIn));
|
||||
emit(_Loaded([], null, 0, 0, tax.value, serviceCharge, 0, 0, '', OrderType.dineIn));
|
||||
} catch (e) {
|
||||
// If loading fails, use default values
|
||||
log('Failed to load settings: $e');
|
||||
@ -222,8 +199,7 @@ class CheckoutBloc extends Bloc<CheckoutEvent, CheckoutState> {
|
||||
on<_UpdateItemNotes>((event, emit) {
|
||||
var currentState = state as _Loaded;
|
||||
List<ProductQuantity> items = [...currentState.items];
|
||||
var index =
|
||||
items.indexWhere((element) => element.product.id == event.product.id);
|
||||
var index = items.indexWhere((element) => element.product.id == event.product.id);
|
||||
if (index != -1) {
|
||||
items[index] = items[index].copyWith(notes: event.notes);
|
||||
}
|
||||
|
||||
@ -21,7 +21,6 @@ mixin _$CheckoutEvent {
|
||||
required TResult Function() started,
|
||||
required TResult Function(Product product) addItem,
|
||||
required TResult Function(Product product) removeItem,
|
||||
required TResult Function(Product product) deleteItem,
|
||||
required TResult Function(Discount discount) addDiscount,
|
||||
required TResult Function() removeDiscount,
|
||||
required TResult Function(int tax) addTax,
|
||||
@ -41,7 +40,6 @@ mixin _$CheckoutEvent {
|
||||
TResult? Function()? started,
|
||||
TResult? Function(Product product)? addItem,
|
||||
TResult? Function(Product product)? removeItem,
|
||||
TResult? Function(Product product)? deleteItem,
|
||||
TResult? Function(Discount discount)? addDiscount,
|
||||
TResult? Function()? removeDiscount,
|
||||
TResult? Function(int tax)? addTax,
|
||||
@ -60,7 +58,6 @@ mixin _$CheckoutEvent {
|
||||
TResult Function()? started,
|
||||
TResult Function(Product product)? addItem,
|
||||
TResult Function(Product product)? removeItem,
|
||||
TResult Function(Product product)? deleteItem,
|
||||
TResult Function(Discount discount)? addDiscount,
|
||||
TResult Function()? removeDiscount,
|
||||
TResult Function(int tax)? addTax,
|
||||
@ -80,7 +77,6 @@ mixin _$CheckoutEvent {
|
||||
required TResult Function(_Started value) started,
|
||||
required TResult Function(_AddItem value) addItem,
|
||||
required TResult Function(_RemoveItem value) removeItem,
|
||||
required TResult Function(_DeleteItem value) deleteItem,
|
||||
required TResult Function(_AddDiscount value) addDiscount,
|
||||
required TResult Function(_RemoveDiscount value) removeDiscount,
|
||||
required TResult Function(_AddTax value) addTax,
|
||||
@ -98,7 +94,6 @@ mixin _$CheckoutEvent {
|
||||
TResult? Function(_Started value)? started,
|
||||
TResult? Function(_AddItem value)? addItem,
|
||||
TResult? Function(_RemoveItem value)? removeItem,
|
||||
TResult? Function(_DeleteItem value)? deleteItem,
|
||||
TResult? Function(_AddDiscount value)? addDiscount,
|
||||
TResult? Function(_RemoveDiscount value)? removeDiscount,
|
||||
TResult? Function(_AddTax value)? addTax,
|
||||
@ -116,7 +111,6 @@ mixin _$CheckoutEvent {
|
||||
TResult Function(_Started value)? started,
|
||||
TResult Function(_AddItem value)? addItem,
|
||||
TResult Function(_RemoveItem value)? removeItem,
|
||||
TResult Function(_DeleteItem value)? deleteItem,
|
||||
TResult Function(_AddDiscount value)? addDiscount,
|
||||
TResult Function(_RemoveDiscount value)? removeDiscount,
|
||||
TResult Function(_AddTax value)? addTax,
|
||||
@ -197,7 +191,6 @@ class _$StartedImpl implements _Started {
|
||||
required TResult Function() started,
|
||||
required TResult Function(Product product) addItem,
|
||||
required TResult Function(Product product) removeItem,
|
||||
required TResult Function(Product product) deleteItem,
|
||||
required TResult Function(Discount discount) addDiscount,
|
||||
required TResult Function() removeDiscount,
|
||||
required TResult Function(int tax) addTax,
|
||||
@ -220,7 +213,6 @@ class _$StartedImpl implements _Started {
|
||||
TResult? Function()? started,
|
||||
TResult? Function(Product product)? addItem,
|
||||
TResult? Function(Product product)? removeItem,
|
||||
TResult? Function(Product product)? deleteItem,
|
||||
TResult? Function(Discount discount)? addDiscount,
|
||||
TResult? Function()? removeDiscount,
|
||||
TResult? Function(int tax)? addTax,
|
||||
@ -242,7 +234,6 @@ class _$StartedImpl implements _Started {
|
||||
TResult Function()? started,
|
||||
TResult Function(Product product)? addItem,
|
||||
TResult Function(Product product)? removeItem,
|
||||
TResult Function(Product product)? deleteItem,
|
||||
TResult Function(Discount discount)? addDiscount,
|
||||
TResult Function()? removeDiscount,
|
||||
TResult Function(int tax)? addTax,
|
||||
@ -268,7 +259,6 @@ class _$StartedImpl implements _Started {
|
||||
required TResult Function(_Started value) started,
|
||||
required TResult Function(_AddItem value) addItem,
|
||||
required TResult Function(_RemoveItem value) removeItem,
|
||||
required TResult Function(_DeleteItem value) deleteItem,
|
||||
required TResult Function(_AddDiscount value) addDiscount,
|
||||
required TResult Function(_RemoveDiscount value) removeDiscount,
|
||||
required TResult Function(_AddTax value) addTax,
|
||||
@ -289,7 +279,6 @@ class _$StartedImpl implements _Started {
|
||||
TResult? Function(_Started value)? started,
|
||||
TResult? Function(_AddItem value)? addItem,
|
||||
TResult? Function(_RemoveItem value)? removeItem,
|
||||
TResult? Function(_DeleteItem value)? deleteItem,
|
||||
TResult? Function(_AddDiscount value)? addDiscount,
|
||||
TResult? Function(_RemoveDiscount value)? removeDiscount,
|
||||
TResult? Function(_AddTax value)? addTax,
|
||||
@ -310,7 +299,6 @@ class _$StartedImpl implements _Started {
|
||||
TResult Function(_Started value)? started,
|
||||
TResult Function(_AddItem value)? addItem,
|
||||
TResult Function(_RemoveItem value)? removeItem,
|
||||
TResult Function(_DeleteItem value)? deleteItem,
|
||||
TResult Function(_AddDiscount value)? addDiscount,
|
||||
TResult Function(_RemoveDiscount value)? removeDiscount,
|
||||
TResult Function(_AddTax value)? addTax,
|
||||
@ -405,7 +393,6 @@ class _$AddItemImpl implements _AddItem {
|
||||
required TResult Function() started,
|
||||
required TResult Function(Product product) addItem,
|
||||
required TResult Function(Product product) removeItem,
|
||||
required TResult Function(Product product) deleteItem,
|
||||
required TResult Function(Discount discount) addDiscount,
|
||||
required TResult Function() removeDiscount,
|
||||
required TResult Function(int tax) addTax,
|
||||
@ -428,7 +415,6 @@ class _$AddItemImpl implements _AddItem {
|
||||
TResult? Function()? started,
|
||||
TResult? Function(Product product)? addItem,
|
||||
TResult? Function(Product product)? removeItem,
|
||||
TResult? Function(Product product)? deleteItem,
|
||||
TResult? Function(Discount discount)? addDiscount,
|
||||
TResult? Function()? removeDiscount,
|
||||
TResult? Function(int tax)? addTax,
|
||||
@ -450,7 +436,6 @@ class _$AddItemImpl implements _AddItem {
|
||||
TResult Function()? started,
|
||||
TResult Function(Product product)? addItem,
|
||||
TResult Function(Product product)? removeItem,
|
||||
TResult Function(Product product)? deleteItem,
|
||||
TResult Function(Discount discount)? addDiscount,
|
||||
TResult Function()? removeDiscount,
|
||||
TResult Function(int tax)? addTax,
|
||||
@ -476,7 +461,6 @@ class _$AddItemImpl implements _AddItem {
|
||||
required TResult Function(_Started value) started,
|
||||
required TResult Function(_AddItem value) addItem,
|
||||
required TResult Function(_RemoveItem value) removeItem,
|
||||
required TResult Function(_DeleteItem value) deleteItem,
|
||||
required TResult Function(_AddDiscount value) addDiscount,
|
||||
required TResult Function(_RemoveDiscount value) removeDiscount,
|
||||
required TResult Function(_AddTax value) addTax,
|
||||
@ -497,7 +481,6 @@ class _$AddItemImpl implements _AddItem {
|
||||
TResult? Function(_Started value)? started,
|
||||
TResult? Function(_AddItem value)? addItem,
|
||||
TResult? Function(_RemoveItem value)? removeItem,
|
||||
TResult? Function(_DeleteItem value)? deleteItem,
|
||||
TResult? Function(_AddDiscount value)? addDiscount,
|
||||
TResult? Function(_RemoveDiscount value)? removeDiscount,
|
||||
TResult? Function(_AddTax value)? addTax,
|
||||
@ -518,7 +501,6 @@ class _$AddItemImpl implements _AddItem {
|
||||
TResult Function(_Started value)? started,
|
||||
TResult Function(_AddItem value)? addItem,
|
||||
TResult Function(_RemoveItem value)? removeItem,
|
||||
TResult Function(_DeleteItem value)? deleteItem,
|
||||
TResult Function(_AddDiscount value)? addDiscount,
|
||||
TResult Function(_RemoveDiscount value)? removeDiscount,
|
||||
TResult Function(_AddTax value)? addTax,
|
||||
@ -621,7 +603,6 @@ class _$RemoveItemImpl implements _RemoveItem {
|
||||
required TResult Function() started,
|
||||
required TResult Function(Product product) addItem,
|
||||
required TResult Function(Product product) removeItem,
|
||||
required TResult Function(Product product) deleteItem,
|
||||
required TResult Function(Discount discount) addDiscount,
|
||||
required TResult Function() removeDiscount,
|
||||
required TResult Function(int tax) addTax,
|
||||
@ -644,7 +625,6 @@ class _$RemoveItemImpl implements _RemoveItem {
|
||||
TResult? Function()? started,
|
||||
TResult? Function(Product product)? addItem,
|
||||
TResult? Function(Product product)? removeItem,
|
||||
TResult? Function(Product product)? deleteItem,
|
||||
TResult? Function(Discount discount)? addDiscount,
|
||||
TResult? Function()? removeDiscount,
|
||||
TResult? Function(int tax)? addTax,
|
||||
@ -666,7 +646,6 @@ class _$RemoveItemImpl implements _RemoveItem {
|
||||
TResult Function()? started,
|
||||
TResult Function(Product product)? addItem,
|
||||
TResult Function(Product product)? removeItem,
|
||||
TResult Function(Product product)? deleteItem,
|
||||
TResult Function(Discount discount)? addDiscount,
|
||||
TResult Function()? removeDiscount,
|
||||
TResult Function(int tax)? addTax,
|
||||
@ -692,7 +671,6 @@ class _$RemoveItemImpl implements _RemoveItem {
|
||||
required TResult Function(_Started value) started,
|
||||
required TResult Function(_AddItem value) addItem,
|
||||
required TResult Function(_RemoveItem value) removeItem,
|
||||
required TResult Function(_DeleteItem value) deleteItem,
|
||||
required TResult Function(_AddDiscount value) addDiscount,
|
||||
required TResult Function(_RemoveDiscount value) removeDiscount,
|
||||
required TResult Function(_AddTax value) addTax,
|
||||
@ -713,7 +691,6 @@ class _$RemoveItemImpl implements _RemoveItem {
|
||||
TResult? Function(_Started value)? started,
|
||||
TResult? Function(_AddItem value)? addItem,
|
||||
TResult? Function(_RemoveItem value)? removeItem,
|
||||
TResult? Function(_DeleteItem value)? deleteItem,
|
||||
TResult? Function(_AddDiscount value)? addDiscount,
|
||||
TResult? Function(_RemoveDiscount value)? removeDiscount,
|
||||
TResult? Function(_AddTax value)? addTax,
|
||||
@ -734,7 +711,6 @@ class _$RemoveItemImpl implements _RemoveItem {
|
||||
TResult Function(_Started value)? started,
|
||||
TResult Function(_AddItem value)? addItem,
|
||||
TResult Function(_RemoveItem value)? removeItem,
|
||||
TResult Function(_DeleteItem value)? deleteItem,
|
||||
TResult Function(_AddDiscount value)? addDiscount,
|
||||
TResult Function(_RemoveDiscount value)? removeDiscount,
|
||||
TResult Function(_AddTax value)? addTax,
|
||||
@ -766,222 +742,6 @@ abstract class _RemoveItem implements CheckoutEvent {
|
||||
throw _privateConstructorUsedError;
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract class _$$DeleteItemImplCopyWith<$Res> {
|
||||
factory _$$DeleteItemImplCopyWith(
|
||||
_$DeleteItemImpl value, $Res Function(_$DeleteItemImpl) then) =
|
||||
__$$DeleteItemImplCopyWithImpl<$Res>;
|
||||
@useResult
|
||||
$Res call({Product product});
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
class __$$DeleteItemImplCopyWithImpl<$Res>
|
||||
extends _$CheckoutEventCopyWithImpl<$Res, _$DeleteItemImpl>
|
||||
implements _$$DeleteItemImplCopyWith<$Res> {
|
||||
__$$DeleteItemImplCopyWithImpl(
|
||||
_$DeleteItemImpl _value, $Res Function(_$DeleteItemImpl) _then)
|
||||
: super(_value, _then);
|
||||
|
||||
/// Create a copy of CheckoutEvent
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@pragma('vm:prefer-inline')
|
||||
@override
|
||||
$Res call({
|
||||
Object? product = null,
|
||||
}) {
|
||||
return _then(_$DeleteItemImpl(
|
||||
null == product
|
||||
? _value.product
|
||||
: product // ignore: cast_nullable_to_non_nullable
|
||||
as Product,
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
|
||||
class _$DeleteItemImpl implements _DeleteItem {
|
||||
const _$DeleteItemImpl(this.product);
|
||||
|
||||
@override
|
||||
final Product product;
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'CheckoutEvent.deleteItem(product: $product)';
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return identical(this, other) ||
|
||||
(other.runtimeType == runtimeType &&
|
||||
other is _$DeleteItemImpl &&
|
||||
(identical(other.product, product) || other.product == product));
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode => Object.hash(runtimeType, product);
|
||||
|
||||
/// Create a copy of CheckoutEvent
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
@override
|
||||
@pragma('vm:prefer-inline')
|
||||
_$$DeleteItemImplCopyWith<_$DeleteItemImpl> get copyWith =>
|
||||
__$$DeleteItemImplCopyWithImpl<_$DeleteItemImpl>(this, _$identity);
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult when<TResult extends Object?>({
|
||||
required TResult Function() started,
|
||||
required TResult Function(Product product) addItem,
|
||||
required TResult Function(Product product) removeItem,
|
||||
required TResult Function(Product product) deleteItem,
|
||||
required TResult Function(Discount discount) addDiscount,
|
||||
required TResult Function() removeDiscount,
|
||||
required TResult Function(int tax) addTax,
|
||||
required TResult Function(int serviceCharge) addServiceCharge,
|
||||
required TResult Function() removeTax,
|
||||
required TResult Function() removeServiceCharge,
|
||||
required TResult Function(OrderType orderType) updateOrderType,
|
||||
required TResult Function(Product product, String notes) updateItemNotes,
|
||||
required TResult Function(
|
||||
int tableNumber, String draftName, int discountAmount)
|
||||
saveDraftOrder,
|
||||
required TResult Function(DraftOrderModel data) loadDraftOrder,
|
||||
}) {
|
||||
return deleteItem(product);
|
||||
}
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult? whenOrNull<TResult extends Object?>({
|
||||
TResult? Function()? started,
|
||||
TResult? Function(Product product)? addItem,
|
||||
TResult? Function(Product product)? removeItem,
|
||||
TResult? Function(Product product)? deleteItem,
|
||||
TResult? Function(Discount discount)? addDiscount,
|
||||
TResult? Function()? removeDiscount,
|
||||
TResult? Function(int tax)? addTax,
|
||||
TResult? Function(int serviceCharge)? addServiceCharge,
|
||||
TResult? Function()? removeTax,
|
||||
TResult? Function()? removeServiceCharge,
|
||||
TResult? Function(OrderType orderType)? updateOrderType,
|
||||
TResult? Function(Product product, String notes)? updateItemNotes,
|
||||
TResult? Function(int tableNumber, String draftName, int discountAmount)?
|
||||
saveDraftOrder,
|
||||
TResult? Function(DraftOrderModel data)? loadDraftOrder,
|
||||
}) {
|
||||
return deleteItem?.call(product);
|
||||
}
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult maybeWhen<TResult extends Object?>({
|
||||
TResult Function()? started,
|
||||
TResult Function(Product product)? addItem,
|
||||
TResult Function(Product product)? removeItem,
|
||||
TResult Function(Product product)? deleteItem,
|
||||
TResult Function(Discount discount)? addDiscount,
|
||||
TResult Function()? removeDiscount,
|
||||
TResult Function(int tax)? addTax,
|
||||
TResult Function(int serviceCharge)? addServiceCharge,
|
||||
TResult Function()? removeTax,
|
||||
TResult Function()? removeServiceCharge,
|
||||
TResult Function(OrderType orderType)? updateOrderType,
|
||||
TResult Function(Product product, String notes)? updateItemNotes,
|
||||
TResult Function(int tableNumber, String draftName, int discountAmount)?
|
||||
saveDraftOrder,
|
||||
TResult Function(DraftOrderModel data)? loadDraftOrder,
|
||||
required TResult orElse(),
|
||||
}) {
|
||||
if (deleteItem != null) {
|
||||
return deleteItem(product);
|
||||
}
|
||||
return orElse();
|
||||
}
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult map<TResult extends Object?>({
|
||||
required TResult Function(_Started value) started,
|
||||
required TResult Function(_AddItem value) addItem,
|
||||
required TResult Function(_RemoveItem value) removeItem,
|
||||
required TResult Function(_DeleteItem value) deleteItem,
|
||||
required TResult Function(_AddDiscount value) addDiscount,
|
||||
required TResult Function(_RemoveDiscount value) removeDiscount,
|
||||
required TResult Function(_AddTax value) addTax,
|
||||
required TResult Function(_AddServiceCharge value) addServiceCharge,
|
||||
required TResult Function(_RemoveTax value) removeTax,
|
||||
required TResult Function(_RemoveServiceCharge value) removeServiceCharge,
|
||||
required TResult Function(_UpdateOrderType value) updateOrderType,
|
||||
required TResult Function(_UpdateItemNotes value) updateItemNotes,
|
||||
required TResult Function(_SaveDraftOrder value) saveDraftOrder,
|
||||
required TResult Function(_LoadDraftOrder value) loadDraftOrder,
|
||||
}) {
|
||||
return deleteItem(this);
|
||||
}
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult? mapOrNull<TResult extends Object?>({
|
||||
TResult? Function(_Started value)? started,
|
||||
TResult? Function(_AddItem value)? addItem,
|
||||
TResult? Function(_RemoveItem value)? removeItem,
|
||||
TResult? Function(_DeleteItem value)? deleteItem,
|
||||
TResult? Function(_AddDiscount value)? addDiscount,
|
||||
TResult? Function(_RemoveDiscount value)? removeDiscount,
|
||||
TResult? Function(_AddTax value)? addTax,
|
||||
TResult? Function(_AddServiceCharge value)? addServiceCharge,
|
||||
TResult? Function(_RemoveTax value)? removeTax,
|
||||
TResult? Function(_RemoveServiceCharge value)? removeServiceCharge,
|
||||
TResult? Function(_UpdateOrderType value)? updateOrderType,
|
||||
TResult? Function(_UpdateItemNotes value)? updateItemNotes,
|
||||
TResult? Function(_SaveDraftOrder value)? saveDraftOrder,
|
||||
TResult? Function(_LoadDraftOrder value)? loadDraftOrder,
|
||||
}) {
|
||||
return deleteItem?.call(this);
|
||||
}
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult maybeMap<TResult extends Object?>({
|
||||
TResult Function(_Started value)? started,
|
||||
TResult Function(_AddItem value)? addItem,
|
||||
TResult Function(_RemoveItem value)? removeItem,
|
||||
TResult Function(_DeleteItem value)? deleteItem,
|
||||
TResult Function(_AddDiscount value)? addDiscount,
|
||||
TResult Function(_RemoveDiscount value)? removeDiscount,
|
||||
TResult Function(_AddTax value)? addTax,
|
||||
TResult Function(_AddServiceCharge value)? addServiceCharge,
|
||||
TResult Function(_RemoveTax value)? removeTax,
|
||||
TResult Function(_RemoveServiceCharge value)? removeServiceCharge,
|
||||
TResult Function(_UpdateOrderType value)? updateOrderType,
|
||||
TResult Function(_UpdateItemNotes value)? updateItemNotes,
|
||||
TResult Function(_SaveDraftOrder value)? saveDraftOrder,
|
||||
TResult Function(_LoadDraftOrder value)? loadDraftOrder,
|
||||
required TResult orElse(),
|
||||
}) {
|
||||
if (deleteItem != null) {
|
||||
return deleteItem(this);
|
||||
}
|
||||
return orElse();
|
||||
}
|
||||
}
|
||||
|
||||
abstract class _DeleteItem implements CheckoutEvent {
|
||||
const factory _DeleteItem(final Product product) = _$DeleteItemImpl;
|
||||
|
||||
Product get product;
|
||||
|
||||
/// Create a copy of CheckoutEvent
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
_$$DeleteItemImplCopyWith<_$DeleteItemImpl> get copyWith =>
|
||||
throw _privateConstructorUsedError;
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract class _$$AddDiscountImplCopyWith<$Res> {
|
||||
factory _$$AddDiscountImplCopyWith(
|
||||
@ -1054,7 +814,6 @@ class _$AddDiscountImpl implements _AddDiscount {
|
||||
required TResult Function() started,
|
||||
required TResult Function(Product product) addItem,
|
||||
required TResult Function(Product product) removeItem,
|
||||
required TResult Function(Product product) deleteItem,
|
||||
required TResult Function(Discount discount) addDiscount,
|
||||
required TResult Function() removeDiscount,
|
||||
required TResult Function(int tax) addTax,
|
||||
@ -1077,7 +836,6 @@ class _$AddDiscountImpl implements _AddDiscount {
|
||||
TResult? Function()? started,
|
||||
TResult? Function(Product product)? addItem,
|
||||
TResult? Function(Product product)? removeItem,
|
||||
TResult? Function(Product product)? deleteItem,
|
||||
TResult? Function(Discount discount)? addDiscount,
|
||||
TResult? Function()? removeDiscount,
|
||||
TResult? Function(int tax)? addTax,
|
||||
@ -1099,7 +857,6 @@ class _$AddDiscountImpl implements _AddDiscount {
|
||||
TResult Function()? started,
|
||||
TResult Function(Product product)? addItem,
|
||||
TResult Function(Product product)? removeItem,
|
||||
TResult Function(Product product)? deleteItem,
|
||||
TResult Function(Discount discount)? addDiscount,
|
||||
TResult Function()? removeDiscount,
|
||||
TResult Function(int tax)? addTax,
|
||||
@ -1125,7 +882,6 @@ class _$AddDiscountImpl implements _AddDiscount {
|
||||
required TResult Function(_Started value) started,
|
||||
required TResult Function(_AddItem value) addItem,
|
||||
required TResult Function(_RemoveItem value) removeItem,
|
||||
required TResult Function(_DeleteItem value) deleteItem,
|
||||
required TResult Function(_AddDiscount value) addDiscount,
|
||||
required TResult Function(_RemoveDiscount value) removeDiscount,
|
||||
required TResult Function(_AddTax value) addTax,
|
||||
@ -1146,7 +902,6 @@ class _$AddDiscountImpl implements _AddDiscount {
|
||||
TResult? Function(_Started value)? started,
|
||||
TResult? Function(_AddItem value)? addItem,
|
||||
TResult? Function(_RemoveItem value)? removeItem,
|
||||
TResult? Function(_DeleteItem value)? deleteItem,
|
||||
TResult? Function(_AddDiscount value)? addDiscount,
|
||||
TResult? Function(_RemoveDiscount value)? removeDiscount,
|
||||
TResult? Function(_AddTax value)? addTax,
|
||||
@ -1167,7 +922,6 @@ class _$AddDiscountImpl implements _AddDiscount {
|
||||
TResult Function(_Started value)? started,
|
||||
TResult Function(_AddItem value)? addItem,
|
||||
TResult Function(_RemoveItem value)? removeItem,
|
||||
TResult Function(_DeleteItem value)? deleteItem,
|
||||
TResult Function(_AddDiscount value)? addDiscount,
|
||||
TResult Function(_RemoveDiscount value)? removeDiscount,
|
||||
TResult Function(_AddTax value)? addTax,
|
||||
@ -1243,7 +997,6 @@ class _$RemoveDiscountImpl implements _RemoveDiscount {
|
||||
required TResult Function() started,
|
||||
required TResult Function(Product product) addItem,
|
||||
required TResult Function(Product product) removeItem,
|
||||
required TResult Function(Product product) deleteItem,
|
||||
required TResult Function(Discount discount) addDiscount,
|
||||
required TResult Function() removeDiscount,
|
||||
required TResult Function(int tax) addTax,
|
||||
@ -1266,7 +1019,6 @@ class _$RemoveDiscountImpl implements _RemoveDiscount {
|
||||
TResult? Function()? started,
|
||||
TResult? Function(Product product)? addItem,
|
||||
TResult? Function(Product product)? removeItem,
|
||||
TResult? Function(Product product)? deleteItem,
|
||||
TResult? Function(Discount discount)? addDiscount,
|
||||
TResult? Function()? removeDiscount,
|
||||
TResult? Function(int tax)? addTax,
|
||||
@ -1288,7 +1040,6 @@ class _$RemoveDiscountImpl implements _RemoveDiscount {
|
||||
TResult Function()? started,
|
||||
TResult Function(Product product)? addItem,
|
||||
TResult Function(Product product)? removeItem,
|
||||
TResult Function(Product product)? deleteItem,
|
||||
TResult Function(Discount discount)? addDiscount,
|
||||
TResult Function()? removeDiscount,
|
||||
TResult Function(int tax)? addTax,
|
||||
@ -1314,7 +1065,6 @@ class _$RemoveDiscountImpl implements _RemoveDiscount {
|
||||
required TResult Function(_Started value) started,
|
||||
required TResult Function(_AddItem value) addItem,
|
||||
required TResult Function(_RemoveItem value) removeItem,
|
||||
required TResult Function(_DeleteItem value) deleteItem,
|
||||
required TResult Function(_AddDiscount value) addDiscount,
|
||||
required TResult Function(_RemoveDiscount value) removeDiscount,
|
||||
required TResult Function(_AddTax value) addTax,
|
||||
@ -1335,7 +1085,6 @@ class _$RemoveDiscountImpl implements _RemoveDiscount {
|
||||
TResult? Function(_Started value)? started,
|
||||
TResult? Function(_AddItem value)? addItem,
|
||||
TResult? Function(_RemoveItem value)? removeItem,
|
||||
TResult? Function(_DeleteItem value)? deleteItem,
|
||||
TResult? Function(_AddDiscount value)? addDiscount,
|
||||
TResult? Function(_RemoveDiscount value)? removeDiscount,
|
||||
TResult? Function(_AddTax value)? addTax,
|
||||
@ -1356,7 +1105,6 @@ class _$RemoveDiscountImpl implements _RemoveDiscount {
|
||||
TResult Function(_Started value)? started,
|
||||
TResult Function(_AddItem value)? addItem,
|
||||
TResult Function(_RemoveItem value)? removeItem,
|
||||
TResult Function(_DeleteItem value)? deleteItem,
|
||||
TResult Function(_AddDiscount value)? addDiscount,
|
||||
TResult Function(_RemoveDiscount value)? removeDiscount,
|
||||
TResult Function(_AddTax value)? addTax,
|
||||
@ -1451,7 +1199,6 @@ class _$AddTaxImpl implements _AddTax {
|
||||
required TResult Function() started,
|
||||
required TResult Function(Product product) addItem,
|
||||
required TResult Function(Product product) removeItem,
|
||||
required TResult Function(Product product) deleteItem,
|
||||
required TResult Function(Discount discount) addDiscount,
|
||||
required TResult Function() removeDiscount,
|
||||
required TResult Function(int tax) addTax,
|
||||
@ -1474,7 +1221,6 @@ class _$AddTaxImpl implements _AddTax {
|
||||
TResult? Function()? started,
|
||||
TResult? Function(Product product)? addItem,
|
||||
TResult? Function(Product product)? removeItem,
|
||||
TResult? Function(Product product)? deleteItem,
|
||||
TResult? Function(Discount discount)? addDiscount,
|
||||
TResult? Function()? removeDiscount,
|
||||
TResult? Function(int tax)? addTax,
|
||||
@ -1496,7 +1242,6 @@ class _$AddTaxImpl implements _AddTax {
|
||||
TResult Function()? started,
|
||||
TResult Function(Product product)? addItem,
|
||||
TResult Function(Product product)? removeItem,
|
||||
TResult Function(Product product)? deleteItem,
|
||||
TResult Function(Discount discount)? addDiscount,
|
||||
TResult Function()? removeDiscount,
|
||||
TResult Function(int tax)? addTax,
|
||||
@ -1522,7 +1267,6 @@ class _$AddTaxImpl implements _AddTax {
|
||||
required TResult Function(_Started value) started,
|
||||
required TResult Function(_AddItem value) addItem,
|
||||
required TResult Function(_RemoveItem value) removeItem,
|
||||
required TResult Function(_DeleteItem value) deleteItem,
|
||||
required TResult Function(_AddDiscount value) addDiscount,
|
||||
required TResult Function(_RemoveDiscount value) removeDiscount,
|
||||
required TResult Function(_AddTax value) addTax,
|
||||
@ -1543,7 +1287,6 @@ class _$AddTaxImpl implements _AddTax {
|
||||
TResult? Function(_Started value)? started,
|
||||
TResult? Function(_AddItem value)? addItem,
|
||||
TResult? Function(_RemoveItem value)? removeItem,
|
||||
TResult? Function(_DeleteItem value)? deleteItem,
|
||||
TResult? Function(_AddDiscount value)? addDiscount,
|
||||
TResult? Function(_RemoveDiscount value)? removeDiscount,
|
||||
TResult? Function(_AddTax value)? addTax,
|
||||
@ -1564,7 +1307,6 @@ class _$AddTaxImpl implements _AddTax {
|
||||
TResult Function(_Started value)? started,
|
||||
TResult Function(_AddItem value)? addItem,
|
||||
TResult Function(_RemoveItem value)? removeItem,
|
||||
TResult Function(_DeleteItem value)? deleteItem,
|
||||
TResult Function(_AddDiscount value)? addDiscount,
|
||||
TResult Function(_RemoveDiscount value)? removeDiscount,
|
||||
TResult Function(_AddTax value)? addTax,
|
||||
@ -1669,7 +1411,6 @@ class _$AddServiceChargeImpl implements _AddServiceCharge {
|
||||
required TResult Function() started,
|
||||
required TResult Function(Product product) addItem,
|
||||
required TResult Function(Product product) removeItem,
|
||||
required TResult Function(Product product) deleteItem,
|
||||
required TResult Function(Discount discount) addDiscount,
|
||||
required TResult Function() removeDiscount,
|
||||
required TResult Function(int tax) addTax,
|
||||
@ -1692,7 +1433,6 @@ class _$AddServiceChargeImpl implements _AddServiceCharge {
|
||||
TResult? Function()? started,
|
||||
TResult? Function(Product product)? addItem,
|
||||
TResult? Function(Product product)? removeItem,
|
||||
TResult? Function(Product product)? deleteItem,
|
||||
TResult? Function(Discount discount)? addDiscount,
|
||||
TResult? Function()? removeDiscount,
|
||||
TResult? Function(int tax)? addTax,
|
||||
@ -1714,7 +1454,6 @@ class _$AddServiceChargeImpl implements _AddServiceCharge {
|
||||
TResult Function()? started,
|
||||
TResult Function(Product product)? addItem,
|
||||
TResult Function(Product product)? removeItem,
|
||||
TResult Function(Product product)? deleteItem,
|
||||
TResult Function(Discount discount)? addDiscount,
|
||||
TResult Function()? removeDiscount,
|
||||
TResult Function(int tax)? addTax,
|
||||
@ -1740,7 +1479,6 @@ class _$AddServiceChargeImpl implements _AddServiceCharge {
|
||||
required TResult Function(_Started value) started,
|
||||
required TResult Function(_AddItem value) addItem,
|
||||
required TResult Function(_RemoveItem value) removeItem,
|
||||
required TResult Function(_DeleteItem value) deleteItem,
|
||||
required TResult Function(_AddDiscount value) addDiscount,
|
||||
required TResult Function(_RemoveDiscount value) removeDiscount,
|
||||
required TResult Function(_AddTax value) addTax,
|
||||
@ -1761,7 +1499,6 @@ class _$AddServiceChargeImpl implements _AddServiceCharge {
|
||||
TResult? Function(_Started value)? started,
|
||||
TResult? Function(_AddItem value)? addItem,
|
||||
TResult? Function(_RemoveItem value)? removeItem,
|
||||
TResult? Function(_DeleteItem value)? deleteItem,
|
||||
TResult? Function(_AddDiscount value)? addDiscount,
|
||||
TResult? Function(_RemoveDiscount value)? removeDiscount,
|
||||
TResult? Function(_AddTax value)? addTax,
|
||||
@ -1782,7 +1519,6 @@ class _$AddServiceChargeImpl implements _AddServiceCharge {
|
||||
TResult Function(_Started value)? started,
|
||||
TResult Function(_AddItem value)? addItem,
|
||||
TResult Function(_RemoveItem value)? removeItem,
|
||||
TResult Function(_DeleteItem value)? deleteItem,
|
||||
TResult Function(_AddDiscount value)? addDiscount,
|
||||
TResult Function(_RemoveDiscount value)? removeDiscount,
|
||||
TResult Function(_AddTax value)? addTax,
|
||||
@ -1859,7 +1595,6 @@ class _$RemoveTaxImpl implements _RemoveTax {
|
||||
required TResult Function() started,
|
||||
required TResult Function(Product product) addItem,
|
||||
required TResult Function(Product product) removeItem,
|
||||
required TResult Function(Product product) deleteItem,
|
||||
required TResult Function(Discount discount) addDiscount,
|
||||
required TResult Function() removeDiscount,
|
||||
required TResult Function(int tax) addTax,
|
||||
@ -1882,7 +1617,6 @@ class _$RemoveTaxImpl implements _RemoveTax {
|
||||
TResult? Function()? started,
|
||||
TResult? Function(Product product)? addItem,
|
||||
TResult? Function(Product product)? removeItem,
|
||||
TResult? Function(Product product)? deleteItem,
|
||||
TResult? Function(Discount discount)? addDiscount,
|
||||
TResult? Function()? removeDiscount,
|
||||
TResult? Function(int tax)? addTax,
|
||||
@ -1904,7 +1638,6 @@ class _$RemoveTaxImpl implements _RemoveTax {
|
||||
TResult Function()? started,
|
||||
TResult Function(Product product)? addItem,
|
||||
TResult Function(Product product)? removeItem,
|
||||
TResult Function(Product product)? deleteItem,
|
||||
TResult Function(Discount discount)? addDiscount,
|
||||
TResult Function()? removeDiscount,
|
||||
TResult Function(int tax)? addTax,
|
||||
@ -1930,7 +1663,6 @@ class _$RemoveTaxImpl implements _RemoveTax {
|
||||
required TResult Function(_Started value) started,
|
||||
required TResult Function(_AddItem value) addItem,
|
||||
required TResult Function(_RemoveItem value) removeItem,
|
||||
required TResult Function(_DeleteItem value) deleteItem,
|
||||
required TResult Function(_AddDiscount value) addDiscount,
|
||||
required TResult Function(_RemoveDiscount value) removeDiscount,
|
||||
required TResult Function(_AddTax value) addTax,
|
||||
@ -1951,7 +1683,6 @@ class _$RemoveTaxImpl implements _RemoveTax {
|
||||
TResult? Function(_Started value)? started,
|
||||
TResult? Function(_AddItem value)? addItem,
|
||||
TResult? Function(_RemoveItem value)? removeItem,
|
||||
TResult? Function(_DeleteItem value)? deleteItem,
|
||||
TResult? Function(_AddDiscount value)? addDiscount,
|
||||
TResult? Function(_RemoveDiscount value)? removeDiscount,
|
||||
TResult? Function(_AddTax value)? addTax,
|
||||
@ -1972,7 +1703,6 @@ class _$RemoveTaxImpl implements _RemoveTax {
|
||||
TResult Function(_Started value)? started,
|
||||
TResult Function(_AddItem value)? addItem,
|
||||
TResult Function(_RemoveItem value)? removeItem,
|
||||
TResult Function(_DeleteItem value)? deleteItem,
|
||||
TResult Function(_AddDiscount value)? addDiscount,
|
||||
TResult Function(_RemoveDiscount value)? removeDiscount,
|
||||
TResult Function(_AddTax value)? addTax,
|
||||
@ -2041,7 +1771,6 @@ class _$RemoveServiceChargeImpl implements _RemoveServiceCharge {
|
||||
required TResult Function() started,
|
||||
required TResult Function(Product product) addItem,
|
||||
required TResult Function(Product product) removeItem,
|
||||
required TResult Function(Product product) deleteItem,
|
||||
required TResult Function(Discount discount) addDiscount,
|
||||
required TResult Function() removeDiscount,
|
||||
required TResult Function(int tax) addTax,
|
||||
@ -2064,7 +1793,6 @@ class _$RemoveServiceChargeImpl implements _RemoveServiceCharge {
|
||||
TResult? Function()? started,
|
||||
TResult? Function(Product product)? addItem,
|
||||
TResult? Function(Product product)? removeItem,
|
||||
TResult? Function(Product product)? deleteItem,
|
||||
TResult? Function(Discount discount)? addDiscount,
|
||||
TResult? Function()? removeDiscount,
|
||||
TResult? Function(int tax)? addTax,
|
||||
@ -2086,7 +1814,6 @@ class _$RemoveServiceChargeImpl implements _RemoveServiceCharge {
|
||||
TResult Function()? started,
|
||||
TResult Function(Product product)? addItem,
|
||||
TResult Function(Product product)? removeItem,
|
||||
TResult Function(Product product)? deleteItem,
|
||||
TResult Function(Discount discount)? addDiscount,
|
||||
TResult Function()? removeDiscount,
|
||||
TResult Function(int tax)? addTax,
|
||||
@ -2112,7 +1839,6 @@ class _$RemoveServiceChargeImpl implements _RemoveServiceCharge {
|
||||
required TResult Function(_Started value) started,
|
||||
required TResult Function(_AddItem value) addItem,
|
||||
required TResult Function(_RemoveItem value) removeItem,
|
||||
required TResult Function(_DeleteItem value) deleteItem,
|
||||
required TResult Function(_AddDiscount value) addDiscount,
|
||||
required TResult Function(_RemoveDiscount value) removeDiscount,
|
||||
required TResult Function(_AddTax value) addTax,
|
||||
@ -2133,7 +1859,6 @@ class _$RemoveServiceChargeImpl implements _RemoveServiceCharge {
|
||||
TResult? Function(_Started value)? started,
|
||||
TResult? Function(_AddItem value)? addItem,
|
||||
TResult? Function(_RemoveItem value)? removeItem,
|
||||
TResult? Function(_DeleteItem value)? deleteItem,
|
||||
TResult? Function(_AddDiscount value)? addDiscount,
|
||||
TResult? Function(_RemoveDiscount value)? removeDiscount,
|
||||
TResult? Function(_AddTax value)? addTax,
|
||||
@ -2154,7 +1879,6 @@ class _$RemoveServiceChargeImpl implements _RemoveServiceCharge {
|
||||
TResult Function(_Started value)? started,
|
||||
TResult Function(_AddItem value)? addItem,
|
||||
TResult Function(_RemoveItem value)? removeItem,
|
||||
TResult Function(_DeleteItem value)? deleteItem,
|
||||
TResult Function(_AddDiscount value)? addDiscount,
|
||||
TResult Function(_RemoveDiscount value)? removeDiscount,
|
||||
TResult Function(_AddTax value)? addTax,
|
||||
@ -2251,7 +1975,6 @@ class _$UpdateOrderTypeImpl implements _UpdateOrderType {
|
||||
required TResult Function() started,
|
||||
required TResult Function(Product product) addItem,
|
||||
required TResult Function(Product product) removeItem,
|
||||
required TResult Function(Product product) deleteItem,
|
||||
required TResult Function(Discount discount) addDiscount,
|
||||
required TResult Function() removeDiscount,
|
||||
required TResult Function(int tax) addTax,
|
||||
@ -2274,7 +1997,6 @@ class _$UpdateOrderTypeImpl implements _UpdateOrderType {
|
||||
TResult? Function()? started,
|
||||
TResult? Function(Product product)? addItem,
|
||||
TResult? Function(Product product)? removeItem,
|
||||
TResult? Function(Product product)? deleteItem,
|
||||
TResult? Function(Discount discount)? addDiscount,
|
||||
TResult? Function()? removeDiscount,
|
||||
TResult? Function(int tax)? addTax,
|
||||
@ -2296,7 +2018,6 @@ class _$UpdateOrderTypeImpl implements _UpdateOrderType {
|
||||
TResult Function()? started,
|
||||
TResult Function(Product product)? addItem,
|
||||
TResult Function(Product product)? removeItem,
|
||||
TResult Function(Product product)? deleteItem,
|
||||
TResult Function(Discount discount)? addDiscount,
|
||||
TResult Function()? removeDiscount,
|
||||
TResult Function(int tax)? addTax,
|
||||
@ -2322,7 +2043,6 @@ class _$UpdateOrderTypeImpl implements _UpdateOrderType {
|
||||
required TResult Function(_Started value) started,
|
||||
required TResult Function(_AddItem value) addItem,
|
||||
required TResult Function(_RemoveItem value) removeItem,
|
||||
required TResult Function(_DeleteItem value) deleteItem,
|
||||
required TResult Function(_AddDiscount value) addDiscount,
|
||||
required TResult Function(_RemoveDiscount value) removeDiscount,
|
||||
required TResult Function(_AddTax value) addTax,
|
||||
@ -2343,7 +2063,6 @@ class _$UpdateOrderTypeImpl implements _UpdateOrderType {
|
||||
TResult? Function(_Started value)? started,
|
||||
TResult? Function(_AddItem value)? addItem,
|
||||
TResult? Function(_RemoveItem value)? removeItem,
|
||||
TResult? Function(_DeleteItem value)? deleteItem,
|
||||
TResult? Function(_AddDiscount value)? addDiscount,
|
||||
TResult? Function(_RemoveDiscount value)? removeDiscount,
|
||||
TResult? Function(_AddTax value)? addTax,
|
||||
@ -2364,7 +2083,6 @@ class _$UpdateOrderTypeImpl implements _UpdateOrderType {
|
||||
TResult Function(_Started value)? started,
|
||||
TResult Function(_AddItem value)? addItem,
|
||||
TResult Function(_RemoveItem value)? removeItem,
|
||||
TResult Function(_DeleteItem value)? deleteItem,
|
||||
TResult Function(_AddDiscount value)? addDiscount,
|
||||
TResult Function(_RemoveDiscount value)? removeDiscount,
|
||||
TResult Function(_AddTax value)? addTax,
|
||||
@ -2477,7 +2195,6 @@ class _$UpdateItemNotesImpl implements _UpdateItemNotes {
|
||||
required TResult Function() started,
|
||||
required TResult Function(Product product) addItem,
|
||||
required TResult Function(Product product) removeItem,
|
||||
required TResult Function(Product product) deleteItem,
|
||||
required TResult Function(Discount discount) addDiscount,
|
||||
required TResult Function() removeDiscount,
|
||||
required TResult Function(int tax) addTax,
|
||||
@ -2500,7 +2217,6 @@ class _$UpdateItemNotesImpl implements _UpdateItemNotes {
|
||||
TResult? Function()? started,
|
||||
TResult? Function(Product product)? addItem,
|
||||
TResult? Function(Product product)? removeItem,
|
||||
TResult? Function(Product product)? deleteItem,
|
||||
TResult? Function(Discount discount)? addDiscount,
|
||||
TResult? Function()? removeDiscount,
|
||||
TResult? Function(int tax)? addTax,
|
||||
@ -2522,7 +2238,6 @@ class _$UpdateItemNotesImpl implements _UpdateItemNotes {
|
||||
TResult Function()? started,
|
||||
TResult Function(Product product)? addItem,
|
||||
TResult Function(Product product)? removeItem,
|
||||
TResult Function(Product product)? deleteItem,
|
||||
TResult Function(Discount discount)? addDiscount,
|
||||
TResult Function()? removeDiscount,
|
||||
TResult Function(int tax)? addTax,
|
||||
@ -2548,7 +2263,6 @@ class _$UpdateItemNotesImpl implements _UpdateItemNotes {
|
||||
required TResult Function(_Started value) started,
|
||||
required TResult Function(_AddItem value) addItem,
|
||||
required TResult Function(_RemoveItem value) removeItem,
|
||||
required TResult Function(_DeleteItem value) deleteItem,
|
||||
required TResult Function(_AddDiscount value) addDiscount,
|
||||
required TResult Function(_RemoveDiscount value) removeDiscount,
|
||||
required TResult Function(_AddTax value) addTax,
|
||||
@ -2569,7 +2283,6 @@ class _$UpdateItemNotesImpl implements _UpdateItemNotes {
|
||||
TResult? Function(_Started value)? started,
|
||||
TResult? Function(_AddItem value)? addItem,
|
||||
TResult? Function(_RemoveItem value)? removeItem,
|
||||
TResult? Function(_DeleteItem value)? deleteItem,
|
||||
TResult? Function(_AddDiscount value)? addDiscount,
|
||||
TResult? Function(_RemoveDiscount value)? removeDiscount,
|
||||
TResult? Function(_AddTax value)? addTax,
|
||||
@ -2590,7 +2303,6 @@ class _$UpdateItemNotesImpl implements _UpdateItemNotes {
|
||||
TResult Function(_Started value)? started,
|
||||
TResult Function(_AddItem value)? addItem,
|
||||
TResult Function(_RemoveItem value)? removeItem,
|
||||
TResult Function(_DeleteItem value)? deleteItem,
|
||||
TResult Function(_AddDiscount value)? addDiscount,
|
||||
TResult Function(_RemoveDiscount value)? removeDiscount,
|
||||
TResult Function(_AddTax value)? addTax,
|
||||
@ -2717,7 +2429,6 @@ class _$SaveDraftOrderImpl implements _SaveDraftOrder {
|
||||
required TResult Function() started,
|
||||
required TResult Function(Product product) addItem,
|
||||
required TResult Function(Product product) removeItem,
|
||||
required TResult Function(Product product) deleteItem,
|
||||
required TResult Function(Discount discount) addDiscount,
|
||||
required TResult Function() removeDiscount,
|
||||
required TResult Function(int tax) addTax,
|
||||
@ -2740,7 +2451,6 @@ class _$SaveDraftOrderImpl implements _SaveDraftOrder {
|
||||
TResult? Function()? started,
|
||||
TResult? Function(Product product)? addItem,
|
||||
TResult? Function(Product product)? removeItem,
|
||||
TResult? Function(Product product)? deleteItem,
|
||||
TResult? Function(Discount discount)? addDiscount,
|
||||
TResult? Function()? removeDiscount,
|
||||
TResult? Function(int tax)? addTax,
|
||||
@ -2762,7 +2472,6 @@ class _$SaveDraftOrderImpl implements _SaveDraftOrder {
|
||||
TResult Function()? started,
|
||||
TResult Function(Product product)? addItem,
|
||||
TResult Function(Product product)? removeItem,
|
||||
TResult Function(Product product)? deleteItem,
|
||||
TResult Function(Discount discount)? addDiscount,
|
||||
TResult Function()? removeDiscount,
|
||||
TResult Function(int tax)? addTax,
|
||||
@ -2788,7 +2497,6 @@ class _$SaveDraftOrderImpl implements _SaveDraftOrder {
|
||||
required TResult Function(_Started value) started,
|
||||
required TResult Function(_AddItem value) addItem,
|
||||
required TResult Function(_RemoveItem value) removeItem,
|
||||
required TResult Function(_DeleteItem value) deleteItem,
|
||||
required TResult Function(_AddDiscount value) addDiscount,
|
||||
required TResult Function(_RemoveDiscount value) removeDiscount,
|
||||
required TResult Function(_AddTax value) addTax,
|
||||
@ -2809,7 +2517,6 @@ class _$SaveDraftOrderImpl implements _SaveDraftOrder {
|
||||
TResult? Function(_Started value)? started,
|
||||
TResult? Function(_AddItem value)? addItem,
|
||||
TResult? Function(_RemoveItem value)? removeItem,
|
||||
TResult? Function(_DeleteItem value)? deleteItem,
|
||||
TResult? Function(_AddDiscount value)? addDiscount,
|
||||
TResult? Function(_RemoveDiscount value)? removeDiscount,
|
||||
TResult? Function(_AddTax value)? addTax,
|
||||
@ -2830,7 +2537,6 @@ class _$SaveDraftOrderImpl implements _SaveDraftOrder {
|
||||
TResult Function(_Started value)? started,
|
||||
TResult Function(_AddItem value)? addItem,
|
||||
TResult Function(_RemoveItem value)? removeItem,
|
||||
TResult Function(_DeleteItem value)? deleteItem,
|
||||
TResult Function(_AddDiscount value)? addDiscount,
|
||||
TResult Function(_RemoveDiscount value)? removeDiscount,
|
||||
TResult Function(_AddTax value)? addTax,
|
||||
@ -2937,7 +2643,6 @@ class _$LoadDraftOrderImpl implements _LoadDraftOrder {
|
||||
required TResult Function() started,
|
||||
required TResult Function(Product product) addItem,
|
||||
required TResult Function(Product product) removeItem,
|
||||
required TResult Function(Product product) deleteItem,
|
||||
required TResult Function(Discount discount) addDiscount,
|
||||
required TResult Function() removeDiscount,
|
||||
required TResult Function(int tax) addTax,
|
||||
@ -2960,7 +2665,6 @@ class _$LoadDraftOrderImpl implements _LoadDraftOrder {
|
||||
TResult? Function()? started,
|
||||
TResult? Function(Product product)? addItem,
|
||||
TResult? Function(Product product)? removeItem,
|
||||
TResult? Function(Product product)? deleteItem,
|
||||
TResult? Function(Discount discount)? addDiscount,
|
||||
TResult? Function()? removeDiscount,
|
||||
TResult? Function(int tax)? addTax,
|
||||
@ -2982,7 +2686,6 @@ class _$LoadDraftOrderImpl implements _LoadDraftOrder {
|
||||
TResult Function()? started,
|
||||
TResult Function(Product product)? addItem,
|
||||
TResult Function(Product product)? removeItem,
|
||||
TResult Function(Product product)? deleteItem,
|
||||
TResult Function(Discount discount)? addDiscount,
|
||||
TResult Function()? removeDiscount,
|
||||
TResult Function(int tax)? addTax,
|
||||
@ -3008,7 +2711,6 @@ class _$LoadDraftOrderImpl implements _LoadDraftOrder {
|
||||
required TResult Function(_Started value) started,
|
||||
required TResult Function(_AddItem value) addItem,
|
||||
required TResult Function(_RemoveItem value) removeItem,
|
||||
required TResult Function(_DeleteItem value) deleteItem,
|
||||
required TResult Function(_AddDiscount value) addDiscount,
|
||||
required TResult Function(_RemoveDiscount value) removeDiscount,
|
||||
required TResult Function(_AddTax value) addTax,
|
||||
@ -3029,7 +2731,6 @@ class _$LoadDraftOrderImpl implements _LoadDraftOrder {
|
||||
TResult? Function(_Started value)? started,
|
||||
TResult? Function(_AddItem value)? addItem,
|
||||
TResult? Function(_RemoveItem value)? removeItem,
|
||||
TResult? Function(_DeleteItem value)? deleteItem,
|
||||
TResult? Function(_AddDiscount value)? addDiscount,
|
||||
TResult? Function(_RemoveDiscount value)? removeDiscount,
|
||||
TResult? Function(_AddTax value)? addTax,
|
||||
@ -3050,7 +2751,6 @@ class _$LoadDraftOrderImpl implements _LoadDraftOrder {
|
||||
TResult Function(_Started value)? started,
|
||||
TResult Function(_AddItem value)? addItem,
|
||||
TResult Function(_RemoveItem value)? removeItem,
|
||||
TResult Function(_DeleteItem value)? deleteItem,
|
||||
TResult Function(_AddDiscount value)? addDiscount,
|
||||
TResult Function(_RemoveDiscount value)? removeDiscount,
|
||||
TResult Function(_AddTax value)? addTax,
|
||||
|
||||
@ -7,8 +7,6 @@ class CheckoutEvent with _$CheckoutEvent {
|
||||
const factory CheckoutEvent.addItem(Product product) = _AddItem;
|
||||
//remove item
|
||||
const factory CheckoutEvent.removeItem(Product product) = _RemoveItem;
|
||||
// Delete Item
|
||||
const factory CheckoutEvent.deleteItem(Product product) = _DeleteItem;
|
||||
|
||||
//add discount
|
||||
const factory CheckoutEvent.addDiscount(Discount discount) = _AddDiscount;
|
||||
@ -25,12 +23,10 @@ class CheckoutEvent with _$CheckoutEvent {
|
||||
const factory CheckoutEvent.removeServiceCharge() = _RemoveServiceCharge;
|
||||
|
||||
//update order type
|
||||
const factory CheckoutEvent.updateOrderType(OrderType orderType) =
|
||||
_UpdateOrderType;
|
||||
const factory CheckoutEvent.updateOrderType(OrderType orderType) = _UpdateOrderType;
|
||||
|
||||
//update item notes
|
||||
const factory CheckoutEvent.updateItemNotes(Product product, String notes) =
|
||||
_UpdateItemNotes;
|
||||
const factory CheckoutEvent.updateItemNotes(Product product, String notes) = _UpdateItemNotes;
|
||||
|
||||
//save draft order
|
||||
const factory CheckoutEvent.saveDraftOrder(
|
||||
|
||||
@ -1,76 +0,0 @@
|
||||
import 'package:enaklo_pos/core/components/custom_modal_dialog.dart';
|
||||
import 'package:enaklo_pos/core/components/spaces.dart';
|
||||
import 'package:enaklo_pos/core/constants/colors.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class SaveDialog extends StatelessWidget {
|
||||
const SaveDialog({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return CustomModalDialog(
|
||||
title: 'Pilih Aksi',
|
||||
subtitle: 'Lanjutkan proses pesanan atau simpan untuk nanti.',
|
||||
contentPadding:
|
||||
const EdgeInsets.symmetric(horizontal: 16.0, vertical: 24.0),
|
||||
child: Column(
|
||||
children: [
|
||||
_item(
|
||||
icon: Icons.schedule_outlined,
|
||||
title: 'Bayar Nanti',
|
||||
subtitle: 'Simpan pesanan dan bayar nanti',
|
||||
onTap: () {},
|
||||
),
|
||||
SpaceHeight(16.0),
|
||||
_item(
|
||||
icon: Icons.shopping_cart_checkout_outlined,
|
||||
title: 'Tambahkan Pesanan',
|
||||
subtitle: 'ambah item ke daftar pesanan',
|
||||
onTap: () {},
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _item({
|
||||
required IconData icon,
|
||||
required String title,
|
||||
required String subtitle,
|
||||
required Function() onTap,
|
||||
}) {
|
||||
return GestureDetector(
|
||||
onTap: onTap,
|
||||
child: Container(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 12.0),
|
||||
decoration: BoxDecoration(
|
||||
color: AppColors.white,
|
||||
borderRadius: BorderRadius.circular(8.0),
|
||||
border: Border.all(
|
||||
color: AppColors.grey,
|
||||
width: 1.0,
|
||||
),
|
||||
),
|
||||
child: Row(
|
||||
children: [
|
||||
Icon(icon, color: AppColors.primary, size: 26.0),
|
||||
SpaceWidth(12.0),
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
title,
|
||||
style: const TextStyle(fontWeight: FontWeight.w600),
|
||||
),
|
||||
Text(
|
||||
subtitle,
|
||||
style: const TextStyle(color: Colors.grey),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -168,10 +168,11 @@ class _HomePageState extends State<HomePage> {
|
||||
padding: const EdgeInsets.all(16),
|
||||
gridDelegate:
|
||||
SliverGridDelegateWithMaxCrossAxisExtent(
|
||||
maxCrossAxisExtent: 180,
|
||||
maxCrossAxisExtent:
|
||||
200, // Lebar maksimal tiap item (bisa kamu ubah)
|
||||
mainAxisSpacing: 30,
|
||||
crossAxisSpacing: 30,
|
||||
childAspectRatio: 180 / 240,
|
||||
childAspectRatio: 0.85,
|
||||
),
|
||||
itemBuilder: (context, index) =>
|
||||
ProductCard(
|
||||
|
||||
@ -1,74 +0,0 @@
|
||||
import 'package:enaklo_pos/core/components/components.dart';
|
||||
import 'package:enaklo_pos/core/constants/colors.dart';
|
||||
import 'package:enaklo_pos/core/extensions/build_context_ext.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class ConfirmPaymentTitle extends StatelessWidget {
|
||||
final String title;
|
||||
final String? subtitle;
|
||||
final bool isBack;
|
||||
final List<Widget>? actionWidget;
|
||||
const ConfirmPaymentTitle({
|
||||
super.key,
|
||||
required this.title,
|
||||
this.subtitle,
|
||||
this.isBack = true,
|
||||
this.actionWidget,
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container(
|
||||
height: context.deviceHeight * 0.1,
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 12.0),
|
||||
decoration: BoxDecoration(
|
||||
color: AppColors.white,
|
||||
border: Border(
|
||||
bottom: BorderSide(
|
||||
color: AppColors.grey,
|
||||
width: 1.0,
|
||||
),
|
||||
),
|
||||
),
|
||||
child: Row(
|
||||
children: [
|
||||
if (isBack) ...[
|
||||
GestureDetector(
|
||||
onTap: () => context.pop(),
|
||||
child: Icon(
|
||||
Icons.arrow_back,
|
||||
color: AppColors.primary,
|
||||
size: 24,
|
||||
),
|
||||
),
|
||||
SpaceWidth(16),
|
||||
],
|
||||
Expanded(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
title,
|
||||
style: TextStyle(
|
||||
color: AppColors.black,
|
||||
fontSize: 20,
|
||||
fontWeight: FontWeight.w600,
|
||||
),
|
||||
),
|
||||
if (subtitle != null) ...[
|
||||
const SizedBox(height: 4.0),
|
||||
Text(
|
||||
subtitle!,
|
||||
style:
|
||||
const TextStyle(fontSize: 14.0, color: AppColors.grey),
|
||||
),
|
||||
]
|
||||
],
|
||||
),
|
||||
),
|
||||
if (actionWidget != null) ...actionWidget!,
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -4,7 +4,6 @@ import 'package:enaklo_pos/core/extensions/build_context_ext.dart';
|
||||
import 'package:enaklo_pos/data/models/response/table_model.dart';
|
||||
import 'package:enaklo_pos/presentation/home/dialog/type_dialog.dart';
|
||||
import 'package:enaklo_pos/presentation/home/pages/dashboard_page.dart';
|
||||
import 'package:enaklo_pos/presentation/sales/pages/sales_page.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class HomeRightTitle extends StatelessWidget {
|
||||
@ -34,7 +33,7 @@ class HomeRightTitle extends StatelessWidget {
|
||||
width: 180.0,
|
||||
height: 40,
|
||||
elevation: 0,
|
||||
onPressed: () => context.push(SalesPage()),
|
||||
onPressed: () {},
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
icon: Icon(
|
||||
|
||||
@ -29,7 +29,7 @@ class HomeTitle extends StatelessWidget {
|
||||
'DEFAULT OUTLET',
|
||||
style: TextStyle(
|
||||
color: AppColors.primary,
|
||||
fontSize: 20,
|
||||
fontSize: 28,
|
||||
fontWeight: FontWeight.w600,
|
||||
),
|
||||
),
|
||||
|
||||
@ -170,23 +170,16 @@ class _OrderMenuState extends State<OrderMenu> {
|
||||
),
|
||||
),
|
||||
const SpaceWidth(16.0),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
context
|
||||
.read<CheckoutBloc>()
|
||||
.add(CheckoutEvent.deleteItem(widget.data.product));
|
||||
},
|
||||
child: Container(
|
||||
height: 40,
|
||||
width: 40,
|
||||
decoration: BoxDecoration(
|
||||
color: AppColors.primary,
|
||||
borderRadius: BorderRadius.circular(8.0),
|
||||
),
|
||||
child: Icon(
|
||||
Icons.delete_outline,
|
||||
color: AppColors.white,
|
||||
),
|
||||
Container(
|
||||
height: 40,
|
||||
width: 40,
|
||||
decoration: BoxDecoration(
|
||||
color: AppColors.primary,
|
||||
borderRadius: BorderRadius.circular(8.0),
|
||||
),
|
||||
child: Icon(
|
||||
Icons.delete_outline,
|
||||
color: AppColors.white,
|
||||
),
|
||||
),
|
||||
],
|
||||
|
||||
@ -7,6 +7,7 @@ import 'package:enaklo_pos/core/extensions/string_ext.dart';
|
||||
import 'package:enaklo_pos/data/models/response/product_response_model.dart';
|
||||
import 'package:enaklo_pos/presentation/home/bloc/checkout/checkout_bloc.dart';
|
||||
|
||||
import '../../../core/components/spaces.dart';
|
||||
import '../../../core/constants/colors.dart';
|
||||
|
||||
class ProductCard extends StatelessWidget {
|
||||
@ -26,80 +27,88 @@ class ProductCard extends StatelessWidget {
|
||||
context.read<CheckoutBloc>().add(CheckoutEvent.addItem(data));
|
||||
},
|
||||
child: Container(
|
||||
padding: const EdgeInsets.all(16.0),
|
||||
decoration: BoxDecoration(
|
||||
color: AppColors.white,
|
||||
borderRadius: BorderRadius.circular(8.0),
|
||||
borderRadius: BorderRadius.circular(12.0),
|
||||
border: Border.all(
|
||||
color: AppColors.disabled,
|
||||
),
|
||||
),
|
||||
child: Stack(
|
||||
children: [
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(4.0),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
ClipRRect(
|
||||
borderRadius: BorderRadius.all(Radius.circular(8.0)),
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
SpaceHeight(8),
|
||||
Container(
|
||||
alignment: Alignment.center,
|
||||
padding: const EdgeInsets.all(12.0),
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
color: AppColors.disabled.withOpacity(0.4),
|
||||
),
|
||||
child: ClipRRect(
|
||||
borderRadius: BorderRadius.all(Radius.circular(40.0)),
|
||||
child: CachedNetworkImage(
|
||||
imageUrl: data.image!.contains('http')
|
||||
? data.image!
|
||||
: '${Variables.baseUrl}/${data.image}',
|
||||
fit: BoxFit.cover,
|
||||
width: double.infinity,
|
||||
height: 120,
|
||||
width: 60,
|
||||
height: 60,
|
||||
errorWidget: (context, url, error) => Container(
|
||||
width: double.infinity,
|
||||
height: 120,
|
||||
width: 60,
|
||||
height: 60,
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
color: AppColors.disabled.withOpacity(0.4),
|
||||
),
|
||||
child: const Icon(
|
||||
Icons.image,
|
||||
Icons.image_not_supported,
|
||||
color: AppColors.grey,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
const Spacer(),
|
||||
Text(
|
||||
"${data.name}",
|
||||
),
|
||||
const Spacer(),
|
||||
Text(
|
||||
"${data.name}",
|
||||
style: const TextStyle(
|
||||
fontSize: 15,
|
||||
fontWeight: FontWeight.w700,
|
||||
),
|
||||
maxLines: 2,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
const Spacer(),
|
||||
Align(
|
||||
alignment: Alignment.center,
|
||||
child: Text(
|
||||
data.category?.name ?? '-',
|
||||
style: const TextStyle(
|
||||
fontSize: 14,
|
||||
fontWeight: FontWeight.w700,
|
||||
color: AppColors.grey,
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
maxLines: 1,
|
||||
maxLines: 2,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
const Spacer(),
|
||||
Align(
|
||||
alignment: Alignment.center,
|
||||
child: Text(
|
||||
data.category?.name ?? '-',
|
||||
style: const TextStyle(
|
||||
fontSize: 12,
|
||||
color: AppColors.grey,
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
const Spacer(),
|
||||
Align(
|
||||
alignment: Alignment.center,
|
||||
child: Text(
|
||||
data.price!.toIntegerFromText.currencyFormatRp,
|
||||
style: const TextStyle(
|
||||
fontWeight: FontWeight.bold,
|
||||
fontSize: 13,
|
||||
),
|
||||
),
|
||||
const Spacer(),
|
||||
Align(
|
||||
alignment: Alignment.center,
|
||||
child: Text(
|
||||
data.price!.toIntegerFromText.currencyFormatRp,
|
||||
style: const TextStyle(
|
||||
fontWeight: FontWeight.bold,
|
||||
fontSize: 12,
|
||||
),
|
||||
),
|
||||
),
|
||||
const Spacer(),
|
||||
],
|
||||
),
|
||||
),
|
||||
const Spacer(),
|
||||
],
|
||||
),
|
||||
BlocBuilder<CheckoutBloc, CheckoutState>(
|
||||
builder: (context, state) {
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
|
||||
import 'package:bloc/bloc.dart';
|
||||
import 'package:enaklo_pos/data/datasources/product_local_datasource.dart';
|
||||
import 'package:enaklo_pos/presentation/home/models/order_model.dart';
|
||||
@ -11,14 +12,9 @@ class DaySalesBloc extends Bloc<DaySalesEvent, DaySalesState> {
|
||||
final ProductLocalDatasource datasource;
|
||||
DaySalesBloc(this.datasource) : super(const _Initial()) {
|
||||
on<_GetDaySales>((event, emit) async {
|
||||
emit(const _Loading());
|
||||
final result = await datasource.getAllOrder(event.date);
|
||||
emit(_Loaded(result));
|
||||
});
|
||||
on<_GetRangeDateSales>((event, emit) async {
|
||||
emit(const _Loading());
|
||||
final result =
|
||||
await datasource.getAllOrderByRange(event.startDate, event.endDate);
|
||||
await datasource.getAllOrder(event.date);
|
||||
emit(_Loaded(result));
|
||||
});
|
||||
}
|
||||
|
||||
@ -20,22 +20,18 @@ mixin _$DaySalesEvent {
|
||||
TResult when<TResult extends Object?>({
|
||||
required TResult Function() started,
|
||||
required TResult Function(DateTime date) getDaySales,
|
||||
required TResult Function(DateTime startDate, DateTime endDate)
|
||||
getRangeDateSales,
|
||||
}) =>
|
||||
throw _privateConstructorUsedError;
|
||||
@optionalTypeArgs
|
||||
TResult? whenOrNull<TResult extends Object?>({
|
||||
TResult? Function()? started,
|
||||
TResult? Function(DateTime date)? getDaySales,
|
||||
TResult? Function(DateTime startDate, DateTime endDate)? getRangeDateSales,
|
||||
}) =>
|
||||
throw _privateConstructorUsedError;
|
||||
@optionalTypeArgs
|
||||
TResult maybeWhen<TResult extends Object?>({
|
||||
TResult Function()? started,
|
||||
TResult Function(DateTime date)? getDaySales,
|
||||
TResult Function(DateTime startDate, DateTime endDate)? getRangeDateSales,
|
||||
required TResult orElse(),
|
||||
}) =>
|
||||
throw _privateConstructorUsedError;
|
||||
@ -43,21 +39,18 @@ mixin _$DaySalesEvent {
|
||||
TResult map<TResult extends Object?>({
|
||||
required TResult Function(_Started value) started,
|
||||
required TResult Function(_GetDaySales value) getDaySales,
|
||||
required TResult Function(_GetRangeDateSales value) getRangeDateSales,
|
||||
}) =>
|
||||
throw _privateConstructorUsedError;
|
||||
@optionalTypeArgs
|
||||
TResult? mapOrNull<TResult extends Object?>({
|
||||
TResult? Function(_Started value)? started,
|
||||
TResult? Function(_GetDaySales value)? getDaySales,
|
||||
TResult? Function(_GetRangeDateSales value)? getRangeDateSales,
|
||||
}) =>
|
||||
throw _privateConstructorUsedError;
|
||||
@optionalTypeArgs
|
||||
TResult maybeMap<TResult extends Object?>({
|
||||
TResult Function(_Started value)? started,
|
||||
TResult Function(_GetDaySales value)? getDaySales,
|
||||
TResult Function(_GetRangeDateSales value)? getRangeDateSales,
|
||||
required TResult orElse(),
|
||||
}) =>
|
||||
throw _privateConstructorUsedError;
|
||||
@ -127,8 +120,6 @@ class _$StartedImpl implements _Started {
|
||||
TResult when<TResult extends Object?>({
|
||||
required TResult Function() started,
|
||||
required TResult Function(DateTime date) getDaySales,
|
||||
required TResult Function(DateTime startDate, DateTime endDate)
|
||||
getRangeDateSales,
|
||||
}) {
|
||||
return started();
|
||||
}
|
||||
@ -138,7 +129,6 @@ class _$StartedImpl implements _Started {
|
||||
TResult? whenOrNull<TResult extends Object?>({
|
||||
TResult? Function()? started,
|
||||
TResult? Function(DateTime date)? getDaySales,
|
||||
TResult? Function(DateTime startDate, DateTime endDate)? getRangeDateSales,
|
||||
}) {
|
||||
return started?.call();
|
||||
}
|
||||
@ -148,7 +138,6 @@ class _$StartedImpl implements _Started {
|
||||
TResult maybeWhen<TResult extends Object?>({
|
||||
TResult Function()? started,
|
||||
TResult Function(DateTime date)? getDaySales,
|
||||
TResult Function(DateTime startDate, DateTime endDate)? getRangeDateSales,
|
||||
required TResult orElse(),
|
||||
}) {
|
||||
if (started != null) {
|
||||
@ -162,7 +151,6 @@ class _$StartedImpl implements _Started {
|
||||
TResult map<TResult extends Object?>({
|
||||
required TResult Function(_Started value) started,
|
||||
required TResult Function(_GetDaySales value) getDaySales,
|
||||
required TResult Function(_GetRangeDateSales value) getRangeDateSales,
|
||||
}) {
|
||||
return started(this);
|
||||
}
|
||||
@ -172,7 +160,6 @@ class _$StartedImpl implements _Started {
|
||||
TResult? mapOrNull<TResult extends Object?>({
|
||||
TResult? Function(_Started value)? started,
|
||||
TResult? Function(_GetDaySales value)? getDaySales,
|
||||
TResult? Function(_GetRangeDateSales value)? getRangeDateSales,
|
||||
}) {
|
||||
return started?.call(this);
|
||||
}
|
||||
@ -182,7 +169,6 @@ class _$StartedImpl implements _Started {
|
||||
TResult maybeMap<TResult extends Object?>({
|
||||
TResult Function(_Started value)? started,
|
||||
TResult Function(_GetDaySales value)? getDaySales,
|
||||
TResult Function(_GetRangeDateSales value)? getRangeDateSales,
|
||||
required TResult orElse(),
|
||||
}) {
|
||||
if (started != null) {
|
||||
@ -266,8 +252,6 @@ class _$GetDaySalesImpl implements _GetDaySales {
|
||||
TResult when<TResult extends Object?>({
|
||||
required TResult Function() started,
|
||||
required TResult Function(DateTime date) getDaySales,
|
||||
required TResult Function(DateTime startDate, DateTime endDate)
|
||||
getRangeDateSales,
|
||||
}) {
|
||||
return getDaySales(date);
|
||||
}
|
||||
@ -277,7 +261,6 @@ class _$GetDaySalesImpl implements _GetDaySales {
|
||||
TResult? whenOrNull<TResult extends Object?>({
|
||||
TResult? Function()? started,
|
||||
TResult? Function(DateTime date)? getDaySales,
|
||||
TResult? Function(DateTime startDate, DateTime endDate)? getRangeDateSales,
|
||||
}) {
|
||||
return getDaySales?.call(date);
|
||||
}
|
||||
@ -287,7 +270,6 @@ class _$GetDaySalesImpl implements _GetDaySales {
|
||||
TResult maybeWhen<TResult extends Object?>({
|
||||
TResult Function()? started,
|
||||
TResult Function(DateTime date)? getDaySales,
|
||||
TResult Function(DateTime startDate, DateTime endDate)? getRangeDateSales,
|
||||
required TResult orElse(),
|
||||
}) {
|
||||
if (getDaySales != null) {
|
||||
@ -301,7 +283,6 @@ class _$GetDaySalesImpl implements _GetDaySales {
|
||||
TResult map<TResult extends Object?>({
|
||||
required TResult Function(_Started value) started,
|
||||
required TResult Function(_GetDaySales value) getDaySales,
|
||||
required TResult Function(_GetRangeDateSales value) getRangeDateSales,
|
||||
}) {
|
||||
return getDaySales(this);
|
||||
}
|
||||
@ -311,7 +292,6 @@ class _$GetDaySalesImpl implements _GetDaySales {
|
||||
TResult? mapOrNull<TResult extends Object?>({
|
||||
TResult? Function(_Started value)? started,
|
||||
TResult? Function(_GetDaySales value)? getDaySales,
|
||||
TResult? Function(_GetRangeDateSales value)? getRangeDateSales,
|
||||
}) {
|
||||
return getDaySales?.call(this);
|
||||
}
|
||||
@ -321,7 +301,6 @@ class _$GetDaySalesImpl implements _GetDaySales {
|
||||
TResult maybeMap<TResult extends Object?>({
|
||||
TResult Function(_Started value)? started,
|
||||
TResult Function(_GetDaySales value)? getDaySales,
|
||||
TResult Function(_GetRangeDateSales value)? getRangeDateSales,
|
||||
required TResult orElse(),
|
||||
}) {
|
||||
if (getDaySales != null) {
|
||||
@ -343,166 +322,6 @@ abstract class _GetDaySales implements DaySalesEvent {
|
||||
throw _privateConstructorUsedError;
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract class _$$GetRangeDateSalesImplCopyWith<$Res> {
|
||||
factory _$$GetRangeDateSalesImplCopyWith(_$GetRangeDateSalesImpl value,
|
||||
$Res Function(_$GetRangeDateSalesImpl) then) =
|
||||
__$$GetRangeDateSalesImplCopyWithImpl<$Res>;
|
||||
@useResult
|
||||
$Res call({DateTime startDate, DateTime endDate});
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
class __$$GetRangeDateSalesImplCopyWithImpl<$Res>
|
||||
extends _$DaySalesEventCopyWithImpl<$Res, _$GetRangeDateSalesImpl>
|
||||
implements _$$GetRangeDateSalesImplCopyWith<$Res> {
|
||||
__$$GetRangeDateSalesImplCopyWithImpl(_$GetRangeDateSalesImpl _value,
|
||||
$Res Function(_$GetRangeDateSalesImpl) _then)
|
||||
: super(_value, _then);
|
||||
|
||||
/// Create a copy of DaySalesEvent
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@pragma('vm:prefer-inline')
|
||||
@override
|
||||
$Res call({
|
||||
Object? startDate = null,
|
||||
Object? endDate = null,
|
||||
}) {
|
||||
return _then(_$GetRangeDateSalesImpl(
|
||||
null == startDate
|
||||
? _value.startDate
|
||||
: startDate // ignore: cast_nullable_to_non_nullable
|
||||
as DateTime,
|
||||
null == endDate
|
||||
? _value.endDate
|
||||
: endDate // ignore: cast_nullable_to_non_nullable
|
||||
as DateTime,
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
|
||||
class _$GetRangeDateSalesImpl implements _GetRangeDateSales {
|
||||
const _$GetRangeDateSalesImpl(this.startDate, this.endDate);
|
||||
|
||||
@override
|
||||
final DateTime startDate;
|
||||
@override
|
||||
final DateTime endDate;
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'DaySalesEvent.getRangeDateSales(startDate: $startDate, endDate: $endDate)';
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return identical(this, other) ||
|
||||
(other.runtimeType == runtimeType &&
|
||||
other is _$GetRangeDateSalesImpl &&
|
||||
(identical(other.startDate, startDate) ||
|
||||
other.startDate == startDate) &&
|
||||
(identical(other.endDate, endDate) || other.endDate == endDate));
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode => Object.hash(runtimeType, startDate, endDate);
|
||||
|
||||
/// Create a copy of DaySalesEvent
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
@override
|
||||
@pragma('vm:prefer-inline')
|
||||
_$$GetRangeDateSalesImplCopyWith<_$GetRangeDateSalesImpl> get copyWith =>
|
||||
__$$GetRangeDateSalesImplCopyWithImpl<_$GetRangeDateSalesImpl>(
|
||||
this, _$identity);
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult when<TResult extends Object?>({
|
||||
required TResult Function() started,
|
||||
required TResult Function(DateTime date) getDaySales,
|
||||
required TResult Function(DateTime startDate, DateTime endDate)
|
||||
getRangeDateSales,
|
||||
}) {
|
||||
return getRangeDateSales(startDate, endDate);
|
||||
}
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult? whenOrNull<TResult extends Object?>({
|
||||
TResult? Function()? started,
|
||||
TResult? Function(DateTime date)? getDaySales,
|
||||
TResult? Function(DateTime startDate, DateTime endDate)? getRangeDateSales,
|
||||
}) {
|
||||
return getRangeDateSales?.call(startDate, endDate);
|
||||
}
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult maybeWhen<TResult extends Object?>({
|
||||
TResult Function()? started,
|
||||
TResult Function(DateTime date)? getDaySales,
|
||||
TResult Function(DateTime startDate, DateTime endDate)? getRangeDateSales,
|
||||
required TResult orElse(),
|
||||
}) {
|
||||
if (getRangeDateSales != null) {
|
||||
return getRangeDateSales(startDate, endDate);
|
||||
}
|
||||
return orElse();
|
||||
}
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult map<TResult extends Object?>({
|
||||
required TResult Function(_Started value) started,
|
||||
required TResult Function(_GetDaySales value) getDaySales,
|
||||
required TResult Function(_GetRangeDateSales value) getRangeDateSales,
|
||||
}) {
|
||||
return getRangeDateSales(this);
|
||||
}
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult? mapOrNull<TResult extends Object?>({
|
||||
TResult? Function(_Started value)? started,
|
||||
TResult? Function(_GetDaySales value)? getDaySales,
|
||||
TResult? Function(_GetRangeDateSales value)? getRangeDateSales,
|
||||
}) {
|
||||
return getRangeDateSales?.call(this);
|
||||
}
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult maybeMap<TResult extends Object?>({
|
||||
TResult Function(_Started value)? started,
|
||||
TResult Function(_GetDaySales value)? getDaySales,
|
||||
TResult Function(_GetRangeDateSales value)? getRangeDateSales,
|
||||
required TResult orElse(),
|
||||
}) {
|
||||
if (getRangeDateSales != null) {
|
||||
return getRangeDateSales(this);
|
||||
}
|
||||
return orElse();
|
||||
}
|
||||
}
|
||||
|
||||
abstract class _GetRangeDateSales implements DaySalesEvent {
|
||||
const factory _GetRangeDateSales(
|
||||
final DateTime startDate, final DateTime endDate) =
|
||||
_$GetRangeDateSalesImpl;
|
||||
|
||||
DateTime get startDate;
|
||||
DateTime get endDate;
|
||||
|
||||
/// Create a copy of DaySalesEvent
|
||||
/// with the given fields replaced by the non-null parameter values.
|
||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||
_$$GetRangeDateSalesImplCopyWith<_$GetRangeDateSalesImpl> get copyWith =>
|
||||
throw _privateConstructorUsedError;
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
mixin _$DaySalesState {
|
||||
@optionalTypeArgs
|
||||
|
||||
@ -6,8 +6,4 @@ class DaySalesEvent with _$DaySalesEvent {
|
||||
const factory DaySalesEvent.getDaySales(
|
||||
DateTime date,
|
||||
) = _GetDaySales;
|
||||
const factory DaySalesEvent.getRangeDateSales(
|
||||
DateTime startDate,
|
||||
DateTime endDate,
|
||||
) = _GetRangeDateSales;
|
||||
}
|
||||
|
||||
@ -1,123 +0,0 @@
|
||||
import 'package:enaklo_pos/core/components/buttons.dart';
|
||||
import 'package:enaklo_pos/core/components/custom_modal_dialog.dart';
|
||||
import 'package:enaklo_pos/core/components/spaces.dart';
|
||||
import 'package:enaklo_pos/core/constants/colors.dart';
|
||||
import 'package:enaklo_pos/core/extensions/build_context_ext.dart';
|
||||
import 'package:enaklo_pos/core/extensions/date_time_ext.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class SalesFilterDialog extends StatefulWidget {
|
||||
final DateTime startDate;
|
||||
final DateTime endDate;
|
||||
final void Function(DateTime start, DateTime end) onDateRangeChanged;
|
||||
const SalesFilterDialog(
|
||||
{super.key,
|
||||
required this.startDate,
|
||||
required this.endDate,
|
||||
required this.onDateRangeChanged});
|
||||
|
||||
@override
|
||||
State<SalesFilterDialog> createState() => _SalesFilterDialogState();
|
||||
}
|
||||
|
||||
class _SalesFilterDialogState extends State<SalesFilterDialog> {
|
||||
late DateTimeRange selectedDateRange;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
selectedDateRange =
|
||||
DateTimeRange(start: widget.startDate, end: widget.endDate);
|
||||
super.initState();
|
||||
}
|
||||
|
||||
Future<void> _selectDateRange(BuildContext context) async {
|
||||
final DateTimeRange? picked = await showDateRangePicker(
|
||||
context: context,
|
||||
initialDateRange: selectedDateRange,
|
||||
firstDate: DateTime(2020),
|
||||
lastDate: DateTime(2100),
|
||||
builder: (context, child) {
|
||||
return Theme(
|
||||
data: Theme.of(context).copyWith(
|
||||
colorScheme: ColorScheme.light(
|
||||
primary: Colors.blue, // Header color
|
||||
onPrimary: Colors.white, // Header text color
|
||||
onSurface: Colors.black, // Body text color
|
||||
),
|
||||
),
|
||||
child: child!,
|
||||
);
|
||||
},
|
||||
);
|
||||
|
||||
if (picked != null) {
|
||||
setState(() {
|
||||
selectedDateRange = picked;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return CustomModalDialog(
|
||||
title: 'Filter',
|
||||
contentPadding: const EdgeInsets.all(16.0),
|
||||
child: Column(
|
||||
children: [
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
'Periode',
|
||||
style: TextStyle(
|
||||
color: AppColors.black,
|
||||
fontSize: 16,
|
||||
fontWeight: FontWeight.w600,
|
||||
),
|
||||
),
|
||||
GestureDetector(
|
||||
onTap: () async => await _selectDateRange(context),
|
||||
child: Container(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16, vertical: 8),
|
||||
margin: EdgeInsets.only(top: 8),
|
||||
decoration: BoxDecoration(
|
||||
border: Border.all(
|
||||
color: AppColors.primary,
|
||||
),
|
||||
borderRadius: BorderRadius.circular(8),
|
||||
),
|
||||
child: Row(
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
'${selectedDateRange.start.toFormattedDate2()} - ${selectedDateRange.end.toFormattedDate2()}',
|
||||
style: TextStyle(
|
||||
color: AppColors.black,
|
||||
fontSize: 14,
|
||||
fontWeight: FontWeight.w600,
|
||||
),
|
||||
),
|
||||
),
|
||||
Icon(
|
||||
Icons.calendar_month_outlined,
|
||||
color: AppColors.primary,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
SpaceHeight(24),
|
||||
Button.filled(
|
||||
onPressed: () {
|
||||
context.pop();
|
||||
widget.onDateRangeChanged(
|
||||
selectedDateRange.start, selectedDateRange.end);
|
||||
},
|
||||
label: 'Terapkan'),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -1,18 +1,12 @@
|
||||
import 'package:enaklo_pos/core/components/buttons.dart';
|
||||
import 'package:enaklo_pos/core/components/spaces.dart';
|
||||
import 'package:enaklo_pos/presentation/home/models/order_model.dart';
|
||||
import 'package:enaklo_pos/presentation/sales/blocs/day_sales/day_sales_bloc.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';
|
||||
import 'package:enaklo_pos/presentation/sales/widgets/sales_payment.dart';
|
||||
import 'package:enaklo_pos/presentation/sales/widgets/sales_right_title.dart';
|
||||
import 'dart:developer';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:enaklo_pos/core/constants/colors.dart';
|
||||
import 'package:enaklo_pos/core/extensions/date_time_ext.dart';
|
||||
import 'package:enaklo_pos/presentation/sales/blocs/day_sales/day_sales_bloc.dart';
|
||||
|
||||
import '../../../core/constants/colors.dart';
|
||||
import '../widgets/sales_card.dart';
|
||||
import '../widgets/sales_title.dart';
|
||||
import '../widgets/sales_widget.dart';
|
||||
|
||||
class SalesPage extends StatefulWidget {
|
||||
const SalesPage({super.key});
|
||||
@ -22,178 +16,110 @@ class SalesPage extends StatefulWidget {
|
||||
}
|
||||
|
||||
class _SalesPageState extends State<SalesPage> {
|
||||
DateTime startDate = DateTime.now();
|
||||
DateTime endDate = DateTime.now();
|
||||
OrderModel? orderDetail;
|
||||
|
||||
int _total = 0;
|
||||
String searchQuery = '';
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
context
|
||||
.read<DaySalesBloc>()
|
||||
.add(DaySalesEvent.getRangeDateSales(startDate, endDate));
|
||||
context.read<DaySalesBloc>().add(DaySalesEvent.getDaySales(DateTime.now()));
|
||||
super.initState();
|
||||
}
|
||||
|
||||
List<OrderModel> _filterOrders(List<OrderModel> orders) {
|
||||
if (searchQuery.isEmpty) {
|
||||
return orders;
|
||||
}
|
||||
|
||||
return orders.where((order) {
|
||||
final customerName = order.customerName.toLowerCase();
|
||||
final queryLower = searchQuery.toLowerCase();
|
||||
return customerName.contains(queryLower);
|
||||
}).toList();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return SafeArea(
|
||||
child: Scaffold(
|
||||
backgroundColor: AppColors.background,
|
||||
body: Row(
|
||||
children: [
|
||||
Expanded(
|
||||
flex: 2,
|
||||
child: Material(
|
||||
color: AppColors.white,
|
||||
child: Column(
|
||||
children: [
|
||||
SalesTitle(
|
||||
startDate: startDate,
|
||||
endDate: endDate,
|
||||
total: _total,
|
||||
onChanged: (value) {
|
||||
setState(() {
|
||||
searchQuery = value;
|
||||
});
|
||||
},
|
||||
onDateRangeChanged: (start, end) {
|
||||
setState(() {
|
||||
startDate = start;
|
||||
endDate = end;
|
||||
});
|
||||
|
||||
context.read<DaySalesBloc>().add(
|
||||
DaySalesEvent.getRangeDateSales(
|
||||
startDate, endDate));
|
||||
},
|
||||
),
|
||||
Expanded(
|
||||
child: BlocBuilder<DaySalesBloc, DaySalesState>(
|
||||
builder: (context, state) {
|
||||
return state.maybeWhen(
|
||||
orElse: () => const Center(
|
||||
child: CircularProgressIndicator(),
|
||||
),
|
||||
loaded: (orders) {
|
||||
final filtered = _filterOrders(orders);
|
||||
if (filtered.isEmpty) {
|
||||
return Center(
|
||||
child: Text(
|
||||
"Belum ada transaksi saat ini. ",
|
||||
style: TextStyle(
|
||||
fontSize: 16.0,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
);
|
||||
} else {
|
||||
WidgetsBinding.instance
|
||||
.addPostFrameCallback((_) {
|
||||
setState(() {
|
||||
_total = filtered.length;
|
||||
});
|
||||
});
|
||||
|
||||
return SingleChildScrollView(
|
||||
child: Column(
|
||||
children: List.generate(
|
||||
filtered.length,
|
||||
(index) => GestureDetector(
|
||||
onTap: () {
|
||||
setState(() {
|
||||
orderDetail = filtered[index];
|
||||
});
|
||||
},
|
||||
child: SalesCard(
|
||||
order: orders[index],
|
||||
isActive:
|
||||
orders[index] == orderDetail,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
},
|
||||
);
|
||||
},
|
||||
),
|
||||
),
|
||||
],
|
||||
return Padding(
|
||||
padding: const EdgeInsets.all(32),
|
||||
child: Column(
|
||||
children: [
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
const Text(
|
||||
'Apskel POS ',
|
||||
style: TextStyle(
|
||||
color: AppColors.primary,
|
||||
fontSize: 22,
|
||||
fontWeight: FontWeight.w600,
|
||||
),
|
||||
),
|
||||
),
|
||||
Expanded(
|
||||
flex: 4,
|
||||
child: orderDetail == null
|
||||
? Center(
|
||||
child: Text(
|
||||
"Belum ada order yang dipilih.",
|
||||
style: TextStyle(
|
||||
fontSize: 16.0,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
)
|
||||
: Column(
|
||||
children: [
|
||||
SalesRightTitle(
|
||||
order: orderDetail,
|
||||
actionWidget: [
|
||||
Button.outlined(
|
||||
onPressed: () {},
|
||||
label: 'Refund',
|
||||
icon: Icon(Icons.autorenew),
|
||||
),
|
||||
],
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(16.0),
|
||||
child: Column(
|
||||
children: [
|
||||
Row(
|
||||
children: [
|
||||
Expanded(
|
||||
child: SalesOrderInformation(
|
||||
order: orderDetail,
|
||||
),
|
||||
),
|
||||
SpaceWidth(16),
|
||||
Expanded(
|
||||
child: SalesDetail(
|
||||
order: orderDetail,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
SalesListOrder(
|
||||
order: orderDetail,
|
||||
),
|
||||
SalesPayment(
|
||||
order: orderDetail,
|
||||
),
|
||||
],
|
||||
Text(
|
||||
"${DateTime.now().toFormattedDate()}",
|
||||
style: const TextStyle(
|
||||
color: AppColors.subtitle,
|
||||
fontSize: 16,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(
|
||||
height: 12.0,
|
||||
),
|
||||
Expanded(
|
||||
child: BlocBuilder<DaySalesBloc, DaySalesState>(
|
||||
builder: (context, state) {
|
||||
return state.maybeWhen(
|
||||
orElse: () => const Center(
|
||||
child: CircularProgressIndicator(),
|
||||
),
|
||||
loaded: (orders) {
|
||||
log("message: ${orders.length}");
|
||||
if (orders.isEmpty) {
|
||||
return Center(
|
||||
child: Text(
|
||||
"Belum ada transaksi saat ini. ",
|
||||
style: TextStyle(
|
||||
fontSize: 16.0,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
} else {
|
||||
return SalesWidget(
|
||||
headerWidgets: _getTitleHeaderWidget(),
|
||||
orders: orders,
|
||||
);
|
||||
}
|
||||
},
|
||||
);
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
List<Widget> _getTitleHeaderWidget() {
|
||||
return [
|
||||
_getTitleItemWidget('ID', 40),
|
||||
_getTitleItemWidget('Customer', 120),
|
||||
_getTitleItemWidget('Status', 120),
|
||||
_getTitleItemWidget('Sync', 60),
|
||||
_getTitleItemWidget('Payment Status', 120),
|
||||
_getTitleItemWidget('Payment Method', 120),
|
||||
_getTitleItemWidget('Payment Amount', 120),
|
||||
_getTitleItemWidget('Sub Total', 120),
|
||||
_getTitleItemWidget('Tax', 120),
|
||||
_getTitleItemWidget('Discount', 60),
|
||||
_getTitleItemWidget('Service Charge', 120),
|
||||
_getTitleItemWidget('Total', 120),
|
||||
_getTitleItemWidget('Payment', 60),
|
||||
_getTitleItemWidget('Item', 60),
|
||||
_getTitleItemWidget('Cashier', 150),
|
||||
_getTitleItemWidget('Time', 230),
|
||||
_getTitleItemWidget('Action', 230),
|
||||
];
|
||||
}
|
||||
|
||||
Widget _getTitleItemWidget(String label, double width) {
|
||||
return Container(
|
||||
width: width,
|
||||
height: 56,
|
||||
color: AppColors.primary,
|
||||
alignment: Alignment.centerLeft,
|
||||
child: Center(
|
||||
child: Text(
|
||||
label,
|
||||
style: const TextStyle(
|
||||
color: Colors.white,
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
@ -1,127 +0,0 @@
|
||||
import 'dart:developer';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:enaklo_pos/core/constants/colors.dart';
|
||||
import 'package:enaklo_pos/core/extensions/date_time_ext.dart';
|
||||
import 'package:enaklo_pos/presentation/sales/blocs/day_sales/day_sales_bloc.dart';
|
||||
|
||||
import '../widgets/sales_widget.dart';
|
||||
|
||||
class SalesPage extends StatefulWidget {
|
||||
const SalesPage({super.key});
|
||||
|
||||
@override
|
||||
State<SalesPage> createState() => _SalesPageState();
|
||||
}
|
||||
|
||||
class _SalesPageState extends State<SalesPage> {
|
||||
@override
|
||||
void initState() {
|
||||
context.read<DaySalesBloc>().add(DaySalesEvent.getDaySales(DateTime.now()));
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.all(32),
|
||||
child: Column(
|
||||
children: [
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
const Text(
|
||||
'Apskel POS ',
|
||||
style: TextStyle(
|
||||
color: AppColors.primary,
|
||||
fontSize: 22,
|
||||
fontWeight: FontWeight.w600,
|
||||
),
|
||||
),
|
||||
Text(
|
||||
"${DateTime.now().toFormattedDate()}",
|
||||
style: const TextStyle(
|
||||
color: AppColors.subtitle,
|
||||
fontSize: 16,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(
|
||||
height: 12.0,
|
||||
),
|
||||
Expanded(
|
||||
child: BlocBuilder<DaySalesBloc, DaySalesState>(
|
||||
builder: (context, state) {
|
||||
return state.maybeWhen(
|
||||
orElse: () => const Center(
|
||||
child: CircularProgressIndicator(),
|
||||
),
|
||||
loaded: (orders) {
|
||||
log("message: ${orders.length}");
|
||||
if (orders.isEmpty) {
|
||||
return Center(
|
||||
child: Text(
|
||||
"Belum ada transaksi saat ini. ",
|
||||
style: TextStyle(
|
||||
fontSize: 16.0,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
);
|
||||
} else {
|
||||
return SalesWidget(
|
||||
headerWidgets: _getTitleHeaderWidget(),
|
||||
orders: orders,
|
||||
);
|
||||
}
|
||||
},
|
||||
);
|
||||
},
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
List<Widget> _getTitleHeaderWidget() {
|
||||
return [
|
||||
_getTitleItemWidget('ID', 40),
|
||||
_getTitleItemWidget('Customer', 120),
|
||||
_getTitleItemWidget('Status', 120),
|
||||
_getTitleItemWidget('Sync', 60),
|
||||
_getTitleItemWidget('Payment Status', 120),
|
||||
_getTitleItemWidget('Payment Method', 120),
|
||||
_getTitleItemWidget('Payment Amount', 120),
|
||||
_getTitleItemWidget('Sub Total', 120),
|
||||
_getTitleItemWidget('Tax', 120),
|
||||
_getTitleItemWidget('Discount', 60),
|
||||
_getTitleItemWidget('Service Charge', 120),
|
||||
_getTitleItemWidget('Total', 120),
|
||||
_getTitleItemWidget('Payment', 60),
|
||||
_getTitleItemWidget('Item', 60),
|
||||
_getTitleItemWidget('Cashier', 150),
|
||||
_getTitleItemWidget('Time', 230),
|
||||
_getTitleItemWidget('Action', 230),
|
||||
];
|
||||
}
|
||||
|
||||
Widget _getTitleItemWidget(String label, double width) {
|
||||
return Container(
|
||||
width: width,
|
||||
height: 56,
|
||||
color: AppColors.primary,
|
||||
alignment: Alignment.centerLeft,
|
||||
child: Center(
|
||||
child: Text(
|
||||
label,
|
||||
style: const TextStyle(
|
||||
color: Colors.white,
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -1,113 +0,0 @@
|
||||
import 'package:enaklo_pos/core/constants/colors.dart';
|
||||
import 'package:enaklo_pos/core/extensions/date_time_ext.dart';
|
||||
import 'package:enaklo_pos/core/extensions/int_ext.dart';
|
||||
import 'package:enaklo_pos/presentation/home/models/order_model.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class SalesCard extends StatelessWidget {
|
||||
final OrderModel order;
|
||||
final bool isActive;
|
||||
|
||||
const SalesCard({
|
||||
super.key,
|
||||
required this.order,
|
||||
required this.isActive,
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container(
|
||||
margin: const EdgeInsets.symmetric(horizontal: 16, vertical: 10),
|
||||
decoration: BoxDecoration(
|
||||
color: isActive ? AppColors.primary.withOpacity(0.1) : AppColors.white,
|
||||
border:
|
||||
Border.all(color: isActive ? AppColors.primary : AppColors.stroke),
|
||||
borderRadius: BorderRadius.circular(8),
|
||||
),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(16),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
CircleAvatar(
|
||||
radius: 22,
|
||||
backgroundColor: AppColors.primary,
|
||||
child: Icon(Icons.person, color: Colors.white),
|
||||
),
|
||||
const SizedBox(width: 12),
|
||||
Expanded(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
order.customerName == ""
|
||||
? "Anonim"
|
||||
: order.customerName,
|
||||
style: const TextStyle(
|
||||
fontSize: 16,
|
||||
fontWeight: FontWeight.w600,
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 4),
|
||||
Row(
|
||||
children: [
|
||||
Icon(Icons.table_bar, size: 16, color: Colors.grey),
|
||||
const SizedBox(width: 4),
|
||||
Text(
|
||||
'Meja ${order.tableNumber}',
|
||||
style: TextStyle(color: Colors.grey[600]),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
Container(
|
||||
padding:
|
||||
const EdgeInsets.symmetric(horizontal: 12, vertical: 6),
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.green.withOpacity(0.15),
|
||||
borderRadius: BorderRadius.circular(16),
|
||||
),
|
||||
child: Text(
|
||||
order.status.toUpperCase(),
|
||||
style: TextStyle(
|
||||
color: Colors.green,
|
||||
fontWeight: FontWeight.w600,
|
||||
fontSize: 12,
|
||||
letterSpacing: 0.5,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
order.total.currencyFormatRpV2,
|
||||
style: TextStyle(
|
||||
fontSize: 18,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: AppColors.primary,
|
||||
),
|
||||
),
|
||||
Text(
|
||||
DateTime.parse(order.transactionTime).toFormattedDate2(),
|
||||
style: TextStyle(
|
||||
color: AppColors.black,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -1,76 +0,0 @@
|
||||
import 'package:enaklo_pos/core/constants/colors.dart';
|
||||
import 'package:enaklo_pos/core/extensions/date_time_ext.dart';
|
||||
import 'package:enaklo_pos/presentation/home/models/order_model.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class SalesDetail extends StatelessWidget {
|
||||
final OrderModel? order;
|
||||
const SalesDetail({super.key, this.order});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container(
|
||||
padding: const EdgeInsets.all(16),
|
||||
decoration: BoxDecoration(
|
||||
color: AppColors.white,
|
||||
borderRadius: BorderRadius.circular(8),
|
||||
),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
'Detail',
|
||||
style: TextStyle(
|
||||
color: AppColors.black,
|
||||
fontSize: 16,
|
||||
fontWeight: FontWeight.w600,
|
||||
),
|
||||
),
|
||||
_item(
|
||||
title: 'Pelanggan',
|
||||
value: order?.customerName ?? "-",
|
||||
),
|
||||
_item(
|
||||
title: 'Waktu',
|
||||
value:
|
||||
DateTime.parse(order?.transactionTime ?? "").toFormattedDate3(),
|
||||
),
|
||||
_item(
|
||||
title: 'Status',
|
||||
value: order?.paymentStatus ?? "-",
|
||||
),
|
||||
_item(
|
||||
title: 'Jenis Order',
|
||||
value: order?.paymentMethod ?? "-",
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Padding _item({
|
||||
required String title,
|
||||
required String value,
|
||||
}) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.only(top: 12),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
title,
|
||||
style: const TextStyle(
|
||||
fontSize: 14,
|
||||
),
|
||||
),
|
||||
Text(
|
||||
value,
|
||||
style: const TextStyle(
|
||||
fontSize: 14,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -1,88 +0,0 @@
|
||||
import 'package:enaklo_pos/core/constants/colors.dart';
|
||||
import 'package:enaklo_pos/presentation/home/models/order_model.dart';
|
||||
import 'package:enaklo_pos/presentation/home/models/product_quantity.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class SalesListOrder extends StatelessWidget {
|
||||
final OrderModel? order;
|
||||
const SalesListOrder({super.key, this.order});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container(
|
||||
margin: const EdgeInsets.only(top: 16),
|
||||
decoration: BoxDecoration(
|
||||
color: AppColors.white,
|
||||
borderRadius: BorderRadius.circular(8),
|
||||
),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Container(
|
||||
padding: const EdgeInsets.all(16),
|
||||
width: double.infinity,
|
||||
decoration: const BoxDecoration(
|
||||
border: Border(
|
||||
bottom: BorderSide(color: AppColors.background),
|
||||
),
|
||||
),
|
||||
child: Text(
|
||||
'Daftar Pembelian',
|
||||
style: TextStyle(
|
||||
color: AppColors.black,
|
||||
fontSize: 16,
|
||||
fontWeight: FontWeight.w600,
|
||||
),
|
||||
),
|
||||
),
|
||||
Column(
|
||||
children: List.generate(
|
||||
order?.orderItems.length ?? 0,
|
||||
(index) => _item(order!.orderItems[index]),
|
||||
).toList(),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Padding _item(ProductQuantity product) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.symmetric(vertical: 12, horizontal: 16)
|
||||
.copyWith(bottom: 0),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Column(
|
||||
children: [
|
||||
Text(
|
||||
product.product.name ?? '',
|
||||
style: const TextStyle(
|
||||
fontSize: 14,
|
||||
),
|
||||
),
|
||||
Text(
|
||||
product.product.price ?? '',
|
||||
style: const TextStyle(
|
||||
fontSize: 14,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
Text(
|
||||
'X${product.quantity}',
|
||||
style: const TextStyle(
|
||||
fontSize: 14,
|
||||
),
|
||||
),
|
||||
Text(
|
||||
product.product.price ?? '',
|
||||
style: const TextStyle(
|
||||
fontSize: 14,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -1,76 +0,0 @@
|
||||
import 'package:enaklo_pos/core/constants/colors.dart';
|
||||
import 'package:enaklo_pos/core/extensions/date_time_ext.dart';
|
||||
import 'package:enaklo_pos/presentation/home/models/order_model.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class SalesOrderInformation extends StatelessWidget {
|
||||
final OrderModel? order;
|
||||
const SalesOrderInformation({super.key, this.order});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container(
|
||||
padding: const EdgeInsets.all(16),
|
||||
decoration: BoxDecoration(
|
||||
color: AppColors.white,
|
||||
borderRadius: BorderRadius.circular(8),
|
||||
),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
'Informasi Pesanan',
|
||||
style: TextStyle(
|
||||
color: AppColors.black,
|
||||
fontSize: 16,
|
||||
fontWeight: FontWeight.w600,
|
||||
),
|
||||
),
|
||||
_item(
|
||||
title: 'No. Order',
|
||||
value: "${order?.id}",
|
||||
),
|
||||
_item(
|
||||
title: 'Tanggal',
|
||||
value:
|
||||
DateTime.parse(order?.transactionTime ?? "").toFormattedDate3(),
|
||||
),
|
||||
_item(
|
||||
title: 'Kasir',
|
||||
value: order?.namaKasir ?? "-",
|
||||
),
|
||||
_item(
|
||||
title: 'Jenis Order',
|
||||
value: order?.orderType.value ?? "-",
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Padding _item({
|
||||
required String title,
|
||||
required String value,
|
||||
}) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.only(top: 12),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
title,
|
||||
style: const TextStyle(
|
||||
fontSize: 14,
|
||||
),
|
||||
),
|
||||
Text(
|
||||
value,
|
||||
style: const TextStyle(
|
||||
fontSize: 14,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -1,99 +0,0 @@
|
||||
import 'package:enaklo_pos/core/components/dashed_divider.dart';
|
||||
import 'package:enaklo_pos/core/components/spaces.dart';
|
||||
import 'package:enaklo_pos/core/constants/colors.dart';
|
||||
import 'package:enaklo_pos/core/extensions/int_ext.dart';
|
||||
import 'package:enaklo_pos/presentation/home/models/order_model.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class SalesPayment extends StatelessWidget {
|
||||
final OrderModel? order;
|
||||
const SalesPayment({super.key, this.order});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container(
|
||||
padding: const EdgeInsets.all(16),
|
||||
margin: const EdgeInsets.only(top: 16),
|
||||
decoration: BoxDecoration(
|
||||
color: AppColors.white,
|
||||
borderRadius: BorderRadius.circular(8),
|
||||
),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
'Informasi Pesanan',
|
||||
style: TextStyle(
|
||||
color: AppColors.black,
|
||||
fontSize: 16,
|
||||
fontWeight: FontWeight.w600,
|
||||
),
|
||||
),
|
||||
SpaceHeight(12),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
'Subtotal ${order?.totalItem} Produk',
|
||||
style: const TextStyle(
|
||||
fontSize: 16,
|
||||
fontWeight: FontWeight.w600,
|
||||
),
|
||||
),
|
||||
Text(
|
||||
(order?.subTotal)?.currencyFormatRp ?? "0",
|
||||
style: const TextStyle(
|
||||
fontSize: 16,
|
||||
fontWeight: FontWeight.w600,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
SpaceHeight(12),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
'Pajak (11%)',
|
||||
style: const TextStyle(
|
||||
fontSize: 16,
|
||||
),
|
||||
),
|
||||
Text(
|
||||
(order?.tax)?.currencyFormatRp ?? "0",
|
||||
style: const TextStyle(
|
||||
fontSize: 16,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
SpaceHeight(12),
|
||||
DashedDivider(
|
||||
color: AppColors.stroke,
|
||||
),
|
||||
SpaceHeight(12),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
'Total',
|
||||
style: const TextStyle(
|
||||
fontSize: 18,
|
||||
fontWeight: FontWeight.w700,
|
||||
),
|
||||
),
|
||||
Text(
|
||||
(order?.total)?.currencyFormatRp ?? "0",
|
||||
style: const TextStyle(
|
||||
color: AppColors.primary,
|
||||
fontSize: 18,
|
||||
fontWeight: FontWeight.w700,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -1,43 +0,0 @@
|
||||
import 'package:enaklo_pos/core/constants/colors.dart';
|
||||
import 'package:enaklo_pos/core/extensions/build_context_ext.dart';
|
||||
import 'package:enaklo_pos/presentation/home/models/order_model.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class SalesRightTitle extends StatelessWidget {
|
||||
final OrderModel? order;
|
||||
final List<Widget>? actionWidget;
|
||||
const SalesRightTitle({super.key, this.order, this.actionWidget});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container(
|
||||
height: context.deviceHeight * 0.1,
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 12.0),
|
||||
decoration: BoxDecoration(
|
||||
color: AppColors.white,
|
||||
border: Border(
|
||||
bottom: BorderSide(
|
||||
color: AppColors.background,
|
||||
width: 1.0,
|
||||
),
|
||||
),
|
||||
),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Detail Pesanan #${order?.id}",
|
||||
style: TextStyle(
|
||||
color: AppColors.black,
|
||||
fontSize: 20,
|
||||
fontWeight: FontWeight.w600,
|
||||
),
|
||||
),
|
||||
),
|
||||
if (actionWidget != null) ...actionWidget!,
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -1,146 +0,0 @@
|
||||
import 'package:enaklo_pos/core/components/components.dart';
|
||||
import 'package:enaklo_pos/core/constants/colors.dart';
|
||||
import 'package:enaklo_pos/core/extensions/build_context_ext.dart';
|
||||
import 'package:enaklo_pos/core/extensions/date_time_ext.dart';
|
||||
import 'package:enaklo_pos/presentation/sales/dialog/filter_dialog.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class SalesTitle extends StatelessWidget {
|
||||
final DateTime startDate;
|
||||
final DateTime endDate;
|
||||
final int total;
|
||||
final Function(String) onChanged;
|
||||
final void Function(DateTime start, DateTime end) onDateRangeChanged;
|
||||
|
||||
const SalesTitle(
|
||||
{super.key,
|
||||
required this.startDate,
|
||||
required this.endDate,
|
||||
required this.onChanged,
|
||||
required this.total,
|
||||
required this.onDateRangeChanged});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Column(
|
||||
children: [
|
||||
Container(
|
||||
height: context.deviceHeight * 0.1,
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 12.0),
|
||||
decoration: BoxDecoration(
|
||||
color: AppColors.white,
|
||||
border: Border(
|
||||
bottom: BorderSide(
|
||||
color: AppColors.background,
|
||||
width: 1.0,
|
||||
),
|
||||
),
|
||||
),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
GestureDetector(
|
||||
onTap: () => context.pop(),
|
||||
child: Icon(
|
||||
Icons.arrow_back,
|
||||
color: AppColors.primary,
|
||||
size: 24,
|
||||
),
|
||||
),
|
||||
SpaceWidth(16),
|
||||
Expanded(
|
||||
child: Text(
|
||||
"Daftar Pesanan",
|
||||
style: TextStyle(
|
||||
color: AppColors.black,
|
||||
fontSize: 20,
|
||||
fontWeight: FontWeight.w600,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
Container(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
horizontal: 16.0,
|
||||
vertical: 12.0,
|
||||
),
|
||||
decoration: BoxDecoration(
|
||||
color: AppColors.white,
|
||||
border: Border(
|
||||
bottom: BorderSide(
|
||||
color: AppColors.background,
|
||||
width: 1.0,
|
||||
),
|
||||
),
|
||||
),
|
||||
child: Column(
|
||||
children: [
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
startDate.toFormattedDate2() == endDate.toFormattedDate2()
|
||||
? startDate.toFormattedDate2()
|
||||
: '${startDate.toFormattedDate2()} - ${endDate.toFormattedDate2()}',
|
||||
style: TextStyle(
|
||||
color: AppColors.black,
|
||||
fontWeight: FontWeight.w600,
|
||||
),
|
||||
),
|
||||
Text(
|
||||
'$total Pesanan',
|
||||
style: TextStyle(
|
||||
color: AppColors.black,
|
||||
fontWeight: FontWeight.w600,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
SpaceHeight(16),
|
||||
Row(
|
||||
children: [
|
||||
Expanded(
|
||||
child: TextFormField(
|
||||
onChanged: onChanged,
|
||||
decoration: InputDecoration(
|
||||
prefixIcon: Icon(
|
||||
Icons.search,
|
||||
),
|
||||
hintText: 'Cari Pesanan',
|
||||
),
|
||||
),
|
||||
),
|
||||
SpaceWidth(12),
|
||||
GestureDetector(
|
||||
onTap: () => showDialog(
|
||||
context: context,
|
||||
builder: (context) => SalesFilterDialog(
|
||||
startDate: startDate,
|
||||
endDate: endDate,
|
||||
onDateRangeChanged: onDateRangeChanged,
|
||||
),
|
||||
),
|
||||
child: Container(
|
||||
padding: const EdgeInsets.all(12),
|
||||
decoration: BoxDecoration(
|
||||
color: AppColors.primary,
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
),
|
||||
child: Icon(
|
||||
Icons.filter_list_outlined,
|
||||
color: AppColors.white,
|
||||
size: 24,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user