Пример #1
0
        private void setReminder(int leadID, CRM.Data.Entities.LeadPolicy policy, int masterStatusID)
        {
            int      lastStatusID = 0;
            double   duration     = 0;
            LeadTask task         = null;
            DateTime reminderDate = DateTime.MaxValue;
            string   sdate        = null;

            // return if no change in status
            int.TryParse(hf_lastStatusID.Value, out lastStatusID);

            if (lastStatusID == masterStatusID)
            {
                return;
            }

            // get status with reminder duration
            StatusMaster statusMaster = StatusManager.GetStatusId(masterStatusID);

            // return if master status not loaded properly
            if (statusMaster == null)
            {
                return;
            }



            // get task associated with policy
            task = TasksManager.GetPolicyReminderTask(leadID, policy.Id);

            // master status has no reminder
            if (statusMaster.ReminderMaster == null)
            {
                // delete existing reminder
                if (task != null)
                {
                    TasksManager.Delete(task.id);
                }
            }
            else
            {
                if (task == null)
                {
                    // create new reminder as task
                    task                = new LeadTask();
                    task.lead_id        = leadID;
                    task.lead_policy_id = policy.Id;
                    task.policy_type    = policy.PolicyType;
                }

                if (SessionHelper.getClientId() > 0)
                {
                    task.creator_id = SessionHelper.getClientId();
                }

                // update existing reminder
                task.master_status_id = masterStatusID;

                sdate = DateTime.Now.ToShortDateString() + " 5:00:00 AM";

                DateTime.TryParse(sdate, out reminderDate);

                // get duration from status reminder
                if (statusMaster.ReminderMaster != null)
                {
                    duration = (double)(statusMaster.ReminderMaster.Duration ?? 0);
                }

                if ((int)statusMaster.ReminderMaster.DurationType == 1)
                {
                    task.start_date = reminderDate.AddHours(duration);
                }
                else
                {
                    task.start_date = reminderDate.AddDays(duration);
                }

                task.end_date  = task.start_date;
                task.status_id = 1;
                task.text      = "Alert";
                task.isAllDay  = true;
                task.details   = statusMaster.StatusName;              // +"<div>Ins. Co: " + policy.InsuranceCompanyName + "</div><div>Pol: " + policy.PolicyNumber + "</div>";
                task.owner_id  = SessionHelper.getUserId();

                TasksManager.Save(task);
            }

            // refresh tasks on parent page
            if (statusChanged != null)
            {
                statusChanged(this, null);
            }
        }