Listing 1

<cfscript>
 variables.instance.AddressID = 0;
 variables.instance.Address1 = "";
 variables.instance.Address2 = "";
 variables.instance.City = "";
 variables.instance.StateID = 0;
 variables.instance.State = "";
 variables.instance.StateAbbreviation = "";
 variables.instance.Zip = "";
 variables.instance.Phone = "";
 variables.instance.Fax = "";
 variables.instance.DateCreated = "";
 variables.instance.TimeCreated = "";
 variables.instance.DateModified = "";
 variables.instance.TimeModified = "";
</cfscript>

Listing 2

<cffunction name="GetAddress1" access="public" returntype="string" output="No">
  <cfreturn variables.instance.Address1>
</cffunction>

Listing 3

<cffunction name="SetAddress1" access="public" returntype="boolean" output="No">
 <cfargument name="data" required="Yes" type="string">
 <cfset variables.instance.Address1 = arguments.data>
 <cfreturn true>
</cffunction>

Listing 4

<cffunction name="SetStateID" access="public" returntype="boolean" output="No">
 <cfargument name="data" required="Yes" type="string">
 <cfargument name="DSN" required="yes" type="string">
 <cfset var getState = "">

 <cfquery datasource="#arguments.dsn#" name="GetState">
  select States.State, States.Abbreviation
  from States
  where States.StateID = #arguments.data#
 </cfquery>

 <cfset variables.instance.StateID = arguments.data>
 <cfset variables.instance.State = getState.State>
 <cfset variables.instance.StateAbbreviation = GetState.Abbreviation>
 <cfreturn true>
</cffunction>

Listing 5

<cffunction name="Init" access="public" returntype="numeric" output="No">
 <cfargument name="AddressID" required="yes" type="numeric">
 <cfargument name="DSN" required="yes" type="string">
 <cfset var GetAddress = "">

 <cfquery datasource="#arguments.dsn#" name="GetAddress">
  select Addresses.*, states.State, States.Abbreviation
  from Addresses, States
  where Addresses.AddressID = #arguments.AddressID# and
     States.StateID = Addresses.StateID</cfquery>
 
 <cfscript>
  variables.instance.AddressID = GetAddress.AddressID;
  variables.instance.Address1 = GetAddress.Address1;
  variables.instance.Address2 = GetAddress.Address2;
  variables.instance.City = GetAddress.City;
  variables.instance.StateID = GetAddress.StateID;
  variables.instance.State = GetAddress.State;
  variables.instance.StateAbbreviation = GetAddress.Abbreviation;
  variables.instance.Zip = GetAddress.Zip;
  variables.instance.Phone = GetAddress.Phone;
  variables.instance.Fax = GetAddress.Fax;
  variables.instance.DateCreated = GetAddress.DateCreated;
  variables.instance.TimeCreated = GetAddress.TimeCreated;
  variables.instance.DateModified = GetAddress.DateModified;
  variables.instance.TimeModified = GetAddress.TimeModified;
 </cfscript>
 
 <cfreturn true>
 
</cffunction>

Listing 6

<cffunction name="CommitAddress" access="public" returntype="Boolean">
 <cfargument name="DSN" required="yes" type="string">
 <cfset var CreateAddress = "">
 <cfif variables.instance.AddressID GT 0>
  <cfquery datasource="#arguments.dsn#" name="CreateAddress">
   update Addresses
   set Address1 = '#variables.instance.Address1#',
    Address2 = '#variables.instance.Address2#',
    City = '#variables.instance.City#',
    StateID = '#variables.instance.StateID#',
    Zip  = '#variables.instance.Zip#',
    Phone = '#variables.instance.Phone#',
    Fax = '#variables.instance.Fax#',

    DateModified = #createodbcdate(now())#,
    TimeModified = #CreateODBCTime(now())#
   where AddressID = #variables.instance.AddressID#
  </cfquery>

 <cfelse>
  <cfquery datasource="#arguments.dsn#" name="CreateAddress">

   SET NOCOUNT ON
   Insert Into Addresses (Address1, Address2, City, StateID,
    Zip, Phone, Fax,
    DateCreated, TimeCreated,
    DateModified, TimeModified)
   values(
    '#variables.instance.Address1#',  #variables.instance.Address2#',
    '#variables.instance.City#',
    '#variables.instance.StateID#',
    '#variables.instance.Zip#', '#variables.instance.Phone#', '#variables.instance.Fax#',
    #createodbcdate(now())#, #CreateODBCTime(now())#,
    #createodbcdate(now())#, #CreateODBCTime(now())#
    )
    Select @@identity as AddressID
    SET NOCOUNT OFF
  </cfquery>
  
 <cfset variables.instance.AddressID = #CreateAddress.AddressID#>
 </cfif>
 <cfreturn true>

</cffunction>

Listing 7

<cffunction name="GetWorkAddress" access="public" returntype="address"
 output="No">
 <cfreturn variables.instance.WorkAddress>
</cffunction>

<cffunction name="SetWorkAddress" access="public" returntype="boolean"
 output="No">
 <cfargument name="data" required="Yes" type="address">
 <cfset variables.instance.WorkAddress = arguments.data>
 <cfreturn true>
</cffunction>