Пример #1
0
        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);
        }
Пример #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 DeprMethodTypeEnum GetDefaultDeprMethod(PropertyTypeEnum propType, DateTime pisDate)
        {
            ErrorCode   errorCode;
            short       DeprMethod = -1;
            IbpRuleBase rb         = new bpRuleBase();

            rb.GetDefaultDeprMethod((short)propType, pisDate, out DeprMethod, out errorCode);

            return((DeprMethodTypeEnum)DeprMethod);
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }
Пример #6
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);
        }
Пример #7
0
        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);
        }
Пример #8
0
        public RuleResult IsValid(PropertyTypeEnum propType, DateTime pisDate, DateTime startOfBusinessDate)
        {
            ErrorCode   errorCode;
            bool        isShortYr = false;
            IbpRuleBase rb        = new bpRuleBase();

            rb.ValidatePlaceInService((short)(propType), pisDate, startOfBusinessDate, out errorCode);

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

            case RuleBase_ErrorCodeEnum.rulebase_RuleBaseFailure:
                return(RuleResult.RuleBaseFailure);

            case RuleBase_ErrorCodeEnum.rulebase_InvalDateValue:
                return(RuleResult.InvalDateValue);

            case RuleBase_ErrorCodeEnum.rulebase_LowIncHousingInvalBefore1981:
                return(RuleResult.LowIncHousingInvalBefore1981);

            case RuleBase_ErrorCodeEnum.rulebase_ListedPropInvalBeforeJune191984:
                return(RuleResult.ListedPropInvalBeforeJune191984);

            case RuleBase_ErrorCodeEnum.rulebase_LowIncHousingInvalAfter1986:
                return(RuleResult.LowIncHousingInvalAfter1986);

            case RuleBase_ErrorCodeEnum.rulebase_AutoPropInvalBeforeJune191984:
                return(RuleResult.AutoPropInvalBeforeJune191984);

            case RuleBase_ErrorCodeEnum.rulebase_DateInvalBeforeStartBusiness:
                return(RuleResult.DateInvalBeforeStartBusiness);

            case RuleBase_ErrorCodeEnum.rulebase_DateInvalBefore1920:
                return(RuleResult.DateInvalBefore1920);

            case RuleBase_ErrorCodeEnum.rulebase_DateInvalAfter2999:
                return(RuleResult.DateInvalAfter2999);

            case RuleBase_ErrorCodeEnum.rulebase_LtTrucksAndVansPropInvalBefore2003:
                return(RuleResult.LtTrucksAndVansPropInvalBefore2003);
            }
            return(RuleResult.RuleBaseFailure);
        }
Пример #9
0
        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);
        }
Пример #10
0
        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);
        }
Пример #11
0
        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);
        }
Пример #12
0
        public List <PropertyTypeCode> BuildValidList()
        {
            List <PropertyTypeCode> propTypeCodeList = new List <PropertyTypeCode>();
            IbpRuleBase             rb = new bpRuleBase();
            List <int> ei = new List <int>();

            rb.BuildPropTypeList(out ei);

            if (ei == null || ei.Count == 0)
            {
                return(null);
            }

            for (int posi = 0; posi < ei.Count; posi++)
            {
                PropertyType aType = new PropertyType((PropertyTypeEnum)ei[posi]);
                propTypeCodeList.Add(new PropertyTypeCode(aType));
            }

            return(propTypeCodeList);
        }
Пример #13
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);
        }
Пример #14
0
        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);
        }
Пример #15
0
        //public List<DeprMethodCode> BuildValidList(string propTypeName, DateTime pisDate)
        //{
        //    PropertyTypeEnum propType = PropertyTypeCode.translateShortNameToType(propTypeName);

        //    return BuildValidList(propType, pisDate);
        //}

        public List <DeprMethodCode> BuildValidList(PropertyTypeEnum propType, DateTime pisDate)
        {
            List <DeprMethodCode> deprMethodCodeList = new List <DeprMethodCode>();
            IbpRuleBase           rb = new bpRuleBase();
            List <int>            ei = new List <int>();
            bool isShortYr           = false;

            rb.BuildDeprMethodList((short)(propType), (pisDate), isShortYr, out ei);

            if (ei == null || ei.Count == 0)
            {
                return(null);
            }

            DeprPctRule deprPctRule = new DeprPctRule();

            for (int posi = 0; posi < ei.Count; posi++)
            {
                DeprMethod aType = new DeprMethod((DeprMethodTypeEnum)ei[posi]);

                List <DeprPct> pctList = deprPctRule.BuildValidList(propType, pisDate, aType.Type);
                if (pctList != null && pctList.Count > 0)
                {
                    foreach (DeprPct deprPct in pctList)
                    {
                        deprMethodCodeList.Add(new DeprMethodCode(aType)
                        {
                            Percentage = deprPct.Percentage
                        });
                    }
                }
                else
                {
                    deprMethodCodeList.Add(new DeprMethodCode(aType));
                }
            }

            return(deprMethodCodeList);
        }