예제 #1
0
        public RuleResult IsValid(BookTypeEnum book, PropertyTypeEnum propType, DateTime pisDate, DeprMethodTypeEnum deprMethod, int deprPct, YrsMosDate estLife)
        {
            ErrorCode   errorCode;
            IbpRuleBase rb = new bpRuleBase();

            rb.ValidateEstimatedLife((short)(propType), pisDate, (short)(deprMethod), (int)deprPct, (short)(estLife.Years * 100 + estLife.Months), out errorCode);

            switch ((RuleBase_ErrorCodeEnum)errorCode)
            {
            case RuleBase_ErrorCodeEnum.rulebase_Valid:
                return(RuleResult.Valid);

            case RuleBase_ErrorCodeEnum.rulebase_Invalid:
                return(RuleResult.Invalid);

            case RuleBase_ErrorCodeEnum.rulebase_WarnNotUsualRecoveryPd:
                return(RuleResult.WarnNotUsualRecoveryPd);

            case RuleBase_ErrorCodeEnum.rulebase_WarnNotUsualRecoveryPeriod:
                return(RuleResult.WarnNotUsualRecoveryPeriod);

            case RuleBase_ErrorCodeEnum.rulebase_WarnNotUsualUnlTransProp:
                return(RuleResult.WarnNotUsualUnlTransProp);

            case RuleBase_ErrorCodeEnum.rulebase_WarnNotOver20Years:
                return(RuleResult.WarnNotOver20Years);

            case RuleBase_ErrorCodeEnum.rulebase_WarnAANotOver20Years:
                return(RuleResult.WarnAANotOver20Years);

            case RuleBase_ErrorCodeEnum.rulebase_WarnOnlyNYLZAllowForRMF100EST0500:
                return(RuleResult.WarnOnlyNYLZAllowForRMF100EST0500);

            case RuleBase_ErrorCodeEnum.rulebase_RuleBaseFailure:
                return(RuleResult.RuleBaseFailure);
            }
            // section 179 does not apply.
            return(RuleResult.Invalid);
        }
예제 #2
0
        public RuleResult IsValid(PropertyTypeEnum propType, DateTime pisDate, DeprMethodTypeEnum deprMethod, int deprPct, YrsMosDate estLife, ItcType itcType)
        {
            ErrorCode   errorCode;
            IbpRuleBase rb = new bpRuleBase();

            rb.ValidateITC((short)propType, pisDate, (short)deprMethod,
                           (short)(estLife.Years * 100 + estLife.Months), (short)itcType, out errorCode);

            return((RuleResult)errorCode);
        }
예제 #3
0
        public double GetDefaultITCPct(PropertyTypeEnum propType, DateTime pisDate, DeprMethodTypeEnum deprMethod, int deprPct, YrsMosDate estLife, ItcType itcType)
        {
            ErrorCode   errorCode;
            double      percentage = 0.0;
            IbpRuleBase rb         = new bpRuleBase();

            rb.GetDefaultITCPercent((short)propType, (pisDate), (short)deprMethod, (short)(estLife.Years * 100 + estLife.Months), (short)itcType, ref percentage, out errorCode);

            if (errorCode == (short)RuleResult.Valid)
            {
                return(percentage);
            }
            return(0.0);
        }
예제 #4
0
        public YrsMosDate GetDefaultADSLife(PropertyTypeEnum propType, DateTime pisDate, DeprMethodTypeEnum deprMethod, int deprPct, YrsMosDate estLife)
        {
            // set to 0 years, 0 months by default.
            YrsMosDate classLife = new YrsMosDate(0, 0);

            // if automobile, always use 5 years.
            if (propType == PropertyTypeEnum.Automobile || propType == PropertyTypeEnum.LtTrucksAndVans)
            {
                classLife = new YrsMosDate(5, 0);
            }
            else
            if ((propType == PropertyTypeEnum.RealConservation ||
                 propType == PropertyTypeEnum.RealEnergy ||
                 propType == PropertyTypeEnum.RealFarms ||
                 propType == PropertyTypeEnum.RealGeneral ||
                 propType == PropertyTypeEnum.RealListed) &&
                (deprMethod == DeprMethodTypeEnum.MacrsFormula) &&
                (deprPct == 100) &&
                (estLife.Years == 5))
            {
                classLife = new YrsMosDate(9, 0);
            }
            else
            if ((propType == PropertyTypeEnum.RealConservation ||
                 propType == PropertyTypeEnum.RealEnergy ||
                 propType == PropertyTypeEnum.RealFarms ||
                 propType == PropertyTypeEnum.RealGeneral ||
                 propType == PropertyTypeEnum.RealListed) &&
                (deprMethod == DeprMethodTypeEnum.AdsSlMacrs) &&
                (estLife.Years == 9))
            {
                classLife = new YrsMosDate(9, 0);
            }
            else
            if (propType == PropertyTypeEnum.VintageAccount ||
                propType == PropertyTypeEnum.Amortizable)
            {
                classLife = new YrsMosDate(0, 0);
            }
            else
            if ((propType == PropertyTypeEnum.RealGeneral ||
                 propType == PropertyTypeEnum.PersonalGeneral) &&
                deprMethod == DeprMethodTypeEnum.MacrsFormula &&
                deprPct == 100 &&
                estLife.Years == 25)
            {
                classLife = new YrsMosDate(50, 0);
            }
            else
            if (propType == PropertyTypeEnum.RealGeneral ||
                propType == PropertyTypeEnum.RealListed ||
                propType == PropertyTypeEnum.RealConservation ||
                propType == PropertyTypeEnum.RealEnergy ||
                propType == PropertyTypeEnum.RealFarms ||
                propType == PropertyTypeEnum.RealLowIncomeHousing)
            {
                if ((deprMethod == DeprMethodTypeEnum.MACRSIndianReservation) && ((deprPct == 150) || (deprPct == 200)))
                {
                    classLife = new YrsMosDate(10, 0);
                }
                else if ((deprMethod == DeprMethodTypeEnum.MacrsFormula && deprPct == 100 && estLife.Years == 15) ||
                         (deprMethod == DeprMethodTypeEnum.MacrsFormula30 && deprPct == 100 && estLife.Years == 15) ||
                         (deprMethod == DeprMethodTypeEnum.MACRSIndianReservation && deprPct == 100 && estLife.Years == 9) ||
                         (deprMethod == DeprMethodTypeEnum.MACRSIndianReservation30 && deprPct == 100 && estLife.Years == 9) ||
                         (deprMethod == DeprMethodTypeEnum.AdsSlMacrs && deprPct == 0 && estLife.Years == 39) ||
                         (deprMethod == DeprMethodTypeEnum.AdsSlMacrs30 && deprPct == 0 && estLife.Years == 39))
                {
                    classLife = new YrsMosDate(39, 0);
                }
                else
                {
                    classLife = new YrsMosDate(40, 0);
                }
            }
            else
            if (propType == PropertyTypeEnum.PersonalGeneral)
            {
                if (deprMethod == DeprMethodTypeEnum.StraightLine)
                {
                    classLife = new YrsMosDate(0, 0);
                }
                else
                if (deprMethod == DeprMethodTypeEnum.AcrsTable)
                {
                    classLife = new YrsMosDate(11, 0);
                }
                else
                {
                    classLife = new YrsMosDate(10, 0);
                }
            }
            else
            if (propType == PropertyTypeEnum.PersonalListed)
            {
                if (deprMethod == DeprMethodTypeEnum.AcrsTable)
                {
                    classLife = new YrsMosDate(11, 0);
                }
                else
                {
                    classLife = new YrsMosDate(10, 0);
                }
            }

            return(classLife);
        }