diff --git a/src/lib/ae_events_functions.ts b/src/lib/ae_events_functions.ts index 90e24ea3..750268db 100644 --- a/src/lib/ae_events_functions.ts +++ b/src/lib/ae_events_functions.ts @@ -399,6 +399,50 @@ async function handle_load_ae_obj_li__exhibit_tracking({api_cfg, exhibit_id, par } +// Updated 2024-03-22 +async function handle_create_ae_obj__exhibit_tracking({api_cfg, exhibit_id, event_badge_id, external_person_id, params={}, try_cache=false}) { + console.log(`*** handle_create_ae_obj__exhibit_tracking() *** exhibit_id=${exhibit_id}, event_badge_id=${event_badge_id}`); + + let params_json: key_val = {}; + + // $events_sess.exhibits.status_create__exhibit_tracking = 'loading'; + ae_promises.create__event_exhibit_tracking = await api.create_ae_obj_crud({ + api_cfg: api_cfg, + obj_type: 'event_exhibit_tracking', + fields: { + event_exhibit_id_random: exhibit_id, + event_badge_id_random: event_badge_id, + external_person_id: external_person_id, + }, + key: api_cfg.api_crud_super_key, + params: params, + return_obj: true, + log_lvl: 1 + }) + + .then(function (exhibit_tracking_obj_create_result) { + // console.log('Exhibit tracking create:', exhibit_tracking_obj_create_result); + if (exhibit_tracking_obj_create_result) { + // $slct.exhibit_tracking_obj = exhibit_tracking_obj_create_result; + handle_db_save_ae_obj_li__exhibitor_tracking({obj_type: 'event_exhibit_tracking', obj_li: [exhibit_tracking_obj_create_result]}); + return exhibit_tracking_obj_create_result; + } else { + // $slct.exhibit_tracking_obj = []; + return null; + } + }) + .catch(function (error) { + console.log('No results returned or failed.', error); + }) + .finally(function () { + // console.log('Exhibit tracking create:', exhibit_tracking_obj_create_result); + // return exhibit_tracking_obj_create_result; + }); + + console.log('ae_promises.create__event_exhibit_tracking:', ae_promises.create__event_exhibit_tracking); + return ae_promises.create__event_exhibit_tracking; +} + // This function will loop through the badge_obj_li and save each one to the DB. function handle_db_save_ae_obj_li__badge({obj_type, obj_li}) { @@ -550,6 +594,8 @@ function handle_db_save_ae_obj_li__exhibitor_tracking({obj_type, obj_li}) { event_badge_id_random: obj.event_badge_id_random, event_person_id_random: obj.event_person_id_random, + external_person_id: obj.external_person_id, + exhibitor_notes: obj.exhibitor_notes, responses_json: obj.responses_json, @@ -562,10 +608,21 @@ function handle_db_save_ae_obj_li__exhibitor_tracking({obj_type, obj_li}) { event_badge_family_name: obj.event_badge_family_name, event_badge_designations: obj.event_badge_designations, event_badge_full_name: obj.event_badge_full_name, + event_badge_full_name_override: obj.event_badge_full_name_override, + + event_badge_professional_title: obj.event_badge_professional_title, + event_badge_professional_title_override: obj.event_badge_professional_title_override, event_badge_affiliations: obj.event_badge_affiliations, + event_badge_affiliations_override: obj.event_badge_affiliations_override, + event_badge_email: obj.event_badge_email, + event_badge_email_override: obj.event_badge_email_override, + event_badge_location: obj.event_badge_location, + event_badge_location_override: obj.event_badge_location_override, + + event_badge_country: obj.event_badge_country, enable: obj.enable, hide: obj.hide, @@ -599,5 +656,6 @@ let export_obj = { handle_load_ae_obj_id__exhibit: handle_load_ae_obj_id__exhibit, handle_load_ae_obj_li__exhibit: handle_load_ae_obj_li__exhibit, handle_load_ae_obj_li__exhibit_tracking: handle_load_ae_obj_li__exhibit_tracking, + handle_create_ae_obj__exhibit_tracking: handle_create_ae_obj__exhibit_tracking, }; export let events_func = export_obj; diff --git a/src/lib/ae_events_stores.ts b/src/lib/ae_events_stores.ts index 4816ffa0..ec846626 100644 --- a/src/lib/ae_events_stores.ts +++ b/src/lib/ae_events_stores.ts @@ -125,6 +125,8 @@ let events_session_data_struct: key_val = { show_form__license: false, show_form__search: false, show_form__scan: false, + show_form__view_lead: false, // Set to event_exhibit_tracking_id + // show_form__view_lead: [], show_confirm__add_lead: [], diff --git a/src/lib/db_events.ts b/src/lib/db_events.ts index c2d60bfd..6fe658ca 100644 --- a/src/lib/db_events.ts +++ b/src/lib/db_events.ts @@ -100,6 +100,8 @@ export interface Exhibit_tracking { event_badge_id_random: string; event_person_id_random: null|string; // Is this needed? + external_person_id: null|string; // This is an email address + exhibitor_notes: null|string; responses_json: null|string; @@ -112,12 +114,21 @@ export interface Exhibit_tracking { event_badge_family_name: null|string; event_badge_designations: null|string; event_badge_full_name: string; + event_badge_full_name_override: null|string; + + event_badge_professional_title: null|string; + event_badge_professional_title_override: null|string; event_badge_affiliations: null|string; + event_badge_affiliations_override: null|string; event_badge_email: null|string; + event_badge_email_override: null|string; event_badge_location: null|string; + event_badge_location_override: null|string; + + event_badge_country: null|string; enable: null|boolean; hide: null|boolean; @@ -145,7 +156,10 @@ export class MySubClassedDexie extends Dexie { exhibits: ` id_random, event_exhibit_id_random, code, name, description, staff_passcode, data_json, license_max, license_li_json, cfg_json, enable, hide, priority, sort, group, notes, created_on, updated_on, [priority+name]`, exhibit_tracking: ` - id_random, event_exhibit_tracking_id_random, event_exhibit_id_random, event_badge_id_random, event_person_id_random, exhibitor_notes, responses_json, data_json, event_badge_full_name, event_badge_email, enable, hide, priority, sort, group, notes, created_on, updated_on` + id_random, event_exhibit_tracking_id_random, event_exhibit_id_random, event_badge_id_random, event_person_id_random, + exhibitor_notes, responses_json, data_json, + event_badge_full_name, event_badge_email, + enable, hide, priority, sort, group, notes, created_on, updated_on` }); } } diff --git a/src/routes/events_leads/exhibit/[slug]/leads_add_scan.svelte b/src/routes/events_leads/exhibit/[slug]/leads_add_scan.svelte index 94934e96..d34d4dec 100644 --- a/src/routes/events_leads/exhibit/[slug]/leads_add_scan.svelte +++ b/src/routes/events_leads/exhibit/[slug]/leads_add_scan.svelte @@ -1,6 +1,5 @@ @@ -170,6 +188,10 @@ let event_exhibit_tracking_obj_li = liveQuery(
+
+ + + +
+ +
+ + +{#if $event_exhibit_tracking_obj?.event_badge_professional_title || $event_exhibit_tracking_obj?.event_badge_professional_title_override} +
+ Title/Degrees/Credentials: + + {#if $event_exhibit_tracking_obj?.event_badge_professional_title_override} + {@html $event_exhibit_tracking_obj?.event_badge_professional_title_override} + {:else} + {@html $event_exhibit_tracking_obj?.event_badge_professional_title} + {/if} + +
+{/if} + +{#if $event_exhibit_tracking_obj?.event_badge_affiliations || $event_exhibit_tracking_obj?.event_badge_affiliations_override} +
+ Affiliations: + + {#if $event_exhibit_tracking_obj?.event_badge_affiliations_override} + {$event_exhibit_tracking_obj?.event_badge_affiliations_override} + {:else} + {$event_exhibit_tracking_obj?.event_badge_affiliations} + {/if} + +
+{/if} + +{#if $event_exhibit_tracking_obj?.event_badge_country} +
+ Location: + + + + {$event_exhibit_tracking_obj?.event_badge_country} + +
+{/if} +
+ +
+ + + + + + +
+ +
+ + +
+
+ + +
+ +
+ + + {#if $event_exhibit_obj?.leads_custom_questions_json} + + + + {#if $event_exhibit_obj?.leads_custom_questions_json.length > 0} + +
+
+ + + {#each $event_exhibit_obj?.leads_custom_questions_json as leads_custom_question, question_index} +
+ {leads_custom_question.question} + {#if (leads_custom_question.type == 'text')} + + {:else if (leads_custom_question.type == 'option' && leads_custom_question.option_li)} + + {:else} + Responses not yet configured + {/if} + + +
+ {/each} +
+
+ {/if} + {/if} + + +
+
+ This is the email address of the person that originally scanned the badge. This is used to link the lead to the person that scanned the badge. This is useful for tracking who scanned the badge and who the lead is associated with. +
+ +
+ +
+ +
+ + +
+ + +
+ + + + + + + +