// MHRCLASS.FGL - Main MHRAter Library - FGL/VM3.6
// (c) 2000 by West Coast Web Adventures, Inc., All Rights Reserved
//
// Classes:
// QuoteData new( filename, AgencyId, Agent )
//
CLASS QuoteData
PUBLIC:
local name, age, county, zip, deductible, claims, LienFree
local YearBuilt, InPark, TtlSpaces, width, length, manufacturer, model, aStructValue
local mhValue, grc, ProtectionClass
local oQuake, oNatural, oSecured, oLiability, oGolfCart, oWoodStove, oWorkersComp
local oLoss, oMedical, oSewer, oFlood, oWind, oAnimal, oLienFree
local oNaturalP, oSecuredP, oLiabilityP, oGolfCartP, oWoodStoveP, oWorkersCompP
local oLossP, oMedicalP, oSewerP, oFloodP, oWindP, oAnimalP, oLienFreeP
local BrokerFee, oDeductibleP
local aAntenna, aUnStructValue, aPersonal, aLiability, IsPrimary, IsSeasonal, IsRental, IsTenant
local aAntennaP, aUnStructValueP, aPersonalP, aLiabilityP
local p1, p2, p3, p4
local sCamera, sArts, sArts2, sGolf, sGuns, sMusic, sPC, sSilver, sJewel, sFurs
local sStamps, sCoins, sAntiques, sOther
local sCameraP, sArtsP, sArts2P, sGolfP, sGunsP, sMusicP, sPCP, sSilverP, sJewelP, sFursP
local sStampsP, sCoinsP, sAntiquesP, sOtherP
local address, city, state, phone, dob, sName, sAge, sDOB
local aName, aAddress, aCity, aState, aZip
local mAddress, mCity, mState, mZip, mCounty, mPhone
local a2name, a2address, a2city, a2state, a2zip, a2county, a2phone
local lname, laddress, lcity, lstate, lzip, lcounty, lphone, lloan
local r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, u1, u2
local from, to, PriorCarrier, tenant
local LandIsOwned, ParkName, space, FireDept, HydrantDistance, FireDistance
local sn, bracing, skirted, heat, AuxHeat
local aPorch, aDeck, aOther, aDesc, aUsage, aWidth, aLength, aYearBuilt, aBuilt, aAuxHeat
local oDesc, oUsage, oWidth, oLength, oYearBuilt, oBuilt, oAuxHeat
local AgencyId, Agent, filename, data, errmsg, CreateDate
local ConstructionCode, ConstructionGrade, Territory, FloodRestriction, area
local ReplacementCost, CostPerSF, CoverageAmount, ParkType
local ProtectionDeviceCredit, FloodDeductible, BasePremium, PremiumFee
local UnStructLimit, LossOfUseLimit, PersonalEffectsLimit, PersonalPropertyLimit, PersonalLiabilityLimit
local eqBand, eqRate, eqPremium, PersonalMedicalLimit, IsFlood, OtherP
local PEGuarantee
METHOD new( filename, AgencyId, Agent )
::init( )
::filename = filename
::data = ""
::errmsg = ""
::AgencyId = AgencyId
::Agent = Agent
::CreateDate = ""
return( 1 )
END
METHOD ListFloodParks( vname, ParkName )
return( ListFloodParks( vname, ParkName, fileFullPath( ::filename ) + '\data.dat' ) )
END
METHOD Calculate( )
local datafile, eqDatafile, jrate, frate, p
datafile = fileFullPath( ::filename ) + '\data.dat'
eqDatafile = fileFullPath( ::filename ) + '\quake.dat'
::ConstructionCode = DetermineConstructionCode( ::manufacturer, datafile )
::ConstructionGrade = ConstructionGrade( ::ConstructionCode )
::Territory = DetermineTerritory( ::county, datafile )
::eqBand = DetermineEarthquakeBand( ::zip, eqDatafile )
::FloodRestriction = DetermineFloodRestriction( ::zip, ::ParkName, datafile )
::area = int( ::width * ::length )
::ReplacementCost = DetermineReplacementCost( ::ConstructionCode, ::area )
::CostPerSF = ::ReplacementCost / ::area
if ( ::grc )
::mhValue = DollarRoundUp( ( ::mhValue > ::ReplacementCost ) ? ::mhValue : ::ReplacementCost )
end
::CoverageAmount = DollarRoundUp( ::mhValue + ::aStructValue )
if ( ::IsTenant || ::IsRental )
::ParkType = "Standard"
else
::ParkType = DeterminePark( ::InPark, ::age, ::CoverageAmount, ::claims, ::TtlSpaces, ::Area )
end
// Earthquake
if ( ::oQuake )
::eqRate = QuakeRate( ::eqBand, 1 )
::eqPremium = DollarRoundUp( QuakePremium( ::CoverageAmount / 1000, ::eqRate, ::YearBuilt ) )
else
::eqRate = 0
::eqPremium = 0
end
// Premium Data
p = new( "PremiumData", ::territory, ::ParkType, ::YearBuilt, ::CoverageAmount, fileFullPath( ::filename ), ::InPark, ::IsRental, ::IsTenant, ::aUnStructValue )
if ( ! p.LoadData( ) )
::errmsg = p.errmsg
return( 0 )
end
// Scheduled Personal Property
switch ( upper( ::county ) )
case "LOS ANGELES"
jRate = 2.40
fRate = 0.95
break
case "SAN FRANCISCO"
jRate = 1.35
fRate = 0.60
break
case "ALAMEDA"
case "CONTRA COSTA"
case "MARIN"
case "SAN MATEO"
jRate = 1.45
fRate = 0.50
break
default
jRate = 1.85
fRate = 0.55
break
end
::sCameraP = DollarRoundUp( 1.85 * ( ::sCamera / 100 ) )
::sArtsP = DollarRoundUp( 0.40 * ( ::sArts / 100 ) )
::sArts2P = DollarRoundUp( 0.55 * ( ::sArts2 / 100 ) )
::sGolfP = DollarRoundUp( 1.00 * ( ::sGolf / 100 ) )
::sGunsP = DollarRoundUp( 2.00 * ( ::sGuns / 100 ) )
::sMusicP = DollarRoundUp( 0.55 * ( ::sMusic / 100 ) )
::sPCP = DollarRoundUp( 0.35 * ( ::sPC / 100 ) )
::sSilverP = DollarRoundUp( 0.50 * ( ::sSilver / 100 ) )
::sJewelP = DollarRoundUp( jRate * ( ::sJewel / 100 ) )
::sFursP = DollarRoundUp( fRate * ( ::sFurs / 100 ) )
::sStampsP = DollarRoundUp( 0.45 * ( ::sStamps / 100 ) )
::sCoinsP = DollarRoundUp( 1.85 * ( ::sCoins / 100 ) )
::sAntiquesP = DollarRoundUp( 2.00 * ( ::sAntiques / 100 ) )
::sOtherP = DollarRoundUp( 1.50 * ( ::sOther / 100 ) )
// Optional Coverages
::oNaturalP = ::oNatural ? 3 : 0
::oSecuredP = ::oSecured ? 15 : 0
::oLiabilityP = ::oLiability ? 30 : 0
::oGolfCartP = ::oGolfCart ? 35 : 0
::oWoodStoveP = ::oWoodStove ? 35 : 0
::oWorkersCompP = ::oWorkersComp ? 130 : 0
::oLossP = ::oLoss ? 10 : 0
if ( ::IsRental )
::oMedicalP = 0
else
::oMedicalP = ::oMedical ? ( ::IsTenant || ? 5 : 0 ) : 0
end
::oSewerP = ::oSewer ? 30 : 0
::oFloodP = ::oFlood ? ( strempty( ::FloodRestriction ) ? 25 : 0 ) : 0
::oWindP = ::oWind ? -25 : 0
::oAnimalP = ::oAnimal ? -25 : 0
::oLienFreeP = -1 * ( ::oLienFree ? ( int( p.PremiumAmount * .05 ) ) : 0 )
if ( ! ::IsSeasonal )
if ( ::deductible == 100 )
::oDeductibleP = 25
elseif ( ::deductible == 500 )
::oDeductibleP = -25
else
::oDeductibleP = 0
end
else
::oDeductibleP = 0
end
::ProtectionDeviceCredit = DetermineProtectionDeviceCredit( self )
::aAntennaP = DollarRoundUp( 5.00 * ( ::aAntenna / 100 ) )
::aUnStructValueP = DollarRoundUp( ( ::aUnStructValue > p.UnattachedStructureLimit ) ? ( ( ( ::aUnStructValue - p.UnattachedStructureLimit ) / 100 ) * p.IncreaseUnattachedStructuresRate ) : 0 )
::aPersonalP = DollarRoundUp( ( ::aPersonal > p.PersonalEffectsLimit ) ? ( ( ( ::aPersonal - p.PersonalEffectsLimit ) / 100 ) * p.IncreasePersonalEffectsRate ) : 0 )
::aLiabilityP = DollarRoundUp( ( ::aLiability > p.PersonalLiabilityLimit ) ? ( ( ( ::aLiability - p.PersonalLiabilityLimit ) / 1000 ) * p.IncreasePersonalLiabilityRate ) : 0 )
if ( ! ::InPark )
if ( ! ::IsRental )
::UnStructLimit = DollarRoundUp( ::CoverageAmount * .10 )
else
::UnStructLimit = DollarRoundUp( ( ::aUnStructValue > p.UnattachedStructureLimit ) ? ::aUnStructValue : p.UnattachedStructureLimit )
end
::LossOfUseLimit = DollarRoundUp( ::CoverageAmount * .20 )
::PersonalEffectsLimit = DollarRoundUp( ::CoverageAmount * .50 )
::PersonalLiabilityLimit = 25000
else
::UnStructLimit = DollarRoundUp( ( ::aUnStructValue > p.UnattachedStructureLimit ) ? ::aUnStructValue : p.UnattachedStructureLimit )
::LossOfUseLimit = DollarRoundUp( p.LossOfUseLimit )
::PersonalEffectsLimit = DollarRoundUp( ( ::aPersonal > p.PersonalEffectsLimit ) ? ::aPersonal : p.PersonalEffectsLimit )
::PersonalLiabilityLimit = DollarRoundUp( ( ::aLiability > p.PersonalLiabilityLimit ) ? ::aLiability : p.PersonalLiabilityLimit )
end
::PersonalPropertyLimit = DollarRoundUp( ::TotalScheduledPropertyCoverage( ) )
::FloodDeductible = ::oFlood ? 250 : 500
::BasePremium = DollarRoundUp( p.PremiumAmount )
::PremiumFee = DollarRoundUp( p.PremiumFee )
if ( ::oQuake )
::PremiumFee += 15
end
if ( ::IsSeasonal || ::IsRental || ::IsTenant )
::LossOfUseLimit = 0
end
if ( :: IsRental )
::PersonalMedicalLimit = 0
else
::PersonalMedicalLimit = ( ::IsTenant ? ( ::oMedical ? 1000 : 500 ) : 1000 )
end
if ( ::IsRental )
CalculateRentalApplication( self )
elseif ( ::IsTenant )
CalculateTenantApplication( self )
end
if ( ::IsTenant )
if ( ::BasePremium > 0 && ::BasePremium < 75 )
::BasePremium = 75
end
else
if ( ::BasePremium > 0 && ::BasePremium < 100 )
::BasePRemium = 100
end
end
return( 1 )
END
METHOD TotalPolicyExpenses( )
return( ::BasePremium + ::TotalOptionalCoverages( ) + ::TotalCreditsAndDebits( ) + ::eqPremium + ::PremiumFee + ::BrokerFee )
END
METHOD TotalOptionalCoverages( )
return( ::oNaturalP + ::oSecuredP + ::oLiabilityP + ::oGolfCartP + ::oWoodStoveP + ::oWorkersCompP + ::oLossP + ::aAntennaP + ::aUnStructValueP + ::aPersonalP + ::aLiabilityP + ::oMedicalP + ::oSewerP + ::TotalScheduledPropertyPremium( ) )
END
METHOD TotalCreditsAndDebits( )
return( ::oLienFreeP + ::oFloodP + ::oWindP + ::oAnimalP + ::oDeductibleP + ::ProtectionDeviceCredit + ::OtherP )
END
METHOD TotalScheduledPropertyCoverage( )
return( ::sCamera + ::sArts + ::sArts2 + ::sGolf + ::sGuns + ::sMusic + ::sPC + ::sSilver + ::sJewel + ::sFurs + ::sStamps + ::sCoins + ::sAntiques + ::sOther )
END
METHOD TotalScheduledPropertyPremium( )
return( ::sCameraP + ::sArtsP + ::sArts2P + ::sGolfP + ::sGunsP + ::sMusicP + ::sPCP + ::sSilverP + ::sJewelP + ::sFursP + ::sStampsP + ::sCoinsP + ::sAntiquesP + ::sOtherP )
END
METHOD ListQuotes( vname )
local s, curAgency
curAgency = upper( untrim( ::AgencyId, 10 ) )
rater->dbSeek( curAgency )
if ( ! rater->dbFound( ) )
return( "<select name=\"" + vname + "\" style=\"width:100%;\" size=15><option>No Quotes Currently On File...</select>\r\n " )
end
s = "<select name=\"" + vname + "\" style=\"width:100%;\" size=15>\r\n"
while ( ! rater->dbEOF( ) )
if ( rater->dbIsDeleted( ) )
rater->dbSkip( )
continue
end
if ( upper( rater->AgencyId ) != curAgency )
break
end
s += "<option>" + alltrim( rater->Applicant ) + " ( Age " + rater->age + ", " + alltrim( rater->county ) + " County, " + alltrim( rater->zip ) + " )\r\n"
rater->dbSkip( )
end
s += "</select>\r\n"
return( s )
END
METHOD GetKey( )
if ( strempty( ::AgencyId ) || strempty( ::name ) || ( ::age < 1 ) || strempty( ::county ) || strempty( ::zip ) )
::errmsg = "Invalid KEY element."
return( "" )
end
return( upper( untrim( ::AgencyId, 10 ) + untrim( GetLastNameKey( ::name ), 40 ) + right( "000" + ::Age, 3 ) + untrim( ::county, 20 ) + untrim( ::zip, 10 ) ) )
END
METHOD OpenData( session )
::data = new( "objRaterData", session )
if ( type( ::data ) != "O" )
return( 0 )
end
return( ::data.open( ) )
END
METHOD CloseData( )
if ( type( ::data ) == "O" )
::data.close( )
end
return( 1 )
END
METHOD PutData( AppendFlag, user )
local key, str
key = ::GetKey( )
if ( strempty( key ) )
return( 0 )
end
if ( ! ::data.seek( key ) )
if ( ! AppendFlag )
return( 0 )
end
rater->dbAppend( )
rater->AgencyId = ::AgencyId
rater->Agent = ::Agent
rater->Applicant = GetLastNameKey( ::name )
rater->age = ::age
rater->county = ::county
rater->zip = ::zip
if ( type( user ) == "O" )
user.IncrementQuote( )
end
else
if ( ! rater->dbRlock( ) )
::errmsg( "ERROR: Unable top lock database record." )
return( 0 )
end
end
if ( strempty( ::CreateDate ) )
::CreateDate = date( "MM-DD-YYYY " ) + time( )
end
str = ::name + "\n" + ::deductible + "\n" + ::claims + "\n" + ::LienFree + "\n" + ::YearBuilt
str += "\n" + ::InPark + "\n" + ::TtlSpaces + "\n" + ::width + "\n" + ::length + "\n" + ::manufacturer
str += "\n" + ::IsPrimary + "\n" + ::IsSeasonal + "\n" + ::IsRental + "\n" + ::IsTenant
str += "\n" + ::oQuake + "\n" + ::oNatural + "\n" + ::oSecured + "\n" + ::oLiability + "\n" + ::oGolfCart
str += "\n" + ::oWoodStove + "\n" + ::oWorkersComp + "\n" + ::oLoss + "\n" + ::oMedical
str += "\n" + ::oSewer + "\n" + ::oFlood + "\n" + ::oWind + "\n" + ::oAnimal + "\n" + ::oLienFree
str += "\n" + ::grc + "\n" + ::mhValue + "\n" + ::aStructValue + "\n" + ::aUnstructValue
str += "\n" + ::CreateDate + "\n" + ::aAntenna + "\n" + ::aPersonal + "\n" + ::aLiability
str += "\n" + ::sCamera + "\n" + ::sArts + "\n" + ::sArts2 + "\n" + ::sGolf + "\n" + ::sGuns
str += "\n" + ::sMusic + "\n" + ::sPC + "\n" + ::sSilver + "\n" + ::sJewel + "\n" + ::sFurs
str += "\n" + ::sStamps + "\n" + ::sCoins + "\n" + ::sAntiques + "\n" + ::sOther
str += "\n" + ::p1 + "\n" + ::p2 + "\n" + ::p3 + "\n" + ::p4 + "\n" + ::BrokerFee
str += "\n" + ::from + "\n" + ::to + "\n" + ::PriorCarrier
str += "\n" + ::address + "\n" + ::city + "\n" + ::state + "\n" + ::phone + "\n" + ::dob
str += "\n" + ::sName + "\n" + ::sAge + "\n" + ::sDob
str += "\n" + ::aName + "\n" + ::aAddress + "\n" + ::aCity + "\n" + ::aState + "\n" + ::aZip
str += "\n" + ::mAddress + "\n" + ::mCity + "\n" + ::mState + "\n" + ::mZip + "\n" + ::mCounty + "\n" + ::mPhone
str += "\n" + ::a2name + "\n" + ::a2address + "\n" + ::a2city + "\n" + ::a2state + "\n" + ::a2zip + "\n" + ::a2county + "\n" + ::a2phone
str += "\n" + ::lname + "\n" + ::laddress + "\n" + ::lcity + "\n" + ::lstate + "\n" + ::lzip + "\n" + ::lcounty + "\n" + ::lphone + "\n" + ::lloan
str += "\n" + ::r1 + "\n" + ::r2 + "\n" + ::r3 + "\n" + ::r4 + "\n" + ::r5 + "\n" + ::r6 + "\n" + ::r7 + "\n" + ::r8 + "\n" + ::r9 + "\n" + ::r10
str += "\n" + ::u1 + "\n" + ::u2 + "\n" + ::tenant
str += "\n" + ::LandIsOwned + "\n" + ::ParkName + "\n" + ::space + "\n" + ::FireDept + "\n" + ::HydrantDistance + "\n" + ::FireDistance
str += "\n" + ::sn + "\n" + ::bracing + "\n" + ::skirted + "\n" + ::heat + "\n" + ::AuxHeat
str += "\n" + ::aPorch + "\n" + ::aDeck + "\n" + ::aOther + "\n" + ::aDesc + "\n" + ::aUsage + "\n" + ::aWidth + "\n" + ::aLength + "\n" + ::aYearBuilt + "\n" + ::aBuilt + "\n" + ::aAuxHeat
str += "\n" + ::oDesc + "\n" + ::oUsage + "\n" + ::oWidth + "\n" + ::oLength + "\n" + ::oYearBuilt + "\n" + ::oBuilt + "\n" + ::oAuxHeat
str += "\n" + ::ProtectionClass + "\n" + ::IsFlood + "\n" + ::PEGuarantee
rater->data = str
rater->dbUnlock( )
return( 1 )
END
METHOD GetData( key )
local str
if ( ! ::data.seek( key ) )
return( 0 )
end
str = rater->data
::agent = alltrim( rater->agent )
::name = strextract( str, "\n", 1 )
::age = rater->age
::county = alltrim( rater->county )
::zip = alltrim( rater->zip )
::deductible = 0 + strextract( str, "\n", 2 )
::claims = 0 + strextract( str, "\n", 3 )
::LienFree = 0 + strextract( str, "\n", 4 )
::YearBuilt = 0 + strextract( str, "\n", 5 )
::InPark = 0 + strextract( str, "\n", 6 )
::TtlSpaces = 0 + strextract( str, "\n", 7 )
::width = 0 + strextract( str, "\n", 8 )
::length = 0 + strextract( str, "\n", 9 )
::manufacturer = strextract( str, "\n", 10 )
::IsPrimary = 0 + strextract( str, "\n", 11 )
::IsSeasonal = 0 + strextract( str, "\n", 12 )
::IsRental = 0 + strextract( str, "\n", 13 )
::IsTenant = 0 + strextract( str, "\n", 14 )
::oQuake = 0 + strextract( str, "\n", 15 )
::oNatural = 0 + strextract( str, "\n", 16 )
::oSecured = 0 + strextract( str, "\n", 17 )
::oLiability = 0 + strextract( str, "\n", 18 )
::oGolfCart = 0 + strextract( str, "\n", 19 )
::oWoodStove = 0 + strextract( str, "\n", 20 )
::oWorkersComp = 0 + strextract( str, "\n", 21 )
::oLoss = 0 + strextract( str, "\n", 22 )
::oMedical = 0 + strextract( str, "\n", 23 )
::oSewer = 0 + strextract( str, "\n", 24 )
::oFlood = 0 + strextract( str, "\n", 25 )
::oWind = 0 + strextract( str, "\n", 26 )
::oAnimal = 0 + strextract( str, "\n", 27 )
::oLienFree = 0 + strextract( str, "\n", 28 )
::grc = 0 + strextract( str, "\n", 29 )
::mhValue = 0 + strextract( str, "\n", 30 )
::aStructValue = 0 + strextract( str, "\n", 31 )
::aUnStructValue = 0 + strextract( str, "\n", 32 )
::CreateDate = strextract( str, "\n", 33 )
::aAntenna = 0 + strextract( str, "\n", 34 )
::aPersonal = 0 + strextract( str, "\n", 35 )
::aLiability = 0 + strextract( str, "\n", 36 )
::sCamera = 0 + strextract( str, "\n", 37 )
::sArts = 0 + strextract( str, "\n", 38 )
::sArts2 = 0 + strextract( str, "\n", 39 )
::sGolf = 0 + strextract( str, "\n", 40 )
::sGuns = 0 + strextract( str, "\n", 41 )
::sMusic = 0 + strextract( str, "\n", 42 )
::sPC = 0 + strextract( str, "\n", 43 )
::sSilver = 0 + strextract( str, "\n", 44 )
::sJewel = 0 + strextract( str, "\n", 45 )
::sFurs = 0 + strextract( str, "\n", 46 )
::sStamps = 0 + strextract( str, "\n", 47 )
::sCoins = 0 + strextract( str, "\n", 48 )
::sAntiques = 0 + strextract( str, "\n", 49 )
::sOther = 0 + strextract( str, "\n", 50 )
::p1 = 0 + strextract( str, "\n", 51 )
::p2 = 0 + strextract( str, "\n", 52 )
::p3 = 0 + strextract( str, "\n", 53 )
::p4 = 0 + strextract( str, "\n", 54 )
::BrokerFee = 0 + strextract( str, "\n", 55 )
::from = strextract( str, "\n", 56 )
::to = strextract( str, "\n", 57 )
::PriorCarrier = strextract( str, "\n", 58 )
::address = strextract( str, "\n", 59 )
::city = strextract( str, "\n", 60 )
::state = strextract( str, "\n", 61 )
::phone = strextract( str, "\n", 62 )
::dob = strextract( str, "\n", 63 )
::sName = strextract( str, "\n", 64 )
::sAge = 0 + strextract( str, "\n", 65 )
::sDob = strextract( str, "\n", 66 )
::aName = strextract( str, "\n", 67 )
::aAddress = strextract( str, "\n", 68 )
::aCity = strextract( str, "\n", 69 )
::aState = strextract( str, "\n", 70 )
::aZip = strextract( str, "\n", 71 )
::mAddress = strextract( str, "\n", 72 )
::mCity = strextract( str, "\n", 73 )
::mState = strextract( str, "\n", 74 )
::mZip = strextract( str, "\n", 75 )
::mCounty = strextract( str, "\n", 76 )
::mPhone = strextract( str, "\n", 77 )
::a2Name = strextract( str, "\n", 78 )
::a2Address = strextract( str, "\n", 79 )
::a2City = strextract( str, "\n", 80 )
::a2State = strextract( str, "\n", 81 )
::a2Zip = strextract( str, "\n", 82 )
::a2County = strextract( str, "\n", 83 )
::a2Phone = strextract( str, "\n", 84 )
::lName = strextract( str, "\n", 85 )
::lAddress = strextract( str, "\n", 86 )
::lCity = strextract( str, "\n", 87 )
::lState = strextract( str, "\n", 88 )
::lZip = strextract( str, "\n", 89 )
::lCounty = strextract( str, "\n", 90 )
::lPhone = strextract( str, "\n", 91 )
::lLoan = strextract( str, "\n", 92 )
::r1 = 0 + strextract( str, "\n", 93 )
::r2 = 0 + strextract( str, "\n", 94 )
::r3 = 0 + strextract( str, "\n", 95 )
::r4 = 0 + strextract( str, "\n", 96 )
::r5 = 0 + strextract( str, "\n", 97 )
::r6 = 0 + strextract( str, "\n", 98 )
::r7 = 0 + strextract( str, "\n", 99 )
::r8 = 0 + strextract( str, "\n", 100 )
::r9 = 0 + strextract( str, "\n", 101 )
::r10 = 0 + strextract( str, "\n", 102 )
::u1 = 0 + strextract( str, "\n", 103 )
::u2 = 0 + strextract( str, "\n", 104 )
::tenant = strextract( str, "\n", 105 )
::LandIsOwned = 0 + strextract( str, "\n", 106 )
::ParkName = strextract( str, "\n", 107 )
::space = strextract( str, "\n", 108 )
::FireDept = strextract( str, "\n", 109 )
::HydrantDistance = strextract( str, "\n", 110 )
::FireDistance = strextract( str, "\n", 111 )
::sn = strextract( str, "\n", 112 )
::bracing = 0 + strextract( str, "\n", 113 )
::skirted = 0 + strextract( str, "\n", 114 )
::heat = strextract( str, "\n", 115 )
::AuxHeat = strextract( str, "\n", 116 )
::aPorch = 0 + strextract( str, "\n", 117 )
::aDeck = 0 + strextract( str, "\n", 118 )
::aOther = 0 + strextract( str, "\n", 119 )
::aDesc = strextract( str, "\n", 120 )
::aUsage = strextract( str, "\n", 121 )
::aWidth = 0 + strextract( str, "\n", 122 )
::aLength = 0 + strextract( str, "\n", 123 )
::aYearBuilt = 0 + strextract( str, "\n", 124 )
::aBuilt = 0 + strextract( str, "\n", 125 )
::aAuxHeat = strextract( str, "\n", 126 )
::oDesc = strextract( str, "\n", 127 )
::oUsage = strextract( str, "\n", 128 )
::oWidth = 0 + strextract( str, "\n", 129 )
::oLength = 0 + strextract( str, "\n", 130 )
::oYearBuilt = 0 + strextract( str, "\n", 131 )
::oBuilt = 0 + strextract( str, "\n", 132 )
::oAuxHeat = strextract( str, "\n", 133 )
::ProtectionClass = 0 + strextract( str, "\n", 134 )
::IsFlood = 0 + strextract( str, "\n", 135 )
::PEGuarantee = 0 + strextract( str, "\n", 136 )
return( 1 )
END
METHOD UpdateFromForm( session, page, _CreateFlag )
local CreateFlag, s
CreateFlag = ( type( _CreateFlag ) != "N" ) ? 0 : _CreateFlag
switch ( page )
case 1
if ( CreateFlag )
::name = session.var( "name" )
::age = 0 + session.var( "age" )
::county = session.var( "county" )
::zip = session.var( "zip" )
end
::deductible = 0 + session.var( "deductible" )
::claims = 0 + session.var( "claims" )
::LienFree = cbIsSelected( session.var( "LienFree" ) )
::YearBuilt = 0 + session.var( "YearBuilt" )
::InPark = cbIsSelected( session.var( "InPark" ) )
::TtlSpaces = 0 + session.var( "TtlSpaces" )
::width = 0 + session.var( "width" )
::length = 0 + session.var( "length" )
::manufacturer = session.var( "manu" )
::IsPrimary = cbIsSelected( session.var( "IsPrimary" ) )
::IsSeasonal = cbIsSelected( session.var( "IsSeasonal" ) )
// ::IsRental = cbIsSelected( session.var( "IsRental" ) )
// ::IsTenant = cbIsSelected( session.var( "IsTenant" ) )
::IsFlood = cbIsSelected( session.var( "IsFlood" ) )
::PEGuarantee = cbIsSelected( session.var( "PEGuarantee" ) )
::oQuake = cbIsSelected( session.var( "oQuake" ) )
::oNatural = cbIsSelected( session.var( "oNatural" ) )
::oSecured = cbIsSelected( session.var( "oSecured" ) )
::oLiability = cbIsSelected( session.var( "oLiability" ) )
::oGolfCart = cbIsSelected( session.var( "oGolfCart" ) )
::oWoodStove = cbIsSelected( session.var( "oWoodStove" ) )
::oWorkersComp = cbIsSelected( session.var( "oWorkersComp" ) )
::oLoss = cbIsSelected( session.var( "oLoss" ) )
::oMedical = cbIsSelected( session.var( "oMedical" ) )
::oSewer = cbIsSelected( session.var( "oSewer" ) )
::oFlood = cbIsSelected( session.var( "oFlood" ) )
::oWind = cbIsSelected( session.var( "oWind" ) )
::oAnimal = cbIsSelected( session.var( "oAnimal" ) )
::oLienFree = cbIsSelected( session.var( "oLienFree" ) )
s = session.var( "ParkName" )
if ( s != "--- NOT LISTED ---" )
::ParkName = s
end
::mhValue = 0 + session.var( "mhValue" )
::grc = cbIsSelected( session.var( "grc" ) )
::aStructValue = 0 + session.var( "aStructValue" )
::aUnStructValue = 0 + session.var( "aUnStructValue" )
if ( ::IsRental )
::tenant = session.var( "tenant" )
end
if ( ::IsTenant )
::aPersonal = 0 + session.var( "aPersonal" )
::aLiability = 0 + session.var( "aLiability" )
end
break
case 2
::aAntenna = 0 + session.var( "aAntenna" )
::aPersonal = 0 + session.var( "aPersonal" )
::aLiability = 0 + session.var( "aLiability" )
::sCamera = 0 + session.var( "sCamera" )
::sArts = 0 + session.var( "sArts" )
::sArts2 = 0 + session.var( "sArts2" )
::sGolf = 0 + session.var( "sGolf" )
::sGuns = 0 + session.var( "sGuns" )
::sMusic = 0 + session.var( "sMusic" )
::sPC = 0 + session.var( "sPC" )
::sSilver = 0 + session.var( "sSilver" )
::sJewel = 0 + session.var( "sJewel" )
::sFurs = 0 + session.var( "sFurs" )
::sStamps = 0 + session.var( "sStamps" )
::sCoins = 0 + session.var( "sCoins" )
::sAntiques = 0 + session.var( "sAntiques" )
::sOther = 0 + session.var( "sOther" )
::p1 = cbIsSelected( session.var( "p1" ) )
::p2 = cbIsSelected( session.var( "p2" ) )
::p3 = cbIsSelected( session.var( "p3" ) )
::p4 = cbIsSelected( session.var( "p4" ) )
::BrokerFee = 0 + session.var( "BrokerFee" )
break
case 3
::from = session.var( "from" )
::to = session.var( "to" )
::PriorCarrier = session.var( "PriorCarrier" )
::address = session.var( "address" )
::city = session.var( "city" )
::state = session.var( "state" )
::phone = session.var( "phone" )
::dob = session.var( "dob" )
::sName = session.var( "sName" )
::sAge = 0 + session.var( "sAge" )
::sDob = session.var( "sDob" )
::aName = session.var( "aName" )
::aAddress = session.var( "aAddress" )
::aCity = session.var( "aCity" )
::aState = session.var( "aState" )
::aZip = session.var( "aZip" )
::mAddress = session.var( "mAddress" )
::mCity = session.var( "mCity" )
::mState = session.var( "mState" )
::mZip = session.var( "mZip" )
::mCounty = session.var( "mCounty" )
::mPhone = session.var( "mPhone" )
::a2Name = session.var( "a2Name" )
::a2Address = session.var( "a2Address" )
::a2City = session.var( "a2City" )
::a2State = session.var( "a2State" )
::a2Zip = session.var( "a2Zip" )
::a2County = session.var( "a2County" )
::a2Phone = session.var( "a2Phone" )
::lName = session.var( "lName" )
::lAddress = session.var( "lAddress" )
::lCity = session.var( "lCity" )
::lState = session.var( "lState" )
::lZip = session.var( "lZip" )
::lCounty = session.var( "lCounty" )
::lPhone = session.var( "lPhone" )
::lLoan = session.var( "lLoan" )
break
case 4
::r1 = cbIsSelected( session.var( "r1" ) )
::r2 = cbIsSelected( session.var( "r2" ) )
::r3 = cbIsSelected( session.var( "r3" ) )
::r4 = cbIsSelected( session.var( "r4" ) )
::r5 = cbIsSelected( session.var( "r5" ) )
::r6 = cbIsSelected( session.var( "r6" ) )
::r7 = cbIsSelected( session.var( "r7" ) )
::r8 = cbIsSelected( session.var( "r8" ) )
::r9 = cbIsSelected( session.var( "r9" ) )
::r10 = cbIsSelected( session.var( "r10" ) )
::u1 = cbIsSelected( session.var( "u1" ) )
::u2 = cbIsSelected( session.var( "u2" ) )
break
case 5
::LandIsOwned = cbIsSelected( session.var( "LandIsOwned" ) )
::ParkName = session.var( "ParkName" )
::space = session.var( "space" )
::ProtectionClass = 0 + session.var( "ProtectionClass" )
::FireDept = session.var( "FireDept" )
::HydrantDistance = session.var( "HydrantDistance" )
::FireDistance = session.var( "FireDistance" )
::sn = session.var( "sn" )
::bracing = cbIsSelected( session.var( "bracing" ) )
::skirted = cbIsSelected( session.var( "skirted" ) )
::heat = session.var( "heat" )
::AuxHeat = session.var( "AuxHeat" )
::aPorch = cbIsSelected( session.var( "aPorch" ) )
::aDeck = cbIsSelected( session.var( "aDeck" ) )
::aOther = cbIsSelected( session.var( "aOther" ) )
::aDesc = session.var( "aDesc" )
::aUsage = session.var( "aUsage" )
::aWidth = 0 + session.var( "aWidth" )
::aLength = 0 + session.var( "aLength" )
::aYearBuilt = 0 + session.var( "aYearBuilt" )
::aBuilt = cbIsSelected( session.var( "aBuilt" ) )
::aAuxHeat = session.var( "aAuxHeat" )
::oDesc = session.var( "oDesc" )
::oUsage = session.var( "oUsage" )
::oWidth = 0 + session.var( "oWidth" )
::oLength = 0 + session.var( "oLength" )
::oYearBuilt = 0 + session.var( "oYearBuilt" )
::oBuilt = cbIsSelected( session.var( "oBuilt" ) )
::oAuxHeat = session.var( "oAuxHeat" )
::TtlSpaces = 0 + session.var( "TtlSpaces" )
::aStructValue = 0 + session.var( "aStructValue" )
::aUnStructValue = 0 + session.var( "aUnStructValue" )
break
end
return( 1 )
END
METHOD init( )
::name = ""
::age = 0
::county = "Orange"
::zip = ""
::deductible = 250
::claims = 0
::LienFree = 0
::YearBuilt = 1998
::InPark = 1
::TtlSpaces = 1
::width = 24
::length = 60
::manufacturer = ""
::model = ""
::aStructValue = 0
::mhValue = 0
::grc = 1
::oQuake = 0
::oNatural = 0
::oSecured = 0
::oLiability = 0
::oGolfCart = 0
::oWoodStove = 0
::oWorkersComp = 0
::oLoss = 0
::oMedical = 0
::oSewer = 0
::oFlood = 0
::oWind = 0
::oAnimal = 0
::oLienFree = 0
::BrokerFee = 0
::aAntenna = 0
::aUnStructValue = 0
::aPersonal = 0
::aLiability = 0
::IsPrimary = 1
::IsSeasonal = 0
::IsRental = 0
::IsTenant = 0
::p1 = 0
::p2 = 0
::p3 = 0
::p4 = 0
::sCamera = 0
::sArts = 0
::sArts2 = 0
::sGolf = 0
::sGuns = 0
::sMusic = 0
::sPC = 0
::sSilver = 0
::sJewel = 0
::sFurs = 0
::sStamps = 0
::sCoins = 0
::sAntiques = 0
::sOther = 0
::address = ""
::city = ""
::state = "CA"
::phone = ""
::dob = ""
::sName = ""
::sAge = 0
::sDOB = ""
::aName = ""
::aAddress = ""
::aCity = ""
::aState = ""
::aZip = ""
::mAddress = ""
::mCity = ""
::mState = ""
::mZip = ""
::mCounty = ""
::mPhone = ""
::a2name = ""
::a2address = ""
::a2city = ""
::a2state = ""
::a2zip = ""
::a2county = ""
::a2phone = ""
::lname = ""
::laddress = ""
::lcity = ""
::lstate = ""
::lzip = ""
::lcounty = ""
::lphone = ""
::lloan = ""
::r1 = 0
::r2 = 0
::r3 = 0
::r4 = 0
::r5 = 0
::r6 = 0
::r7 = 0
::r8 = 0
::r9 = 0
::r10 = 0
::u1 = 0
::u2 = 0
::from = date( "MM/DD/YY" )
::to = dateAddYear( ::from )
::PriorCarrier = ""
::tenant = ""
::LandIsOwned = 0
::ParkName = ""
::space = ""
::FireDept = ""
::HydrantDistance = 0
::FireDistance = 0
::sn = ""
::bracing = 0
::skirted = 0
::heat = "Gas"
::AuxHeat = "None"
::aPorch = 0
::aDeck = 0
::aOther = 0
::aDesc = ""
::aUsage = "Residential"
::aWidth = 0
::aLength = 0
::aYearBuilt = 0
::aBuilt = 1
::aAuxHeat = "None"
::oDesc = ""
::oUsage = "Residential"
::oWidth = 0
::oLength = 0
::oYearBuilt = 0
::oBuilt = 1
::oAuxHeat = "None"
::ProtectionClass = 0
::IsFlood = 0
::OtherP = 0
::PEGuarantee = 0
return( 1 )
END
METHOD ValidateData( )
local s
s = ""
if ( strempty( ::name ) )
s += "ERROR - Must specify a NAME!<br>"
end
if ( ::Age < 18 )
s += "ERROR - Specified AGE must be at least 18 years old!<br>"
end
if ( strempty( ::county ) )
s += "ERROR - Must specify a COUNTY!<br>"
end
if ( strempty( ::zip ) )
s += "ERROR - Must specify a ZIP code!<br>"
end
if ( ::YearBuilt < 1920 )
s += "ERROR - Mobile Home YEAR BUILT too old to rate!<br>"
end
if ( ::width < 1 )
s += "ERROR - Must specify a WIDTH greater than 0!<br>"
end
if ( ::length < 1 )
s += "ERROR - Must specify a LENGTH greater than 0!<br>"
end
if ( ::InPark )
if ( ::ttlSpaces < 1 )
s += "ERROR - Too few SPACES specified!<br>"
end
end
if ( ! ::grc )
if ( ! ( ::IsTenant || ::IsRental ) )
if ( ::mhValue < 1 )
s += "ERROR - Must specify a COVERAGE amount!<br>"
end
end
end
::errmsg = s
return( strempty( s ) ? 1 : 0 )
END
METHOD ListManufacturers( vname )
local s, datafile, akey, i, j, keys, key, mname
akey = { "Manufacturers", "Manufacturers2", "Manufacturers3" }
mname = upper( ::manufacturer )
datafile = fileFullPath( ::filename ) + '\data.dat'
s = "<select name=\"" + vname + "\">\r\n"
for ( i=1; i<=len( akey ); i++ )
keys = iniGetKeys( datafile, akey[i] )
j=1
while ( 1 )
key = strextract( keys, ";", j++ )
if ( strempty( key ) )
break
end
if ( upper( key ) == mname )
s += "<option selected>" + key + "\r\n"
else
s += "<option>" + key + "\r\n"
end
end
end
s += "</select>\r\n"
return( s )
END
METHOD ListDeductibles( vname )
local data, s, i
data = { 100, 250, 500 }
s = "<select name=\"" + vname + "\">\r\n"
for ( i=1; i<=len(data); i++ )
if ( data[i] == ::deductible )
s += " <option selected>" + data[i] + "\r\n"
else
s += " <option>" + data[i] + "\r\n"
end
end
s += "</select>\r\n"
return( s )
END
METHOD ListPrimaryHeatSource( vname )
local data, s, i
data = { "Gas", "Electric", "Woodburning" }
s = "<select name=\"" + vname + "\">\r\n"
for ( i=1; i<=len(data); i++ )
if ( data[i] == ::heat )
s += " <option selected>" + data[i] + "\r\n"
else
s += " <option>" + data[i] + "\r\n"
end
end
s += "</select>\r\n"
return( s )
END
METHOD ListUsages( vname, curuse )
local data, s, i
data = { "Residential", "Commercial" }
s = "<select name=\"" + vname + "\">\r\n"
for ( i=1; i<=len(data); i++ )
if ( data[i] == curuse )
s += " <option selected>" + data[i] + "\r\n"
else
s += " <option>" + data[i] + "\r\n"
end
end
s += "</select>\r\n"
return( s )
END
METHOD ListAuxHeatSource( vname, var )
local data, s, i
data = { "None", "Factory Installed", "Commercially Installed", "Self-Installed" }
s = "<select name=\"" + vname + "\">\r\n"
for ( i=1; i<=len(data); i++ )
if ( data[i] == var )
s += " <option selected>" + data[i] + "\r\n"
else
s += " <option>" + data[i] + "\r\n"
end
end
s += "</select>\r\n"
return( s )
END
METHOD ListCounties( vname, curcounty )
local data, s, i
data = { "Alameda", "Alpine", "Amador", "Butte", "Calaveras", "Colusa",
"Contra", "Costa", "Del Norte", "El Dorado", "Fresno", "Glenn",
"Humboldt", "Imperial", "Inyo", "Kern", "Kings", "Lake", "Lassen",
"Los Angeles", "Madera", "Marin", "Mariposa", "Mendocino", "Merced",
"Modoc", "Mono", "Monterey", "Napa", "Nevada", "Orange", "Placer",
"Plumas", "Riverside", "Sacramento", "San Benito", "San Bernardino",
"San Diego", "San Francisco", "San Joaquin", "San Luis Obispo",
"San Mateo", "Santa Barbara", "Santa Clara", "Santa Cruz", "Shasta",
"Sierra", "Siskiyou", "Solano", "Sonoma", "Stanislaus", "Sutter",
"Tehama", "Trinity", "Tulare", "Tuolumne", "Ventura", "Yolo",
"Yuba"
}
s = "<select name=\"" + vname + "\">\r\n"
for ( i=1; i<=len(data); i++ )
if ( data[i] == curcounty )
s += " <option selected>" + data[i] + "\r\n"
else
s += " <option>" + data[i] + "\r\n"
end
end
s += "</select>\r\n"
return( s )
END
METHOD ListYearBuilt( vname, yr )
local data, s, i
data = { 1920,1921,1922,1923,1924,1925,1926,1927,1928,1929,1930,1931,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1955,1956,1957,1958,1959,1960,1961,1962,1963,1964,1965,1966,1967,1968,1969,1970,1971,1972,1973,1974,1975,1976,1977,1978,1979,1980,1981,1982,1983,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001 }
s = "<select name=\"" + vname + "\">\r\n"
for ( i=1; i<=len(data); i++ )
if ( data[i] == yr )
s += " <option selected>" + data[i] + "\r\n"
else
s += " <option>" + data[i] + "\r\n"
end
end
s += "</select>\r\n"
return( s )
END
END