Example #1
0
        public MLFSSale(DataRow row, List <MLFSAdvisor> advisors, MLFSReportingPeriod period, bool isCommission = false)
        {
            Adjustments          = new HashSet <MLFSDebtorAdjustment>();
            ReportingPeriod      = period;
            ReportingPeriodId    = period.Id;
            EstimatedOtherIncome = 0;
            MLFSAdvisor adv = MLFSAdvisor.Assign(row["Selling Adviser.Id"].ToString(), advisors);

            AdvisorId = adv.Id;
            Advisor   = adv;
            IsNew     = false;

            if (isCommission)
            {
                PlanReference   = "IOB" + row["Id"].ToString();
                IOReference     = "";
                ClientName      = row["Owner 1.Full Name"].ToString();
                ClientId        = row["Owner 1.Id"].ToString();
                JointClientName = row["Owner 2.Full Name"].ToString();
                JointClientId   = row["Owner 2.Id"].ToString();
                PlanType        = row["Plan Type"].ToString();
                ProviderName    = row["Provider.Name"].ToString();
                RelevantDate    = DateTime.Parse(row["Submitted Date"].ToString());
                if (string.IsNullOrEmpty(row["Expected Commission - Non-Indemnity"].ToString()))
                {
                    NetAmount = Tools.HandleNull(row["Expected Commission - Total Initial"].ToString());
                }
                else
                {
                    NetAmount = Tools.HandleNull(row["Expected Commission - Non-Indemnity"].ToString());
                }
                VAT = 0;
                DateTime creationDate = DateTime.Parse(row["Owner 1.Creation Date"].ToString());
                if (creationDate > ReportingPeriod.StartDate.AddMonths(-6))
                {
                    IsNew = true;
                }
                Investment        = Tools.HandleNull(row["Total Premiums to Date"].ToString());
                OnGoingPercentage = Tools.HandleNull(row["On-going Fee Percentage"].ToString());
                Organisation      = row["Selling Adviser.Group.Name"].ToString();
            }
            else
            {
                IOId              = row["Id"].ToString();
                IOReference       = row["Reference Number"].ToString();
                ClientName        = row["Fee Owner.Full Name"].ToString();
                ClientId          = row["Fee Owner.Id"].ToString();
                JointClientName   = row["Fee Owner 2.Full Name"].ToString();
                JointClientId     = row["Fee Owner 2.Id"].ToString();
                PlanType          = row["Related Plan Type"].ToString();
                RelevantDate      = DateTime.Parse(row["Invoice Date"].ToString());
                NetAmount         = Tools.HandleNull(row["Net Amount"].ToString());
                VAT               = Tools.HandleNull(row["VAT"].ToString());
                PlanReference     = row["Related Plan Reference"].ToString();
                Investment        = 0;
                OnGoingPercentage = 0;
            }
            RelatedClients = new string[] {};
        }
        public MLFSIncome(DataRow row, List <MLFSAdvisor> advisors, List <string> VATIssueFees = null)
        {
            IOReference  = row["IORef"].ToString();
            RelevantDate = Tools.HandleStringToDate(row["CashReceiptDate"].ToString());
            Organisation = row["GroupOne"].ToString();
            MLFSAdvisor adv = MLFSAdvisor.Assign(row["CRMContactId"].ToString(), advisors);

            AdvisorId       = adv.Id;
            Advisor         = adv;
            ProviderName    = row["Provider"].ToString();
            ClientName      = row["ClientName"].ToString();
            ClientId        = row["ClientId"].ToString();
            JointClientName = row["JointClientName"].ToString();
            JointClientId   = row["JointClientId"].ToString();
            Campaign        = row["CampaignType"].ToString();
            CampaignSource  = row["CampaignSource"].ToString();
            Amount          = Tools.HandleNull(row["FCIRecognition"].ToString());
            if (Tools.HandleNull(row["ReceivedVAT/GST"].ToString()) != 0)
            {
                if (VATIssueFees != null)
                {
                    if (VATIssueFees.Contains(IOReference))
                    {
                        Amount += Tools.HandleNull(row["ReceivedVAT"].ToString());
                    }
                    else
                    {
                        VAT = Tools.HandleNull(row["ReceivedVAT"].ToString());
                    }
                }
            }
            else
            {
                VAT = 0;
            }
            FeeStatus  = row["FeeStatus"].ToString();
            PlanType   = row["PlanType"].ToString();
            PlanNumber = row["PlanNumber"].ToString();
            if (row["IsTopUp"].ToString() == "" || row["IsTopUp"].ToString().ToLower() == "no")
            {
                IsTopUp = false;
            }
            else
            {
                IsTopUp = true;
            }
            IncomeType           = row["IncomeType"].ToString();
            IgnoreFromCommission = false;
        }
        /// <summary>
        /// Converts the external id from IO into a local Advisor object
        /// </summary>
        /// <param name="externalId">The ID from IO</param>
        /// <param name="advisors">The list of local advisors to check against</param>
        /// <returns>an Advisor or if no match is found the unknown advisor will also adapt to replacements if required</returns>
        public static MLFSAdvisor Assign(string externalId, List <MLFSAdvisor> advisors)
        {
            MLFSAdvisor adv = advisors.Where(x => x.PrimaryID.Trim(' ') == externalId.Trim(' ')).FirstOrDefault();

            if (adv == null)
            {
                adv = advisors.Where(x => x.Username.ToLower() == "unknown").FirstOrDefault();
            }
            if (!adv.Active)
            {
                adv = advisors.Where(x => x.Id == adv.ReplacementAdvisorId).FirstOrDefault();
                if (adv == null)
                {
                    adv = advisors.Where(x => x.Username.ToLower() == "unknown").FirstOrDefault();
                }
            }
            return(adv);
        }