public DataSet GetImpresionFEDS(String x_procedure, ObservableCollection <Infrastructure.Aspect.DataAccess.DataAccessFilterSQL> x_filters, String x_usuario, Int16 x_sucr_codigo, Boolean x_transaccion = false, String Email = "")
        {
            DataSet dsResultado;

            try
            {
                Boolean m_iscorrect = true, m_generado = false;
                int     CCCT_Codigo = 0; Int16 EMPR_Codigo = 0; String TIPO_CodFPG;
                DataAccessEnterpriseSQL.DABeginTransaction();

                dsResultado = SelectDS(x_procedure, x_filters, ref EMPR_Codigo, ref CCCT_Codigo, ref m_generado, false);



                if (dsResultado.Tables.Count > 0 && dsResultado.Tables[0].Rows.Count > 0 && m_generado)
                {
                    GAsientos genAsientos = new GAsientos(GAsientos.TipoAsiento.AsientoVenta);
                    genAsientos.ItemCtaCte = new CtaCte();
                    genAsientos.ItemCtaCte = BL_CtaCte.GetOne(EMPR_Codigo, CCCT_Codigo);

                    m_iscorrect = genAsientos.GenerarAsiento(x_usuario, x_sucr_codigo);
                    if (m_iscorrect)
                    {
                        m_iscorrect = genAsientos.ActualizarCtaCte(x_usuario);
                    }
                }



                //FACTURACION ELECTRONICA
                if (m_iscorrect)
                {
                    eFacturacionElectronica facturacionElectronica = new eFacturacionElectronica();
                    DataTable dtResultadoFacturacionElectronica    = new DataTable();
                    dtResultadoFacturacionElectronica = facturacionElectronica.ProcesarFacturacionElectronica(dsResultado.Tables[0].Rows[0]["DOCV_Codigo"].ToString(), Email, x_usuario);
                    dsResultado.Tables.Add(dtResultadoFacturacionElectronica);

                    string Resultado        = dtResultadoFacturacionElectronica.Rows[0]["resultado"].ToString();
                    string ResultadoDetalle = dtResultadoFacturacionElectronica.Rows[0]["mensajeerror"].ToString();
                    if (Resultado == "ERROR")
                    {
                        throw new System.Exception(ResultadoDetalle);
                    }
                }

                if (m_iscorrect)
                {
                    DataAccessEnterpriseSQL.DACommitTransaction();
                }
                else
                {
                    throw new Exception("No se completo el proce de generación de documento");
                }
            }
            catch (Exception)
            { DataAccessEnterpriseSQL.DARollbackTransaction(); dsResultado = null; throw; }
            return(dsResultado);
        }