示例#1
0
 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;
 }
示例#2
0
		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;
        }
示例#3
0
        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);

        }   
示例#4
0
 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 ));            
         }
     }
 }