public InsuranceClaim(Airline airline, FleetAirliner airliner, Airport airport, DateTime date, int damage) { this.Damage = damage; this.Airline = airline; this.Airliner = airliner; this.Airport = airport; this.Date = date; this.Index = GameObject.GetInstance().GameTime.ToString() + airline.ToString() + damage.ToString(); this.SettlementDate = MathHelpers.GetRandomDate(GameObject.GetInstance().GameTime.AddMonths(2), GameObject.GetInstance().GameTime.AddMonths(24)); }
//add insurance policy public static AirlineInsurance CreatePolicy(Airline airline, AirlineInsurance.InsuranceType type, AirlineInsurance.InsuranceScope scope, AirlineInsurance.PaymentTerms terms, bool allAirliners, int length, int amount) { #region Method Setup Random rnd = new Random(); double modifier = GetRatingModifier(airline); double hub = airline.getHubs().Count() * 0.1; AirlineInsurance policy = new AirlineInsurance(type, scope, terms, amount); policy.InsuranceEffective = GameObject.GetInstance().GameTime; policy.InsuranceExpires = GameObject.GetInstance().GameTime.AddYears(length); policy.PolicyIndex = GameObject.GetInstance().GameTime.ToString() + airline.ToString(); policy.TermLength = length; switch (policy.InsTerms) { case AirlineInsurance.PaymentTerms.Monthly: policy.RemainingPayments = length * 12; break; case AirlineInsurance.PaymentTerms.Quarterly: policy.RemainingPayments = length * 4; break; case AirlineInsurance.PaymentTerms.Biannual: policy.RemainingPayments = length * 2; break; case AirlineInsurance.PaymentTerms.Annual: policy.RemainingPayments = length; break; } //sets up multipliers based on the type and scope of insurance policy Dictionary<AirlineInsurance.InsuranceType, Double> typeMultipliers = new Dictionary<AirlineInsurance.InsuranceType, double>(); Dictionary<AirlineInsurance.InsuranceScope, Double> scopeMultipliers = new Dictionary<AirlineInsurance.InsuranceScope, double>(); double typeMPublic = modifier; double typeMPassenger = modifier + 0.2; double typeMCSL = modifier + 0.5; double typeMFull = modifier + 1; double scMAirport = modifier; double scMDomestic = modifier + 0.2; double scMHub = modifier + hub + 0.5; double scMGlobal = modifier + hub + 1; #endregion #region Domestic/Int'l Airport Counter int i = 0; int j = 0; foreach (Airport airport in GameObject.GetInstance().HumanAirline.Airports) { if (airport.Profile.Country != GameObject.GetInstance().HumanAirline.Profile.Country) { i++; } else j++; } #endregion // all the decision making for monthly payment amounts and deductibles #region Public Liability switch (type) { case AirlineInsurance.InsuranceType.Public_Liability: switch (scope) { case AirlineInsurance.InsuranceScope.Airport: policy.Deductible = amount * 0.005; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMPublic * scMAirport; if (terms == AirlineInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlineInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlineInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlineInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; case AirlineInsurance.InsuranceScope.Domestic: policy.Deductible = amount * 0.001; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMPublic * scMDomestic; if (terms == AirlineInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlineInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlineInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlineInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; case AirlineInsurance.InsuranceScope.Hub: policy.Deductible = amount * 0.001; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMPublic * scMHub; if (terms == AirlineInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlineInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlineInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlineInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; case AirlineInsurance.InsuranceScope.Global: policy.Deductible = amount * 0.001; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMPublic * scMGlobal; if (terms == AirlineInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlineInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlineInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlineInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; } break; #endregion #region Passenger Liability case AirlineInsurance.InsuranceType.Passenger_Liability: switch (scope) { case AirlineInsurance.InsuranceScope.Airport: policy.Deductible = amount * 0.005; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMPassenger * scMAirport; if (terms == AirlineInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlineInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlineInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlineInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; case AirlineInsurance.InsuranceScope.Domestic: policy.Deductible = amount * 0.001; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMPassenger * scMDomestic; if (terms == AirlineInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlineInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlineInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlineInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; case AirlineInsurance.InsuranceScope.Hub: policy.Deductible = amount * 0.001; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMPassenger * scMHub; if (terms == AirlineInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlineInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlineInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlineInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; case AirlineInsurance.InsuranceScope.Global: policy.Deductible = amount * 0.001; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMPassenger * scMGlobal; if (terms == AirlineInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlineInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlineInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlineInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; } break; #endregion #region Combined Single Limit case AirlineInsurance.InsuranceType.Combined_Single_Limit: switch (scope) { case AirlineInsurance.InsuranceScope.Airport: policy.Deductible = amount * 0.005; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMCSL * scMAirport; if (terms == AirlineInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlineInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlineInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlineInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; case AirlineInsurance.InsuranceScope.Domestic: policy.Deductible = amount * 0.001; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMCSL * scMDomestic; if (terms == AirlineInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlineInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlineInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlineInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; case AirlineInsurance.InsuranceScope.Hub: policy.Deductible = amount * 0.001; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMCSL * scMHub; if (terms == AirlineInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlineInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlineInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlineInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; case AirlineInsurance.InsuranceScope.Global: policy.Deductible = amount * 0.001; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMCSL * scMGlobal; if (terms == AirlineInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlineInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlineInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlineInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; } break; #endregion #region Full Coverage case AirlineInsurance.InsuranceType.Full_Coverage: switch (scope) { case AirlineInsurance.InsuranceScope.Airport: policy.Deductible = amount * 0.005; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMFull * scMAirport; if (terms == AirlineInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlineInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlineInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlineInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; case AirlineInsurance.InsuranceScope.Domestic: policy.Deductible = amount * 0.001; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMFull * scMDomestic; if (terms == AirlineInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlineInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlineInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlineInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; case AirlineInsurance.InsuranceScope.Hub: policy.Deductible = amount * 0.001; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMFull * scMHub; if (terms == AirlineInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlineInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlineInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlineInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; case AirlineInsurance.InsuranceScope.Global: policy.Deductible = amount * 0.001; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMFull * scMGlobal; if (terms == AirlineInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlineInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlineInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlineInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; } #endregion break; } if (allAirliners == true) { amount *= airline.Fleet.Count(); policy.PaymentAmount *= (airline.Fleet.Count() * 0.95); } return policy; }
//add insurance policy public static void CreatePolicy(Airline airline, FleetAirliner airliner, AirlinerInsurance.InsuranceType type, AirlinerInsurance.InsuranceScope scope, AirlinerInsurance.PaymentTerms terms, int length, int amount) { #region Method Setup Random rnd = new Random(); double hub = airline.getHubs().Count() * 0.1; AirlinerInsurance policy = new AirlinerInsurance(type, scope, terms, amount); policy.InsuranceEffective = GameObject.GetInstance().GameTime; policy.InsuranceExpires = GameObject.GetInstance().GameTime.AddYears(length); policy.PolicyIndex = GameObject.GetInstance().GameTime.ToString() + airline.ToString(); switch (policy.insTerms) { case AirlinerInsurance.PaymentTerms.Monthly: policy.RemainingPayments = length * 12; break; case AirlinerInsurance.PaymentTerms.Quarterly: policy.RemainingPayments = length * 4; break; case AirlinerInsurance.PaymentTerms.Biannual: policy.RemainingPayments = length * 2; break; case AirlinerInsurance.PaymentTerms.Annual: policy.RemainingPayments = length; break; } //sets up multipliers based on the type and scope of insurance policy Dictionary<AirlinerInsurance.InsuranceType, Double> typeMultipliers = new Dictionary<AirlinerInsurance.InsuranceType, double>(); Dictionary<AirlinerInsurance.InsuranceScope, Double> scopeMultipliers = new Dictionary<AirlinerInsurance.InsuranceScope, double>(); double typeMLiability = 1; double typeMGround_Parked = 1.2; double typeMGroundTaxi = 1.5; double typeMGroundCombined = 1.8; double typeMInFlight = 2.2; double typeMFullCoverage = 2.7; double scMAirport = 1; double scMDomestic = 1.5; double scMHub = 1.5 + hub; double scMGlobal = 2.0 + hub; #endregion #region Domestic/Int'l Airport Counter int i = 0; int j = 0; foreach (Airport airport in GameObject.GetInstance().HumanAirline.Airports) { if (airport.Profile.Country != GameObject.GetInstance().HumanAirline.Profile.Country) { i++; } else j++; } #endregion // all the decision making for monthly payment amounts and deductibles switch (type) { #region Liability case AirlinerInsurance.InsuranceType.Liability: switch (scope) { case AirlinerInsurance.InsuranceScope.Airport: policy.Deductible = amount * 0.005; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMLiability * scMAirport; if (terms == AirlinerInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlinerInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlinerInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlinerInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; case AirlinerInsurance.InsuranceScope.Domestic: policy.Deductible = amount * 0.001; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMLiability * scMDomestic; if (terms == AirlinerInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlinerInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlinerInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlinerInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; case AirlinerInsurance.InsuranceScope.Hub: policy.Deductible = amount * 0.001; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMLiability * scMHub; if (terms == AirlinerInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlinerInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlinerInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlinerInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; case AirlinerInsurance.InsuranceScope.Global: policy.Deductible = amount * 0.001; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMLiability * scMGlobal; if (terms == AirlinerInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlinerInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlinerInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlinerInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; } break; #endregion #region Ground Parked case AirlinerInsurance.InsuranceType.Ground_Parked: switch (scope) { case AirlinerInsurance.InsuranceScope.Airport: policy.Deductible = amount * 0.005; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMGround_Parked * scMAirport; if (terms == AirlinerInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlinerInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlinerInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlinerInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; case AirlinerInsurance.InsuranceScope.Domestic: policy.Deductible = amount * 0.001; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMGround_Parked * scMDomestic; if (terms == AirlinerInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlinerInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlinerInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlinerInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; case AirlinerInsurance.InsuranceScope.Hub: policy.Deductible = amount * 0.001; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMGround_Parked * scMHub; if (terms == AirlinerInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlinerInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlinerInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlinerInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; case AirlinerInsurance.InsuranceScope.Global: policy.Deductible = amount * 0.001; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMGround_Parked * scMGlobal; if (terms == AirlinerInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlinerInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlinerInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlinerInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; } break; #endregion #region Ground Taxi case AirlinerInsurance.InsuranceType.Ground_Taxi: switch (scope) { case AirlinerInsurance.InsuranceScope.Airport: policy.Deductible = amount * 0.005; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMGroundTaxi * scMAirport; if (terms == AirlinerInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlinerInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlinerInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlinerInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; case AirlinerInsurance.InsuranceScope.Domestic: policy.Deductible = amount * 0.001; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMGroundTaxi * scMDomestic; if (terms == AirlinerInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlinerInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlinerInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlinerInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; case AirlinerInsurance.InsuranceScope.Hub: policy.Deductible = amount * 0.001; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMGroundTaxi * scMHub; if (terms == AirlinerInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlinerInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlinerInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlinerInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; case AirlinerInsurance.InsuranceScope.Global: policy.Deductible = amount * 0.001; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMGroundTaxi * scMGlobal; if (terms == AirlinerInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlinerInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlinerInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlinerInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; } break; #endregion #region Ground Combined case AirlinerInsurance.InsuranceType.Combined_Ground: switch (scope) { case AirlinerInsurance.InsuranceScope.Airport: policy.Deductible = amount * 0.005; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMGroundCombined * scMAirport; if (terms == AirlinerInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlinerInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlinerInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlinerInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; case AirlinerInsurance.InsuranceScope.Domestic: policy.Deductible = amount * 0.001; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMGroundCombined * scMDomestic; if (terms == AirlinerInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlinerInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlinerInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlinerInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; case AirlinerInsurance.InsuranceScope.Hub: policy.Deductible = amount * 0.001; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMGroundCombined * scMHub; if (terms == AirlinerInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlinerInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlinerInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlinerInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; case AirlinerInsurance.InsuranceScope.Global: policy.Deductible = amount * 0.001; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMGroundCombined * scMGlobal; if (terms == AirlinerInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlinerInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlinerInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlinerInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; } break; #endregion #region In Flight case AirlinerInsurance.InsuranceType.In_Flight: switch (scope) { case AirlinerInsurance.InsuranceScope.Airport: policy.Deductible = amount * 0.005; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMInFlight * scMAirport; if (terms == AirlinerInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlinerInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlinerInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlinerInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; case AirlinerInsurance.InsuranceScope.Domestic: policy.Deductible = amount * 0.001; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMInFlight * scMDomestic; if (terms == AirlinerInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlinerInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlinerInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlinerInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; case AirlinerInsurance.InsuranceScope.Hub: policy.Deductible = amount * 0.001; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMInFlight * scMHub; if (terms == AirlinerInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlinerInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlinerInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlinerInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; case AirlinerInsurance.InsuranceScope.Global: policy.Deductible = amount * 0.001; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMInFlight * scMGlobal; if (terms == AirlinerInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlinerInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlinerInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlinerInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; } break; #endregion #region Full Coverage case AirlinerInsurance.InsuranceType.Full_Coverage: switch (scope) { case AirlinerInsurance.InsuranceScope.Airport: policy.Deductible = amount * 0.005; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMFullCoverage * scMAirport; if (terms == AirlinerInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlinerInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlinerInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlinerInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; case AirlinerInsurance.InsuranceScope.Domestic: policy.Deductible = amount * 0.001; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMFullCoverage * scMDomestic; if (terms == AirlinerInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlinerInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlinerInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlinerInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; case AirlinerInsurance.InsuranceScope.Hub: policy.Deductible = amount * 0.001; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMFullCoverage * scMHub; if (terms == AirlinerInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlinerInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlinerInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlinerInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; case AirlinerInsurance.InsuranceScope.Global: policy.Deductible = amount * 0.001; policy.PaymentAmount = policy.InsuredAmount * (4 / 10) * typeMFullCoverage * scMGlobal; if (terms == AirlinerInsurance.PaymentTerms.Annual) policy.PaymentAmount = policy.InsuredAmount / length; if (terms == AirlinerInsurance.PaymentTerms.Biannual) policy.PaymentAmount = policy.InsuredAmount / length / 2; if (terms == AirlinerInsurance.PaymentTerms.Quarterly) policy.PaymentAmount = policy.InsuredAmount / length / 4; if (terms == AirlinerInsurance.PaymentTerms.Monthly) policy.PaymentAmount = policy.InsuredAmount / length / 12; break; } break; #endregion } }