public ApiEndorsementModel MapEndorsementCommonModel(EndorsementModel endorsement)
 {
     return(new ApiEndorsementModel()
     {
         ID = endorsement.ID,
         Details = endorsement.Details,
         PolicyCoverageDetailID = endorsement.PolicyCoverageDetailID
     });
 }
Example #2
0
        // GET: Policy/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var policyDetailModel = Uow.Policies.GetAll()
                                    .Where(c => c.Id == id)
                                    .ProjectTo <PolicyDetailModel>()
                                    .FirstOrDefault();

            if (policyDetailModel == null)
            {
                return(HttpNotFound());
            }

            if (policyDetailModel.IsOrganization)
            {
                policyDetailModel.ClientName = policyDetailModel.OrganizationName;
            }

            var claimsList = Uow.Claims.GetAll()
                             .Where(c => c.PolicyId == id)
                             .ProjectTo <PolicyClaimModel>()
                             .ToList();
            var invoicesList = Uow.Invoices.GetAll()
                               .Where(i => i.PolicyId == id)
                               .ProjectTo <PolicyInvoiceModel>()
                               .ToList();
            var attachmentsList = Uow.PolicyAttachments.GetAll()
                                  .Where(i => i.PolicyId == id)
                                  .ProjectTo <PolicyAttachmentModel>()
                                  .ToList();
            var endt = new EndorsementModel
            {
                PolicyId      = (int)id,
                IssueDate     = DateTime.Now,
                EffectiveDate = DateTime.Now
            };
            var endorsementsList = Uow.Endorsements.GetAll()
                                   .Where(i => i.PolicyId == id)
                                   .ProjectTo <EndorsementModel>()
                                   .ToList();

            policyDetailModel.PolicyClaims      = claimsList;
            policyDetailModel.PolicyInvoices    = invoicesList;
            policyDetailModel.PolicyAttachments = attachmentsList;
            policyDetailModel.Endt         = endt;
            policyDetailModel.Endorsements = endorsementsList;

            return(View(policyDetailModel));
        }
Example #3
0
        private void UpdatePolicyAndInvoices(EndorsementModel model)
        {
            // Update (1)policy premium and for invoices that are not yet approved,
            // the (2)premium particular and (3)total amount due
            // only if the created or edited endorsement is the latest for the policy
            var latestEndt = Uow.Endorsements.GetAll()
                             .Where(e => e.PolicyId == model.PolicyId)
                             .OrderByDescending(e => e.EffectiveDate)
                             .FirstOrDefault();

            if (latestEndt != null)
            {
                if (model.EffectiveDate >= latestEndt.EffectiveDate)
                {
                    var policyEntity = Uow.Policies.GetAll()
                                       .Where(p => p.Id == model.PolicyId)
                                       .FirstOrDefault();
                    policyEntity.Premium += model.TotalEndorsementAmount;
                    Uow.Policies.Update(policyEntity);

                    var invoices = Uow.Invoices.GetAll()
                                   .Where(i => i.PolicyId == model.PolicyId)
                                   .Include(i => i.Particulars.Select(p => p.ParticularType))
                                   .Include(i => i.Status)
                                   .ToList();
                    if (invoices != null)
                    {
                        foreach (var item in invoices)
                        {
                            if (item.Status.Name.ToLower() == "pending" || item.Status.Name.ToLower() == "rejected")
                            {
                                if (item.Particulars != null)
                                {
                                    var premiumItem = item.Particulars
                                                      .Where(p => p.ParticularType.Name.ToLower() == "premium")
                                                      .FirstOrDefault();
                                    if (premiumItem != null)
                                    {
                                        premiumItem.ParticularAmount += model.TotalEndorsementAmount;
                                        item.TotalAmountDue           = item.Particulars
                                                                        .Sum(p => p.ParticularAmount);
                                        Uow.Particulars.Update(premiumItem);
                                        Uow.Invoices.Update(item);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }