private void btnAceptar_Click(object sender, EventArgs e) { if (validarCampos()) { bool ok = true; for (int i = 0; i < dgvArticulos.Rows.Count; i++) { dgvArticulos.Rows[i].DefaultCellStyle.BackColor = Color.White; } total=0; for (int i = 0; i < dgvArticulos.Rows.Count; i++) { string s1 = dgvArticulos.Rows[i].Cells["cantidad"].Value.ToString();//cantidad int cantidad; if (!String.IsNullOrEmpty(s1) && int.TryParse(s1, out cantidad) && cantidad>0) { listaArtxPack[i].CantidadPack = cantidad; } else { ok = false; dgvArticulos.Rows[i].DefaultCellStyle.BackColor = Color.RosyBrown; } } if (ok) { pack.Nombre = this.txtNombre.Text; pack.PrecioPack = float.Parse(this.txtPrecioPack.Text); pack.FechaInicio = this.dtpFechaInicio.Value.Date; pack.FechaFin = this.dtpFechaFin.Value.Date; pack.CantidadPacks = (int)this.upDwNumPacks.Value; pack.CantidadUtilizada = int.Parse(this.lblCantidadUtilizada.Text); pack.CodigoPack = "0"; if (pack.FechaInicio.Value <= DateTime.Today && pack.FechaFin.Value >= DateTime.Today) pack.Estado = "Activo"; else pack.Estado = "Inactivo"; PackBL objpackBL = new PackBL(); objpackBL.Grabar(pack); if (pack.CantidadUtilizada == 0) { //graba articulos participantes foreach (ArticuloXPack artxpack in listaArtEliminados) objArtxPackBL.Eliminar(artxpack); for (int i = 0; i < dgvArticulos.Rows.Count; i++)// listaArtxPack.Count; i++) { listaArtxPack[i].Pack = pack; listaArtxPack[i].CantidadPack = int.Parse(dgvArticulos.Rows[i].Cells["cantidad"].Value.ToString()); objArtxPackBL.Grabar(listaArtxPack[i]); } //graba categoria de clientes participantes if (listaPackxCat != null) foreach (PackXCategoriaCliente packxcat in listaPackxCat) objcatCliente.Eliminar(packxcat); foreach (int index in chkClientes.CheckedIndices) { PackXCategoriaCliente packxCatxCliente = new PackXCategoriaCliente(); packxCatxCliente.Pack = pack; packxCatxCliente.CategoriaCliente = categorias[index]; objcatCliente.Grabar(packxCatxCliente); } } Utils.Utils.OK(Utils.Utils.REGISTRO_OK); this.Close(); } else { Utils.Utils.Error(null, "Las cantidades sombreadas no son válidas"); } } }
private void btnRegistrar_Click(object sender, EventArgs e) { int cantidadDevolucion; DocumentoLineaBL objDocLineaBL = new DocumentoLineaBL(); ArticuloXLocalBL objArtxLocal=new ArticuloXLocalBL(); PackBL objPackBL=new PackBL(); IList<DocumentoLinea> lineasNotaCredito=new List<DocumentoLinea>(); List<NotaIngresoSalidaLinea> lineasNotaIngreso = new List<NotaIngresoSalidaLinea>(); ArticuloXPackBL objArtxPack=new ArticuloXPackBL(); bool crearDevolucion = false; //si al menos una de las cantidades devueltas>0 ,se procede a registrar la devolucion calcularDevolucion(); for (int i = 0; i < dgvArticulos.Rows.Count; i++) //actualizando los docs lineas q son de articulos { cantidadDevolucion=Int32.Parse(dgvArticulos.Rows[i].Cells["CantidadDevolucion"].Value.ToString()); if (cantidadDevolucion>0){ crearDevolucion = true; //docLineaVenta listaArticulos[i].CantidadDevuelta = listaArticulos[i].CantidadDevuelta + cantidadDevolucion; objDocLineaBL.Grabar(listaArticulos[i]); //las lineas fueron actualizadas cada vez q se calculaban los montos de devolucion //actualizamos la cantidad de articulos en EL LOCAL EN Q SE REALIZA LA DEVOLUCION ArticuloXLocal artxlocal=objArtxLocal.findArticuloEnLocal(listaArticulos[i].ArticuloXLocal.Articulo.Id,empleado.Local.Id); artxlocal.Cantidad=artxlocal.Cantidad+cantidadDevolucion; objArtxLocal.Actualizar(artxlocal); DocumentoLinea lineaNotaCredito=new DocumentoLinea(); lineaNotaCredito.Cantidad=cantidadDevolucion; lineaNotaCredito.Impuesto=listaArticulos[i].Impuesto; lineaNotaCredito.PrecioLinea=(float)(listaArticulos[i].PrecioLinea*cantidadDevolucion/listaArticulos[i].Cantidad); lineaNotaCredito.ArticuloXLocal=listaArticulos[i].ArticuloXLocal; lineaNotaCredito.CantidadDevuelta=0; lineaNotaCredito.DescuentoXArticulo=listaArticulos[i].DescuentoXArticulo; NotaIngresoSalidaLinea lineaNotaIngreso = new NotaIngresoSalidaLinea(); lineaNotaIngreso.Cantidad = cantidadDevolucion; lineaNotaIngreso.ArticuloXLocal = artxlocal; lineasNotaIngreso.Add(lineaNotaIngreso); lineasNotaCredito.Add(lineaNotaCredito); } } for (int i = 0; i < dgvPacks.Rows.Count; i++) { cantidadDevolucion = Int32.Parse(dgvPacks.Rows[i].Cells["CantidadDev"].Value.ToString()); if (cantidadDevolucion > 0) { crearDevolucion = true; //Pack listaPacks[i].Pack.CantidadUtilizada = listaPacks[i].Pack.CantidadUtilizada - cantidadDevolucion; objPackBL.Grabar(listaPacks[i].Pack); //Doclinea Venta listaPacks[i].CantidadDevuelta = listaPacks[i].CantidadDevuelta + cantidadDevolucion; objDocLineaBL.Grabar(listaPacks[i]); //ArticuloXLocal IList<ArticuloXPack> articulosPack = objArtxPack.findArticulosXPack(listaPacks[i].Pack.Id); foreach (ArticuloXPack artxpack in articulosPack) { ArticuloXLocal artxlocal = objArtxLocal.findArticuloEnLocal(artxpack.Articulo.Id, empleado.Local.Id); artxlocal.Cantidad = artxlocal.Cantidad + artxpack.CantidadPack * cantidadDevolucion; objArtxLocal.Actualizar(artxlocal); //creamos una linea de ingreso para el producto del pack NotaIngresoSalidaLinea lineaNotaIngreso = new NotaIngresoSalidaLinea(); lineaNotaIngreso.Cantidad = cantidadDevolucion*artxpack.CantidadPack; lineaNotaIngreso.ArticuloXLocal = artxlocal; lineasNotaIngreso.Add(lineaNotaIngreso); } DocumentoLinea lineaNotaCredito = new DocumentoLinea(); lineaNotaCredito.Cantidad = cantidadDevolucion; lineaNotaCredito.Impuesto = listaPacks[i].Impuesto; lineaNotaCredito.PrecioLinea = (float)(listaPacks[i].Pack.PrecioPack*cantidadDevolucion); lineaNotaCredito.CantidadDevuelta = 0; lineaNotaCredito.Pack = listaPacks[i].Pack; lineasNotaCredito.Add(lineaNotaCredito); } } //creamos el DOCUMENTO if (crearDevolucion) { Documento documento = new Documento(); documento.FechaEmision = DateTime.Today; documento.Estado = "Registrado"; documento.Total = totalDevolucion; documento.Caja = new RegistroCajaBL().DameCaja(empleado); documento.NroDocumentoVenta = Int32.Parse(empleado.Local.Id + "" + empleado.Id); documento.Cliente = documentoVentaActual.Cliente; documento.FechaAnulacion = DateTime.Today; //creamos la NOTA DE CREDITO NotaCredito notaCred = new NotaCredito(); notaCred.MontoDevolucion = totalDevolucion; notaCred.Motivo = richTxtMotivo.Text; notaCred.DocVenta = new DocVentaBL().findById(documentoVentaActual.Id.ToString()); new NotaCreditoBL().Devolver(documento, notaCred, lineasNotaCredito, lineasNotaIngreso); Utils.Utils.OK(Utils.Utils.REGISTRO_OK); } else Utils.Utils.Error(null,"No se puede registrar la Nota de Crédito porque ningún producto fue devuelto"); }
private void btnRegistrar_Click(object sender, EventArgs e) { int cantidadDevolucion; DocumentoLineaBL objDocLineaBL = new DocumentoLineaBL(); ArticuloXLocalBL objArtxLocal=new ArticuloXLocalBL(); PackBL objPackBL=new PackBL(); IList<DocumentoLinea> lineasNotaCredito=new List<DocumentoLinea>(); List<NotaIngresoSalidaLinea> lineasNotaIngreso = new List<NotaIngresoSalidaLinea>(); ArticuloXPackBL objArtxPack=new ArticuloXPackBL(); bool crearDevolucion = false; //si al menos una de las cantidades devueltas>0 ,se procede a registrar la devolucion calcularDevolucion(); if (dgvArticulos.Rows.Count == 0 && dgvPacks.Rows.Count == 0) { Utils.Utils.Error(null, "No se ha ingresado un documento de venta"); return; } if (empleado.Local.Estado=="Inactivo"){ Utils.Utils.Error(null, "No se puede registrar la devolucion ya que el local se encuentra inactivo"); return; } for (int i = 0; i < dgvArticulos.Rows.Count; i++) { dgvArticulos.Rows[i].DefaultCellStyle.BackColor = Color.White; } for (int i = 0; i < dgvPacks.Rows.Count; i++) { dgvPacks.Rows[i].DefaultCellStyle.BackColor = Color.White; } for (int i = 0; i < dgvArticulos.Rows.Count; i++) //actualizando los docs lineas q son de articulos { cantidadDevolucion=Int32.Parse(dgvArticulos.Rows[i].Cells["CantidadDevolucion"].Value.ToString()); if (cantidadDevolucion > 0) { crearDevolucion = true; //docLineaVenta listaArticulos[i].CantidadDevuelta = listaArticulos[i].CantidadDevuelta + cantidadDevolucion; objDocLineaBL.Grabar(listaArticulos[i]); //las lineas fueron actualizadas cada vez q se calculaban los montos de devolucion //actualizamos la cantidad de articulos en EL LOCAL EN Q SE REALIZA LA DEVOLUCION ArticuloXLocal artxlocal = objArtxLocal.findArticuloEnLocal(listaArticulos[i].ArticuloXLocal.Articulo.Id, empleado.Local.Id); artxlocal.Cantidad = artxlocal.Cantidad + cantidadDevolucion; objArtxLocal.Actualizar(artxlocal); DocumentoLinea lineaNotaCredito = new DocumentoLinea(); lineaNotaCredito.Cantidad = cantidadDevolucion; lineaNotaCredito.Impuesto = listaArticulos[i].Impuesto; lineaNotaCredito.PrecioLinea = (float)(listaArticulos[i].PrecioLinea * cantidadDevolucion / listaArticulos[i].Cantidad); lineaNotaCredito.ArticuloXLocal = listaArticulos[i].ArticuloXLocal; lineaNotaCredito.CantidadDevuelta = 0; lineaNotaCredito.DescuentoXArticulo = listaArticulos[i].DescuentoXArticulo; NotaIngresoSalidaLinea lineaNotaIngreso = new NotaIngresoSalidaLinea(); lineaNotaIngreso.Cantidad = cantidadDevolucion; lineaNotaIngreso.ArticuloXLocal = artxlocal; lineasNotaIngreso.Add(lineaNotaIngreso); lineasNotaCredito.Add(lineaNotaCredito); } else { dgvArticulos.Rows[i].DefaultCellStyle.BackColor = Color.RosyBrown; } } for (int i = 0; i < dgvPacks.Rows.Count; i++) { cantidadDevolucion = Int32.Parse(dgvPacks.Rows[i].Cells["CantidadDev"].Value.ToString()); if (cantidadDevolucion > 0) { crearDevolucion = true; //Pack listaPacks[i].Pack.CantidadUtilizada = listaPacks[i].Pack.CantidadUtilizada - cantidadDevolucion; objPackBL.Grabar(listaPacks[i].Pack); //Doclinea Venta listaPacks[i].CantidadDevuelta = listaPacks[i].CantidadDevuelta + cantidadDevolucion; objDocLineaBL.Grabar(listaPacks[i]); //ArticuloXLocal IList<ArticuloXPack> articulosPack = objArtxPack.findArticulosXPack(listaPacks[i].Pack.Id); foreach (ArticuloXPack artxpack in articulosPack) { ArticuloXLocal artxlocal = objArtxLocal.findArticuloEnLocal(artxpack.Articulo.Id, empleado.Local.Id); artxlocal.Cantidad = artxlocal.Cantidad + artxpack.CantidadPack * cantidadDevolucion; objArtxLocal.Actualizar(artxlocal); //creamos una linea de ingreso para cada producto del pack NotaIngresoSalidaLinea lineaNotaIngreso = new NotaIngresoSalidaLinea(); lineaNotaIngreso.Cantidad = cantidadDevolucion*artxpack.CantidadPack; lineaNotaIngreso.ArticuloXLocal = artxlocal; lineasNotaIngreso.Add(lineaNotaIngreso); } DocumentoLinea lineaNotaCredito = new DocumentoLinea(); lineaNotaCredito.Cantidad = cantidadDevolucion; lineaNotaCredito.Impuesto = listaPacks[i].Impuesto; lineaNotaCredito.PrecioLinea = (float)(listaPacks[i].Pack.PrecioPack*cantidadDevolucion); lineaNotaCredito.CantidadDevuelta = 0; lineaNotaCredito.Pack = listaPacks[i].Pack; lineasNotaCredito.Add(lineaNotaCredito); } else { dgvPacks.Rows[i].DefaultCellStyle.BackColor = Color.RosyBrown; } } //creamos el DOCUMENTO if (crearDevolucion) { Documento documento = new Documento(); documento.FechaEmision = DateTime.Today; documento.FechaAnulacion = null; documento.TipoDocumento = "NotaCredito"; documento.Estado = "Registrado"; documento.Total = totalDevolucion; documento.Subtotal = subtotal; documento.Caja = new RegistroCajaBL().DameCaja(empleado); // documento.NroDocumentoVenta = Int32.Parse(empleado.Local.Id + "" +1710); documento.Cliente = documentoVentaActual.Cliente; //creamos la NOTA DE CREDITO NotaCredito notaCred = new NotaCredito(); notaCred.MontoDevolucion = totalDevolucion; notaCred.Motivo = richTxtMotivo.Text; notaCred.DocVenta = new DocVentaBL().findById(documentoVentaActual.Id.ToString()); new NotaCreditoBL().Devolver(documento, notaCred, lineasNotaCredito, lineasNotaIngreso); Utils.Utils.OK(Utils.Utils.REGISTRO_OK); if (Utils.Utils.ContinuarOperacion("Desea exportar el documento?")) { NotaCreditoDatos dsNotaCredito = new NotaCreditoBL().exportarDocumento(documento.NroDocumentoVenta.ToString());//, notaCred, lineasNotaCredito); new frmDocumentoNotaCredito(dsNotaCredito).ShowDialog(this); } limpiarCampos(); } else Utils.Utils.Error(null,"Las cantidades sombreadas no son válidas"); }