public static ComprobanteEgresoItem CreateItem(this ComprobanteEgreso comprobanteEgreso,
		                                               DALProxy proxy,
                                                       int idEgreso, decimal valor)
        {
            ComprobanteEgresoItem cei= new ComprobanteEgresoItem(){
                IdEgreso= idEgreso,
                Abono= valor,
                IdComprobanteEgreso= comprobanteEgreso.Id

            };
            proxy.Create(cei);
            return cei;
        }
        public static void ValidateAndThrowHttpError(this ComprobanteEgresoRetencion request, 
                                                     ComprobanteEgresoRetencion oldData,
                                                     ComprobanteEgreso ce,
                                                     ComprobanteEgresoItem cei,
                                                     Egreso egreso,
                                                     PresupuestoItem pi,
                                                     string ruleSet)
        {
            EgresoCERet ret = new EgresoCERet(){
                Egreso= egreso,
                Cei=cei,
                Ce=ce,
                OldRet= oldData,
                Ret= request,
                Pi=pi
            };

            EgresoCERetValidator av = new EgresoCERetValidator();
            av.ValidateAndThrowHttpError(ret, ruleSet);
        }
 public static void ValidateAndThrowHttpError(this ComprobanteEgresoRetencion request, 
                                              ComprobanteEgreso ce,
                                              ComprobanteEgresoItem cei,
                                              Egreso egreso,
                                              PresupuestoItem pi,
                                              string ruleSet)
 {
     request.ValidateAndThrowHttpError(new ComprobanteEgresoRetencion(),
                                       ce, cei, egreso, pi, ruleSet);
 }
        static void CheckOldAndNew(this ComprobanteEgresoItem request,
                                           ComprobanteEgresoItem oldData,
                                           DALProxy proxy
                                           )
        {
            ComprobanteEgresoItem data = new ComprobanteEgresoItem();
            data.PopulateWith(oldData);

            if(request.Abono!=default(decimal) && request.Abono!=data.Abono)
                data.Abono=request.Abono;

            request.PopulateWith(data);
        }
        static void ValidateAndThrowHttpError(this ComprobanteEgresoItem request,
                                                       ComprobanteEgresoItem oldData,
                                                       ComprobanteEgreso comprobante,
                                                       Egreso egreso,string ruleSet)
        {
            EgresoCE ece= new EgresoCE(){
                Egreso=egreso,
                Ce= comprobante,
                Cei= request,
                OldCei= oldData,
            };
            EgresoCEValidator av = new EgresoCEValidator();

            av.ValidateAndThrowHttpError(ece,ruleSet );
        }