|
@@ -1,3 +1,4 @@
|
|
|
+import 'package:conalep_pos/models/mesa_model.dart';
|
|
|
import 'package:conalep_pos/models/models.dart';
|
|
|
import 'package:conalep_pos/themes/themes.dart';
|
|
|
import 'package:conalep_pos/viewmodels/mesa_view_model.dart';
|
|
@@ -20,6 +21,8 @@ class _PedidoMesaScreenState extends State<PedidoMesaScreen> {
|
|
|
final _busqueda = TextEditingController(text: '');
|
|
|
DateTime? fechaInicio;
|
|
|
DateTime? fechaFin;
|
|
|
+ List<DropdownMenuItem<int>> listaMesas = [];
|
|
|
+ int? selectedMesa = 0;
|
|
|
ScrollController horizontalScrollController = ScrollController();
|
|
|
|
|
|
@override
|
|
@@ -28,7 +31,31 @@ class _PedidoMesaScreenState extends State<PedidoMesaScreen> {
|
|
|
WidgetsBinding.instance.addPostFrameCallback((_) {
|
|
|
Provider.of<PedidoViewModel>(context, listen: false)
|
|
|
.fetchLocalMesaPedidosForScreen();
|
|
|
- Provider.of<MesaViewModel>(context, listen: false).fetchLocalAll();
|
|
|
+ final mvm = Provider.of<MesaViewModel>(context, listen: false);
|
|
|
+ // Provider.of<MesaViewModel>(context, listen: false).fetchLocalAll();
|
|
|
+ final mesas = mvm.mesas;
|
|
|
+ if (mesas.isNotEmpty) {
|
|
|
+ mesas.sort((a, b) => a.nombre!.compareTo(b.nombre!));
|
|
|
+ listaMesas = mesas
|
|
|
+ .map(
|
|
|
+ (mesa) => DropdownMenuItem<int>(
|
|
|
+ value: mesa.id,
|
|
|
+ child: Text(
|
|
|
+ '${mesa.clave} - ${mesa.nombre}',
|
|
|
+ style: const TextStyle(color: Colors.black),
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ )
|
|
|
+ .toList();
|
|
|
+ }
|
|
|
+
|
|
|
+ listaMesas.add(DropdownMenuItem<int>(
|
|
|
+ value: 0,
|
|
|
+ child: Text(
|
|
|
+ 'Seleccionar Mesa',
|
|
|
+ style: const TextStyle(color: Colors.black),
|
|
|
+ ),
|
|
|
+ ));
|
|
|
});
|
|
|
}
|
|
|
|
|
@@ -68,8 +95,9 @@ class _PedidoMesaScreenState extends State<PedidoMesaScreen> {
|
|
|
_busqueda.clear();
|
|
|
fechaInicio = null;
|
|
|
fechaFin = null;
|
|
|
+ selectedMesa = 0;
|
|
|
Provider.of<PedidoViewModel>(context, listen: false)
|
|
|
- .fetchLocalPedidosForScreen();
|
|
|
+ .fetchLocalMesaPedidosForScreen();
|
|
|
});
|
|
|
}
|
|
|
|
|
@@ -192,7 +220,10 @@ class _PedidoMesaScreenState extends State<PedidoMesaScreen> {
|
|
|
onTap: () => go(item),
|
|
|
),
|
|
|
DataCell(
|
|
|
- Text(Provider.of<MesaViewModel>(context, listen: false).fetchLocalById(idMesa: item.idMesa).nombre.toString()),
|
|
|
+ Text(Provider.of<MesaViewModel>(context, listen: false)
|
|
|
+ .fetchLocalById(idMesa: item.idMesa)
|
|
|
+ .nombre
|
|
|
+ .toString()),
|
|
|
onTap: () => go(item),
|
|
|
),
|
|
|
/* DataCell(
|
|
@@ -429,7 +460,7 @@ class _PedidoMesaScreenState extends State<PedidoMesaScreen> {
|
|
|
return Row(
|
|
|
children: [
|
|
|
Expanded(
|
|
|
- flex: 3,
|
|
|
+ flex: 4,
|
|
|
child: AppTextField(
|
|
|
prefixIcon: const Icon(Icons.search),
|
|
|
etiqueta: 'Búsqueda por folio...',
|
|
@@ -439,7 +470,7 @@ class _PedidoMesaScreenState extends State<PedidoMesaScreen> {
|
|
|
),
|
|
|
const SizedBox(width: 5),
|
|
|
Expanded(
|
|
|
- flex: 3,
|
|
|
+ flex: 4,
|
|
|
child: clase.FechaSelectWidget(
|
|
|
fecha: fechaInicio,
|
|
|
onFechaChanged: (d) {
|
|
@@ -453,7 +484,7 @@ class _PedidoMesaScreenState extends State<PedidoMesaScreen> {
|
|
|
),
|
|
|
const SizedBox(width: 5),
|
|
|
Expanded(
|
|
|
- flex: 3,
|
|
|
+ flex: 4,
|
|
|
child: clase.FechaSelectWidget(
|
|
|
fecha: fechaFin,
|
|
|
onFechaChanged: (d) {
|
|
@@ -465,6 +496,21 @@ class _PedidoMesaScreenState extends State<PedidoMesaScreen> {
|
|
|
context: context,
|
|
|
),
|
|
|
),
|
|
|
+ const SizedBox(width: 5),
|
|
|
+ Expanded(
|
|
|
+ flex: 4,
|
|
|
+ child: AppDropdownModel<int>(
|
|
|
+ etiqueta: "Mesa",
|
|
|
+ hint: 'Seleccionar',
|
|
|
+ items: listaMesas,
|
|
|
+ selectedValue: selectedMesa,
|
|
|
+ onChanged: (value) {
|
|
|
+ setState(() {
|
|
|
+ selectedMesa = value;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ ),
|
|
|
+ )
|
|
|
],
|
|
|
);
|
|
|
}
|
|
@@ -505,6 +551,9 @@ class _PedidoMesaScreenState extends State<PedidoMesaScreen> {
|
|
|
} else if (fechaInicio != null && fechaFin != null) {
|
|
|
await Provider.of<PedidoViewModel>(context, listen: false)
|
|
|
.buscarPedidosPorFecha(fechaInicio!, fechaFin!);
|
|
|
+ } else if (selectedMesa != null && selectedMesa != 0) {
|
|
|
+ await Provider.of<PedidoViewModel>(context, listen: false)
|
|
|
+ .buscarPedidosPorMesa(selectedMesa!);
|
|
|
} else {
|
|
|
ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
|
|
|
content: Text(
|