public HttpResponseMessage AnularMovimiento() { try { var httpRequest = HttpContext.Current.Request; int nroMovimiento = Int32.Parse(httpRequest.Params["nroMovimiento"]); CtaMovimientos ctaMovimiento = ctaMovimientosService.GetByMovimientoNro(nroMovimiento); if (ctaCierresDePeriodosService.MovimientoEnPeriodoContableAbierto(ctaMovimiento)) { ctaMovimientosService.sp_cta_Anular_Movimiento(nroMovimiento); } else { throw new ArgumentNullException("ctaMovimientos"); } HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Accepted); return(response); } catch (ArgumentNullException ex) { HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.NotFound, ex.Message); return(response); } catch (Exception ex) { HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message); return(response); } }
/// <summary> /// Obtiene ctaMovimientos por movimientoNro. No tracking. /// </summary> public CtaMovimientos GetByMovimientoNro(int movimientoNro) { context.Configuration.LazyLoadingEnabled = false; CtaMovimientos ctaMovimientos = context.CtaMovimientos.Where(m => m.MovimientoNro == movimientoNro).FirstOrDefault(); return(ctaMovimientos); }
/// <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); }
/// <summary> /// Obtiene ctaMovimientos por movimientoNro. No tracking. /// </summary> public bool MovimientoEnPeriodoContableAbierto(CtaMovimientos ctaMovimiento) { return(ctaCierresDePeriodosDal.MovimientoEnPeriodoContableAbierto(ctaMovimiento)); }