public OOB.Resultado.Resultado Periodo_Cerrar(OOB.Contable.Periodo.CerrarMes ficha) { var result = new OOB.Resultado.Resultado(); var fichaDTO = new DTO.Contable.Periodo.Cerrar() { IdCtaCierre = ficha.CuentaCierreMes.Id, MesActual = ficha.PeriodoActual.MesActual, AnoActual = ficha.PeriodoActual.AnoActual, IdPeriodoActual = ficha.PeriodoActual.Id, UtilidadPeriodo = ficha.UtilidadPeriodo, UtilidadAcumulada = ficha.UtilidadAcumulada, }; var resultDTO = _servicio.Contable_Periodo_CerrarMes(fichaDTO); if (resultDTO.Result == DTO.EnumResult.isError) { result.Result = OOB.Resultado.EnumResult.isError; result.Mensaje = resultDTO.Mensaje; return(result); } return(result); }
public DTO.Resultado Contable_Periodo_CerrarMes(DTO.Contable.Periodo.Cerrar ficha) { return(provider.Contable_Perido_Cerrar(ficha)); }
public Resultado Contable_Perido_Cerrar(DTO.Contable.Periodo.Cerrar ficha) { var result = new Resultado(); try { using (var ctx = new dBEntities(_cn.ConnectionString)) { using (var ts = ctx.Database.BeginTransaction()) { try { var entListaHistorico = ctx.contabilidad_plancta.ToList(); ctx.Configuration.AutoDetectChangesEnabled = false; foreach (var r in entListaHistorico) { var entHist = new contabilidad_historico() { idCta = r.id, codigo = r.codigo, descripcion = r.descripcion, tipo = r.tipo, naturaleza = r.naturaleza, saldoAperura = r.saldoApertura, saldoAnterior = r.saldoAnterior, debe = r.debe, haber = r.haber, estado = r.estado, idPadre = r.idPadre, nivel = r.nivel, debeAcumulado = r.debeAcumulado, haberAcumulado = r.haberAcumulado, mesHistorico = ficha.MesActual, anoHistorico = ficha.AnoActual, }; ctx.contabilidad_historico.Add(entHist); ctx.SaveChanges(); } ctx.Configuration.AutoDetectChangesEnabled = true; var entPeriodo = ctx.contabilidad_periodo.Find(ficha.IdPeriodoActual); entPeriodo.estatusCierre = "S"; entPeriodo.utilidad = ficha.UtilidadPeriodo; entPeriodo.utilidad_acumulada = ficha.UtilidadAcumulada; ctx.SaveChanges(); var mes = ficha.MesActual; var ano = ficha.AnoActual; if (ficha.MesActual == 12) { mes = 1; ano = ano + 1; } else { mes += 1; } var entPeriodoNuevo = new contabilidad_periodo() { mes = mes, ano = ano, estatusCierre = "", }; ctx.contabilidad_periodo.Add(entPeriodoNuevo); ctx.SaveChanges(); var ent = ctx.contabilidad_plancta.ToList(); foreach (var r in ent) { // PARA REVERSO DEL CIERRE, SE GUARDA r.rdebe = r.debe; r.rhaber = r.haber; r.rdebeAcumulado = r.debeAcumulado; r.rhaberAcumulado = r.haberAcumulado; r.rsaldoAnterior = r.saldoAnterior; r.rsaldoApertura = r.saldoApertura; // ////LIMPIAR LAS CUENTAS REALES //r.debeAcumulado += r.debe; //r.haberAcumulado += r.haber; //if (r.codigo.Substring(0, 1) == "1" || r.codigo.Substring(0, 1) == "2" || r.codigo.Substring(0, 1) == "3") //{ // var saldoFinal = r.saldoAnterior + r.debe + r.haber; // r.saldoAnterior = saldoFinal; //} //r.debe = 0.0m; //r.haber = 0.0m; ////LIMPIAR LAS CUENTAS REALES //if (r.codigo.Substring(0, 1) == "1" || r.codigo.Substring(0, 1) == "2" || r.codigo.Substring(0, 1) == "3") //{ // //var saldoFinal = r.saldoAnterior + r.debe + r.haber; // //r.saldoAnterior = saldoFinal; //} //else //{ // r.debeAcumulado += r.debe; // r.haberAcumulado += r.haber; // r.debe = 0.0m; // r.haber = 0.0m; //} //LIMPIAR LAS CUENTAS REALES r.debeAcumulado += r.debe; r.haberAcumulado += r.haber; //var saldoFinal = r.saldoAnterior + r.debe + r.haber; var saldoFinal = r.saldoAnterior + (r.debe - r.haber); r.saldoAnterior = saldoFinal; r.debe = 0.0m; r.haber = 0.0m; ctx.SaveChanges(); } ////ASIGNAR UTILIDAD DEL PERIODO A LA CUENTA DE AJUSTE DEL PATRIMONIO //var entCtaCierre = ctx.contabilidad_plancta.Find(ficha.IdCtaCierre); //entCtaCierre.saldoAnterior += (ficha.UtilidadPeriodo * (-1)); //ctx.SaveChanges(); //var nivel = entCtaCierre.nivel; //if (nivel >= 1) //{ // var entNiv = entCtaCierre; // for (var nv = nivel; nv > 1; nv--) // { // entNiv = entNiv.contabilidad_plancta2; // entNiv.saldoAnterior += (ficha.UtilidadPeriodo * (-1)); // ctx.SaveChanges(); // } //} ts.Commit(); } catch (Exception ex) { throw new Exception(ex.Message); } finally { ctx.Configuration.AutoDetectChangesEnabled = true; } } } } catch (Exception e) { result.Mensaje = e.Message; result.Result = DTO.EnumResult.isError; } return(result); }