public NuevaVentaForm(EntComanda entComanda, PuntoVentaLandingPage puntoVentaLandingPage, String nombreComanda)
        {
            InitializeComponent();

            dgvVenta.DefaultCellStyle.Font = new Font("Arial", 12.00F, FontStyle.Regular);
            dgvVenta.RowTemplate.Height = 50;

            cargarProductos();
            cargarCombos();
            cargarBebidas();

            if(entComanda != null )
            {
                cargarComandaPrevia(entComanda.getListaProductos());
            }
            else
            {
                entComanda = new EntComanda();
                
            }

            this.puntoVentaLandingPage = puntoVentaLandingPage;
            this.entComanda = entComanda;
            this.nombreComanda = nombreComanda;
            nombreComandaLabel.Text = this.nombreComanda;
            this.entComanda.setNombreComanda(this.nombreComanda);
        }
        public WRK_VENTAS guardarNuevaVenta(EntComanda entComanda)
        {

            WRK_VENTAS      wrkVenta            = new WRK_VENTAS();
            CAT_SUCURSALES  catSucursalActual   = null;
            CAT_TIPOS_PAGOS catTiposPagosEfectivo = null;
            //Recupera la sucursal que se esta asociando a la aplicación
            catSucursalActual = catSucursalesFrontController.getSucursalByIdSucursal(DominioAppConstantes.INT_CVE_SUSUCRAL);

            catTiposPagosEfectivo = catTiposPagosFrontController.getCatTipoPagoByIntCveTipoPago(DominioAppConstantes.TIPO_PAGO_EFECTIVO);


            wrkVenta.CAT_SUCURSALES = catSucursalActual;
            wrkVenta.DT_FECHA_VENTA = System.DateTime.Now;
            //TODO  El tipo de pago por default es efectivo por el momento
            wrkVenta.INT_CVE_TIPO_PAGO = catTiposPagosEfectivo.INT_CVE_TIPO_PAGO;
            wrkVenta.NUM_MONTO_TOTAL = (float) entComanda.getCostoTotalProductos();
            Console.WriteLine("Tipo orden comanda " + entComanda.getTipoOrden());
            wrkVenta.INT_TIPO_ORDEN = entComanda.getTipoOrden();

            //using (var context = this.context)
            //{
               
                context.WRK_VENTAS.Add(wrkVenta);
                //context.SaveChanges();
                Console.WriteLine("Nueva venta almacenada " + wrkVenta.INT_CVE_VENTA);
            //}

            Console.WriteLine("Comanda almacenada con éxito");

           return wrkVenta;
        }
        public CobrarComanda(EntComanda entComanda, NuevaVentaForm nuevaVentaForm, PuntoVentaLandingPage puntoVentaLandingPage)
        {
            InitializeComponent();

            this.nuevaVentaForm = nuevaVentaForm;
            this.puntoVentaLandingPage = puntoVentaLandingPage;
            //Se establece la comanda a ser pagada
            this.entComanda = entComanda;
            totalComandaLabel.Text = "$ " + this.entComanda.getCostoTotalProductos();
            tipoPagoListBox.Items.Add("Efectivo");
            this.tipoPagoListBox.SelectedIndex = 0;
            nombreComandaLabel.Text = this.entComanda.getNombreComanda();
            inicializaTipoOrden();
        }
        public void agregarComandaEnProceso(EntComanda comanda)
        {
            //Es una comanda nueva por lo que se debe de agreagr un nuevo registro a la lista
            if( !comanda.isComandaEnListaGeneral() )
            {
                comanda.setComandaEnListaGeneral();

                listaComandasEnProceso.Add(comanda);

            }

            //Actualiza todas las comandas en la lista
            actualizarComandas();

        }
        /**
        Metodo que elimina una comanda de la lista de comandas en proceso
        **/
        public void eliminarComandaEnProceso(EntComanda comanda)
        {

            foreach(EntComanda entComandaIterada in listaComandasEnProceso)
            {
                Console.WriteLine("Comparando comandas  " + entComandaIterada.getIdentificadorComanda() + " VS  " + comanda.getIdentificadorComanda());
                if (entComandaIterada.getIdentificadorComanda() == comanda.getIdentificadorComanda())
                {
                    listaComandasEnProceso.Remove(entComandaIterada);
                    break;
                }
            }

            //Actualiza todas las comandas en la lista
            actualizarComandas();

        }
        public void guardarComandaPagada(EntComanda entComanda)
        {
           List<EntProductoComanda> listaDeProductosEnComanda = null;
         
            WRK_VENTAS wrkVenta = null;
            
            //Se almacena la nueva venta
            wrkVenta = guardarNuevaVenta(entComanda);

            listaDeProductosEnComanda = entComanda.getListaProductos();

            //Se almacena una venta nueva en la base de datos
            foreach (EntProductoComanda entProductoComanda in listaDeProductosEnComanda)
            {
                guardaDetalleVenta(wrkVenta, entProductoComanda);
                this.context.SaveChanges();
            }

            

        }