/// <summary> /// Anula todos los movimientos de aplicación y el movimiento. /// </summary> public void AnularMovimientosDeAplicacionAndMovimientoByNroMovimiento(int nroMovimiento) { CtaCierresDePeriodos ctaCierresDePeriodo = context.CtaCierresDePeriodos.OrderBy(vdp => vdp.FechaHasta).FirstOrDefault(); DateTime fechaHastaMaxima = ctaCierresDePeriodo.FechaHasta; var query = (from ap in context.CtaMovimientosAplicacion join m in context.CtaMovimientos.Where(m => m.MovimientoTipoId == "PC-APL") on ap.MovimientoNro equals m.MovimientoNro join c1 in context.CtaMovimientosCuotas on ap.MovimientoCuotaClaveAplicado equals c1.Clave join c2 in context.CtaMovimientosCuotas on ap.MovimientoCuotaClaveAplicando equals c2.Clave where (c1.MovimientoNro == nroMovimiento || c2.MovimientoNro == nroMovimiento) && ap.MovimientoNro != nroMovimiento && m.FechaComprobante >= fechaHastaMaxima select m).Distinct(); foreach (CtaMovimientos movimiento in query) { context.sp_cta_Anular_MovimientoAPL((int)movimiento.MovimientoNro, "");//REVISAR } int entidadId = context.CtaMovimientos.Where(m => m.MovimientoNro == nroMovimiento).FirstOrDefault().EntidadId.Value; var query2 = (from m in context.CtaMovimientos where m.EntidadId == entidadId && m.MovimientoTipoId == "PC-APL" select m).OrderByDescending(m => m.MovimientoNro); foreach (CtaMovimientos movimiento in query2) { context.sp_cta_Anular_MovimientoAPL((int)movimiento.MovimientoNro, "");//REVISAR } context.sp_cta_Anular_Movimiento_Return_Afectadas(nroMovimiento); }
/// <summary> /// Verifica si el movimiento pertenece a un periodo contable abierto. /// </summary> public bool MovimientoEnPeriodoContableAbierto(CtaMovimientos ctaMovimiento) { context.Configuration.LazyLoadingEnabled = false; CtaCierresDePeriodos ctaCierresDePeriodo = context.CtaCierresDePeriodos.OrderBy(vdp => vdp.FechaHasta).FirstOrDefault(); if (ctaMovimiento.FechaComprobante > ctaCierresDePeriodo.FechaHasta) { return(true); } return(false); }