Example #1
0
        public static bool IsAPFDueAndNotPaid(string distributorID, string locale)
        {
            var isDue = false;

            var cop = GetProcessCountry(distributorID);
            DistributorProfileLoader loader = new DistributorProfileLoader();
            var profile = loader.Load(new GetDistributorProfileById()
            {
                Id = distributorID
            });

            if (cop == null)
            {
                cop = profile.ProcessingCountryCode;
            }

            if ((cop.Equals("CN")))
            {
                return(IsAPFDueAndNotPaid(distributorID));
            }

            if (IsGlobalExemptCountryOfProcessing(cop))
            {
                return(isDue);
            }

            string level = GetDSLevel(distributorID);

            if (string.IsNullOrEmpty(level))
            {
                level = profile.TypeCode;
            }

            if (HLConfigManager.Configurations.APFConfiguration.APFRequired)
            {
                DateTime annualProcessingFeeDue = GetAPFDueDate(distributorID, locale.Substring(3));
                if (
                    !HLConfigManager.Configurations.APFConfiguration.ApfExemptCountriesOfProcessing.Contains(
                        cop) && CanPurchaseApf(cop, locale.Substring(3), HLConfigManager.Configurations.APFConfiguration.ApfRestrictedByPurchaseLocation))
                {
                    // APF due
                    var hmsAPFDue = new DateTime(annualProcessingFeeDue.Year,
                                                 annualProcessingFeeDue.Month,
                                                 annualProcessingFeeDue.Day);
                    var currentDate = DateUtils.ConvertToLocalDateTime(DateTime.Now, locale.Substring(3));
                    if (hmsAPFDue < currentDate)
                    //if (ods.Value.AnnualProcessingFeeDue < DateTime.Now)
                    {
                        isDue = true;
                        if (IsExemptDueToHAPStatus(level, GetHapStatus(distributorID)))
                        {
                            isDue = false;
                        }
                    }
                    if (isDue)
                    {
                        isDue = !GetAPFDuePaid(distributorID, annualProcessingFeeDue);
                    }
                }
            }

            return(isDue);
        }