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(); }