public List<EntidadCuenta> Error(EntidadCuenta parError) { List<EntidadCuenta> ListaError = new List<EntidadCuenta>(); ListaError.Add(parError); return ListaError; }
/* CONSTRUCTOR ---------------------------------------*/ public VistaCuentas(EntidadCuenta parRegistro) : base() { if (parRegistro != null) { this.registro = parRegistro; } else { this.registro = new EntidadCuenta(); } }
/* 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; } }
/*===================================================*\ 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); } }
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); } }
/*===================================================*\ 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); } }