public ActionResult CommissionRequestDelete(CommissionRequestModel model)
        {
            //this.ServiceResponse = commissionRequestService.GetCommissionRequestModel(this.CurrentUser, new CommissionRequestModel { CommissionRequestId = model.CommissionRequestId }, null);

            //CommissionRequestModel model = new CommissionRequestModel();

            //if (this.ServiceResponse.IsOK)
            //{
            //    model = this.ServiceResponse.Model as CommissionRequestModel;
            //}

            this.ServiceResponse = commissionRequestService.Delete(this.CurrentUser, model);

            this.ShowKeyMessagesOnPage = true;

            if (ProcessServiceResponse(this.ServiceResponse))
            {
                //force email to be sent to user
                CommissionRequestModel CommissionRequestForEmail = this.ServiceResponse.Model as CommissionRequestModel;
                CommissionRequestForEmail.ShouldSendEmail = true;

                SendApprovalRejectionEmailForCommissionRequest(CommissionRequestForEmail);

                //return RedirectToAction("Quote", new QuoteModel { ProjectId = model.ProjectId, QuoteId = model.QuoteId });

                string url = "/v2/#/quote/" + model.QuoteId + "/existingRecord";
                return(Redirect(url));
            }

            return(View("CommissionRequest", this.ServiceResponse.Model));
        }
示例#2
0
        public void RulesOnValidateModel(UserSessionModel admin, CommissionRequestModel model)
        {
            this.Response.Messages.Clear();

            if (!model.IsValidEmails)
            {
                this.Response.Messages.AddError(Resources.ResourceModelProject.MP117);

                string errorMessage = "The following emails are not associated with DaikinCity account: ";
                for (int i = 0; i < model.InvalidEmails.Count; i++)
                {
                    if (i == model.InvalidEmails.Count)
                    {
                        errorMessage += model.InvalidEmails[i];
                    }
                    else
                    {
                        errorMessage += model.InvalidEmails[i] + ",";
                    }
                }

                this.Response.Messages.AddError(errorMessage);

                errorMessage = "";
            }

            return;
        }
        public ActionResult GetCommissionRequestPercentage(decimal?vrvCommissionMultiplier, decimal?splitCommissionMultiplier, long?projectId, long?quoteId)
        {
            List <decimal> commissionPercentages = commissionRequestService.GetCommissionRequestPercentage(vrvCommissionMultiplier, splitCommissionMultiplier);

            if (commissionPercentages != null && commissionPercentages.Count > 0)
            {
                this.ServiceResponse = commissionRequestService.GetCommissionRequestModel(this.CurrentUser, new CommissionRequestModel {
                    ProjectId = projectId, QuoteId = quoteId
                });

                if (ProcessServiceResponse(this.ServiceResponse))
                {
                    CommissionRequestModel model = this.ServiceResponse.Model as CommissionRequestModel;

                    model.RequestedCommissionPercentageVRV   = commissionPercentages[0];
                    model.RequestedCommissionPercentageSplit = commissionPercentages[1];

                    this.RouteData.Values["action"] = "CommissionCalculation";

                    return(Json(model, JsonRequestBehavior.AllowGet));
                }
            }

            return(PartialView("CommissionCalculation"));
        }
示例#4
0
        public ServiceResponse GetUnitaryMultiplier(CommissionRequestModel model)
        {
            ServiceResponse resp;

            resp = commissionRequestService.GetUnitaryMultiplier(this.CurrentUser, model);

            return(resp);
        }
        public ActionResult CommissionRequestApproveModification(CommissionRequestModel model, decimal commissionRequestPercent)
        {
            this.ServiceResponse = commissionRequestService.Approve(this.CurrentUser, model);

            this.ShowKeyMessagesOnPage = true;

            return(View("CommissionRequest", this.ServiceResponse.Model));
        }
示例#6
0
        public ServiceResponse PostCommissionCalculation(CommissionRequestModel model)
        {
            ServiceResponse response = new ServiceResponse();

            response = commissionRequestService.CalculateCommission(this.CurrentUser, model);
            if (response.IsOK == true)
            {
                response.AddSuccess("Calculation saved successfully!");
            }
            return(response);
        }
        public ActionResult CommissionRequestReject(CommissionRequestModel model)
        {
            this.ServiceResponse = commissionRequestService.Reject(this.CurrentUser, model);

            this.ShowKeyMessagesOnPage = true;

            if (ProcessServiceResponse(this.ServiceResponse))
            {
                //email is sent to user if checkbox in DAR form is selected
                SendApprovalRejectionEmailForCommissionRequest(this.ServiceResponse.Model as CommissionRequestModel);

                return(RedirectToAction("CommissionRequests", "UserDashboard"));
            }

            return(View("CommissionRequest", this.ServiceResponse.Model));
        }
        public ActionResult CommissionCalculation(CommissionRequestModel model, FormCollection form, byte?commissionRequestStatusTypeId)
        {
            this.ServiceResponse = commissionRequestService.CalculateCommission(this.CurrentUser, model);

            if (ProcessServiceResponse(this.ServiceResponse))
            {
                return(RedirectToAction("QuoteItems", new QuoteModel {
                    ProjectId = model.ProjectId, QuoteId = model.QuoteId
                }));
            }

            // TODO:  This may need to change to show the pop-up with the right errors
            return(RedirectToAction("QuoteItems", new QuoteModel {
                ProjectId = model.ProjectId, QuoteId = model.QuoteId
            }));
        }
        public ActionResult AddOrEdit(CommissionRequestModel comReq)
        {
            if (comReq.CommID == 0)
            {
                HttpResponseMessage response = GlobalVariables.WebApiClient.PostAsJsonAsync("CommissionRequests", comReq).Result;    //calling PostCommisiionRequest to add new
                TempData["SuccessMessage"] = "Requested new Commission Successfully";
            }
            else
            {
                HttpResponseMessage response = GlobalVariables.WebApiClient.PutAsJsonAsync("CommissionRequests/" + comReq.CommID, comReq).Result;  //calling PutCommisiionRequest to update
                TempData["SuccessMessage"] = "Updated Commission Request Details Successfully";
            }


            return(RedirectToAction("Index"));
        }
        public ActionResult CommissionRequestApprove(CommissionRequestModel model)
        {
            this.ServiceResponse = commissionRequestService.Approve(this.CurrentUser, model);

            this.ShowKeyMessagesOnPage = true;

            if (ProcessServiceResponse(this.ServiceResponse))
            {
                //force email to be sent to user
                CommissionRequestModel CommissionRequestForEmail = this.ServiceResponse.Model as CommissionRequestModel;
                CommissionRequestForEmail.ShouldSendEmail = true;

                SendApprovalRejectionEmailForCommissionRequest(CommissionRequestForEmail);

                return(RedirectToAction("CommissionRequests", "UserDashboard"));
            }

            return(View("CommissionRequest", this.ServiceResponse.Model));
        }
        private void SendApprovalRejectionEmailForCommissionRequest(CommissionRequestModel model)
        {
            var emailModel = new SendEmailApprovalModel();

            emailModel.HelpLink = "mailto:[email protected]";

            emailModel.Subject = string.Format("The status of a DPO Commission request has changed");

            emailModel.Reason       = model.ResponseNotes;
            emailModel.ProjectId    = model.ProjectId;
            emailModel.ProjectName  = model.Project.Name;
            emailModel.QuoteTitle   = model.Quote.Title;
            emailModel.TotalNet     = model.Quote.TotalNet;
            emailModel.Approved     = (model.CommissionRequestStatusTypeId == (byte)CommissionRequestStatusTypeEnum.Approved);
            emailModel.ModifierName = model.CommissionRequestStatusModifiedBy;


            UserSessionModel user = new UserSessionModel();

            if (model.ProjectOwnerId != null)
            {
                user = new AccountServices().GetUserSessionModel(model.ProjectOwnerId.Value).Model as UserSessionModel;
            }
            else
            {
                user = new AccountServices().GetUserSessionModel(model.Project.OwnerId.Value).Model as UserSessionModel;
            }

            emailModel.ProjectOwnerName = user.FirstName + " " + user.LastName;
            emailModel.ProjectDate      = model.Project.ProjectDate;

            var business = new BusinessServices().GetBusinessModel(user, user.BusinessId, false).Model as BusinessModel;

            emailModel.BusinessName                  = business.BusinessName;
            emailModel.RequestedCommission           = model.RequestedCommissionTotal;
            emailModel.ApprovedCommission            = model.ApprovedCommissionTotal;
            emailModel.ApprovedTotalCommission       = model.ApprovedCommissionPercentage;
            emailModel.RequestedCommissionPercentage = model.RequestedCommissionPercentage;
            emailModel.ApprovedCommissionPercentage  = model.ApprovedCommissionPercentage;
            emailModel.RequestedMultiplier           = model.RequestedMultiplier;
            emailModel.ApprovedMultiplier            = model.ApprovedMultiplier;
            emailModel.ApprovedTotalNet              = model.TotalRevised;
            emailModel.TotalNet  = model.Quote.TotalNet;
            emailModel.TotalList = model.Quote.TotalList;

            emailModel.From = new MailAddress(Utilities.Config("dpo.sys.email.commissionrequest"), "DPO Project Desk");

            if (model.ShouldSendEmail == true)
            {
                emailModel.To.Add(new MailAddress(user.Email, user.DisplayName));
            }

            emailModel.To.Add(emailModel.From);

            if (!string.IsNullOrEmpty(business.AccountManagerEmail))
            {
                emailModel.To.Add(new MailAddress(business.AccountManagerEmail));
            }

            if (!string.IsNullOrEmpty(business.AccountOwnerEmail))
            {
                emailModel.To.Add(new MailAddress(business.AccountOwnerEmail));
            }

            List <string> emailsList = new List <string>();

            if (model.EmailsList != null && model.EmailsList.Length > 0)
            {
                emailsList = model.EmailsList.ToString().Split(',', ';').ToList();
            }

            foreach (string email in emailsList)
            {
                if (String.IsNullOrWhiteSpace(email))
                {
                    continue;
                }
                emailModel.To.Add(new MailAddress(email.Trim()));
            }

            emailModel.RenderTextVersion = true;
            emailModel.BodyTextVersion   = RenderView(this, "SendEmailCommissionRequestApproval", emailModel);

            emailModel.RenderTextVersion = false;
            emailModel.BodyHtmlVersion   = RenderView(this, "SendEmailCommissionRequestApproval", emailModel);

            new EmailServices().SendEmail(emailModel);
        }
        public ActionResult CommissionRequest(CommissionRequestModel model)
        {
            model.CompetitorQuoteFile = Request.Files["CompetitorQuoteFile"];

            model.CompetitorLineComparsionFile = Request.Files["CompetitorLineComparsionFile"];

            model.CompetitorQuoteFileName = (model.CompetitorQuoteFile == null || model.CompetitorQuoteFile.FileName == "") ? model.CompetitorQuoteFileName : model.CompetitorQuoteFile.FileName;

            model.CompetitorLineComparsionFileName = (model.CompetitorLineComparsionFile == null || model.CompetitorLineComparsionFile.FileName == "") ? model.CompetitorLineComparsionFileName : model.CompetitorLineComparsionFile.FileName;

            model.OrderDeliveryDate = (model.Project == null) ? DateTime.Now : model.Project.EstimatedDelivery;

            List <string> emailsList = new List <string>();

            if (model.EmailsList != null && model.EmailsList.Length > 0)
            {
                emailsList = model.EmailsList.ToString().Split(',', ';').ToList();
            }

            EmailServices emailService  = new EmailServices();
            List <string> InvalidEmails = this.commissionRequestService.GetInvalidEmails(emailsList);

            if (InvalidEmails.Count > 0)
            {
                foreach (string email in InvalidEmails)
                {
                    model.InvalidEmails.Add(email);
                }
                model.IsValidEmails = false;
            }

            // set the RequestedCommission equals to Approved Commission for Daikin Super User Testing Only
            if (model.RequestedCommissionTotal == 0)
            {
                model.RequestedCommissionTotal = model.ApprovedCommissionTotal;
            }

            this.ServiceResponse = commissionRequestService.PostModel(this.CurrentUser, model);

            if (ProcessServiceResponse(this.ServiceResponse))
            {
                model.Project.EstimatedDelivery = model.OrderDeliveryDate;

                model.IsValidEmails = true;

                this.ServiceResponse = projectService.PostModel(this.CurrentUser, model.Project);

                var emailModel = this.commissionRequestService.GetCommissionRequestSendEmailModel(model);

                emailModel.HelpLink = "mailto:[email protected]";

                emailModel.Subject = string.Format("A DPO Commission request has been submitted");

                emailModel.From = new MailAddress(Utilities.Config("dpo.sys.email.commissionrequest"), "DPO Commission Request");
                emailModel.To.Add(new MailAddress(Utilities.Config("dpo.sys.email.commissionrequest"), "Daikin Project Desk"));

                if (!string.IsNullOrEmpty(emailModel.AccountManagerEmail))
                {
                    emailModel.To.Add(new MailAddress(emailModel.AccountManagerEmail));
                }

                if (!string.IsNullOrEmpty(emailModel.AccountOwnerEmail) && emailModel.AccountOwnerEmail != emailModel.AccountManagerEmail)
                {
                    emailModel.To.Add(new MailAddress(emailModel.AccountOwnerEmail));
                }

                if (model.ProjectOwnerId != null)
                {
                    UserServices userService  = new UserServices();
                    UserModel    projectOwner = userService.GetUserModel(CurrentUser, model.ProjectOwnerId, true, true).Model as UserModel;
                    if (projectOwner != null)
                    {
                        emailModel.To.Add(new MailAddress(projectOwner.Email));
                    }
                }
                else if (model.Project != null && model.Project.OwnerId != null)
                {
                    UserServices userService  = new UserServices();
                    UserModel    projectOwner = userService.GetUserModel(CurrentUser, model.Project.OwnerId, true, true).Model as UserModel;
                    if (projectOwner != null)
                    {
                        emailModel.To.Add(new MailAddress(projectOwner.Email));
                    }
                }

                foreach (string email in emailsList)
                {
                    if (String.IsNullOrWhiteSpace(email))
                    {
                        continue;
                    }

                    emailModel.To.Add(new MailAddress(email.Trim()));
                }

                emailModel.RenderTextVersion = true;
                emailModel.BodyTextVersion   = RenderView(this, "SendEmailCommissionRequest", emailModel);

                emailModel.RenderTextVersion = false;
                emailModel.BodyHtmlVersion   = RenderView(this, "SendEmailCommissionRequest", emailModel);

                new EmailServices().SendEmail(emailModel);

                //return RedirectToAction("QuoteItems", new QuoteModel { ProjectId = model.ProjectId, QuoteId = model.QuoteId });
                string url = "/v2/#/quote/" + model.QuoteId + "/existingRecord";
                return(Redirect(url));
            }

            ModelState.Clear();

            return(View("CommissionRequest", this.ServiceResponse.Model));
        }