feat: get table

This commit is contained in:
efrilm
2025-08-03 23:53:06 +07:00
parent 8431b07057
commit 6afd62b617
14 changed files with 769 additions and 478 deletions
@@ -3,7 +3,6 @@ import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
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/presentation/table/blocs/change_position_table/change_position_table_bloc.dart';
import 'package:enaklo_pos/presentation/table/blocs/create_table/create_table_bloc.dart';
import 'package:enaklo_pos/presentation/table/blocs/get_table/get_table_bloc.dart';
@@ -94,8 +93,8 @@ class _TableManagementScreenState extends State<TableManagementScreen> {
return Stack(
children: tables.map((table) {
return Positioned(
left: table.position.dx - 116,
top: table.position.dy - 80,
left: (table.positionX ?? 0) - 116,
top: (table.positionY ?? 0) - 80,
child: BlocListener<ChangePositionTableBloc,
ChangePositionTableState>(
listener: (context, state) {
@@ -111,12 +110,12 @@ class _TableManagementScreenState extends State<TableManagementScreen> {
feedback: TableWidget(table: table),
childWhenDragging: SizedBox.shrink(),
onDragEnd: (details) {
context
.read<ChangePositionTableBloc>()
.add(ChangePositionTableEvent.changePositionTable(
tableId: table.id!,
position: details.offset,
));
// context
// .read<ChangePositionTableBloc>()
// .add(ChangePositionTableEvent.changePositionTable(
// tableId: table.id,
// position: details.offset,
// ));
},
child: TableWidget(table: table),
),
@@ -51,18 +51,18 @@ class _PaymentTablePageState extends State<PaymentTablePage> {
Future<void> _handlePostPaymentCleanup() async {
if (widget.table != null && widget.draftOrder?.id != null) {
// Update table status to available
final newTable = TableModel(
id: widget.table!.id,
tableName: widget.table!.tableName,
status: 'available',
orderId: 0,
paymentAmount: 0,
startTime: DateTime.now().toIso8601String(),
position: widget.table!.position,
);
// final newTable = TableModel(
// id: widget.table!.id,
// tableName: widget.table!.tableName,
// status: 'available',
// orderId: 0,
// paymentAmount: 0,
// startTime: DateTime.now().toIso8601String(),
// position: widget.table!.position,
// );
// Update table status
await ProductLocalDatasource.instance.updateStatusTable(newTable);
// await ProductLocalDatasource.instance.updateStatusTable(newTable);
// Remove draft order
await ProductLocalDatasource.instance
@@ -965,25 +965,25 @@ class _PaymentTablePageState extends State<PaymentTablePage> {
onPressed: () {
// Void the order
if (widget.table != null) {
final newTable = TableModel(
id: widget.table!.id,
tableName: widget
.table!.tableName,
status: 'available',
orderId: 0,
paymentAmount: 0,
startTime: DateTime.now()
.toIso8601String(),
position: widget
.table!.position,
);
context
.read<StatusTableBloc>()
.add(
StatusTableEvent
.statusTabel(
newTable),
);
// final newTable = TableModel(
// id: widget.table!.id,
// tableName: widget
// .table!.tableName,
// status: 'available',
// orderId: 0,
// paymentAmount: 0,
// startTime: DateTime.now()
// .toIso8601String(),
// position: widget
// .table!.position,
// );
// context
// .read<StatusTableBloc>()
// .add(
// StatusTableEvent
// .statusTabel(
// newTable),
// );
}
// Remove draft order from local storage
if (widget.draftOrder?.id !=
@@ -1013,21 +1013,21 @@ class _PaymentTablePageState extends State<PaymentTablePage> {
const SpaceWidth(8.0),
BlocListener<OrderBloc, OrderState>(
listener: (context, state) {
final newTable = TableModel(
id: widget.table!.id,
tableName: widget.table!.tableName,
status: 'available',
orderId: 0,
paymentAmount: 0,
startTime:
DateTime.now().toIso8601String(),
position: widget.table!.position,
);
context.read<StatusTableBloc>().add(
StatusTableEvent.statusTabel(
newTable,
),
);
// final newTable = TableModel(
// id: widget.table!.id,
// tableName: widget.table!.tableName,
// status: 'available',
// orderId: 0,
// paymentAmount: 0,
// startTime:
// DateTime.now().toIso8601String(),
// position: widget.table!.position,
// );
// context.read<StatusTableBloc>().add(
// StatusTableEvent.statusTabel(
// newTable,
// ),
// );
ProductLocalDatasource.instance
.removeDraftOrderById(
widget.draftOrder!.id!);
@@ -1160,24 +1160,24 @@ class _PaymentTablePageState extends State<PaymentTablePage> {
'uang tunai' ||
paymentMethodName ==
'cash payment') {
context.read<OrderBloc>().add(
OrderEvent.order(
items,
discount,
discountAmountFinal,
finalTax.toInt(),
0,
totalPriceController.text
.toIntegerFromText,
customerController.text,
widget.table?.id ?? 0,
'completed',
'paid',
selectedPaymentMethod
?.name ??
'Cash',
totalPriceFinal,
orderType));
// context.read<OrderBloc>().add(
// OrderEvent.order(
// items,
// discount,
// discountAmountFinal,
// finalTax.toInt(),
// 0,
// totalPriceController.text
// .toIntegerFromText,
// customerController.text,
// widget.table?.id ?? 0,
// 'completed',
// 'paid',
// selectedPaymentMethod
// ?.name ??
// 'Cash',
// totalPriceFinal,
// orderType));
await showDialog(
context: context,
@@ -1202,24 +1202,24 @@ class _PaymentTablePageState extends State<PaymentTablePage> {
await _handlePostPaymentCleanup();
} else {
log("Processing non-cash payment: ${selectedPaymentMethod?.name}");
context.read<OrderBloc>().add(
OrderEvent.order(
items,
discount,
discountAmountFinal,
finalTax.toInt(),
0,
totalPriceController.text
.toIntegerFromText,
customerController.text,
widget.table?.id ?? 0,
'completed',
'paid',
selectedPaymentMethod
?.name ??
'Unknown Payment Method',
totalPriceFinal,
orderType));
// context.read<OrderBloc>().add(
// OrderEvent.order(
// items,
// discount,
// discountAmountFinal,
// finalTax.toInt(),
// 0,
// totalPriceController.text
// .toIntegerFromText,
// customerController.text,
// widget.table?.id ?? 0,
// 'completed',
// 'paid',
// selectedPaymentMethod
// ?.name ??
// 'Unknown Payment Method',
// totalPriceFinal,
// orderType));
await showDialog(
context: context,