Exemple #1
0
    public FuncionesContab(int nCiaContab, int nMoneda, dbContabDataContext dbContab)
    {
        //
        // TODO: Add constructor logic here
        //

        _CiaContab = nCiaContab;
        _Moneda    = nMoneda;
        _dbContab  = dbContab;
    }
    protected void LeerCuentasContablesAsociadas_Button_Click(object sender, EventArgs e)
    {
        // leemos las cuentas contables asociadas al código de presupuesto seleccionado y las marcamos en el
        // ListBox de cuentas contables

        // antes eliminamos cualquier selección que pueda existir para el ListBox

        CuentasContables_ListBox.SelectedIndex = -1;

        // primero verificamos que exista una cia contab y un código de presupuesto seleccionados

        if (CodigosPresupuesto_ListBox.SelectedIndex == -1 || CiasContab_DropDownList.SelectedValue == "-1")
        {
            ErrMessage_Span.InnerHtml        = "Ud. debe seleccionar una compañía Contab y un código de presupuesto antes de intentar ejecutar esta función.";
            ErrMessage_Span.Style["display"] = "block";

            return;
        }

        dbContabDataContext dbContab = new dbContabDataContext();

        IEnumerable <int> CuentasContables = from cc in dbContab.Presupuesto_AsociacionCodigosCuentas
                                             where cc.CiaContab == int.Parse(CiasContab_DropDownList.SelectedValue) &&
                                             cc.CodigoPresupuesto == CodigosPresupuesto_ListBox.SelectedValue
                                             select cc.CuentaContableID;

        int RecCount = 0;

        for (int i = 0; i < CuentasContables_ListBox.Items.Count; i++)
        {
            int a = (from aa in CuentasContables
                     where aa == Convert.ToInt32(CuentasContables_ListBox.Items[i].Value)
                     select aa).Count();

            if (a == 0)
            {
                // la cuenta contable leída desde el ListBox no existe en el query de cuentas para el código
                // de presupuesto seleccionado
                continue;
            }

            // la cuenta contable en el ListBox existe en el query; la seleccionamos

            CuentasContables_ListBox.Items[i].Selected = true;

            RecCount++;
        }

        CodigosPresupuesto_Message_Span.InnerHtml = "Ok, existen " + RecCount.ToString() +
                                                    " cuentas contables asociadas al código de presupuesto " +
                                                    CodigosPresupuesto_ListBox.SelectedValue +
                                                    ". <br /><br />Fueron seleccionadas en la lista de cuentas contables.";
        CodigosPresupuesto_Message_Span.Style["display"] = "block";
    }
Exemple #3
0
    protected void Presupuesto_Montos_LinqDataSource_Selecting(object sender, LinqDataSourceSelectEventArgs e)
    {
        LinqDataSource      myLinqDataSource = this.Presupuesto_Montos_LinqDataSource;
        dbContabDataContext dbContab         = new dbContabDataContext();

        var query = dbContab.Presupuesto_Montos.Select(m => m);

        if (Anos_DropDownList.SelectedIndex != -1)
        {
            query = query.Where(m => m.Ano == Convert.ToInt16(this.Anos_DropDownList.SelectedValue));
        }

        if (Monedas_DropDownList.SelectedIndex != -1)
        {
            query = query.Where(m => m.Moneda == Convert.ToInt32(Monedas_DropDownList.SelectedValue));
        }

        if (CiasContab_DropDownList.SelectedIndex != -1)
        {
            query = query.Where(m => m.CiaContab == Convert.ToInt32(this.CiasContab_DropDownList.SelectedValue));
        }

        if (!string.IsNullOrEmpty(this.CodigoCuentaPresupuesto_TextBox.Text))
        {
            if (this.CodigoCuentaPresupuesto_TextBox.Text.Contains("*"))
            {
                if (this.CodigoCuentaPresupuesto_TextBox.Text.StartsWith("*"))
                {
                    query = query.Where(m => m.CodigoPresupuesto.EndsWith(this.CodigoCuentaPresupuesto_TextBox.Text.Replace("*", "")));
                }
                else if (this.CodigoCuentaPresupuesto_TextBox.Text.EndsWith("*"))
                {
                    query = query.Where(m => m.CodigoPresupuesto.StartsWith(this.CodigoCuentaPresupuesto_TextBox.Text.Replace("*", "")));
                }
                else
                {
                    query = query.Where(m => m.CodigoPresupuesto.Contains(this.CodigoCuentaPresupuesto_TextBox.Text));
                }
            }
            else
            {
                query = query.Where(m => m.CodigoPresupuesto.Contains(this.CodigoCuentaPresupuesto_TextBox.Text));
            }
        }

        e.Result = query;
    }
    private void RefreshAndBindInfo()
    {
        if (!User.Identity.IsAuthenticated)
        {
            FormsAuthentication.SignOut();
            return;
        }


        if (Session["FiltroForma"] == null)
        {
            ErrMessage_Span.InnerHtml = "Aparentemente, Ud. no ha indicado un filtro aún.<br />Por favor indique y " +
                                        "aplique un filtro antes de intentar mostrar el resultado de la consulta.";
            ErrMessage_Span.Style["display"] = "block";

            return;
        }

        dbContabDataContext dbContab = new dbContabDataContext();

        // --------------------------------------------------------------------------------------------
        // determinamos el mes y año fiscales, para usarlos como criterio para buscar el saldo en la tabla
        // SaldosContables. En esta table, los saldos están para el mes fiscal y no para el mes calendario.
        // Los meses solo varían cuando el año fiscal no es igual al año calendario

        // --------------------------------------------------------------------------------------------
        // eliminamos el contenido de la tabla temporal

        try
        {
            dbContab.ExecuteCommand("Delete From tTempWebReport_PresupuestoConsultaMontosEstimados Where NombreUsuario = {0}", Membership.GetUser().UserName);
        }
        catch (Exception ex)
        {
            dbContab.Dispose();

            ErrMessage_Span.InnerHtml = "Ha ocurrido un error al intentar ejecutar una operación de acceso a la base de datos.<br />" +
                                        "El mensaje específico de error es: " + ex.Message + "<br />";
            ErrMessage_Span.Style["display"] = "block";

            return;
        }

        // usamos el criterio que indico el usuario para leer los códigos de presupuesto y sus montos
        // estimados y registrar esta información en una tabla 'temporal' (tTempWebReport...)

        var query = dbContab.ExecuteQuery <Presupuesto_Monto>(
            "Select * From Presupuesto_Montos Where " +
            Session["FiltroForma"].ToString());

        List <tTempWebReport_PresupuestoConsultaMontosEstimado> TemporalRecords_List =
            new List <tTempWebReport_PresupuestoConsultaMontosEstimado>();
        tTempWebReport_PresupuestoConsultaMontosEstimado TemporalRecord;

        foreach (Presupuesto_Monto record in query)
        {
            TemporalRecord = new tTempWebReport_PresupuestoConsultaMontosEstimado();

            TemporalRecord.Moneda            = record.Moneda;
            TemporalRecord.CiaContab         = record.CiaContab;
            TemporalRecord.AnoFiscal         = record.Ano;
            TemporalRecord.CodigoPresupuesto = record.CodigoPresupuesto;

            TemporalRecord.Mes01_Est = record.Mes01_Est;
            TemporalRecord.Mes02_Est = record.Mes02_Est;
            TemporalRecord.Mes03_Est = record.Mes03_Est;
            TemporalRecord.Mes04_Est = record.Mes04_Est;
            TemporalRecord.Mes05_Est = record.Mes05_Est;
            TemporalRecord.Mes06_Est = record.Mes06_Est;
            TemporalRecord.Mes07_Est = record.Mes07_Est;
            TemporalRecord.Mes08_Est = record.Mes08_Est;
            TemporalRecord.Mes09_Est = record.Mes09_Est;
            TemporalRecord.Mes10_Est = record.Mes10_Est;
            TemporalRecord.Mes11_Est = record.Mes11_Est;
            TemporalRecord.Mes12_Est = record.Mes12_Est;

            TemporalRecord.NombreUsuario = Membership.GetUser().UserName;

            TemporalRecords_List.Add(TemporalRecord);
        }

        try
        {
            dbContab.tTempWebReport_PresupuestoConsultaMontosEstimados.InsertAllOnSubmit(TemporalRecords_List);
            dbContab.SubmitChanges();
        }

        catch (Exception ex)
        {
            dbContab.Dispose();

            ErrMessage_Span.InnerHtml        = "Ha ocurrido un error al intentar ejecutar una operación de acceso a la base de datos. <br /> El mensaje específico de error es: " + ex.Message + "<br /><br />";
            ErrMessage_Span.Style["display"] = "block";
            return;
        }

        this.CiasContab_SqlDataSource.SelectParameters["NombreUsuario"].DefaultValue = Membership.GetUser().UserName;
        this.Monedas_SqlDataSource.SelectParameters["NombreUsuario"].DefaultValue    = Membership.GetUser().UserName;
        this.Anos_SqlDataSource.SelectParameters["NombreUsuario"].DefaultValue       = Membership.GetUser().UserName;

        CiasContab_DropDownList.DataBind();
        Monedas_DropDownList.DataBind();
        Anos_DropDownList.DataBind();

        // intentamos usar como parametros del LinqDataSource el primer item en los combos Monedas y CiasContab

        if (this.CiasContab_DropDownList.Items.Count > 0)
        {
            CiasContab_DropDownList.SelectedIndex = 0;
        }

        if (this.Monedas_DropDownList.Items.Count > 0)
        {
            Monedas_DropDownList.SelectedIndex = 0;
        }

        if (this.Anos_DropDownList.Items.Count > 0)
        {
            Anos_DropDownList.SelectedIndex = 0;
        }

        // establecemos los valores de los parámetros en el LinqDataSource


        MontosEstimados_SqlDataSource.SelectParameters["CiaContab"].DefaultValue = "-999";
        MontosEstimados_SqlDataSource.SelectParameters["Moneda"].DefaultValue    = "-99";
        MontosEstimados_SqlDataSource.SelectParameters["AnoFiscal"].DefaultValue = "-99";

        if (CiasContab_DropDownList.SelectedValue != null &&
            CiasContab_DropDownList.SelectedValue.ToString() != "")
        {
            MontosEstimados_SqlDataSource.SelectParameters["CiaContab"].DefaultValue =
                CiasContab_DropDownList.SelectedValue.ToString();
        }

        if (Monedas_DropDownList.SelectedValue != null &&
            Monedas_DropDownList.SelectedValue.ToString() != "")
        {
            MontosEstimados_SqlDataSource.SelectParameters["Moneda"].DefaultValue =
                Monedas_DropDownList.SelectedValue.ToString();
        }

        if (Anos_DropDownList.SelectedValue != null &&
            Anos_DropDownList.SelectedValue.ToString() != "")
        {
            MontosEstimados_SqlDataSource.SelectParameters["AnoFiscal"].DefaultValue =
                Anos_DropDownList.SelectedValue.ToString();
        }

        MontosEstimados_SqlDataSource.SelectParameters["NombreUsuario"].DefaultValue = Membership.GetUser().UserName;

        MontosEstimados_ListView.DataBind();

        dbContab.Dispose();
    }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                if (Session["FechaInicialPeriodo"] == null || Session["FechaFinalPeriodo"] == null)
                {
                    CustomValidator1.IsValid      = false;
                    CustomValidator1.ErrorMessage = "Aparentemente, Ud. no ha aplicado un filtro; debe hacerlo antes de intentar ejecutar esta consulta.";

                    return;
                }

                // nótese cómo obtenemos la moneda nacional que viene como un parámetro. La necesitamos para saber si debemos o no reconvertir (reconversión de Oct/21)
                if (Session["monedaNacional"] == null)
                {
                    CustomValidator1.IsValid      = false;
                    CustomValidator1.ErrorMessage = "Upsss, esta consulta no ha recibido un valor para la moneda nacional. <br /> " +
                                                    "Por favor revise esta situación y corríjala para que sea posible la ejecución de esta consulta.";

                    return;
                }

                var monedaNacional = 0;
                var moneda         = 0;

                try
                {
                    monedaNacional = Convert.ToInt32(Session["monedaNacional"]);
                    moneda         = Convert.ToInt32(Request.QueryString["mon"]);
                } catch (Exception err)
                {
                    CustomValidator1.IsValid      = false;
                    CustomValidator1.ErrorMessage = "Hemos obtenido un error al intentar obtener la moneda y/o moneda nacional. <br /> " +
                                                    "El mensaje específico del error obtenido es: " + err.Message;
                    return;
                }

                // para saber si el usuario quiere reconvertir las cifras anteriores al 1-Oct-21
                bool bReconvertirCifrasAntes_01Oct2021 = false;

                if (Session["ReconvertirCifrasAntes_01Oct2021"] != null)
                {
                    bReconvertirCifrasAntes_01Oct2021 = (bool)Session["ReconvertirCifrasAntes_01Oct2021"];
                }

                dbContabDataContext dbContab = new dbContabDataContext();

                var query = (from cta in dbContab.CuentasContables
                             where cta.ID == Convert.ToInt32(Request.QueryString["cta"])
                             select new { cta.CuentaEditada, cta.Descripcion }).FirstOrDefault();

                DateTime FechaInicialPeriodo = (System.DateTime)Session["FechaInicialPeriodo"];
                DateTime FechaFinalPeriodo   = (System.DateTime)Session["FechaFinalPeriodo"];

                TituloPagina.InnerHtml = "Movimientos contables para la cuenta <i>" + query.CuentaEditada + " - " + query.Descripcion + "</i><br /> en el período " + FechaInicialPeriodo.ToString("dd-MMM-yy") + " a " + FechaFinalPeriodo.ToString("dd-MMM-yy");

                // ------------------------------------------------------------------------------------------------------------------
                // para dar valores a los parámetros del SqlDataSource
                this.MovimientosContables_SqlDataSource.SelectParameters["CuentaContableID"].DefaultValue = Request.QueryString["cta"];
                this.MovimientosContables_SqlDataSource.SelectParameters["Moneda"].DefaultValue           = Request.QueryString["mon"];

                this.MovimientosContables_SqlDataSource.SelectParameters["FechaInicialPeriodo"].DefaultValue = Session["FechaInicialPeriodo"].ToString();
                this.MovimientosContables_SqlDataSource.SelectParameters["FechaFinalPeriodo"].DefaultValue   = Session["FechaFinalPeriodo"].ToString();
                // ------------------------------------------------------------------------------------------------------------------

                Label MySumOfDebe_Label  = (Label)BalanceComprobacion_ListView.FindControl("SumOfDebe_Label");
                Label MySumOfHaber_Label = (Label)BalanceComprobacion_ListView.FindControl("SumOfHaber_Label");

                decimal?nTotalDebe  = 0;
                decimal?nTotalHaber = 0;

                DateTime fechaInicialPeriodo = Convert.ToDateTime(Session["FechaInicialPeriodo"].ToString());
                DateTime fechaFinalPeriodo   = Convert.ToDateTime(Session["FechaFinalPeriodo"].ToString());

                // ahora sumarizamos el debe y el haber para la cuenta y período indicados ...
                if (bReconvertirCifrasAntes_01Oct2021 && (moneda == monedaNacional))
                {
                    // Nota: cuando el usuario quiere reconvertir, excluimos el asiento de reconversión
                    // primero leemos valores *anteriores* a 1/Oct/21 y reconvertimos
                    nTotalDebe = (from d in dbContab.dAsientos
                                  where d.CuentaContableID == Convert.ToInt32(Request.QueryString["cta"].ToString()) &&
                                  d.Asiento.Moneda == Convert.ToInt32(Request.QueryString["mon"]) &&
                                  (d.Asiento.Fecha >= fechaInicialPeriodo && d.Asiento.Fecha < new DateTime(2021, 10, 1)) &&
                                  (d.Referencia == null || d.Referencia != "Reconversión 2021")
                                  select(decimal?) d.Debe).Sum();

                    nTotalHaber = (from d in dbContab.dAsientos
                                   where d.CuentaContableID == Convert.ToInt32(Request.QueryString["cta"].ToString()) &&
                                   d.Asiento.Moneda == Convert.ToInt32(Request.QueryString["mon"]) &&
                                   (d.Asiento.Fecha >= fechaInicialPeriodo && d.Asiento.Fecha < new DateTime(2021, 10, 1)) &&
                                   (d.Referencia == null || d.Referencia != "Reconversión 2021")
                                   select(decimal?) d.Haber).Sum();

                    // luego leemos valores *posteriores* a 1/Oct/21 y *no* reconvertimos
                    var nTotalDebe2 = (from d in dbContab.dAsientos
                                       where d.CuentaContableID == Convert.ToInt32(Request.QueryString["cta"].ToString()) &&
                                       d.Asiento.Moneda == Convert.ToInt32(Request.QueryString["mon"]) &&
                                       (d.Asiento.Fecha >= fechaInicialPeriodo && d.Asiento.Fecha <= fechaFinalPeriodo) &&
                                       d.Asiento.Fecha >= new DateTime(2021, 10, 1) &&
                                       (d.Referencia == null || d.Referencia != "Reconversión 2021")
                                       select(decimal?) d.Debe).Sum();

                    var nTotalHaber2 = (from d in dbContab.dAsientos
                                        where d.CuentaContableID == Convert.ToInt32(Request.QueryString["cta"].ToString()) &&
                                        d.Asiento.Moneda == Convert.ToInt32(Request.QueryString["mon"]) &&
                                        (d.Asiento.Fecha >= fechaInicialPeriodo && d.Asiento.Fecha <= fechaFinalPeriodo) &&
                                        d.Asiento.Fecha >= new DateTime(2021, 10, 1) &&
                                        (d.Referencia == null || d.Referencia != "Reconversión 2021")
                                        select(decimal?) d.Haber).Sum();

                    nTotalDebe   = nTotalDebe.HasValue ? nTotalDebe.Value : 0;
                    nTotalHaber  = nTotalHaber.HasValue ? nTotalHaber.Value : 0;
                    nTotalDebe2  = nTotalDebe2.HasValue ? nTotalDebe2.Value : 0;
                    nTotalHaber2 = nTotalHaber2.HasValue ? nTotalHaber2.Value : 0;

                    // reconvertimos
                    nTotalDebe  = Math.Round((nTotalDebe.Value / 1000000), 2);
                    nTotalHaber = Math.Round((nTotalHaber.Value / 1000000), 2);

                    nTotalDebe  += nTotalDebe2;
                    nTotalHaber += nTotalHaber2;
                }
                else
                {
                    // Nota: cuando el usuario no quiere reconvertir, mantenemos el asiento de reconversión
                    nTotalDebe = (from d in dbContab.dAsientos
                                  where d.CuentaContableID == Convert.ToInt32(Request.QueryString["cta"].ToString()) &&
                                  d.Asiento.Moneda == Convert.ToInt32(Request.QueryString["mon"]) &&
                                  d.Asiento.Fecha >= fechaInicialPeriodo &&
                                  d.Asiento.Fecha <= fechaFinalPeriodo
                                  select(decimal?) d.Debe).Sum();

                    nTotalHaber = (from d in dbContab.dAsientos
                                   where d.CuentaContableID == Convert.ToInt32(Request.QueryString["cta"].ToString()) &&
                                   d.Asiento.Moneda == Convert.ToInt32(Request.QueryString["mon"]) &&
                                   d.Asiento.Fecha >= fechaInicialPeriodo &&
                                   d.Asiento.Fecha <= fechaFinalPeriodo
                                   select(decimal?) d.Haber).Sum();
                }

                dbContab = null;

                if (MySumOfDebe_Label != null)
                {
                    MySumOfDebe_Label.Text = nTotalDebe == null ? "0,00" : nTotalDebe.Value.ToString("#,##0.00");
                }

                if (MySumOfHaber_Label != null)
                {
                    MySumOfHaber_Label.Text = nTotalHaber == null ? "0,00" : nTotalHaber.Value.ToString("#,##0.00");
                }

                // ---------------------------------------------------------------------------------------------------------------
                // agregamos el select statement al Sql DataSource; la idea es cambiarlo dependiendo de si el usuario
                // quiere o no reconvertir las cifras por la reconversión de Oct/2.021.
                if (bReconvertirCifrasAntes_01Oct2021 && (moneda == monedaNacional))
                {
                    // Ok, el usuario quiere reconvertir. Reconvertimos solo cifras anteriores a Oct/2.021 y en moneda nacional
                    // hacemos un Union en el Select para aplicar la reconversión *solo* a movimientos anteriores al 1/Oct/2021

                    // Nota: cuando el usuario quiere reconvertir, excluimos el asiento de reconversion
                    this.MovimientosContables_SqlDataSource.SelectCommand =

                        // el 1er Select lee debe y haber *anterioes* al 1/Oct/21; reconvierte
                        "Select d.Partida, d.NumeroAutomatico, a.Numero As NumeroComprobanteContable, a.Fecha As Fecha, " +
                        "d.Descripcion As DescripcionPartida, d.Referencia, " +
                        "Round((d.Debe / 1000000), 2) as Debe, Round((d.Haber / 1000000), 2) as Haber, Count(l.Id) as NumLinks, " +
                        "co.Abreviatura As NombreCiaContab, m.Simbolo As SimboloMoneda, mo.Simbolo As SimboloMonedaOriginal " +

                        "From dAsientos d Inner Join Asientos a On d.NumeroAutomatico = a.NumeroAutomatico Inner Join Monedas m on a.Moneda = m.Moneda " +
                        "Inner Join Monedas mo on a.MonedaOriginal = mo.Moneda Inner Join Companias co on a.Cia = co.Numero " +
                        "Left Join Asientos_Documentos_Links l on a.NumeroAutomatico = l.NumeroAutomatico " +

                        "Where (d.CuentaContableID = @CuentaContableID) And (a.Moneda = @Moneda) And (a.Fecha >= @FechaInicialPeriodo and a.Fecha < @FechaFinalPeriodo) And " +
                        "(a.Fecha < '2021-10-1') And (d.Referencia Is Null Or d.Referencia <> 'Reconversión 2021') " +

                        "Group By d.Partida, d.NumeroAutomatico, a.Numero, a.Fecha, d.Descripcion, d.Referencia, d.Debe, d.Haber, co.Abreviatura, m.Simbolo, mo.Simbolo " +

                        "Union " +

                        // el 2do Select lee debe y haber *posteriores* al 1/Oct/21; no reconvierte
                        "Select d.Partida, d.NumeroAutomatico, a.Numero As NumeroComprobanteContable, a.Fecha As Fecha, " +
                        "d.Descripcion As DescripcionPartida, d.Referencia, d.Debe, d.Haber, Count(l.Id) as NumLinks, " +
                        "co.Abreviatura As NombreCiaContab, m.Simbolo As SimboloMoneda, mo.Simbolo As SimboloMonedaOriginal " +

                        "From dAsientos d Inner Join Asientos a On d.NumeroAutomatico = a.NumeroAutomatico Inner Join Monedas m on a.Moneda = m.Moneda " +
                        "Inner Join Monedas mo on a.MonedaOriginal = mo.Moneda Inner Join Companias co on a.Cia = co.Numero " +
                        "Left Join Asientos_Documentos_Links l on a.NumeroAutomatico = l.NumeroAutomatico " +

                        "Where (d.CuentaContableID = @CuentaContableID) And (a.Moneda = @Moneda) And (a.Fecha >= @FechaInicialPeriodo and a.Fecha <= @FechaFinalPeriodo) And " +
                        "(a.Fecha >= '2021-10-1') And (d.Referencia Is Null Or d.Referencia <> 'Reconversión 2021') " +

                        "Group By d.Partida, d.NumeroAutomatico, a.Numero, a.Fecha, d.Descripcion, d.Referencia, d.Debe, d.Haber, co.Abreviatura, m.Simbolo, mo.Simbolo " +

                        "Order By a.Fecha, a.Numero, d.Partida";
                }
            }
        }
    protected void AsociarCodigosACuentaContable_Button_Click(object sender, EventArgs e)
    {
        // verificamos que existan registros seleccionados en ambos ListBoxes: codigos y cuentas
        if (CodigosPresupuesto_ListBox.SelectedIndex == -1 ||
            CuentasContables_ListBox.SelectedIndex == -1 ||
            CiasContab_DropDownList.SelectedValue == "-1")
        {
            ErrMessage_Span.InnerHtml = "Ud. debe seleccionar un registro en la lista de códigos de presupuesto y uno o varios " +
                                        "registros en la tabla de cuentas contables.";
            ErrMessage_Span.Style["display"] = "block";

            return;
        }

        // agregamos registros a la tabla Presupuesto_AsociacionCodidosPresupuestoCuentasContables

        dbContabDataContext dbContab = new dbContabDataContext();

        Presupuesto_AsociacionCodigosCuenta        MyPresupuesto_AsociacionCodigosCuentas;
        List <Presupuesto_AsociacionCodigosCuenta> MyPresupuesto_AsociacionCodigosCuentas_List = new List <Presupuesto_AsociacionCodigosCuenta>();

        int RecCount = 0;

        for (int i = 0; i < CuentasContables_ListBox.Items.Count; i++)
        {
            if (!(CuentasContables_ListBox.Items[i].Selected))
            {
                continue;
            }

            // el item está seleccionado en el listbox; lo agregamos a nuestra lista

            MyPresupuesto_AsociacionCodigosCuentas = new Presupuesto_AsociacionCodigosCuenta();

            MyPresupuesto_AsociacionCodigosCuentas.CodigoPresupuesto = CodigosPresupuesto_ListBox.SelectedValue;
            MyPresupuesto_AsociacionCodigosCuentas.CuentaContableID  = Convert.ToInt32(CuentasContables_ListBox.Items[i].Value);
            MyPresupuesto_AsociacionCodigosCuentas.CiaContab         = int.Parse(CiasContab_DropDownList.SelectedValue);

            MyPresupuesto_AsociacionCodigosCuentas_List.Add(MyPresupuesto_AsociacionCodigosCuentas);

            RecCount++;
        }

        // primero intentamos eliminar los registros de la tabla, por si acaso algunos existen

        try
        {
            dbContab.ExecuteCommand("Delete From Presupuesto_AsociacionCodigosCuentas Where CodigoPresupuesto = {0} And CiaContab = {1}", CodigosPresupuesto_ListBox.SelectedValue, CiasContab_DropDownList.SelectedValue);

            // Ok, ahora que sabemos que los registros no existen, los agregamos

            dbContab.Presupuesto_AsociacionCodigosCuentas.InsertAllOnSubmit(MyPresupuesto_AsociacionCodigosCuentas_List);
            dbContab.SubmitChanges();

            CuentasContables_Message_Span.InnerHtml        = "Ok, " + RecCount.ToString() + " cuentas contables fueron asociadas al código de presupuesto " + CodigosPresupuesto_ListBox.SelectedValue;
            CuentasContables_Message_Span.Style["display"] = "block";
        }
        catch (Exception ex)
        {
            ErrMessage_Span.InnerHtml        = "Ha ocurrido un error al intentar agregar la información a la base de datos.<br />El mensaje específico de error es: " + ex.Message;
            ErrMessage_Span.Style["display"] = "block";

            return;
        }
    }
Exemple #7
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!User.Identity.IsAuthenticated)
            {
                FormsAuthentication.SignOut();
                return;
            }

            if (!Page.IsPostBack)
            {
                switch (Request.QueryString["rpt"].ToString())
                {
                case "ptomtosest":
                {
                    if (!User.Identity.IsAuthenticated)
                    {
                        FormsAuthentication.SignOut();
                        return;
                    }

                    Presupuesto_MontosEstimados MyReportDataSet      = new Presupuesto_MontosEstimados();
                    MontosEstimadosTableAdapter MyReportTableAdapter = new MontosEstimadosTableAdapter();

                    MyReportTableAdapter.FillByNombreUsuario(MyReportDataSet.MontosEstimados, Membership.GetUser().UserName);

                    if (MyReportDataSet.MontosEstimados.Rows.Count == 0)
                    {
                        ErrMessage_Cell.InnerHtml = "No existe información para mostrar el reporte que Ud. " +
                                                    "ha requerido. <br /><br /> Probablemente Ud. no ha aplicado un filtro y " +
                                                    "seleccionado información aún.";
                        return;
                    }


                    // -----------------------------------------------------------------------------------------------

                    ReportViewer1.LocalReport.ReportPath = "Contab/Presupuesto/Consultas/Montos estimados/MontosEstimados.rdlc";

                    ReportDataSource myReportDataSource = new ReportDataSource();

                    myReportDataSource.Name  = "Presupuesto_MontosEstimados_MontosEstimados";
                    myReportDataSource.Value = MyReportDataSet.MontosEstimados;

                    ReportViewer1.LocalReport.DataSources.Add(myReportDataSource);

                    // para ejecutar un procedimiento que procesa el sub report

                    ReportViewer1.LocalReport.SubreportProcessing += Report_SubreportProcessingEventHandler;

                    ReportViewer1.LocalReport.Refresh();

                    break;
                }

                case "ptoconsmes":
                {
                    if (!User.Identity.IsAuthenticated)
                    {
                        FormsAuthentication.SignOut();
                        return;
                    }

                    string cantNiveles = Request.QueryString["cantniveles"].ToString();

                    Presupuesto_ConsultaMensual    MyReportDataSet      = new Presupuesto_ConsultaMensual();
                    PresupuestoMensualTableAdapter MyReportTableAdapter = new PresupuestoMensualTableAdapter();

                    MyReportTableAdapter.FillByNombreUsuario(MyReportDataSet.PresupuestoMensual,
                                                             Membership.GetUser().UserName);

                    if (MyReportDataSet.PresupuestoMensual.Rows.Count == 0)
                    {
                        ErrMessage_Cell.InnerHtml = "No existe información para mostrar el reporte que Ud. " +
                                                    "ha requerido. <br /><br /> Probablemente Ud. no ha aplicado un filtro y " +
                                                    "seleccionado información aún.";
                        return;
                    }

                    ReportViewer1.LocalReport.ReportPath = "Contab/Presupuesto/Consultas/Mensual/ConsultaMensual.rdlc";

                    ReportDataSource myReportDataSource = new ReportDataSource();

                    myReportDataSource.Name  = "Presupuesto_ConsultaMensual_PresupuestoMensual";
                    myReportDataSource.Value = MyReportDataSet.PresupuestoMensual;

                    ReportViewer1.LocalReport.DataSources.Add(myReportDataSource);

                    dbContabDataContext dbContab = new dbContabDataContext();

                    var queryMesAno = (from t in dbContab.tTempWebReport_PresupuestoConsultaMensuals
                                       where t.NombreUsuario == Membership.GetUser().UserName
                                       select new
                        {
                            t.NombreMes,
                            t.AnoFiscal,
                            t.FactorConversion
                        })
                                      .FirstOrDefault();

                    if (queryMesAno == null)
                    {
                        ErrMessage_Cell.InnerHtml = "No existe información para mostrar el reporte que Ud. " +
                                                    "ha requerido. <br /><br /> Probablemente Ud. no ha aplicado un filtro y " +
                                                    "seleccionado información aún.";
                        return;
                    }

                    string mes = queryMesAno.NombreMes;
                    string ano = queryMesAno.AnoFiscal.ToString();
                    string sFactorConversion = queryMesAno.FactorConversion.ToString("N2");

                    dbContab = null;

                    ReportParameter Mes_ReportParameter = new ReportParameter("Mes", mes);
                    ReportParameter Ano_ReportParameter = new ReportParameter("Ano", ano);
                    ReportParameter FactorConversion_ReportParameter =
                        new ReportParameter("FactorConversion", sFactorConversion);
                    ReportParameter CantNiveles_ReportParameter = new ReportParameter("CantNiveles",
                                                                                      cantNiveles);

                    ReportParameter[] MyReportParameters =
                    {
                        Mes_ReportParameter,
                        Ano_ReportParameter,
                        FactorConversion_ReportParameter,
                        CantNiveles_ReportParameter
                    };

                    ReportViewer1.LocalReport.SetParameters(MyReportParameters);

                    ReportViewer1.LocalReport.Refresh();

                    break;
                }

                case "ptoconsanual":
                {
                    if (!User.Identity.IsAuthenticated)
                    {
                        FormsAuthentication.SignOut();
                        return;
                    }

                    string cantNiveles = Request.QueryString["cantniveles"].ToString();

                    Presupuesto_ConsultaAnual             MyReportDataSet      = new Presupuesto_ConsultaAnual();
                    Presupuesto_ConsultaAnualTableAdapter MyReportTableAdapter = new
                                                                                 Presupuesto_ConsultaAnualTableAdapter();

                    MyReportTableAdapter.FillByNombreUsuario(MyReportDataSet._Presupuesto_ConsultaAnual, Membership.GetUser().UserName);

                    if (MyReportDataSet._Presupuesto_ConsultaAnual.Rows.Count == 0)
                    {
                        ErrMessage_Cell.InnerHtml = "No existe información para mostrar el reporte que Ud. " +
                                                    "ha requerido. <br /><br /> Probablemente Ud. no ha aplicado un filtro y " +
                                                    "seleccionado información aún.";
                        return;
                    }

                    ReportViewer1.LocalReport.ReportPath = "Contab/Presupuesto/Consultas/Anual/ConsultaAnual.rdlc";

                    ReportDataSource myReportDataSource = new ReportDataSource();

                    myReportDataSource.Name  = "Presupuesto_ConsultaAnual_Presupuesto_ConsultaAnual";
                    myReportDataSource.Value = MyReportDataSet._Presupuesto_ConsultaAnual;

                    ReportViewer1.LocalReport.DataSources.Add(myReportDataSource);

                    dbContabDataContext dbContab = new dbContabDataContext();

                    short nAnoFiscalReporte = (from t in dbContab.tTempWebReport_PresupuestoConsultaAnuals
                                               where t.NombreUsuario == Membership.GetUser().UserName
                                               select t.AnoFiscal).FirstOrDefault();

                    dbContab = null;

                    ReportParameter AnoFiscal_ReportParameter = new ReportParameter("AnoFiscal",
                                                                                    nAnoFiscalReporte.ToString());

                    ReportParameter CifrasConvertidas_ReportParameter =
                        new ReportParameter("CifrasConvertidas", "0");

                    if (Request.QueryString["conv"] != null && Request.QueryString["conv"].ToString() == "1")
                    {
                        CifrasConvertidas_ReportParameter.Values[0] = "1";
                    }

                    ReportParameter CantNiveles_ReportParameter = new ReportParameter("CantNiveles",
                                                                                      cantNiveles);


                    ReportParameter[] MyReportParameters3 = { AnoFiscal_ReportParameter,
                                                              CifrasConvertidas_ReportParameter,
                                                              CantNiveles_ReportParameter };

                    ReportViewer1.LocalReport.SetParameters(MyReportParameters3);

                    ReportViewer1.LocalReport.Refresh();

                    break;
                }
                }
            }
        }
Exemple #8
0
    protected void Page_PreRender(object sender, EventArgs e)
    {
        if (ConsultaPresupuesto_ListView.HasControls())
        {
            // intentamos leer un registro en la tabla tTempWebReport..., para obtener la compañía Contab
            // usada en el filtro y leer los nombres de meses para ésta. NOTESE QUE si el usuario
            // selecciona más de una Cia Contab en el filtro y sus años fiscales difieren, los nombres
            // de meses en el encabezado pueden ser inconsistentes ...

            dbContabDataContext dbContab = new dbContabDataContext();

            var ciaContab = (from t in dbContab.tTempWebReport_PresupuestoConsultaAnuals
                             where t.NombreUsuario == User.Identity.Name
                             select t.CiaContab).FirstOrDefault();

            if (ciaContab == 0)
            {
                return;
            }

            // leemos los nombres de cada mes y los monstramos en los encabezados de las columnas
            // en el ListView. Nótese que el ListView muestra meses fiscales y no calendario



            var meses = from m in dbContab.MesesDelAnoFiscals
                        where m.Mes >= 1 && m.Mes <= 12
                        where m.Cia == ciaContab
                        orderby m.MesFiscal
                        select m;

            foreach (var NombreMes in meses)
            {
                switch (NombreMes.MesFiscal)
                {
                case 1:
                {
                    ((HtmlTableCell)ConsultaPresupuesto_ListView.Controls[0]
                     .FindControl("Mes01_th")).InnerHtml = NombreMes.NombreMes;
                    break;
                }

                case 2:
                {
                    ((HtmlTableCell)ConsultaPresupuesto_ListView.Controls[0]
                     .FindControl("Mes02_th")).InnerHtml = NombreMes.NombreMes;
                    break;
                }

                case 3:
                {
                    ((HtmlTableCell)ConsultaPresupuesto_ListView.Controls[0]
                     .FindControl("Mes03_th")).InnerHtml = NombreMes.NombreMes;
                    break;
                }

                case 4:
                {
                    ((HtmlTableCell)ConsultaPresupuesto_ListView.Controls[0]
                     .FindControl("Mes04_th")).InnerHtml = NombreMes.NombreMes;
                    break;
                }

                case 5:
                {
                    ((HtmlTableCell)ConsultaPresupuesto_ListView.Controls[0]
                     .FindControl("Mes05_th")).InnerHtml = NombreMes.NombreMes;
                    break;
                }

                case 6:
                {
                    ((HtmlTableCell)ConsultaPresupuesto_ListView.Controls[0]
                     .FindControl("Mes06_th")).InnerHtml = NombreMes.NombreMes;
                    break;
                }

                case 7:
                {
                    ((HtmlTableCell)ConsultaPresupuesto_ListView.Controls[0]
                     .FindControl("Mes07_th")).InnerHtml = NombreMes.NombreMes;
                    break;
                }

                case 8:
                {
                    ((HtmlTableCell)ConsultaPresupuesto_ListView.Controls[0]
                     .FindControl("Mes08_th")).InnerHtml = NombreMes.NombreMes;
                    break;
                }

                case 9:
                {
                    ((HtmlTableCell)ConsultaPresupuesto_ListView.Controls[0]
                     .FindControl("Mes09_th")).InnerHtml = NombreMes.NombreMes;
                    break;
                }

                case 10:
                {
                    ((HtmlTableCell)ConsultaPresupuesto_ListView.Controls[0]
                     .FindControl("Mes10_th")).InnerHtml = NombreMes.NombreMes;
                    break;
                }

                case 11:
                {
                    ((HtmlTableCell)ConsultaPresupuesto_ListView.Controls[0]
                     .FindControl("Mes11_th")).InnerHtml = NombreMes.NombreMes;
                    break;
                }

                case 12:
                {
                    ((HtmlTableCell)ConsultaPresupuesto_ListView.Controls[0]
                     .FindControl("Mes12_th")).InnerHtml = NombreMes.NombreMes;
                    break;
                }
                }
            }

            dbContab = null;
        }
    }
    protected void CopiarCodigosPresupuesto_Button_Click(object sender, EventArgs e)
    {
        if (SourceCiaContab_ListBox.SelectedIndex == -1)
        {
            ErrMessage_Span.InnerHtml        = "Ud. debe seleccionar la compañía que contiene los códigos de presupuesto a copiar.";
            ErrMessage_Span.Style["Display"] = "Block";

            return;
        }

        if (TargetCiaContab_ListBox.SelectedIndex == -1)
        {
            ErrMessage_Span.InnerHtml        = "Ud. debe seleccionar la compañía a la cual serán copiados los códigos de presupuesto.";
            ErrMessage_Span.Style["Display"] = "Block";

            return;
        }

        if (TargetCiaContab_ListBox.SelectedValue == SourceCiaContab_ListBox.SelectedValue)
        {
            ErrMessage_Span.InnerHtml        = "Ud. debe seleccionar compañías diferentes.";
            ErrMessage_Span.Style["Display"] = "Block";

            return;
        }

        if (CopiarMontos_CheckBox.Checked && CopiarMontos_DropDownList.SelectedIndex == -1)
        {
            ErrMessage_Span.InnerHtml        = "Ud. marcó la opción que indica que se deben también copiar los registros de montos estimados; sin embargo, no se ha seleccionado un año para estos registros de montos.<br />Nota: es probable que los registros de montos NO EXISTAN para la compañía que contiene los códigos; por esta razón, tal vez los años de estos montos no estén ni siquiera en la lista.";
            ErrMessage_Span.Style["Display"] = "Block";

            return;
        }


        // chequeamos que la compañía Source tenga códigos de presupuesto registrados

        int nCantidadRegistros       = 0;
        dbContabDataContext dbContab = new dbContabDataContext();

        nCantidadRegistros = (from sc in dbContab.Presupuesto_Codigos
                              where sc.CiaContab ==
                              int.Parse(SourceCiaContab_ListBox.SelectedValue)
                              select sc).Count();

        if (nCantidadRegistros == 0)
        {
            ErrMessage_Span.InnerHtml = "La compañía " + SourceCiaContab_ListBox.SelectedItem + " no tiene códigos de presupuesto registrados que puedan " +
                                        "ser copiados a la compañía " + TargetCiaContab_ListBox.SelectedItem +
                                        ". Por favor revise esta situación.";
            ErrMessage_Span.Style["Display"] = "Block";

            dbContab = null;
            return;
        }

        // ahora chequeamos que la compañía Target NO TENGA códigos de presupuesto registrados; de ser así,
        // la opción Eliminar Registros debe estar marcada

        if (!EliminarCodigos_CheckBox.Checked)
        {
            int nCantidadCodigosTargetCia = (from a in dbContab.Presupuesto_Codigos
                                             where a.CiaContab == int.Parse(TargetCiaContab_ListBox.SelectedValue)
                                             select a.Codigo).Count();

            if (nCantidadCodigosTargetCia > 0)
            {
                ErrMessage_Span.InnerHtml = "La compañía " + TargetCiaContab_ListBox.SelectedItem + " TIENE códigos de presupuesto registrados. " +
                                            "Ud. DEBE marcar la opción que permite eliminar estos registros antes de efectuar la copia de los códigos desde la compañía " +
                                            SourceCiaContab_ListBox.SelectedItem + ".";
                ErrMessage_Span.Style["Display"] = "Block";

                dbContab = null;
                return;
            }
        }


        dbContab = null;

        // ------------------------------------------------------------------------------
        // inicializamos antes las variables que indican que debemos mostrar el progreso

        Session["Progress_Completed"]  = 0;
        Session["Progress_Percentage"] = 0;
        // ------------------------------------------------------------------------------

        Thread MyThread = new Thread(CopiarMontosEntreCias);

        MyThread.Priority = ThreadPriority.Lowest;
        MyThread.Start();

        //ejecutamos javascript para que lea la variable session y muestre el progreso

        System.Text.StringBuilder sb = new System.Text.StringBuilder();
        sb.Append("<script language='javascript'>");
        sb.Append("showprogress();");
        sb.Append("</script>");

        ClientScript.RegisterStartupScript(this.GetType(), "onLoad", sb.ToString());
    }
Exemple #10
0
    protected void AjustarMontosEstimados_Confirmacion_Button_Click(object sender, EventArgs e)
    {
        // ajustamos los montos de cuentas seleccionadas, en el porcentaje indicado por el usuario ...

        decimal porcentaje;

        if (!decimal.TryParse(this.AjustarMontosMensuales_Porcentaje_TextBox.Text, out porcentaje))
        {
            GeneralError_Span.InnerHtml = "Aparentemente, el valor indicado como porcentaje no es correcto.<br />" +
                                          "Por favor indique un número para este campo; ejemplos: 30; 30,5; -30,5; 10,75; ...";
            GeneralError_Span.Style["display"] = "block";

            return;
        }



        dbContabDataContext dbContab = new dbContabDataContext();

        var query = dbContab.Presupuesto_Montos.Select(m => m);

        if (Anos_DropDownList.SelectedIndex != -1)
        {
            query = query.Where(m => m.Ano == Convert.ToInt16(this.Anos_DropDownList.SelectedValue));
        }

        if (Monedas_DropDownList.SelectedIndex != -1)
        {
            query = query.Where(m => m.Moneda == Convert.ToInt32(Monedas_DropDownList.SelectedValue));
        }

        if (CiasContab_DropDownList.SelectedIndex != -1)
        {
            query = query.Where(m => m.CiaContab == Convert.ToInt32(this.CiasContab_DropDownList.SelectedValue));
        }

        if (!string.IsNullOrEmpty(this.CodigoCuentaPresupuesto_TextBox.Text))
        {
            if (this.CodigoCuentaPresupuesto_TextBox.Text.Contains("*"))
            {
                if (this.CodigoCuentaPresupuesto_TextBox.Text.StartsWith("*"))
                {
                    query = query.Where(m => m.CodigoPresupuesto.EndsWith(this.CodigoCuentaPresupuesto_TextBox.Text.Replace("*", "")));
                }
                else if (this.CodigoCuentaPresupuesto_TextBox.Text.EndsWith("*"))
                {
                    query = query.Where(m => m.CodigoPresupuesto.StartsWith(this.CodigoCuentaPresupuesto_TextBox.Text.Replace("*", "")));
                }
                else
                {
                    query = query.Where(m => m.CodigoPresupuesto.Contains(this.CodigoCuentaPresupuesto_TextBox.Text));
                }
            }
            else
            {
                query = query.Where(m => m.CodigoPresupuesto.Contains(this.CodigoCuentaPresupuesto_TextBox.Text));
            }
        }

        int registrosSeleccionados = 0;
        int signo = porcentaje >= 0 ? 1 : -1;

        porcentaje = Math.Abs(porcentaje / 100);

        // nótese como siempre tratamos el monto absoluto (sin su signo) y luego agregamos el signo al final; la idea es que
        // si el usuario quiere aumentar -1000 en 50%, quede -1500 y no -500

        foreach (Presupuesto_Monto montos in query)
        {
            montos.Mes01_Est = AjustarMontoEstimado(montos.Mes01_Est, signo, porcentaje);
            montos.Mes02_Est = AjustarMontoEstimado(montos.Mes02_Est, signo, porcentaje);
            montos.Mes03_Est = AjustarMontoEstimado(montos.Mes03_Est, signo, porcentaje);
            montos.Mes04_Est = AjustarMontoEstimado(montos.Mes04_Est, signo, porcentaje);
            montos.Mes05_Est = AjustarMontoEstimado(montos.Mes05_Est, signo, porcentaje);
            montos.Mes06_Est = AjustarMontoEstimado(montos.Mes06_Est, signo, porcentaje);
            montos.Mes07_Est = AjustarMontoEstimado(montos.Mes07_Est, signo, porcentaje);
            montos.Mes08_Est = AjustarMontoEstimado(montos.Mes08_Est, signo, porcentaje);
            montos.Mes09_Est = AjustarMontoEstimado(montos.Mes09_Est, signo, porcentaje);
            montos.Mes10_Est = AjustarMontoEstimado(montos.Mes10_Est, signo, porcentaje);
            montos.Mes11_Est = AjustarMontoEstimado(montos.Mes11_Est, signo, porcentaje);
            montos.Mes12_Est = AjustarMontoEstimado(montos.Mes12_Est, signo, porcentaje);

            registrosSeleccionados++;
        }

        string modalTitleMessage = "Ajuste de montos estimados";
        string modalBodyMessage  = "Ok, los montos de las cuentas de presupuesto seleccionadas en la lista han sido ajustados.<br /><br />" +
                                   "En total, se han ajustado " + registrosSeleccionados.ToString() + " cuentas de presupuesto (que estaban seleccionadas en la lista).<br /><br />" +
                                   "Cuando Ud. cierre este diálogo, la lista estará actualizada y Ud. podrá ver los montos de las cuentas de presupuesto ya actualizados.";

        try
        {
            dbContab.SubmitChanges();
        }
        catch (Exception ex)
        {
            string errorMessage = ex.Message;
            if (ex.InnerException != null)
            {
                errorMessage += "<br />" + ex.InnerException.Message;
            }

            modalTitleMessage = "Ha ocurrido un error al intentar guardar los cambios en la base de datos ...";
            modalBodyMessage  = errorMessage;
        }


        this.ModalPopupTitle_span2.InnerHtml = modalTitleMessage;
        this.ModalPopupBody_span2.InnerHtml  = modalBodyMessage;


        this.AjustarMontosEstimados_Confirmacion_Button.Visible = false;
        this.AjustarMontosEstimados_Confirmacion_Button.Text    = "Ajustar montos ...";
        this.AjustarMontosEstimados_Cancel_Button_Click.Text    = "Cerrar";

        this.ModalPopupExtender1.Show();

        this.PresupuestoMontos_ListView.DataBind();
    }
Exemple #11
0
    protected void AjustarMontosEstimados_btnOk_Click(object sender, EventArgs e)
    {
        if (string.IsNullOrEmpty(this.AjustarMontosMensuales_Porcentaje_TextBox.Text))
        {
            GeneralError_Span.InnerHtml        = "Ud. debe indicar un valor para el porcentaje a aumentar o disminuir.";
            GeneralError_Span.Style["display"] = "block";

            return;
        }

        if (this.AjustarMontosMensuales_Porcentaje_TextBox.Text.Contains("."))
        {
            GeneralError_Span.InnerHtml = "Aparentemente, Ud. ha usado un '.' como separador decimal;<br />" +
                                          "por favor no use puntos, sino comas, como separador decimal.";
            GeneralError_Span.Style["display"] = "block";

            return;
        }

        decimal porcentaje;

        if (!decimal.TryParse(this.AjustarMontosMensuales_Porcentaje_TextBox.Text, out porcentaje))
        {
            GeneralError_Span.InnerHtml = "Aparentemente, el valor indicado como porcentaje no es correcto.<br />" +
                                          "Por favor indique un número para este campo; ejemplos: 30; 30,5; -30,5; 10,75; ...";
            GeneralError_Span.Style["display"] = "block";

            return;
        }

        // determinamos cuantos items serán actualizados con este proceso ...

        int cantidadRegistrosQueSeranActualizados;

        using (dbContabDataContext dbContab = new dbContabDataContext())
        {
            var query = dbContab.Presupuesto_Montos.Select(m => m);

            if (Anos_DropDownList.SelectedIndex != -1)
            {
                query = query.Where(m => m.Ano == Convert.ToInt16(this.Anos_DropDownList.SelectedValue));
            }

            if (Monedas_DropDownList.SelectedIndex != -1)
            {
                query = query.Where(m => m.Moneda == Convert.ToInt32(Monedas_DropDownList.SelectedValue));
            }

            if (CiasContab_DropDownList.SelectedIndex != -1)
            {
                query = query.Where(m => m.CiaContab == Convert.ToInt32(this.CiasContab_DropDownList.SelectedValue));
            }

            if (!string.IsNullOrEmpty(this.CodigoCuentaPresupuesto_TextBox.Text))
            {
                if (this.CodigoCuentaPresupuesto_TextBox.Text.Contains("*"))
                {
                    if (this.CodigoCuentaPresupuesto_TextBox.Text.StartsWith("*"))
                    {
                        query = query.Where(m => m.CodigoPresupuesto.EndsWith(this.CodigoCuentaPresupuesto_TextBox.Text.Replace("*", "")));
                    }
                    else if (this.CodigoCuentaPresupuesto_TextBox.Text.EndsWith("*"))
                    {
                        query = query.Where(m => m.CodigoPresupuesto.StartsWith(this.CodigoCuentaPresupuesto_TextBox.Text.Replace("*", "")));
                    }
                    else
                    {
                        query = query.Where(m => m.CodigoPresupuesto.Contains(this.CodigoCuentaPresupuesto_TextBox.Text));
                    }
                }
                else
                {
                    query = query.Where(m => m.CodigoPresupuesto.Contains(this.CodigoCuentaPresupuesto_TextBox.Text));
                }
            }

            cantidadRegistrosQueSeranActualizados = query.Count();
        }
        // ------------------------------------------------------------------------------------------------------------------------------

        this.ModalPopupTitle_span2.InnerHtml = "Ajuste de montos estimados";
        this.ModalPopupBody_span2.InnerHtml  = "Desea ajustar los montos de las cuentas de presupuesto seleccionadas, usando el porcentaje: " +
                                               porcentaje.ToString("N2") + "% ?<br /><br />" +
                                               "(en total, este proceso ajustará montos de " + cantidadRegistrosQueSeranActualizados.ToString() + " cuentas de presupuesto, " +
                                               "las cuales están ahora seleccionadas en la lista)";

        this.AjustarMontosEstimados_Confirmacion_Button.Visible = true;
        this.AjustarMontosEstimados_Confirmacion_Button.Text    = "Ajustar montos ...";
        this.AjustarMontosEstimados_Cancel_Button_Click.Text    = "Cancelar";

        this.ModalPopupExtender1.Show();

        Session["ConfirmarNominaEjecutadaAntesFlag"] = true;
        return;
    }
Exemple #12
0
    private void CrearRegistrosMontos()
    {
        // creamos los registros con los montos estimados para el año indicado y para cada código de presupuesto

        int[] nCiasContab;
        int[] nMonedas;

        // Creamos una lista de monedas; nótese que el usuario puede o no seleccionar una moneda
        // ahora requerimos seleccionar una y solo una (moneda y cia contab)

        if (Monedas_ListBox.SelectedIndex != -1)
        {
            nMonedas    = new int[1];
            nMonedas[0] = int.Parse(Monedas_ListBox.SelectedValue);
        }
        else
        {
            // leemos las monedas y las grabamos en el array
            dbContabDataContext dbContab0 = new dbContabDataContext();
            var monedas = from m in dbContab0.Moneda_Contabs
                          select m.Moneda1;

            int i            = 0;
            int nCantMonedas = (from m in dbContab0.Moneda_Contabs
                                select m.Moneda1).Count();
            nMonedas = new int[nCantMonedas];

            foreach (int MyMoneda in monedas)
            {
                nMonedas[i] = MyMoneda;
                i++;
            }
            dbContab0 = null;
        }


        // Igual que para monedas, creamos una lista de compañías

        if (this.CiasContab_ListBox.SelectedIndex != -1)
        {
            nCiasContab    = new int[1];
            nCiasContab[0] = int.Parse(CiasContab_ListBox.SelectedValue);
        }
        else
        {
            // leemos las cias contab y las grabamos en el array
            dbContabDataContext dbContab0 = new dbContabDataContext();
            var cias = from c in dbContab0.Compania_Contabs
                       select c.Numero;

            int i = 0;
            int nCantCiasContab = (from c in dbContab0.Compania_Contabs
                                   select c.Numero).Count();
            nCiasContab = new int[nCantCiasContab];

            foreach (int MyCiaContab in cias)
            {
                nCiasContab[i] = MyCiaContab;
                i++;
            }
            dbContab0 = null;
        }

        // -------------------------------------------------------------------------------------------------
        // lo PRIMERO que hacemos es intentar grabar para el nuevo año los registros que ahora existan para
        // el año anterior

        short AnoActual   = short.Parse(Ano_TextBox.Text);
        short AnoAnterior = short.Parse(Ano_TextBox.Text);

        AnoAnterior -= 1;

        int nRegistrosAgregadosAnoAnterior    = 0;
        int nRegistrosActualizadosAnoAnterior = 0;


        dbContabDataContext dbContab = new dbContabDataContext();

        // -----------------------------------------------------------------------------------------------------
        // inicializamos la variable que sigue en la cantidad de cías x monedas; de esta forma, iremos mostrando
        // el progreso al usuario; cada vez que se procese una compañía, se irá mostrando el progreso

        int nRegistroActual     = 0;
        int nProgressPercentaje = 0;

        int nCantidadRegistros = nMonedas.Length * nCiasContab.Length;

        // -----------------------------------------------------------------------------------------------------

        foreach (int nMoneda in nMonedas)
        {
            foreach (int nCiaContab in nCiasContab)
            {
                // leemos los registros en Presupuesto_Montos para el "año anterior" que no existan en la misma
                // tabla para el "año actual" y, además, que no estén suspendidos en Presupuesto_Codigos

                string sqlSelectString = "Select CodigoPresupuesto, Mes01_Est, Mes02_Est, Mes03_Est, Mes04_Est, Mes05_Est, Mes06_Est, Mes07_Est, Mes08_Est, " +
                                         " Mes09_Est, Mes10_Est, Mes11_Est, Mes12_Est " +
                                         " From Presupuesto_Montos Inner Join Presupuesto_Codigos On " +
                                         " Presupuesto_Montos.CodigoPresupuesto = Presupuesto_Codigos.Codigo And " +
                                         " Presupuesto_Montos.CiaContab = Presupuesto_Codigos.CiaContab" +
                                         " Where Presupuesto_Montos.Moneda = " + nMoneda.ToString() +
                                         " And Presupuesto_Montos.CiaContab = " + nCiaContab.ToString() + " And Presupuesto_Montos.Ano = " + AnoAnterior.ToString() +
                                         " And Presupuesto_Codigos.SuspendidoFlag = 0";

                if (!string.IsNullOrEmpty(this.CuentaPresupuesto_AgregarMontos_Filter_TextBox.Text))
                {
                    // el usuario indicó un valor para seleccionar por cuenta de presupuesto; hacemos un Like por este campo ...
                    sqlSelectString +=
                        " And Presupuesto_Montos.CodigoPresupuesto Like '" + this.CuentaPresupuesto_AgregarMontos_Filter_TextBox.Text.Replace("*", "%") + "'";
                }


                if (!this.ActualizarAunqueExistan_CheckBox.Checked)
                {
                    // si el usuario lo indica, seleccionamos los montos aunque existan, y los actualizamos (si existen) ...
                    sqlSelectString +=
                        " And Not Presupuesto_Montos.CodigoPresupuesto In " +
                        " (Select CodigoPresupuesto From Presupuesto_Montos Where Moneda = " + nMoneda.ToString() +
                        " And CiaContab = " + nCiaContab.ToString() + " And Ano = " + AnoActual.ToString() + ")";
                }

                IEnumerable <_Presupuesto_Montos> Lista_PresupuestoMontos_AnoAnterior = dbContab.ExecuteQuery <_Presupuesto_Montos>(sqlSelectString);

                Presupuesto_Monto        MyRegPresupuestoMonto;
                List <Presupuesto_Monto> MyRegPresupuestoMontos = new List <Presupuesto_Monto>();

                foreach (_Presupuesto_Montos MyPresupuestoMontos in Lista_PresupuestoMontos_AnoAnterior)
                {
                    // si el registro de montos estimados existe, lo actualizamos; de otra forma, lo agregamos ...

                    Presupuesto_Monto presupuestoMontos = dbContab.Presupuesto_Montos.
                                                          Where(m => m.CodigoPresupuesto == MyPresupuestoMontos.CodigoPresupuesto &&
                                                                m.CiaContab == nCiaContab &&
                                                                m.Moneda == nMoneda &&
                                                                m.Ano == AnoActual).FirstOrDefault();

                    if (presupuestoMontos != null)
                    {
                        // el registro ya existe, lo actualizamos ...

                        presupuestoMontos.Mes01_Est = MyPresupuestoMontos.Mes01_Est;
                        presupuestoMontos.Mes02_Est = MyPresupuestoMontos.Mes02_Est;
                        presupuestoMontos.Mes03_Est = MyPresupuestoMontos.Mes03_Est;
                        presupuestoMontos.Mes04_Est = MyPresupuestoMontos.Mes04_Est;
                        presupuestoMontos.Mes05_Est = MyPresupuestoMontos.Mes05_Est;
                        presupuestoMontos.Mes06_Est = MyPresupuestoMontos.Mes06_Est;
                        presupuestoMontos.Mes07_Est = MyPresupuestoMontos.Mes07_Est;
                        presupuestoMontos.Mes08_Est = MyPresupuestoMontos.Mes08_Est;
                        presupuestoMontos.Mes09_Est = MyPresupuestoMontos.Mes09_Est;
                        presupuestoMontos.Mes10_Est = MyPresupuestoMontos.Mes10_Est;
                        presupuestoMontos.Mes11_Est = MyPresupuestoMontos.Mes11_Est;
                        presupuestoMontos.Mes12_Est = MyPresupuestoMontos.Mes12_Est;

                        nRegistrosActualizadosAnoAnterior++;
                    }
                    else
                    {
                        // el registro no existe, lo agregamos

                        MyRegPresupuestoMonto = new Presupuesto_Monto();

                        MyRegPresupuestoMonto.CodigoPresupuesto = MyPresupuestoMontos.CodigoPresupuesto;
                        MyRegPresupuestoMonto.CiaContab         = nCiaContab;
                        MyRegPresupuestoMonto.Moneda            = nMoneda;
                        MyRegPresupuestoMonto.Ano = AnoActual;

                        MyRegPresupuestoMonto.Mes01_Est = MyPresupuestoMontos.Mes01_Est;
                        MyRegPresupuestoMonto.Mes02_Est = MyPresupuestoMontos.Mes02_Est;
                        MyRegPresupuestoMonto.Mes03_Est = MyPresupuestoMontos.Mes03_Est;
                        MyRegPresupuestoMonto.Mes04_Est = MyPresupuestoMontos.Mes04_Est;
                        MyRegPresupuestoMonto.Mes05_Est = MyPresupuestoMontos.Mes05_Est;
                        MyRegPresupuestoMonto.Mes06_Est = MyPresupuestoMontos.Mes06_Est;
                        MyRegPresupuestoMonto.Mes07_Est = MyPresupuestoMontos.Mes07_Est;
                        MyRegPresupuestoMonto.Mes08_Est = MyPresupuestoMontos.Mes08_Est;
                        MyRegPresupuestoMonto.Mes09_Est = MyPresupuestoMontos.Mes09_Est;
                        MyRegPresupuestoMonto.Mes10_Est = MyPresupuestoMontos.Mes10_Est;
                        MyRegPresupuestoMonto.Mes11_Est = MyPresupuestoMontos.Mes11_Est;
                        MyRegPresupuestoMonto.Mes12_Est = MyPresupuestoMontos.Mes12_Est;

                        MyRegPresupuestoMontos.Add(MyRegPresupuestoMonto);

                        nRegistrosAgregadosAnoAnterior++;
                    }
                }

                if (MyRegPresupuestoMontos.Count > 0)
                {
                    dbContab.Presupuesto_Montos.InsertAllOnSubmit(MyRegPresupuestoMontos);
                }

                try
                {
                    dbContab.SubmitChanges();
                }
                catch (Exception ex)
                {
                    string errorMessage = ex.Message;
                    if (ex.InnerException != null)
                    {
                        errorMessage += "<br />" + ex.InnerException.Message;
                    }

                    ErrMessage_Span.InnerHtml = "Hemos obtenido un mensaje de error al intentar efectuar una operación en la base de datos.<br /> " +
                                                "El mensaje específico de error es: " + errorMessage;
                    ErrMessage_Span.Style["display"] = "block";

                    return;
                }


                // ---------------------------------------------------------------------------
                // calculamos el progreso (%); es usado por el progress bar en la página

                nRegistroActual    += 1;
                nProgressPercentaje = nRegistroActual * 100 / nCantidadRegistros;

                Session["Progress_Percentage"] = nProgressPercentaje;
                // ---------------------------------------------------------------------------
            }
        }

        // -------------------------------------------------------------------------------------------------
        // YA GRABAMOS los códigos y sus montos desde al año anterior al actual; ahora leemos desde
        // Presupuesto_Codigos aquellos que no existan en Presupuesto_Montos (pues son nuevos?) para el año
        // actual y los registramos, con todos sus montos en nulls

        // nótese como el usuario decide si desea o no hacer este paso ...

        int nRegistrosAgregadosAnoActual = 0;

        if (this.AgregarDesdeTablaCodigosPresupuesto_CheckBox.Checked)
        {
            nRegistroActual = 0;

            foreach (int nMoneda in nMonedas)
            {
                foreach (int nCiaContab in nCiasContab)
                {
                    // leemos los registros en Presupuesto_Montos para el "año anterior" que no existan en la misma
                    // tabla para el "año actual" y, además, que no estén suspendidos en Presupuesto_Codigos

                    IEnumerable <String> Lista_CodigosPresupuesto_Nuevos = dbContab.ExecuteQuery <String>(
                        "Select Codigo From Presupuesto_Codigos Where" +
                        " CiaContab = " + nCiaContab.ToString() + " And SuspendidoFlag = 0 And GrupoFlag = 0" +
                        " And Not Codigo In " +
                        " (Select CodigoPresupuesto From Presupuesto_Montos Where Moneda = " + nMoneda.ToString() +
                        " And CiaContab = " + nCiaContab.ToString() + " And Ano = " + AnoActual.ToString() + ")"
                        );

                    Presupuesto_Monto        MyRegPresupuestoMonto;
                    List <Presupuesto_Monto> MyRegPresupuestoMontos = new List <Presupuesto_Monto>();

                    foreach (String MyCodigoPresupuesto in Lista_CodigosPresupuesto_Nuevos)
                    {
                        MyRegPresupuestoMonto = new Presupuesto_Monto();

                        MyRegPresupuestoMonto.CodigoPresupuesto = MyCodigoPresupuesto;
                        MyRegPresupuestoMonto.CiaContab         = nCiaContab;
                        MyRegPresupuestoMonto.Moneda            = nMoneda;
                        MyRegPresupuestoMonto.Ano = AnoActual;

                        // nótese como todos los montos (estimados y ejecutados) quedan en null

                        MyRegPresupuestoMontos.Add(MyRegPresupuestoMonto);

                        nRegistrosAgregadosAnoActual++;
                    }

                    if (MyRegPresupuestoMontos.Count > 0)
                    {
                        dbContab.Presupuesto_Montos.InsertAllOnSubmit(MyRegPresupuestoMontos);
                        try
                        {
                            dbContab.SubmitChanges();
                        }
                        catch (Exception ex)
                        {
                            //ErrMessage_Span.InnerHtml = "Hemos obtenido un mensaje de error al intentar efectuar una operación en la base de datos.<br />El mensaje específico de error es: " + ex.Message;
                            //ErrMessage_Span.Style["display"] = "block";
                        }
                    }

                    // ---------------------------------------------------------------------------
                    // calculamos el progreso (%); es usado por el progress bar en la página

                    nRegistroActual    += 1;
                    nProgressPercentaje = nRegistroActual * 100 / nCantidadRegistros;

                    Session["Progress_Percentage"] = nProgressPercentaje;
                    // ---------------------------------------------------------------------------
                }
            }
        }

        dbContab = null;

        // -----------------------------------------------------------------------------------------
        // cuando el proceso termina, escribimos sus resultados a un xml file, para que los procese
        // el parent thread

        XElement root = new XElement("ProcessState");

        XElement elm1 = new XElement("Values",
                                     new XElement("RegistrosAgregadosAnoAnterior", nRegistrosAgregadosAnoAnterior),
                                     new XElement("RegistrosActualizadosAnoAnterior", nRegistrosActualizadosAnoAnterior),
                                     new XElement("RegistrosAgregadosAnoActual", nRegistrosAgregadosAnoActual));

        root.Add(elm1);

        String fileName = String.Concat(Page.GetType().Name, "-", User.Identity.Name);
        String rootPath = Server.MapPath("~");
        String filePath = Server.MapPath("~/keepstatefiles/" + fileName + ".xml");

        root.Save(filePath);
        // -----------------------------------------------------------------------------------------

        // para indicar al progress bar que el proceso terminó
        Session["Progress_Completed"] = 1;
    }
Exemple #13
0
    protected void AplicarFactorConversion_LinkButton_Click(object sender, EventArgs e)
    {
        if (!User.Identity.IsAuthenticated)
        {
            FormsAuthentication.SignOut();
            return;
        }

        // intentamos leer los factores de uno de los 12 meses del año, para guardarlos en la tabla
        // de la consulta (tTempWebRerpot_PresupuestoConsultaAnual; NOTESE que el año y meses de la
        // consulta corresponden a meses fiscales y no calendario; tenemos que buscar la correspondencia
        // en la tabla de meses fiscales de la contabilidad

        dbContabDataContext dbContab = new dbContabDataContext();

        dbContab.ExecuteCommand
            ("Delete From FactoresConversionAnoMes_Aplicados Where NombreUsuario = {0}",
            User.Identity.Name);

        // --------------------------------------------------------------------------------
        // lo primero que hacemos es obtener el año fiscal de la consulta

        var query0 = (from t in dbContab.tTempWebReport_PresupuestoConsultaAnuals
                      where t.NombreUsuario == User.Identity.Name
                      select t).FirstOrDefault();

        if (query0 == null)
        {
            ErrMessage_Span.InnerHtml = "Aparentemente, Ud. no ha ejecutado la consulta todavía y, " +
                                        "por lo tanto, no se han seleccionado registros aún para la misma. <br />" +
                                        "Ud. debe definir y aplicar un filtro para ejecutar la consulta y seleccionar " +
                                        "registros, antes de intentar aplicar un factor de conversión a estas cifras.";
            ErrMessage_Span.Style["display"] = "block";

            return;
        }

        Int16 nAnoFiscalConsulta = query0.AnoFiscal;

        // leemos los meses del año en la tabla de meses, para ir obteniendo cada mes calendario y
        // luego el factor de conversion; nótese que queremos obtener los factores ordenados por
        // mes fiscal, pues en ese orden están presentadas las cifras de esta consulta

        var query = from mf in dbContab.MesesDelAnoFiscals
                    where mf.Cia == query0.CiaContab &&
                    mf.MesFiscal >= 1 && mf.MesFiscal <= 12
                    orderby mf.MesFiscal
                    select mf;

        if (query == null)
        {
            ErrMessage_Span.InnerHtml = "No existe registros en la tabla Definición de Meses para " +
                                        "el Año Fiscal. <br /> " +
                                        "Por favor revise el contenido de esta tabla y corrija este error antes " +
                                        "de intentar continuar con este proceso.";
            ErrMessage_Span.Style["display"] = "block";

            return;
        }

        FactoresConversionAnoMes_Aplicado factoresConversionAplicados;

        List <FactoresConversionAnoMes_Aplicado> factoresConversionAplicados_List =
            new List <FactoresConversionAnoMes_Aplicado>();

        foreach (var registroMes in query)
        {
            int nMesCalendario = registroMes.Mes;
            int nAnoCalendario = nAnoFiscalConsulta;

            if (registroMes.Ano == 1)
            {
                nAnoCalendario++;
            }

            // ahora que tenemos el mes y año calendarios, leemos el factor de conversión y lo
            // guardamos en el array de factores por mes fiscal

            var queryFactoresConversion = (from fc in dbContab.FactoresConversionAnoMes
                                           where fc.Mes == nMesCalendario &&
                                           fc.Ano == nAnoCalendario
                                           select fc).FirstOrDefault();


            factoresConversionAplicados = new FactoresConversionAnoMes_Aplicado();

            factoresConversionAplicados.MesFiscal     = Convert.ToByte(registroMes.MesFiscal);
            factoresConversionAplicados.AnoFiscal     = nAnoFiscalConsulta;
            factoresConversionAplicados.MesCalendario = Convert.ToByte(registroMes.Mes);
            factoresConversionAplicados.AnoCalendario = Convert.ToInt16(nAnoCalendario);
            factoresConversionAplicados.NombreMes     = registroMes.NombreMes;

            if (queryFactoresConversion == null || queryFactoresConversion.FactorConversion == 0)
            {
                factoresConversionAplicados.FactorConversion = 1;
            }
            else
            {
                factoresConversionAplicados.FactorConversion = queryFactoresConversion.FactorConversion;
            }

            factoresConversionAplicados.NombreUsuario = User.Identity.Name;

            factoresConversionAplicados_List.Add(factoresConversionAplicados);
        }


        if (factoresConversionAplicados_List.Count != 12)
        {
            ErrMessage_Span.InnerHtml = "La tabla Definición de Meses para el Año Fiscal no está completa " +
                                        "para el año fiscal de la compañía. Esta tabla debe tener una definición para cada " +
                                        "uno de los 12 meses del año.<br />" +
                                        "Por favor revise el contenido de la tabla mencionada y corrija esta situación.";
            ErrMessage_Span.Style["display"] = "block";

            return;
        }



        try
        {
            // intentamos agregar la lista a la tabla en la base de datos

            dbContab.FactoresConversionAnoMes_Aplicados.InsertAllOnSubmit
                (factoresConversionAplicados_List);
            dbContab.SubmitChanges();
        }
        catch (Exception ex)
        {
            dbContab = null;

            ErrMessage_Span.InnerHtml = "Ha ocurrido un error al intentar ejecutar una operación de " +
                                        "acceso a la base de datos. <br /> El mensaje específico de error es: " +
                                        ex.Message + "<br />";
            ErrMessage_Span.Style["display"] = "block";

            return;
        }

        // TODO: aplicar los factores encontrados a los registros en la tabla tTempWebReport...

        // ahora leemos la tabla con los registros de la consulta y aplicamos los factores de conversión
        // para cada mes fiscal

        var consultaPresupuestoQuery = from cp in dbContab.tTempWebReport_PresupuestoConsultaAnuals
                                       where cp.NombreUsuario == User.Identity.Name
                                       select cp;

        foreach (var consultaPresupuesto in consultaPresupuestoQuery)
        {
            // nótese que, desde su creación, la lista de factores está
            // ordenada por mes fiscal (1, 2, 3, ...)

            consultaPresupuesto.Mes01_Eje /= factoresConversionAplicados_List[0].FactorConversion;
            consultaPresupuesto.Mes02_Eje /= factoresConversionAplicados_List[1].FactorConversion;
            consultaPresupuesto.Mes03_Eje /= factoresConversionAplicados_List[2].FactorConversion;
            consultaPresupuesto.Mes04_Eje /= factoresConversionAplicados_List[3].FactorConversion;
            consultaPresupuesto.Mes05_Eje /= factoresConversionAplicados_List[4].FactorConversion;
            consultaPresupuesto.Mes06_Eje /= factoresConversionAplicados_List[5].FactorConversion;
            consultaPresupuesto.Mes07_Eje /= factoresConversionAplicados_List[6].FactorConversion;
            consultaPresupuesto.Mes08_Eje /= factoresConversionAplicados_List[7].FactorConversion;
            consultaPresupuesto.Mes09_Eje /= factoresConversionAplicados_List[8].FactorConversion;
            consultaPresupuesto.Mes10_Eje /= factoresConversionAplicados_List[9].FactorConversion;
            consultaPresupuesto.Mes11_Eje /= factoresConversionAplicados_List[10].FactorConversion;
            consultaPresupuesto.Mes12_Eje /= factoresConversionAplicados_List[11].FactorConversion;

            // el total ejecutado es la sumarización de todos los meses antes convertidos

            consultaPresupuesto.TotalEjecutado =
                consultaPresupuesto.Mes01_Eje + consultaPresupuesto.Mes02_Eje +
                consultaPresupuesto.Mes03_Eje + consultaPresupuesto.Mes04_Eje +
                consultaPresupuesto.Mes05_Eje + consultaPresupuesto.Mes06_Eje +
                consultaPresupuesto.Mes07_Eje + consultaPresupuesto.Mes08_Eje +
                consultaPresupuesto.Mes09_Eje + consultaPresupuesto.Mes10_Eje +
                consultaPresupuesto.Mes11_Eje + consultaPresupuesto.Mes12_Eje;

            // para obtener el total presupuestado (estimado) convertido, leemos los montos estimados
            // para cada mes en la tabla Presupuesto_Montos, para el registro específico; luego,
            // convertimos cada monto estimado y sumarizamos

            var presupuesto_MontosEstimadosConvertidos =
                (from pm in dbContab.Presupuesto_Montos
                 where pm.CodigoPresupuesto == consultaPresupuesto.CodigoPresupuesto &&
                 pm.CiaContab == consultaPresupuesto.CiaContab &&
                 pm.Moneda == consultaPresupuesto.Moneda &&
                 pm.Ano == consultaPresupuesto.AnoFiscal
                 select
                 pm.Mes01_Est / factoresConversionAplicados_List[0].FactorConversion +
                 pm.Mes02_Est / factoresConversionAplicados_List[1].FactorConversion +
                 pm.Mes03_Est / factoresConversionAplicados_List[2].FactorConversion +
                 pm.Mes04_Est / factoresConversionAplicados_List[3].FactorConversion +
                 pm.Mes05_Est / factoresConversionAplicados_List[4].FactorConversion +
                 pm.Mes06_Est / factoresConversionAplicados_List[5].FactorConversion +
                 pm.Mes07_Est / factoresConversionAplicados_List[6].FactorConversion +
                 pm.Mes08_Est / factoresConversionAplicados_List[7].FactorConversion +
                 pm.Mes09_Est / factoresConversionAplicados_List[8].FactorConversion +
                 pm.Mes10_Est / factoresConversionAplicados_List[9].FactorConversion +
                 pm.Mes11_Est / factoresConversionAplicados_List[10].FactorConversion +
                 pm.Mes12_Est / factoresConversionAplicados_List[11].FactorConversion
                ).FirstOrDefault();

            // NOTA IMPORTANTE: el registro DEBE existir en Presupuesto_Montos, pues de allí se obtuvo
            // el registro en tTempWebReport...; de otra forma, terminamos con un error

            if (presupuesto_MontosEstimadosConvertidos == null)
            {
                ErrMessage_Span.InnerHtml = "Error inesperado: no se ha encontrado el registro para el " +
                                            "código de presupuesto '" + consultaPresupuesto.CodigoPresupuesto +
                                            "' en la tabla Presupuesto_Montos. Por favor revise esta situación y corríjala " +
                                            "antes de ejecutar nuevamente este proceso.";
                ErrMessage_Span.Style["display"] = "block";

                return;
            }

            consultaPresupuesto.TotalPresupuestado = presupuesto_MontosEstimadosConvertidos;
        }


        try
        {
            // persistimos los cambios hechos en tTempWebReport_ConsultaPresupuestoAnual

            dbContab.SubmitChanges();

            dbContab = null;
            PageDataBind();
        }
        catch (Exception ex)
        {
            dbContab = null;

            ErrMessage_Span.InnerHtml = "Ha ocurrido un error al intentar ejecutar una operación de " +
                                        "acceso a la base de datos. <br /> El mensaje específico de error es: " +
                                        ex.Message + "<br />";
            ErrMessage_Span.Style["display"] = "block";

            return;
        }

        // para indicar al report que las cifras se han convertido; el report muestra un pequeño mensaje
        // que indica esta situación ...

        ControlPresupuesto_Reportes_HyperLink.NavigateUrl =
            "javascript:PopupWin('../../../../ReportViewer2.aspx?rpt=ptoconsanual&conv=1', 1000, 680)";
    }
Exemple #14
0
    private void BuildReportRecords()
    {
        // construímos los registros que se usarán para mostrar la consulta al usuario

        if (!User.Identity.IsAuthenticated)
        {
            FormsAuthentication.SignOut();
            return;
        }

        if (Session["FiltroForma"] == null)
        {
            ErrMessage_Span.InnerHtml = "Aparentemente, Ud. no ha indicado un filtro aún.<br />Por favor indique y aplique un " +
                                        "filtro antes de intentar mostrar el resultado de la consulta.";
            ErrMessage_Span.Style["display"] = "block";

            return;
        }

        // --------------------------------------------------------------------------------------------
        // eliminamos el contenido de la tabla temporal

        dbContabDataContext dbContab = new dbContabDataContext();

        try
        {
            dbContab.ExecuteCommand("Delete From tTempWebReport_PresupuestoConsultaAnual Where NombreUsuario = {0}", User.Identity.Name);
        }
        catch (Exception ex)
        {
            dbContab = null;

            ErrMessage_Span.InnerHtml = "Ha ocurrido un error al intentar ejecutar una operación de acceso a la base de datos. <br />" +
                                        "El mensaje específico de error es: " + ex.Message + "<br /><br />";
            ErrMessage_Span.Style["display"] = "block";

            return;
        }

        // leemos la tabla Presupuesto_Montos y construimos los registros en tTempWebReport...

        IList <PresupuestoMontos> PresupuestoMontos_List = dbContab.ExecuteQuery <PresupuestoMontos>
                                                               (@"Select CodigoPresupuesto, CiaContab, Moneda, Ano, " +
                                                               "IsNull(Mes01_Est, 0) As Mes01_Est, IsNull(Mes01_Eje, 0) As Mes01_Eje, " +
                                                               "IsNull(Mes02_Est, 0) As Mes02_Est, IsNull(Mes02_Eje, 0) As Mes02_Eje, " +
                                                               "IsNull(Mes03_Est, 0) As Mes03_Est, IsNull(Mes03_Eje, 0) As Mes03_Eje, " +
                                                               "IsNull(Mes04_Est, 0) As Mes04_Est, IsNull(Mes04_Eje, 0) As Mes04_Eje, " +
                                                               "IsNull(Mes05_Est, 0) As Mes05_Est, IsNull(Mes05_Eje, 0) As Mes05_Eje, " +
                                                               "IsNull(Mes06_Est, 0) As Mes06_Est, IsNull(Mes06_Eje, 0) As Mes06_Eje, " +
                                                               "IsNull(Mes07_Est, 0) As Mes07_Est, IsNull(Mes07_Eje, 0) As Mes07_Eje, " +
                                                               "IsNull(Mes08_Est, 0) As Mes08_Est, IsNull(Mes08_Eje, 0) As Mes08_Eje, " +
                                                               "IsNull(Mes09_Est, 0) As Mes09_Est, IsNull(Mes09_Eje, 0) As Mes09_Eje, " +
                                                               "IsNull(Mes10_Est, 0) As Mes10_Est, IsNull(Mes10_Eje, 0) As Mes10_Eje, " +
                                                               "IsNull(Mes11_Est, 0) As Mes11_Est, IsNull(Mes11_Eje, 0) As Mes11_Eje, " +
                                                               "IsNull(Mes12_Est, 0) As Mes12_Est, IsNull(Mes12_Eje, 0) As Mes12_Eje " +
                                                               "From Presupuesto_Montos " +
                                                               "Where " + Session["FiltroForma"].ToString() + " Order By Presupuesto_Montos.CiaContab").ToList();

        if (PresupuestoMontos_List.Count() == 0)
        {
            dbContab = null;

            ErrMessage_Span.InnerHtml = "No existen registros que cumplan el criterio de selección (filtro) que Ud. ha indicado. <br />" +
                                        "Para regresar registros, Ud. puede intentar un filtro diferente al que ha indicado.";
            ErrMessage_Span.Style["display"] = "block";

            Session["Progress_SelectedRecs"] = 0;
            Session["Progress_Completed"]    = 1;
            Session["Progress_Percentage"]   = 0;

            return;
        }

        int nCantidadRegistros  = PresupuestoMontos_List.Count();
        int nRegistroActual     = 0;
        int nProgreesPercentaje = 0;

        tTempWebReport_PresupuestoConsultaAnual        MyTempWebReportPresupuestoConsultaAnual;
        List <tTempWebReport_PresupuestoConsultaAnual> MyTempWebRepotPresupuestoConsultaAnual_List = new
                                                                                                     List <tTempWebReport_PresupuestoConsultaAnual>();

        foreach (PresupuestoMontos MyPresupuestoMontos in PresupuestoMontos_List)
        {
            // preparamos el registro que vamos a agregar a tTempWebReport...

            MyTempWebReportPresupuestoConsultaAnual = new tTempWebReport_PresupuestoConsultaAnual();

            MyTempWebReportPresupuestoConsultaAnual.CiaContab         = MyPresupuestoMontos.CiaContab;
            MyTempWebReportPresupuestoConsultaAnual.Moneda            = MyPresupuestoMontos.Moneda;
            MyTempWebReportPresupuestoConsultaAnual.AnoFiscal         = MyPresupuestoMontos.Ano;
            MyTempWebReportPresupuestoConsultaAnual.CodigoPresupuesto = MyPresupuestoMontos.CodigoPresupuesto;

            MyTempWebReportPresupuestoConsultaAnual.Mes01_Eje = MyPresupuestoMontos.Mes01_Eje;
            MyTempWebReportPresupuestoConsultaAnual.Mes02_Eje = MyPresupuestoMontos.Mes02_Eje;
            MyTempWebReportPresupuestoConsultaAnual.Mes03_Eje = MyPresupuestoMontos.Mes03_Eje;
            MyTempWebReportPresupuestoConsultaAnual.Mes04_Eje = MyPresupuestoMontos.Mes04_Eje;
            MyTempWebReportPresupuestoConsultaAnual.Mes05_Eje = MyPresupuestoMontos.Mes05_Eje;
            MyTempWebReportPresupuestoConsultaAnual.Mes06_Eje = MyPresupuestoMontos.Mes06_Eje;
            MyTempWebReportPresupuestoConsultaAnual.Mes07_Eje = MyPresupuestoMontos.Mes07_Eje;
            MyTempWebReportPresupuestoConsultaAnual.Mes08_Eje = MyPresupuestoMontos.Mes08_Eje;
            MyTempWebReportPresupuestoConsultaAnual.Mes09_Eje = MyPresupuestoMontos.Mes09_Eje;
            MyTempWebReportPresupuestoConsultaAnual.Mes10_Eje = MyPresupuestoMontos.Mes10_Eje;
            MyTempWebReportPresupuestoConsultaAnual.Mes11_Eje = MyPresupuestoMontos.Mes11_Eje;
            MyTempWebReportPresupuestoConsultaAnual.Mes12_Eje = MyPresupuestoMontos.Mes12_Eje;

            MyTempWebReportPresupuestoConsultaAnual.TotalPresupuestado =
                MyPresupuestoMontos.Mes01_Est + MyPresupuestoMontos.Mes02_Est +
                MyPresupuestoMontos.Mes03_Est + MyPresupuestoMontos.Mes04_Est +
                MyPresupuestoMontos.Mes05_Est + MyPresupuestoMontos.Mes06_Est +
                MyPresupuestoMontos.Mes07_Est + MyPresupuestoMontos.Mes08_Est +
                MyPresupuestoMontos.Mes09_Est + MyPresupuestoMontos.Mes10_Est +
                MyPresupuestoMontos.Mes11_Est + MyPresupuestoMontos.Mes12_Est;

            decimal totalEjecutado =
                MyPresupuestoMontos.Mes01_Eje + MyPresupuestoMontos.Mes02_Eje +
                MyPresupuestoMontos.Mes03_Eje + MyPresupuestoMontos.Mes04_Eje +
                MyPresupuestoMontos.Mes05_Eje + MyPresupuestoMontos.Mes06_Eje +
                MyPresupuestoMontos.Mes07_Eje + MyPresupuestoMontos.Mes08_Eje +
                MyPresupuestoMontos.Mes09_Eje + MyPresupuestoMontos.Mes10_Eje +
                MyPresupuestoMontos.Mes11_Eje + MyPresupuestoMontos.Mes12_Eje;

            MyTempWebReportPresupuestoConsultaAnual.TotalEjecutado = totalEjecutado;

            if (!(MyTempWebReportPresupuestoConsultaAnual.TotalPresupuestado == 0))
            {
                MyTempWebReportPresupuestoConsultaAnual.Mes01_Eje_Porc =
                    (float)(MyTempWebReportPresupuestoConsultaAnual.Mes01_Eje * 100 /
                            MyTempWebReportPresupuestoConsultaAnual.TotalPresupuestado);

                MyTempWebReportPresupuestoConsultaAnual.Mes02_Eje_Porc =
                    (float)(MyTempWebReportPresupuestoConsultaAnual.Mes02_Eje * 100 /
                            MyTempWebReportPresupuestoConsultaAnual.TotalPresupuestado);

                MyTempWebReportPresupuestoConsultaAnual.Mes03_Eje_Porc =
                    (float)(MyTempWebReportPresupuestoConsultaAnual.Mes03_Eje * 100 /
                            MyTempWebReportPresupuestoConsultaAnual.TotalPresupuestado);

                MyTempWebReportPresupuestoConsultaAnual.Mes04_Eje_Porc =
                    (float)(MyTempWebReportPresupuestoConsultaAnual.Mes04_Eje * 100 /
                            MyTempWebReportPresupuestoConsultaAnual.TotalPresupuestado);

                MyTempWebReportPresupuestoConsultaAnual.Mes05_Eje_Porc =
                    (float)(MyTempWebReportPresupuestoConsultaAnual.Mes05_Eje * 100 /
                            MyTempWebReportPresupuestoConsultaAnual.TotalPresupuestado);

                MyTempWebReportPresupuestoConsultaAnual.Mes06_Eje_Porc =
                    (float)(MyTempWebReportPresupuestoConsultaAnual.Mes06_Eje * 100 /
                            MyTempWebReportPresupuestoConsultaAnual.TotalPresupuestado);

                MyTempWebReportPresupuestoConsultaAnual.Mes07_Eje_Porc =
                    (float)(MyTempWebReportPresupuestoConsultaAnual.Mes07_Eje * 100 /
                            MyTempWebReportPresupuestoConsultaAnual.TotalPresupuestado);

                MyTempWebReportPresupuestoConsultaAnual.Mes08_Eje_Porc =
                    (float)(MyTempWebReportPresupuestoConsultaAnual.Mes08_Eje * 100 /
                            MyTempWebReportPresupuestoConsultaAnual.TotalPresupuestado);

                MyTempWebReportPresupuestoConsultaAnual.Mes09_Eje_Porc =
                    (float)(MyTempWebReportPresupuestoConsultaAnual.Mes09_Eje * 100 /
                            MyTempWebReportPresupuestoConsultaAnual.TotalPresupuestado);

                MyTempWebReportPresupuestoConsultaAnual.Mes10_Eje_Porc =
                    (float)(MyTempWebReportPresupuestoConsultaAnual.Mes10_Eje * 100 /
                            MyTempWebReportPresupuestoConsultaAnual.TotalPresupuestado);

                MyTempWebReportPresupuestoConsultaAnual.Mes11_Eje_Porc =
                    (float)(MyTempWebReportPresupuestoConsultaAnual.Mes11_Eje * 100 /
                            MyTempWebReportPresupuestoConsultaAnual.TotalPresupuestado);

                MyTempWebReportPresupuestoConsultaAnual.Mes12_Eje_Porc =
                    (float)(MyTempWebReportPresupuestoConsultaAnual.Mes12_Eje * 100 /
                            MyTempWebReportPresupuestoConsultaAnual.TotalPresupuestado);


                //MyTempWebReportPresupuestoConsultaAnual.Variacion =
                //    (float)(MyTempWebReportPresupuestoConsultaAnual.TotalEjecutado * 100 /
                //    MyTempWebReportPresupuestoConsultaAnual.TotalPresupuestado);


                // modificamos el calculo de la diferencia, para que sea realmente una diferencia y
                // no un porcentaje de los ejecutado ...

                decimal?diferencia =
                    MyTempWebReportPresupuestoConsultaAnual.TotalPresupuestado -
                    MyTempWebReportPresupuestoConsultaAnual.TotalEjecutado;

                if (diferencia != null)
                {
                    MyTempWebReportPresupuestoConsultaAnual.Variacion =
                        (float)(diferencia * 100 /
                                MyTempWebReportPresupuestoConsultaAnual.TotalPresupuestado);
                }
            }

            MyTempWebReportPresupuestoConsultaAnual.NombreUsuario = User.Identity.Name;

            // -------------------------------------------------------------------------------
            // determinamos los niveles previos para cada cuenta de presupuesto y los grabamos
            // a la tabla (ej: niveles previos para la cuenta 3-01-001: 3-01 y 3)

            string codigoPresupuesto = MyTempWebReportPresupuestoConsultaAnual.CodigoPresupuesto;

            short cantNivelesPrevios = (short)CountStringOccurrences(codigoPresupuesto, "-");

            // los códigos deben tener al menos un codigo de agrupación (hasta 6)

            if (cantNivelesPrevios == 0)
            {
                ErrMessage_Span.InnerHtml = "El código de presupuesto : " +
                                            MyTempWebReportPresupuestoConsultaAnual.CodigoPresupuesto +
                                            " no tiene un nivel (previo) que lo agrupe; los códigos de presupuesto deben tener" +
                                            " al menos un nivel de agrupación.";
                ErrMessage_Span.Style["display"] = "block";

                Session["Progress_Completed"]  = 1;
                Session["Progress_Percentage"] = 0;

                return;
            }

            int posProxGuion = -1;

            for (short i = 1; i <= cantNivelesPrevios; i++)
            {
                posProxGuion = codigoPresupuesto.IndexOf("-", posProxGuion + 1);
                string nivelPrevio = codigoPresupuesto.Substring(0, posProxGuion);

                switch (i)
                {
                case 1:
                    MyTempWebReportPresupuestoConsultaAnual.Codigo1erNivel = nivelPrevio;
                    break;

                case 2:
                    MyTempWebReportPresupuestoConsultaAnual.Codigo2doNivel = nivelPrevio;
                    break;

                case 3:
                    MyTempWebReportPresupuestoConsultaAnual.Codigo3erNivel = nivelPrevio;
                    break;

                case 4:
                    MyTempWebReportPresupuestoConsultaAnual.Codigo4toNivel = nivelPrevio;
                    break;

                case 5:
                    MyTempWebReportPresupuestoConsultaAnual.Codigo5toNivel = nivelPrevio;
                    break;

                case 6:
                    MyTempWebReportPresupuestoConsultaAnual.Codigo6toNivel = nivelPrevio;
                    break;
                }
            }

            // -------------------------------------------------------------------------------

            // agregamos el registro a la lista

            MyTempWebRepotPresupuestoConsultaAnual_List.Add(MyTempWebReportPresupuestoConsultaAnual);

            // -------------------------------------------------------------------------------
            // para actualizar las variables que se usan para mostrar el meter al usuario
            nRegistroActual    += 1;
            nProgreesPercentaje = nRegistroActual * 100 / nCantidadRegistros;

            Session["Progress_Percentage"] = nProgreesPercentaje;
            // -------------------------------------------------------------------------------
        }

        try
        {
            // agregamos la lista a la tabla en el db
            dbContab.tTempWebReport_PresupuestoConsultaAnuals.InsertAllOnSubmit(MyTempWebRepotPresupuestoConsultaAnual_List);

            dbContab.SubmitChanges();

            // finalmente, eliminamos de la tabla los recgistros cuya cuenta de presupuesto haya sido suspendida en la maestra

            string sqlStatement = "Delete From temp from tTempWebReport_PresupuestoConsultaAnual temp Inner Join Presupuesto_Codigos p " +
                                  "on temp.CodigoPresupuesto = p.Codigo And temp.CiaContab = p.CiaContab " +
                                  "Where p.SuspendidoFlag = 1 And temp.NombreUsuario = {0} ";

            dbContab.ExecuteCommand(sqlStatement, User.Identity.Name);
        }
        catch (Exception ex)
        {
            dbContab = null;

            ErrMessage_Span.InnerHtml = "Ha ocurrido un error al intentar ejecutar una operación de acceso a la base de datos. <br />" +
                                        "El mensaje específico de error es: " + ex.Message + "<br />";
            ErrMessage_Span.Style["display"] = "block";

            Session["Progress_Completed"]  = 1;
            Session["Progress_Percentage"] = 0;

            return;
        }

        dbContab = null;

        // -----------------------------------------------------
        // por último, inicializamos las variables que se usan para mostrar el progreso de la tarea
        Session["Progress_Completed"]    = 1;
        Session["Progress_Percentage"]   = 0;
        Session["Progress_SelectedRecs"] = nCantidadRegistros.ToString();
        // -----------------------------------------------------
    }
Exemple #15
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!User.Identity.IsAuthenticated)
        {
            FormsAuthentication.SignOut();
            return;
        }

        // -----------------------------------------------------------------------------------------

        Master.Page.Title = "Consulta de presupuesto  -  consulta de movimientos contables para un código de presupuesto y un mes";

        ErrMessage_Span.InnerHtml        = "";
        ErrMessage_Span.Style["display"] = "none";

        if (!Page.IsPostBack)
        {
            HtmlGenericControl MyHtmlH2;

            MyHtmlH2 = (HtmlGenericControl)(Master.FindControl("PageTitle_TableCell"));
            if (MyHtmlH2 != null)
            {
                MyHtmlH2.InnerHtml = "";
            }

            MovimientosContables_SqlDataSource.SelectParameters["MesFiscal"].DefaultValue         = Request.QueryString["MesFiscal"].ToString();
            MovimientosContables_SqlDataSource.SelectParameters["AnoFiscal"].DefaultValue         = Request.QueryString["AnoFiscal"].ToString();
            MovimientosContables_SqlDataSource.SelectParameters["CiaContab"].DefaultValue         = Request.QueryString["CiaContab"].ToString();
            MovimientosContables_SqlDataSource.SelectParameters["Moneda"].DefaultValue            = Request.QueryString["Moneda"].ToString();
            MovimientosContables_SqlDataSource.SelectParameters["CodigoPresupuesto"].DefaultValue = Request.QueryString["CodigoPresupuesto"].ToString();

            // leemos el nombre del mes, usando el mes fiscal y la compañía contab

            dbContabDataContext dbContab = new dbContabDataContext();

            var MyMesesAnoFiscal = (from meses in dbContab.MesesDelAnoFiscals
                                    where meses.Cia == Convert.ToInt32(Request.QueryString["CiaContab"].ToString()) &&
                                    meses.MesFiscal == int.Parse(Request.QueryString["MesFiscal"].ToString())
                                    select meses).FirstOrDefault();

            if (MyMesesAnoFiscal == null)
            {
                dbContab = null;

                ErrMessage_Span.InnerHtml        = "Aparentemente, no existe un registro en la tabla <i>Meses del Año Fiscal<i/> para alguna de las compañías seleccionada y el mes que se desea consultar.<br /><br />Por favor revise esta situación. La tabla tabla <i>Meses del Año Fiscal<i/> debe contener un registro cada una de las compañías registradas en <i>Contab<i/>.";
                ErrMessage_Span.Style["display"] = "block";

                Session["Progress_SelectedRecs"] = 0;
                Session["Progress_Completed"]    = 1;
                Session["Progress_Percentage"]   = 0;

                return;
            }

            TituloConsulta_H2.InnerHtml = "Movimientos contables para el código de presupuesto " +
                                          Request.QueryString["CodigoPresupuesto"].ToString() + "&nbsp;&nbsp;&nbsp;" + Request.QueryString["NombreCodigoPresupuesto"].ToString() + "<br /> " +
                                          "para el mes " + MyMesesAnoFiscal.NombreMes + " del año fiscal " + Request.QueryString["AnoFiscal"].ToString();

            // usamos linq to sql para obtener un total de los movimientos seleccionados y mostrados

            decimal?nGranTotal = (decimal?)(from da in dbContab.dAsientos
                                            from pacc in dbContab.Presupuesto_AsociacionCodigosCuentas
                                            where da.CuentaContableID == pacc.CuentaContableID &&
                                            da.Asiento.Cia == pacc.CiaContab &&
                                            da.Asiento.MesFiscal == int.Parse(Request.QueryString["MesFiscal"].ToString()) &&
                                            da.Asiento.AnoFiscal == int.Parse(Request.QueryString["AnoFiscal"].ToString()) &&
                                            da.Asiento.Moneda == int.Parse(Request.QueryString["Moneda"].ToString()) &&
                                            da.Asiento.Cia == int.Parse(Request.QueryString["CiaContab"].ToString()) &&
                                            pacc.CodigoPresupuesto == Request.QueryString["CodigoPresupuesto"].ToString()
                                            select new Nullable <Decimal>(da.Debe - da.Haber)).Sum();

            Label MyTotalLabel = (Label)MovimientosContables_ListView.FindControl("GranTotal_Label");

            if (nGranTotal.HasValue)
            {
                MyTotalLabel.Text = nGranTotal.Value.ToString("N2");
            }

            dbContab = null;
        }
        else
        {
        }

        MovimientosContables_ListView.DataBind();
    }
    private void CopiarMontosEntreCias()
    {
        // construimos el nombre del archivo xml que contendrá, al final, los resultados de la ejecución
        String fileName = String.Concat(Page.GetType().Name, "-", User.Identity.Name);
        String rootPath = Server.MapPath("~");
        String filePath = Server.MapPath("~/keepstatefiles/" + fileName + ".xml");

        // -----------------------------------------------------------------------------------------------
        // nótese que creamos el xml file que contendrá los resultados del proceso ahora. Esto permitirá
        // actualizarlo más adelante cuando sea necesario en forma más compacta (ie: sin crear todo el
        // archivo cada vez que, por ejemplo, encontremos un error y necesitemos reportarlo

        XElement root = new XElement("ProcessState",
                                     new XElement("Values",
                                                  new XElement("CantidadCodigosEliminados", 0),
                                                  new XElement("CantidadCodigosCopiados", 0),
                                                  new XElement("CantidadCuentasContablesAsociadasCopiadas", 0),
                                                  new XElement("CantidadCuentasContablesAsociadasNoCopiadas", 0),
                                                  new XElement("CantidadRegistrosMontosCopiados", 0),

                                                  new XElement("Error",
                                                               new XElement("ErrorFlag", 0),
                                                               new XElement("ErrorMessage", ""))));

        root.Save(filePath);
        // -----------------------------------------------------------------------------------------------


        // contamos y eliminamos los registros que ahora puedan existir para la cia Target. Nótese que, de
        // existir, ya chequeamos que el usuario haya marcado la opción que permite eliminarlos.

        dbContabDataContext dbContab = new dbContabDataContext();

        int nCantidadCodigosEliminados = (from a in dbContab.Presupuesto_Codigos
                                          where a.CiaContab == int.Parse(TargetCiaContab_ListBox.SelectedValue)
                                          select a.Codigo).Count();

        // ----------------------------------------------------------------------------------------------
        // siempre eliminamos los registros de códigos que puedan existir para la compañía Target;
        // lo hacemos pues, si existen códigos por eliminar, al llegar aquí SIEMPRE se tuvo que haber
        // marcado que éstos debían ser eliminados

        dbContab.ExecuteCommand("Delete From Presupuesto_Codigos Where CiaContab = {0}", TargetCiaContab_ListBox.SelectedValue);

        // para reportar el progreso en la página

        int nRegistroActual = 0, nProgressPercentaje = 0, nCantidadRegistros = 0;

        nCantidadRegistros = (from sc in dbContab.Presupuesto_Codigos
                              where sc.CiaContab ==
                              int.Parse(SourceCiaContab_ListBox.SelectedValue)
                              select sc).Count();

        // ----------------------------------------------------------------------------------------------
        // leemos los códigos de presupuesto de la compañía Source y los copiamos a la compañía Target ...

        int nCantidadCodigosCopiados = 0;

        var SourceCia_CodigosPresuesto = from sc in dbContab.Presupuesto_Codigos
                                         where sc.CiaContab == int.Parse(SourceCiaContab_ListBox.SelectedValue)
                                         select new
        {
            sc.Codigo,
            sc.Descripcion,
            sc.CantNiveles,
            sc.GrupoFlag,
            sc.SuspendidoFlag
        };

        Presupuesto_Codigo        MyCodigo;
        List <Presupuesto_Codigo> MyCodigo_List = new List <Presupuesto_Codigo>();

        foreach (var Codigo in SourceCia_CodigosPresuesto)
        {
            // vamos agregando cada código leído de la compañía Source a la compañía Target
            MyCodigo = new Presupuesto_Codigo();

            MyCodigo.Codigo         = Codigo.Codigo;
            MyCodigo.Descripcion    = Codigo.Descripcion;
            MyCodigo.CantNiveles    = Codigo.CantNiveles;
            MyCodigo.GrupoFlag      = Codigo.GrupoFlag;
            MyCodigo.SuspendidoFlag = Codigo.SuspendidoFlag;
            MyCodigo.CiaContab      = int.Parse(TargetCiaContab_ListBox.SelectedValue);

            MyCodigo_List.Add(MyCodigo);

            nCantidadCodigosCopiados++;

            // ---------------------------------------------------------------------
            // calculamos el progreso (%); es usado por el progress bar en la página
            nRegistroActual++;
            nProgressPercentaje = nRegistroActual * 100 / nCantidadRegistros;

            Session["Progress_Percentage"] = nProgressPercentaje;
            // ----------------------------------------------------------------------
        }

        try
        {
            dbContab.Presupuesto_Codigos.InsertAllOnSubmit(MyCodigo_List);
            dbContab.SubmitChanges();
        }
        catch (Exception ex)
        {
            dbContab = null;

            // ---------------------------------------------
            // escribimos el error al xml file y terminamos

            XElement xml = XElement.Load(filePath);

            xml.Element("Values").Element("Error").ReplaceAll(
                new XElement("ErrorFlag", "1"),
                new XElement("ErrorMessage", ex.Message));

            xml.Save(filePath);

            // para indicar que al progress bar que el proceso terminó
            Session["Progress_Completed"] = 1;

            return;
        }

        // -----------------------------------------------------------------------------------------------
        // ahora copiamos las cuentas contables asociadas a códigos de presupuesto. Nótese que chequeamos
        // que la cuenta contable exista para la compañía, antes de intentar grabarla en la tabla

        // para mostrar el progreso del progreso en la página

        nRegistroActual     = 0;
        nProgressPercentaje = 0;

        nCantidadRegistros = (from cc in dbContab.Presupuesto_AsociacionCodigosCuentas
                              where cc.CiaContab == int.Parse(SourceCiaContab_ListBox.SelectedValue)
                              select cc).Count();

        var AsociacionCodigosCuentas = from acc in dbContab.Presupuesto_AsociacionCodigosCuentas
                                       where acc.CiaContab == int.Parse(SourceCiaContab_ListBox.SelectedValue)
                                       select new { acc.CodigoPresupuesto, acc.CuentaContableID, acc.CuentasContable.Cuenta };

        Presupuesto_AsociacionCodigosCuenta        MyPresupuesto_AsociacionCodigosCuentas;
        List <Presupuesto_AsociacionCodigosCuenta> MyPresupuesto_AsociacionCodigosCuentas_List =
            new List <Presupuesto_AsociacionCodigosCuenta>();

        int nCantidadCuentasContablesAsociadasCopiadas   = 0;
        int nCantidadCuentasContablesAsociadasNoCopiadas = 0;

        foreach (var CuentaContable in AsociacionCodigosCuentas)
        {
            // primero nos aseguramos que la cuenta contable existe en la compañía Target

            // NOTA: como la cuenta contable en el código de presupuesto es el ID de la cuenta, debemos buscar la cuenta (ie: 1001200) para el ID (1500) ...

            CuentasContable cuentaContableEnTargetCia = dbContab.CuentasContables.
                                                        Where(c => c.Cuenta == CuentaContable.Cuenta && c.Cia == int.Parse(TargetCiaContab_ListBox.SelectedValue)).FirstOrDefault();

            if (cuentaContableEnTargetCia == null)
            {
                nCantidadCuentasContablesAsociadasNoCopiadas++;
            }
            else
            {
                MyPresupuesto_AsociacionCodigosCuentas = new Presupuesto_AsociacionCodigosCuenta();

                MyPresupuesto_AsociacionCodigosCuentas.CodigoPresupuesto = CuentaContable.CodigoPresupuesto;
                MyPresupuesto_AsociacionCodigosCuentas.CuentaContableID  = cuentaContableEnTargetCia.ID;
                MyPresupuesto_AsociacionCodigosCuentas.CiaContab         = int.Parse(TargetCiaContab_ListBox.SelectedValue);

                MyPresupuesto_AsociacionCodigosCuentas_List.Add(MyPresupuesto_AsociacionCodigosCuentas);

                nCantidadCuentasContablesAsociadasCopiadas++;
            }

            // ---------------------------------------------------------------------
            // calculamos el progreso (%); es usado por el progress bar en la página
            nRegistroActual++;
            nProgressPercentaje = nRegistroActual * 100 / nCantidadRegistros;

            Session["Progress_Percentage"] = nProgressPercentaje;
            // ----------------------------------------------------------------------
        }



        try
        {
            dbContab.Presupuesto_AsociacionCodigosCuentas.
            InsertAllOnSubmit(MyPresupuesto_AsociacionCodigosCuentas_List);
            dbContab.SubmitChanges();
        }
        catch (Exception ex)
        {
            dbContab = null;

            // ---------------------------------------------
            // escribimos el error al xml file y terminamos

            XElement xml = XElement.Load(filePath);

            xml.Element("Values").Element("Error").ReplaceAll(
                new XElement("ErrorFlag", "1"),
                new XElement("ErrorMessage", ex.Message));

            xml.Save(filePath);

            // para indicar que al progress bar que el proceso terminó
            Session["Progress_Completed"] = 1;

            return;
        }

        // -----------------------------------------------------------------------------------------------------
        // por último, el usuario pudo haber indicado que desea también pasar los registros de montos estimados
        // desde la compañía Source hacia la Target. Nótese que, de ser así, debe venir el año en al textbox
        // que existe para ello

        int nCantidadRegistrosMontosCopiados = 0;

        if (CopiarMontos_CheckBox.Checked && CopiarMontos_DropDownList.SelectedIndex != -1)
        {
            // para mostrar el progreso del progreso en la página

            nRegistroActual     = 0;
            nProgressPercentaje = 0;

            nCantidadRegistros = (from pm in dbContab.Presupuesto_Montos
                                  where pm.CiaContab ==
                                  int.Parse(SourceCiaContab_ListBox.SelectedValue) &&
                                  pm.Ano == int.Parse(CopiarMontos_DropDownList.SelectedValue)
                                  select pm).Count();

            var query = from pm in dbContab.Presupuesto_Montos
                        where pm.CiaContab == int.Parse(SourceCiaContab_ListBox.SelectedValue) &&
                        pm.Ano == int.Parse(CopiarMontos_DropDownList.SelectedValue)
                        select new
            {
                pm.CodigoPresupuesto,
                pm.Moneda,
                pm.Mes01_Est,
                pm.Mes02_Est,
                pm.Mes03_Est,
                pm.Mes04_Est,
                pm.Mes05_Est,
                pm.Mes06_Est,
                pm.Mes07_Est,
                pm.Mes08_Est,
                pm.Mes09_Est,
                pm.Mes10_Est,
                pm.Mes11_Est,
                pm.Mes12_Est
            };

            Presupuesto_Monto        MyPresupuesto_Montos;
            List <Presupuesto_Monto> MyPresupuesto_Montos_List = new List <Presupuesto_Monto>();

            foreach (var Pres_Montos in query)
            {
                MyPresupuesto_Montos = new Presupuesto_Monto();

                MyPresupuesto_Montos.CodigoPresupuesto = Pres_Montos.CodigoPresupuesto;
                MyPresupuesto_Montos.CiaContab         = int.Parse(TargetCiaContab_ListBox.SelectedValue);
                MyPresupuesto_Montos.Moneda            = Pres_Montos.Moneda;
                MyPresupuesto_Montos.Ano = short.Parse(CopiarMontos_DropDownList.SelectedValue);

                MyPresupuesto_Montos.Mes01_Est = Pres_Montos.Mes01_Est;
                MyPresupuesto_Montos.Mes02_Est = Pres_Montos.Mes02_Est;
                MyPresupuesto_Montos.Mes03_Est = Pres_Montos.Mes03_Est;
                MyPresupuesto_Montos.Mes04_Est = Pres_Montos.Mes04_Est;
                MyPresupuesto_Montos.Mes05_Est = Pres_Montos.Mes05_Est;
                MyPresupuesto_Montos.Mes06_Est = Pres_Montos.Mes06_Est;
                MyPresupuesto_Montos.Mes07_Est = Pres_Montos.Mes07_Est;
                MyPresupuesto_Montos.Mes08_Est = Pres_Montos.Mes08_Est;
                MyPresupuesto_Montos.Mes09_Est = Pres_Montos.Mes09_Est;
                MyPresupuesto_Montos.Mes10_Est = Pres_Montos.Mes10_Est;
                MyPresupuesto_Montos.Mes11_Est = Pres_Montos.Mes11_Est;
                MyPresupuesto_Montos.Mes12_Est = Pres_Montos.Mes12_Est;

                MyPresupuesto_Montos_List.Add(MyPresupuesto_Montos);

                nCantidadRegistrosMontosCopiados++;

                // ---------------------------------------------------------------------
                // calculamos el progreso (%); es usado por el progress bar en la página
                nRegistroActual++;
                nProgressPercentaje = nRegistroActual * 100 / nCantidadRegistros;

                Session["Progress_Percentage"] = nProgressPercentaje;
                // ----------------------------------------------------------------------
            }


            try
            {
                dbContab.Presupuesto_Montos.InsertAllOnSubmit(MyPresupuesto_Montos_List);
                dbContab.SubmitChanges();
            }
            catch (Exception ex)
            {
                dbContab = null;

                // ---------------------------------------------
                // escribimos el error al xml file y terminamos

                XElement xml = XElement.Load(filePath);

                xml.Element("Values").Element("Error").ReplaceAll(
                    new XElement("ErrorFlag", "1"),
                    new XElement("ErrorMessage", ex.Message));

                xml.Save(filePath);

                // para indicar que al progress bar que el proceso terminó
                Session["Progress_Completed"] = 1;

                return;
            }
        }
        dbContab = null;

        // ----------------------------------------------------------------------------------------
        // cuando el proceso termina, escribimos los resultados al xml file

        XElement xmlfile = XElement.Load(filePath);

        xmlfile.Element("Values").ReplaceAll(
            new XElement("CantidadCodigosEliminados", nCantidadCodigosEliminados),
            new XElement("CantidadCodigosCopiados", nCantidadCodigosCopiados),
            new XElement("CantidadCuentasContablesAsociadasCopiadas", nCantidadCuentasContablesAsociadasCopiadas),
            new XElement("CantidadCuentasContablesAsociadasNoCopiadas", nCantidadCuentasContablesAsociadasNoCopiadas),
            new XElement("CantidadRegistrosMontosCopiados", nCantidadRegistrosMontosCopiados),
            new XElement("Error",
                         new XElement("ErrorFlag", 0),
                         new XElement("ErrorMessage", "")));

        xmlfile.Save(filePath);

        // para indicar que al progress bar que el proceso terminó
        Session["Progress_Completed"] = 1;
    }
Exemple #17
0
        protected void Page_Load(object sender, EventArgs e)
        {
            ErrMessage_Span.InnerHtml        = "";
            ErrMessage_Span.Style["display"] = "none";

            if (!Page.IsPostBack)
            {
                HtmlGenericControl MyHtmlH2;

                MyHtmlH2 = (HtmlGenericControl)Master.FindControl("PageTitle_TableCell");
                if (!(MyHtmlH2 == null))
                {
                    MyHtmlH2.InnerHtml = "Consulta de Asientos Contables";
                }

                dbContabDataContext dbContab = new dbContabDataContext();

                int numeroAutomaticoAsiento = Convert.ToInt32(Page.Request.QueryString["NumeroAutomatico"]);

                // nótese que las páginas que usan esta página reciben, todas, este parámetro
                bool bReconvertirCifrasAntes_01Oct2021 = false;
                try
                {
                    bReconvertirCifrasAntes_01Oct2021 = (bool)Session["ReconvertirCifrasAntes_01Oct2021"];
                } catch (Exception ex)
                {
                    ErrMessage_Span.InnerHtml = "Ud. debe aplicar un filtro antes de intentar abrir esta página. <br />" +
                                                "Aparentemente, no se ha aplicado un filtro aún. <br /> " +
                                                "Por favor aplique un filtro. Luego regrese y ejecute esta función.";
                    ErrMessage_Span.Style["display"] = "block";

                    return;
                }

                // si el usuario quiere aplicar la reconversión Oct/2021, lo indicamos al SqlDataSource con un parámetro
                // el sqldatasource usa un Case para aplicar o no la operación (x/1M y redondear a 2 decimales)
                // solo intentamos reconvertir si el asiento es en Bs y de fecha *anterior* a 1-oct-2021
                if (bReconvertirCifrasAntes_01Oct2021)
                {
                    var asiento = dbContab.Asientos.Where(x => x.NumeroAutomatico == numeroAutomaticoAsiento).Select(x => new { moneda = x.Moneda, fecha = x.Fecha }).First();

                    if (asiento.fecha >= new DateTime(2021, 10, 1))
                    {
                        bReconvertirCifrasAntes_01Oct2021 = false;
                    }
                    else
                    {
                        // ----------------------------------------------------------------------------------------------------------------------
                        // leemos la tabla de monedas para 'saber' cual es la moneda Bs. Nota: la idea es aplicar las opciones de reconversión
                        // *solo* a esta moneda
                        var monedaNacional_return = Reconversion.Get_MonedaNacional();

                        if (monedaNacional_return.error)
                        {
                            ErrMessage_Span.InnerHtml        = monedaNacional_return.message;
                            ErrMessage_Span.Style["display"] = "block";

                            return;
                        }

                        Monedas monedaNacional = monedaNacional_return.moneda;
                        // ----------------------------------------------------------------------------------------------------------------------

                        if (asiento.moneda != monedaNacional.Moneda)
                        {
                            bReconvertirCifrasAntes_01Oct2021 = false;
                        }
                        else
                        {
                            this.Partidas_SqlDataSource.SelectParameters["Reconversion_2021"].DefaultValue = "si";
                        }
                    }
                }

                this.AsientosContables_SqlDataSource.SelectParameters["NumeroAutomatico"].DefaultValue = numeroAutomaticoAsiento.ToString();
                this.Partidas_SqlDataSource.SelectParameters["NumeroAutomatico"].DefaultValue          = numeroAutomaticoAsiento.ToString();
                this.Asientos_Log_SqlDataSource.SelectParameters["NumeroAutomatico"].DefaultValue      = numeroAutomaticoAsiento.ToString();
                this.AsientosLinks_SqlDataSource.SelectParameters["NumeroAutomatico"].DefaultValue     = numeroAutomaticoAsiento.ToString();

                decimal?nTotalDebe = (from d in dbContab.dAsientos
                                      where d.NumeroAutomatico == numeroAutomaticoAsiento
                                      select(decimal?) d.Debe).Sum();

                decimal?nTotalHaber = (from d in dbContab.dAsientos
                                       where d.NumeroAutomatico == numeroAutomaticoAsiento
                                       select(decimal?) d.Haber).Sum();

                if (bReconvertirCifrasAntes_01Oct2021)
                {
                    nTotalDebe  = Convert.ToDecimal(Math.Round(Convert.ToDouble(nTotalDebe) / 1000000, 2));
                    nTotalHaber = Convert.ToDecimal(Math.Round(Convert.ToDouble(nTotalHaber) / 1000000, 2));
                }

                Label MySumOfDebe_Label  = (Label)Partidas_ListView.FindControl("SumOfDebe_Label");
                Label MySumOfHaber_Label = (Label)Partidas_ListView.FindControl("SumOfHaber_Label");

                if (MySumOfDebe_Label != null)
                {
                    MySumOfDebe_Label.Text = nTotalDebe != null?nTotalDebe.Value.ToString("#,##0.000") : "0,000";
                }

                if (MySumOfHaber_Label != null)
                {
                    MySumOfHaber_Label.Text = nTotalHaber != null?nTotalHaber.Value.ToString("#,##0.000") : "0,000";
                }

                dbContab = null;

                // establecemos la propiedad del link que permite obtener el reporte para este asiento contable ...
                string url = "";
                url = "../../../ReportViewer.aspx?rpt=unasientocontable&NumeroAutomatico=" + numeroAutomaticoAsiento.ToString();
                ImprimirAsientoContable_HyperLink.HRef = "javascript:PopupWin('" + url + "', 1000, 680)";
            }
        }
Exemple #18
0
    protected void Page_Load(object sender, EventArgs e)
    {
        ErrMessage_Span.InnerHtml        = "";
        ErrMessage_Span.Style["display"] = "none";

        if (!User.Identity.IsAuthenticated)
        {
            FormsAuthentication.SignOut();
            return;
        }

        Master.Page.Title = "Control de presupuesto - Consulta anualizada";

        ControlPresupuesto_Reportes_HyperLink.NavigateUrl =
            "javascript:PopupWin('../../../../ReportViewer2.aspx?rpt=ptoconsanual&cantniveles=" +
            CantNiveles_DropDownList.SelectedValue +
            "', 1000, 680)";

        if (!Page.IsPostBack)
        {
            //Gets a reference to a Label control that is not in a
            //ContentPlaceHolder control

            HtmlContainerControl MyHtmlSpan;

            MyHtmlSpan = (HtmlContainerControl)(Master.FindControl("AppName_Span"));
            if (MyHtmlSpan != null)
            {
                MyHtmlSpan.InnerHtml = "Contab";
            }

            HtmlGenericControl MyHtmlH2;

            MyHtmlH2 = (HtmlGenericControl)(Master.FindControl("PageTitle_TableCell"));
            if (MyHtmlH2 != null)
            {
                MyHtmlH2.InnerHtml = "Consulta del Control de Presupuesto";
            }

            //--------------------------------------------------------------------------------------------
            //para asignar la página que corresponde al help de la página

            HtmlAnchor MyHtmlHyperLink;
            MyHtmlHyperLink = (HtmlAnchor)Master.FindControl("Help_HyperLink");

            MyHtmlHyperLink.HRef = "javascript:PopupWin('../../../Doc/Bancos/Facturas/Consulta facturas/consulta_general_de_facturas.htm', 1000, 680)";

            Session["FiltroForma"] = null;

            // eliminamos el contenido de la tabla de factores de conversión 'aplicados', para que esté
            // vacía cuando el usuario ejecute la función que lee estos factores y convierte las cifras
            // de esta consulta

            dbContabDataContext dbContab = new dbContabDataContext();

            dbContab.ExecuteCommand
                ("Delete From FactoresConversionAnoMes_Aplicados Where NombreUsuario = {0}",
                User.Identity.Name);

            dbContab = null;
        }
        else
        // -------------------------------------------------------------------------
        // la página puede ser 'refrescada' por el popup; en ese caso, ejeucutamos
        // una función que efectúa alguna funcionalidad y rebind la información
        {
            if (ExecuteThread_HiddenField.Value == "1")
            {
                // cuando este html item es 1, ejecutamos el thread que construye la selección y la graba
                // a una tabla en la base de datos

                ExecuteThread_HiddenField.Value = "0";

                // nótese como ejecutamos el sub que sigue en un thread diferente

                // ------------------------------------------------------------------------------
                // inicializamos antes las variables que indican que debemos mostrar el progreso

                Session["Progress_Completed"]    = 0;
                Session["Progress_Percentage"]   = 0;
                Session["Progress_SelectedRecs"] = 0;
                // ------------------------------------------------------------------------------

                BuildReportRecords();

                // ------------------------------------------------------------------------------------------------------
                // para mostrar un título que describa la consulta, leemos alguna información desde
                // la tabla tTempWebReport...

                dbContabDataContext dbContab = new dbContabDataContext();

                var MySelectedAnoFiscal = (from ma in dbContab.tTempWebReport_PresupuestoConsultaAnuals
                                           where ma.NombreUsuario == User.Identity.Name
                                           select new { ma.AnoFiscal }).FirstOrDefault();

                TituloConsulta_H2.InnerHtml = "Consulta anualizada de presupuesto para el año fiscal " +
                                              MySelectedAnoFiscal.AnoFiscal.ToString();

                dbContab = null;

                PageDataBind();

                //Thread MyThread = new Thread(BuildReportRecords);
                //MyThread.Priority = ThreadPriority.Lowest;
                //MyThread.Start();

                //// ejecutamos javascript para que lea la variable session y muestre el progreso

                //System.Text.StringBuilder sb = new System.Text.StringBuilder();
                //sb.Append("<script language='javascript'>");
                //sb.Append("showprogress();");
                //sb.Append("</script>");

                //ClientScript.RegisterStartupScript(this.GetType(), "onLoad", sb.ToString());
            }

            else
            {
                if (RebindPage_HiddenField.Value == "1")
                {
                    // cuando este html item es 1 terminó el thread que construye la selección. Entonces
                    // se hace un refresh de la página y ejecutamos aquí el procedimiento que hace el
                    // databind a los controles para que muestren los datos al usuario

                    RebindPage_HiddenField.Value   = "0";
                    SelectedRecs_HiddenField.Value = Session["Progress_SelectedRecs"].ToString();


                    PageDataBind();

                    // ------------------------------------------------------------------------------------------------------
                    // para mostrar un título que describa la consulta, leemos alguna información desde
                    // la tabla tTempWebReport...

                    dbContabDataContext dbContab = new dbContabDataContext();

                    var MySelectedAnoFiscal = (from ma in dbContab.tTempWebReport_PresupuestoConsultaAnuals
                                               where ma.NombreUsuario == User.Identity.Name
                                               select new { ma.AnoFiscal }).FirstOrDefault();

                    TituloConsulta_H2.InnerHtml = "Consulta anualizada de presupuesto para el año fiscal " +
                                                  MySelectedAnoFiscal.AnoFiscal.ToString();

                    dbContab = null;

                    System.Text.StringBuilder sb = new System.Text.StringBuilder();
                    sb.Append("<script language='javascript'>");
                    sb.Append("showprogress_displayselectedrecs();");
                    sb.Append("</script>");

                    ClientScript.RegisterStartupScript(this.GetType(), "onLoad", sb.ToString());
                }
            }
        }
    }