public override void Start() { using (ISession Sesion = m_SessionFactory.OpenSession()) { using (ITransaction Trans = Sesion.BeginTransaction()) { try { Soft.Facturacion.Entidades.Facturacion Facturacion = (Soft.Facturacion.Entidades.Facturacion)m_ObjectFlow; SqlCommand SqlCmd = new SqlCommand(); SqlCmd.Connection = (SqlConnection)Sesion.Connection; SqlCmd.CommandText = "pSF_Actualizar_EstadoFacturacion_OrdenProduccion"; SqlCmd.CommandType = System.Data.CommandType.StoredProcedure; Trans.Enlist(SqlCmd); foreach (ItemFacturacion ItemFacturacion in Facturacion.Items) { SqlCmd.Parameters.Clear(); SqlCmd.Parameters.AddWithValue("@IDOP", ItemFacturacion.IDOrdenProduccion); SqlCmd.Parameters.AddWithValue("@Cantidad", ItemFacturacion.Cantidad * -1); SqlCmd.ExecuteNonQuery(); } Sesion.Delete(Facturacion); // Eliminamos la Deuda. Deuda Deuda = (Deuda)HelperNHibernate.GetEntityByField("Deuda", "IDDocumento", Facturacion.ID); if (Deuda != null) { if (Deuda.Total > Deuda.Saldo) { throw new Exception("Ya se realizaron pagos de este documento."); } else { Sesion.Delete(Deuda); } } Trans.Commit(); m_ResultProcess = EnumResult.SUCESS; } catch (Exception ex) { Trans.Rollback(); m_ResultProcess = EnumResult.ERROR; SoftException.Control(ex); } finally { base.Start(); } } } }
public override void Start() { try { Soft.Facturacion.Entidades.Facturacion Facturacion = (Soft.Facturacion.Entidades.Facturacion)m_ObjectFlow; NotaDebito NotaDebito = new NotaDebito(); NotaDebito.Cliente = Facturacion.Cliente; NotaDebito.Responsable = Facturacion.Responsable; NotaDebito.Moneda = Facturacion.Moneda; NotaDebito.NroFactura = Facturacion.Numeracion; NotaDebito.IDFactura = Facturacion.ID; m_ObjectFlow = NotaDebito; m_EntidadSF = (EntidadSF)HelperNHibernate.GetEntityByField("EntidadSF", "NombreClase", "NotaDebito"); m_ResultProcess = EnumResult.SUCESS; } catch (Exception ex) { m_ResultProcess = EnumResult.ERROR; SoftException.Control(ex); } base.Start(); }
public override void Start() { using (ISession Sesion = m_SessionFactory.OpenSession()) { using (ITransaction Trans = Sesion.BeginTransaction()) { try { Soft.Facturacion.Entidades.Facturacion Facturacion = (Soft.Facturacion.Entidades.Facturacion)m_ObjectFlow; SqlCommand SqlCmd = new SqlCommand(); SqlCmd.Connection = (SqlConnection)Sesion.Connection; SqlCmd.CommandText = "pSF_Actualizar_EstadoFacturacion_OrdenProduccion"; SqlCmd.CommandType = System.Data.CommandType.StoredProcedure; Trans.Enlist(SqlCmd); foreach (ItemFacturacion ItemFacturacion in Facturacion.Items) { SqlCmd.Parameters.Clear(); SqlCmd.Parameters.AddWithValue("@IDOP", ItemFacturacion.IDOrdenProduccion); SqlCmd.Parameters.AddWithValue("@Cantidad", ItemFacturacion.Cantidad); SqlCmd.ExecuteNonQuery(); } foreach (ItemFacturacion ItemFacturacion in Facturacion.Items) { if (ItemFacturacion.TieneGuia) { SqlCmd.CommandText = "pSF_Actualizar_EstadoFacturacion_ItemGuiaRemision"; SqlCmd.Parameters.Clear(); SqlCmd.Parameters.AddWithValue("@IDItemGuiaRemision", ItemFacturacion.IDItemGuiaRemision); SqlCmd.Parameters.AddWithValue("@Cantidad", ItemFacturacion.Cantidad); SqlCmd.ExecuteNonQuery(); } } // Creamos la Factura Sesion.Save(Facturacion); Sesion.Flush(); // Creamos una Deuda. if (Facturacion.TipoFacturacion.GeneraDeuda) { Deuda Deuda = new Deuda(); Deuda.Tipo = Facturacion.TipoFacturacion.TipoDeuda; Deuda.TipoDocumento = Facturacion.TipoFacturacion.Comprobante; Deuda.IDDocumento = Facturacion.ID; Deuda.Descripcion = Facturacion.TipoDocumento.Nombre; Deuda.IDSocioNegocio = (Facturacion.Cliente != null) ? Facturacion.Cliente.ID : null; Deuda.Saldo = Facturacion.Total; Deuda.Total = Facturacion.Total; Sesion.Save(Deuda); } // Actualizamos la Numeración de la Factura if (Facturacion.TipoFacturacion.GeneraNumeracionAlFinal) { SqlCmd.CommandText = "pSF_Generar_Numeracion"; SqlCmd.Parameters.Clear(); SqlCmd.Parameters.AddWithValue("@Documento", "Facturacion"); SqlCmd.Parameters.AddWithValue("@TipoDocumento", "TipoFacturacion"); SqlCmd.Parameters.AddWithValue("@IDDocumento", Facturacion.ID); SqlCmd.Parameters.AddWithValue("@IDTipoDocumento", Facturacion.TipoFacturacion.ID); SqlCmd.ExecuteNonQuery(); } Trans.Commit(); m_ResultProcess = EnumResult.SUCESS; } catch (Exception ex) { Trans.Rollback(); m_ResultProcess = EnumResult.ERROR; SoftException.Control(ex); } finally { base.Start(); } } } }