Exemple #1
0
        private void InsertarPartidas()
        {
            if (venta.VentaId <= 0)
            {
                Ambiente.Mensaje("La venta no existe");
                return;
            }

            for (int i = 0; i < 2; i++)
            {
                //partida a la lista
                var partida = new Ventap();
                partida.VentaId     = venta.VentaId;
                partida.ProductoId  = "01010101";
                partida.Descripcion = "VENTA ";
                partida.Descuento   = 0;
                partida.Cantidad    = 1;

                if (i == 0)
                {
                    partida.Precio         = TxtImporteIva16.Value;
                    partida.ClaveImpuesto1 = "002";
                    partida.Impuesto1      = 0.160000m;
                    partida.ClaveImpuesto2 = "002";
                    partida.Impuesto2      = 0.000000m;
                }
                else if (i == 1)
                {
                    partida.Precio         = TxtImporteExcento.Value;
                    partida.ClaveImpuesto1 = "002";
                    partida.Impuesto1      = 0.000000m;
                    partida.ClaveImpuesto2 = "002";
                    partida.Impuesto2      = 0.000000m;
                }

                partida.LoteId    = null;
                partida.NoLote    = null;
                partida.Caducidad = null;

                partida.PrecioCaja    = 0;
                partida.ClaveProdServ = "01010101";
                partida.ClaveUnidad   = "ACT";
                partida.Unidad        = "SYS";

                partida.TasaOcuota1      = "Tasa";
                partida.TasaOcuota2      = "Tasa";
                partida.SubTotal         = partida.Cantidad * partida.Precio;
                partida.ImporteImpuesto1 = partida.SubTotal * partida.Impuesto1;
                partida.ImporteImpuesto2 = partida.SubTotal * partida.Impuesto2;
                partida.Total            = partida.SubTotal + partida.ImporteImpuesto1 + partida.ImporteImpuesto2;

                if (ventapController.InsertOne(partida))
                {
                    venta.SubTotal += partida.SubTotal;
                    venta.Impuesto += partida.ImporteImpuesto1 + partida.ImporteImpuesto2;
                    venta.Total     = venta.SubTotal + venta.Impuesto;
                }
            }
        }
        private void Inicializa()
        {
            //Controladores
            ventaController  = new VentaController();
            ventapController = new VentapController();

            //Listas
            ventas   = new List <Venta>();
            partidas = new List <Ventap>();

            //Objetos
            venta   = null;
            partida = null;
            moneda  = new Moneda();
            oCFDI   = new CFDI();

            //Variables
            subtotal  = 0;
            impuestos = 0;
            total     = 0;
        }
 public bool DeleteOne(Ventap o)
 {
     try
     {
         using (var db = new DymContext())
         {
             db.Remove(o);
             if (db.SaveChanges() > 0)
             {
                 return(true);
             }
             else
             {
                 return(false);
             }
         }
     }
     catch (Exception ex)
     {
         Ambiente.Mensaje(Ambiente.CatalgoMensajes[-1] + "@" + GetType().Name + "\n" + ex.ToString());
     }
     return(false);
 }
 public bool UpdateOne(Ventap o)
 {
     try
     {
         using (var db = new DymContext())
         {
             db.Entry(o).State = EntityState.Modified;
             if (db.SaveChanges() > 0)
             {
                 return(true);
             }
             else
             {
                 return(false);
             }
         }
     }
     catch (Exception ex)
     {
         Ambiente.Mensaje(Ambiente.CatalgoMensajes[-1] + "@" + GetType().Name + "\n" + ex.ToString());
     }
     return(false);
 }
        private void InsertaPartida()
        {
            if (producto == null && TxtProductoId.Text.Trim().Length == 0)
            {
                Ambiente.Mensaje("Producto no encontrado");
                return;
            }

            producto = productoController.SelectOne(TxtProductoId.Text.Trim());
            if (producto == null)
            {
                return;
            }

            if (venta.VentaId <= 0)
            {
                Ambiente.Mensaje("La venta no existe");
                return;
            }

            try
            {
                if ((bool)producto.Ocupado)
                {
                    Ambiente.Mensaje("Operación abortada, el articulo está bloqueado por otro proceso [INVENTARIOS, AJUSTES, AUTORIZACIONES, ETC]");
                    return;
                }
            }
            catch (Exception ex)
            {
                Ambiente.Mensaje(ex.Message);
            }

            //partida a la lista
            var partida = new Ventap();

            partida.VentaId     = venta.VentaId;
            partida.ProductoId  = producto.ProductoId;
            partida.Descripcion = producto.Descripcion;
            partida.Descuento   = 0;

            if (Ambiente.Estacion.VenderSinStock)
            {
                partida.Cantidad = 1;
            }
            else
            {
                if (HayStockSuficiente(producto, 1))
                {
                    partida.Cantidad = 1;
                }
                else
                {
                    Ambiente.Mensaje("Stock insuficiente");
                    return;
                }
            }


            partida.Precio = SeleccionaPrecio(producto, cliente);
            if (partida.Precio == 0)
            {
                Ambiente.Mensaje("Proceso abortado, el precio del artículo no puede ser cero.  \n ARTÍCULO: " + producto.ProductoId + " Verifique los precios del artículo y el precio asignado al cliente");
                return;
            }
            partida.Impuesto1 = Ambiente.GetTasaImpuesto(producto.Impuesto1Id);
            partida.Impuesto2 = Ambiente.GetTasaImpuesto(producto.Impuesto2Id);

            if (producto.TieneLote)
            {
                lote = loteController.GetLoteDisponibilidad(producto.ProductoId, 1);
                if (lote != null)
                {
                    partida.LoteId    = lote.LoteId;
                    partida.NoLote    = lote.NoLote;
                    partida.Caducidad = lote.Caducidad;
                }
                else
                {
                    Ambiente.Mensaje("Este artículo tiene control de lote, pero no hay lotes registrados. No se imprimirá el lote del artículo");
                }
            }
            else
            {
                partida.LoteId    = null;
                partida.NoLote    = null;
                partida.Caducidad = null;
            }
            partida.Costo            = producto.PrecioCompra;
            partida.PrecioCaja       = producto.PrecioCaja;
            partida.ClaveProdServ    = producto.ClaveProdServId.Trim().Length == 0 ? "01010101" : producto.ClaveProdServId.Trim();
            partida.ClaveUnidad      = producto.ClaveUnidadId.Trim().Length == 0 ? "H87" : producto.ClaveUnidadId.Trim();
            partida.Unidad           = producto.UnidadMedidaId.Trim().Length == 0 ? "SYS" : producto.UnidadMedidaId.Trim();
            partida.ClaveImpuesto1   = SeleccionaClaveImpuesto(producto, 1);
            partida.ClaveImpuesto2   = SeleccionaClaveImpuesto(producto, 2);
            partida.TasaOcuota1      = "Tasa";
            partida.TasaOcuota2      = "Tasa";
            partida.SubTotal         = partida.Cantidad * partida.Precio;
            partida.ImporteImpuesto1 = partida.SubTotal * partida.Impuesto1;
            partida.ImporteImpuesto2 = partida.SubTotal * partida.Impuesto2;
            partida.Total            = partida.SubTotal + partida.ImporteImpuesto1 + partida.ImporteImpuesto2;
            partidas.Add(partida);

            //Calcular totales de partidas y venta();
            CalculaTotales();

            // partida al grid
            Malla.Rows[SigPartida].Cells[0].Value = partida.Descripcion;
            Malla.Rows[SigPartida].Cells[1].Value = producto.Stock;
            Malla.Rows[SigPartida].Cells[2].Value = partida.Cantidad;
            Malla.Rows[SigPartida].Cells[3].Value = Math.Round(partida.Precio, 2);
            Malla.Rows[SigPartida].Cells[4].Value = partida.SubTotal;
            Malla.Rows[SigPartida].Cells[5].Value = partida.Impuesto1;
            Malla.Rows[SigPartida].Cells[6].Value = partida.Impuesto2;
            Malla.Rows[SigPartida].Cells[7].Value = partida.Total;
            Malla.Rows[SigPartida].Cells[8].Value = partida.NoLote;
            Malla.Rows[SigPartida].Cells[9].Value = partida.ProductoId;
            //Scroll to the last row.
            if (SigPartida > 10)
            {
                Malla.FirstDisplayedScrollingRowIndex = SigPartida - 10;
                Malla.Rows[SigPartida].Selected       = true;
            }



            ResetPartida();
        }