Пример #1
0
        private void InsertaPartida()
        {
            if (producto == null && TxtProducto.Text.Trim().Length == 0)
            {
                Ambiente.Mensaje("Producto no encontrado");
                return;
            }

            producto = productoController.SelectOne(TxtProducto.Text.Trim());


            if (producto == null)
            {
                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);
            }

            if (conceptoMovInv == null)
            {
                return;
            }



            var partida = new Devolucionp();


            if (producto.TieneLote && conceptoMovInv.Es.Equals("E"))
            {
                using (var form = new FrmLoteCaducidad(0, NCantidad.Value, producto.ProductoId, devolucion.DevolucionId, conceptoMovInv.ConceptoMovInvId))
                {
                    if (form.ShowDialog() == DialogResult.OK)
                    {
                        partida.LoteId    = form.lotes[0].LoteId;
                        partida.NoLote    = form.lotes[0].NoLote;
                        partida.Caducidad = form.lotes[0].Caducidad;
                    }
                    else
                    {
                        partida.LoteId    = null;
                        partida.NoLote    = null;
                        partida.Caducidad = null;
                    }
                }
                BtnAceptar.Focus();
            }

            if (producto.TieneLote && conceptoMovInv.Es.Equals("S"))
            {
                producto.Lote = new List <Lote>();
                if (lote == null)
                {
                    Ambiente.Mensaje("Seleccione el lote del articulo");
                    return;
                }
                else
                {
                    producto.Lote.Add(lote);
                    partida.LoteId    = lote.LoteId;
                    partida.NoLote    = lote.NoLote;
                    partida.Caducidad = lote.Caducidad;
                }
            }

            //control lotes



            partida.DevolucionId = devolucion.DevolucionId;
            partida.ProductoId   = producto.ProductoId;
            partida.Descripcion  = producto.Descripcion;
            partida.Cantidad     = (int)NCantidad.Value;
            partida.Stock        = (int)producto.Stock;
            partida.PrecioCompra = producto.PrecioCompra;
            partida.ImpuestoId1  = producto.Impuesto1Id;
            partida.ImpuestoId2  = producto.Impuesto2Id;
            partida.Impuesto1    = Ambiente.GetTasaImpuesto(partida.ImpuestoId1);
            partida.Impuesto2    = Ambiente.GetTasaImpuesto(partida.ImpuestoId2);
            //Totales de la partida
            partida.Subtotal         = partida.Cantidad * partida.PrecioCompra;
            partida.ImporteImpuesto1 = partida.Subtotal * partida.Impuesto1;
            partida.ImporteImpuesto2 = partida.Subtotal * partida.Impuesto2;
            partida.Total            = partida.Subtotal + partida.ImporteImpuesto1 + partida.ImporteImpuesto2;



            //partida al grid
            Malla.Rows.Add();
            Malla.Rows[Malla.RowCount - 1].Cells[0].Value = partida.Descripcion;
            Malla.Rows[Malla.RowCount - 1].Cells[1].Value = partida.Stock;
            Malla.Rows[Malla.RowCount - 1].Cells[2].Value = partida.Cantidad;
            Malla.Rows[Malla.RowCount - 1].Cells[3].Value = partida.PrecioCompra;
            Malla.Rows[Malla.RowCount - 1].Cells[4].Value = partida.Impuesto1;
            Malla.Rows[Malla.RowCount - 1].Cells[5].Value = partida.Impuesto2;
            Malla.Rows[Malla.RowCount - 1].Cells[6].Value = partida.Subtotal;
            Malla.Rows[Malla.RowCount - 1].Cells[7].Value = partida.Subtotal + partida.ImporteImpuesto1 + partida.ImporteImpuesto2;
            Malla.Rows[Malla.RowCount - 1].Cells[8].Value = partida.NoLote;
            Malla.Rows[Malla.RowCount - 1].Cells[9].Value = partida.Caducidad;
            partidas.Add(partida);
            ResetPartida();
            CalculaTotales();
        }
        private void InsertaPartida()
        {
            if (producto == null && TxtProductoId.Text.Trim().Length == 0)
            {
                Ambiente.Mensaje("Producto no encontrado");
            }

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

            if (compra.CompraId == 0)
            {
                Ambiente.Mensaje("La compra no existe");
                return;
            }



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

            partida.CompraId        = compra.CompraId;
            partida.ProductoId      = producto.ProductoId;
            partida.Descripcion     = producto.Descripcion;
            partida.LaboratorioId   = producto.LaboratorioId;
            partida.LaboratorioName = laboratorioController.SelectOne(producto.LaboratorioId).Nombre.Trim();
            partida.Stock           = producto.Stock;
            partida.Cantidad        = NCantidad.Value;
            partida.PrecioCompra    = Ambiente.ToDecimal(TxtPrecioCompra.Text);
            partida.PrecioCaja      = Ambiente.ToDecimal(TxtPrecioCaja.Text);
            partida.Descuento       = NDesc.Value / 100;
            partida.NImpuestos      = impuestos.Count;

            //control lotes
            if (producto.TieneLote)
            {
                using (var form = new FrmLoteCaducidad(compra.CompraId, NCantidad.Value, producto.ProductoId))
                {
                    if (form.ShowDialog() == DialogResult.OK)
                    {
                        partida.Lote      = form.lotes[0].NoLote;
                        partida.Caducidad = form.lotes[0].Caducidad;
                    }
                    else
                    {
                        partida.Lote      = null;
                        partida.Caducidad = null;
                    }
                }
            }

            //cambios de precio
            if (partida.PrecioCompra != producto.PrecioCompra)
            {
                producto.PrecioCompra = Ambiente.ToDecimal(TxtPrecioCompra.Text);
                producto.PrecioCaja   = Ambiente.ToDecimal(TxtPrecioCaja.Text);
                producto.Precio1      = Ambiente.ToDecimal(TxtPrecio1.Text);
                producto.Precio2      = Ambiente.ToDecimal(TxtPrecio2.Text);
                producto.Precio3      = Ambiente.ToDecimal(TxtPrecio3.Text);
                producto.Precio4      = Ambiente.ToDecimal(TxtPrecio4.Text);
                producto.Utilidad1    = Ambiente.ToDecimal(TxtU1.Text);
                producto.Utilidad2    = Ambiente.ToDecimal(TxtU2.Text);
                producto.Utilidad3    = Ambiente.ToDecimal(TxtU3.Text);
                producto.Utilidad4    = Ambiente.ToDecimal(TxtU4.Text);
                productosActualizados.Add(producto);
            }
            //totales
            partida.Impuesto1        = impuestos[0].Tasa;
            partida.Impuesto2        = impuestos[1].Tasa;
            partida.Subtotal         = partida.Cantidad * partida.PrecioCompra;
            partida.Subtotal        -= partida.Subtotal * partida.Descuento;
            partida.ImporteImpuesto1 = partida.Subtotal * partida.Impuesto1;
            partida.ImporteImpuesto2 = partida.Subtotal * partida.Impuesto2;
            partida.Total            = partida.Subtotal + partida.ImporteImpuesto1 + partida.ImporteImpuesto2;
            partidas.Add(partida);

            CalculaTotales();
            // partida al grid
            Malla.Rows[SigPartida].Cells[0].Value  = partida.ProductoId;
            Malla.Rows[SigPartida].Cells[1].Value  = partida.Descripcion;
            Malla.Rows[SigPartida].Cells[2].Value  = partida.LaboratorioName;
            Malla.Rows[SigPartida].Cells[3].Value  = partida.Stock;
            Malla.Rows[SigPartida].Cells[4].Value  = partida.Cantidad;
            Malla.Rows[SigPartida].Cells[5].Value  = partida.PrecioCaja;
            Malla.Rows[SigPartida].Cells[6].Value  = partida.PrecioCompra;
            Malla.Rows[SigPartida].Cells[7].Value  = partida.Descuento;
            Malla.Rows[SigPartida].Cells[8].Value  = partida.Impuesto1;
            Malla.Rows[SigPartida].Cells[9].Value  = partida.Impuesto2;
            Malla.Rows[SigPartida].Cells[10].Value = partida.Subtotal;
            Malla.Rows[SigPartida].Cells[11].Value = partida.ImporteImpuesto1 + partida.ImporteImpuesto2;
            Malla.Rows[SigPartida].Cells[12].Value = partida.Subtotal + partida.ImporteImpuesto1 + partida.ImporteImpuesto2;
            Malla.Rows[SigPartida].Cells[13].Value = partida.NImpuestos;
            Malla.Rows[SigPartida].Cells[14].Value = partida.Lote;
            Malla.Rows[SigPartida].Cells[15].Value = partida.Caducidad;
            ResetPartida();
        }