Пример #1
0
 public override void Start()
 {
     using (ISession Sesion = m_SessionFactory.OpenSession())
     {
         using (ITransaction Trans = Sesion.BeginTransaction())
         {
             try
             {
                 EntradaCaja EntradaCaja = (EntradaCaja)m_ObjectFlow;
                 SqlCommand  SqlCmd      = new SqlCommand();
                 // Actualizamos el saldo de la Caja
                 SqlCmd.Connection  = (SqlConnection)Sesion.Connection;
                 SqlCmd.CommandType = System.Data.CommandType.StoredProcedure;
                 SqlCmd.CommandText = "pSF_Actualizar_Saldo_Caja";
                 Trans.Enlist(SqlCmd);
                 SqlCmd.Parameters.AddWithValue("@IDCaja", EntradaCaja.Caja.ID);
                 SqlCmd.Parameters.AddWithValue("@Monto", EntradaCaja.Total * -1);
                 SqlCmd.ExecuteNonQuery();
                 // Eliminamos la Salida de Caja
                 Sesion.Delete(EntradaCaja);
                 // Eliminamos la Deuda.
                 Deuda Deuda = (Deuda)HelperNHibernate.GetEntityByField("Deuda", "IDDocumento", EntradaCaja.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();
             }
         }
     }
 }
Пример #2
0
 public override void Start()
 {
     using (ISession Sesion = m_SessionFactory.OpenSession())
     {
         using (ITransaction Trans = Sesion.BeginTransaction())
         {
             try
             {
                 EntradaCaja EntradaCaja = (EntradaCaja)m_ObjectFlow;
                 SqlCommand  SqlCmd      = new SqlCommand();
                 // Actualizamos el saldo de la Caja
                 SqlCmd.Connection  = (SqlConnection)Sesion.Connection;
                 SqlCmd.CommandType = System.Data.CommandType.StoredProcedure;
                 SqlCmd.CommandText = "pSF_Actualizar_Saldo_Caja";
                 Trans.Enlist(SqlCmd);
                 SqlCmd.Parameters.AddWithValue("@IDCaja", EntradaCaja.Caja.ID);
                 SqlCmd.Parameters.AddWithValue("@Monto", EntradaCaja.Total);
                 SqlCmd.ExecuteNonQuery();
                 // Creamos la Salida de Caja
                 Sesion.Save(EntradaCaja);
                 Sesion.Flush();
                 // Creamos una Deuda.
                 if (EntradaCaja.TipoCaja.GeneraDeuda)
                 {
                     Deuda Deuda = new Deuda();
                     Deuda.Tipo           = EntradaCaja.TipoCaja.TipoDeuda;
                     Deuda.TipoDocumento  = "Entrada de Caja";
                     Deuda.IDDocumento    = EntradaCaja.ID;
                     Deuda.Descripcion    = EntradaCaja.TipoDocumento.Nombre;
                     Deuda.IDSocioNegocio = (EntradaCaja.SocioNegocio != null) ? EntradaCaja.SocioNegocio.ID : null;
                     Deuda.Saldo          = EntradaCaja.Total;
                     Deuda.Total          = EntradaCaja.Total;
                     Sesion.Save(Deuda);
                 }
                 // Actualizamos la Numeración de la Salida de Caja
                 if (EntradaCaja.TipoDocumento.GeneraNumeracionAlFinal)
                 {
                     SqlCmd.CommandText = "pSF_Generar_Numeracion";
                     SqlCmd.Parameters.Clear();
                     SqlCmd.Parameters.AddWithValue("@Documento", "EntradaCaja");
                     SqlCmd.Parameters.AddWithValue("@TipoDocumento", "TipoCaja");
                     SqlCmd.Parameters.AddWithValue("@IDDocumento", EntradaCaja.ID);
                     SqlCmd.Parameters.AddWithValue("@IDTipoDocumento", EntradaCaja.TipoDocumento.ID);
                     SqlCmd.ExecuteNonQuery();
                 }
                 Trans.Commit();
                 m_ResultProcess = EnumResult.SUCESS;
             }
             catch (Exception ex)
             {
                 Trans.Rollback();
                 m_ResultProcess = EnumResult.ERROR;
                 SoftException.Control(ex);
             }
             finally
             {
                 base.Start();
             }
         }
     }
 }