public ResultadoLista <DTO.Reportes.Balances.Comprobacion.Ficha> Reporte_Balance_Comprobacion(DTO.Reportes.Balances.Comprobacion.Filtro filtro)
        {
            var result = new ResultadoLista <DTO.Reportes.Balances.Comprobacion.Ficha>();

            try
            {
                using (var ctx = new dBEntities(_cn.ConnectionString))
                {
                    if (filtro.DesdePeriodo != null && filtro.HastaPeriodo != null)
                    {
                        var q = ctx.contabilidad_historico.Where(h =>
                                                                 h.mesHistorico >= filtro.DesdePeriodo.MesHistorico && h.anoHistorico >= filtro.DesdePeriodo.AnoHistorico &&
                                                                 h.mesHistorico <= filtro.HastaPeriodo.MesHistorico && h.anoHistorico <= filtro.HastaPeriodo.AnoHistorico).
                                GroupBy(g => new { key = g.idCta, idCta = g.idCta, codigo = g.codigo, nombre = g.descripcion, nivel = g.nivel, naturaleza = g.naturaleza }).
                                Select(s => new
                        {
                            id             = s.Key.idCta,
                            codigo         = s.Key.codigo,
                            nombre         = s.Key.nombre,
                            nivel          = s.Key.nivel,
                            naturaleza     = s.Key.naturaleza,
                            debe           = s.Sum(x => x.debe),
                            haber          = s.Sum(x => x.haber),
                            saldoInicial   = s.Sum(x => x.saldoAperura),
                            debeAcumulado  = s.Sum(x => x.debeAcumulado),
                            haberAcumulado = s.Sum(x => x.haberAcumulado)
                        }).
                                ToList();

                        if (q.Count > 0)
                        {
                            var list = q.Select(d =>
                            {
                                var nat = DTO.Contable.PlanCta.Enumerados.Naturaleza.Deudora;
                                if (d.naturaleza == "A")
                                {
                                    nat = DTO.Contable.PlanCta.Enumerados.Naturaleza.Acreedora;
                                }

                                return(new DTO.Reportes.Balances.Comprobacion.Ficha()
                                {
                                    Id = d.id,
                                    Codigo = d.codigo,
                                    Nombre = d.nombre,
                                    Nivel = d.nivel,
                                    Debe = d.debe,
                                    Haber = d.haber,
                                    SaldoInicial = d.saldoInicial,
                                    Naturaleza = nat,
                                    DebeAcumulado = d.debeAcumulado,
                                    HaberAcumulado = d.haberAcumulado
                                });
                            }).ToList();

                            result.cntRegistro = list.Count();
                            result.Lista       = list;
                        }
                    }
                    else
                    {
                        var q = ctx.contabilidad_plancta.ToList();
                        if (q.Count > 0)
                        {
                            var list = q.Select(d =>
                            {
                                var nat = DTO.Contable.PlanCta.Enumerados.Naturaleza.Deudora;
                                if (d.naturaleza == "A")
                                {
                                    nat = DTO.Contable.PlanCta.Enumerados.Naturaleza.Acreedora;
                                }

                                return(new DTO.Reportes.Balances.Comprobacion.Ficha()
                                {
                                    Id = d.id,
                                    Codigo = d.codigo,
                                    Nombre = d.descripcion,
                                    Nivel = d.nivel,
                                    Debe = d.debe,
                                    Haber = d.haber,
                                    SaldoInicial = d.saldoAnterior,
                                    Naturaleza = nat,
                                    DebeAcumulado = d.debeAcumulado,
                                    HaberAcumulado = d.haberAcumulado
                                });
                            }).ToList();

                            result.cntRegistro = list.Count();
                            result.Lista       = list;
                        }
                    }
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DTO.EnumResult.isError;
            }

            return(result);
        }
        public OOB.Resultado.ResultadoLista <OOB.Reportes.Balances.Comprobacion.Ficha> Reportes_Balance_Comprobacion(OOB.Reportes.Balances.Comprobacion.Filtro filtro)
        {
            var result = new OOB.Resultado.ResultadoLista <OOB.Reportes.Balances.Comprobacion.Ficha>();

            try
            {
                var filtroDTO = new DTO.Reportes.Balances.Comprobacion.Filtro();
                if (filtro != null)
                {
                    if (filtro.Desde != null && filtro.Hasta != null)
                    {
                        filtroDTO.DesdePeriodo = new DTO.Reportes.Balances.Historico()
                        {
                            MesHistorico = filtro.Desde.MesActual,
                            AnoHistorico = filtro.Desde.AnoActual
                        };
                        filtroDTO.HastaPeriodo = new DTO.Reportes.Balances.Historico()
                        {
                            MesHistorico = filtro.Hasta.MesActual,
                            AnoHistorico = filtro.Hasta.AnoActual
                        };
                    }
                }

                var resultDTO = _servicio.Reportes_Balances_Comprobacion(filtroDTO);
                if (resultDTO.Result == DTO.EnumResult.isError)
                {
                    throw new Exception(resultDTO.Mensaje);
                }

                if (resultDTO.Lista != null)
                {
                    result.cntRegistro = resultDTO.cntRegistro;
                    result.Lista       = resultDTO.Lista.OrderBy(o => o.Codigo).Select(item =>
                    {
                        return(new OOB.Reportes.Balances.Comprobacion.Ficha()
                        {
                            Codigo = item.Codigo,
                            Nombre = item.Nombre,
                            Nivel = item.Nivel,
                            Naturaleza = (OOB.Contable.PlanCta.Enumerados.Naturaleza)item.Naturaleza,
                            Debe = item.Debe,
                            Haber = item.Haber,
                            DebeAcumulado = item.DebeAcumulado,
                            HaberAcumulado = item.HaberAcumulado,
                            SaldoApertura = item.SaldoInicial,
                            IsTotal = false,
                        });
                    }).ToList();
                }
                else
                {
                    result.Lista = new List <OOB.Reportes.Balances.Comprobacion.Ficha>();
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = OOB.Resultado.EnumResult.isError;
            }
            return(result);
        }
예제 #3
0
 public DTO.ResultadoLista <DTO.Reportes.Balances.Comprobacion.Ficha> Reportes_Balances_Comprobacion(DTO.Reportes.Balances.Comprobacion.Filtro filtro)
 {
     return(provider.Reporte_Balance_Comprobacion(filtro));
 }