public void Devolver(Documento documento,NotaCredito notaCredito, IList<DocumentoLinea> lineasDocumento,List<NotaIngresoSalidaLinea> lineasIngresosSalidas) { documento.TipoDocumento = "NotaCredito"; new DocumentoBL().Grabar(documento); documento.NroDocumentoVenta = Int32.Parse(documento.Caja.Local.Id + "" + documento.Id); new DocumentoBL().Grabar(documento); foreach (DocumentoLinea documentoLinea in lineasDocumento) { documentoLinea.Documento = documento; new DocumentoLineaBL().Grabar(documentoLinea); } //MOVIMIENTO BE.Movimiento movimiento = new BE.Movimiento(); movimiento.Local=documento.Caja.Local; movimiento.Fecha=DateTime.Today; new MovimientoBL().Grabar(movimiento); //GRABAMOS LA NOTA DE CREDITO notaCredito.Documento = documento; notaCredito.NroMovimiento = movimiento; Grabar(notaCredito); //CREAMOS LA NOTA DE INGRESOSALIDA NotaIngresoSalida notaIngSal=new NotaIngresoSalida(); notaIngSal.Local=documento.Caja.Local; notaIngSal.Fecha=DateTime.Today; notaIngSal.NroMovimiento=movimiento; new NotaIngresoSalidaBL().Grabar(notaIngSal); foreach (NotaIngresoSalidaLinea linea in lineasIngresosSalidas) linea.CodNota = notaIngSal; new NotaIngresoSalidaLineaBL().Grabar(lineasIngresosSalidas); }
public void Save(NotaIngresoSalida nota) { ISession hisession = null; try { hisession = NHibernateHelper.GetCurrentSession(); hisession.BeginTransaction(); hisession.Save(nota); hisession.Transaction.Commit(); hisession.Close(); } catch (Exception ex) { if (hisession != null) { if (hisession.IsOpen) { hisession.Close(); } } if (log.IsErrorEnabled) { log.Error("No se pudo registrar nota : " + ex.Message); } } }
public void Grabar(NotaIngresoSalida nota) { new NotaIngresoSalidaDA().Save(nota); }
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 btnAceptar_Click(object sender, EventArgs e) { foreach (DataGridViewRow fila in dgvDocumentos.Rows) { /*creo movimiento*/ BE.Movimiento movSalida = new BE.Movimiento(); movSalida.Local = this.local; movSalida.Fecha = System.DateTime.Now; movSalida.TipoMovimiento = "Salida"; new MovimientoBL().Grabar(movSalida); /* creo nota de salida */ NotaIngresoSalida notaSalida = new NotaIngresoSalida(); notaSalida.NroMovimiento = movSalida; notaSalida.Local = this.local; notaSalida.Fecha = System.DateTime.Now; new NotaIngresoSalidaBL().Grabar(notaSalida); /* creo guia de remisión */ GuiaRemision guiaRemision = new GuiaRemision(); guiaRemision.Fecha = System.DateTime.Now; guiaRemision.NroMovimiento = movSalida; guiaRemision.TipoGuia = "Salida"; guiaRemision.Estado = "Emitida"; new GuiaRemisionBL().Grabar(guiaRemision); if (fila.Cells["TipoMovimiento"].Value.ToString().Equals("Transferencia")) { List<NotaIngresoSalidaLinea> notaSalidaLineas = new List<NotaIngresoSalidaLinea>(); List<GuiaRemisionLinea> guiaRemisionLineas = new List<GuiaRemisionLinea>(); int nroDocumento = int.Parse(fila.Cells["NroDocumento"].Value.ToString()); Transferencia t = new TransferenciaBL().cargarTransferencia(nroDocumento); foreach (TransferenciaLinea tl in t.TransferenciaTransferenciaLineafk) { NotaIngresoSalidaLinea auxL = new NotaIngresoSalidaLinea(); auxL.ArticuloXLocal = tl.ArticuloXLocal; auxL.Cantidad = tl.CantidadArticulosAprob; auxL.CodNota = notaSalida; notaSalidaLineas.Add(auxL); GuiaRemisionLinea auxGuiaRemLinea = new GuiaRemisionLinea(); auxGuiaRemLinea.Articulo = tl.ArticuloXLocal.Articulo; auxGuiaRemLinea.Cantidad = tl.CantidadArticulosAprob; auxGuiaRemLinea.NroGuia = guiaRemision; guiaRemisionLineas.Add(auxGuiaRemLinea); ArticuloXLocal axl = auxL.ArticuloXLocal; axl.Cantidad = axl.Cantidad - auxL.Cantidad; new ArticuloXLocalBL().Actualizar(axl); } new NotaIngresoSalidaLineaBL().Grabar(notaSalidaLineas); new GuiaRemisionBL().Grabar(guiaRemisionLineas); Utils.Utils.Mensaje("Usted ha registrado satisfactoriamente la salida de productos. " + "\nNota de Salida asociada: " + notaSalida.Id.ToString() + "\nGuia de Remisión asociada: " + guiaRemision.Id, MessageBoxButtons.OK, Utils.Utils.REGISTRO_OK); this.Dispose(); } else {//Devolucion al proveedor List<NotaIngresoSalidaLinea> notaSalidaLineas = new List<NotaIngresoSalidaLinea>(); int nroDocumento = int.Parse(fila.Cells["nroDocumento"].ToString()); Incidencia devolucion = new IncidenciaBL().cargarIncidencia(nroDocumento); List<GuiaRemisionLinea> guiaRemisionLineas = new List<GuiaRemisionLinea>(); List<object[]> listaDatosDevolucion = new IncidenciaBL().GetListaDatosDevolucion(devolucion, local); /* es una lista de duplas: cantidadArticulo - articuloXLocal */ foreach (object[] dupla in listaDatosDevolucion) { NotaIngresoSalidaLinea auxL = new NotaIngresoSalidaLinea(); auxL.ArticuloXLocal = (ArticuloXLocal)dupla[1]; auxL.Cantidad = (int)dupla[0]; auxL.CodNota = notaSalida; notaSalidaLineas.Add(auxL); GuiaRemisionLinea auxGuiaRemLinea = new GuiaRemisionLinea(); auxGuiaRemLinea.Articulo = ((ArticuloXLocal)dupla[1]).Articulo; auxGuiaRemLinea.Cantidad = (int)dupla[0]; auxGuiaRemLinea.NroGuia = guiaRemision; guiaRemisionLineas.Add(auxGuiaRemLinea); ArticuloXLocal axl = auxL.ArticuloXLocal; axl.Cantidad = axl.Cantidad - auxL.Cantidad; new ArticuloXLocalBL().Actualizar(axl); } new NotaIngresoSalidaLineaBL().Grabar(notaSalidaLineas); new GuiaRemisionBL().Grabar(guiaRemisionLineas); Utils.Utils.Mensaje("Usted ha registrado satisfactoriamente la salida de productos. " + "\nNota de Salida asociada: " + notaSalida.Id.ToString() + "\nGuia de Remisión asociada: " + guiaRemision.Id, MessageBoxButtons.OK, Utils.Utils.REGISTRO_OK); this.Dispose(); } } }
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"); }