public int AddPolicy(travel_policy TravelPolicy)
 {
     TravelPolicy.Payment_Status = false;
     _db.travel_policy.Add(TravelPolicy);
     _db.SaveChanges();
     return(TravelPolicy.ID);
 }
Example #2
0
        public async System.Threading.Tasks.Task <ActionResult> CreatePolicy(Policy policy)
        {
            ValidationService   validationService   = new ValidationService();
            RatingEngineService ratingEngineService = new RatingEngineService();
            travel_policy       polisaEntity        = new travel_policy();

            Uri        uri    = new Uri(ConfigurationManager.AppSettings["webpage_url"] + "/api/premium/calculate");
            HttpClient client = new HttpClient();

            client.BaseAddress = uri;
            var         mediaType     = new MediaTypeHeaderValue("application/json");
            var         jsonFormatter = new JsonMediaTypeFormatter();
            HttpContent content       = new ObjectContent <Policy>(policy, jsonFormatter);

            HttpResponseMessage responseMessage = client.PostAsync(uri, content).Result;
            string responseBody = await responseMessage.Content.ReadAsStringAsync();

            dynamic data    = JObject.Parse(responseBody);
            int     premium = data.PremiumAmount;

            bool   valid         = validationService.masterValidate(polisaEntity);
            double?vkupnaPremija = ratingEngineService.totalPremium(policy);

            policy.Total_Premium = vkupnaPremija;
            System.Web.HttpContext.Current.Session.Add("SessionId", policy.Policy_Number);

            if (valid)
            {
                string PolicyNumber = _ps.CreatePolicyNumber();
                string ID_Company   = _ps.GetCompanyID(policy.Policy_Number);
                int    tempID;
                if (String.IsNullOrEmpty(ID_Company))
                {
                    tempID = 0;
                }
                else
                {
                    string ID_trim  = ID_Company.Substring(0, 4);
                    string ID_trim2 = ID_Company.Substring(5);
                    tempID = int.Parse(ID_trim2) + 1;
                }
                polisaEntity.Policy_Number           = PolicyNumber;
                polisaEntity.Policy_TypeID           = policy.Policy_TypeID;
                polisaEntity.CountryID               = policy.CountryID;
                polisaEntity.Start_Date              = policy.Start_Date;
                polisaEntity.End_Date                = policy.End_Date;
                polisaEntity.Valid_Days              = policy.Valid_Days;
                polisaEntity.Travel_Insurance_TypeID = policy.Travel_Insurance_TypeID;
                polisaEntity.Travel_NumberID         = policy.Travel_NumberID;
                polisaEntity.Exchange_RateID         = (policy.Exchange_RateID.HasValue)? policy.Exchange_RateID.Value : 1;
                var result = _ps.AddPolicy(polisaEntity);
            }

            return(Json(new { success = true, responseText = "Success." }, JsonRequestBehavior.AllowGet));
        }
        public JsonWrapperPolicyFirstNoticeOfLossViewModel(travel_policy policy, List <bank_prefix> bankPrefixes)
        {
            //PolicyHolder = Mapper.Map<insured, ClientViewModel>(policy.insured);
            PolicyHolder = new ClientViewModel
            {
                Id          = policy.insured.ID,
                FirstName   = policy.insured.Name,
                Lastname    = policy.insured.Lastname,
                SSN         = policy.insured.SSN,
                Address     = policy.insured.Address,
                City        = policy.insured.City,
                Email       = policy.insured.Email,
                PhoneNumber = policy.insured.Phone_Number
            };

            foreach (var policyInsured in policy.policy_insured)
            {
                PolicyClients.Add(new ClientViewModel
                {
                    Id        = policyInsured.insured.ID,
                    FirstName = policyInsured.insured.Name,
                    Lastname  = policyInsured.insured.Lastname
                });
            }
            foreach (var bankPrefix in bankPrefixes)
            {
                BankPrefixes.Add(new BankPrefixViewModel
                {
                    Prefix   = bankPrefix.Prefix_Number,
                    BankName = bankPrefix.bank.Name
                });
            }
            //foreach (var bankAccountInfo in policy.insured.bank_account_info)
            //{
            //    PolicyHolderBankAccounts.Add(new BankAccountInfoViewModel
            //    {
            //        Id = bankAccountInfo.ID,
            //        BankName = bankAccountInfo.bank.Name,
            //        AccountNumber = bankAccountInfo.Account_Number
            //    });
            //}
        }
 public bool masterValidate(travel_policy policy)
 {
     if (!validateEMBG(policy.aspnetuser.EMBG))
     {
         return(false);
     }
     if (!validateDates(policy.Start_Date, policy.End_Date))
     {
         return(false);
     }
     if (
         !validateInsuredDays(policy.Start_Date, policy.End_Date, policy.Valid_Days,
                              policy.travel_insurance_type.Name))
     {
         return(false);
     }
     if (!validateAge(policy.Start_Date, policy.aspnetuser.EMBG, policy.policy_type.type))
     {
         return(false);
     }
     return(true);
 }
        public static int  SaveDetailFirstNoticeOdLoss(DetailFirstNoticeOfLossViewModel addDetailLoss,
                                                       travel_policy policy,
                                                       IFirstNoticeOfLossService _fis,
                                                       IAdditionalInfoService _ais,
                                                       IBankAccountService _bas)
        {
            try
            {
                var loss = _fis.Create();
                loss.PolicyId   = policy.ID;
                loss.ClaimantId = addDetailLoss.Claimant_ID;
                loss.Relation_claimant_policy_holder = addDetailLoss.RelationClaimantPolicyHolder;
                loss.Destination       = addDetailLoss.Destination;
                loss.Depart_Date_Time  = addDetailLoss.Depart_Date_Time;
                loss.Arrival_Date_Time = addDetailLoss.Arrival_Date_Time;
                loss.Transport_means   = addDetailLoss.Transport_means;
                loss.Total_cost        = addDetailLoss.Total_cost;
                loss.CreatedDateTime   = DateTime.UtcNow;
                loss.FNOL_Number       = _fis.CreateFNOLNumber();

                //loss.Message = "";
                loss.CreatedBy = addDetailLoss.CreatedBy;

                //additional info
                var additionalInfo = _ais.Create();
                additionalInfo.Accident_place    = addDetailLoss.Accident_place;
                additionalInfo.Datetime_accident = addDetailLoss.Datetime_accident;
                var additionalInfoID = _ais.Add(additionalInfo);
                loss.Additional_infoID = additionalInfoID;

                //bank accounts for policy holder
                var holderBankAccountsExist = _bas.CheckIfBankAccountExist(addDetailLoss.Policy_HolderID, addDetailLoss.PolicyHolder_BankAccount, addDetailLoss.PolicyHolder_BankID);
                if (!holderBankAccountsExist)
                {
                    var bankAccount = new bank_account_info();
                    bankAccount.Account_HolderID = addDetailLoss.Policy_HolderID;
                    bankAccount.BankID           = addDetailLoss.PolicyHolder_BankID;
                    bankAccount.Account_Number   = addDetailLoss.PolicyHolder_BankAccount;
                    var policyHolerBankAccount = _bas.AddBankAccountInfo(bankAccount);
                    loss.Policy_holder_bank_accountID = policyHolerBankAccount;
                }
                else
                {
                    var policyHolderBankAccount = _bas.GetBankAccountInfo(addDetailLoss.Policy_HolderID, addDetailLoss.PolicyHolder_BankAccount, addDetailLoss.PolicyHolder_BankID);
                    loss.Policy_holder_bank_accountID = policyHolderBankAccount.ID;
                }

                //bank accounts for claimant
                var claimantBankAccountsExist = _bas.CheckIfBankAccountExist(addDetailLoss.Claimant_ID, addDetailLoss.Claimant_BankAccount, addDetailLoss.Claimant_BankID);
                if (!claimantBankAccountsExist)
                {
                    var bankAccount = new bank_account_info();
                    bankAccount.Account_HolderID = addDetailLoss.Claimant_ID;
                    bankAccount.BankID           = addDetailLoss.Claimant_BankID;
                    bankAccount.Account_Number   = addDetailLoss.Claimant_BankAccount;
                    var claimantBankAccount = _bas.AddBankAccountInfo(bankAccount);
                    loss.Claimant_bank_accountID = claimantBankAccount;
                }
                else
                {
                    var claimantBankAccount = _bas.GetBankAccountInfo(addDetailLoss.Claimant_ID, addDetailLoss.Claimant_BankAccount, addDetailLoss.Claimant_BankID);
                    loss.Claimant_bank_accountID = claimantBankAccount.ID;
                }

                var lossID = _fis.Add(loss);

                if (addDetailLoss.HealthInsurance_Y_N.Equals("Y"))
                {
                    var healthInsuranceInfo = new health_insurance_info
                    {
                        Additional_infoId        = additionalInfoID,
                        additional_info          = additionalInfo,
                        Datetime_doctor_visit    = addDetailLoss.Datetime_doctor_visit,
                        Doctor_info              = addDetailLoss.Doctor_info,
                        Medical_case_description = addDetailLoss.Medical_case_description,
                        Previous_medical_history = addDetailLoss.Previous_medical_history,
                        Responsible_institution  = addDetailLoss.Responsible_institution
                    };

                    _ais.AddHealthInsuranceInfo(healthInsuranceInfo);
                }
                else if (addDetailLoss.LuggageInsurance_Y_N.Equals("Y"))
                {
                    float floaterValue = 0;
                    float.TryParse(addDetailLoss.Floaters_value, out floaterValue);
                    var luggageInsuranceInfo = new luggage_insurance_info
                    {
                        Additional_infoId     = additionalInfoID,
                        additional_info       = additionalInfo,
                        Place_description     = addDetailLoss.Place_description,
                        Detail_description    = addDetailLoss.Detail_description,
                        Report_place          = addDetailLoss.Report_place,
                        Floaters              = addDetailLoss.Floaters,
                        Floaters_value        = floaterValue,
                        Luggage_checking_Time = addDetailLoss.Luggage_checking_Time ?? new TimeSpan(0, 0, 0)
                    };

                    _ais.AddLuggageInsuranceInfo(luggageInsuranceInfo);
                }
                return(lossID);
            }
            catch (Exception e)
            {
                return(-1);
            }
        }
Example #6
0
        public async Task <ActionResult> Preview(int policyId)
        {
            travel_policy            policy            = _ps.GetPolicyById(policyId);
            insured                  policyHolder      = _ps.GetPolicyHolderByPolicyID(policyId);
            List <insured>           insureds          = _pis.GetAllInsuredByPolicyId(policyId);
            List <additional_charge> additionalCharges = _acs.GetAdditionalChargesByPolicyId(policyId);


            Policy policyPreview = new Policy
            {
                Policy_Number             = policy.Policy_Number,
                PaymentStatys             = policy.Payment_Status == true ? 1 : 0,
                Exchange_RateID           = policy.Exchange_RateID,
                CountryID                 = policy.CountryID,
                Policy_TypeID             = policy.Policy_TypeID,
                IsSamePolicyHolderInsured = policy.Policy_HolderID == policy.insured.ID,
                Date_Created              = policy.Date_Created,
                Created_By                = policy.Created_By,
                Start_Date                = policy.Start_Date,
                End_Date                      = policy.End_Date,
                Valid_Days                    = policy.Valid_Days,
                Travel_NumberID               = policy.Travel_NumberID,
                Total_Premium                 = policy.Total_Premium,
                PolicyHolderId                = policy.Policy_HolderID,
                PolicyHolderName              = policyHolder.Name,
                PolicyHolderAddress           = policyHolder.Address,
                PolicyHolderBirthDate         = policyHolder.DateBirth,
                PolicyHolderCity              = policyHolder.City,
                PolicyHolderEmail             = policyHolder.Email,
                PolicyHolderLastName          = policyHolder.Lastname,
                PolicyHolderPassportNumber_ID = policyHolder.Passport_Number_IdNumber,
                PolicyHolderPhoneNumber       = policyHolder.Phone_Number,
                PolicyHolderPostalCode        = policyHolder.Postal_Code,
                PolicyHolderSSN               = policyHolder.SSN,
                insureds                      = insureds,
                additional_charges            = additionalCharges,
                Address           = insureds[0].Address,
                Name              = insureds[0].Name,
                LastName          = insureds[0].Lastname,
                City              = insureds[0].City,
                PostalCode        = insureds[0].Postal_Code,
                BirthDate         = insureds[0].DateBirth,
                SSN               = insureds[0].SSN,
                Email             = insureds[0].Email,
                PhoneNumber       = insureds[0].Phone_Number,
                PassportNumber_ID = insureds[0].Passport_Number_IdNumber
            };
            var type_policies      = GetTypeOfPolicy();
            var countries          = GetTypeOfCountry();
            var franchises         = GetTypeOfFranchise();
            var additional_charges = GetTypeOfAdditionalCharges();

            await Task.WhenAll(type_policies, countries, franchises, additional_charges);

            ViewBag.TypeOfPolicy       = type_policies.Result;
            ViewBag.Countries          = countries.Result;
            ViewBag.Franchise          = franchises.Result;
            ViewBag.additional_charges = additional_charges.Result;
            ViewBag.Doplatok1          = 0;
            ViewBag.Doplatok2          = 0;
            if (additionalCharges.Count >= 1 && additionalCharges[0] != null)
            {
                if (additionalCharges[0].ID == 2)
                {
                    ViewBag.Doplatok1 = 1;
                }
            }
            if (additionalCharges.Count >= 2 && additionalCharges[1] != null)
            {
                if (additionalCharges[1].ID == 3)
                {
                    ViewBag.Doplatok2 = 1;
                }
            }
            ViewBag.DisableDefault = true;
            return(View(policyPreview));
        }