static PresupuestoItem CheckPresupuestoItem(DALProxy proxy,EgresoItem egresoItem) { PresupuestoItem pi = DAL.GetPresupuestoItem(proxy, egresoItem.IdPresupuestoItem); pi.AssertExists(egresoItem.IdPresupuestoItem); // en check 1 se hace el resto de las validaciones para pi return pi; }
static PresupuestoItem Check1(DALProxy proxy, EgresoItem request, int idUsuario) { PresupuestoItem pi = CheckPresupuestoItem(proxy,request); Presupuesto pr =DAL.GetPresupuestoById(proxy,pi.IdPresupuesto); pr.AssertExists(pi.IdPresupuesto); Centro centro= proxy.FirstOrDefaultById<Centro>(request.IdCentro); centro.AssertExists(request.IdCentro); Tercero tercero= default(Tercero); if(!pi.UsaTercero) request.IdTercero=null; if(request.IdTercero.HasValue) tercero=proxy.FirstOrDefaultById<Tercero>(request.IdTercero.Value); EgresoItemAlCrear ei = new EgresoItemAlCrear(){ NewItem=request, Prs= pr, Pi= pi, CentroItem= centro, TerceroItem=tercero }; EgresoItemAlCrearValidador eiv = new EgresoItemAlCrearValidador(); eiv.ValidateAndThrowHttpError(ei, EgresoItemAlCrear.Regla1); pi.CheckUsuarioGiradora(proxy, idUsuario, request.IdTercero); request.CodigoItem= pi.Codigo; request.NombreItem= pi.Nombre; request.NombreCentro=centro.Nombre; if(tercero!=default(Tercero)) { request.NombreTercero=tercero.Nombre; request.DocumentoTercero=tercero.Documento; request.DVTercero= tercero.DigitoVerificacion; } return pi; }
static void CheckOldAndNew(Egreso egreso, EgresoItem request, EgresoItem oldData, DALProxy proxy, int idUsuario) { egreso.ValidateAndThrowHttpError(Operaciones.Update); egreso.CheckPeriodo(proxy); oldData.CheckCentro(proxy,egreso.IdSucursal, idUsuario); EgresoItem data = new EgresoItem(); data.PopulateWith(oldData); if(request.IdCentro!=default(int) && request.IdCentro!=data.IdCentro) { data.IdCentro=request.IdCentro; data.CheckCentro(proxy, egreso.IdSucursal, idUsuario); } if(request.IdTercero.HasValue && ( !data.IdTercero.HasValue || (data.IdTercero.HasValue && request.IdTercero.Value!=data.IdTercero.Value))) { data.IdTercero= request.IdTercero; } if(request.IdPresupuestoItem!=default(int) && request.IdPresupuestoItem!= data.IdPresupuestoItem) data.IdPresupuestoItem= request.IdPresupuestoItem; if(request.TipoPartida!=default(short) && request.TipoPartida!=data.TipoPartida) data.TipoPartida=request.TipoPartida; if(request.Valor!=default(decimal) && request.Valor!=data.Valor) data.Valor=request.Valor; request.PopulateWith(data); }
static void CheckTercero(PresupuestoItem presupuestoItem, EgresoItem egresoItem) { if(presupuestoItem.UsaTercero) { if(!egresoItem.IdTercero.HasValue) { throw new HttpError(string.Format("Item de Presupuesto: '{0}' usa Tercero. EgresoItem.Id:'{1}'", presupuestoItem.Nombre, egresoItem.Id )); } } }