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); }
public DTO.ResultadoLista <DTO.Reportes.Balances.Comprobacion.Ficha> Reportes_Balances_Comprobacion(DTO.Reportes.Balances.Comprobacion.Filtro filtro) { return(provider.Reporte_Balance_Comprobacion(filtro)); }