public static RuleResult IsApplicable(DeprMethodTypeEnum deprMethod) { switch (deprMethod) { case DeprMethodTypeEnum.MacrsFormula: case DeprMethodTypeEnum.MacrsTable: case DeprMethodTypeEnum.MACRSIndianReservation: case DeprMethodTypeEnum.DeclBal: case DeprMethodTypeEnum.DeclBalHalfYear: case DeprMethodTypeEnum.DeclBalModHalfYear: case DeprMethodTypeEnum.DeclBalSwitch: case DeprMethodTypeEnum.DeclBalHalfYearSwitch: case DeprMethodTypeEnum.DeclBalModHalfYearSwitch: case DeprMethodTypeEnum.MacrsFormula30: case DeprMethodTypeEnum.MACRSIndianReservation30: // Canadian BEGIN !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! case DeprMethodTypeEnum.CdnDeclBal: case DeprMethodTypeEnum.CdnDeclBalHalfYear: case DeprMethodTypeEnum.CdnDeclBalFullMonth: // Canadian END ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ return(RuleResult.Valid); } return(RuleResult.Invalid); }
public bool IsValid(DeprMethodTypeEnum deprMethod, int percentage) { IbpRuleBase rb = new bpRuleBase(); ErrorCode errorCode; rb.ValidateBusinessUse((short)(deprMethod), (int)percentage, out errorCode); return(errorCode == (short)RuleBase_ErrorCodeEnum.rulebase_Valid); }
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); }
protected static string translateTypeToLongName(DeprMethodTypeEnum type) { foreach (DMTHCODE code in codes) { if (code.type == type) { return(code.name); } } return(null); }
static RuleResult IsApplicable(DeprMethodTypeEnum deprMethod) { switch (deprMethod) { case DeprMethodTypeEnum.DeclBalSwitch: case DeprMethodTypeEnum.DeclBalHalfYearSwitch: case DeprMethodTypeEnum.DeclBalModHalfYearSwitch: return(RuleResult.Valid); } return(RuleResult.Invalid); }
public RuleResult IsValid(PropertyTypeEnum propType, DateTime pisDate, DeprMethodTypeEnum deprMethod) { ErrorCode errorCode; bool isShortYr = false; IbpRuleBase rb = new bpRuleBase(); rb.ValidateDeprMethod((short)propType, pisDate, (short)deprMethod, isShortYr, out errorCode); switch ((RuleBase_ErrorCodeEnum)errorCode) { case RuleBase_ErrorCodeEnum.rulebase_ValidateCustomMethodExists: return(RuleResult.Valid); case RuleBase_ErrorCodeEnum.rulebase_Invalid: return(RuleResult.Invalid); case RuleBase_ErrorCodeEnum.rulebase_WarnAfter1986: return(RuleResult.WarnAfter1986); case RuleBase_ErrorCodeEnum.rulebase_WarnNotUnderMACRS: return(RuleResult.WarnNotUnderMACRS); case RuleBase_ErrorCodeEnum.rulebase_WarnNotNormallyUsed: return(RuleResult.WarnNotNormallyUsed); case RuleBase_ErrorCodeEnum.rulebase_InvalModAcrsBeforeAug11986: return(RuleResult.InvalModAcrsBeforeAug11986); case RuleBase_ErrorCodeEnum.rulebase_RuleBaseFailure: return(RuleResult.RuleBaseFailure); case RuleBase_ErrorCodeEnum.rulebase_MethSameAsTax: return(RuleResult.MethSameAsTax); case RuleBase_ErrorCodeEnum.rulebase_MethSameAsTaxMI: return(RuleResult.MethSameAsTaxMI); case RuleBase_ErrorCodeEnum.rulebase_Warn30LeaseholdImprove: return(RuleResult.Warn30LeaseholdImprove); case RuleBase_ErrorCodeEnum.rulebase_WarnOnlyNYLZAllowForNonReal: return(RuleResult.WarnOnlyNYLZAllowForNonReal); case RuleBase_ErrorCodeEnum.rulebase_WarnOnlyNYLZAllowForReal: return(RuleResult.WarnOnlyNYLZAllowForReal); case RuleBase_ErrorCodeEnum.rulebase_WarnOnlyNYLZAllowAfter2006: return(RuleResult.WarnOnlyNYLZAllowAfter2006); case RuleBase_ErrorCodeEnum.rulebase_Valid: return(RuleResult.Valid); } return(RuleResult.RuleBaseFailure); }
public static string translateTypeToShortName(DeprMethodTypeEnum newType) { foreach (DMTHCODE code in codes) { if (code.type == newType) { return(code.code); } } return(null); }
public int GetDefaultDeprPct(PropertyTypeEnum propType, DateTime pisDate, DeprMethodTypeEnum deprMethod) { int percentage = 0; switch (deprMethod) { case DeprMethodTypeEnum.MacrsFormula: case DeprMethodTypeEnum.MacrsTable: case DeprMethodTypeEnum.MACRSIndianReservation: switch (propType) { case PropertyTypeEnum.RealGeneral: case PropertyTypeEnum.RealListed: case PropertyTypeEnum.RealConservation: case PropertyTypeEnum.RealEnergy: case PropertyTypeEnum.RealFarms: case PropertyTypeEnum.RealLowIncomeHousing: percentage = 100; return(percentage); default: percentage = 200; return(percentage); } case DeprMethodTypeEnum.DeclBal: case DeprMethodTypeEnum.DeclBalHalfYear: case DeprMethodTypeEnum.DeclBalModHalfYear: case DeprMethodTypeEnum.DeclBalSwitch: case DeprMethodTypeEnum.DeclBalHalfYearSwitch: case DeprMethodTypeEnum.DeclBalModHalfYearSwitch: percentage = 200; return(percentage); case DeprMethodTypeEnum.MacrsFormula30: case DeprMethodTypeEnum.MACRSIndianReservation30: percentage = 200; return(percentage); // Canadian BEGIN !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! case DeprMethodTypeEnum.CdnDeclBal: case DeprMethodTypeEnum.CdnDeclBalHalfYear: case DeprMethodTypeEnum.CdnDeclBalFullMonth: percentage = 30; return(percentage); // Canadian END ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ } return(percentage); }
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 static bool isValidPredefinedShortName(string name) { if (name == null || name.Length == 0) { return(false); } DeprMethodTypeEnum c = translateShortNameToType(name); if (c == DeprMethodTypeEnum.UnknownDeprMethod || c == DeprMethodTypeEnum.CustomMethod) { return(false); } return(true); }
public DeprSwitchType GetDefaultDeprSwitch(DeprMethodTypeEnum deprMethod) { DeprSwitchType type = DeprSwitchType.DontSwitch; switch (deprMethod) { case DeprMethodTypeEnum.DeclBalSwitch: case DeprMethodTypeEnum.DeclBalHalfYearSwitch: case DeprMethodTypeEnum.DeclBalModHalfYearSwitch: type = DeprSwitchType.SwitchWhenOptimal; break; default: type = DeprSwitchType.DontSwitch; break; } return(type); }
public RuleResult IsApplicable(PropertyTypeEnum propType, DeprMethodTypeEnum deprMethod) { IbpRuleBase rb = new bpRuleBase(); ErrorCode errorCode; rb.AllowMidQuarter((short)(propType), (short)(deprMethod), true, 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_RuleBaseFailure: return(RuleResult.RuleBaseFailure); } return(RuleResult.RuleBaseFailure); }
public static bool getNextMethod(out DeprMethodTypeEnum type_, ref int key_) { if (key_ < 0) { // a new enumeration key_ = 0; } // make sure there are still books left to enumerate if (key_ >= countOfMethods()) { type_ = DeprMethodTypeEnum.UnknownDeprMethod; return(false); } type_ = (DeprMethodTypeEnum)Enum.GetValues(typeof(DeprMethodTypeEnum)).GetValue(key_); key_++; return(true); }
public List <ITCCode> BuildValidList(PropertyTypeEnum propType, DateTime pisDate, DeprMethodTypeEnum depMethod, int deprPct) { List <ITCCode> itcList = new List <ITCCode>(); IbpRuleBase rb = new bpRuleBase(); List <int> ei = new List <int>(); rb.BuildITCList(pisDate, Convert.ToInt16(depMethod), out ei); if (ei == null || ei.Count == 0) { return(null); } for (int posi = 0; posi < ei.Count; posi++) { ITCCode aCode = new ITCCode(); aCode.Type = (ItcType)(ei[posi]); itcList.Add(new ITCCode(aCode)); } return(itcList); }
public virtual void defaults() { _type = DeprMethodTypeEnum.StraightLine; }
public DeprMethod(DeprMethodTypeEnum newType) { _pct = 0; Type = newType; }
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); }
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 List <YrsMosDate> BuildValidList(PropertyTypeEnum propType, DateTime pisDate, DeprMethodTypeEnum method, int pct) { List <YrsMosDate> estLifeList = new List <YrsMosDate>(); IbpRuleBase rb = new bpRuleBase(); List <int> ei = new List <int>(); rb.BuildEstimatedLifeList((short)propType, pisDate, (short)method, (int)pct, out ei); if (ei == null || ei.Count == 0) { return(null); } for (int posi = 0; posi < ei.Count; posi++) { estLifeList.Add(new YrsMosDate((uint)ei[posi] / 100, (uint)ei[posi] % 100)); } return(estLifeList); }
public List <DeprPct> BuildValidList(PropertyTypeEnum propType, DateTime pisDate, DeprMethodTypeEnum deprMethod) { List <DeprPct> deprPctList = new List <DeprPct>(); IbpRuleBase rb = new bpRuleBase(); List <int> ei = new List <int>(); rb.BuildDeprPercentList((short)(propType), (pisDate), (short)deprMethod, out ei); if (ei == null || ei.Count == 0) { return(null); } for (int posi = 0; posi < ei.Count; posi++) { deprPctList.Add(new DeprPct(ei[posi])); } return(deprPctList); }
public YrsMosDate GetDefaultEstLife(PropertyTypeEnum propType, DateTime pisDate, DeprMethodTypeEnum deprMethod, int deprPct) { ErrorCode errorCode; short estLife = -1; IbpRuleBase rb = new bpRuleBase(); rb.GetDefaultEstimatedLife((short)propType, pisDate, (short)deprMethod, (int)deprPct, ref estLife, out errorCode); if (errorCode == (short)RuleBase_ErrorCodeEnum.rulebase_Valid) { return(new YrsMosDate((uint)(estLife / 100), (uint)(estLife % 100))); } return(null); }
public RuleResult IsValid(BookTypeEnum book, PropertyTypeEnum propType, DateTime pisDate, DeprMethodTypeEnum deprMethod, int percentage) { ErrorCode errorCode; bool isShortYr = false; IbpRuleBase rb = new bpRuleBase(); switch (deprMethod) { case DeprMethodTypeEnum.MacrsFormula: case DeprMethodTypeEnum.MacrsTable: case DeprMethodTypeEnum.MACRSIndianReservation: case DeprMethodTypeEnum.DeclBal: case DeprMethodTypeEnum.DeclBalHalfYear: case DeprMethodTypeEnum.DeclBalModHalfYear: case DeprMethodTypeEnum.DeclBalSwitch: case DeprMethodTypeEnum.DeclBalHalfYearSwitch: case DeprMethodTypeEnum.DeclBalModHalfYearSwitch: case DeprMethodTypeEnum.MacrsFormula30: case DeprMethodTypeEnum.MACRSIndianReservation30: // Build list of percentages. List <DeprPct> aList = BuildValidList(propType, pisDate, deprMethod); if (aList != null) { // iterate across all percentages, looking for the one // that matches the one we have. If found, then valid. // if no matches, then invalid. foreach (DeprPct item in aList) { if (item.Percentage == percentage) { return(RuleResult.Valid); } } } break; // Canadian BEGIN !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // The percentage must be in the range [1, 100]. case DeprMethodTypeEnum.CdnDeclBal: case DeprMethodTypeEnum.CdnDeclBalHalfYear: case DeprMethodTypeEnum.CdnDeclBalFullMonth: if ((1 <= percentage) && (percentage <= 100)) { return(RuleResult.Valid); } break; // Canadian END ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ } return(RuleResult.Invalid); }