コード例 #1
0
 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();
             }
         }
     }
 }
コード例 #2
0
 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();
 }
コード例 #3
0
        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();
                    }
                }
            }
        }