public OOB.Resultado.ResultadoLista <OOB.Reportes.Balances.GananciaPerdida.Ficha> Reportes_Balance_GananciaPerdida(OOB.Reportes.Balances.GananciaPerdida.Filtro filtro)
        {
            var result = new OOB.Resultado.ResultadoLista <OOB.Reportes.Balances.GananciaPerdida.Ficha>();

            try
            {
                var filtroDTO = new DTO.Reportes.Balances.GananciaPerdida.Filtro();
                if (filtro != null)
                {
                    if (filtro.Desde != null && filtro.Hasta != null)
                    {
                        filtroDTO.DesdePerido = 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_GananciaPerdida(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.GananciaPerdida.Ficha()
                        {
                            Codigo = item.Codigo,
                            Nombre = item.Nombre,
                            Debe = item.Debe,
                            Haber = item.Haber,
                        });
                    }).ToList();
                }
                else
                {
                    result.Lista = new List <OOB.Reportes.Balances.GananciaPerdida.Ficha>();
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = OOB.Resultado.EnumResult.isError;
            }
            return(result);
        }
        public ResultadoLista <DTO.Reportes.Balances.GananciaPerdida.Ficha> Reporte_Balance_GananciaPerdida(DTO.Reportes.Balances.GananciaPerdida.Filtro filtro)
        {
            var result = new ResultadoLista <DTO.Reportes.Balances.GananciaPerdida.Ficha>();

            try
            {
                using (var ctx = new dBEntities(_cn.ConnectionString))
                {
                    if (filtro.DesdePerido != null && filtro.HastaPeriodo != null)
                    {
                        var q = ctx.contabilidad_historico.Where(r =>
                                                                 (r.mesHistorico >= filtro.DesdePerido.MesHistorico && r.anoHistorico >= filtro.DesdePerido.AnoHistorico &&
                                                                  r.mesHistorico <= filtro.HastaPeriodo.MesHistorico && r.anoHistorico <= filtro.HastaPeriodo.AnoHistorico) &&
                                                                 (r.codigo.Substring(0, 1) == "4" ||
                                                                  r.codigo.Substring(0, 1) == "5" ||
                                                                  r.codigo.Substring(0, 1) == "6" ||
                                                                  r.codigo.Substring(0, 1) == "7" ||
                                                                  r.codigo.Substring(0, 1) == "8"
                                                                 ) &&
                                                                 r.nivel == 6).
                                GroupBy(g => new
                        {
                            key        = g.idCta,
                            codigo     = g.codigo,
                            nombre     = g.descripcion,
                            naturaleza = g.naturaleza
                        }).
                                Select(s => new
                        {
                            codigo     = s.Key.codigo,
                            nombre     = s.Key.nombre,
                            naturaleza = s.Key.naturaleza,
                            debe       = s.Sum(t => t.debe),
                            haber      = s.Sum(t => t.haber)
                        }).
                                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.GananciaPerdida.Ficha
                                {
                                    Codigo = d.codigo,
                                    Nombre = d.nombre,
                                    Debe = d.debe,
                                    Haber = d.haber,
                                    Naturaleza = nat
                                });
                            }).ToList();

                            result.cntRegistro = list.Count();
                            result.Lista       = list;
                        }
                    }
                    else
                    {
                        var q = ctx.contabilidad_plancta.Where(r =>
                                                               (r.codigo.Substring(0, 1) == "4" ||
                                                                r.codigo.Substring(0, 1) == "5" ||
                                                                r.codigo.Substring(0, 1) == "6" ||
                                                                r.codigo.Substring(0, 1) == "7" ||
                                                                r.codigo.Substring(0, 1) == "8"
                                                               ) &&
                                                               r.nivel == 6).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.GananciaPerdida.Ficha
                                {
                                    Codigo = d.codigo,
                                    Nombre = d.descripcion,
                                    Debe = d.debe,
                                    Haber = d.haber,
                                    Naturaleza = nat
                                });
                            }).ToList();

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

            return(result);
        }
Esempio n. 3
0
 public DTO.ResultadoLista <DTO.Reportes.Balances.GananciaPerdida.Ficha> Reportes_Balances_GananciaPerdida(DTO.Reportes.Balances.GananciaPerdida.Filtro filtro)
 {
     return(provider.Reporte_Balance_GananciaPerdida(filtro));
 }