public void RevisarIncidencias() { foreach (Incidencia incidencia in incidencias) { try { int cant = new IncidenciaBL().GetCantidad(incidencia); string[] descAd = incidencia.DescripcionAdicional.Split(" ".ToCharArray()); for (int i = 0; i < cant * 2; i += 2) { ArticuloXLocal artxlocal = new ArticuloXLocalBL().findArticuloXLocal(Convert.ToInt32(descAd[i]), incidencia.Local.Id); int indice = estaIncluido(artxlocal); if (indice>0) articulos[indice].Cantidad+=Convert.ToInt32(descAd[i+1]); else { artxlocal.Cantidad+=Convert.ToInt32(descAd[i+1]); articulos.Add(artxlocal); } } } catch (NullReferenceException ex){ } } }
public void CargarLinea(Articulo articulo) { ArticuloBL artBL = new ArticuloBL(); ArticuloXLocal artxlocal =new ArticuloXLocalBL().findArticuloXLocal(articulo.Id, empleado.Local.Id); if ( artxlocal == null) { Utils.Utils.Error(this, "El local no contiene el articulo que solicito"); } else { try { if (!articuloIngresado(articulo)) { object[] arreglo = { articulo.Id, articulo.Titulo, "" }; dgvArticulos.Rows.Add(arreglo); guardarLinea(articulo); } else Utils.Utils.Error(this, "El articulo ya esta en la lista"); } catch (NullReferenceException ex) { Utils.Utils.Error(this, "El articulo no ha sido encontrado"); } } }
private void frmDetalleSolicitudEmitida_Load(object sender, EventArgs e) { ArticuloXLocalBL artxlocalBL = new ArticuloXLocalBL(); txbFechaEstimada.Text = solicitud.FechaEsperada.Value.ToShortDateString(); txbLocalSolicitante.Text = solicitud.LocalOrigen.Nombre; txbMovimiento.Text = solicitud.Movimiento; txbSolicitado.Text = solicitud.LocalDestino.Nombre; try { foreach (SolicitudTransferenciaLinea linea in solicitud.SolicitudTransferenciaSolicitudTransferenciaLineafk) { int cant = 0; if (linea.NroSolicitudTransferencia.Estado != "Emitida") cant = new SolicitudTransferenciaBL().GetCantidadAceptada(linea.NroSolicitudTransferencia, linea.ArticuloXLocal); object[] arreglo = { linea.Id, linea.ArticuloXLocal.Articulo.Titulo, linea.Cantidad,cant }; dgvSolEmitida.Rows.Add(arreglo); } } catch (NullReferenceException ex) { Utils.Utils.Error(this, "No hay Solicitudes Emitidas"); } }
public void RevisarIncidencias() { foreach (Incidencia incidencia in incidencias) { try { int cant = new IncidenciaBL().GetCantidad(incidencia); string[] descAd = incidencia.DescripcionAdicional.Split(" ".ToCharArray()); for (int i = 0; i < cant * 2; i += 2) { ArticuloXLocal artxlocal = new ArticuloXLocalBL().findArticuloXLocal(Convert.ToInt32(descAd[i]), incidencia.Local.Id); int indice = estaIncluido(artxlocal); if (indice>=0) if ((incidencia.TipoIncidencia == "Merma") || (incidencia.TipoIncidencia == "InventarioPerdida")) articulos[indice].Cantidad -= Convert.ToInt32(descAd[i+1]); else articulos[indice].Cantidad += Convert.ToInt32(descAd[i + 1]); else { if ((incidencia.TipoIncidencia == "Merma") || (incidencia.TipoIncidencia == "InventarioPerdida")) artxlocal.Cantidad -= Convert.ToInt32(descAd[i + 1]); else artxlocal.Cantidad += Convert.ToInt32(descAd[i + 1]); articulos.Add(artxlocal); } } } catch (NullReferenceException ex) { System.Console.WriteLine(ex); } } }
public void CargarLinea(Articulo articulo) { ArticuloXLocalBL artxlocalBL = new ArticuloXLocalBL(); ArticuloXLocal artxlocal= new ArticuloXLocal(); try { if (cmbMovimiento.Text.Equals("SALIDA")) artxlocal = artxlocalBL.findArticuloXLocal(articulo.Id, ((Local)cmbLocalOrigen.SelectedItem).Id); else artxlocal = artxlocalBL.findArticuloXLocal(articulo.Id, ((Local)cmbLocalDestino.SelectedItem).Id); if (!articuloIngresado(artxlocal)) { object[] arreglo = { artxlocal.Id, articulo.Titulo, artxlocal.Cantidad, "" }; dgvArticulos.Rows.Add(arreglo); guardarLinea(artxlocal); } else Utils.Utils.Error(this, "El articulo ya esta en la lista"); } catch (NullReferenceException ex) { Utils.Utils.Error(this, "El local no contiene el articulo que solicito"); } }
private void frmDetalleSolicitudRecepcion_Load(object sender, EventArgs e) { ArticuloXLocalBL artxlocalBL = new ArticuloXLocalBL(); txbFechaEstimada.Text = solicitud.FechaEsperada.Value.ToShortDateString(); txbLocalSolicitante.Text = solicitud.LocalOrigen.Nombre; txbMovimiento.Text = solicitud.Movimiento; txbSolicitado.Text = solicitud.LocalDestino.Nombre; try { foreach (SolicitudTransferenciaLinea linea in solicitud.SolicitudTransferenciaSolicitudTransferenciaLineafk) { object[] arreglo = { linea.Id,linea.ArticuloXLocal.Articulo.Titulo,artxlocalBL.findArticuloXLocal(linea.ArticuloXLocal.Articulo.Id, linea.NroSolicitudTransferencia.LocalOrigen.Id).Cantidad,linea.ArticuloXLocal.Cantidad, linea.Cantidad, linea.Cantidad }; dgvSolRecep.Rows.Add(arreglo); } } catch (NullReferenceException ex) { Utils.Utils.Error(this, "Error al cargar de BD"); } }
private void btnAceptar_Click(object sender, EventArgs e) { if (dgvProductos.RowCount == 0) { if (txtNroDocumento.Text.Equals("")) Utils.Utils.Mensaje("Ingrese el documento asociado a la entrada de productos", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); else Utils.Utils.Mensaje("Cargue los datos del documento ingresado", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } /* variables para generar la incidencia */ bool hayIncidencia = false; string descripcionIncidencia = ""; int cantidadArticulosDiferentes = 0; int cantidadDeltaTotal = 0; bool ok= true; /* Grabo movimiento */ BE.Movimiento movEntrada = new BE.Movimiento(); movEntrada.Local = this.local; movEntrada.Fecha = System.DateTime.Now; movEntrada.TipoMovimiento = "Ingreso"; new MovimientoBL().Grabar(movEntrada); /* Grabo nota de ingreso */ NotaIngresoSalida notaIngreso = new NotaIngresoSalida(); notaIngreso.Fecha = System.DateTime.Now; notaIngreso.Local = this.local; notaIngreso.NroMovimiento = movEntrada; new NotaIngresoSalidaBL().Grabar(notaIngreso); /* Grabo el detalle de la nota de ingreso y verifico incidencias */ List<NotaIngresoSalidaLinea> notaLineas = new List<NotaIngresoSalidaLinea>(); foreach (DataGridViewRow fila in dgvProductos.Rows) { NotaIngresoSalidaLinea notaIngresoLinea = new NotaIngresoSalidaLinea(); notaIngresoLinea.CodNota = notaIngreso; int cantIngresada = 0; if ((fila.Cells["cantIngresada"].Value!= null) &&(int.TryParse(fila.Cells["cantIngresada"].Value.ToString(), out cantIngresada)) && int.Parse(fila.Cells["cantPedida"].Value.ToString()) >= cantIngresada) notaIngresoLinea.Cantidad = cantIngresada; else { ok = false; fila.Cells["cantIngresada"].Style.BackColor = Color.RosyBrown; } if ((notaIngresoLinea.CodAnaquel = (Anaquel)fila.Cells["cboAnaquel"].Value) == null) { ok = false; fila.Cells["cboAnaquel"].Style.BackColor = Color.RosyBrown; } if (ok) { notaLineas.Add(notaIngresoLinea); if (int.Parse(fila.Cells["cantPedida"].Value.ToString()) != int.Parse(fila.Cells["cantIngresada"].Value.ToString())) { hayIncidencia = true; descripcionIncidencia += fila.Cells["codigo"]; int diferencia = int.Parse(fila.Cells["cantPedida"].Value.ToString()) - int.Parse(fila.Cells["cantIngresada"].Value.ToString()); descripcionIncidencia += " " + diferencia.ToString() + " "; cantidadArticulosDiferentes++; cantidadDeltaTotal += diferencia; } } } if (ok) { /* Agregar el articulo por local a la lista */ int i = 0; if (ordenCompra != null) { foreach (OrdenCompraLinea auxOCL in ordenCompra.OrdenCompraOrdenCompraLineafk) { ArticuloXLocal axl = new ArticuloXLocalBL().findArticuloXLocal(auxOCL.ArticuloXProveedor.Articulo.Id, local.Id); if (axl != null) axl.Cantidad += notaLineas[i].Cantidad; else { axl = new ArticuloXLocal(); axl.Local = this.local; axl.Cantidad = notaLineas[i].Cantidad; axl.Articulo = auxOCL.ArticuloXProveedor.Articulo; } new ArticuloXLocalBL().Actualizar(axl); notaLineas[i].ArticuloXLocal = axl; i++; } } else if (consignacion != null) { foreach (DocumentoConsignacionLinea auxConsigL in consignacion.DocumentoConsignacionDocumentoConsignacionLineafk) { ArticuloXLocal axl = new ArticuloXLocalBL().findArticuloXLocal(auxConsigL.ArticuloXProveedor.Articulo.Id, local.Id); if (axl != null) axl.Cantidad += notaLineas[i].Cantidad; else { axl = new ArticuloXLocal(); axl.Local = this.local; axl.Cantidad = notaLineas[i].Cantidad; axl.Articulo = auxConsigL.ArticuloXProveedor.Articulo; } new ArticuloXLocalBL().Actualizar(axl); notaLineas[i].ArticuloXLocal = axl; i++; } } else if (transferencia != null) { foreach (TransferenciaLinea auxTransfL in transferencia.TransferenciaTransferenciaLineafk) { ArticuloXLocal axl = new ArticuloXLocalBL().findArticuloXLocal(auxTransfL.ArticuloXLocal.Articulo.Id, local.Id); if (axl != null) axl.Cantidad += notaLineas[i].Cantidad; else { axl = new ArticuloXLocal(); axl.Local = this.local; axl.Cantidad = notaLineas[i].Cantidad; axl.Articulo = auxTransfL.ArticuloXLocal.Articulo; } new ArticuloXLocalBL().Actualizar(axl); notaLineas[i].ArticuloXLocal = axl; i++; } } if (hayIncidencia) { //Ingresar incidencia Incidencia incidencia = new Incidencia(); incidencia.DescripcionAdicional = descripcionIncidencia + " - AUTO - Ingreso de articulos por " + cboTipoMovimiento.Text + " inconsistente con documento nro. " + txtNroDocumento.Text; incidencia.Estado = "Creada"; incidencia.Fecha = DateTime.Now; incidencia.Local = this.local; incidencia.TipoIncidencia = "Recepción"; incidencia.NroMovimiento = movEntrada; //creacion de objetos incidencialinea IncidenciaLinea incidlinea1 = new IncidenciaLinea(); IncidenciaLinea incidlinea2 = new IncidenciaLinea(); //Cantidad de articulos diferentes incidlinea1.Cantidad = cantidadArticulosDiferentes; incidlinea1.NroIncidencia = incidencia; //cantidad total de arituclos dañados incidlinea2.Cantidad = cantidadDeltaTotal; incidlinea2.NroIncidencia = incidencia; //GRABAR MOVIMIENTO E INCIDENCIA //new MovimientoBL().Grabar(movEntrada); //new NotaIngresoSalidaBL().Grabar(notaIngreso); new IncidenciaBL().Grabar(incidencia); new IncidenciaLineaBL().Grabar(incidlinea1); new IncidenciaLineaBL().Grabar(incidlinea2); } new NotaIngresoSalidaLineaBL().Grabar(notaLineas); Utils.Utils.Mensaje("Se han registrado los productos ingresados", MessageBoxButtons.OK, MessageBoxIcon.Information); this.Dispose(); } else Utils.Utils.Error(this, "Ha ocurrido un error en la grabación"); }
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 llenarGrilla() { incidencias = new IncidenciaBL().GetAllBajas(); dgvIncidencias.Rows.Clear(); if (incidencias != null) { if (incidencias.Count > 0) { try { RevisarIncidencias(); //crea una lista de articuloxlocal a partir de las lineas de incidencia foreach (ArticuloXLocal articulo in articulos) { string cantidades = "0"; ArticuloXLocal art=new ArticuloXLocalBL().findArticuloXLocalxId(articulo.Id); if (art!=null) { cantidades = art.Cantidad.ToString(); } String[] datos = { Convert.ToString(articulo.Id), articulo.Articulo.Titulo, articulo.Local.Nombre, cantidades, articulo.Cantidad.ToString() }; dgvIncidencias.Rows.Add(datos); } } catch (Exception ex) { System.Console.WriteLine(ex); } } else Utils.Utils.Mensaje("No se obtuvieron resultados", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
/*public Incidencia cargarIncidenciaLinea(int nroIncidencia) { string squery = null; try { return new IncidenciaDA().cargarIncidenciaLinea(nroIncidencia); } catch (Exception e) { return null; } }*/ public List<object[]> GetListaDatosDevolucion(Incidencia incidencia, Local local) { List<object[]> listaObjetos = null; int cant = new IncidenciaBL().GetCantidad(incidencia); string[] listaIncidencias = incidencia.DescripcionAdicional.Split(" ".ToCharArray()); for (int i = 0; i < cant*2 ;i+=2 ) { int idArticulo = 0; int.TryParse(listaIncidencias[i],out idArticulo); ArticuloXLocal axl = new ArticuloXLocalBL().findArticuloEnLocal(idArticulo, local.Id); int cantidadDevuelta = 0; int.TryParse(listaIncidencias[i+1],out cantidadDevuelta); object [] dupla = {axl, cantidadDevuelta}; listaObjetos.Add(dupla); } return listaObjetos; }
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"); }
private void btnImprimirTomaControl_Click(object sender, EventArgs e) { if (revisionesPendientes == null || dgvRevisiones.SelectedRows.Count == 0) { Utils.Utils.Error(null, "Debe seleccionar una revisión pendiente"); return; } String cadenaId = dgvRevisiones.SelectedRows[0].Cells["Revision"].Value.ToString(); RevisionInventario revision = null; foreach (RevisionInventario rev in revisionesPendientes) { if (rev.Id.ToString() == cadenaId) { revision = rev; break; } } Revisiones dsRevision = new Revisiones(); Local local = revision.Local; #region "Local" Revisiones.LocalRow filaLocal = dsRevision.Local.NewLocalRow(); filaLocal.Direccion = local.Direccion; filaLocal.estado = local.Estado; filaLocal.fechaApertura = local.FechaApertura == null ? DateTime.MinValue : local.FechaApertura.Value; filaLocal.IdLocal = local.Id; filaLocal.Nombre = local.Nombre; filaLocal.Telefono = local.Telefono; dsRevision.Local.AddLocalRow(filaLocal); #endregion #region "RevisionInventario" dsRevision.RevisionInventario.AddRevisionInventarioRow( revision.FechaRevision == null ? DateTime.MinValue : revision.FechaRevision.Value, revision.HoraRevision == null ? DateTime.MinValue : revision.HoraRevision.Value, revision.Empleado.Id, filaLocal, revision.NroControl.Id, revision.Descripcion); #endregion ArticuloXLocalBL artxlocBL = new ArticuloXLocalBL(); //Guille IList<ArticuloXLocal> listaArtXLoc = artxlocBL.buscarTodosEnLocal(local.Id); int i = 1; //hasta aqui foreach (ArticuloXLocal articuloXLocal in local.LocalArticuloXLocalfk) { #region "Articulo" Articulo articulo = articuloXLocal.Articulo; Revisiones.ArticuloRow filaArticulo = dsRevision.Articulo.FindByIdArticulo(articulo.Id); if (filaArticulo == null) { filaArticulo = dsRevision.Articulo.NewArticuloRow(); filaArticulo.Anho = articulo.Anho; filaArticulo.AutorDirector = articulo.AutorDirector; filaArticulo.Categoria = articulo.Categoria.Id; filaArticulo.CodigoArticulo = articulo.CodigoArticulo; filaArticulo.Edicion = articulo.Edicion; filaArticulo.EditorialProductora = articulo.EditorialProductora; filaArticulo.Estado = articulo.Estado; filaArticulo.Formato = articulo.Formato; filaArticulo.IdArticulo = articulo.Id; filaArticulo.IndIGV = articulo.IndIGV; filaArticulo.ISBN = articulo.ISBN; filaArticulo.PrecioVenta = articulo.PrecioVenta; filaArticulo.Tipo = articulo.Tipo; filaArticulo.Titulo = articulo.Titulo; dsRevision.Articulo.AddArticuloRow(filaArticulo); } #endregion #region "ArticuloXLocal" Revisiones.ArticuloXLocalRow filaArticuloXLocal = dsRevision.ArticuloXLocal.NewArticuloXLocalRow(); filaArticuloXLocal.ArticuloRow = filaArticulo; filaArticuloXLocal.Cantidad = articuloXLocal.Cantidad==null?0:articuloXLocal.Cantidad.Value; filaArticuloXLocal.IdArticulo = articuloXLocal.Articulo.Id; filaArticuloXLocal.IdArticuloXLocal = articuloXLocal.Id; filaArticuloXLocal.IdLocal = articuloXLocal.Local.Id; filaArticuloXLocal.LocalRow = filaLocal; dsRevision.ArticuloXLocal.AddArticuloXLocalRow(filaArticuloXLocal); #endregion } foreach (Zona zona in local.LocalZonafk) { #region "Zona" Revisiones.ZonaRow filaZona = dsRevision.Zona.NewZonaRow(); filaZona.Anaqueles = zona.Anaqueles == null ? 0 : zona.Anaqueles.Value; filaZona.CodZona = zona.Id; filaZona.DescZona = zona.DescZona; filaZona.IdLocal = zona.Local.Id; //filaZona.LocalRow = filaLocal; dsRevision.Zona.AddZonaRow(filaZona); #endregion foreach (Anaquel anaquel in zona.ZonaAnaquelfk) { #region "Anaquel" Revisiones.AnaquelRow filaAnaquel = dsRevision.Anaquel.NewAnaquelRow(); filaAnaquel.CodAnaquel = anaquel.Id; filaAnaquel.CodZona = anaquel.CodZona.Id; filaAnaquel.Divisiones = anaquel.Divisiones == null ? 0 : anaquel.Divisiones.Value; filaAnaquel.Nombre = anaquel.Nombre; filaAnaquel.ZonaRow = filaZona; dsRevision.Anaquel.AddAnaquelRow(filaAnaquel); #endregion //Guille List<AnaquelXArticuloXLocal> AnaqXArtXLoc = new List<AnaquelXArticuloXLocal>(); foreach (ArticuloXLocal art in listaArtXLoc) { AnaquelXArticuloXLocal AnXArXLo = new AnaquelXArticuloXLocal(); AnXArXLo.ArticuloXLocal = art; AnXArXLo.CodAnaquel = anaquel; AnXArXLo.Cantidad = 0; AnXArXLo.Id = i; i++; AnaqXArtXLoc.Add(AnXArXLo); } //hasta aqui foreach (AnaquelXArticuloXLocal anaquelXArticuloXLocal in AnaqXArtXLoc) { #region "AnaquelXArticuloXLocal" Revisiones.AnaquelXArticuloXLocalRow filaAnaquelXArticuloXLocal = dsRevision.AnaquelXArticuloXLocal.NewAnaquelXArticuloXLocalRow(); filaAnaquelXArticuloXLocal.AnaquelRow = filaAnaquel; Revisiones.ArticuloXLocalRow filaArticuloXLocal = dsRevision.ArticuloXLocal.FindByIdArticuloXLocal(anaquelXArticuloXLocal.ArticuloXLocal.Id); filaAnaquelXArticuloXLocal.ArticuloXLocalRow = filaArticuloXLocal; filaAnaquelXArticuloXLocal.Cantidad = anaquelXArticuloXLocal.Cantidad == null ? 0 : anaquelXArticuloXLocal.Cantidad.Value; filaAnaquelXArticuloXLocal.CodAnaquel = anaquelXArticuloXLocal.CodAnaquel.Id; filaAnaquelXArticuloXLocal.IdAnaquelXArticuloXLocal = anaquelXArticuloXLocal.Id; filaAnaquelXArticuloXLocal.IdArticuloXLocal = (int)filaArticuloXLocal["IdArticuloXLocal"]; dsRevision.AnaquelXArticuloXLocal.AddAnaquelXArticuloXLocalRow(filaAnaquelXArticuloXLocal); #endregion } AnaqXArtXLoc = null; } } new frmVistaReporteRevision(dsRevision).ShowDialog(this); }
private void btnAceptar_Click(object sender, EventArgs e) { bool ok= true; /* Grabo movimiento */ Movimiento movEntrada = new Movimiento(); movEntrada.Local = this.local; movEntrada.Fecha = System.DateTime.Now; new MovimientoBL().Grabar(movEntrada); /* Grabo nota de ingreso */ NotaIngresoSalida notaIngreso = new NotaIngresoSalida(); notaIngreso.Fecha = System.DateTime.Now; notaIngreso.Local = this.local; notaIngreso.NroMovimiento = movEntrada; new NotaIngresoSalidaBL().Grabar(notaIngreso); /* Grabo el detalle de la nota de ingreso y verifico incidencias */ List<NotaIngresoSalidaLinea> notaLineas = new List<NotaIngresoSalidaLinea>(); foreach (DataGridViewRow fila in dgvProductos.Rows) { NotaIngresoSalidaLinea notaIngresoLinea = new NotaIngresoSalidaLinea(); notaIngresoLinea.CodNota = notaIngreso; int cantIngresada = 0; if ((fila.Cells["cantIngresada"].Value!= null)&&(int.TryParse(fila.Cells["cantIngresada"].Value.ToString(), out cantIngresada))) notaIngresoLinea.Cantidad = cantIngresada; else { ok = false; fila.Cells["cantIngresada"].Style.BackColor = Color.RosyBrown; } if ((notaIngresoLinea.CodAnaquel = (Anaquel)fila.Cells["cboAnaquel"].Value) == null) { ok = false; fila.Cells["cboAnaquel"].Style.BackColor = Color.RosyBrown; } if (ok) { notaLineas.Add(notaIngresoLinea); if (int.Parse(fila.Cells["cantPedida"].Value.ToString()) != int.Parse(fila.Cells["cantIngresada"].Value.ToString())) { //Ingresar incidencia Incidencia incidencia = new Incidencia(); incidencia.DescripcionAdicional = "AUTO - Ingreso de articulos por "+ cboTipoMovimiento.Text + " inconsistente con documento nro. " + txtNroDocumento.Text; incidencia.Estado = "CREADA"; incidencia.Fecha = DateTime.Today; incidencia.Local = this.local; incidencia.TipoIncidencia = "RECEPCION"; incidencia.NroMovimiento = movEntrada; new IncidenciaBL().Grabar(incidencia); } } } if (ok) { /* Agregar el articulo por local a la lista */ int i = 0; foreach (OrdenCompraLinea auxOCL in ordenCompra.OrdenCompraOrdenCompraLineafk) { ArticuloXLocal axl = new ArticuloXLocalBL().findArticuloXLocal(auxOCL.ArticuloXProveedor.Articulo.Id, local.Id); if (axl != null) axl.Cantidad += notaLineas[i].Cantidad; else { axl = new ArticuloXLocal(); axl.Local = this.local; axl.Cantidad = notaLineas[i].Cantidad; axl.Articulo = auxOCL.ArticuloXProveedor.Articulo; } new ArticuloXLocalBL().Actualizar(axl); notaLineas[i].ArticuloXLocal = axl; i++; } new NotaIngresoSalidaLineaBL().Grabar(notaLineas); Utils.Utils.Mensaje("Se han registrado los productos ingresados", MessageBoxButtons.OK, MessageBoxIcon.Information); this.Dispose(); } else Utils.Utils.Error(this, "Ha ocurrido un error en la grabación"); }