Skip to content

Instantly share code, notes, and snippets.

@sweded
Last active December 22, 2015 22:29
Show Gist options
  • Select an option

  • Save sweded/6540230 to your computer and use it in GitHub Desktop.

Select an option

Save sweded/6540230 to your computer and use it in GitHub Desktop.
Processes FELI event registration
<cfscript>
/**
* @file /inbound/feli_registration.cfm
* @author Gernot Bartels 2013
* @description Processes FELI event registration
* @usage FELI / CRM:Registrations
* @created 2010-02-11
* @modified 2013-08-14
*/
include "../config/crm_app.cfm";
qbTableId = crm_registrations;
qbRecordFid = crm_registrations_response_fid; // Quickbase field ID for Form Response ID
if (IsDefined("FORM.version")) {
recordState = "new"
}
if (IsDefined("FORM.payment_name")) {
recordState = "update"
}
switch(recordState) {
case "new": // Start create
birthDate = DateFormat(FORM.birth_date, "mm-dd-yyyy");
// Checkboxes
param name="vegetarian" default="No";
if (Find("vegetarian", formDataString) != 0) {
vegetarian = "Yes";
}
param name="non_dairy" default="No";
if (Find("non_dairy", formDataString) != 0) {
non_dairy = "Yes";
}
param name="diet_other" default="No";
if (Find("diet_other", formDataString) != 0) {
diet_other = "Yes";
}
form_data = structNew();
form_data._fid_24 = "Participant";
form_data._fid_89 = "In Person";
form_data._fid_107 = FORM.response_id;
form_data._fid_68 = FORM.feli_id;
form_data._fid_106 = FORM.version;
form_data._fid_83 = FORM.confirmation;
form_data._fid_7 = FORM.first_name;
form_data._fid_8 = FORM.last_name;
form_data._fid_110 = birthDate;
form_data._fid_109 = FORM.gender;
form_data._fid_9 = FORM.sponsor;
form_data._fid_111 = FORM.years_at_sponsor;
form_data._fid_112 = FORM.employee_id;
form_data._fid_113 = FORM.four_digits;
form_data._fid_13 = FORM.home_phone;
form_data._fid_60 = FORM.mobile_phone;
form_data._fid_12 = FORM.work_phone;
form_data._fid_14 = FORM.email;
form_data._fid_16 = FORM.preferred_contact;
if (IsDefined(FORM.cc_email)) {
form_data._fid_142 = FORM.cc_email;
}
form_data._fid_123 = vegetarian;
form_data._fid_124 = non_dairy;
form_data._fid_125 = diet_other;
form_data._fid_126 = FORM.diet_text;
form_data._fid_33 = FORM.essay;
form_data._fid_17 = FORM.master_teacher;
form_data._fid_10 = FORM.district_name;
form_data._fid_114 = FORM.district_street;
form_data._fid_115 = FORM.district_suite;
form_data._fid_116 = FORM.district_city;
form_data._fid_117 = FORM.district_state;
form_data._fid_118 = FORM.district_zip;
form_data._fid_28 = FORM.semester_weeks;
form_data._fid_29 = FORM.initiatives;
// Build URL string from form_data struct
savecontent variable="urlParamString" {
for(fid in form_data) {
urlParamString = writeOutput("#fid#=#form_data[fid]#&");
}
}
query_data = structNew();
query_data.qbTableId = qbTableId;
query_data.qb_appToken = qb_appToken;
query_data.uField = qbRecordFid;
query_data.uValue = FORM.response_id;
query_data.uList = "#qb_recordFid#.#qbRecordFid#"; // returned columns
newRegistration = new components.qbControl().controller( urlParamString, query_data );
break; // End create
case "update": // Start update
// Checkboxes
param name="agree_ip" default="No";
if (Find("agree_ip[0]", formDataString) != 0) {
agree_ip = "Yes";
}
param name="agree" default="No";
if (Find("agree[0]", formDataString) != 0) {
agree = "Yes";
}
param name="consent" default="No";
if (Find("consent", formDataString) != 0) {
consent = "Yes";
}
form_data = structNew();
form_data._fid_107 = FORM.response_id;
form_data._fid_85 = FORM.payment_name;
form_data._fid_86 = FORM.payment_org;
form_data._fid_87 = FORM.payment_phone;
form_data._fid_88 = FORM.payment_email;
form_data._fid_22 = FORM.ethnicity;
form_data._fid_25 = FORM.job_title;
form_data._fid_127 = FORM.department;
form_data._fid_26 = FORM.years_teaching;
form_data._fid_20 = FORM.faculty_type;
form_data._fid_21 = FORM.degree;
form_data._fid_23 = FORM.risk_level;
form_data._fid_128 = agree_ip;
form_data._fid_61 = agree;
form_data._fid_130 = consent;
// Build URL string from form_data struct
savecontent variable="urlParamString" {
for(fid in form_data) {
urlParamString = writeOutput("#fid#=#form_data[fid]#&");
}
}
query_data = structNew();
query_data.qbTableId = qbTableId;
query_data.qb_appToken = qb_appToken;
query_data.uField = qbRecordFid;
query_data.uValue = FORM.response_id;
query_data.uList = "#qb_recordFid#.#qbRecordFid#"; // returned columns
updateRegistration = new components.qbControl().controller( urlParamString, query_data );
break; // End update
default:
writeOutput("Wrong place, wrong time"); // Script accessed from somewhere other than registration form.
break;
}
</cfscript>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment