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); }
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); }
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); }
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); }