Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
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);
        }
Exemplo n.º 3
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);
        }
Exemplo n.º 4
0
 protected static string translateTypeToLongName(DeprMethodTypeEnum type)
 {
     foreach (DMTHCODE code in codes)
     {
         if (code.type == type)
         {
             return(code.name);
         }
     }
     return(null);
 }
Exemplo n.º 5
0
 static RuleResult IsApplicable(DeprMethodTypeEnum deprMethod)
 {
     switch (deprMethod)
     {
     case DeprMethodTypeEnum.DeclBalSwitch:
     case DeprMethodTypeEnum.DeclBalHalfYearSwitch:
     case DeprMethodTypeEnum.DeclBalModHalfYearSwitch:
         return(RuleResult.Valid);
     }
     return(RuleResult.Invalid);
 }
Exemplo n.º 6
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);
        }
Exemplo n.º 7
0
        public static string translateTypeToShortName(DeprMethodTypeEnum newType)
        {
            foreach (DMTHCODE code in codes)
            {
                if (code.type == newType)
                {
                    return(code.code);
                }
            }

            return(null);
        }
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 9
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);
        }
Exemplo n.º 10
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);
        }
Exemplo n.º 11
0
        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);
        }
Exemplo n.º 12
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);
        }
Exemplo n.º 13
0
        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);
        }
Exemplo n.º 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);
        }
Exemplo n.º 15
0
 public virtual void defaults()
 {
     _type = DeprMethodTypeEnum.StraightLine;
 }
Exemplo n.º 16
0
 public DeprMethod(DeprMethodTypeEnum newType)
 {
     _pct = 0;
     Type = newType;
 }
Exemplo n.º 17
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);
        }
Exemplo n.º 18
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);
        }
Exemplo n.º 19
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);
        }
Exemplo n.º 20
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);
        }
Exemplo n.º 21
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);
        }
Exemplo n.º 22
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);
        }