瀏覽代碼

minor fixes

c90Beretta 1 月之前
父節點
當前提交
9930f9b9f5
共有 3 個文件被更改,包括 108 次插入32 次删除
  1. 2 0
      lib/main.dart
  2. 62 0
      lib/mvvm/viewmodels/creacion_pedido_view_model.dart
  3. 44 32
      lib/mvvm/views/pedido/creacion_pedido_screen.dart

+ 2 - 0
lib/main.dart

@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
 import 'package:flutter/services.dart';
 import 'package:provider/provider.dart';
 import 'package:sqflite_common_ffi/sqflite_ffi.dart';
+import 'package:turquessa_mesas_hoster/mvvm/viewmodels/creacion_pedido_view_model.dart';
 import 'package:turquessa_mesas_hoster/mvvm/views/pedido/creacion_pedido_screen.dart';
 import 'dart:io';
 
@@ -64,6 +65,7 @@ void main() async {
       ChangeNotifierProvider(
           create: (_) => MesaViewModel(mesaRepository: mesaRepository)),
       ChangeNotifierProvider(create: (_) => CategoriaProductoViewModel()),
+      ChangeNotifierProvider(create: (_) => CreacionPedidoViewModel())
       // Agrega aquí cualquier otro provider que necesites
     ], child: const MyApp()));
   });

+ 62 - 0
lib/mvvm/viewmodels/creacion_pedido_view_model.dart

@@ -0,0 +1,62 @@
+import 'package:flutter/material.dart';
+import 'package:turquessa_mesas_hoster/core/models/categoria_producto_model.dart';
+import 'package:turquessa_mesas_hoster/core/models/media_model.dart';
+import 'package:turquessa_mesas_hoster/core/models/pedido_model.dart';
+import 'package:turquessa_mesas_hoster/core/models/producto_model.dart';
+
+class CreacionPedidoViewModel extends ChangeNotifier {
+  final List<Producto> _pedidosProvisionales = <Producto>[
+     Producto(
+      idCategoria: 1,
+      nombre: 'Café Latte',
+      descripcion: 'Café con leche y espuma',
+      imagen: 'https://example.com/cafe_latte.jpg',
+      venta: 1,
+      existencia: 50,
+      precio: 4.50,
+      verMenu: 1,
+      codigo: 'CL001',
+      descuento: '10%',
+      toping: 1,
+      topings: [
+        Producto(id: 1, nombre: 'Crema Batida', precio: 0.50),
+        Producto(id: 2, nombre: 'Chocolate', precio: 0.75),
+      ],
+      activo: 1,
+      media: [],
+      idWeb: 101,
+      sincronizado: 'Sí',
+    ),
+     Producto(
+      idCategoria: 1,
+      nombre: 'Café Latte',
+      descripcion: 'Café con leche y espuma',
+      imagen: 'https://example.com/cafe_latte.jpg',
+      venta: 1,
+      existencia: 50,
+      precio: 4.50,
+      verMenu: 1,
+      codigo: 'CL001',
+      descuento: '10%',
+      toping: 1,
+      topings: [
+        Producto(id: 1, nombre: 'Crema Batida', precio: 0.50),
+        Producto(id: 2, nombre: 'Chocolate', precio: 0.75),
+      ],
+      activo: 1,
+      media: [],
+      idWeb: 101,
+      sincronizado: 'Sí',
+    )
+  ];
+  List<Producto> get pedidosProvisionales => _pedidosProvisionales;
+
+  void addPedidoProvisional(Producto pedido) {
+    _pedidosProvisionales.add(pedido);
+    notifyListeners();
+  }
+
+  void deletePedidoProvisional(Producto pedido) {
+    _pedidosProvisionales.remove(pedido);
+  }
+}

+ 44 - 32
lib/mvvm/views/pedido/creacion_pedido_screen.dart

@@ -1,4 +1,7 @@
 import 'package:flutter/material.dart';
+import 'package:provider/provider.dart';
+import 'package:turquessa_mesas_hoster/core/models/producto_model.dart';
+import 'package:turquessa_mesas_hoster/mvvm/viewmodels/creacion_pedido_view_model.dart';
 import 'package:turquessa_mesas_hoster/utils/widgets/custom_appbar.dart';
 import 'package:turquessa_mesas_hoster/utils/widgets/navigation_rail.dart';
 
@@ -10,10 +13,19 @@ class CreacionPedido extends StatefulWidget {
 }
 
 class _CreacionPedidoState extends State<CreacionPedido> {
+  @override
+  void initState() {
+    // TODO: implement initState
+    super.initState();
+  }
+
   final _selectedIndex = 0;
 
   @override
   Widget build(BuildContext context) {
+    CreacionPedidoViewModel creacionPedidoViewModel =
+        Provider.of<CreacionPedidoViewModel>(context, listen: false);
+    List<Producto> listaPedido = creacionPedidoViewModel.pedidosProvisionales;
     return Container(
       decoration: const BoxDecoration(
           gradient: LinearGradient(
@@ -74,11 +86,11 @@ class _CreacionPedidoState extends State<CreacionPedido> {
                             columnSpacing: 10,
                             dataRowMinHeight: 40,
                             dataRowMaxHeight: 80,
-                            columns: <DataColumn>[
-                              const DataColumn(label: Text('Cant')),
-                              const DataColumn(label: Text('Nombre')),
-                              const DataColumn(label: Text('SubTotal')),
-                              const DataColumn(label: Text('Acciones')),
+                            columns: const <DataColumn>[
+                              DataColumn(label: Text('Cant')),
+                              DataColumn(label: Text('Nombre')),
+                              DataColumn(label: Text('SubTotal')),
+                              DataColumn(label: Text('Acciones')),
                             ],
                             rows: <DataRow>[
                               DataRow(selected: true, cells: <DataCell>[
@@ -89,33 +101,33 @@ class _CreacionPedidoState extends State<CreacionPedido> {
                                     icon: const Icon(Icons.pending_sharp),
                                     onPressed: () {}))
                               ]),
-                              DataRow(cells: <DataCell>[
-                                const DataCell(Text('1')),
-                                const DataCell(Text(
-                                    'Hamburguesa de Queso y Ahumado sin cebolla ni tomate')),
-                                const DataCell(Text("\$100.00")),
-                                DataCell(IconButton(
-                                    icon: const Icon(Icons.pending_sharp),
-                                    onPressed: () {}))
-                              ]),
-                              DataRow(cells: <DataCell>[
-                                const DataCell(Text('1')),
-                                const DataCell(Text(
-                                    'Hamburguesa de Queso y Ahumado sin cebolla ni tomate')),
-                                const DataCell(Text("\$100.00")),
-                                DataCell(IconButton(
-                                    icon: const Icon(Icons.pending_sharp),
-                                    onPressed: () {}))
-                              ]),
-                              DataRow(cells: <DataCell>[
-                                const DataCell(Text('1')),
-                                const DataCell(Text(
-                                    'Hamburguesa de Queso y Ahumado sin cebolla ni tomate')),
-                                const DataCell(Text("\$100.00")),
-                                DataCell(IconButton(
-                                    icon: const Icon(Icons.pending_sharp),
-                                    onPressed: () {}))
-                              ]),
+                              // DataRow(cells: <DataCell>[
+                              //   const DataCell(Text('1')),
+                              //   const DataCell(Text(
+                              //       'Hamburguesa de Queso y Ahumado sin cebolla ni tomate')),
+                              //   const DataCell(Text("\$100.00")),
+                              //   DataCell(IconButton(
+                              //       icon: const Icon(Icons.pending_sharp),
+                              //       onPressed: () {}))
+                              // ]),
+                              // DataRow(cells: <DataCell>[
+                              //   const DataCell(Text('1')),
+                              //   const DataCell(Text(
+                              //       'Hamburguesa de Queso y Ahumado sin cebolla ni tomate')),
+                              //   const DataCell(Text("\$100.00")),
+                              //   DataCell(IconButton(
+                              //       icon: const Icon(Icons.pending_sharp),
+                              //       onPressed: () {}))
+                              // ]),
+                              // DataRow(cells: <DataCell>[
+                              //   const DataCell(Text('1')),
+                              //   const DataCell(Text(
+                              //       'Hamburguesa de Queso y Ahumado sin cebolla ni tomate')),
+                              //   const DataCell(Text("\$100.00")),
+                              //   DataCell(IconButton(
+                              //       icon: const Icon(Icons.pending_sharp),
+                              //       onPressed: () {}))
+                              // ]),
                             ]),
                       ),
                       Expanded(