예제 #1
0
파일: Negocio.cs 프로젝트: tinovo/Sitio
        public List<EntidadCuenta> Error(EntidadCuenta parError)
        {
            List<EntidadCuenta> ListaError = new List<EntidadCuenta>();
            ListaError.Add(parError);

            return ListaError;
        }
예제 #2
0
 /* CONSTRUCTOR
 ---------------------------------------*/
 public VistaCuentas(EntidadCuenta parRegistro) : base()
 {
     if (parRegistro != null)
     {
         this.registro = parRegistro;
     }
     else
     {
         this.registro = new EntidadCuenta();
     }     
 }
예제 #3
0
        /* METODOS PRIVADOS
        ---------------------------------------*/
        private List<EntidadCuenta> ConvertToList(OracleCommand parComando)
        {
            if (this.EjecutarConsulta(parComando, "JDE") > 0)
            {
                List<EntidadCuenta> listaRegistros = new List<EntidadCuenta>();

                foreach (DataRow fila in this.DatosTabla.Rows)
                {
                    EntidadCuenta regTemp = new EntidadCuenta();

                    regTemp.Id = this.AsignarValor(regTemp.Id, fila, "ID");
                    regTemp.Descripcion = this.AsignarValor(regTemp.Descripcion, fila, "DESCRIPCION");
                    regTemp.Compania = this.AsignarValor(regTemp.Compania, fila, "COMPANIA");
                    regTemp.UnidadNegocio = this.AsignarValor(regTemp.UnidadNegocio, fila, "UN");
                    regTemp.Proyecto = this.AsignarValor(regTemp.Proyecto, fila, "UN_PROYECTO");
                    regTemp.ProyectoDesc = this.AsignarValor(regTemp.ProyectoDesc, fila, "UN_PROYECTO_DESC");
                    regTemp.ProyectoEstado = this.AsignarValor(regTemp.ProyectoEstado, fila, "UN_PROYECTO_ESTADO");
                    regTemp.Estado = this.AsignarValor(regTemp.Estado, fila, "ESTADO");
                    regTemp.EstadoDesc = this.AsignarValor(regTemp.EstadoDesc, fila, "ESTADO_DESC");
                    regTemp.Tipo = this.AsignarValor(regTemp.Tipo, fila, "TIPO");
                    regTemp.TipoDesc = this.AsignarValor(regTemp.TipoDesc, fila, "TIPO_DESC");
                    regTemp.Clase = this.AsignarValor(regTemp.Clase, fila, "CLASE");
                    regTemp.ClaseDesc = this.AsignarValor(regTemp.ClaseDesc, fila, "CLASE_DESC");
                    regTemp.Flujo = this.AsignarValor(regTemp.Flujo, fila, "FLUJO");
                    regTemp.FlujoDesc = this.AsignarValor(regTemp.FlujoDesc, fila, "FLUJO_DESC");
                    regTemp.Log = "-";

                    listaRegistros.Add(regTemp);
                }

                return listaRegistros;
            }
            else
            {
                return null;
            }
        }
예제 #4
0
        /*===================================================*\
            INGRESOS
        \*===================================================*/

        public List<EntidadFlujo> IngresosByCuentaDesc(EntidadFlujo parFiltros)
        {

            /* VARIABLES
            -----------------------------------------------------------*/
            int anio = parFiltros.Anio;
            string proyecto = parFiltros.Proyecto;
            string compania = parFiltros.Compania;
            string un = parFiltros.UnidadNegocio;
            string cuentaFlujo = "ING";


            /* FILTROS
            -----------------------------------------------------------*/
            // Se preparan los filtros de Cuenta
            EntidadCuenta entidadCuenta = new EntidadCuenta();
            entidadCuenta.Proyecto = proyecto;
            entidadCuenta.Compania = compania;
            entidadCuenta.UnidadNegocio = un;
            entidadCuenta.Flujo = cuentaFlujo;

            // Se preparan los filtros de Presupuestos
            EntidadBudget entidadBudget = new EntidadBudget();
            entidadBudget.Anio = anio;
            entidadBudget.Proyecto = proyecto;
            entidadBudget.Compania = compania;
            entidadBudget.UnidadNegocio = un;
            entidadBudget.CuentaFlujo = cuentaFlujo;

            // Se preparan los filtros de Facturas
            EntidadFactura entidadFactura = new EntidadFactura();
            entidadFactura.Anio = parFiltros.Anio;
            entidadFactura.Proyecto = parFiltros.Proyecto;
            entidadFactura.Compania = parFiltros.Compania;
            entidadFactura.UnidadNegocio = parFiltros.UnidadNegocio;
            entidadFactura.CuentaFlujo = cuentaFlujo;


            /* SE OBTIENEN LAS CUENTAS
            -----------------------------------------------------------*/
            VistaCuentas vistaCuentas = new VistaCuentas(entidadCuenta);
            List<EntidadCuenta> listaCuentas = vistaCuentas.GroupByDesc();
            if (vistaCuentas.Log == "OK")
            {

                /* SE OBTIENEN LOS PRESUPUESTOS
                -----------------------------------------------------------*/
                VistaBudgets vistaBudgets = new VistaBudgets(entidadBudget);
                List<EntidadBudget> listaBudgets = vistaBudgets.GroupByCuentaDesc();
                if (vistaBudgets.Log == "VACIO")
                {
                    listaBudgets = new List<EntidadBudget>();
                }
                else if (vistaBudgets.Log != "OK")
                {
                    EntidadFlujo error = new EntidadFlujo();
                    error.Log = vistaBudgets.Log;
                    return this.Error(error);
                }

                /* SE OBTIENEN LAS CUENTAS COBRADAS
                -----------------------------------------------------------*/
                VisMaCuentasCobradas vistaCuentasCobradas = new VisMaCuentasCobradas(entidadFactura);
                List<EntidadFactura> listaCobros = vistaCuentasCobradas.GroupByCuentaDesc();
                if (vistaCuentasCobradas.Log == "VACIO")
                {
                    listaCobros = new List<EntidadFactura>();
                }
                else if (vistaCuentasCobradas.Log != "OK")
                {
                    EntidadFlujo error = new EntidadFlujo();
                    error.Log = vistaCuentasCobradas.Log;
                    return this.Error(error);
                }


                /* SE OBTIENEN LAS CUENTAS POR COBRAR
                -----------------------------------------------------------*/
                VisMaCuentasXCobrar vistaCuentasXCobrar = new VisMaCuentasXCobrar(entidadFactura);
                List<EntidadFactura> listaCxc = vistaCuentasXCobrar.GroupByCuentaDesc();
                if (vistaCuentasXCobrar.Log == "VACIO")
                {
                    listaCxc = new List<EntidadFactura>();
                }
                else if (vistaCuentasXCobrar.Log != "OK")
                {
                    EntidadFlujo error = new EntidadFlujo();
                    error.Log = vistaCuentasXCobrar.Log;
                    return this.Error(error);
                }


                /* SE GRENERAN LOS JOINS ENTE RESULTADOS
                -----------------------------------------------------------*/

                var listaCuBu = (
                                        from Cu in listaCuentas
                                        join Bu in listaBudgets
                                        on Cu.Descripcion equals Bu.CuentaDesc into jCuBu
                                        from Bu in jCuBu.DefaultIfEmpty()
                                        select new
                                        {
                                            CuentaDesc = Cu.Descripcion,
                                            EneroPresu = Bu != null ? Bu.Enero : 0,
                                            FebreroPresu = Bu != null ? Bu.Febrero : 0,
                                            MarzoPresu = Bu != null ? Bu.Marzo : 0,
                                            AbrilPresu = Bu != null ? Bu.Abril : 0,
                                            MayoPresu = Bu != null ? Bu.Mayo : 0,
                                            JunioPresu = Bu != null ? Bu.Junio : 0,
                                            JulioPresu = Bu != null ? Bu.Julio : 0,
                                            AgostoPresu = Bu != null ? Bu.Agosto : 0,
                                            SeptiembrePresu = Bu != null ? Bu.Septiembre : 0,
                                            OctubrePresu = Bu != null ? Bu.Octubre : 0,
                                            NoviembrePresu = Bu != null ? Bu.Noviembre : 0,
                                            DiciembrePresu = Bu != null ? Bu.Diciembre : 0,
                                            TotalPresu = Bu != null ? Bu.Total : 0
                                        }).ToList();

                var listaCuBuCc = (
                                        from CuBu in listaCuBu
                                        join CC in listaCobros
                                        on CuBu.CuentaDesc equals CC.CuentaDesc into jCuBuCc
                                        from CC in jCuBuCc.DefaultIfEmpty()
                                        select new
                                        {
                                            CuentaDesc = CuBu.CuentaDesc,
                                            EneroPresu = CuBu.EneroPresu,
                                            FebreroPresu = CuBu.FebreroPresu,
                                            MarzoPresu = CuBu.MarzoPresu,
                                            AbrilPresu = CuBu.AbrilPresu,
                                            MayoPresu = CuBu.MayoPresu,
                                            JunioPresu = CuBu.JunioPresu,
                                            JulioPresu = CuBu.JulioPresu,
                                            AgostoPresu = CuBu.AgostoPresu,
                                            SeptiembrePresu = CuBu.SeptiembrePresu,
                                            OctubrePresu = CuBu.OctubrePresu,
                                            NoviembrePresu = CuBu.NoviembrePresu,
                                            DiciembrePresu = CuBu.DiciembrePresu,
                                            TotalPresu = CuBu.TotalPresu,

                                            EneroEjer = CC != null ? CC.Enero : 0,
                                            FebreroEjer = CC != null ? CC.Febrero : 0,
                                            MarzoEjer = CC != null ? CC.Marzo : 0,
                                            AbrilEjer = CC != null ? CC.Abril : 0,
                                            MayoEjer = CC != null ? CC.Mayo : 0,
                                            JunioEjer = CC != null ? CC.Junio : 0,
                                            JulioEjer = CC != null ? CC.Julio : 0,
                                            AgostoEjer = CC != null ? CC.Agosto : 0,
                                            SeptiembreEjer = CC != null ? CC.Septiembre : 0,
                                            OctubreEjer = CC != null ? CC.Octubre : 0,
                                            NoviembreEjer = CC != null ? CC.Noviembre : 0,
                                            DiciembreEjer = CC != null ? CC.Diciembre : 0,
                                            TotalPagado = CC != null ? CC.Total : 0,

                                            EneroDif = CC != null ? CuBu.EneroPresu - CC.Enero : CuBu.EneroPresu,
                                            FebreroDif = CC != null ? CuBu.FebreroPresu - CC.Febrero : CuBu.FebreroPresu,
                                            MarzoDif = CC != null ? CuBu.MarzoPresu - CC.Marzo : CuBu.MarzoPresu,
                                            AbrilDif = CC != null ? CuBu.AbrilPresu - CC.Abril : CuBu.AbrilPresu,
                                            MayoDif = CC != null ? CuBu.MayoPresu - CC.Mayo : CuBu.MayoPresu,
                                            JunioDif = CC != null ? CuBu.JunioPresu - CC.Junio : CuBu.JunioPresu,
                                            JulioDif = CC != null ? CuBu.JulioPresu - CC.Julio : CuBu.JulioPresu,
                                            AgostoDif = CC != null ? CuBu.AgostoPresu - CC.Agosto : CuBu.AgostoPresu,
                                            SeptiembreDif = CC != null ? CuBu.SeptiembrePresu - CC.Septiembre : CuBu.SeptiembrePresu,
                                            OctubreDif = CC != null ? CuBu.OctubrePresu - CC.Octubre : CuBu.OctubrePresu,
                                            NoviembreDif = CC != null ? CuBu.NoviembrePresu - CC.Noviembre : CuBu.NoviembrePresu,
                                            DiciembreDif = CC != null ? CuBu.DiciembrePresu - CC.Diciembre : CuBu.DiciembrePresu,
                                            TotalDif = CC != null ? CuBu.TotalPresu - CC.Total : CuBu.TotalPresu
                                        }

                                ).ToList();

                var fullList = (
                                    from CuBuCc in listaCuBuCc
                                    join Cxc in listaCxc
                                    on CuBuCc.CuentaDesc equals Cxc.CuentaDesc into jCuBuCcCxc
                                    from Cxc in jCuBuCcCxc.DefaultIfEmpty()
                                    select new
                                    {
                                        CuentaDesc = CuBuCc.CuentaDesc,
                                        EneroEjer = CuBuCc.EneroEjer,
                                        FebreroEjer = CuBuCc.FebreroEjer,
                                        MarzoEjer = CuBuCc.MarzoEjer,
                                        AbrilEjer = CuBuCc.AbrilEjer,
                                        MayoEjer = CuBuCc.MayoEjer,
                                        JunioEjer = CuBuCc.JunioEjer,
                                        JulioEjer = CuBuCc.JulioEjer,
                                        AgostoEjer = CuBuCc.AgostoEjer,
                                        SeptiembreEjer = CuBuCc.SeptiembreEjer,
                                        OctubreEjer = CuBuCc.OctubreEjer,
                                        NoviembreEjer = CuBuCc.NoviembreEjer,
                                        DiciembreEjer = CuBuCc.DiciembreEjer,
                                        TotalPagado = CuBuCc.TotalPagado,

                                        EneroPresu = CuBuCc.EneroPresu,
                                        FebreroPresu = CuBuCc.FebreroPresu,
                                        MarzoPresu = CuBuCc.MarzoPresu,
                                        AbrilPresu = CuBuCc.AbrilPresu,
                                        MayoPresu = CuBuCc.MayoPresu,
                                        JunioPresu = CuBuCc.JunioPresu,
                                        JulioPresu = CuBuCc.JulioPresu,
                                        AgostoPresu = CuBuCc.AgostoPresu,
                                        SeptiembrePresu = CuBuCc.SeptiembrePresu,
                                        OctubrePresu = CuBuCc.OctubrePresu,
                                        NoviembrePresu = CuBuCc.NoviembrePresu,
                                        DiciembrePresu = CuBuCc.DiciembrePresu,
                                        TotalPresu = CuBuCc.TotalPresu,

                                        EneroDif = CuBuCc.EneroDif,
                                        FebreroDif = CuBuCc.FebreroDif,
                                        MarzoDif = CuBuCc.MarzoDif,
                                        AbrilDif = CuBuCc.AbrilDif,
                                        MayoDif = CuBuCc.MayoDif,
                                        JunioDif = CuBuCc.JunioDif,
                                        JulioDif = CuBuCc.JulioDif,
                                        AgostoDif = CuBuCc.AgostoDif,
                                        SeptiembreDif = CuBuCc.SeptiembreDif,
                                        OctubreDif = CuBuCc.OctubreDif,
                                        NoviembreDif = CuBuCc.NoviembreDif,
                                        DiciembreDif = CuBuCc.DiciembreDif,
                                        TotalDif = CuBuCc.TotalDif,
                                        TotalCxc = Cxc != null ? Cxc.Total : 0
                                    }

                            ).ToList().OrderBy(a => a.CuentaDesc);



                /* CREAR LISTA DE INGRESOS
                -----------------------------------------------------------*/
                List<EntidadFlujo> listaIngresos = new List<EntidadFlujo>();

                foreach (var item in fullList)
                {
                    if (item.TotalPagado != 0 || item.TotalPresu != 0 || item.TotalCxc != 0)
                    {
                        EntidadFlujo aux = new EntidadFlujo();
                        aux.Anio = anio;
                        aux.Proyecto = proyecto;
                        aux.Compania = compania;
                        aux.UnidadNegocio = un;
                        aux.CuentaDesc = item.CuentaDesc;
                        aux.EneroEjercido = item.EneroEjer;
                        aux.FebreroEjercido = item.FebreroEjer;
                        aux.MarzoEjercido = item.MarzoEjer;
                        aux.AbrilEjercido = item.AbrilEjer;
                        aux.MayoEjercido = item.MayoEjer;
                        aux.JunioEjercido = item.JunioEjer;
                        aux.JulioEjercido = item.JulioEjer;
                        aux.AgostoEjercido = item.AgostoEjer;
                        aux.SeptiembreEjercido = item.SeptiembreEjer;
                        aux.OctubreEjercido = item.OctubreEjer;
                        aux.NoviembreEjercido = item.NoviembreEjer;
                        aux.DiciembreEjercido = item.DiciembreEjer;
                        aux.EneroBudget = item.EneroPresu;
                        aux.FebreroBudget = item.FebreroPresu;
                        aux.MarzoBudget = item.MarzoPresu;
                        aux.AbrilBudget = item.AbrilPresu;
                        aux.MayoBudget = item.MayoPresu;
                        aux.JunioBudget = item.JunioPresu;
                        aux.JulioBudget = item.JulioPresu;
                        aux.AgostoBudget = item.AgostoPresu;
                        aux.SeptiembreBudget = item.SeptiembrePresu;
                        aux.OctubreBudget = item.OctubrePresu;
                        aux.NoviembreBudget = item.NoviembrePresu;
                        aux.DiciembreBudget = item.DiciembrePresu;
                        aux.EneroDesviacion = item.EneroDif;
                        aux.FebreroDesviacion = item.FebreroDif;
                        aux.MarzoDesviacion = item.MarzoDif;
                        aux.AbrilDesviacion = item.AbrilDif;
                        aux.MayoDesviacion = item.MayoDif;
                        aux.JunioDesviacion = item.JunioDif;
                        aux.JulioDesviacion = item.JulioDif;
                        aux.AgostoDesviacion = item.AgostoDif;
                        aux.SeptiembreDesviacion = item.SeptiembreDif;
                        aux.OctubreDesviacion = item.OctubreDif;
                        aux.NoviembreDesviacion = item.NoviembreDif;
                        aux.DiciembreDesviacion = item.DiciembreDif;
                        aux.TotalBudget = item.TotalPresu;
                        aux.TotalEjercido = item.TotalPagado;
                        aux.TotalPendiente = item.TotalCxc;
                        aux.TotalDesviacion = item.TotalDif - item.TotalCxc;
                        aux.Log = "-";
                        listaIngresos.Add(aux);
                    }
                }

                if (listaIngresos.Count != 0)
                {
                    return listaIngresos;
                }
                else
                {

                    EntidadFlujo error = new EntidadFlujo();
                    error.Log = "VACIO";
                    return this.Error(error);
                }
            }
            else
            {
                EntidadFlujo error = new EntidadFlujo();
                error.Log = vistaCuentas.Log;
                return this.Error(error);

            }
        }
예제 #5
0
        public List<EntidadFlujo> EgresosByCuentaDesc(EntidadFlujo parFiltros)
        {
            /* VARIABLES
            -----------------------------------------------------------*/
            int anio = parFiltros.Anio;
            int periodo = parFiltros.Periodo;
            string proyecto = parFiltros.Proyecto;
            string compania = parFiltros.Compania;
            string un = parFiltros.UnidadNegocio;
            string cuentaClaseDesc = parFiltros.CuentaClaseDesc;
            string cuentaFlujo = "EGR";

            /* FILTROS
            -----------------------------------------------------------*/
            // Se preparan los filtros de Cuentas
            EntidadCuenta entidadCuenta = new EntidadCuenta();
            entidadCuenta.Proyecto = proyecto;
            entidadCuenta.Compania = compania;
            entidadCuenta.UnidadNegocio = un;
            entidadCuenta.ClaseDesc = cuentaClaseDesc;
            entidadCuenta.Flujo = cuentaFlujo;

            // Se preparan los filtros de Presupuestos
            EntidadBudget entidadBudget = new EntidadBudget();
            entidadBudget.Anio = anio;
            entidadBudget.Proyecto = proyecto;
            entidadBudget.Compania = compania;
            entidadBudget.UnidadNegocio = un;
            entidadBudget.CuentaClaseDesc = cuentaClaseDesc;
            entidadBudget.CuentaFlujo = cuentaFlujo;

            // Se preparan los filtros de Factura
            EntidadFactura entidadFactura = new EntidadFactura();
            entidadFactura.Anio = anio;
            entidadFactura.Proyecto = proyecto;
            entidadFactura.Compania = compania;
            entidadFactura.UnidadNegocio = un;
            entidadFactura.Periodo = periodo;
            entidadFactura.CuentaClaseDesc = cuentaClaseDesc;
            entidadFactura.CuentaFlujo = cuentaFlujo;


            /* SE OBTIENEN LAS CUENTAS
            -----------------------------------------------------------*/
            VistaCuentas vistaCuentas = new VistaCuentas(entidadCuenta);
            List<EntidadCuenta> listaCuentas = new List<EntidadCuenta>();

            // Se agregan cuentas virtuales de clasificación
            if (entidadCuenta.ClaseDesc == "ANTICIPOS SIN FACTURA")
            {
                EntidadCuenta auxCuenta = new EntidadCuenta();
                auxCuenta.ClaseDesc = "ANTICIPOS SIN FACTURA";
                auxCuenta.Descripcion = "COMPRAS";
                listaCuentas.Add(auxCuenta);

                EntidadCuenta auxCuenta2 = new EntidadCuenta();
                auxCuenta2.ClaseDesc = "ANTICIPOS SIN FACTURA";
                auxCuenta2.Descripcion = "OTROS";
                listaCuentas.Add(auxCuenta2);

                EntidadCuenta auxCuenta3 = new EntidadCuenta();
                auxCuenta3.ClaseDesc = "ANTICIPOS SIN FACTURA";
                auxCuenta3.Descripcion = "DEPOSITOS EN GARANTIA";
                listaCuentas.Add(auxCuenta3);

                EntidadCuenta auxCuenta4 = new EntidadCuenta();
                auxCuenta4.ClaseDesc = "ANTICIPOS SIN FACTURA";
                auxCuenta4.Descripcion = "VIATICOS SIN COMPROBAR";
                listaCuentas.Add(auxCuenta4);
            }
            else
            {
                listaCuentas = vistaCuentas.GroupByDesc();
            }

            if (listaCuentas != null)
            {

                /* SE OBTIENEN LOS PRESUPUESTOS
                -----------------------------------------------------------*/
                VistaBudgets vistaBudgets = new VistaBudgets(entidadBudget);
                List<EntidadBudget> listaBudgets = vistaBudgets.GroupByCuentaDesc();
                if (vistaBudgets.Log == "VACIO")
                {
                    listaBudgets = new List<EntidadBudget>();
                }
                else if (vistaBudgets.Log != "OK")
                {
                    EntidadFlujo error = new EntidadFlujo();
                    error.Log = vistaBudgets.Log;
                    return this.Error(error);
                }


                /* SE OBTIENEN LAS CUENTAS PAGADAS
                -----------------------------------------------------------*/
                VisMaCuentasPagadas vistaCuentasPagadas = new VisMaCuentasPagadas(entidadFactura);
                List<EntidadFactura> listaPagos = vistaCuentasPagadas.GroupByCuentaDesc();
                if (vistaCuentasPagadas.Log == "VACIO")
                {
                    listaPagos = new List<EntidadFactura>();
                }
                else if (vistaCuentasPagadas.Log != "OK")
                {
                    EntidadFlujo error = new EntidadFlujo();
                    error.Log = vistaCuentasPagadas.Log;
                    return this.Error(error);
                }


                /* SE GRENERAN LOS JOINS ENTE RESULTADOS
                -----------------------------------------------------------*/
                var query = (
                                from CuBu in
                                    (
                                        from Cu in listaCuentas
                                        join Bu in listaBudgets
                                        on Cu.Descripcion equals Bu.CuentaDesc into JCuBu
                                        from Bu in JCuBu.DefaultIfEmpty()
                                        select new
                                        {
                                            CuentaDesc = Cu.Descripcion,
                                            EneroPresu = Bu != null ? Bu.Enero : 0,
                                            FebreroPresu = Bu != null ? Bu.Febrero : 0,
                                            MarzoPresu = Bu != null ? Bu.Marzo : 0,
                                            AbrilPresu = Bu != null ? Bu.Abril : 0,
                                            MayoPresu = Bu != null ? Bu.Mayo : 0,
                                            JunioPresu = Bu != null ? Bu.Junio : 0,
                                            JulioPresu = Bu != null ? Bu.Julio : 0,
                                            AgostoPresu = Bu != null ? Bu.Agosto : 0,
                                            SeptiembrePresu = Bu != null ? Bu.Septiembre : 0,
                                            OctubrePresu = Bu != null ? Bu.Octubre : 0,
                                            NoviembrePresu = Bu != null ? Bu.Noviembre : 0,
                                            DiciembrePresu = Bu != null ? Bu.Diciembre : 0,
                                            TotalPresu = Bu != null ? Bu.Total : 0
                                        }
                                     )
                                join Co in listaPagos
                                on CuBu.CuentaDesc equals Co.CuentaDesc into JCuBuCo
                                from Co in JCuBuCo.DefaultIfEmpty()
                                select new
                                {
                                    CuentaDesc = CuBu.CuentaDesc,
                                    EneroPresu = CuBu.EneroPresu,
                                    FebreroPresu = CuBu.FebreroPresu,
                                    MarzoPresu = CuBu.MarzoPresu,
                                    AbrilPresu = CuBu.AbrilPresu,
                                    MayoPresu = CuBu.MayoPresu,
                                    JunioPresu = CuBu.JunioPresu,
                                    JulioPresu = CuBu.JulioPresu,
                                    AgostoPresu = CuBu.AgostoPresu,
                                    SeptiembrePresu = CuBu.SeptiembrePresu,
                                    OctubrePresu = CuBu.OctubrePresu,
                                    NoviembrePresu = CuBu.NoviembrePresu,
                                    DiciembrePresu = CuBu.DiciembrePresu,
                                    TotalPresu = CuBu.TotalPresu,

                                    EneroEjer = Co != null ? Co.Enero : 0,
                                    FebreroEjer = Co != null ? Co.Febrero : 0,
                                    MarzoEjer = Co != null ? Co.Marzo : 0,
                                    AbrilEjer = Co != null ? Co.Abril : 0,
                                    MayoEjer = Co != null ? Co.Mayo : 0,
                                    JunioEjer = Co != null ? Co.Junio : 0,
                                    JulioEjer = Co != null ? Co.Julio : 0,
                                    AgostoEjer = Co != null ? Co.Agosto : 0,
                                    SeptiembreEjer = Co != null ? Co.Septiembre : 0,
                                    OctubreEjer = Co != null ? Co.Octubre : 0,
                                    NoviembreEjer = Co != null ? Co.Noviembre : 0,
                                    DiciembreEjer = Co != null ? Co.Diciembre : 0,
                                    TotalEjer = Co != null ? Co.Total : 0,

                                    EneroDif = Co != null ? CuBu.EneroPresu - Co.Enero : CuBu.EneroPresu,
                                    FebreroDif = Co != null ? CuBu.FebreroPresu - Co.Febrero : CuBu.FebreroPresu,
                                    MarzoDif = Co != null ? CuBu.MarzoPresu - Co.Marzo : CuBu.MarzoPresu,
                                    AbrilDif = Co != null ? CuBu.AbrilPresu - Co.Abril : CuBu.AbrilPresu,
                                    MayoDif = Co != null ? CuBu.MayoPresu - Co.Mayo : CuBu.MayoPresu,
                                    JunioDif = Co != null ? CuBu.JunioPresu - Co.Junio : CuBu.JunioPresu,
                                    JulioDif = Co != null ? CuBu.JulioPresu - Co.Julio : CuBu.JulioPresu,
                                    AgostoDif = Co != null ? CuBu.AgostoPresu - Co.Agosto : CuBu.AgostoPresu,
                                    SeptiembreDif = Co != null ? CuBu.SeptiembrePresu - Co.Septiembre : CuBu.SeptiembrePresu,
                                    OctubreDif = Co != null ? CuBu.OctubrePresu - Co.Octubre : CuBu.OctubrePresu,
                                    NoviembreDif = Co != null ? CuBu.NoviembrePresu - Co.Noviembre : CuBu.NoviembrePresu,
                                    DiciembreDif = Co != null ? CuBu.DiciembrePresu - Co.Diciembre : CuBu.DiciembrePresu,
                                    TotalDif = Co != null ? CuBu.TotalPresu - Co.Total : CuBu.TotalPresu
                                }

                            ).ToList().OrderBy(a => a.CuentaDesc);


                /* CREAR LISTA DE EGRESOS
                -----------------------------------------------------------*/
                List<EntidadFlujo> listaEgresos = new List<EntidadFlujo>();

                foreach (var item in query)
                {
                    if (item.TotalEjer != 0 || item.TotalPresu != 0)
                    {
                        EntidadFlujo aux = new EntidadFlujo();
                        aux.Anio = anio;
                        aux.Proyecto = proyecto;
                        aux.UnidadNegocio = un;
                        aux.Compania = compania;
                        aux.CuentaClaseDesc = cuentaClaseDesc;
                        aux.CuentaDesc = item.CuentaDesc;
                        aux.Periodo = parFiltros.Periodo;
                        aux.EneroEjercido = item.EneroEjer;
                        aux.FebreroEjercido = item.FebreroEjer;
                        aux.MarzoEjercido = item.MarzoEjer;
                        aux.AbrilEjercido = item.AbrilEjer;
                        aux.MayoEjercido = item.MayoEjer;
                        aux.JunioEjercido = item.JunioEjer;
                        aux.JulioEjercido = item.JulioEjer;
                        aux.AgostoEjercido = item.AgostoEjer;
                        aux.SeptiembreEjercido = item.SeptiembreEjer;
                        aux.OctubreEjercido = item.OctubreEjer;
                        aux.NoviembreEjercido = item.NoviembreEjer;
                        aux.DiciembreEjercido = item.DiciembreEjer;
                        aux.EneroBudget = item.EneroPresu;
                        aux.FebreroBudget = item.FebreroPresu;
                        aux.MarzoBudget = item.MarzoPresu;
                        aux.AbrilBudget = item.AbrilPresu;
                        aux.MayoBudget = item.MayoPresu;
                        aux.JunioBudget = item.JunioPresu;
                        aux.JulioBudget = item.JulioPresu;
                        aux.AgostoBudget = item.AgostoPresu;
                        aux.SeptiembreBudget = item.SeptiembrePresu;
                        aux.OctubreBudget = item.OctubrePresu;
                        aux.NoviembreBudget = item.NoviembrePresu;
                        aux.DiciembreBudget = item.DiciembrePresu;
                        aux.EneroDesviacion = item.EneroDif;
                        aux.FebreroDesviacion = item.FebreroDif;
                        aux.MarzoDesviacion = item.MarzoDif;
                        aux.AbrilDesviacion = item.AbrilDif;
                        aux.MayoDesviacion = item.MayoDif;
                        aux.JunioDesviacion = item.JunioDif;
                        aux.JulioDesviacion = item.JulioDif;
                        aux.AgostoDesviacion = item.AgostoDif;
                        aux.SeptiembreDesviacion = item.SeptiembreDif;
                        aux.OctubreDesviacion = item.OctubreDif;
                        aux.NoviembreDesviacion = item.NoviembreDif;
                        aux.DiciembreDesviacion = item.DiciembreDif;
                        aux.TotalEjercido = item.TotalEjer;
                        aux.TotalBudget = item.TotalPresu;
                        aux.TotalDesviacion = item.TotalDif;
                        aux.Log = "-";

                        listaEgresos.Add(aux);
                    }
                }

                if (listaEgresos.Count != 0)
                {
                    return listaEgresos;
                }
                else
                {
                    EntidadFlujo error = new EntidadFlujo();
                    error.Log = "VACIO";
                    return this.Error(error);
                }
            }
            else
            {
                EntidadFlujo error = new EntidadFlujo();
                error.Log = vistaCuentas.Log;
                return this.Error(error);
            }
        }
예제 #6
0
        /*===================================================*\
            EGRESOS
        \*===================================================*/

        public List<EntidadFlujo> EgresosByCuentaClase(EntidadFlujo parFiltros)
        {

            /* VARIABLES
            -----------------------------------------------------------*/
            int anio = parFiltros.Anio;
            string proyecto = parFiltros.Proyecto;
            string compania = parFiltros.Compania;
            string un = parFiltros.UnidadNegocio;
            string cuentaFlujo = "EGR";


            /* FILTROS
            -----------------------------------------------------------*/
            // Se preparan los filtros de Cuentas
            EntidadCuenta entidadCuenta = new EntidadCuenta();
            entidadCuenta.Proyecto = proyecto;
            entidadCuenta.Compania = compania;
            entidadCuenta.UnidadNegocio = un;
            entidadCuenta.Flujo = cuentaFlujo;

            // Se preparan los filtros de Presupuestos
            EntidadBudget entidadBudget = new EntidadBudget();
            entidadBudget.Anio = anio;
            entidadBudget.Proyecto = proyecto;
            entidadBudget.Compania = compania;
            entidadBudget.UnidadNegocio = un;
            entidadBudget.CuentaFlujo = cuentaFlujo;

            // Se preparan los filtros de Factura
            EntidadFactura entidadFactura = new EntidadFactura();
            entidadFactura.Anio = anio;
            entidadFactura.Proyecto = proyecto;
            entidadFactura.Compania = compania;
            entidadFactura.UnidadNegocio = un;
            entidadFactura.CuentaFlujo = cuentaFlujo;


            /* SE OBTIENEN LAS CUENTAS
            -----------------------------------------------------------*/
            VistaCuentas vistaCuentas = new VistaCuentas(entidadCuenta);
            List<EntidadCuenta> listaCuentas = vistaCuentas.GroupByClase();

            if (vistaCuentas.Log == "OK")
            {

                /* SE AGREGAN CUENTAS VIRTUALES DE CLASIFIACION
                -----------------------------------------------------------*/
                EntidadCuenta auxCuenta = new EntidadCuenta();
                auxCuenta.ClaseDesc = "ANTICIPOS SIN FACTURA";
                listaCuentas.Add(auxCuenta);


                /* SE OBTIENEN LOS PRESUPUESTOS
                -----------------------------------------------------------*/
                VistaBudgets vistaBudgets = new VistaBudgets(entidadBudget);
                List<EntidadBudget> listaBudgets = vistaBudgets.GroupByCuentaClase();
                if (vistaBudgets.Log == "VACIO")
                {
                    listaBudgets = new List<EntidadBudget>();
                }
                else if (vistaBudgets.Log != "OK")
                {
                    EntidadFlujo error = new EntidadFlujo();
                    error.Log = vistaBudgets.Log;
                    return this.Error(error);
                }


                /* SE OBTIENEN LAS CUENTAS PAGADAS
                -----------------------------------------------------------*/
                VisMaCuentasPagadas vistaCuentasPagadas = new VisMaCuentasPagadas(entidadFactura);
                List<EntidadFactura> listaPagos = vistaCuentasPagadas.GroupByCuentaClase();
                if (vistaCuentasPagadas.Log == "VACIO")
                {
                    listaPagos = new List<EntidadFactura>();
                }
                else if (vistaCuentasPagadas.Log != "OK")
                {
                    EntidadFlujo error = new EntidadFlujo();
                    error.Log = vistaCuentasPagadas.Log;
                    return this.Error(error);
                }


                /* SE OBTIENEN LAS CUENTAS X PAGAR
                -----------------------------------------------------------*/
                VisMaCuentasXPagar vistaCuentasXPagar = new VisMaCuentasXPagar(entidadFactura);
                List<EntidadFactura> listaCxp = vistaCuentasXPagar.GroupByCuentaClase();
                if (vistaCuentasXPagar.Log == "VACIO")
                {
                    listaCxp = new List<EntidadFactura>();
                }
                else if (vistaCuentasXPagar.Log != "OK")
                {
                    EntidadFlujo error = new EntidadFlujo();
                    error.Log = vistaCuentasXPagar.Log;
                    return this.Error(error);
                }


                /* SE GRENERAN LOS JOINS ENTE RESULTADOS
                -----------------------------------------------------------*/
                var query = (
                                from CuBuCo in
                                    (
                                         from CuBu in
                                             (
                                                from Cu in listaCuentas
                                                join Bu in listaBudgets
                                                on Cu.ClaseDesc equals Bu.CuentaClaseDesc into JCuBu
                                                from Bu in JCuBu.DefaultIfEmpty()
                                                select new
                                                {
                                                    CuentaClaseDesc = Cu.ClaseDesc,
                                                    EneroPresu = Bu != null ? Bu.Enero : 0,
                                                    FebreroPresu = Bu != null ? Bu.Febrero : 0,
                                                    MarzoPresu = Bu != null ? Bu.Marzo : 0,
                                                    AbrilPresu = Bu != null ? Bu.Abril : 0,
                                                    MayoPresu = Bu != null ? Bu.Mayo : 0,
                                                    JunioPresu = Bu != null ? Bu.Junio : 0,
                                                    JulioPresu = Bu != null ? Bu.Julio : 0,
                                                    AgostoPresu = Bu != null ? Bu.Agosto : 0,
                                                    SeptiembrePresu = Bu != null ? Bu.Septiembre : 0,
                                                    OctubrePresu = Bu != null ? Bu.Octubre : 0,
                                                    NoviembrePresu = Bu != null ? Bu.Noviembre : 0,
                                                    DiciembrePresu = Bu != null ? Bu.Diciembre : 0,
                                                    TotalPresu = Bu != null ? Bu.Total : 0
                                                }
                                             )
                                         join Co in listaPagos
                                         on CuBu.CuentaClaseDesc equals Co.CuentaClaseDesc into JCuBuCo
                                         from Co in JCuBuCo.DefaultIfEmpty()
                                         select new
                                         {
                                             CuentaClaseDesc = CuBu.CuentaClaseDesc,
                                             EneroPresu = CuBu.EneroPresu,
                                             FebreroPresu = CuBu.FebreroPresu,
                                             MarzoPresu = CuBu.MarzoPresu,
                                             AbrilPresu = CuBu.AbrilPresu,
                                             MayoPresu = CuBu.MayoPresu,
                                             JunioPresu = CuBu.JunioPresu,
                                             JulioPresu = CuBu.JulioPresu,
                                             AgostoPresu = CuBu.AgostoPresu,
                                             SeptiembrePresu = CuBu.SeptiembrePresu,
                                             OctubrePresu = CuBu.OctubrePresu,
                                             NoviembrePresu = CuBu.NoviembrePresu,
                                             DiciembrePresu = CuBu.DiciembrePresu,
                                             TotalPresu = CuBu.TotalPresu,

                                             EneroEjer = Co != null ? Co.Enero : 0,
                                             FebreroEjer = Co != null ? Co.Febrero : 0,
                                             MarzoEjer = Co != null ? Co.Marzo : 0,
                                             AbrilEjer = Co != null ? Co.Abril : 0,
                                             MayoEjer = Co != null ? Co.Mayo : 0,
                                             JunioEjer = Co != null ? Co.Junio : 0,
                                             JulioEjer = Co != null ? Co.Julio : 0,
                                             AgostoEjer = Co != null ? Co.Agosto : 0,
                                             SeptiembreEjer = Co != null ? Co.Septiembre : 0,
                                             OctubreEjer = Co != null ? Co.Octubre : 0,
                                             NoviembreEjer = Co != null ? Co.Noviembre : 0,
                                             DiciembreEjer = Co != null ? Co.Diciembre : 0,
                                             TotalPagado = Co != null ? Co.Total : 0,

                                             EneroDif = Co != null ? CuBu.EneroPresu - Co.Enero : CuBu.EneroPresu,
                                             FebreroDif = Co != null ? CuBu.FebreroPresu - Co.Febrero : CuBu.FebreroPresu,
                                             MarzoDif = Co != null ? CuBu.MarzoPresu - Co.Marzo : CuBu.MarzoPresu,
                                             AbrilDif = Co != null ? CuBu.AbrilPresu - Co.Abril : CuBu.AbrilPresu,
                                             MayoDif = Co != null ? CuBu.MayoPresu - Co.Mayo : CuBu.MayoPresu,
                                             JunioDif = Co != null ? CuBu.JunioPresu - Co.Junio : CuBu.JunioPresu,
                                             JulioDif = Co != null ? CuBu.JulioPresu - Co.Julio : CuBu.JulioPresu,
                                             AgostoDif = Co != null ? CuBu.AgostoPresu - Co.Agosto : CuBu.AgostoPresu,
                                             SeptiembreDif = Co != null ? CuBu.SeptiembrePresu - Co.Septiembre : CuBu.SeptiembrePresu,
                                             OctubreDif = Co != null ? CuBu.OctubrePresu - Co.Octubre : CuBu.OctubrePresu,
                                             NoviembreDif = Co != null ? CuBu.NoviembrePresu - Co.Noviembre : CuBu.NoviembrePresu,
                                             DiciembreDif = Co != null ? CuBu.DiciembrePresu - Co.Diciembre : CuBu.DiciembrePresu,
                                             TotalDif = Co != null ? CuBu.TotalPresu - Co.Total : CuBu.TotalPresu
                                         }
                                    )
                                join CxCs in listaCxp
                                on CuBuCo.CuentaClaseDesc equals CxCs.CuentaClaseDesc into JCuBuCoCx
                                from CxCs in JCuBuCoCx.DefaultIfEmpty()
                                select new
                                {
                                    CuentaClaseDesc = CuBuCo.CuentaClaseDesc,
                                    EneroEjer = CuBuCo.EneroEjer,
                                    FebreroEjer = CuBuCo.FebreroEjer,
                                    MarzoEjer = CuBuCo.MarzoEjer,
                                    AbrilEjer = CuBuCo.AbrilEjer,
                                    MayoEjer = CuBuCo.MayoEjer,
                                    JunioEjer = CuBuCo.JunioEjer,
                                    JulioEjer = CuBuCo.JulioEjer,
                                    AgostoEjer = CuBuCo.AgostoEjer,
                                    SeptiembreEjer = CuBuCo.SeptiembreEjer,
                                    OctubreEjer = CuBuCo.OctubreEjer,
                                    NoviembreEjer = CuBuCo.NoviembreEjer,
                                    DiciembreEjer = CuBuCo.DiciembreEjer,
                                    TotalPagado = CuBuCo.TotalPagado,

                                    EneroPresu = CuBuCo.EneroPresu,
                                    FebreroPresu = CuBuCo.FebreroPresu,
                                    MarzoPresu = CuBuCo.MarzoPresu,
                                    AbrilPresu = CuBuCo.AbrilPresu,
                                    MayoPresu = CuBuCo.MayoPresu,
                                    JunioPresu = CuBuCo.JunioPresu,
                                    JulioPresu = CuBuCo.JulioPresu,
                                    AgostoPresu = CuBuCo.AgostoPresu,
                                    SeptiembrePresu = CuBuCo.SeptiembrePresu,
                                    OctubrePresu = CuBuCo.OctubrePresu,
                                    NoviembrePresu = CuBuCo.NoviembrePresu,
                                    DiciembrePresu = CuBuCo.DiciembrePresu,
                                    TotalPresu = CuBuCo.TotalPresu,

                                    EneroDif = CuBuCo.EneroDif,
                                    FebreroDif = CuBuCo.FebreroDif,
                                    MarzoDif = CuBuCo.MarzoDif,
                                    AbrilDif = CuBuCo.AbrilDif,
                                    MayoDif = CuBuCo.MayoDif,
                                    JunioDif = CuBuCo.JunioDif,
                                    JulioDif = CuBuCo.JulioDif,
                                    AgostoDif = CuBuCo.AgostoDif,
                                    SeptiembreDif = CuBuCo.SeptiembreDif,
                                    OctubreDif = CuBuCo.OctubreDif,
                                    NoviembreDif = CuBuCo.NoviembreDif,
                                    DiciembreDif = CuBuCo.DiciembreDif,
                                    TotalDif = CuBuCo.TotalDif,
                                    TotalCxc = CxCs != null ? CxCs.Total : 0
                                }

                            ).ToList().OrderBy(a => a.CuentaClaseDesc);


                /* CREAR LISTA DE EGRESOS
                -----------------------------------------------------------*/
                List<EntidadFlujo> listaEgresos = new List<EntidadFlujo>();

                foreach (var item in query)
                {
                    if (item.TotalPagado != 0
                        || item.TotalPresu != 0
                        || item.TotalCxc != 0
                        )
                    {
                        EntidadFlujo aux = new EntidadFlujo();
                        aux.Anio = anio;
                        aux.Proyecto = proyecto;
                        aux.Compania = compania;
                        aux.UnidadNegocio = un;
                        aux.CuentaClaseDesc = item.CuentaClaseDesc;
                        aux.EneroEjercido = item.EneroEjer;
                        aux.FebreroEjercido = item.FebreroEjer;
                        aux.MarzoEjercido = item.MarzoEjer;
                        aux.AbrilEjercido = item.AbrilEjer;
                        aux.MayoEjercido = item.MayoEjer;
                        aux.JunioEjercido = item.JunioEjer;
                        aux.JulioEjercido = item.JulioEjer;
                        aux.AgostoEjercido = item.AgostoEjer;
                        aux.SeptiembreEjercido = item.SeptiembreEjer;
                        aux.OctubreEjercido = item.OctubreEjer;
                        aux.NoviembreEjercido = item.NoviembreEjer;
                        aux.DiciembreEjercido = item.DiciembreEjer;
                        aux.EneroBudget = item.EneroPresu;
                        aux.FebreroBudget = item.FebreroPresu;
                        aux.MarzoBudget = item.MarzoPresu;
                        aux.AbrilBudget = item.AbrilPresu;
                        aux.MayoBudget = item.MayoPresu;
                        aux.JunioBudget = item.JunioPresu;
                        aux.JulioBudget = item.JulioPresu;
                        aux.AgostoBudget = item.AgostoPresu;
                        aux.SeptiembreBudget = item.SeptiembrePresu;
                        aux.OctubreBudget = item.OctubrePresu;
                        aux.NoviembreBudget = item.NoviembrePresu;
                        aux.DiciembreBudget = item.DiciembrePresu;
                        aux.EneroDesviacion = item.EneroDif;
                        aux.FebreroDesviacion = item.FebreroDif;
                        aux.MarzoDesviacion = item.MarzoDif;
                        aux.AbrilDesviacion = item.AbrilDif;
                        aux.MayoDesviacion = item.MayoDif;
                        aux.JunioDesviacion = item.JunioDif;
                        aux.JulioDesviacion = item.JulioDif;
                        aux.AgostoDesviacion = item.AgostoDif;
                        aux.SeptiembreDesviacion = item.SeptiembreDif;
                        aux.OctubreDesviacion = item.OctubreDif;
                        aux.NoviembreDesviacion = item.NoviembreDif;
                        aux.DiciembreDesviacion = item.DiciembreDif;
                        aux.TotalBudget = item.TotalPresu;
                        aux.TotalEjercido = item.TotalPagado;
                        aux.TotalPendiente = item.TotalCxc;
                        aux.TotalDesviacion = item.TotalDif - item.TotalCxc;
                        aux.Log = "-";
                        listaEgresos.Add(aux);
                    }
                }

                if (listaEgresos.Count != 0)
                {
                    return listaEgresos;
                }
                else
                {
                    EntidadFlujo error = new EntidadFlujo();
                    error.Log = "VACIO";
                    return this.Error(error);
                }
            }
            else
            {
                EntidadFlujo error = new EntidadFlujo();
                error.Log = vistaCuentas.Log;
                return this.Error(error);
            }
        }