Compare commits

..

No commits in common. "e46232649577c57b55ff6cd920c94b10f6e344d1" and "ee38b6218fa6832a34ecc103850c014ddf6a4eba" have entirely different histories.

6 changed files with 24 additions and 226 deletions

View File

@ -133,12 +133,9 @@ class _PaymentAddOrderDialogState extends State<PaymentAddOrderDialog> {
state.maybeWhen( state.maybeWhen(
orElse: () {}, orElse: () {},
success: (data) { success: (data) {
context.pushReplacement( context.pushReplacement(SuccessSaveOrderPage(
SuccessSaveOrderPage( order: data,
productQuantity: widget.items, ));
order: data,
),
);
}, },
error: (message) => AppFlushbar.showError(context, message), error: (message) => AppFlushbar.showError(context, message),
); );

View File

@ -145,7 +145,6 @@ class _PaymentSaveDialogState extends State<PaymentSaveDialog> {
orElse: () {}, orElse: () {},
success: (data) { success: (data) {
context.pushReplacement(SuccessSaveOrderPage( context.pushReplacement(SuccessSaveOrderPage(
productQuantity: widget.items,
order: data, order: data,
)); ));
}, },

View File

@ -906,7 +906,6 @@ class _ConfirmPaymentPageState extends State<ConfirmPaymentPage> {
success: (data) { success: (data) {
context context
.pushReplacement(SuccessOrderPage( .pushReplacement(SuccessOrderPage(
productQuantity: items,
order: data, order: data,
)); ));
}, },

View File

@ -90,27 +90,24 @@ class _VoidDialogState extends State<VoidDialog> {
], ],
), ),
if (widget.selectedItems.isNotEmpty) if (widget.selectedItems.isNotEmpty)
Padding( Column(
padding: const EdgeInsets.only(top: 16.0), crossAxisAlignment: CrossAxisAlignment.start,
child: Column( children: [
crossAxisAlignment: CrossAxisAlignment.start, Text(
children: [ 'Pesanan yang akan di void',
Text( style: const TextStyle(
'Pesanan yang akan di void', fontSize: 14,
style: const TextStyle( fontWeight: FontWeight.w600,
fontSize: 14, color: AppColors.black,
fontWeight: FontWeight.w600,
color: AppColors.black,
),
), ),
SpaceHeight(12), ),
Column( SpaceHeight(12),
children: widget.selectedItems Column(
.map((item) => _item(context, item)) children: widget.selectedItems
.toList(), .map((item) => _item(context, item))
), .toList(),
], ),
), ],
), ),
SpaceHeight(16), SpaceHeight(16),
CustomTextField( CustomTextField(

View File

@ -1,24 +1,16 @@
import 'dart:developer';
import 'package:enaklo_pos/core/components/components.dart'; import 'package:enaklo_pos/core/components/components.dart';
import 'package:enaklo_pos/core/components/dashed_divider.dart'; import 'package:enaklo_pos/core/components/dashed_divider.dart';
import 'package:enaklo_pos/core/constants/colors.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/build_context_ext.dart';
import 'package:enaklo_pos/core/extensions/date_time_ext.dart'; import 'package:enaklo_pos/core/extensions/date_time_ext.dart';
import 'package:enaklo_pos/core/extensions/string_ext.dart'; import 'package:enaklo_pos/core/extensions/string_ext.dart';
import 'package:enaklo_pos/core/utils/printer_service.dart';
import 'package:enaklo_pos/data/dataoutputs/print_dataoutputs.dart';
import 'package:enaklo_pos/data/datasources/product_local_datasource.dart';
import 'package:enaklo_pos/data/models/response/order_response_model.dart'; import 'package:enaklo_pos/data/models/response/order_response_model.dart';
import 'package:enaklo_pos/presentation/home/models/product_quantity.dart';
import 'package:enaklo_pos/presentation/home/pages/dashboard_page.dart'; import 'package:enaklo_pos/presentation/home/pages/dashboard_page.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class SuccessOrderPage extends StatelessWidget { class SuccessOrderPage extends StatelessWidget {
final List<ProductQuantity> productQuantity;
final Order order; final Order order;
const SuccessOrderPage( const SuccessOrderPage({super.key, required this.order});
{super.key, required this.order, required this.productQuantity});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -172,96 +164,7 @@ class SuccessOrderPage extends StatelessWidget {
SpaceWidth(12), SpaceWidth(12),
Expanded( Expanded(
child: Button.filled( child: Button.filled(
onPressed: () async { onPressed: () {},
final checkerPrinter = await ProductLocalDatasource
.instance
.getPrinterByCode('checker');
final kitchenPrinter = await ProductLocalDatasource
.instance
.getPrinterByCode('kitchen');
final barPrinter = await ProductLocalDatasource
.instance
.getPrinterByCode('bar');
log("Checker printer: ${checkerPrinter?.toMap()}");
log("Kitchen printer: ${kitchenPrinter?.toMap()}");
log("Bar printer: ${barPrinter?.toMap()}");
// Checker printer
if (checkerPrinter != null) {
try {
final printValue =
await PrintDataoutputs.instance.printChecker(
productQuantity,
order.tableNumber ?? "",
order.orderNumber ?? "",
'kasir',
checkerPrinter.paper.toIntegerFromText,
order.orderType ?? "",
);
await PrinterService().printWithPrinter(
checkerPrinter, printValue, context);
} catch (e) {
log("Error printing checker: $e");
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content:
Text('Error printing checker: $e')),
);
}
}
// Kitchen printer
if (kitchenPrinter != null) {
try {
final printValue =
await PrintDataoutputs.instance.printKitchen(
productQuantity,
order.tableNumber!,
order.orderNumber ?? "",
'kasir',
kitchenPrinter.paper.toIntegerFromText,
order.orderType ?? "",
);
await PrinterService().printWithPrinter(
kitchenPrinter, printValue, context);
} catch (e) {
log("Error printing kitchen order: $e");
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text(
'Error printing kitchen order: $e')),
);
}
}
// Bar printer
if (barPrinter != null) {
try {
final printValue =
await PrintDataoutputs.instance.printBar(
productQuantity,
order.tableNumber ?? "",
order.orderNumber ?? "",
'kasir',
barPrinter.paper.toIntegerFromText,
order.orderType ?? "",
);
await PrinterService().printWithPrinter(
barPrinter, printValue, context);
} catch (e) {
log("Error printing bar order: $e");
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content:
Text('Error printing bar order: $e')),
);
}
}
},
label: 'Cetak', label: 'Cetak',
icon: Icon( icon: Icon(
Icons.print, Icons.print,

View File

@ -1,24 +1,16 @@
import 'dart:developer';
import 'package:enaklo_pos/core/components/components.dart'; import 'package:enaklo_pos/core/components/components.dart';
import 'package:enaklo_pos/core/components/dashed_divider.dart'; import 'package:enaklo_pos/core/components/dashed_divider.dart';
import 'package:enaklo_pos/core/constants/colors.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/build_context_ext.dart';
import 'package:enaklo_pos/core/extensions/date_time_ext.dart'; import 'package:enaklo_pos/core/extensions/date_time_ext.dart';
import 'package:enaklo_pos/core/extensions/string_ext.dart'; import 'package:enaklo_pos/core/extensions/string_ext.dart';
import 'package:enaklo_pos/core/utils/printer_service.dart';
import 'package:enaklo_pos/data/dataoutputs/print_dataoutputs.dart';
import 'package:enaklo_pos/data/datasources/product_local_datasource.dart';
import 'package:enaklo_pos/data/models/response/order_response_model.dart'; import 'package:enaklo_pos/data/models/response/order_response_model.dart';
import 'package:enaklo_pos/presentation/home/models/product_quantity.dart';
import 'package:enaklo_pos/presentation/home/pages/dashboard_page.dart'; import 'package:enaklo_pos/presentation/home/pages/dashboard_page.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class SuccessSaveOrderPage extends StatelessWidget { class SuccessSaveOrderPage extends StatelessWidget {
final List<ProductQuantity> productQuantity;
final Order order; final Order order;
const SuccessSaveOrderPage( const SuccessSaveOrderPage({super.key, required this.order});
{super.key, required this.order, required this.productQuantity});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -168,96 +160,7 @@ class SuccessSaveOrderPage extends StatelessWidget {
SpaceWidth(12), SpaceWidth(12),
Expanded( Expanded(
child: Button.filled( child: Button.filled(
onPressed: () async { onPressed: () {},
final checkerPrinter = await ProductLocalDatasource
.instance
.getPrinterByCode('checker');
final kitchenPrinter = await ProductLocalDatasource
.instance
.getPrinterByCode('kitchen');
final barPrinter = await ProductLocalDatasource
.instance
.getPrinterByCode('bar');
log("Checker printer: ${checkerPrinter?.toMap()}");
log("Kitchen printer: ${kitchenPrinter?.toMap()}");
log("Bar printer: ${barPrinter?.toMap()}");
// Checker printer
if (checkerPrinter != null) {
try {
final printValue =
await PrintDataoutputs.instance.printChecker(
productQuantity,
order.tableNumber ?? "",
order.orderNumber ?? "",
'kasir',
checkerPrinter.paper.toIntegerFromText,
order.orderType ?? "",
);
await PrinterService().printWithPrinter(
checkerPrinter, printValue, context);
} catch (e) {
log("Error printing checker: $e");
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content:
Text('Error printing checker: $e')),
);
}
}
// Kitchen printer
if (kitchenPrinter != null) {
try {
final printValue =
await PrintDataoutputs.instance.printKitchen(
productQuantity,
order.tableNumber!,
order.orderNumber ?? "",
'kasir',
kitchenPrinter.paper.toIntegerFromText,
order.orderType ?? "",
);
await PrinterService().printWithPrinter(
kitchenPrinter, printValue, context);
} catch (e) {
log("Error printing kitchen order: $e");
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text(
'Error printing kitchen order: $e')),
);
}
}
// Bar printer
if (barPrinter != null) {
try {
final printValue =
await PrintDataoutputs.instance.printBar(
productQuantity,
order.tableNumber ?? "",
order.orderNumber ?? "",
'kasir',
barPrinter.paper.toIntegerFromText,
order.orderType ?? "",
);
await PrinterService().printWithPrinter(
barPrinter, printValue, context);
} catch (e) {
log("Error printing bar order: $e");
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content:
Text('Error printing bar order: $e')),
);
}
}
},
label: 'Cetak', label: 'Cetak',
icon: Icon( icon: Icon(
Icons.print, Icons.print,