public void SaveOrUpdate(GuiaRemisionLinea grlinea) { ISession hisession = null; try { hisession = NHibernateHelper.GetCurrentSession(); hisession.BeginTransaction(); if (grlinea.Id == 0) { hisession.Save(grlinea); } else { hisession.Update(grlinea); } hisession.Transaction.Commit(); hisession.Close(); } catch (Exception ex) { if (hisession != null) { if (hisession.IsOpen) { hisession.Close(); } } } }
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(); } } }