public OOB.Resultado.ResultadoLista <OOB.Reportes.Balances.General.Ficha> Reportes_Balance_General(OOB.Reportes.Balances.General.Filtro filtro) { var result = new OOB.Resultado.ResultadoLista <OOB.Reportes.Balances.General.Ficha>(); try { var filtroDTO = new DTO.Reportes.Balances.General.Filtro(); filtroDTO.IdCtaCierre = filtro.CuentaCierreMes.Id; filtroDTO.UtilidadPeriodo = filtro.UtilidadPeriodo; filtroDTO.SaldoCtaCierre = filtro.SaldoCtaCierre; 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_General(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.General.Ficha() { Codigo = item.Codigo, Nombre = item.Nombre, Nivel = item.Nivel, SaldoAnterior = item.SaldoAnterior, Debe = item.Debe, Haber = item.Haber, IsTotal = false, }); }).ToList(); } else { result.Lista = new List <OOB.Reportes.Balances.General.Ficha>(); } } catch (Exception e) { result.Mensaje = e.Message; result.Result = OOB.Resultado.EnumResult.isError; } return(result); }
public ResultadoLista <DTO.Reportes.Balances.General.Ficha> Reporte_Balance_General(DTO.Reportes.Balances.General.Filtro filtro) { var result = new ResultadoLista <DTO.Reportes.Balances.General.Ficha>(); try { using (var ctx = new dBEntities(_cn.ConnectionString)) { if (filtro.DesdePeriodo == null && filtro.HastaPeriodo == null) { var q = ctx.contabilidad_plancta.Where(t => (t.codigo.Substring(0, 1) == "1" || t.codigo.Substring(0, 1) == "2" || t.codigo.Substring(0, 1) == "3")) .ToList(); if (q.Count > 0) { var entCtaCierre = q.FirstOrDefault(c => c.id == filtro.IdCtaCierre); if (entCtaCierre != null) { var xmov = (entCtaCierre.debe - entCtaCierre.haber); entCtaCierre.saldoAnterior = filtro.UtilidadPeriodo; var nivel = entCtaCierre.nivel; if (nivel >= 1) { var entNiv = entCtaCierre; for (var nv = nivel; nv > 1; nv--) { entNiv = entNiv.contabilidad_plancta2; entNiv.saldoAnterior += (filtro.UtilidadPeriodo + filtro.SaldoCtaCierre) + xmov; } } } var xlista = q.Where(s => s.codigo.Length >= 9 && s.codigo.Substring(0, 9) == "3.1.1.03.").ToList(); var list = q.Select(d => { return(new DTO.Reportes.Balances.General.Ficha() { Id = d.id, Codigo = d.codigo, Nombre = d.descripcion, Nivel = d.nivel, SaldoAnterior = d.saldoAnterior, Debe = d.debe, Haber = d.haber, }); }).ToList(); result.cntRegistro = list.Count(); result.Lista = list; } } else { var q = ctx.contabilidad_historico.Where(t => (t.mesHistorico >= filtro.DesdePeriodo.MesHistorico && t.anoHistorico >= filtro.DesdePeriodo.AnoHistorico && t.mesHistorico <= filtro.HastaPeriodo.MesHistorico && t.anoHistorico <= filtro.HastaPeriodo.AnoHistorico) && (t.codigo.Substring(0, 1) == "1" || t.codigo.Substring(0, 1) == "2" || t.codigo.Substring(0, 1) == "3")). GroupBy(g => new { key = g.idCta, idCta = g.idCta, idPadre = g.idPadre, codigo = g.codigo, nombre = g.descripcion, nivel = g.nivel }). Select(s => new HistGeneral { idCta = s.Key.idCta, idPadre = s.Key.idPadre, codigo = s.Key.codigo, nombre = s.Key.nombre, nivel = s.Key.nivel, debe = s.Sum(t => t.debe), haber = s.Sum(t => t.haber), saldoAnterior = s.Where(t => t.mesHistorico == filtro.DesdePeriodo.MesHistorico && t.anoHistorico == filtro.DesdePeriodo.AnoHistorico).FirstOrDefault().saldoAnterior }) .ToList(); if (q.Count > 0) { ////ASIGNAR UTILIDAD DEL PERIODO A LA CUENTA DE AJUSTE DEL PATRIMONIO var entCtaCierre = q.FirstOrDefault(c => c.idCta == filtro.IdCtaCierre); if (entCtaCierre != null) { //var xmov = entCtaCierre.saldoAnterior var xmov = entCtaCierre.saldoAnterior + (entCtaCierre.debe - entCtaCierre.haber); entCtaCierre.debe = 0.0m; entCtaCierre.haber = 0.0m; entCtaCierre.saldoAnterior = (filtro.UtilidadPeriodo * (-1)); var nivel = entCtaCierre.nivel; if (nivel >= 1) { var entNiv = entCtaCierre; for (var nv = nivel; nv > 1; nv--) { entNiv = q.FirstOrDefault(c => c.idCta == entNiv.idPadre); //entNiv.contabilidad_plancta2; if (entNiv != null) { var xmv = (entCtaCierre.debe - entCtaCierre.haber); xmv = 0; entNiv.saldoAnterior -= xmov; entNiv.saldoAnterior += ((filtro.UtilidadPeriodo * (-1)) + xmv); // entNiv.saldoAnterior += (filtro.UtilidadPeriodo * (-1)); } } } } var list = q.Select(d => { return(new DTO.Reportes.Balances.General.Ficha() { Id = d.idCta, Codigo = d.codigo, Nombre = d.nombre, Nivel = d.nivel, SaldoAnterior = d.saldoAnterior, Debe = d.debe, Haber = d.haber, }); }).ToList(); result.cntRegistro = list.Count(); result.Lista = list; } } } } catch (Exception e) { result.Mensaje = e.Message; result.Result = DTO.EnumResult.isError; } return(result); }
public DTO.ResultadoLista <DTO.Reportes.Balances.General.Ficha> Reportes_Balances_General(DTO.Reportes.Balances.General.Filtro filtro) { return(provider.Reporte_Balance_General(filtro)); }