예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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);
        }