-- +goose Up -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_containerrelate( p_objectid bigint, p_organization_id INTEGER, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_inspsampleid uuid, p_mosquitoinspid uuid, p_treatmentid uuid, p_containertype varchar, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.containerrelate lv WHERE lv.globalid = p_globalid AND lv.organization_id = p_organization_id AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.inspsampleid IS NOT DISTINCT FROM p_inspsampleid AND lv.mosquitoinspid IS NOT DISTINCT FROM p_mosquitoinspid AND lv.treatmentid IS NOT DISTINCT FROM p_treatmentid AND lv.containertype IS NOT DISTINCT FROM p_containertype AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.containerrelate WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.containerrelate WHERE globalid = p_globalid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.containerrelate ( objectid, organization_id, globalid, created_user, created_date, last_edited_user, last_edited_date, inspsampleid, mosquitoinspid, treatmentid, containertype, creationdate, creator, editdate, editor, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_inspsampleid, p_mosquitoinspid, p_treatmentid, p_containertype, p_creationdate, p_creator, p_editdate, p_editor, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_fieldscoutinglog( p_objectid bigint, p_organization_id INTEGER, p_status smallint, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.fieldscoutinglog lv WHERE lv.globalid = p_globalid AND lv.organization_id = p_organization_id AND lv.status IS NOT DISTINCT FROM p_status AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.fieldscoutinglog WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.fieldscoutinglog WHERE globalid = p_globalid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.fieldscoutinglog ( objectid, organization_id, status, globalid, created_user, created_date, last_edited_user, last_edited_date, creationdate, creator, editdate, editor, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_status, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_creationdate, p_creator, p_editdate, p_editor, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_habitatrelate( p_objectid bigint, p_organization_id INTEGER, p_foreign_id uuid, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_habitattype varchar, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.habitatrelate lv WHERE lv.globalid = p_globalid AND lv.organization_id = p_organization_id AND lv.foreign_id IS NOT DISTINCT FROM p_foreign_id AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.habitattype IS NOT DISTINCT FROM p_habitattype AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.habitatrelate WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.habitatrelate WHERE globalid = p_globalid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.habitatrelate ( objectid, organization_id, foreign_id, globalid, created_user, created_date, last_edited_user, last_edited_date, habitattype, creationdate, creator, editdate, editor, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_foreign_id, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_habitattype, p_creationdate, p_creator, p_editdate, p_editor, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_inspectionsampledetail( p_objectid bigint, p_organization_id INTEGER, p_inspsample_id uuid, p_fieldspecies varchar, p_flarvcount smallint, p_fpupcount smallint, p_feggcount smallint, p_flstages varchar, p_fdomstage varchar, p_fadultact varchar, p_labspecies varchar, p_llarvcount smallint, p_lpupcount smallint, p_leggcount smallint, p_ldomstage varchar, p_comments varchar, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_processed smallint, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.inspectionsampledetail lv WHERE lv.globalid = p_globalid AND lv.organization_id = p_organization_id AND lv.inspsample_id IS NOT DISTINCT FROM p_inspsample_id AND lv.fieldspecies IS NOT DISTINCT FROM p_fieldspecies AND lv.flarvcount IS NOT DISTINCT FROM p_flarvcount AND lv.fpupcount IS NOT DISTINCT FROM p_fpupcount AND lv.feggcount IS NOT DISTINCT FROM p_feggcount AND lv.flstages IS NOT DISTINCT FROM p_flstages AND lv.fdomstage IS NOT DISTINCT FROM p_fdomstage AND lv.fadultact IS NOT DISTINCT FROM p_fadultact AND lv.labspecies IS NOT DISTINCT FROM p_labspecies AND lv.llarvcount IS NOT DISTINCT FROM p_llarvcount AND lv.lpupcount IS NOT DISTINCT FROM p_lpupcount AND lv.leggcount IS NOT DISTINCT FROM p_leggcount AND lv.ldomstage IS NOT DISTINCT FROM p_ldomstage AND lv.comments IS NOT DISTINCT FROM p_comments AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.processed IS NOT DISTINCT FROM p_processed AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.inspectionsampledetail WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.inspectionsampledetail WHERE globalid = p_globalid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.inspectionsampledetail ( objectid, organization_id, inspsample_id, fieldspecies, flarvcount, fpupcount, feggcount, flstages, fdomstage, fadultact, labspecies, llarvcount, lpupcount, leggcount, ldomstage, comments, globalid, created_user, created_date, last_edited_user, last_edited_date, processed, creationdate, creator, editdate, editor, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_inspsample_id, p_fieldspecies, p_flarvcount, p_fpupcount, p_feggcount, p_flstages, p_fdomstage, p_fadultact, p_labspecies, p_llarvcount, p_lpupcount, p_leggcount, p_ldomstage, p_comments, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_processed, p_creationdate, p_creator, p_editdate, p_editor, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_inspectionsample( p_objectid bigint, p_organization_id INTEGER, p_insp_id uuid, p_sampleid varchar, p_processed smallint, p_idbytech varchar, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.inspectionsample lv WHERE lv.globalid = p_globalid AND lv.organization_id = p_organization_id AND lv.insp_id IS NOT DISTINCT FROM p_insp_id AND lv.sampleid IS NOT DISTINCT FROM p_sampleid AND lv.processed IS NOT DISTINCT FROM p_processed AND lv.idbytech IS NOT DISTINCT FROM p_idbytech AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.inspectionsample WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.inspectionsample WHERE globalid = p_globalid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.inspectionsample ( objectid, organization_id, insp_id, sampleid, processed, idbytech, globalid, created_user, created_date, last_edited_user, last_edited_date, creationdate, creator, editdate, editor, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_insp_id, p_sampleid, p_processed, p_idbytech, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_creationdate, p_creator, p_editdate, p_editor, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_linelocation( p_objectid bigint, p_organization_id INTEGER, p_name varchar, p_zone varchar, p_habitat varchar, p_priority varchar, p_usetype varchar, p_active smallint, p_description varchar, p_accessdesc varchar, p_comments varchar, p_symbology varchar, p_externalid varchar, p_acres double precision, p_nextactiondatescheduled timestamp, p_larvinspectinterval smallint, p_length_ft double precision, p_width_ft double precision, p_zone2 varchar, p_locationnumber integer, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_lastinspectdate timestamp, p_lastinspectbreeding varchar, p_lastinspectavglarvae double precision, p_lastinspectavgpupae double precision, p_lastinspectlstages varchar, p_lastinspectactiontaken varchar, p_lastinspectfieldspecies varchar, p_lasttreatdate timestamp, p_lasttreatproduct varchar, p_lasttreatqty double precision, p_lasttreatqtyunit varchar, p_hectares double precision, p_lastinspectactivity varchar, p_lasttreatactivity varchar, p_length_meters double precision, p_width_meters double precision, p_lastinspectconditions varchar, p_waterorigin varchar, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_jurisdiction varchar, p_shape__length double precision, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.linelocation lv WHERE lv.globalid = p_globalid AND lv.organization_id = p_organization_id AND lv.name IS NOT DISTINCT FROM p_name AND lv.zone IS NOT DISTINCT FROM p_zone AND lv.habitat IS NOT DISTINCT FROM p_habitat AND lv.priority IS NOT DISTINCT FROM p_priority AND lv.usetype IS NOT DISTINCT FROM p_usetype AND lv.active IS NOT DISTINCT FROM p_active AND lv.description IS NOT DISTINCT FROM p_description AND lv.accessdesc IS NOT DISTINCT FROM p_accessdesc AND lv.comments IS NOT DISTINCT FROM p_comments AND lv.symbology IS NOT DISTINCT FROM p_symbology AND lv.externalid IS NOT DISTINCT FROM p_externalid AND lv.acres IS NOT DISTINCT FROM p_acres AND lv.nextactiondatescheduled IS NOT DISTINCT FROM p_nextactiondatescheduled AND lv.larvinspectinterval IS NOT DISTINCT FROM p_larvinspectinterval AND lv.length_ft IS NOT DISTINCT FROM p_length_ft AND lv.width_ft IS NOT DISTINCT FROM p_width_ft AND lv.zone2 IS NOT DISTINCT FROM p_zone2 AND lv.locationnumber IS NOT DISTINCT FROM p_locationnumber AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.lastinspectdate IS NOT DISTINCT FROM p_lastinspectdate AND lv.lastinspectbreeding IS NOT DISTINCT FROM p_lastinspectbreeding AND lv.lastinspectavglarvae IS NOT DISTINCT FROM p_lastinspectavglarvae AND lv.lastinspectavgpupae IS NOT DISTINCT FROM p_lastinspectavgpupae AND lv.lastinspectlstages IS NOT DISTINCT FROM p_lastinspectlstages AND lv.lastinspectactiontaken IS NOT DISTINCT FROM p_lastinspectactiontaken AND lv.lastinspectfieldspecies IS NOT DISTINCT FROM p_lastinspectfieldspecies AND lv.lasttreatdate IS NOT DISTINCT FROM p_lasttreatdate AND lv.lasttreatproduct IS NOT DISTINCT FROM p_lasttreatproduct AND lv.lasttreatqty IS NOT DISTINCT FROM p_lasttreatqty AND lv.lasttreatqtyunit IS NOT DISTINCT FROM p_lasttreatqtyunit AND lv.hectares IS NOT DISTINCT FROM p_hectares AND lv.lastinspectactivity IS NOT DISTINCT FROM p_lastinspectactivity AND lv.lasttreatactivity IS NOT DISTINCT FROM p_lasttreatactivity AND lv.length_meters IS NOT DISTINCT FROM p_length_meters AND lv.width_meters IS NOT DISTINCT FROM p_width_meters AND lv.lastinspectconditions IS NOT DISTINCT FROM p_lastinspectconditions AND lv.waterorigin IS NOT DISTINCT FROM p_waterorigin AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.jurisdiction IS NOT DISTINCT FROM p_jurisdiction AND lv.shape__length IS NOT DISTINCT FROM p_shape__length AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.linelocation WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.linelocation WHERE globalid = p_globalid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.linelocation ( objectid, organization_id, name, zone, habitat, priority, usetype, active, description, accessdesc, comments, symbology, externalid, acres, nextactiondatescheduled, larvinspectinterval, length_ft, width_ft, zone2, locationnumber, globalid, created_user, created_date, last_edited_user, last_edited_date, lastinspectdate, lastinspectbreeding, lastinspectavglarvae, lastinspectavgpupae, lastinspectlstages, lastinspectactiontaken, lastinspectfieldspecies, lasttreatdate, lasttreatproduct, lasttreatqty, lasttreatqtyunit, hectares, lastinspectactivity, lasttreatactivity, length_meters, width_meters, lastinspectconditions, waterorigin, creationdate, creator, editdate, editor, jurisdiction, shape__length, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_name, p_zone, p_habitat, p_priority, p_usetype, p_active, p_description, p_accessdesc, p_comments, p_symbology, p_externalid, p_acres, p_nextactiondatescheduled, p_larvinspectinterval, p_length_ft, p_width_ft, p_zone2, p_locationnumber, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_lastinspectdate, p_lastinspectbreeding, p_lastinspectavglarvae, p_lastinspectavgpupae, p_lastinspectlstages, p_lastinspectactiontaken, p_lastinspectfieldspecies, p_lasttreatdate, p_lasttreatproduct, p_lasttreatqty, p_lasttreatqtyunit, p_hectares, p_lastinspectactivity, p_lasttreatactivity, p_length_meters, p_width_meters, p_lastinspectconditions, p_waterorigin, p_creationdate, p_creator, p_editdate, p_editor, p_jurisdiction, p_shape__length, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_locationtracking( p_objectid bigint, p_organization_id INTEGER, p_accuracy double precision, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_globalid uuid, p_fieldtech varchar, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.locationtracking lv WHERE lv.globalid = p_globalid AND lv.organization_id = p_organization_id AND lv.accuracy IS NOT DISTINCT FROM p_accuracy AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.fieldtech IS NOT DISTINCT FROM p_fieldtech AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.locationtracking WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.locationtracking WHERE globalid = p_globalid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.locationtracking ( objectid, organization_id, accuracy, created_user, created_date, last_edited_user, last_edited_date, globalid, fieldtech, creationdate, creator, editdate, editor, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_accuracy, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_globalid, p_fieldtech, p_creationdate, p_creator, p_editdate, p_editor, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_mosquitoinspection( p_objectid bigint, p_organization_id INTEGER, p_numdips smallint, p_activity varchar, p_breeding varchar, p_totlarvae smallint, p_totpupae smallint, p_eggs smallint, p_posdips smallint, p_adultact varchar, p_lstages varchar, p_domstage varchar, p_actiontaken varchar, p_comments varchar, p_avetemp double precision, p_windspeed double precision, p_raingauge double precision, p_startdatetime timestamp, p_enddatetime timestamp, p_winddir varchar, p_avglarvae double precision, p_avgpupae double precision, p_reviewed smallint, p_reviewedby varchar, p_revieweddate timestamp, p_locationname varchar, p_zone varchar, p_recordstatus smallint, p_zone2 varchar, p_personalcontact smallint, p_tirecount smallint, p_cbcount smallint, p_containercount smallint, p_fieldspecies varchar, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_linelocid uuid, p_pointlocid uuid, p_polygonlocid uuid, p_srid uuid, p_fieldtech varchar, p_larvaepresent smallint, p_pupaepresent smallint, p_sdid uuid, p_sitecond varchar, p_positivecontainercount smallint, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_jurisdiction varchar, p_visualmonitoring smallint, p_vmcomments varchar, p_adminaction varchar, p_ptaid uuid, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.mosquitoinspection lv WHERE lv.globalid = p_globalid AND lv.organization_id = p_organization_id AND lv.numdips IS NOT DISTINCT FROM p_numdips AND lv.activity IS NOT DISTINCT FROM p_activity AND lv.breeding IS NOT DISTINCT FROM p_breeding AND lv.totlarvae IS NOT DISTINCT FROM p_totlarvae AND lv.totpupae IS NOT DISTINCT FROM p_totpupae AND lv.eggs IS NOT DISTINCT FROM p_eggs AND lv.posdips IS NOT DISTINCT FROM p_posdips AND lv.adultact IS NOT DISTINCT FROM p_adultact AND lv.lstages IS NOT DISTINCT FROM p_lstages AND lv.domstage IS NOT DISTINCT FROM p_domstage AND lv.actiontaken IS NOT DISTINCT FROM p_actiontaken AND lv.comments IS NOT DISTINCT FROM p_comments AND lv.avetemp IS NOT DISTINCT FROM p_avetemp AND lv.windspeed IS NOT DISTINCT FROM p_windspeed AND lv.raingauge IS NOT DISTINCT FROM p_raingauge AND lv.startdatetime IS NOT DISTINCT FROM p_startdatetime AND lv.enddatetime IS NOT DISTINCT FROM p_enddatetime AND lv.winddir IS NOT DISTINCT FROM p_winddir AND lv.avglarvae IS NOT DISTINCT FROM p_avglarvae AND lv.avgpupae IS NOT DISTINCT FROM p_avgpupae AND lv.reviewed IS NOT DISTINCT FROM p_reviewed AND lv.reviewedby IS NOT DISTINCT FROM p_reviewedby AND lv.revieweddate IS NOT DISTINCT FROM p_revieweddate AND lv.locationname IS NOT DISTINCT FROM p_locationname AND lv.zone IS NOT DISTINCT FROM p_zone AND lv.recordstatus IS NOT DISTINCT FROM p_recordstatus AND lv.zone2 IS NOT DISTINCT FROM p_zone2 AND lv.personalcontact IS NOT DISTINCT FROM p_personalcontact AND lv.tirecount IS NOT DISTINCT FROM p_tirecount AND lv.cbcount IS NOT DISTINCT FROM p_cbcount AND lv.containercount IS NOT DISTINCT FROM p_containercount AND lv.fieldspecies IS NOT DISTINCT FROM p_fieldspecies AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.linelocid IS NOT DISTINCT FROM p_linelocid AND lv.pointlocid IS NOT DISTINCT FROM p_pointlocid AND lv.polygonlocid IS NOT DISTINCT FROM p_polygonlocid AND lv.srid IS NOT DISTINCT FROM p_srid AND lv.fieldtech IS NOT DISTINCT FROM p_fieldtech AND lv.larvaepresent IS NOT DISTINCT FROM p_larvaepresent AND lv.pupaepresent IS NOT DISTINCT FROM p_pupaepresent AND lv.sdid IS NOT DISTINCT FROM p_sdid AND lv.sitecond IS NOT DISTINCT FROM p_sitecond AND lv.positivecontainercount IS NOT DISTINCT FROM p_positivecontainercount AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.jurisdiction IS NOT DISTINCT FROM p_jurisdiction AND lv.visualmonitoring IS NOT DISTINCT FROM p_visualmonitoring AND lv.vmcomments IS NOT DISTINCT FROM p_vmcomments AND lv.adminaction IS NOT DISTINCT FROM p_adminaction AND lv.ptaid IS NOT DISTINCT FROM p_ptaid AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.mosquitoinspection WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.mosquitoinspection WHERE globalid = p_globalid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.mosquitoinspection ( objectid, organization_id, numdips, activity, breeding, totlarvae, totpupae, eggs, posdips, adultact, lstages, domstage, actiontaken, comments, avetemp, windspeed, raingauge, startdatetime, enddatetime, winddir, avglarvae, avgpupae, reviewed, reviewedby, revieweddate, locationname, zone, recordstatus, zone2, personalcontact, tirecount, cbcount, containercount, fieldspecies, globalid, created_user, created_date, last_edited_user, last_edited_date, linelocid, pointlocid, polygonlocid, srid, fieldtech, larvaepresent, pupaepresent, sdid, sitecond, positivecontainercount, creationdate, creator, editdate, editor, jurisdiction, visualmonitoring, vmcomments, adminaction, ptaid, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_numdips, p_activity, p_breeding, p_totlarvae, p_totpupae, p_eggs, p_posdips, p_adultact, p_lstages, p_domstage, p_actiontaken, p_comments, p_avetemp, p_windspeed, p_raingauge, p_startdatetime, p_enddatetime, p_winddir, p_avglarvae, p_avgpupae, p_reviewed, p_reviewedby, p_revieweddate, p_locationname, p_zone, p_recordstatus, p_zone2, p_personalcontact, p_tirecount, p_cbcount, p_containercount, p_fieldspecies, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_linelocid, p_pointlocid, p_polygonlocid, p_srid, p_fieldtech, p_larvaepresent, p_pupaepresent, p_sdid, p_sitecond, p_positivecontainercount, p_creationdate, p_creator, p_editdate, p_editor, p_jurisdiction, p_visualmonitoring, p_vmcomments, p_adminaction, p_ptaid, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_pointlocation( p_objectid bigint, p_organization_id INTEGER, p_name varchar, p_zone varchar, p_habitat varchar, p_priority varchar, p_usetype varchar, p_active smallint, p_description varchar, p_accessdesc varchar, p_comments varchar, p_symbology varchar, p_externalid varchar, p_nextactiondatescheduled timestamp, p_larvinspectinterval smallint, p_zone2 varchar, p_locationnumber integer, p_globalid uuid, p_stype varchar, p_lastinspectdate timestamp, p_lastinspectbreeding varchar, p_lastinspectavglarvae double precision, p_lastinspectavgpupae double precision, p_lastinspectlstages varchar, p_lastinspectactiontaken varchar, p_lastinspectfieldspecies varchar, p_lasttreatdate timestamp, p_lasttreatproduct varchar, p_lasttreatqty double precision, p_lasttreatqtyunit varchar, p_lastinspectactivity varchar, p_lasttreatactivity varchar, p_lastinspectconditions varchar, p_waterorigin varchar, p_x double precision, p_y double precision, p_assignedtech varchar, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_jurisdiction varchar, p_deactivate_reason varchar, p_scalarpriority integer, p_sourcestatus varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.pointlocation lv WHERE lv.globalid = p_globalid AND lv.organization_id = p_organization_id AND lv.name IS NOT DISTINCT FROM p_name AND lv.zone IS NOT DISTINCT FROM p_zone AND lv.habitat IS NOT DISTINCT FROM p_habitat AND lv.priority IS NOT DISTINCT FROM p_priority AND lv.usetype IS NOT DISTINCT FROM p_usetype AND lv.active IS NOT DISTINCT FROM p_active AND lv.description IS NOT DISTINCT FROM p_description AND lv.accessdesc IS NOT DISTINCT FROM p_accessdesc AND lv.comments IS NOT DISTINCT FROM p_comments AND lv.symbology IS NOT DISTINCT FROM p_symbology AND lv.externalid IS NOT DISTINCT FROM p_externalid AND lv.nextactiondatescheduled IS NOT DISTINCT FROM p_nextactiondatescheduled AND lv.larvinspectinterval IS NOT DISTINCT FROM p_larvinspectinterval AND lv.zone2 IS NOT DISTINCT FROM p_zone2 AND lv.locationnumber IS NOT DISTINCT FROM p_locationnumber AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.stype IS NOT DISTINCT FROM p_stype AND lv.lastinspectdate IS NOT DISTINCT FROM p_lastinspectdate AND lv.lastinspectbreeding IS NOT DISTINCT FROM p_lastinspectbreeding AND lv.lastinspectavglarvae IS NOT DISTINCT FROM p_lastinspectavglarvae AND lv.lastinspectavgpupae IS NOT DISTINCT FROM p_lastinspectavgpupae AND lv.lastinspectlstages IS NOT DISTINCT FROM p_lastinspectlstages AND lv.lastinspectactiontaken IS NOT DISTINCT FROM p_lastinspectactiontaken AND lv.lastinspectfieldspecies IS NOT DISTINCT FROM p_lastinspectfieldspecies AND lv.lasttreatdate IS NOT DISTINCT FROM p_lasttreatdate AND lv.lasttreatproduct IS NOT DISTINCT FROM p_lasttreatproduct AND lv.lasttreatqty IS NOT DISTINCT FROM p_lasttreatqty AND lv.lasttreatqtyunit IS NOT DISTINCT FROM p_lasttreatqtyunit AND lv.lastinspectactivity IS NOT DISTINCT FROM p_lastinspectactivity AND lv.lasttreatactivity IS NOT DISTINCT FROM p_lasttreatactivity AND lv.lastinspectconditions IS NOT DISTINCT FROM p_lastinspectconditions AND lv.waterorigin IS NOT DISTINCT FROM p_waterorigin AND lv.x IS NOT DISTINCT FROM p_x AND lv.y IS NOT DISTINCT FROM p_y AND lv.assignedtech IS NOT DISTINCT FROM p_assignedtech AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.jurisdiction IS NOT DISTINCT FROM p_jurisdiction AND lv.deactivate_reason IS NOT DISTINCT FROM p_deactivate_reason AND lv.scalarpriority IS NOT DISTINCT FROM p_scalarpriority AND lv.sourcestatus IS NOT DISTINCT FROM p_sourcestatus AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.pointlocation WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.pointlocation WHERE globalid = p_globalid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.pointlocation ( objectid, organization_id, name, zone, habitat, priority, usetype, active, description, accessdesc, comments, symbology, externalid, nextactiondatescheduled, larvinspectinterval, zone2, locationnumber, globalid, stype, lastinspectdate, lastinspectbreeding, lastinspectavglarvae, lastinspectavgpupae, lastinspectlstages, lastinspectactiontaken, lastinspectfieldspecies, lasttreatdate, lasttreatproduct, lasttreatqty, lasttreatqtyunit, lastinspectactivity, lasttreatactivity, lastinspectconditions, waterorigin, x, y, assignedtech, creationdate, creator, editdate, editor, jurisdiction, deactivate_reason, scalarpriority, sourcestatus, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_name, p_zone, p_habitat, p_priority, p_usetype, p_active, p_description, p_accessdesc, p_comments, p_symbology, p_externalid, p_nextactiondatescheduled, p_larvinspectinterval, p_zone2, p_locationnumber, p_globalid, p_stype, p_lastinspectdate, p_lastinspectbreeding, p_lastinspectavglarvae, p_lastinspectavgpupae, p_lastinspectlstages, p_lastinspectactiontaken, p_lastinspectfieldspecies, p_lasttreatdate, p_lasttreatproduct, p_lasttreatqty, p_lasttreatqtyunit, p_lastinspectactivity, p_lasttreatactivity, p_lastinspectconditions, p_waterorigin, p_x, p_y, p_assignedtech, p_creationdate, p_creator, p_editdate, p_editor, p_jurisdiction, p_deactivate_reason, p_scalarpriority, p_sourcestatus, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_polygonlocation( p_objectid bigint, p_organization_id INTEGER, p_name varchar, p_zone varchar, p_habitat varchar, p_priority varchar, p_usetype varchar, p_active smallint, p_description varchar, p_accessdesc varchar, p_comments varchar, p_symbology varchar, p_externalid varchar, p_acres double precision, p_nextactiondatescheduled timestamp, p_larvinspectinterval smallint, p_zone2 varchar, p_locationnumber integer, p_globalid uuid, p_lastinspectdate timestamp, p_lastinspectbreeding varchar, p_lastinspectavglarvae double precision, p_lastinspectavgpupae double precision, p_lastinspectlstages varchar, p_lastinspectactiontaken varchar, p_lastinspectfieldspecies varchar, p_lasttreatdate timestamp, p_lasttreatproduct varchar, p_lasttreatqty double precision, p_lasttreatqtyunit varchar, p_hectares double precision, p_lastinspectactivity varchar, p_lasttreatactivity varchar, p_lastinspectconditions varchar, p_waterorigin varchar, p_filter varchar, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_jurisdiction varchar, p_shape__area double precision, p_shape__length double precision, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.polygonlocation lv WHERE lv.globalid = p_globalid AND lv.organization_id = p_organization_id AND lv.name IS NOT DISTINCT FROM p_name AND lv.zone IS NOT DISTINCT FROM p_zone AND lv.habitat IS NOT DISTINCT FROM p_habitat AND lv.priority IS NOT DISTINCT FROM p_priority AND lv.usetype IS NOT DISTINCT FROM p_usetype AND lv.active IS NOT DISTINCT FROM p_active AND lv.description IS NOT DISTINCT FROM p_description AND lv.accessdesc IS NOT DISTINCT FROM p_accessdesc AND lv.comments IS NOT DISTINCT FROM p_comments AND lv.symbology IS NOT DISTINCT FROM p_symbology AND lv.externalid IS NOT DISTINCT FROM p_externalid AND lv.acres IS NOT DISTINCT FROM p_acres AND lv.nextactiondatescheduled IS NOT DISTINCT FROM p_nextactiondatescheduled AND lv.larvinspectinterval IS NOT DISTINCT FROM p_larvinspectinterval AND lv.zone2 IS NOT DISTINCT FROM p_zone2 AND lv.locationnumber IS NOT DISTINCT FROM p_locationnumber AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.lastinspectdate IS NOT DISTINCT FROM p_lastinspectdate AND lv.lastinspectbreeding IS NOT DISTINCT FROM p_lastinspectbreeding AND lv.lastinspectavglarvae IS NOT DISTINCT FROM p_lastinspectavglarvae AND lv.lastinspectavgpupae IS NOT DISTINCT FROM p_lastinspectavgpupae AND lv.lastinspectlstages IS NOT DISTINCT FROM p_lastinspectlstages AND lv.lastinspectactiontaken IS NOT DISTINCT FROM p_lastinspectactiontaken AND lv.lastinspectfieldspecies IS NOT DISTINCT FROM p_lastinspectfieldspecies AND lv.lasttreatdate IS NOT DISTINCT FROM p_lasttreatdate AND lv.lasttreatproduct IS NOT DISTINCT FROM p_lasttreatproduct AND lv.lasttreatqty IS NOT DISTINCT FROM p_lasttreatqty AND lv.lasttreatqtyunit IS NOT DISTINCT FROM p_lasttreatqtyunit AND lv.hectares IS NOT DISTINCT FROM p_hectares AND lv.lastinspectactivity IS NOT DISTINCT FROM p_lastinspectactivity AND lv.lasttreatactivity IS NOT DISTINCT FROM p_lasttreatactivity AND lv.lastinspectconditions IS NOT DISTINCT FROM p_lastinspectconditions AND lv.waterorigin IS NOT DISTINCT FROM p_waterorigin AND lv.filter IS NOT DISTINCT FROM p_filter AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.jurisdiction IS NOT DISTINCT FROM p_jurisdiction AND lv.shape__area IS NOT DISTINCT FROM p_shape__area AND lv.shape__length IS NOT DISTINCT FROM p_shape__length AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.polygonlocation WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.polygonlocation WHERE globalid = p_globalid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.polygonlocation ( objectid, organization_id, name, zone, habitat, priority, usetype, active, description, accessdesc, comments, symbology, externalid, acres, nextactiondatescheduled, larvinspectinterval, zone2, locationnumber, globalid, lastinspectdate, lastinspectbreeding, lastinspectavglarvae, lastinspectavgpupae, lastinspectlstages, lastinspectactiontaken, lastinspectfieldspecies, lasttreatdate, lasttreatproduct, lasttreatqty, lasttreatqtyunit, hectares, lastinspectactivity, lasttreatactivity, lastinspectconditions, waterorigin, filter, creationdate, creator, editdate, editor, jurisdiction, shape__area, shape__length, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_name, p_zone, p_habitat, p_priority, p_usetype, p_active, p_description, p_accessdesc, p_comments, p_symbology, p_externalid, p_acres, p_nextactiondatescheduled, p_larvinspectinterval, p_zone2, p_locationnumber, p_globalid, p_lastinspectdate, p_lastinspectbreeding, p_lastinspectavglarvae, p_lastinspectavgpupae, p_lastinspectlstages, p_lastinspectactiontaken, p_lastinspectfieldspecies, p_lasttreatdate, p_lasttreatproduct, p_lasttreatqty, p_lasttreatqtyunit, p_hectares, p_lastinspectactivity, p_lasttreatactivity, p_lastinspectconditions, p_waterorigin, p_filter, p_creationdate, p_creator, p_editdate, p_editor, p_jurisdiction, p_shape__area, p_shape__length, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_pooldetail( p_objectid bigint, p_organization_id INTEGER, p_trapdata_id uuid, p_pool_id uuid, p_species varchar, p_females smallint, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.pooldetail lv WHERE lv.globalid = p_globalid AND lv.organization_id = p_organization_id AND lv.trapdata_id IS NOT DISTINCT FROM p_trapdata_id AND lv.pool_id IS NOT DISTINCT FROM p_pool_id AND lv.species IS NOT DISTINCT FROM p_species AND lv.females IS NOT DISTINCT FROM p_females AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.pooldetail WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.pooldetail WHERE globalid = p_globalid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.pooldetail ( objectid, organization_id, trapdata_id, pool_id, species, females, globalid, created_user, created_date, last_edited_user, last_edited_date, creationdate, creator, editdate, editor, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_trapdata_id, p_pool_id, p_species, p_females, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_creationdate, p_creator, p_editdate, p_editor, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_pool( p_objectid bigint, p_organization_id INTEGER, p_trapdata_id uuid, p_datesent timestamp, p_survtech varchar, p_datetested timestamp, p_testtech varchar, p_comments varchar, p_sampleid varchar, p_processed smallint, p_lab_id uuid, p_testmethod varchar, p_diseasetested varchar, p_diseasepos varchar, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_lab varchar, p_poolyear smallint, p_gatewaysync smallint, p_vectorsurvcollectionid varchar, p_vectorsurvpoolid varchar, p_vectorsurvtrapdataid varchar, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.pool lv WHERE lv.globalid = p_globalid AND lv.organization_id = p_organization_id AND lv.trapdata_id IS NOT DISTINCT FROM p_trapdata_id AND lv.datesent IS NOT DISTINCT FROM p_datesent AND lv.survtech IS NOT DISTINCT FROM p_survtech AND lv.datetested IS NOT DISTINCT FROM p_datetested AND lv.testtech IS NOT DISTINCT FROM p_testtech AND lv.comments IS NOT DISTINCT FROM p_comments AND lv.sampleid IS NOT DISTINCT FROM p_sampleid AND lv.processed IS NOT DISTINCT FROM p_processed AND lv.lab_id IS NOT DISTINCT FROM p_lab_id AND lv.testmethod IS NOT DISTINCT FROM p_testmethod AND lv.diseasetested IS NOT DISTINCT FROM p_diseasetested AND lv.diseasepos IS NOT DISTINCT FROM p_diseasepos AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.lab IS NOT DISTINCT FROM p_lab AND lv.poolyear IS NOT DISTINCT FROM p_poolyear AND lv.gatewaysync IS NOT DISTINCT FROM p_gatewaysync AND lv.vectorsurvcollectionid IS NOT DISTINCT FROM p_vectorsurvcollectionid AND lv.vectorsurvpoolid IS NOT DISTINCT FROM p_vectorsurvpoolid AND lv.vectorsurvtrapdataid IS NOT DISTINCT FROM p_vectorsurvtrapdataid AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.pool WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.pool WHERE globalid = p_globalid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.pool ( objectid, organization_id, trapdata_id, datesent, survtech, datetested, testtech, comments, sampleid, processed, lab_id, testmethod, diseasetested, diseasepos, globalid, created_user, created_date, last_edited_user, last_edited_date, lab, poolyear, gatewaysync, vectorsurvcollectionid, vectorsurvpoolid, vectorsurvtrapdataid, creationdate, creator, editdate, editor, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_trapdata_id, p_datesent, p_survtech, p_datetested, p_testtech, p_comments, p_sampleid, p_processed, p_lab_id, p_testmethod, p_diseasetested, p_diseasepos, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_lab, p_poolyear, p_gatewaysync, p_vectorsurvcollectionid, p_vectorsurvpoolid, p_vectorsurvtrapdataid, p_creationdate, p_creator, p_editdate, p_editor, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_proposedtreatmentarea( p_objectid bigint, p_organization_id INTEGER, p_method varchar, p_comments varchar, p_zone varchar, p_reviewed smallint, p_reviewedby varchar, p_revieweddate timestamp, p_zone2 varchar, p_completeddate timestamp, p_completedby varchar, p_completed smallint, p_issprayroute smallint, p_name varchar, p_acres double precision, p_globalid uuid, p_exported smallint, p_targetproduct varchar, p_targetapprate double precision, p_hectares double precision, p_lasttreatactivity varchar, p_lasttreatdate timestamp, p_lasttreatproduct varchar, p_lasttreatqty double precision, p_lasttreatqtyunit varchar, p_priority varchar, p_duedate timestamp, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_targetspecies varchar, p_shape__area double precision, p_shape__length double precision, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.proposedtreatmentarea lv WHERE lv.globalid = p_globalid AND lv.organization_id = p_organization_id AND lv.method IS NOT DISTINCT FROM p_method AND lv.comments IS NOT DISTINCT FROM p_comments AND lv.zone IS NOT DISTINCT FROM p_zone AND lv.reviewed IS NOT DISTINCT FROM p_reviewed AND lv.reviewedby IS NOT DISTINCT FROM p_reviewedby AND lv.revieweddate IS NOT DISTINCT FROM p_revieweddate AND lv.zone2 IS NOT DISTINCT FROM p_zone2 AND lv.completeddate IS NOT DISTINCT FROM p_completeddate AND lv.completedby IS NOT DISTINCT FROM p_completedby AND lv.completed IS NOT DISTINCT FROM p_completed AND lv.issprayroute IS NOT DISTINCT FROM p_issprayroute AND lv.name IS NOT DISTINCT FROM p_name AND lv.acres IS NOT DISTINCT FROM p_acres AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.exported IS NOT DISTINCT FROM p_exported AND lv.targetproduct IS NOT DISTINCT FROM p_targetproduct AND lv.targetapprate IS NOT DISTINCT FROM p_targetapprate AND lv.hectares IS NOT DISTINCT FROM p_hectares AND lv.lasttreatactivity IS NOT DISTINCT FROM p_lasttreatactivity AND lv.lasttreatdate IS NOT DISTINCT FROM p_lasttreatdate AND lv.lasttreatproduct IS NOT DISTINCT FROM p_lasttreatproduct AND lv.lasttreatqty IS NOT DISTINCT FROM p_lasttreatqty AND lv.lasttreatqtyunit IS NOT DISTINCT FROM p_lasttreatqtyunit AND lv.priority IS NOT DISTINCT FROM p_priority AND lv.duedate IS NOT DISTINCT FROM p_duedate AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.targetspecies IS NOT DISTINCT FROM p_targetspecies AND lv.shape__area IS NOT DISTINCT FROM p_shape__area AND lv.shape__length IS NOT DISTINCT FROM p_shape__length AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.proposedtreatmentarea WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.proposedtreatmentarea WHERE globalid = p_globalid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.proposedtreatmentarea ( objectid, organization_id, method, comments, zone, reviewed, reviewedby, revieweddate, zone2, completeddate, completedby, completed, issprayroute, name, acres, globalid, exported, targetproduct, targetapprate, hectares, lasttreatactivity, lasttreatdate, lasttreatproduct, lasttreatqty, lasttreatqtyunit, priority, duedate, creationdate, creator, editdate, editor, targetspecies, shape__area, shape__length, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_method, p_comments, p_zone, p_reviewed, p_reviewedby, p_revieweddate, p_zone2, p_completeddate, p_completedby, p_completed, p_issprayroute, p_name, p_acres, p_globalid, p_exported, p_targetproduct, p_targetapprate, p_hectares, p_lasttreatactivity, p_lasttreatdate, p_lasttreatproduct, p_lasttreatqty, p_lasttreatqtyunit, p_priority, p_duedate, p_creationdate, p_creator, p_editdate, p_editor, p_targetspecies, p_shape__area, p_shape__length, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_qamosquitoinspection( p_objectid bigint, p_organization_id INTEGER, p_posdips smallint, p_actiontaken varchar, p_comments varchar, p_avetemp double precision, p_windspeed double precision, p_raingauge double precision, p_globalid uuid, p_startdatetime timestamp, p_enddatetime timestamp, p_winddir varchar, p_reviewed smallint, p_reviewedby varchar, p_revieweddate timestamp, p_locationname varchar, p_zone varchar, p_recordstatus smallint, p_zone2 varchar, p_lr smallint, p_negdips smallint, p_totalacres double precision, p_acresbreeding double precision, p_fish smallint, p_sitetype varchar, p_breedingpotential varchar, p_movingwater smallint, p_nowaterever smallint, p_mosquitohabitat varchar, p_habvalue1 smallint, p_habvalue1percent smallint, p_habvalue2 smallint, p_habvalue2percent smallint, p_potential smallint, p_larvaepresent smallint, p_larvaeinsidetreatedarea smallint, p_larvaeoutsidetreatedarea smallint, p_larvaereason varchar, p_aquaticorganisms varchar, p_vegetation varchar, p_sourcereduction varchar, p_waterpresent smallint, p_watermovement1 varchar, p_watermovement1percent smallint, p_watermovement2 varchar, p_watermovement2percent smallint, p_soilconditions varchar, p_waterduration varchar, p_watersource varchar, p_waterconditions varchar, p_adultactivity smallint, p_linelocid uuid, p_pointlocid uuid, p_polygonlocid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_fieldtech varchar, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.qamosquitoinspection lv WHERE lv.globalid = p_globalid AND lv.organization_id = p_organization_id AND lv.posdips IS NOT DISTINCT FROM p_posdips AND lv.actiontaken IS NOT DISTINCT FROM p_actiontaken AND lv.comments IS NOT DISTINCT FROM p_comments AND lv.avetemp IS NOT DISTINCT FROM p_avetemp AND lv.windspeed IS NOT DISTINCT FROM p_windspeed AND lv.raingauge IS NOT DISTINCT FROM p_raingauge AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.startdatetime IS NOT DISTINCT FROM p_startdatetime AND lv.enddatetime IS NOT DISTINCT FROM p_enddatetime AND lv.winddir IS NOT DISTINCT FROM p_winddir AND lv.reviewed IS NOT DISTINCT FROM p_reviewed AND lv.reviewedby IS NOT DISTINCT FROM p_reviewedby AND lv.revieweddate IS NOT DISTINCT FROM p_revieweddate AND lv.locationname IS NOT DISTINCT FROM p_locationname AND lv.zone IS NOT DISTINCT FROM p_zone AND lv.recordstatus IS NOT DISTINCT FROM p_recordstatus AND lv.zone2 IS NOT DISTINCT FROM p_zone2 AND lv.lr IS NOT DISTINCT FROM p_lr AND lv.negdips IS NOT DISTINCT FROM p_negdips AND lv.totalacres IS NOT DISTINCT FROM p_totalacres AND lv.acresbreeding IS NOT DISTINCT FROM p_acresbreeding AND lv.fish IS NOT DISTINCT FROM p_fish AND lv.sitetype IS NOT DISTINCT FROM p_sitetype AND lv.breedingpotential IS NOT DISTINCT FROM p_breedingpotential AND lv.movingwater IS NOT DISTINCT FROM p_movingwater AND lv.nowaterever IS NOT DISTINCT FROM p_nowaterever AND lv.mosquitohabitat IS NOT DISTINCT FROM p_mosquitohabitat AND lv.habvalue1 IS NOT DISTINCT FROM p_habvalue1 AND lv.habvalue1percent IS NOT DISTINCT FROM p_habvalue1percent AND lv.habvalue2 IS NOT DISTINCT FROM p_habvalue2 AND lv.habvalue2percent IS NOT DISTINCT FROM p_habvalue2percent AND lv.potential IS NOT DISTINCT FROM p_potential AND lv.larvaepresent IS NOT DISTINCT FROM p_larvaepresent AND lv.larvaeinsidetreatedarea IS NOT DISTINCT FROM p_larvaeinsidetreatedarea AND lv.larvaeoutsidetreatedarea IS NOT DISTINCT FROM p_larvaeoutsidetreatedarea AND lv.larvaereason IS NOT DISTINCT FROM p_larvaereason AND lv.aquaticorganisms IS NOT DISTINCT FROM p_aquaticorganisms AND lv.vegetation IS NOT DISTINCT FROM p_vegetation AND lv.sourcereduction IS NOT DISTINCT FROM p_sourcereduction AND lv.waterpresent IS NOT DISTINCT FROM p_waterpresent AND lv.watermovement1 IS NOT DISTINCT FROM p_watermovement1 AND lv.watermovement1percent IS NOT DISTINCT FROM p_watermovement1percent AND lv.watermovement2 IS NOT DISTINCT FROM p_watermovement2 AND lv.watermovement2percent IS NOT DISTINCT FROM p_watermovement2percent AND lv.soilconditions IS NOT DISTINCT FROM p_soilconditions AND lv.waterduration IS NOT DISTINCT FROM p_waterduration AND lv.watersource IS NOT DISTINCT FROM p_watersource AND lv.waterconditions IS NOT DISTINCT FROM p_waterconditions AND lv.adultactivity IS NOT DISTINCT FROM p_adultactivity AND lv.linelocid IS NOT DISTINCT FROM p_linelocid AND lv.pointlocid IS NOT DISTINCT FROM p_pointlocid AND lv.polygonlocid IS NOT DISTINCT FROM p_polygonlocid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.fieldtech IS NOT DISTINCT FROM p_fieldtech AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.qamosquitoinspection WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.qamosquitoinspection WHERE globalid = p_globalid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.qamosquitoinspection ( objectid, organization_id, posdips, actiontaken, comments, avetemp, windspeed, raingauge, globalid, startdatetime, enddatetime, winddir, reviewed, reviewedby, revieweddate, locationname, zone, recordstatus, zone2, lr, negdips, totalacres, acresbreeding, fish, sitetype, breedingpotential, movingwater, nowaterever, mosquitohabitat, habvalue1, habvalue1percent, habvalue2, habvalue2percent, potential, larvaepresent, larvaeinsidetreatedarea, larvaeoutsidetreatedarea, larvaereason, aquaticorganisms, vegetation, sourcereduction, waterpresent, watermovement1, watermovement1percent, watermovement2, watermovement2percent, soilconditions, waterduration, watersource, waterconditions, adultactivity, linelocid, pointlocid, polygonlocid, created_user, created_date, last_edited_user, last_edited_date, fieldtech, creationdate, creator, editdate, editor, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_posdips, p_actiontaken, p_comments, p_avetemp, p_windspeed, p_raingauge, p_globalid, p_startdatetime, p_enddatetime, p_winddir, p_reviewed, p_reviewedby, p_revieweddate, p_locationname, p_zone, p_recordstatus, p_zone2, p_lr, p_negdips, p_totalacres, p_acresbreeding, p_fish, p_sitetype, p_breedingpotential, p_movingwater, p_nowaterever, p_mosquitohabitat, p_habvalue1, p_habvalue1percent, p_habvalue2, p_habvalue2percent, p_potential, p_larvaepresent, p_larvaeinsidetreatedarea, p_larvaeoutsidetreatedarea, p_larvaereason, p_aquaticorganisms, p_vegetation, p_sourcereduction, p_waterpresent, p_watermovement1, p_watermovement1percent, p_watermovement2, p_watermovement2percent, p_soilconditions, p_waterduration, p_watersource, p_waterconditions, p_adultactivity, p_linelocid, p_pointlocid, p_polygonlocid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_fieldtech, p_creationdate, p_creator, p_editdate, p_editor, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_rodentlocation( p_objectid bigint, p_organization_id INTEGER, p_locationname varchar, p_zone varchar, p_zone2 varchar, p_habitat varchar, p_priority varchar, p_usetype varchar, p_active smallint, p_description varchar, p_accessdesc varchar, p_comments varchar, p_symbology varchar, p_externalid varchar, p_nextactiondatescheduled timestamp, p_locationnumber integer, p_lastinspectdate timestamp, p_lastinspectspecies varchar, p_lastinspectaction varchar, p_lastinspectconditions varchar, p_lastinspectrodentevidence varchar, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_jurisdiction varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.rodentlocation lv WHERE lv.globalid = p_globalid AND lv.organization_id = p_organization_id AND lv.locationname IS NOT DISTINCT FROM p_locationname AND lv.zone IS NOT DISTINCT FROM p_zone AND lv.zone2 IS NOT DISTINCT FROM p_zone2 AND lv.habitat IS NOT DISTINCT FROM p_habitat AND lv.priority IS NOT DISTINCT FROM p_priority AND lv.usetype IS NOT DISTINCT FROM p_usetype AND lv.active IS NOT DISTINCT FROM p_active AND lv.description IS NOT DISTINCT FROM p_description AND lv.accessdesc IS NOT DISTINCT FROM p_accessdesc AND lv.comments IS NOT DISTINCT FROM p_comments AND lv.symbology IS NOT DISTINCT FROM p_symbology AND lv.externalid IS NOT DISTINCT FROM p_externalid AND lv.nextactiondatescheduled IS NOT DISTINCT FROM p_nextactiondatescheduled AND lv.locationnumber IS NOT DISTINCT FROM p_locationnumber AND lv.lastinspectdate IS NOT DISTINCT FROM p_lastinspectdate AND lv.lastinspectspecies IS NOT DISTINCT FROM p_lastinspectspecies AND lv.lastinspectaction IS NOT DISTINCT FROM p_lastinspectaction AND lv.lastinspectconditions IS NOT DISTINCT FROM p_lastinspectconditions AND lv.lastinspectrodentevidence IS NOT DISTINCT FROM p_lastinspectrodentevidence AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.jurisdiction IS NOT DISTINCT FROM p_jurisdiction AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.rodentlocation WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.rodentlocation WHERE globalid = p_globalid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.rodentlocation ( objectid, organization_id, locationname, zone, zone2, habitat, priority, usetype, active, description, accessdesc, comments, symbology, externalid, nextactiondatescheduled, locationnumber, lastinspectdate, lastinspectspecies, lastinspectaction, lastinspectconditions, lastinspectrodentevidence, globalid, created_user, created_date, last_edited_user, last_edited_date, creationdate, creator, editdate, editor, jurisdiction, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_locationname, p_zone, p_zone2, p_habitat, p_priority, p_usetype, p_active, p_description, p_accessdesc, p_comments, p_symbology, p_externalid, p_nextactiondatescheduled, p_locationnumber, p_lastinspectdate, p_lastinspectspecies, p_lastinspectaction, p_lastinspectconditions, p_lastinspectrodentevidence, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_creationdate, p_creator, p_editdate, p_editor, p_jurisdiction, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_samplecollection( p_objectid bigint, p_organization_id INTEGER, p_loc_id uuid, p_startdatetime timestamp, p_enddatetime timestamp, p_sitecond varchar, p_sampleid varchar, p_survtech varchar, p_datesent timestamp, p_datetested timestamp, p_testtech varchar, p_comments varchar, p_processed smallint, p_sampletype varchar, p_samplecond varchar, p_species varchar, p_sex varchar, p_avetemp double precision, p_windspeed double precision, p_winddir varchar, p_raingauge double precision, p_activity varchar, p_testmethod varchar, p_diseasetested varchar, p_diseasepos varchar, p_reviewed smallint, p_reviewedby varchar, p_revieweddate timestamp, p_locationname varchar, p_zone varchar, p_recordstatus smallint, p_zone2 varchar, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_lab varchar, p_fieldtech varchar, p_flockid uuid, p_samplecount smallint, p_chickenid uuid, p_gatewaysync smallint, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.samplecollection lv WHERE lv.globalid = p_globalid AND lv.organization_id = p_organization_id AND lv.loc_id IS NOT DISTINCT FROM p_loc_id AND lv.startdatetime IS NOT DISTINCT FROM p_startdatetime AND lv.enddatetime IS NOT DISTINCT FROM p_enddatetime AND lv.sitecond IS NOT DISTINCT FROM p_sitecond AND lv.sampleid IS NOT DISTINCT FROM p_sampleid AND lv.survtech IS NOT DISTINCT FROM p_survtech AND lv.datesent IS NOT DISTINCT FROM p_datesent AND lv.datetested IS NOT DISTINCT FROM p_datetested AND lv.testtech IS NOT DISTINCT FROM p_testtech AND lv.comments IS NOT DISTINCT FROM p_comments AND lv.processed IS NOT DISTINCT FROM p_processed AND lv.sampletype IS NOT DISTINCT FROM p_sampletype AND lv.samplecond IS NOT DISTINCT FROM p_samplecond AND lv.species IS NOT DISTINCT FROM p_species AND lv.sex IS NOT DISTINCT FROM p_sex AND lv.avetemp IS NOT DISTINCT FROM p_avetemp AND lv.windspeed IS NOT DISTINCT FROM p_windspeed AND lv.winddir IS NOT DISTINCT FROM p_winddir AND lv.raingauge IS NOT DISTINCT FROM p_raingauge AND lv.activity IS NOT DISTINCT FROM p_activity AND lv.testmethod IS NOT DISTINCT FROM p_testmethod AND lv.diseasetested IS NOT DISTINCT FROM p_diseasetested AND lv.diseasepos IS NOT DISTINCT FROM p_diseasepos AND lv.reviewed IS NOT DISTINCT FROM p_reviewed AND lv.reviewedby IS NOT DISTINCT FROM p_reviewedby AND lv.revieweddate IS NOT DISTINCT FROM p_revieweddate AND lv.locationname IS NOT DISTINCT FROM p_locationname AND lv.zone IS NOT DISTINCT FROM p_zone AND lv.recordstatus IS NOT DISTINCT FROM p_recordstatus AND lv.zone2 IS NOT DISTINCT FROM p_zone2 AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.lab IS NOT DISTINCT FROM p_lab AND lv.fieldtech IS NOT DISTINCT FROM p_fieldtech AND lv.flockid IS NOT DISTINCT FROM p_flockid AND lv.samplecount IS NOT DISTINCT FROM p_samplecount AND lv.chickenid IS NOT DISTINCT FROM p_chickenid AND lv.gatewaysync IS NOT DISTINCT FROM p_gatewaysync AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.samplecollection WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.samplecollection WHERE globalid = p_globalid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.samplecollection ( objectid, organization_id, loc_id, startdatetime, enddatetime, sitecond, sampleid, survtech, datesent, datetested, testtech, comments, processed, sampletype, samplecond, species, sex, avetemp, windspeed, winddir, raingauge, activity, testmethod, diseasetested, diseasepos, reviewed, reviewedby, revieweddate, locationname, zone, recordstatus, zone2, globalid, created_user, created_date, last_edited_user, last_edited_date, lab, fieldtech, flockid, samplecount, chickenid, gatewaysync, creationdate, creator, editdate, editor, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_loc_id, p_startdatetime, p_enddatetime, p_sitecond, p_sampleid, p_survtech, p_datesent, p_datetested, p_testtech, p_comments, p_processed, p_sampletype, p_samplecond, p_species, p_sex, p_avetemp, p_windspeed, p_winddir, p_raingauge, p_activity, p_testmethod, p_diseasetested, p_diseasepos, p_reviewed, p_reviewedby, p_revieweddate, p_locationname, p_zone, p_recordstatus, p_zone2, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_lab, p_fieldtech, p_flockid, p_samplecount, p_chickenid, p_gatewaysync, p_creationdate, p_creator, p_editdate, p_editor, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_samplelocation( p_objectid bigint, p_organization_id INTEGER, p_name varchar, p_zone varchar, p_habitat varchar, p_priority varchar, p_usetype varchar, p_active smallint, p_description varchar, p_accessdesc varchar, p_comments varchar, p_externalid varchar, p_nextactiondatescheduled timestamp, p_zone2 varchar, p_locationnumber integer, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_gatewaysync smallint, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.samplelocation lv WHERE lv.globalid = p_globalid AND lv.organization_id = p_organization_id AND lv.name IS NOT DISTINCT FROM p_name AND lv.zone IS NOT DISTINCT FROM p_zone AND lv.habitat IS NOT DISTINCT FROM p_habitat AND lv.priority IS NOT DISTINCT FROM p_priority AND lv.usetype IS NOT DISTINCT FROM p_usetype AND lv.active IS NOT DISTINCT FROM p_active AND lv.description IS NOT DISTINCT FROM p_description AND lv.accessdesc IS NOT DISTINCT FROM p_accessdesc AND lv.comments IS NOT DISTINCT FROM p_comments AND lv.externalid IS NOT DISTINCT FROM p_externalid AND lv.nextactiondatescheduled IS NOT DISTINCT FROM p_nextactiondatescheduled AND lv.zone2 IS NOT DISTINCT FROM p_zone2 AND lv.locationnumber IS NOT DISTINCT FROM p_locationnumber AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.gatewaysync IS NOT DISTINCT FROM p_gatewaysync AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.samplelocation WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.samplelocation WHERE globalid = p_globalid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.samplelocation ( objectid, organization_id, name, zone, habitat, priority, usetype, active, description, accessdesc, comments, externalid, nextactiondatescheduled, zone2, locationnumber, globalid, created_user, created_date, last_edited_user, last_edited_date, gatewaysync, creationdate, creator, editdate, editor, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_name, p_zone, p_habitat, p_priority, p_usetype, p_active, p_description, p_accessdesc, p_comments, p_externalid, p_nextactiondatescheduled, p_zone2, p_locationnumber, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_gatewaysync, p_creationdate, p_creator, p_editdate, p_editor, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_servicerequest( p_objectid bigint, p_organization_id INTEGER, p_recdatetime timestamp, p_source varchar, p_entrytech varchar, p_priority varchar, p_supervisor varchar, p_assignedtech varchar, p_status varchar, p_clranon smallint, p_clrfname varchar, p_clrphone1 varchar, p_clrphone2 varchar, p_clremail varchar, p_clrcompany varchar, p_clraddr1 varchar, p_clraddr2 varchar, p_clrcity varchar, p_clrstate varchar, p_clrzip varchar, p_clrother varchar, p_clrcontpref varchar, p_reqcompany varchar, p_reqaddr1 varchar, p_reqaddr2 varchar, p_reqcity varchar, p_reqstate varchar, p_reqzip varchar, p_reqcrossst varchar, p_reqsubdiv varchar, p_reqmapgrid varchar, p_reqpermission smallint, p_reqtarget varchar, p_reqdescr varchar, p_reqnotesfortech varchar, p_reqnotesforcust varchar, p_reqfldnotes varchar, p_reqprogramactions varchar, p_datetimeclosed timestamp, p_techclosed varchar, p_sr_number integer, p_reviewed smallint, p_reviewedby varchar, p_revieweddate timestamp, p_accepted smallint, p_accepteddate timestamp, p_rejectedby varchar, p_rejecteddate timestamp, p_rejectedreason varchar, p_duedate timestamp, p_acceptedby varchar, p_comments varchar, p_estcompletedate timestamp, p_nextaction varchar, p_recordstatus smallint, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_firstresponsedate timestamp, p_responsedaycount smallint, p_allowed varchar, p_xvalue varchar, p_yvalue varchar, p_validx varchar, p_validy varchar, p_externalid varchar, p_externalerror varchar, p_pointlocid uuid, p_notified smallint, p_notifieddate timestamp, p_scheduled smallint, p_scheduleddate timestamp, p_dog integer, p_schedule_period varchar, p_schedule_notes varchar, p_spanish integer, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_issuesreported varchar, p_jurisdiction varchar, p_notificationtimestamp varchar, p_zone varchar, p_zone2 varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.servicerequest lv WHERE lv.globalid = p_globalid AND lv.organization_id = p_organization_id AND lv.recdatetime IS NOT DISTINCT FROM p_recdatetime AND lv.source IS NOT DISTINCT FROM p_source AND lv.entrytech IS NOT DISTINCT FROM p_entrytech AND lv.priority IS NOT DISTINCT FROM p_priority AND lv.supervisor IS NOT DISTINCT FROM p_supervisor AND lv.assignedtech IS NOT DISTINCT FROM p_assignedtech AND lv.status IS NOT DISTINCT FROM p_status AND lv.clranon IS NOT DISTINCT FROM p_clranon AND lv.clrfname IS NOT DISTINCT FROM p_clrfname AND lv.clrphone1 IS NOT DISTINCT FROM p_clrphone1 AND lv.clrphone2 IS NOT DISTINCT FROM p_clrphone2 AND lv.clremail IS NOT DISTINCT FROM p_clremail AND lv.clrcompany IS NOT DISTINCT FROM p_clrcompany AND lv.clraddr1 IS NOT DISTINCT FROM p_clraddr1 AND lv.clraddr2 IS NOT DISTINCT FROM p_clraddr2 AND lv.clrcity IS NOT DISTINCT FROM p_clrcity AND lv.clrstate IS NOT DISTINCT FROM p_clrstate AND lv.clrzip IS NOT DISTINCT FROM p_clrzip AND lv.clrother IS NOT DISTINCT FROM p_clrother AND lv.clrcontpref IS NOT DISTINCT FROM p_clrcontpref AND lv.reqcompany IS NOT DISTINCT FROM p_reqcompany AND lv.reqaddr1 IS NOT DISTINCT FROM p_reqaddr1 AND lv.reqaddr2 IS NOT DISTINCT FROM p_reqaddr2 AND lv.reqcity IS NOT DISTINCT FROM p_reqcity AND lv.reqstate IS NOT DISTINCT FROM p_reqstate AND lv.reqzip IS NOT DISTINCT FROM p_reqzip AND lv.reqcrossst IS NOT DISTINCT FROM p_reqcrossst AND lv.reqsubdiv IS NOT DISTINCT FROM p_reqsubdiv AND lv.reqmapgrid IS NOT DISTINCT FROM p_reqmapgrid AND lv.reqpermission IS NOT DISTINCT FROM p_reqpermission AND lv.reqtarget IS NOT DISTINCT FROM p_reqtarget AND lv.reqdescr IS NOT DISTINCT FROM p_reqdescr AND lv.reqnotesfortech IS NOT DISTINCT FROM p_reqnotesfortech AND lv.reqnotesforcust IS NOT DISTINCT FROM p_reqnotesforcust AND lv.reqfldnotes IS NOT DISTINCT FROM p_reqfldnotes AND lv.reqprogramactions IS NOT DISTINCT FROM p_reqprogramactions AND lv.datetimeclosed IS NOT DISTINCT FROM p_datetimeclosed AND lv.techclosed IS NOT DISTINCT FROM p_techclosed AND lv.sr_number IS NOT DISTINCT FROM p_sr_number AND lv.reviewed IS NOT DISTINCT FROM p_reviewed AND lv.reviewedby IS NOT DISTINCT FROM p_reviewedby AND lv.revieweddate IS NOT DISTINCT FROM p_revieweddate AND lv.accepted IS NOT DISTINCT FROM p_accepted AND lv.accepteddate IS NOT DISTINCT FROM p_accepteddate AND lv.rejectedby IS NOT DISTINCT FROM p_rejectedby AND lv.rejecteddate IS NOT DISTINCT FROM p_rejecteddate AND lv.rejectedreason IS NOT DISTINCT FROM p_rejectedreason AND lv.duedate IS NOT DISTINCT FROM p_duedate AND lv.acceptedby IS NOT DISTINCT FROM p_acceptedby AND lv.comments IS NOT DISTINCT FROM p_comments AND lv.estcompletedate IS NOT DISTINCT FROM p_estcompletedate AND lv.nextaction IS NOT DISTINCT FROM p_nextaction AND lv.recordstatus IS NOT DISTINCT FROM p_recordstatus AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.firstresponsedate IS NOT DISTINCT FROM p_firstresponsedate AND lv.responsedaycount IS NOT DISTINCT FROM p_responsedaycount AND lv.allowed IS NOT DISTINCT FROM p_allowed AND lv.xvalue IS NOT DISTINCT FROM p_xvalue AND lv.yvalue IS NOT DISTINCT FROM p_yvalue AND lv.validx IS NOT DISTINCT FROM p_validx AND lv.validy IS NOT DISTINCT FROM p_validy AND lv.externalid IS NOT DISTINCT FROM p_externalid AND lv.externalerror IS NOT DISTINCT FROM p_externalerror AND lv.pointlocid IS NOT DISTINCT FROM p_pointlocid AND lv.notified IS NOT DISTINCT FROM p_notified AND lv.notifieddate IS NOT DISTINCT FROM p_notifieddate AND lv.scheduled IS NOT DISTINCT FROM p_scheduled AND lv.scheduleddate IS NOT DISTINCT FROM p_scheduleddate AND lv.dog IS NOT DISTINCT FROM p_dog AND lv.schedule_period IS NOT DISTINCT FROM p_schedule_period AND lv.schedule_notes IS NOT DISTINCT FROM p_schedule_notes AND lv.spanish IS NOT DISTINCT FROM p_spanish AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.issuesreported IS NOT DISTINCT FROM p_issuesreported AND lv.jurisdiction IS NOT DISTINCT FROM p_jurisdiction AND lv.notificationtimestamp IS NOT DISTINCT FROM p_notificationtimestamp AND lv.zone IS NOT DISTINCT FROM p_zone AND lv.zone2 IS NOT DISTINCT FROM p_zone2 AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.servicerequest WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.servicerequest WHERE globalid = p_globalid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.servicerequest ( objectid, organization_id, recdatetime, source, entrytech, priority, supervisor, assignedtech, status, clranon, clrfname, clrphone1, clrphone2, clremail, clrcompany, clraddr1, clraddr2, clrcity, clrstate, clrzip, clrother, clrcontpref, reqcompany, reqaddr1, reqaddr2, reqcity, reqstate, reqzip, reqcrossst, reqsubdiv, reqmapgrid, reqpermission, reqtarget, reqdescr, reqnotesfortech, reqnotesforcust, reqfldnotes, reqprogramactions, datetimeclosed, techclosed, sr_number, reviewed, reviewedby, revieweddate, accepted, accepteddate, rejectedby, rejecteddate, rejectedreason, duedate, acceptedby, comments, estcompletedate, nextaction, recordstatus, globalid, created_user, created_date, last_edited_user, last_edited_date, firstresponsedate, responsedaycount, allowed, xvalue, yvalue, validx, validy, externalid, externalerror, pointlocid, notified, notifieddate, scheduled, scheduleddate, dog, schedule_period, schedule_notes, spanish, creationdate, creator, editdate, editor, issuesreported, jurisdiction, notificationtimestamp, zone, zone2, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_recdatetime, p_source, p_entrytech, p_priority, p_supervisor, p_assignedtech, p_status, p_clranon, p_clrfname, p_clrphone1, p_clrphone2, p_clremail, p_clrcompany, p_clraddr1, p_clraddr2, p_clrcity, p_clrstate, p_clrzip, p_clrother, p_clrcontpref, p_reqcompany, p_reqaddr1, p_reqaddr2, p_reqcity, p_reqstate, p_reqzip, p_reqcrossst, p_reqsubdiv, p_reqmapgrid, p_reqpermission, p_reqtarget, p_reqdescr, p_reqnotesfortech, p_reqnotesforcust, p_reqfldnotes, p_reqprogramactions, p_datetimeclosed, p_techclosed, p_sr_number, p_reviewed, p_reviewedby, p_revieweddate, p_accepted, p_accepteddate, p_rejectedby, p_rejecteddate, p_rejectedreason, p_duedate, p_acceptedby, p_comments, p_estcompletedate, p_nextaction, p_recordstatus, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_firstresponsedate, p_responsedaycount, p_allowed, p_xvalue, p_yvalue, p_validx, p_validy, p_externalid, p_externalerror, p_pointlocid, p_notified, p_notifieddate, p_scheduled, p_scheduleddate, p_dog, p_schedule_period, p_schedule_notes, p_spanish, p_creationdate, p_creator, p_editdate, p_editor, p_issuesreported, p_jurisdiction, p_notificationtimestamp, p_zone, p_zone2, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_speciesabundance( p_objectid bigint, p_organization_id INTEGER, p_trapdata_id uuid, p_species varchar, p_males smallint, p_unknown smallint, p_bloodedfem smallint, p_gravidfem smallint, p_larvae smallint, p_poolstogen smallint, p_processed smallint, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_pupae smallint, p_eggs smallint, p_females integer, p_total integer, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_yearweek integer, p_globalzscore double precision, p_r7score double precision, p_r8score double precision, p_h3r7 varchar, p_h3r8 varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.speciesabundance lv WHERE lv.globalid = p_globalid AND lv.organization_id = p_organization_id AND lv.trapdata_id IS NOT DISTINCT FROM p_trapdata_id AND lv.species IS NOT DISTINCT FROM p_species AND lv.males IS NOT DISTINCT FROM p_males AND lv.unknown IS NOT DISTINCT FROM p_unknown AND lv.bloodedfem IS NOT DISTINCT FROM p_bloodedfem AND lv.gravidfem IS NOT DISTINCT FROM p_gravidfem AND lv.larvae IS NOT DISTINCT FROM p_larvae AND lv.poolstogen IS NOT DISTINCT FROM p_poolstogen AND lv.processed IS NOT DISTINCT FROM p_processed AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.pupae IS NOT DISTINCT FROM p_pupae AND lv.eggs IS NOT DISTINCT FROM p_eggs AND lv.females IS NOT DISTINCT FROM p_females AND lv.total IS NOT DISTINCT FROM p_total AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.yearweek IS NOT DISTINCT FROM p_yearweek AND lv.globalzscore IS NOT DISTINCT FROM p_globalzscore AND lv.r7score IS NOT DISTINCT FROM p_r7score AND lv.r8score IS NOT DISTINCT FROM p_r8score AND lv.h3r7 IS NOT DISTINCT FROM p_h3r7 AND lv.h3r8 IS NOT DISTINCT FROM p_h3r8 AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.speciesabundance WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.speciesabundance WHERE globalid = p_globalid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.speciesabundance ( objectid, organization_id, trapdata_id, species, males, unknown, bloodedfem, gravidfem, larvae, poolstogen, processed, globalid, created_user, created_date, last_edited_user, last_edited_date, pupae, eggs, females, total, creationdate, creator, editdate, editor, yearweek, globalzscore, r7score, r8score, h3r7, h3r8, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_trapdata_id, p_species, p_males, p_unknown, p_bloodedfem, p_gravidfem, p_larvae, p_poolstogen, p_processed, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_pupae, p_eggs, p_females, p_total, p_creationdate, p_creator, p_editdate, p_editor, p_yearweek, p_globalzscore, p_r7score, p_r8score, p_h3r7, p_h3r8, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_stormdrain( p_objectid bigint, p_organization_id INTEGER, p_nexttreatmentdate timestamp, p_lasttreatdate timestamp, p_lastaction varchar, p_symbology varchar, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_laststatus varchar, p_zone varchar, p_zone2 varchar, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_type varchar, p_jurisdiction varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.stormdrain lv WHERE lv.globalid = p_globalid AND lv.organization_id = p_organization_id AND lv.nexttreatmentdate IS NOT DISTINCT FROM p_nexttreatmentdate AND lv.lasttreatdate IS NOT DISTINCT FROM p_lasttreatdate AND lv.lastaction IS NOT DISTINCT FROM p_lastaction AND lv.symbology IS NOT DISTINCT FROM p_symbology AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.laststatus IS NOT DISTINCT FROM p_laststatus AND lv.zone IS NOT DISTINCT FROM p_zone AND lv.zone2 IS NOT DISTINCT FROM p_zone2 AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.type IS NOT DISTINCT FROM p_type AND lv.jurisdiction IS NOT DISTINCT FROM p_jurisdiction AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.stormdrain WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.stormdrain WHERE globalid = p_globalid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.stormdrain ( objectid, organization_id, nexttreatmentdate, lasttreatdate, lastaction, symbology, globalid, created_user, created_date, last_edited_user, last_edited_date, laststatus, zone, zone2, creationdate, creator, editdate, editor, type, jurisdiction, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_nexttreatmentdate, p_lasttreatdate, p_lastaction, p_symbology, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_laststatus, p_zone, p_zone2, p_creationdate, p_creator, p_editdate, p_editor, p_type, p_jurisdiction, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_timecard( p_objectid bigint, p_organization_id INTEGER, p_activity varchar, p_startdatetime timestamp, p_enddatetime timestamp, p_comments varchar, p_externalid varchar, p_equiptype varchar, p_locationname varchar, p_zone varchar, p_zone2 varchar, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_linelocid uuid, p_pointlocid uuid, p_polygonlocid uuid, p_lclocid uuid, p_samplelocid uuid, p_srid uuid, p_traplocid uuid, p_fieldtech varchar, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_rodentlocid uuid, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.timecard lv WHERE lv.globalid = p_globalid AND lv.organization_id = p_organization_id AND lv.activity IS NOT DISTINCT FROM p_activity AND lv.startdatetime IS NOT DISTINCT FROM p_startdatetime AND lv.enddatetime IS NOT DISTINCT FROM p_enddatetime AND lv.comments IS NOT DISTINCT FROM p_comments AND lv.externalid IS NOT DISTINCT FROM p_externalid AND lv.equiptype IS NOT DISTINCT FROM p_equiptype AND lv.locationname IS NOT DISTINCT FROM p_locationname AND lv.zone IS NOT DISTINCT FROM p_zone AND lv.zone2 IS NOT DISTINCT FROM p_zone2 AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.linelocid IS NOT DISTINCT FROM p_linelocid AND lv.pointlocid IS NOT DISTINCT FROM p_pointlocid AND lv.polygonlocid IS NOT DISTINCT FROM p_polygonlocid AND lv.lclocid IS NOT DISTINCT FROM p_lclocid AND lv.samplelocid IS NOT DISTINCT FROM p_samplelocid AND lv.srid IS NOT DISTINCT FROM p_srid AND lv.traplocid IS NOT DISTINCT FROM p_traplocid AND lv.fieldtech IS NOT DISTINCT FROM p_fieldtech AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.rodentlocid IS NOT DISTINCT FROM p_rodentlocid AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.timecard WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.timecard WHERE globalid = p_globalid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.timecard ( objectid, organization_id, activity, startdatetime, enddatetime, comments, externalid, equiptype, locationname, zone, zone2, globalid, created_user, created_date, last_edited_user, last_edited_date, linelocid, pointlocid, polygonlocid, lclocid, samplelocid, srid, traplocid, fieldtech, creationdate, creator, editdate, editor, rodentlocid, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_activity, p_startdatetime, p_enddatetime, p_comments, p_externalid, p_equiptype, p_locationname, p_zone, p_zone2, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_linelocid, p_pointlocid, p_polygonlocid, p_lclocid, p_samplelocid, p_srid, p_traplocid, p_fieldtech, p_creationdate, p_creator, p_editdate, p_editor, p_rodentlocid, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_trapdata( p_objectid bigint, p_organization_id INTEGER, p_traptype varchar, p_trapactivitytype varchar, p_startdatetime timestamp, p_enddatetime timestamp, p_comments varchar, p_idbytech varchar, p_sortbytech varchar, p_processed smallint, p_sitecond varchar, p_locationname varchar, p_recordstatus smallint, p_reviewed smallint, p_reviewedby varchar, p_revieweddate timestamp, p_trapcondition varchar, p_trapnights smallint, p_zone varchar, p_zone2 varchar, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_srid uuid, p_fieldtech varchar, p_gatewaysync smallint, p_loc_id uuid, p_voltage double precision, p_winddir varchar, p_windspeed double precision, p_avetemp double precision, p_raingauge double precision, p_lr smallint, p_field integer, p_vectorsurvtrapdataid varchar, p_vectorsurvtraplocationid varchar, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_lure varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.trapdata lv WHERE lv.globalid = p_globalid AND lv.organization_id = p_organization_id AND lv.traptype IS NOT DISTINCT FROM p_traptype AND lv.trapactivitytype IS NOT DISTINCT FROM p_trapactivitytype AND lv.startdatetime IS NOT DISTINCT FROM p_startdatetime AND lv.enddatetime IS NOT DISTINCT FROM p_enddatetime AND lv.comments IS NOT DISTINCT FROM p_comments AND lv.idbytech IS NOT DISTINCT FROM p_idbytech AND lv.sortbytech IS NOT DISTINCT FROM p_sortbytech AND lv.processed IS NOT DISTINCT FROM p_processed AND lv.sitecond IS NOT DISTINCT FROM p_sitecond AND lv.locationname IS NOT DISTINCT FROM p_locationname AND lv.recordstatus IS NOT DISTINCT FROM p_recordstatus AND lv.reviewed IS NOT DISTINCT FROM p_reviewed AND lv.reviewedby IS NOT DISTINCT FROM p_reviewedby AND lv.revieweddate IS NOT DISTINCT FROM p_revieweddate AND lv.trapcondition IS NOT DISTINCT FROM p_trapcondition AND lv.trapnights IS NOT DISTINCT FROM p_trapnights AND lv.zone IS NOT DISTINCT FROM p_zone AND lv.zone2 IS NOT DISTINCT FROM p_zone2 AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.srid IS NOT DISTINCT FROM p_srid AND lv.fieldtech IS NOT DISTINCT FROM p_fieldtech AND lv.gatewaysync IS NOT DISTINCT FROM p_gatewaysync AND lv.loc_id IS NOT DISTINCT FROM p_loc_id AND lv.voltage IS NOT DISTINCT FROM p_voltage AND lv.winddir IS NOT DISTINCT FROM p_winddir AND lv.windspeed IS NOT DISTINCT FROM p_windspeed AND lv.avetemp IS NOT DISTINCT FROM p_avetemp AND lv.raingauge IS NOT DISTINCT FROM p_raingauge AND lv.lr IS NOT DISTINCT FROM p_lr AND lv.field IS NOT DISTINCT FROM p_field AND lv.vectorsurvtrapdataid IS NOT DISTINCT FROM p_vectorsurvtrapdataid AND lv.vectorsurvtraplocationid IS NOT DISTINCT FROM p_vectorsurvtraplocationid AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.lure IS NOT DISTINCT FROM p_lure AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.trapdata WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.trapdata WHERE globalid = p_globalid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.trapdata ( objectid, organization_id, traptype, trapactivitytype, startdatetime, enddatetime, comments, idbytech, sortbytech, processed, sitecond, locationname, recordstatus, reviewed, reviewedby, revieweddate, trapcondition, trapnights, zone, zone2, globalid, created_user, created_date, last_edited_user, last_edited_date, srid, fieldtech, gatewaysync, loc_id, voltage, winddir, windspeed, avetemp, raingauge, lr, field, vectorsurvtrapdataid, vectorsurvtraplocationid, creationdate, creator, editdate, editor, lure, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_traptype, p_trapactivitytype, p_startdatetime, p_enddatetime, p_comments, p_idbytech, p_sortbytech, p_processed, p_sitecond, p_locationname, p_recordstatus, p_reviewed, p_reviewedby, p_revieweddate, p_trapcondition, p_trapnights, p_zone, p_zone2, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_srid, p_fieldtech, p_gatewaysync, p_loc_id, p_voltage, p_winddir, p_windspeed, p_avetemp, p_raingauge, p_lr, p_field, p_vectorsurvtrapdataid, p_vectorsurvtraplocationid, p_creationdate, p_creator, p_editdate, p_editor, p_lure, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_traplocation( p_objectid bigint, p_organization_id INTEGER, p_name varchar, p_zone varchar, p_habitat varchar, p_priority varchar, p_usetype varchar, p_active smallint, p_description varchar, p_accessdesc varchar, p_comments varchar, p_externalid varchar, p_nextactiondatescheduled timestamp, p_zone2 varchar, p_locationnumber integer, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_gatewaysync smallint, p_route integer, p_set_dow integer, p_route_order integer, p_vectorsurvsiteid varchar, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_h3r7 varchar, p_h3r8 varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.traplocation lv WHERE lv.globalid = p_globalid AND lv.organization_id = p_organization_id AND lv.name IS NOT DISTINCT FROM p_name AND lv.zone IS NOT DISTINCT FROM p_zone AND lv.habitat IS NOT DISTINCT FROM p_habitat AND lv.priority IS NOT DISTINCT FROM p_priority AND lv.usetype IS NOT DISTINCT FROM p_usetype AND lv.active IS NOT DISTINCT FROM p_active AND lv.description IS NOT DISTINCT FROM p_description AND lv.accessdesc IS NOT DISTINCT FROM p_accessdesc AND lv.comments IS NOT DISTINCT FROM p_comments AND lv.externalid IS NOT DISTINCT FROM p_externalid AND lv.nextactiondatescheduled IS NOT DISTINCT FROM p_nextactiondatescheduled AND lv.zone2 IS NOT DISTINCT FROM p_zone2 AND lv.locationnumber IS NOT DISTINCT FROM p_locationnumber AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.gatewaysync IS NOT DISTINCT FROM p_gatewaysync AND lv.route IS NOT DISTINCT FROM p_route AND lv.set_dow IS NOT DISTINCT FROM p_set_dow AND lv.route_order IS NOT DISTINCT FROM p_route_order AND lv.vectorsurvsiteid IS NOT DISTINCT FROM p_vectorsurvsiteid AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.h3r7 IS NOT DISTINCT FROM p_h3r7 AND lv.h3r8 IS NOT DISTINCT FROM p_h3r8 AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.traplocation WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.traplocation WHERE globalid = p_globalid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.traplocation ( objectid, organization_id, name, zone, habitat, priority, usetype, active, description, accessdesc, comments, externalid, nextactiondatescheduled, zone2, locationnumber, globalid, created_user, created_date, last_edited_user, last_edited_date, gatewaysync, route, set_dow, route_order, vectorsurvsiteid, creationdate, creator, editdate, editor, h3r7, h3r8, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_name, p_zone, p_habitat, p_priority, p_usetype, p_active, p_description, p_accessdesc, p_comments, p_externalid, p_nextactiondatescheduled, p_zone2, p_locationnumber, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_gatewaysync, p_route, p_set_dow, p_route_order, p_vectorsurvsiteid, p_creationdate, p_creator, p_editdate, p_editor, p_h3r7, p_h3r8, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_treatmentarea( p_objectid bigint, p_organization_id INTEGER, p_treat_id uuid, p_session_id uuid, p_treatdate timestamp, p_comments varchar, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_notified smallint, p_type varchar, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_shape__area double precision, p_shape__length double precision, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.treatmentarea lv WHERE lv.globalid = p_globalid AND lv.organization_id = p_organization_id AND lv.treat_id IS NOT DISTINCT FROM p_treat_id AND lv.session_id IS NOT DISTINCT FROM p_session_id AND lv.treatdate IS NOT DISTINCT FROM p_treatdate AND lv.comments IS NOT DISTINCT FROM p_comments AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.notified IS NOT DISTINCT FROM p_notified AND lv.type IS NOT DISTINCT FROM p_type AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.shape__area IS NOT DISTINCT FROM p_shape__area AND lv.shape__length IS NOT DISTINCT FROM p_shape__length AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.treatmentarea WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.treatmentarea WHERE globalid = p_globalid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.treatmentarea ( objectid, organization_id, treat_id, session_id, treatdate, comments, globalid, created_user, created_date, last_edited_user, last_edited_date, notified, type, creationdate, creator, editdate, editor, shape__area, shape__length, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_treat_id, p_session_id, p_treatdate, p_comments, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_notified, p_type, p_creationdate, p_creator, p_editdate, p_editor, p_shape__area, p_shape__length, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_treatment( p_objectid bigint, p_organization_id INTEGER, p_activity varchar, p_treatarea double precision, p_areaunit varchar, p_product varchar, p_qty double precision, p_qtyunit varchar, p_method varchar, p_equiptype varchar, p_comments varchar, p_avetemp double precision, p_windspeed double precision, p_winddir varchar, p_raingauge double precision, p_startdatetime timestamp, p_enddatetime timestamp, p_insp_id uuid, p_reviewed smallint, p_reviewedby varchar, p_revieweddate timestamp, p_locationname varchar, p_zone varchar, p_warningoverride smallint, p_recordstatus smallint, p_zone2 varchar, p_treatacres double precision, p_tirecount smallint, p_cbcount smallint, p_containercount smallint, p_globalid uuid, p_treatmentlength double precision, p_treatmenthours double precision, p_treatmentlengthunits varchar, p_linelocid uuid, p_pointlocid uuid, p_polygonlocid uuid, p_srid uuid, p_sdid uuid, p_barrierrouteid uuid, p_ulvrouteid uuid, p_fieldtech varchar, p_ptaid uuid, p_flowrate double precision, p_habitat varchar, p_treathectares double precision, p_invloc varchar, p_temp_sitecond varchar, p_sitecond varchar, p_totalcostprodcut double precision, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_targetspecies varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.treatment lv WHERE lv.globalid = p_globalid AND lv.organization_id = p_organization_id AND lv.activity IS NOT DISTINCT FROM p_activity AND lv.treatarea IS NOT DISTINCT FROM p_treatarea AND lv.areaunit IS NOT DISTINCT FROM p_areaunit AND lv.product IS NOT DISTINCT FROM p_product AND lv.qty IS NOT DISTINCT FROM p_qty AND lv.qtyunit IS NOT DISTINCT FROM p_qtyunit AND lv.method IS NOT DISTINCT FROM p_method AND lv.equiptype IS NOT DISTINCT FROM p_equiptype AND lv.comments IS NOT DISTINCT FROM p_comments AND lv.avetemp IS NOT DISTINCT FROM p_avetemp AND lv.windspeed IS NOT DISTINCT FROM p_windspeed AND lv.winddir IS NOT DISTINCT FROM p_winddir AND lv.raingauge IS NOT DISTINCT FROM p_raingauge AND lv.startdatetime IS NOT DISTINCT FROM p_startdatetime AND lv.enddatetime IS NOT DISTINCT FROM p_enddatetime AND lv.insp_id IS NOT DISTINCT FROM p_insp_id AND lv.reviewed IS NOT DISTINCT FROM p_reviewed AND lv.reviewedby IS NOT DISTINCT FROM p_reviewedby AND lv.revieweddate IS NOT DISTINCT FROM p_revieweddate AND lv.locationname IS NOT DISTINCT FROM p_locationname AND lv.zone IS NOT DISTINCT FROM p_zone AND lv.warningoverride IS NOT DISTINCT FROM p_warningoverride AND lv.recordstatus IS NOT DISTINCT FROM p_recordstatus AND lv.zone2 IS NOT DISTINCT FROM p_zone2 AND lv.treatacres IS NOT DISTINCT FROM p_treatacres AND lv.tirecount IS NOT DISTINCT FROM p_tirecount AND lv.cbcount IS NOT DISTINCT FROM p_cbcount AND lv.containercount IS NOT DISTINCT FROM p_containercount AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.treatmentlength IS NOT DISTINCT FROM p_treatmentlength AND lv.treatmenthours IS NOT DISTINCT FROM p_treatmenthours AND lv.treatmentlengthunits IS NOT DISTINCT FROM p_treatmentlengthunits AND lv.linelocid IS NOT DISTINCT FROM p_linelocid AND lv.pointlocid IS NOT DISTINCT FROM p_pointlocid AND lv.polygonlocid IS NOT DISTINCT FROM p_polygonlocid AND lv.srid IS NOT DISTINCT FROM p_srid AND lv.sdid IS NOT DISTINCT FROM p_sdid AND lv.barrierrouteid IS NOT DISTINCT FROM p_barrierrouteid AND lv.ulvrouteid IS NOT DISTINCT FROM p_ulvrouteid AND lv.fieldtech IS NOT DISTINCT FROM p_fieldtech AND lv.ptaid IS NOT DISTINCT FROM p_ptaid AND lv.flowrate IS NOT DISTINCT FROM p_flowrate AND lv.habitat IS NOT DISTINCT FROM p_habitat AND lv.treathectares IS NOT DISTINCT FROM p_treathectares AND lv.invloc IS NOT DISTINCT FROM p_invloc AND lv.temp_sitecond IS NOT DISTINCT FROM p_temp_sitecond AND lv.sitecond IS NOT DISTINCT FROM p_sitecond AND lv.totalcostprodcut IS NOT DISTINCT FROM p_totalcostprodcut AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.targetspecies IS NOT DISTINCT FROM p_targetspecies AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.treatment WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.treatment WHERE globalid = p_globalid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.treatment ( objectid, organization_id, activity, treatarea, areaunit, product, qty, qtyunit, method, equiptype, comments, avetemp, windspeed, winddir, raingauge, startdatetime, enddatetime, insp_id, reviewed, reviewedby, revieweddate, locationname, zone, warningoverride, recordstatus, zone2, treatacres, tirecount, cbcount, containercount, globalid, treatmentlength, treatmenthours, treatmentlengthunits, linelocid, pointlocid, polygonlocid, srid, sdid, barrierrouteid, ulvrouteid, fieldtech, ptaid, flowrate, habitat, treathectares, invloc, temp_sitecond, sitecond, totalcostprodcut, creationdate, creator, editdate, editor, targetspecies, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_activity, p_treatarea, p_areaunit, p_product, p_qty, p_qtyunit, p_method, p_equiptype, p_comments, p_avetemp, p_windspeed, p_winddir, p_raingauge, p_startdatetime, p_enddatetime, p_insp_id, p_reviewed, p_reviewedby, p_revieweddate, p_locationname, p_zone, p_warningoverride, p_recordstatus, p_zone2, p_treatacres, p_tirecount, p_cbcount, p_containercount, p_globalid, p_treatmentlength, p_treatmenthours, p_treatmentlengthunits, p_linelocid, p_pointlocid, p_polygonlocid, p_srid, p_sdid, p_barrierrouteid, p_ulvrouteid, p_fieldtech, p_ptaid, p_flowrate, p_habitat, p_treathectares, p_invloc, p_temp_sitecond, p_sitecond, p_totalcostprodcut, p_creationdate, p_creator, p_editdate, p_editor, p_targetspecies, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_zones2( p_objectid bigint, p_organization_id INTEGER, p_name varchar, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_shape__area double precision, p_shape__length double precision, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.zones2 lv WHERE lv.globalid = p_globalid AND lv.organization_id = p_organization_id AND lv.name IS NOT DISTINCT FROM p_name AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.shape__area IS NOT DISTINCT FROM p_shape__area AND lv.shape__length IS NOT DISTINCT FROM p_shape__length AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.zones2 WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.zones2 WHERE globalid = p_globalid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.zones2 ( objectid, organization_id, name, globalid, created_user, created_date, last_edited_user, last_edited_date, creationdate, creator, editdate, editor, shape__area, shape__length, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_name, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_creationdate, p_creator, p_editdate, p_editor, p_shape__area, p_shape__length, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_zones( p_objectid bigint, p_organization_id INTEGER, p_name varchar, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_active integer, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_shape__area double precision, p_shape__length double precision, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.zones lv WHERE lv.globalid = p_globalid AND lv.organization_id = p_organization_id AND lv.name IS NOT DISTINCT FROM p_name AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.active IS NOT DISTINCT FROM p_active AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.shape__area IS NOT DISTINCT FROM p_shape__area AND lv.shape__length IS NOT DISTINCT FROM p_shape__length AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.zones WHERE globalid = p_globalid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.zones WHERE globalid = p_globalid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.zones ( objectid, organization_id, name, globalid, created_user, created_date, last_edited_user, last_edited_date, active, creationdate, creator, editdate, editor, shape__area, shape__length, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_name, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_active, p_creationdate, p_creator, p_editdate, p_editor, p_shape__area, p_shape__length, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose Down -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_containerrelate( p_objectid bigint, p_organization_id INTEGER, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_inspsampleid uuid, p_mosquitoinspid uuid, p_treatmentid uuid, p_containertype varchar, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.containerrelate lv WHERE lv.objectid = p_objectid AND lv.organization_id = p_organization_id AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.inspsampleid IS NOT DISTINCT FROM p_inspsampleid AND lv.mosquitoinspid IS NOT DISTINCT FROM p_mosquitoinspid AND lv.treatmentid IS NOT DISTINCT FROM p_treatmentid AND lv.containertype IS NOT DISTINCT FROM p_containertype AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.containerrelate WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.containerrelate WHERE objectid = p_objectid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.containerrelate ( objectid, organization_id, globalid, created_user, created_date, last_edited_user, last_edited_date, inspsampleid, mosquitoinspid, treatmentid, containertype, creationdate, creator, editdate, editor, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_inspsampleid, p_mosquitoinspid, p_treatmentid, p_containertype, p_creationdate, p_creator, p_editdate, p_editor, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_fieldscoutinglog( p_objectid bigint, p_organization_id INTEGER, p_status smallint, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.fieldscoutinglog lv WHERE lv.objectid = p_objectid AND lv.organization_id = p_organization_id AND lv.status IS NOT DISTINCT FROM p_status AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.fieldscoutinglog WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.fieldscoutinglog WHERE objectid = p_objectid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.fieldscoutinglog ( objectid, organization_id, status, globalid, created_user, created_date, last_edited_user, last_edited_date, creationdate, creator, editdate, editor, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_status, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_creationdate, p_creator, p_editdate, p_editor, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_habitatrelate( p_objectid bigint, p_organization_id INTEGER, p_foreign_id uuid, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_habitattype varchar, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.habitatrelate lv WHERE lv.objectid = p_objectid AND lv.organization_id = p_organization_id AND lv.foreign_id IS NOT DISTINCT FROM p_foreign_id AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.habitattype IS NOT DISTINCT FROM p_habitattype AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.habitatrelate WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.habitatrelate WHERE objectid = p_objectid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.habitatrelate ( objectid, organization_id, foreign_id, globalid, created_user, created_date, last_edited_user, last_edited_date, habitattype, creationdate, creator, editdate, editor, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_foreign_id, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_habitattype, p_creationdate, p_creator, p_editdate, p_editor, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_inspectionsampledetail( p_objectid bigint, p_organization_id INTEGER, p_inspsample_id uuid, p_fieldspecies varchar, p_flarvcount smallint, p_fpupcount smallint, p_feggcount smallint, p_flstages varchar, p_fdomstage varchar, p_fadultact varchar, p_labspecies varchar, p_llarvcount smallint, p_lpupcount smallint, p_leggcount smallint, p_ldomstage varchar, p_comments varchar, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_processed smallint, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.inspectionsampledetail lv WHERE lv.objectid = p_objectid AND lv.organization_id = p_organization_id AND lv.inspsample_id IS NOT DISTINCT FROM p_inspsample_id AND lv.fieldspecies IS NOT DISTINCT FROM p_fieldspecies AND lv.flarvcount IS NOT DISTINCT FROM p_flarvcount AND lv.fpupcount IS NOT DISTINCT FROM p_fpupcount AND lv.feggcount IS NOT DISTINCT FROM p_feggcount AND lv.flstages IS NOT DISTINCT FROM p_flstages AND lv.fdomstage IS NOT DISTINCT FROM p_fdomstage AND lv.fadultact IS NOT DISTINCT FROM p_fadultact AND lv.labspecies IS NOT DISTINCT FROM p_labspecies AND lv.llarvcount IS NOT DISTINCT FROM p_llarvcount AND lv.lpupcount IS NOT DISTINCT FROM p_lpupcount AND lv.leggcount IS NOT DISTINCT FROM p_leggcount AND lv.ldomstage IS NOT DISTINCT FROM p_ldomstage AND lv.comments IS NOT DISTINCT FROM p_comments AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.processed IS NOT DISTINCT FROM p_processed AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.inspectionsampledetail WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.inspectionsampledetail WHERE objectid = p_objectid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.inspectionsampledetail ( objectid, organization_id, inspsample_id, fieldspecies, flarvcount, fpupcount, feggcount, flstages, fdomstage, fadultact, labspecies, llarvcount, lpupcount, leggcount, ldomstage, comments, globalid, created_user, created_date, last_edited_user, last_edited_date, processed, creationdate, creator, editdate, editor, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_inspsample_id, p_fieldspecies, p_flarvcount, p_fpupcount, p_feggcount, p_flstages, p_fdomstage, p_fadultact, p_labspecies, p_llarvcount, p_lpupcount, p_leggcount, p_ldomstage, p_comments, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_processed, p_creationdate, p_creator, p_editdate, p_editor, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_inspectionsample( p_objectid bigint, p_organization_id INTEGER, p_insp_id uuid, p_sampleid varchar, p_processed smallint, p_idbytech varchar, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.inspectionsample lv WHERE lv.objectid = p_objectid AND lv.organization_id = p_organization_id AND lv.insp_id IS NOT DISTINCT FROM p_insp_id AND lv.sampleid IS NOT DISTINCT FROM p_sampleid AND lv.processed IS NOT DISTINCT FROM p_processed AND lv.idbytech IS NOT DISTINCT FROM p_idbytech AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.inspectionsample WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.inspectionsample WHERE objectid = p_objectid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.inspectionsample ( objectid, organization_id, insp_id, sampleid, processed, idbytech, globalid, created_user, created_date, last_edited_user, last_edited_date, creationdate, creator, editdate, editor, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_insp_id, p_sampleid, p_processed, p_idbytech, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_creationdate, p_creator, p_editdate, p_editor, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_linelocation( p_objectid bigint, p_organization_id INTEGER, p_name varchar, p_zone varchar, p_habitat varchar, p_priority varchar, p_usetype varchar, p_active smallint, p_description varchar, p_accessdesc varchar, p_comments varchar, p_symbology varchar, p_externalid varchar, p_acres double precision, p_nextactiondatescheduled timestamp, p_larvinspectinterval smallint, p_length_ft double precision, p_width_ft double precision, p_zone2 varchar, p_locationnumber integer, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_lastinspectdate timestamp, p_lastinspectbreeding varchar, p_lastinspectavglarvae double precision, p_lastinspectavgpupae double precision, p_lastinspectlstages varchar, p_lastinspectactiontaken varchar, p_lastinspectfieldspecies varchar, p_lasttreatdate timestamp, p_lasttreatproduct varchar, p_lasttreatqty double precision, p_lasttreatqtyunit varchar, p_hectares double precision, p_lastinspectactivity varchar, p_lasttreatactivity varchar, p_length_meters double precision, p_width_meters double precision, p_lastinspectconditions varchar, p_waterorigin varchar, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_jurisdiction varchar, p_shape__length double precision, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.linelocation lv WHERE lv.objectid = p_objectid AND lv.organization_id = p_organization_id AND lv.name IS NOT DISTINCT FROM p_name AND lv.zone IS NOT DISTINCT FROM p_zone AND lv.habitat IS NOT DISTINCT FROM p_habitat AND lv.priority IS NOT DISTINCT FROM p_priority AND lv.usetype IS NOT DISTINCT FROM p_usetype AND lv.active IS NOT DISTINCT FROM p_active AND lv.description IS NOT DISTINCT FROM p_description AND lv.accessdesc IS NOT DISTINCT FROM p_accessdesc AND lv.comments IS NOT DISTINCT FROM p_comments AND lv.symbology IS NOT DISTINCT FROM p_symbology AND lv.externalid IS NOT DISTINCT FROM p_externalid AND lv.acres IS NOT DISTINCT FROM p_acres AND lv.nextactiondatescheduled IS NOT DISTINCT FROM p_nextactiondatescheduled AND lv.larvinspectinterval IS NOT DISTINCT FROM p_larvinspectinterval AND lv.length_ft IS NOT DISTINCT FROM p_length_ft AND lv.width_ft IS NOT DISTINCT FROM p_width_ft AND lv.zone2 IS NOT DISTINCT FROM p_zone2 AND lv.locationnumber IS NOT DISTINCT FROM p_locationnumber AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.lastinspectdate IS NOT DISTINCT FROM p_lastinspectdate AND lv.lastinspectbreeding IS NOT DISTINCT FROM p_lastinspectbreeding AND lv.lastinspectavglarvae IS NOT DISTINCT FROM p_lastinspectavglarvae AND lv.lastinspectavgpupae IS NOT DISTINCT FROM p_lastinspectavgpupae AND lv.lastinspectlstages IS NOT DISTINCT FROM p_lastinspectlstages AND lv.lastinspectactiontaken IS NOT DISTINCT FROM p_lastinspectactiontaken AND lv.lastinspectfieldspecies IS NOT DISTINCT FROM p_lastinspectfieldspecies AND lv.lasttreatdate IS NOT DISTINCT FROM p_lasttreatdate AND lv.lasttreatproduct IS NOT DISTINCT FROM p_lasttreatproduct AND lv.lasttreatqty IS NOT DISTINCT FROM p_lasttreatqty AND lv.lasttreatqtyunit IS NOT DISTINCT FROM p_lasttreatqtyunit AND lv.hectares IS NOT DISTINCT FROM p_hectares AND lv.lastinspectactivity IS NOT DISTINCT FROM p_lastinspectactivity AND lv.lasttreatactivity IS NOT DISTINCT FROM p_lasttreatactivity AND lv.length_meters IS NOT DISTINCT FROM p_length_meters AND lv.width_meters IS NOT DISTINCT FROM p_width_meters AND lv.lastinspectconditions IS NOT DISTINCT FROM p_lastinspectconditions AND lv.waterorigin IS NOT DISTINCT FROM p_waterorigin AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.jurisdiction IS NOT DISTINCT FROM p_jurisdiction AND lv.shape__length IS NOT DISTINCT FROM p_shape__length AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.linelocation WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.linelocation WHERE objectid = p_objectid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.linelocation ( objectid, organization_id, name, zone, habitat, priority, usetype, active, description, accessdesc, comments, symbology, externalid, acres, nextactiondatescheduled, larvinspectinterval, length_ft, width_ft, zone2, locationnumber, globalid, created_user, created_date, last_edited_user, last_edited_date, lastinspectdate, lastinspectbreeding, lastinspectavglarvae, lastinspectavgpupae, lastinspectlstages, lastinspectactiontaken, lastinspectfieldspecies, lasttreatdate, lasttreatproduct, lasttreatqty, lasttreatqtyunit, hectares, lastinspectactivity, lasttreatactivity, length_meters, width_meters, lastinspectconditions, waterorigin, creationdate, creator, editdate, editor, jurisdiction, shape__length, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_name, p_zone, p_habitat, p_priority, p_usetype, p_active, p_description, p_accessdesc, p_comments, p_symbology, p_externalid, p_acres, p_nextactiondatescheduled, p_larvinspectinterval, p_length_ft, p_width_ft, p_zone2, p_locationnumber, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_lastinspectdate, p_lastinspectbreeding, p_lastinspectavglarvae, p_lastinspectavgpupae, p_lastinspectlstages, p_lastinspectactiontaken, p_lastinspectfieldspecies, p_lasttreatdate, p_lasttreatproduct, p_lasttreatqty, p_lasttreatqtyunit, p_hectares, p_lastinspectactivity, p_lasttreatactivity, p_length_meters, p_width_meters, p_lastinspectconditions, p_waterorigin, p_creationdate, p_creator, p_editdate, p_editor, p_jurisdiction, p_shape__length, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_locationtracking( p_objectid bigint, p_organization_id INTEGER, p_accuracy double precision, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_globalid uuid, p_fieldtech varchar, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.locationtracking lv WHERE lv.objectid = p_objectid AND lv.organization_id = p_organization_id AND lv.accuracy IS NOT DISTINCT FROM p_accuracy AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.fieldtech IS NOT DISTINCT FROM p_fieldtech AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.locationtracking WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.locationtracking WHERE objectid = p_objectid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.locationtracking ( objectid, organization_id, accuracy, created_user, created_date, last_edited_user, last_edited_date, globalid, fieldtech, creationdate, creator, editdate, editor, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_accuracy, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_globalid, p_fieldtech, p_creationdate, p_creator, p_editdate, p_editor, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_mosquitoinspection( p_objectid bigint, p_organization_id INTEGER, p_numdips smallint, p_activity varchar, p_breeding varchar, p_totlarvae smallint, p_totpupae smallint, p_eggs smallint, p_posdips smallint, p_adultact varchar, p_lstages varchar, p_domstage varchar, p_actiontaken varchar, p_comments varchar, p_avetemp double precision, p_windspeed double precision, p_raingauge double precision, p_startdatetime timestamp, p_enddatetime timestamp, p_winddir varchar, p_avglarvae double precision, p_avgpupae double precision, p_reviewed smallint, p_reviewedby varchar, p_revieweddate timestamp, p_locationname varchar, p_zone varchar, p_recordstatus smallint, p_zone2 varchar, p_personalcontact smallint, p_tirecount smallint, p_cbcount smallint, p_containercount smallint, p_fieldspecies varchar, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_linelocid uuid, p_pointlocid uuid, p_polygonlocid uuid, p_srid uuid, p_fieldtech varchar, p_larvaepresent smallint, p_pupaepresent smallint, p_sdid uuid, p_sitecond varchar, p_positivecontainercount smallint, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_jurisdiction varchar, p_visualmonitoring smallint, p_vmcomments varchar, p_adminaction varchar, p_ptaid uuid, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.mosquitoinspection lv WHERE lv.objectid = p_objectid AND lv.organization_id = p_organization_id AND lv.numdips IS NOT DISTINCT FROM p_numdips AND lv.activity IS NOT DISTINCT FROM p_activity AND lv.breeding IS NOT DISTINCT FROM p_breeding AND lv.totlarvae IS NOT DISTINCT FROM p_totlarvae AND lv.totpupae IS NOT DISTINCT FROM p_totpupae AND lv.eggs IS NOT DISTINCT FROM p_eggs AND lv.posdips IS NOT DISTINCT FROM p_posdips AND lv.adultact IS NOT DISTINCT FROM p_adultact AND lv.lstages IS NOT DISTINCT FROM p_lstages AND lv.domstage IS NOT DISTINCT FROM p_domstage AND lv.actiontaken IS NOT DISTINCT FROM p_actiontaken AND lv.comments IS NOT DISTINCT FROM p_comments AND lv.avetemp IS NOT DISTINCT FROM p_avetemp AND lv.windspeed IS NOT DISTINCT FROM p_windspeed AND lv.raingauge IS NOT DISTINCT FROM p_raingauge AND lv.startdatetime IS NOT DISTINCT FROM p_startdatetime AND lv.enddatetime IS NOT DISTINCT FROM p_enddatetime AND lv.winddir IS NOT DISTINCT FROM p_winddir AND lv.avglarvae IS NOT DISTINCT FROM p_avglarvae AND lv.avgpupae IS NOT DISTINCT FROM p_avgpupae AND lv.reviewed IS NOT DISTINCT FROM p_reviewed AND lv.reviewedby IS NOT DISTINCT FROM p_reviewedby AND lv.revieweddate IS NOT DISTINCT FROM p_revieweddate AND lv.locationname IS NOT DISTINCT FROM p_locationname AND lv.zone IS NOT DISTINCT FROM p_zone AND lv.recordstatus IS NOT DISTINCT FROM p_recordstatus AND lv.zone2 IS NOT DISTINCT FROM p_zone2 AND lv.personalcontact IS NOT DISTINCT FROM p_personalcontact AND lv.tirecount IS NOT DISTINCT FROM p_tirecount AND lv.cbcount IS NOT DISTINCT FROM p_cbcount AND lv.containercount IS NOT DISTINCT FROM p_containercount AND lv.fieldspecies IS NOT DISTINCT FROM p_fieldspecies AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.linelocid IS NOT DISTINCT FROM p_linelocid AND lv.pointlocid IS NOT DISTINCT FROM p_pointlocid AND lv.polygonlocid IS NOT DISTINCT FROM p_polygonlocid AND lv.srid IS NOT DISTINCT FROM p_srid AND lv.fieldtech IS NOT DISTINCT FROM p_fieldtech AND lv.larvaepresent IS NOT DISTINCT FROM p_larvaepresent AND lv.pupaepresent IS NOT DISTINCT FROM p_pupaepresent AND lv.sdid IS NOT DISTINCT FROM p_sdid AND lv.sitecond IS NOT DISTINCT FROM p_sitecond AND lv.positivecontainercount IS NOT DISTINCT FROM p_positivecontainercount AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.jurisdiction IS NOT DISTINCT FROM p_jurisdiction AND lv.visualmonitoring IS NOT DISTINCT FROM p_visualmonitoring AND lv.vmcomments IS NOT DISTINCT FROM p_vmcomments AND lv.adminaction IS NOT DISTINCT FROM p_adminaction AND lv.ptaid IS NOT DISTINCT FROM p_ptaid AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.mosquitoinspection WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.mosquitoinspection WHERE objectid = p_objectid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.mosquitoinspection ( objectid, organization_id, numdips, activity, breeding, totlarvae, totpupae, eggs, posdips, adultact, lstages, domstage, actiontaken, comments, avetemp, windspeed, raingauge, startdatetime, enddatetime, winddir, avglarvae, avgpupae, reviewed, reviewedby, revieweddate, locationname, zone, recordstatus, zone2, personalcontact, tirecount, cbcount, containercount, fieldspecies, globalid, created_user, created_date, last_edited_user, last_edited_date, linelocid, pointlocid, polygonlocid, srid, fieldtech, larvaepresent, pupaepresent, sdid, sitecond, positivecontainercount, creationdate, creator, editdate, editor, jurisdiction, visualmonitoring, vmcomments, adminaction, ptaid, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_numdips, p_activity, p_breeding, p_totlarvae, p_totpupae, p_eggs, p_posdips, p_adultact, p_lstages, p_domstage, p_actiontaken, p_comments, p_avetemp, p_windspeed, p_raingauge, p_startdatetime, p_enddatetime, p_winddir, p_avglarvae, p_avgpupae, p_reviewed, p_reviewedby, p_revieweddate, p_locationname, p_zone, p_recordstatus, p_zone2, p_personalcontact, p_tirecount, p_cbcount, p_containercount, p_fieldspecies, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_linelocid, p_pointlocid, p_polygonlocid, p_srid, p_fieldtech, p_larvaepresent, p_pupaepresent, p_sdid, p_sitecond, p_positivecontainercount, p_creationdate, p_creator, p_editdate, p_editor, p_jurisdiction, p_visualmonitoring, p_vmcomments, p_adminaction, p_ptaid, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_pointlocation( p_objectid bigint, p_organization_id INTEGER, p_name varchar, p_zone varchar, p_habitat varchar, p_priority varchar, p_usetype varchar, p_active smallint, p_description varchar, p_accessdesc varchar, p_comments varchar, p_symbology varchar, p_externalid varchar, p_nextactiondatescheduled timestamp, p_larvinspectinterval smallint, p_zone2 varchar, p_locationnumber integer, p_globalid uuid, p_stype varchar, p_lastinspectdate timestamp, p_lastinspectbreeding varchar, p_lastinspectavglarvae double precision, p_lastinspectavgpupae double precision, p_lastinspectlstages varchar, p_lastinspectactiontaken varchar, p_lastinspectfieldspecies varchar, p_lasttreatdate timestamp, p_lasttreatproduct varchar, p_lasttreatqty double precision, p_lasttreatqtyunit varchar, p_lastinspectactivity varchar, p_lasttreatactivity varchar, p_lastinspectconditions varchar, p_waterorigin varchar, p_x double precision, p_y double precision, p_assignedtech varchar, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_jurisdiction varchar, p_deactivate_reason varchar, p_scalarpriority integer, p_sourcestatus varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.pointlocation lv WHERE lv.objectid = p_objectid AND lv.organization_id = p_organization_id AND lv.name IS NOT DISTINCT FROM p_name AND lv.zone IS NOT DISTINCT FROM p_zone AND lv.habitat IS NOT DISTINCT FROM p_habitat AND lv.priority IS NOT DISTINCT FROM p_priority AND lv.usetype IS NOT DISTINCT FROM p_usetype AND lv.active IS NOT DISTINCT FROM p_active AND lv.description IS NOT DISTINCT FROM p_description AND lv.accessdesc IS NOT DISTINCT FROM p_accessdesc AND lv.comments IS NOT DISTINCT FROM p_comments AND lv.symbology IS NOT DISTINCT FROM p_symbology AND lv.externalid IS NOT DISTINCT FROM p_externalid AND lv.nextactiondatescheduled IS NOT DISTINCT FROM p_nextactiondatescheduled AND lv.larvinspectinterval IS NOT DISTINCT FROM p_larvinspectinterval AND lv.zone2 IS NOT DISTINCT FROM p_zone2 AND lv.locationnumber IS NOT DISTINCT FROM p_locationnumber AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.stype IS NOT DISTINCT FROM p_stype AND lv.lastinspectdate IS NOT DISTINCT FROM p_lastinspectdate AND lv.lastinspectbreeding IS NOT DISTINCT FROM p_lastinspectbreeding AND lv.lastinspectavglarvae IS NOT DISTINCT FROM p_lastinspectavglarvae AND lv.lastinspectavgpupae IS NOT DISTINCT FROM p_lastinspectavgpupae AND lv.lastinspectlstages IS NOT DISTINCT FROM p_lastinspectlstages AND lv.lastinspectactiontaken IS NOT DISTINCT FROM p_lastinspectactiontaken AND lv.lastinspectfieldspecies IS NOT DISTINCT FROM p_lastinspectfieldspecies AND lv.lasttreatdate IS NOT DISTINCT FROM p_lasttreatdate AND lv.lasttreatproduct IS NOT DISTINCT FROM p_lasttreatproduct AND lv.lasttreatqty IS NOT DISTINCT FROM p_lasttreatqty AND lv.lasttreatqtyunit IS NOT DISTINCT FROM p_lasttreatqtyunit AND lv.lastinspectactivity IS NOT DISTINCT FROM p_lastinspectactivity AND lv.lasttreatactivity IS NOT DISTINCT FROM p_lasttreatactivity AND lv.lastinspectconditions IS NOT DISTINCT FROM p_lastinspectconditions AND lv.waterorigin IS NOT DISTINCT FROM p_waterorigin AND lv.x IS NOT DISTINCT FROM p_x AND lv.y IS NOT DISTINCT FROM p_y AND lv.assignedtech IS NOT DISTINCT FROM p_assignedtech AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.jurisdiction IS NOT DISTINCT FROM p_jurisdiction AND lv.deactivate_reason IS NOT DISTINCT FROM p_deactivate_reason AND lv.scalarpriority IS NOT DISTINCT FROM p_scalarpriority AND lv.sourcestatus IS NOT DISTINCT FROM p_sourcestatus AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.pointlocation WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.pointlocation WHERE objectid = p_objectid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.pointlocation ( objectid, organization_id, name, zone, habitat, priority, usetype, active, description, accessdesc, comments, symbology, externalid, nextactiondatescheduled, larvinspectinterval, zone2, locationnumber, globalid, stype, lastinspectdate, lastinspectbreeding, lastinspectavglarvae, lastinspectavgpupae, lastinspectlstages, lastinspectactiontaken, lastinspectfieldspecies, lasttreatdate, lasttreatproduct, lasttreatqty, lasttreatqtyunit, lastinspectactivity, lasttreatactivity, lastinspectconditions, waterorigin, x, y, assignedtech, creationdate, creator, editdate, editor, jurisdiction, deactivate_reason, scalarpriority, sourcestatus, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_name, p_zone, p_habitat, p_priority, p_usetype, p_active, p_description, p_accessdesc, p_comments, p_symbology, p_externalid, p_nextactiondatescheduled, p_larvinspectinterval, p_zone2, p_locationnumber, p_globalid, p_stype, p_lastinspectdate, p_lastinspectbreeding, p_lastinspectavglarvae, p_lastinspectavgpupae, p_lastinspectlstages, p_lastinspectactiontaken, p_lastinspectfieldspecies, p_lasttreatdate, p_lasttreatproduct, p_lasttreatqty, p_lasttreatqtyunit, p_lastinspectactivity, p_lasttreatactivity, p_lastinspectconditions, p_waterorigin, p_x, p_y, p_assignedtech, p_creationdate, p_creator, p_editdate, p_editor, p_jurisdiction, p_deactivate_reason, p_scalarpriority, p_sourcestatus, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_polygonlocation( p_objectid bigint, p_organization_id INTEGER, p_name varchar, p_zone varchar, p_habitat varchar, p_priority varchar, p_usetype varchar, p_active smallint, p_description varchar, p_accessdesc varchar, p_comments varchar, p_symbology varchar, p_externalid varchar, p_acres double precision, p_nextactiondatescheduled timestamp, p_larvinspectinterval smallint, p_zone2 varchar, p_locationnumber integer, p_globalid uuid, p_lastinspectdate timestamp, p_lastinspectbreeding varchar, p_lastinspectavglarvae double precision, p_lastinspectavgpupae double precision, p_lastinspectlstages varchar, p_lastinspectactiontaken varchar, p_lastinspectfieldspecies varchar, p_lasttreatdate timestamp, p_lasttreatproduct varchar, p_lasttreatqty double precision, p_lasttreatqtyunit varchar, p_hectares double precision, p_lastinspectactivity varchar, p_lasttreatactivity varchar, p_lastinspectconditions varchar, p_waterorigin varchar, p_filter varchar, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_jurisdiction varchar, p_shape__area double precision, p_shape__length double precision, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.polygonlocation lv WHERE lv.objectid = p_objectid AND lv.organization_id = p_organization_id AND lv.name IS NOT DISTINCT FROM p_name AND lv.zone IS NOT DISTINCT FROM p_zone AND lv.habitat IS NOT DISTINCT FROM p_habitat AND lv.priority IS NOT DISTINCT FROM p_priority AND lv.usetype IS NOT DISTINCT FROM p_usetype AND lv.active IS NOT DISTINCT FROM p_active AND lv.description IS NOT DISTINCT FROM p_description AND lv.accessdesc IS NOT DISTINCT FROM p_accessdesc AND lv.comments IS NOT DISTINCT FROM p_comments AND lv.symbology IS NOT DISTINCT FROM p_symbology AND lv.externalid IS NOT DISTINCT FROM p_externalid AND lv.acres IS NOT DISTINCT FROM p_acres AND lv.nextactiondatescheduled IS NOT DISTINCT FROM p_nextactiondatescheduled AND lv.larvinspectinterval IS NOT DISTINCT FROM p_larvinspectinterval AND lv.zone2 IS NOT DISTINCT FROM p_zone2 AND lv.locationnumber IS NOT DISTINCT FROM p_locationnumber AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.lastinspectdate IS NOT DISTINCT FROM p_lastinspectdate AND lv.lastinspectbreeding IS NOT DISTINCT FROM p_lastinspectbreeding AND lv.lastinspectavglarvae IS NOT DISTINCT FROM p_lastinspectavglarvae AND lv.lastinspectavgpupae IS NOT DISTINCT FROM p_lastinspectavgpupae AND lv.lastinspectlstages IS NOT DISTINCT FROM p_lastinspectlstages AND lv.lastinspectactiontaken IS NOT DISTINCT FROM p_lastinspectactiontaken AND lv.lastinspectfieldspecies IS NOT DISTINCT FROM p_lastinspectfieldspecies AND lv.lasttreatdate IS NOT DISTINCT FROM p_lasttreatdate AND lv.lasttreatproduct IS NOT DISTINCT FROM p_lasttreatproduct AND lv.lasttreatqty IS NOT DISTINCT FROM p_lasttreatqty AND lv.lasttreatqtyunit IS NOT DISTINCT FROM p_lasttreatqtyunit AND lv.hectares IS NOT DISTINCT FROM p_hectares AND lv.lastinspectactivity IS NOT DISTINCT FROM p_lastinspectactivity AND lv.lasttreatactivity IS NOT DISTINCT FROM p_lasttreatactivity AND lv.lastinspectconditions IS NOT DISTINCT FROM p_lastinspectconditions AND lv.waterorigin IS NOT DISTINCT FROM p_waterorigin AND lv.filter IS NOT DISTINCT FROM p_filter AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.jurisdiction IS NOT DISTINCT FROM p_jurisdiction AND lv.shape__area IS NOT DISTINCT FROM p_shape__area AND lv.shape__length IS NOT DISTINCT FROM p_shape__length AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.polygonlocation WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.polygonlocation WHERE objectid = p_objectid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.polygonlocation ( objectid, organization_id, name, zone, habitat, priority, usetype, active, description, accessdesc, comments, symbology, externalid, acres, nextactiondatescheduled, larvinspectinterval, zone2, locationnumber, globalid, lastinspectdate, lastinspectbreeding, lastinspectavglarvae, lastinspectavgpupae, lastinspectlstages, lastinspectactiontaken, lastinspectfieldspecies, lasttreatdate, lasttreatproduct, lasttreatqty, lasttreatqtyunit, hectares, lastinspectactivity, lasttreatactivity, lastinspectconditions, waterorigin, filter, creationdate, creator, editdate, editor, jurisdiction, shape__area, shape__length, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_name, p_zone, p_habitat, p_priority, p_usetype, p_active, p_description, p_accessdesc, p_comments, p_symbology, p_externalid, p_acres, p_nextactiondatescheduled, p_larvinspectinterval, p_zone2, p_locationnumber, p_globalid, p_lastinspectdate, p_lastinspectbreeding, p_lastinspectavglarvae, p_lastinspectavgpupae, p_lastinspectlstages, p_lastinspectactiontaken, p_lastinspectfieldspecies, p_lasttreatdate, p_lasttreatproduct, p_lasttreatqty, p_lasttreatqtyunit, p_hectares, p_lastinspectactivity, p_lasttreatactivity, p_lastinspectconditions, p_waterorigin, p_filter, p_creationdate, p_creator, p_editdate, p_editor, p_jurisdiction, p_shape__area, p_shape__length, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_pooldetail( p_objectid bigint, p_organization_id INTEGER, p_trapdata_id uuid, p_pool_id uuid, p_species varchar, p_females smallint, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.pooldetail lv WHERE lv.objectid = p_objectid AND lv.organization_id = p_organization_id AND lv.trapdata_id IS NOT DISTINCT FROM p_trapdata_id AND lv.pool_id IS NOT DISTINCT FROM p_pool_id AND lv.species IS NOT DISTINCT FROM p_species AND lv.females IS NOT DISTINCT FROM p_females AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.pooldetail WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.pooldetail WHERE objectid = p_objectid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.pooldetail ( objectid, organization_id, trapdata_id, pool_id, species, females, globalid, created_user, created_date, last_edited_user, last_edited_date, creationdate, creator, editdate, editor, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_trapdata_id, p_pool_id, p_species, p_females, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_creationdate, p_creator, p_editdate, p_editor, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_pool( p_objectid bigint, p_organization_id INTEGER, p_trapdata_id uuid, p_datesent timestamp, p_survtech varchar, p_datetested timestamp, p_testtech varchar, p_comments varchar, p_sampleid varchar, p_processed smallint, p_lab_id uuid, p_testmethod varchar, p_diseasetested varchar, p_diseasepos varchar, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_lab varchar, p_poolyear smallint, p_gatewaysync smallint, p_vectorsurvcollectionid varchar, p_vectorsurvpoolid varchar, p_vectorsurvtrapdataid varchar, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.pool lv WHERE lv.objectid = p_objectid AND lv.organization_id = p_organization_id AND lv.trapdata_id IS NOT DISTINCT FROM p_trapdata_id AND lv.datesent IS NOT DISTINCT FROM p_datesent AND lv.survtech IS NOT DISTINCT FROM p_survtech AND lv.datetested IS NOT DISTINCT FROM p_datetested AND lv.testtech IS NOT DISTINCT FROM p_testtech AND lv.comments IS NOT DISTINCT FROM p_comments AND lv.sampleid IS NOT DISTINCT FROM p_sampleid AND lv.processed IS NOT DISTINCT FROM p_processed AND lv.lab_id IS NOT DISTINCT FROM p_lab_id AND lv.testmethod IS NOT DISTINCT FROM p_testmethod AND lv.diseasetested IS NOT DISTINCT FROM p_diseasetested AND lv.diseasepos IS NOT DISTINCT FROM p_diseasepos AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.lab IS NOT DISTINCT FROM p_lab AND lv.poolyear IS NOT DISTINCT FROM p_poolyear AND lv.gatewaysync IS NOT DISTINCT FROM p_gatewaysync AND lv.vectorsurvcollectionid IS NOT DISTINCT FROM p_vectorsurvcollectionid AND lv.vectorsurvpoolid IS NOT DISTINCT FROM p_vectorsurvpoolid AND lv.vectorsurvtrapdataid IS NOT DISTINCT FROM p_vectorsurvtrapdataid AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.pool WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.pool WHERE objectid = p_objectid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.pool ( objectid, organization_id, trapdata_id, datesent, survtech, datetested, testtech, comments, sampleid, processed, lab_id, testmethod, diseasetested, diseasepos, globalid, created_user, created_date, last_edited_user, last_edited_date, lab, poolyear, gatewaysync, vectorsurvcollectionid, vectorsurvpoolid, vectorsurvtrapdataid, creationdate, creator, editdate, editor, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_trapdata_id, p_datesent, p_survtech, p_datetested, p_testtech, p_comments, p_sampleid, p_processed, p_lab_id, p_testmethod, p_diseasetested, p_diseasepos, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_lab, p_poolyear, p_gatewaysync, p_vectorsurvcollectionid, p_vectorsurvpoolid, p_vectorsurvtrapdataid, p_creationdate, p_creator, p_editdate, p_editor, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_proposedtreatmentarea( p_objectid bigint, p_organization_id INTEGER, p_method varchar, p_comments varchar, p_zone varchar, p_reviewed smallint, p_reviewedby varchar, p_revieweddate timestamp, p_zone2 varchar, p_completeddate timestamp, p_completedby varchar, p_completed smallint, p_issprayroute smallint, p_name varchar, p_acres double precision, p_globalid uuid, p_exported smallint, p_targetproduct varchar, p_targetapprate double precision, p_hectares double precision, p_lasttreatactivity varchar, p_lasttreatdate timestamp, p_lasttreatproduct varchar, p_lasttreatqty double precision, p_lasttreatqtyunit varchar, p_priority varchar, p_duedate timestamp, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_targetspecies varchar, p_shape__area double precision, p_shape__length double precision, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.proposedtreatmentarea lv WHERE lv.objectid = p_objectid AND lv.organization_id = p_organization_id AND lv.method IS NOT DISTINCT FROM p_method AND lv.comments IS NOT DISTINCT FROM p_comments AND lv.zone IS NOT DISTINCT FROM p_zone AND lv.reviewed IS NOT DISTINCT FROM p_reviewed AND lv.reviewedby IS NOT DISTINCT FROM p_reviewedby AND lv.revieweddate IS NOT DISTINCT FROM p_revieweddate AND lv.zone2 IS NOT DISTINCT FROM p_zone2 AND lv.completeddate IS NOT DISTINCT FROM p_completeddate AND lv.completedby IS NOT DISTINCT FROM p_completedby AND lv.completed IS NOT DISTINCT FROM p_completed AND lv.issprayroute IS NOT DISTINCT FROM p_issprayroute AND lv.name IS NOT DISTINCT FROM p_name AND lv.acres IS NOT DISTINCT FROM p_acres AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.exported IS NOT DISTINCT FROM p_exported AND lv.targetproduct IS NOT DISTINCT FROM p_targetproduct AND lv.targetapprate IS NOT DISTINCT FROM p_targetapprate AND lv.hectares IS NOT DISTINCT FROM p_hectares AND lv.lasttreatactivity IS NOT DISTINCT FROM p_lasttreatactivity AND lv.lasttreatdate IS NOT DISTINCT FROM p_lasttreatdate AND lv.lasttreatproduct IS NOT DISTINCT FROM p_lasttreatproduct AND lv.lasttreatqty IS NOT DISTINCT FROM p_lasttreatqty AND lv.lasttreatqtyunit IS NOT DISTINCT FROM p_lasttreatqtyunit AND lv.priority IS NOT DISTINCT FROM p_priority AND lv.duedate IS NOT DISTINCT FROM p_duedate AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.targetspecies IS NOT DISTINCT FROM p_targetspecies AND lv.shape__area IS NOT DISTINCT FROM p_shape__area AND lv.shape__length IS NOT DISTINCT FROM p_shape__length AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.proposedtreatmentarea WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.proposedtreatmentarea WHERE objectid = p_objectid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.proposedtreatmentarea ( objectid, organization_id, method, comments, zone, reviewed, reviewedby, revieweddate, zone2, completeddate, completedby, completed, issprayroute, name, acres, globalid, exported, targetproduct, targetapprate, hectares, lasttreatactivity, lasttreatdate, lasttreatproduct, lasttreatqty, lasttreatqtyunit, priority, duedate, creationdate, creator, editdate, editor, targetspecies, shape__area, shape__length, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_method, p_comments, p_zone, p_reviewed, p_reviewedby, p_revieweddate, p_zone2, p_completeddate, p_completedby, p_completed, p_issprayroute, p_name, p_acres, p_globalid, p_exported, p_targetproduct, p_targetapprate, p_hectares, p_lasttreatactivity, p_lasttreatdate, p_lasttreatproduct, p_lasttreatqty, p_lasttreatqtyunit, p_priority, p_duedate, p_creationdate, p_creator, p_editdate, p_editor, p_targetspecies, p_shape__area, p_shape__length, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_qamosquitoinspection( p_objectid bigint, p_organization_id INTEGER, p_posdips smallint, p_actiontaken varchar, p_comments varchar, p_avetemp double precision, p_windspeed double precision, p_raingauge double precision, p_globalid uuid, p_startdatetime timestamp, p_enddatetime timestamp, p_winddir varchar, p_reviewed smallint, p_reviewedby varchar, p_revieweddate timestamp, p_locationname varchar, p_zone varchar, p_recordstatus smallint, p_zone2 varchar, p_lr smallint, p_negdips smallint, p_totalacres double precision, p_acresbreeding double precision, p_fish smallint, p_sitetype varchar, p_breedingpotential varchar, p_movingwater smallint, p_nowaterever smallint, p_mosquitohabitat varchar, p_habvalue1 smallint, p_habvalue1percent smallint, p_habvalue2 smallint, p_habvalue2percent smallint, p_potential smallint, p_larvaepresent smallint, p_larvaeinsidetreatedarea smallint, p_larvaeoutsidetreatedarea smallint, p_larvaereason varchar, p_aquaticorganisms varchar, p_vegetation varchar, p_sourcereduction varchar, p_waterpresent smallint, p_watermovement1 varchar, p_watermovement1percent smallint, p_watermovement2 varchar, p_watermovement2percent smallint, p_soilconditions varchar, p_waterduration varchar, p_watersource varchar, p_waterconditions varchar, p_adultactivity smallint, p_linelocid uuid, p_pointlocid uuid, p_polygonlocid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_fieldtech varchar, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.qamosquitoinspection lv WHERE lv.objectid = p_objectid AND lv.organization_id = p_organization_id AND lv.posdips IS NOT DISTINCT FROM p_posdips AND lv.actiontaken IS NOT DISTINCT FROM p_actiontaken AND lv.comments IS NOT DISTINCT FROM p_comments AND lv.avetemp IS NOT DISTINCT FROM p_avetemp AND lv.windspeed IS NOT DISTINCT FROM p_windspeed AND lv.raingauge IS NOT DISTINCT FROM p_raingauge AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.startdatetime IS NOT DISTINCT FROM p_startdatetime AND lv.enddatetime IS NOT DISTINCT FROM p_enddatetime AND lv.winddir IS NOT DISTINCT FROM p_winddir AND lv.reviewed IS NOT DISTINCT FROM p_reviewed AND lv.reviewedby IS NOT DISTINCT FROM p_reviewedby AND lv.revieweddate IS NOT DISTINCT FROM p_revieweddate AND lv.locationname IS NOT DISTINCT FROM p_locationname AND lv.zone IS NOT DISTINCT FROM p_zone AND lv.recordstatus IS NOT DISTINCT FROM p_recordstatus AND lv.zone2 IS NOT DISTINCT FROM p_zone2 AND lv.lr IS NOT DISTINCT FROM p_lr AND lv.negdips IS NOT DISTINCT FROM p_negdips AND lv.totalacres IS NOT DISTINCT FROM p_totalacres AND lv.acresbreeding IS NOT DISTINCT FROM p_acresbreeding AND lv.fish IS NOT DISTINCT FROM p_fish AND lv.sitetype IS NOT DISTINCT FROM p_sitetype AND lv.breedingpotential IS NOT DISTINCT FROM p_breedingpotential AND lv.movingwater IS NOT DISTINCT FROM p_movingwater AND lv.nowaterever IS NOT DISTINCT FROM p_nowaterever AND lv.mosquitohabitat IS NOT DISTINCT FROM p_mosquitohabitat AND lv.habvalue1 IS NOT DISTINCT FROM p_habvalue1 AND lv.habvalue1percent IS NOT DISTINCT FROM p_habvalue1percent AND lv.habvalue2 IS NOT DISTINCT FROM p_habvalue2 AND lv.habvalue2percent IS NOT DISTINCT FROM p_habvalue2percent AND lv.potential IS NOT DISTINCT FROM p_potential AND lv.larvaepresent IS NOT DISTINCT FROM p_larvaepresent AND lv.larvaeinsidetreatedarea IS NOT DISTINCT FROM p_larvaeinsidetreatedarea AND lv.larvaeoutsidetreatedarea IS NOT DISTINCT FROM p_larvaeoutsidetreatedarea AND lv.larvaereason IS NOT DISTINCT FROM p_larvaereason AND lv.aquaticorganisms IS NOT DISTINCT FROM p_aquaticorganisms AND lv.vegetation IS NOT DISTINCT FROM p_vegetation AND lv.sourcereduction IS NOT DISTINCT FROM p_sourcereduction AND lv.waterpresent IS NOT DISTINCT FROM p_waterpresent AND lv.watermovement1 IS NOT DISTINCT FROM p_watermovement1 AND lv.watermovement1percent IS NOT DISTINCT FROM p_watermovement1percent AND lv.watermovement2 IS NOT DISTINCT FROM p_watermovement2 AND lv.watermovement2percent IS NOT DISTINCT FROM p_watermovement2percent AND lv.soilconditions IS NOT DISTINCT FROM p_soilconditions AND lv.waterduration IS NOT DISTINCT FROM p_waterduration AND lv.watersource IS NOT DISTINCT FROM p_watersource AND lv.waterconditions IS NOT DISTINCT FROM p_waterconditions AND lv.adultactivity IS NOT DISTINCT FROM p_adultactivity AND lv.linelocid IS NOT DISTINCT FROM p_linelocid AND lv.pointlocid IS NOT DISTINCT FROM p_pointlocid AND lv.polygonlocid IS NOT DISTINCT FROM p_polygonlocid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.fieldtech IS NOT DISTINCT FROM p_fieldtech AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.qamosquitoinspection WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.qamosquitoinspection WHERE objectid = p_objectid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.qamosquitoinspection ( objectid, organization_id, posdips, actiontaken, comments, avetemp, windspeed, raingauge, globalid, startdatetime, enddatetime, winddir, reviewed, reviewedby, revieweddate, locationname, zone, recordstatus, zone2, lr, negdips, totalacres, acresbreeding, fish, sitetype, breedingpotential, movingwater, nowaterever, mosquitohabitat, habvalue1, habvalue1percent, habvalue2, habvalue2percent, potential, larvaepresent, larvaeinsidetreatedarea, larvaeoutsidetreatedarea, larvaereason, aquaticorganisms, vegetation, sourcereduction, waterpresent, watermovement1, watermovement1percent, watermovement2, watermovement2percent, soilconditions, waterduration, watersource, waterconditions, adultactivity, linelocid, pointlocid, polygonlocid, created_user, created_date, last_edited_user, last_edited_date, fieldtech, creationdate, creator, editdate, editor, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_posdips, p_actiontaken, p_comments, p_avetemp, p_windspeed, p_raingauge, p_globalid, p_startdatetime, p_enddatetime, p_winddir, p_reviewed, p_reviewedby, p_revieweddate, p_locationname, p_zone, p_recordstatus, p_zone2, p_lr, p_negdips, p_totalacres, p_acresbreeding, p_fish, p_sitetype, p_breedingpotential, p_movingwater, p_nowaterever, p_mosquitohabitat, p_habvalue1, p_habvalue1percent, p_habvalue2, p_habvalue2percent, p_potential, p_larvaepresent, p_larvaeinsidetreatedarea, p_larvaeoutsidetreatedarea, p_larvaereason, p_aquaticorganisms, p_vegetation, p_sourcereduction, p_waterpresent, p_watermovement1, p_watermovement1percent, p_watermovement2, p_watermovement2percent, p_soilconditions, p_waterduration, p_watersource, p_waterconditions, p_adultactivity, p_linelocid, p_pointlocid, p_polygonlocid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_fieldtech, p_creationdate, p_creator, p_editdate, p_editor, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_rodentlocation( p_objectid bigint, p_organization_id INTEGER, p_locationname varchar, p_zone varchar, p_zone2 varchar, p_habitat varchar, p_priority varchar, p_usetype varchar, p_active smallint, p_description varchar, p_accessdesc varchar, p_comments varchar, p_symbology varchar, p_externalid varchar, p_nextactiondatescheduled timestamp, p_locationnumber integer, p_lastinspectdate timestamp, p_lastinspectspecies varchar, p_lastinspectaction varchar, p_lastinspectconditions varchar, p_lastinspectrodentevidence varchar, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_jurisdiction varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.rodentlocation lv WHERE lv.objectid = p_objectid AND lv.organization_id = p_organization_id AND lv.locationname IS NOT DISTINCT FROM p_locationname AND lv.zone IS NOT DISTINCT FROM p_zone AND lv.zone2 IS NOT DISTINCT FROM p_zone2 AND lv.habitat IS NOT DISTINCT FROM p_habitat AND lv.priority IS NOT DISTINCT FROM p_priority AND lv.usetype IS NOT DISTINCT FROM p_usetype AND lv.active IS NOT DISTINCT FROM p_active AND lv.description IS NOT DISTINCT FROM p_description AND lv.accessdesc IS NOT DISTINCT FROM p_accessdesc AND lv.comments IS NOT DISTINCT FROM p_comments AND lv.symbology IS NOT DISTINCT FROM p_symbology AND lv.externalid IS NOT DISTINCT FROM p_externalid AND lv.nextactiondatescheduled IS NOT DISTINCT FROM p_nextactiondatescheduled AND lv.locationnumber IS NOT DISTINCT FROM p_locationnumber AND lv.lastinspectdate IS NOT DISTINCT FROM p_lastinspectdate AND lv.lastinspectspecies IS NOT DISTINCT FROM p_lastinspectspecies AND lv.lastinspectaction IS NOT DISTINCT FROM p_lastinspectaction AND lv.lastinspectconditions IS NOT DISTINCT FROM p_lastinspectconditions AND lv.lastinspectrodentevidence IS NOT DISTINCT FROM p_lastinspectrodentevidence AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.jurisdiction IS NOT DISTINCT FROM p_jurisdiction AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.rodentlocation WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.rodentlocation WHERE objectid = p_objectid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.rodentlocation ( objectid, organization_id, locationname, zone, zone2, habitat, priority, usetype, active, description, accessdesc, comments, symbology, externalid, nextactiondatescheduled, locationnumber, lastinspectdate, lastinspectspecies, lastinspectaction, lastinspectconditions, lastinspectrodentevidence, globalid, created_user, created_date, last_edited_user, last_edited_date, creationdate, creator, editdate, editor, jurisdiction, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_locationname, p_zone, p_zone2, p_habitat, p_priority, p_usetype, p_active, p_description, p_accessdesc, p_comments, p_symbology, p_externalid, p_nextactiondatescheduled, p_locationnumber, p_lastinspectdate, p_lastinspectspecies, p_lastinspectaction, p_lastinspectconditions, p_lastinspectrodentevidence, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_creationdate, p_creator, p_editdate, p_editor, p_jurisdiction, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_samplecollection( p_objectid bigint, p_organization_id INTEGER, p_loc_id uuid, p_startdatetime timestamp, p_enddatetime timestamp, p_sitecond varchar, p_sampleid varchar, p_survtech varchar, p_datesent timestamp, p_datetested timestamp, p_testtech varchar, p_comments varchar, p_processed smallint, p_sampletype varchar, p_samplecond varchar, p_species varchar, p_sex varchar, p_avetemp double precision, p_windspeed double precision, p_winddir varchar, p_raingauge double precision, p_activity varchar, p_testmethod varchar, p_diseasetested varchar, p_diseasepos varchar, p_reviewed smallint, p_reviewedby varchar, p_revieweddate timestamp, p_locationname varchar, p_zone varchar, p_recordstatus smallint, p_zone2 varchar, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_lab varchar, p_fieldtech varchar, p_flockid uuid, p_samplecount smallint, p_chickenid uuid, p_gatewaysync smallint, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.samplecollection lv WHERE lv.objectid = p_objectid AND lv.organization_id = p_organization_id AND lv.loc_id IS NOT DISTINCT FROM p_loc_id AND lv.startdatetime IS NOT DISTINCT FROM p_startdatetime AND lv.enddatetime IS NOT DISTINCT FROM p_enddatetime AND lv.sitecond IS NOT DISTINCT FROM p_sitecond AND lv.sampleid IS NOT DISTINCT FROM p_sampleid AND lv.survtech IS NOT DISTINCT FROM p_survtech AND lv.datesent IS NOT DISTINCT FROM p_datesent AND lv.datetested IS NOT DISTINCT FROM p_datetested AND lv.testtech IS NOT DISTINCT FROM p_testtech AND lv.comments IS NOT DISTINCT FROM p_comments AND lv.processed IS NOT DISTINCT FROM p_processed AND lv.sampletype IS NOT DISTINCT FROM p_sampletype AND lv.samplecond IS NOT DISTINCT FROM p_samplecond AND lv.species IS NOT DISTINCT FROM p_species AND lv.sex IS NOT DISTINCT FROM p_sex AND lv.avetemp IS NOT DISTINCT FROM p_avetemp AND lv.windspeed IS NOT DISTINCT FROM p_windspeed AND lv.winddir IS NOT DISTINCT FROM p_winddir AND lv.raingauge IS NOT DISTINCT FROM p_raingauge AND lv.activity IS NOT DISTINCT FROM p_activity AND lv.testmethod IS NOT DISTINCT FROM p_testmethod AND lv.diseasetested IS NOT DISTINCT FROM p_diseasetested AND lv.diseasepos IS NOT DISTINCT FROM p_diseasepos AND lv.reviewed IS NOT DISTINCT FROM p_reviewed AND lv.reviewedby IS NOT DISTINCT FROM p_reviewedby AND lv.revieweddate IS NOT DISTINCT FROM p_revieweddate AND lv.locationname IS NOT DISTINCT FROM p_locationname AND lv.zone IS NOT DISTINCT FROM p_zone AND lv.recordstatus IS NOT DISTINCT FROM p_recordstatus AND lv.zone2 IS NOT DISTINCT FROM p_zone2 AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.lab IS NOT DISTINCT FROM p_lab AND lv.fieldtech IS NOT DISTINCT FROM p_fieldtech AND lv.flockid IS NOT DISTINCT FROM p_flockid AND lv.samplecount IS NOT DISTINCT FROM p_samplecount AND lv.chickenid IS NOT DISTINCT FROM p_chickenid AND lv.gatewaysync IS NOT DISTINCT FROM p_gatewaysync AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.samplecollection WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.samplecollection WHERE objectid = p_objectid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.samplecollection ( objectid, organization_id, loc_id, startdatetime, enddatetime, sitecond, sampleid, survtech, datesent, datetested, testtech, comments, processed, sampletype, samplecond, species, sex, avetemp, windspeed, winddir, raingauge, activity, testmethod, diseasetested, diseasepos, reviewed, reviewedby, revieweddate, locationname, zone, recordstatus, zone2, globalid, created_user, created_date, last_edited_user, last_edited_date, lab, fieldtech, flockid, samplecount, chickenid, gatewaysync, creationdate, creator, editdate, editor, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_loc_id, p_startdatetime, p_enddatetime, p_sitecond, p_sampleid, p_survtech, p_datesent, p_datetested, p_testtech, p_comments, p_processed, p_sampletype, p_samplecond, p_species, p_sex, p_avetemp, p_windspeed, p_winddir, p_raingauge, p_activity, p_testmethod, p_diseasetested, p_diseasepos, p_reviewed, p_reviewedby, p_revieweddate, p_locationname, p_zone, p_recordstatus, p_zone2, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_lab, p_fieldtech, p_flockid, p_samplecount, p_chickenid, p_gatewaysync, p_creationdate, p_creator, p_editdate, p_editor, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_samplelocation( p_objectid bigint, p_organization_id INTEGER, p_name varchar, p_zone varchar, p_habitat varchar, p_priority varchar, p_usetype varchar, p_active smallint, p_description varchar, p_accessdesc varchar, p_comments varchar, p_externalid varchar, p_nextactiondatescheduled timestamp, p_zone2 varchar, p_locationnumber integer, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_gatewaysync smallint, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.samplelocation lv WHERE lv.objectid = p_objectid AND lv.organization_id = p_organization_id AND lv.name IS NOT DISTINCT FROM p_name AND lv.zone IS NOT DISTINCT FROM p_zone AND lv.habitat IS NOT DISTINCT FROM p_habitat AND lv.priority IS NOT DISTINCT FROM p_priority AND lv.usetype IS NOT DISTINCT FROM p_usetype AND lv.active IS NOT DISTINCT FROM p_active AND lv.description IS NOT DISTINCT FROM p_description AND lv.accessdesc IS NOT DISTINCT FROM p_accessdesc AND lv.comments IS NOT DISTINCT FROM p_comments AND lv.externalid IS NOT DISTINCT FROM p_externalid AND lv.nextactiondatescheduled IS NOT DISTINCT FROM p_nextactiondatescheduled AND lv.zone2 IS NOT DISTINCT FROM p_zone2 AND lv.locationnumber IS NOT DISTINCT FROM p_locationnumber AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.gatewaysync IS NOT DISTINCT FROM p_gatewaysync AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.samplelocation WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.samplelocation WHERE objectid = p_objectid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.samplelocation ( objectid, organization_id, name, zone, habitat, priority, usetype, active, description, accessdesc, comments, externalid, nextactiondatescheduled, zone2, locationnumber, globalid, created_user, created_date, last_edited_user, last_edited_date, gatewaysync, creationdate, creator, editdate, editor, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_name, p_zone, p_habitat, p_priority, p_usetype, p_active, p_description, p_accessdesc, p_comments, p_externalid, p_nextactiondatescheduled, p_zone2, p_locationnumber, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_gatewaysync, p_creationdate, p_creator, p_editdate, p_editor, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_servicerequest( p_objectid bigint, p_organization_id INTEGER, p_recdatetime timestamp, p_source varchar, p_entrytech varchar, p_priority varchar, p_supervisor varchar, p_assignedtech varchar, p_status varchar, p_clranon smallint, p_clrfname varchar, p_clrphone1 varchar, p_clrphone2 varchar, p_clremail varchar, p_clrcompany varchar, p_clraddr1 varchar, p_clraddr2 varchar, p_clrcity varchar, p_clrstate varchar, p_clrzip varchar, p_clrother varchar, p_clrcontpref varchar, p_reqcompany varchar, p_reqaddr1 varchar, p_reqaddr2 varchar, p_reqcity varchar, p_reqstate varchar, p_reqzip varchar, p_reqcrossst varchar, p_reqsubdiv varchar, p_reqmapgrid varchar, p_reqpermission smallint, p_reqtarget varchar, p_reqdescr varchar, p_reqnotesfortech varchar, p_reqnotesforcust varchar, p_reqfldnotes varchar, p_reqprogramactions varchar, p_datetimeclosed timestamp, p_techclosed varchar, p_sr_number integer, p_reviewed smallint, p_reviewedby varchar, p_revieweddate timestamp, p_accepted smallint, p_accepteddate timestamp, p_rejectedby varchar, p_rejecteddate timestamp, p_rejectedreason varchar, p_duedate timestamp, p_acceptedby varchar, p_comments varchar, p_estcompletedate timestamp, p_nextaction varchar, p_recordstatus smallint, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_firstresponsedate timestamp, p_responsedaycount smallint, p_allowed varchar, p_xvalue varchar, p_yvalue varchar, p_validx varchar, p_validy varchar, p_externalid varchar, p_externalerror varchar, p_pointlocid uuid, p_notified smallint, p_notifieddate timestamp, p_scheduled smallint, p_scheduleddate timestamp, p_dog integer, p_schedule_period varchar, p_schedule_notes varchar, p_spanish integer, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_issuesreported varchar, p_jurisdiction varchar, p_notificationtimestamp varchar, p_zone varchar, p_zone2 varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.servicerequest lv WHERE lv.objectid = p_objectid AND lv.organization_id = p_organization_id AND lv.recdatetime IS NOT DISTINCT FROM p_recdatetime AND lv.source IS NOT DISTINCT FROM p_source AND lv.entrytech IS NOT DISTINCT FROM p_entrytech AND lv.priority IS NOT DISTINCT FROM p_priority AND lv.supervisor IS NOT DISTINCT FROM p_supervisor AND lv.assignedtech IS NOT DISTINCT FROM p_assignedtech AND lv.status IS NOT DISTINCT FROM p_status AND lv.clranon IS NOT DISTINCT FROM p_clranon AND lv.clrfname IS NOT DISTINCT FROM p_clrfname AND lv.clrphone1 IS NOT DISTINCT FROM p_clrphone1 AND lv.clrphone2 IS NOT DISTINCT FROM p_clrphone2 AND lv.clremail IS NOT DISTINCT FROM p_clremail AND lv.clrcompany IS NOT DISTINCT FROM p_clrcompany AND lv.clraddr1 IS NOT DISTINCT FROM p_clraddr1 AND lv.clraddr2 IS NOT DISTINCT FROM p_clraddr2 AND lv.clrcity IS NOT DISTINCT FROM p_clrcity AND lv.clrstate IS NOT DISTINCT FROM p_clrstate AND lv.clrzip IS NOT DISTINCT FROM p_clrzip AND lv.clrother IS NOT DISTINCT FROM p_clrother AND lv.clrcontpref IS NOT DISTINCT FROM p_clrcontpref AND lv.reqcompany IS NOT DISTINCT FROM p_reqcompany AND lv.reqaddr1 IS NOT DISTINCT FROM p_reqaddr1 AND lv.reqaddr2 IS NOT DISTINCT FROM p_reqaddr2 AND lv.reqcity IS NOT DISTINCT FROM p_reqcity AND lv.reqstate IS NOT DISTINCT FROM p_reqstate AND lv.reqzip IS NOT DISTINCT FROM p_reqzip AND lv.reqcrossst IS NOT DISTINCT FROM p_reqcrossst AND lv.reqsubdiv IS NOT DISTINCT FROM p_reqsubdiv AND lv.reqmapgrid IS NOT DISTINCT FROM p_reqmapgrid AND lv.reqpermission IS NOT DISTINCT FROM p_reqpermission AND lv.reqtarget IS NOT DISTINCT FROM p_reqtarget AND lv.reqdescr IS NOT DISTINCT FROM p_reqdescr AND lv.reqnotesfortech IS NOT DISTINCT FROM p_reqnotesfortech AND lv.reqnotesforcust IS NOT DISTINCT FROM p_reqnotesforcust AND lv.reqfldnotes IS NOT DISTINCT FROM p_reqfldnotes AND lv.reqprogramactions IS NOT DISTINCT FROM p_reqprogramactions AND lv.datetimeclosed IS NOT DISTINCT FROM p_datetimeclosed AND lv.techclosed IS NOT DISTINCT FROM p_techclosed AND lv.sr_number IS NOT DISTINCT FROM p_sr_number AND lv.reviewed IS NOT DISTINCT FROM p_reviewed AND lv.reviewedby IS NOT DISTINCT FROM p_reviewedby AND lv.revieweddate IS NOT DISTINCT FROM p_revieweddate AND lv.accepted IS NOT DISTINCT FROM p_accepted AND lv.accepteddate IS NOT DISTINCT FROM p_accepteddate AND lv.rejectedby IS NOT DISTINCT FROM p_rejectedby AND lv.rejecteddate IS NOT DISTINCT FROM p_rejecteddate AND lv.rejectedreason IS NOT DISTINCT FROM p_rejectedreason AND lv.duedate IS NOT DISTINCT FROM p_duedate AND lv.acceptedby IS NOT DISTINCT FROM p_acceptedby AND lv.comments IS NOT DISTINCT FROM p_comments AND lv.estcompletedate IS NOT DISTINCT FROM p_estcompletedate AND lv.nextaction IS NOT DISTINCT FROM p_nextaction AND lv.recordstatus IS NOT DISTINCT FROM p_recordstatus AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.firstresponsedate IS NOT DISTINCT FROM p_firstresponsedate AND lv.responsedaycount IS NOT DISTINCT FROM p_responsedaycount AND lv.allowed IS NOT DISTINCT FROM p_allowed AND lv.xvalue IS NOT DISTINCT FROM p_xvalue AND lv.yvalue IS NOT DISTINCT FROM p_yvalue AND lv.validx IS NOT DISTINCT FROM p_validx AND lv.validy IS NOT DISTINCT FROM p_validy AND lv.externalid IS NOT DISTINCT FROM p_externalid AND lv.externalerror IS NOT DISTINCT FROM p_externalerror AND lv.pointlocid IS NOT DISTINCT FROM p_pointlocid AND lv.notified IS NOT DISTINCT FROM p_notified AND lv.notifieddate IS NOT DISTINCT FROM p_notifieddate AND lv.scheduled IS NOT DISTINCT FROM p_scheduled AND lv.scheduleddate IS NOT DISTINCT FROM p_scheduleddate AND lv.dog IS NOT DISTINCT FROM p_dog AND lv.schedule_period IS NOT DISTINCT FROM p_schedule_period AND lv.schedule_notes IS NOT DISTINCT FROM p_schedule_notes AND lv.spanish IS NOT DISTINCT FROM p_spanish AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.issuesreported IS NOT DISTINCT FROM p_issuesreported AND lv.jurisdiction IS NOT DISTINCT FROM p_jurisdiction AND lv.notificationtimestamp IS NOT DISTINCT FROM p_notificationtimestamp AND lv.zone IS NOT DISTINCT FROM p_zone AND lv.zone2 IS NOT DISTINCT FROM p_zone2 AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.servicerequest WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.servicerequest WHERE objectid = p_objectid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.servicerequest ( objectid, organization_id, recdatetime, source, entrytech, priority, supervisor, assignedtech, status, clranon, clrfname, clrphone1, clrphone2, clremail, clrcompany, clraddr1, clraddr2, clrcity, clrstate, clrzip, clrother, clrcontpref, reqcompany, reqaddr1, reqaddr2, reqcity, reqstate, reqzip, reqcrossst, reqsubdiv, reqmapgrid, reqpermission, reqtarget, reqdescr, reqnotesfortech, reqnotesforcust, reqfldnotes, reqprogramactions, datetimeclosed, techclosed, sr_number, reviewed, reviewedby, revieweddate, accepted, accepteddate, rejectedby, rejecteddate, rejectedreason, duedate, acceptedby, comments, estcompletedate, nextaction, recordstatus, globalid, created_user, created_date, last_edited_user, last_edited_date, firstresponsedate, responsedaycount, allowed, xvalue, yvalue, validx, validy, externalid, externalerror, pointlocid, notified, notifieddate, scheduled, scheduleddate, dog, schedule_period, schedule_notes, spanish, creationdate, creator, editdate, editor, issuesreported, jurisdiction, notificationtimestamp, zone, zone2, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_recdatetime, p_source, p_entrytech, p_priority, p_supervisor, p_assignedtech, p_status, p_clranon, p_clrfname, p_clrphone1, p_clrphone2, p_clremail, p_clrcompany, p_clraddr1, p_clraddr2, p_clrcity, p_clrstate, p_clrzip, p_clrother, p_clrcontpref, p_reqcompany, p_reqaddr1, p_reqaddr2, p_reqcity, p_reqstate, p_reqzip, p_reqcrossst, p_reqsubdiv, p_reqmapgrid, p_reqpermission, p_reqtarget, p_reqdescr, p_reqnotesfortech, p_reqnotesforcust, p_reqfldnotes, p_reqprogramactions, p_datetimeclosed, p_techclosed, p_sr_number, p_reviewed, p_reviewedby, p_revieweddate, p_accepted, p_accepteddate, p_rejectedby, p_rejecteddate, p_rejectedreason, p_duedate, p_acceptedby, p_comments, p_estcompletedate, p_nextaction, p_recordstatus, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_firstresponsedate, p_responsedaycount, p_allowed, p_xvalue, p_yvalue, p_validx, p_validy, p_externalid, p_externalerror, p_pointlocid, p_notified, p_notifieddate, p_scheduled, p_scheduleddate, p_dog, p_schedule_period, p_schedule_notes, p_spanish, p_creationdate, p_creator, p_editdate, p_editor, p_issuesreported, p_jurisdiction, p_notificationtimestamp, p_zone, p_zone2, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_speciesabundance( p_objectid bigint, p_organization_id INTEGER, p_trapdata_id uuid, p_species varchar, p_males smallint, p_unknown smallint, p_bloodedfem smallint, p_gravidfem smallint, p_larvae smallint, p_poolstogen smallint, p_processed smallint, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_pupae smallint, p_eggs smallint, p_females integer, p_total integer, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_yearweek integer, p_globalzscore double precision, p_r7score double precision, p_r8score double precision, p_h3r7 varchar, p_h3r8 varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.speciesabundance lv WHERE lv.objectid = p_objectid AND lv.organization_id = p_organization_id AND lv.trapdata_id IS NOT DISTINCT FROM p_trapdata_id AND lv.species IS NOT DISTINCT FROM p_species AND lv.males IS NOT DISTINCT FROM p_males AND lv.unknown IS NOT DISTINCT FROM p_unknown AND lv.bloodedfem IS NOT DISTINCT FROM p_bloodedfem AND lv.gravidfem IS NOT DISTINCT FROM p_gravidfem AND lv.larvae IS NOT DISTINCT FROM p_larvae AND lv.poolstogen IS NOT DISTINCT FROM p_poolstogen AND lv.processed IS NOT DISTINCT FROM p_processed AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.pupae IS NOT DISTINCT FROM p_pupae AND lv.eggs IS NOT DISTINCT FROM p_eggs AND lv.females IS NOT DISTINCT FROM p_females AND lv.total IS NOT DISTINCT FROM p_total AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.yearweek IS NOT DISTINCT FROM p_yearweek AND lv.globalzscore IS NOT DISTINCT FROM p_globalzscore AND lv.r7score IS NOT DISTINCT FROM p_r7score AND lv.r8score IS NOT DISTINCT FROM p_r8score AND lv.h3r7 IS NOT DISTINCT FROM p_h3r7 AND lv.h3r8 IS NOT DISTINCT FROM p_h3r8 AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.speciesabundance WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.speciesabundance WHERE objectid = p_objectid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.speciesabundance ( objectid, organization_id, trapdata_id, species, males, unknown, bloodedfem, gravidfem, larvae, poolstogen, processed, globalid, created_user, created_date, last_edited_user, last_edited_date, pupae, eggs, females, total, creationdate, creator, editdate, editor, yearweek, globalzscore, r7score, r8score, h3r7, h3r8, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_trapdata_id, p_species, p_males, p_unknown, p_bloodedfem, p_gravidfem, p_larvae, p_poolstogen, p_processed, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_pupae, p_eggs, p_females, p_total, p_creationdate, p_creator, p_editdate, p_editor, p_yearweek, p_globalzscore, p_r7score, p_r8score, p_h3r7, p_h3r8, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_stormdrain( p_objectid bigint, p_organization_id INTEGER, p_nexttreatmentdate timestamp, p_lasttreatdate timestamp, p_lastaction varchar, p_symbology varchar, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_laststatus varchar, p_zone varchar, p_zone2 varchar, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_type varchar, p_jurisdiction varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.stormdrain lv WHERE lv.objectid = p_objectid AND lv.organization_id = p_organization_id AND lv.nexttreatmentdate IS NOT DISTINCT FROM p_nexttreatmentdate AND lv.lasttreatdate IS NOT DISTINCT FROM p_lasttreatdate AND lv.lastaction IS NOT DISTINCT FROM p_lastaction AND lv.symbology IS NOT DISTINCT FROM p_symbology AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.laststatus IS NOT DISTINCT FROM p_laststatus AND lv.zone IS NOT DISTINCT FROM p_zone AND lv.zone2 IS NOT DISTINCT FROM p_zone2 AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.type IS NOT DISTINCT FROM p_type AND lv.jurisdiction IS NOT DISTINCT FROM p_jurisdiction AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.stormdrain WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.stormdrain WHERE objectid = p_objectid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.stormdrain ( objectid, organization_id, nexttreatmentdate, lasttreatdate, lastaction, symbology, globalid, created_user, created_date, last_edited_user, last_edited_date, laststatus, zone, zone2, creationdate, creator, editdate, editor, type, jurisdiction, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_nexttreatmentdate, p_lasttreatdate, p_lastaction, p_symbology, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_laststatus, p_zone, p_zone2, p_creationdate, p_creator, p_editdate, p_editor, p_type, p_jurisdiction, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_timecard( p_objectid bigint, p_organization_id INTEGER, p_activity varchar, p_startdatetime timestamp, p_enddatetime timestamp, p_comments varchar, p_externalid varchar, p_equiptype varchar, p_locationname varchar, p_zone varchar, p_zone2 varchar, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_linelocid uuid, p_pointlocid uuid, p_polygonlocid uuid, p_lclocid uuid, p_samplelocid uuid, p_srid uuid, p_traplocid uuid, p_fieldtech varchar, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_rodentlocid uuid, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.timecard lv WHERE lv.objectid = p_objectid AND lv.organization_id = p_organization_id AND lv.activity IS NOT DISTINCT FROM p_activity AND lv.startdatetime IS NOT DISTINCT FROM p_startdatetime AND lv.enddatetime IS NOT DISTINCT FROM p_enddatetime AND lv.comments IS NOT DISTINCT FROM p_comments AND lv.externalid IS NOT DISTINCT FROM p_externalid AND lv.equiptype IS NOT DISTINCT FROM p_equiptype AND lv.locationname IS NOT DISTINCT FROM p_locationname AND lv.zone IS NOT DISTINCT FROM p_zone AND lv.zone2 IS NOT DISTINCT FROM p_zone2 AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.linelocid IS NOT DISTINCT FROM p_linelocid AND lv.pointlocid IS NOT DISTINCT FROM p_pointlocid AND lv.polygonlocid IS NOT DISTINCT FROM p_polygonlocid AND lv.lclocid IS NOT DISTINCT FROM p_lclocid AND lv.samplelocid IS NOT DISTINCT FROM p_samplelocid AND lv.srid IS NOT DISTINCT FROM p_srid AND lv.traplocid IS NOT DISTINCT FROM p_traplocid AND lv.fieldtech IS NOT DISTINCT FROM p_fieldtech AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.rodentlocid IS NOT DISTINCT FROM p_rodentlocid AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.timecard WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.timecard WHERE objectid = p_objectid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.timecard ( objectid, organization_id, activity, startdatetime, enddatetime, comments, externalid, equiptype, locationname, zone, zone2, globalid, created_user, created_date, last_edited_user, last_edited_date, linelocid, pointlocid, polygonlocid, lclocid, samplelocid, srid, traplocid, fieldtech, creationdate, creator, editdate, editor, rodentlocid, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_activity, p_startdatetime, p_enddatetime, p_comments, p_externalid, p_equiptype, p_locationname, p_zone, p_zone2, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_linelocid, p_pointlocid, p_polygonlocid, p_lclocid, p_samplelocid, p_srid, p_traplocid, p_fieldtech, p_creationdate, p_creator, p_editdate, p_editor, p_rodentlocid, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_trapdata( p_objectid bigint, p_organization_id INTEGER, p_traptype varchar, p_trapactivitytype varchar, p_startdatetime timestamp, p_enddatetime timestamp, p_comments varchar, p_idbytech varchar, p_sortbytech varchar, p_processed smallint, p_sitecond varchar, p_locationname varchar, p_recordstatus smallint, p_reviewed smallint, p_reviewedby varchar, p_revieweddate timestamp, p_trapcondition varchar, p_trapnights smallint, p_zone varchar, p_zone2 varchar, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_srid uuid, p_fieldtech varchar, p_gatewaysync smallint, p_loc_id uuid, p_voltage double precision, p_winddir varchar, p_windspeed double precision, p_avetemp double precision, p_raingauge double precision, p_lr smallint, p_field integer, p_vectorsurvtrapdataid varchar, p_vectorsurvtraplocationid varchar, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_lure varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.trapdata lv WHERE lv.objectid = p_objectid AND lv.organization_id = p_organization_id AND lv.traptype IS NOT DISTINCT FROM p_traptype AND lv.trapactivitytype IS NOT DISTINCT FROM p_trapactivitytype AND lv.startdatetime IS NOT DISTINCT FROM p_startdatetime AND lv.enddatetime IS NOT DISTINCT FROM p_enddatetime AND lv.comments IS NOT DISTINCT FROM p_comments AND lv.idbytech IS NOT DISTINCT FROM p_idbytech AND lv.sortbytech IS NOT DISTINCT FROM p_sortbytech AND lv.processed IS NOT DISTINCT FROM p_processed AND lv.sitecond IS NOT DISTINCT FROM p_sitecond AND lv.locationname IS NOT DISTINCT FROM p_locationname AND lv.recordstatus IS NOT DISTINCT FROM p_recordstatus AND lv.reviewed IS NOT DISTINCT FROM p_reviewed AND lv.reviewedby IS NOT DISTINCT FROM p_reviewedby AND lv.revieweddate IS NOT DISTINCT FROM p_revieweddate AND lv.trapcondition IS NOT DISTINCT FROM p_trapcondition AND lv.trapnights IS NOT DISTINCT FROM p_trapnights AND lv.zone IS NOT DISTINCT FROM p_zone AND lv.zone2 IS NOT DISTINCT FROM p_zone2 AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.srid IS NOT DISTINCT FROM p_srid AND lv.fieldtech IS NOT DISTINCT FROM p_fieldtech AND lv.gatewaysync IS NOT DISTINCT FROM p_gatewaysync AND lv.loc_id IS NOT DISTINCT FROM p_loc_id AND lv.voltage IS NOT DISTINCT FROM p_voltage AND lv.winddir IS NOT DISTINCT FROM p_winddir AND lv.windspeed IS NOT DISTINCT FROM p_windspeed AND lv.avetemp IS NOT DISTINCT FROM p_avetemp AND lv.raingauge IS NOT DISTINCT FROM p_raingauge AND lv.lr IS NOT DISTINCT FROM p_lr AND lv.field IS NOT DISTINCT FROM p_field AND lv.vectorsurvtrapdataid IS NOT DISTINCT FROM p_vectorsurvtrapdataid AND lv.vectorsurvtraplocationid IS NOT DISTINCT FROM p_vectorsurvtraplocationid AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.lure IS NOT DISTINCT FROM p_lure AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.trapdata WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.trapdata WHERE objectid = p_objectid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.trapdata ( objectid, organization_id, traptype, trapactivitytype, startdatetime, enddatetime, comments, idbytech, sortbytech, processed, sitecond, locationname, recordstatus, reviewed, reviewedby, revieweddate, trapcondition, trapnights, zone, zone2, globalid, created_user, created_date, last_edited_user, last_edited_date, srid, fieldtech, gatewaysync, loc_id, voltage, winddir, windspeed, avetemp, raingauge, lr, field, vectorsurvtrapdataid, vectorsurvtraplocationid, creationdate, creator, editdate, editor, lure, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_traptype, p_trapactivitytype, p_startdatetime, p_enddatetime, p_comments, p_idbytech, p_sortbytech, p_processed, p_sitecond, p_locationname, p_recordstatus, p_reviewed, p_reviewedby, p_revieweddate, p_trapcondition, p_trapnights, p_zone, p_zone2, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_srid, p_fieldtech, p_gatewaysync, p_loc_id, p_voltage, p_winddir, p_windspeed, p_avetemp, p_raingauge, p_lr, p_field, p_vectorsurvtrapdataid, p_vectorsurvtraplocationid, p_creationdate, p_creator, p_editdate, p_editor, p_lure, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_traplocation( p_objectid bigint, p_organization_id INTEGER, p_name varchar, p_zone varchar, p_habitat varchar, p_priority varchar, p_usetype varchar, p_active smallint, p_description varchar, p_accessdesc varchar, p_comments varchar, p_externalid varchar, p_nextactiondatescheduled timestamp, p_zone2 varchar, p_locationnumber integer, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_gatewaysync smallint, p_route integer, p_set_dow integer, p_route_order integer, p_vectorsurvsiteid varchar, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_h3r7 varchar, p_h3r8 varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.traplocation lv WHERE lv.objectid = p_objectid AND lv.organization_id = p_organization_id AND lv.name IS NOT DISTINCT FROM p_name AND lv.zone IS NOT DISTINCT FROM p_zone AND lv.habitat IS NOT DISTINCT FROM p_habitat AND lv.priority IS NOT DISTINCT FROM p_priority AND lv.usetype IS NOT DISTINCT FROM p_usetype AND lv.active IS NOT DISTINCT FROM p_active AND lv.description IS NOT DISTINCT FROM p_description AND lv.accessdesc IS NOT DISTINCT FROM p_accessdesc AND lv.comments IS NOT DISTINCT FROM p_comments AND lv.externalid IS NOT DISTINCT FROM p_externalid AND lv.nextactiondatescheduled IS NOT DISTINCT FROM p_nextactiondatescheduled AND lv.zone2 IS NOT DISTINCT FROM p_zone2 AND lv.locationnumber IS NOT DISTINCT FROM p_locationnumber AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.gatewaysync IS NOT DISTINCT FROM p_gatewaysync AND lv.route IS NOT DISTINCT FROM p_route AND lv.set_dow IS NOT DISTINCT FROM p_set_dow AND lv.route_order IS NOT DISTINCT FROM p_route_order AND lv.vectorsurvsiteid IS NOT DISTINCT FROM p_vectorsurvsiteid AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.h3r7 IS NOT DISTINCT FROM p_h3r7 AND lv.h3r8 IS NOT DISTINCT FROM p_h3r8 AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.traplocation WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.traplocation WHERE objectid = p_objectid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.traplocation ( objectid, organization_id, name, zone, habitat, priority, usetype, active, description, accessdesc, comments, externalid, nextactiondatescheduled, zone2, locationnumber, globalid, created_user, created_date, last_edited_user, last_edited_date, gatewaysync, route, set_dow, route_order, vectorsurvsiteid, creationdate, creator, editdate, editor, h3r7, h3r8, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_name, p_zone, p_habitat, p_priority, p_usetype, p_active, p_description, p_accessdesc, p_comments, p_externalid, p_nextactiondatescheduled, p_zone2, p_locationnumber, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_gatewaysync, p_route, p_set_dow, p_route_order, p_vectorsurvsiteid, p_creationdate, p_creator, p_editdate, p_editor, p_h3r7, p_h3r8, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_treatmentarea( p_objectid bigint, p_organization_id INTEGER, p_treat_id uuid, p_session_id uuid, p_treatdate timestamp, p_comments varchar, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_notified smallint, p_type varchar, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_shape__area double precision, p_shape__length double precision, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.treatmentarea lv WHERE lv.objectid = p_objectid AND lv.organization_id = p_organization_id AND lv.treat_id IS NOT DISTINCT FROM p_treat_id AND lv.session_id IS NOT DISTINCT FROM p_session_id AND lv.treatdate IS NOT DISTINCT FROM p_treatdate AND lv.comments IS NOT DISTINCT FROM p_comments AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.notified IS NOT DISTINCT FROM p_notified AND lv.type IS NOT DISTINCT FROM p_type AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.shape__area IS NOT DISTINCT FROM p_shape__area AND lv.shape__length IS NOT DISTINCT FROM p_shape__length AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.treatmentarea WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.treatmentarea WHERE objectid = p_objectid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.treatmentarea ( objectid, organization_id, treat_id, session_id, treatdate, comments, globalid, created_user, created_date, last_edited_user, last_edited_date, notified, type, creationdate, creator, editdate, editor, shape__area, shape__length, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_treat_id, p_session_id, p_treatdate, p_comments, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_notified, p_type, p_creationdate, p_creator, p_editdate, p_editor, p_shape__area, p_shape__length, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_treatment( p_objectid bigint, p_organization_id INTEGER, p_activity varchar, p_treatarea double precision, p_areaunit varchar, p_product varchar, p_qty double precision, p_qtyunit varchar, p_method varchar, p_equiptype varchar, p_comments varchar, p_avetemp double precision, p_windspeed double precision, p_winddir varchar, p_raingauge double precision, p_startdatetime timestamp, p_enddatetime timestamp, p_insp_id uuid, p_reviewed smallint, p_reviewedby varchar, p_revieweddate timestamp, p_locationname varchar, p_zone varchar, p_warningoverride smallint, p_recordstatus smallint, p_zone2 varchar, p_treatacres double precision, p_tirecount smallint, p_cbcount smallint, p_containercount smallint, p_globalid uuid, p_treatmentlength double precision, p_treatmenthours double precision, p_treatmentlengthunits varchar, p_linelocid uuid, p_pointlocid uuid, p_polygonlocid uuid, p_srid uuid, p_sdid uuid, p_barrierrouteid uuid, p_ulvrouteid uuid, p_fieldtech varchar, p_ptaid uuid, p_flowrate double precision, p_habitat varchar, p_treathectares double precision, p_invloc varchar, p_temp_sitecond varchar, p_sitecond varchar, p_totalcostprodcut double precision, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_targetspecies varchar, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.treatment lv WHERE lv.objectid = p_objectid AND lv.organization_id = p_organization_id AND lv.activity IS NOT DISTINCT FROM p_activity AND lv.treatarea IS NOT DISTINCT FROM p_treatarea AND lv.areaunit IS NOT DISTINCT FROM p_areaunit AND lv.product IS NOT DISTINCT FROM p_product AND lv.qty IS NOT DISTINCT FROM p_qty AND lv.qtyunit IS NOT DISTINCT FROM p_qtyunit AND lv.method IS NOT DISTINCT FROM p_method AND lv.equiptype IS NOT DISTINCT FROM p_equiptype AND lv.comments IS NOT DISTINCT FROM p_comments AND lv.avetemp IS NOT DISTINCT FROM p_avetemp AND lv.windspeed IS NOT DISTINCT FROM p_windspeed AND lv.winddir IS NOT DISTINCT FROM p_winddir AND lv.raingauge IS NOT DISTINCT FROM p_raingauge AND lv.startdatetime IS NOT DISTINCT FROM p_startdatetime AND lv.enddatetime IS NOT DISTINCT FROM p_enddatetime AND lv.insp_id IS NOT DISTINCT FROM p_insp_id AND lv.reviewed IS NOT DISTINCT FROM p_reviewed AND lv.reviewedby IS NOT DISTINCT FROM p_reviewedby AND lv.revieweddate IS NOT DISTINCT FROM p_revieweddate AND lv.locationname IS NOT DISTINCT FROM p_locationname AND lv.zone IS NOT DISTINCT FROM p_zone AND lv.warningoverride IS NOT DISTINCT FROM p_warningoverride AND lv.recordstatus IS NOT DISTINCT FROM p_recordstatus AND lv.zone2 IS NOT DISTINCT FROM p_zone2 AND lv.treatacres IS NOT DISTINCT FROM p_treatacres AND lv.tirecount IS NOT DISTINCT FROM p_tirecount AND lv.cbcount IS NOT DISTINCT FROM p_cbcount AND lv.containercount IS NOT DISTINCT FROM p_containercount AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.treatmentlength IS NOT DISTINCT FROM p_treatmentlength AND lv.treatmenthours IS NOT DISTINCT FROM p_treatmenthours AND lv.treatmentlengthunits IS NOT DISTINCT FROM p_treatmentlengthunits AND lv.linelocid IS NOT DISTINCT FROM p_linelocid AND lv.pointlocid IS NOT DISTINCT FROM p_pointlocid AND lv.polygonlocid IS NOT DISTINCT FROM p_polygonlocid AND lv.srid IS NOT DISTINCT FROM p_srid AND lv.sdid IS NOT DISTINCT FROM p_sdid AND lv.barrierrouteid IS NOT DISTINCT FROM p_barrierrouteid AND lv.ulvrouteid IS NOT DISTINCT FROM p_ulvrouteid AND lv.fieldtech IS NOT DISTINCT FROM p_fieldtech AND lv.ptaid IS NOT DISTINCT FROM p_ptaid AND lv.flowrate IS NOT DISTINCT FROM p_flowrate AND lv.habitat IS NOT DISTINCT FROM p_habitat AND lv.treathectares IS NOT DISTINCT FROM p_treathectares AND lv.invloc IS NOT DISTINCT FROM p_invloc AND lv.temp_sitecond IS NOT DISTINCT FROM p_temp_sitecond AND lv.sitecond IS NOT DISTINCT FROM p_sitecond AND lv.totalcostprodcut IS NOT DISTINCT FROM p_totalcostprodcut AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.targetspecies IS NOT DISTINCT FROM p_targetspecies AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.treatment WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.treatment WHERE objectid = p_objectid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.treatment ( objectid, organization_id, activity, treatarea, areaunit, product, qty, qtyunit, method, equiptype, comments, avetemp, windspeed, winddir, raingauge, startdatetime, enddatetime, insp_id, reviewed, reviewedby, revieweddate, locationname, zone, warningoverride, recordstatus, zone2, treatacres, tirecount, cbcount, containercount, globalid, treatmentlength, treatmenthours, treatmentlengthunits, linelocid, pointlocid, polygonlocid, srid, sdid, barrierrouteid, ulvrouteid, fieldtech, ptaid, flowrate, habitat, treathectares, invloc, temp_sitecond, sitecond, totalcostprodcut, creationdate, creator, editdate, editor, targetspecies, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_activity, p_treatarea, p_areaunit, p_product, p_qty, p_qtyunit, p_method, p_equiptype, p_comments, p_avetemp, p_windspeed, p_winddir, p_raingauge, p_startdatetime, p_enddatetime, p_insp_id, p_reviewed, p_reviewedby, p_revieweddate, p_locationname, p_zone, p_warningoverride, p_recordstatus, p_zone2, p_treatacres, p_tirecount, p_cbcount, p_containercount, p_globalid, p_treatmentlength, p_treatmenthours, p_treatmentlengthunits, p_linelocid, p_pointlocid, p_polygonlocid, p_srid, p_sdid, p_barrierrouteid, p_ulvrouteid, p_fieldtech, p_ptaid, p_flowrate, p_habitat, p_treathectares, p_invloc, p_temp_sitecond, p_sitecond, p_totalcostprodcut, p_creationdate, p_creator, p_editdate, p_editor, p_targetspecies, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_zones2( p_objectid bigint, p_organization_id INTEGER, p_name varchar, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_shape__area double precision, p_shape__length double precision, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.zones2 lv WHERE lv.objectid = p_objectid AND lv.organization_id = p_organization_id AND lv.name IS NOT DISTINCT FROM p_name AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.shape__area IS NOT DISTINCT FROM p_shape__area AND lv.shape__length IS NOT DISTINCT FROM p_shape__length AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.zones2 WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.zones2 WHERE objectid = p_objectid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.zones2 ( objectid, organization_id, name, globalid, created_user, created_date, last_edited_user, last_edited_date, creationdate, creator, editdate, editor, shape__area, shape__length, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_name, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_creationdate, p_creator, p_editdate, p_editor, p_shape__area, p_shape__length, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd -- +goose StatementBegin CREATE OR REPLACE FUNCTION fieldseeker.insert_zones( p_objectid bigint, p_organization_id INTEGER, p_name varchar, p_globalid uuid, p_created_user varchar, p_created_date timestamp, p_last_edited_user varchar, p_last_edited_date timestamp, p_active integer, p_creationdate timestamp, p_creator varchar, p_editdate timestamp, p_editor varchar, p_shape__area double precision, p_shape__length double precision, p_geometry jsonb, p_geospatial geometry ) RETURNS TABLE(row_inserted boolean, version_num integer) AS $$ DECLARE v_next_version integer; v_changes_exist boolean; BEGIN -- Check if changes exist SELECT NOT EXISTS ( SELECT 1 FROM fieldseeker.zones lv WHERE lv.objectid = p_objectid AND lv.organization_id = p_organization_id AND lv.name IS NOT DISTINCT FROM p_name AND lv.globalid IS NOT DISTINCT FROM p_globalid AND lv.created_user IS NOT DISTINCT FROM p_created_user AND lv.created_date IS NOT DISTINCT FROM p_created_date AND lv.last_edited_user IS NOT DISTINCT FROM p_last_edited_user AND lv.last_edited_date IS NOT DISTINCT FROM p_last_edited_date AND lv.active IS NOT DISTINCT FROM p_active AND lv.creationdate IS NOT DISTINCT FROM p_creationdate AND lv.creator IS NOT DISTINCT FROM p_creator AND lv.editdate IS NOT DISTINCT FROM p_editdate AND lv.editor IS NOT DISTINCT FROM p_editor AND lv.shape__area IS NOT DISTINCT FROM p_shape__area AND lv.shape__length IS NOT DISTINCT FROM p_shape__length AND lv.geometry IS NOT DISTINCT FROM p_geometry AND lv.geospatial IS NOT DISTINCT FROM p_geospatial ORDER BY VERSION DESC LIMIT 1 ) INTO v_changes_exist; -- If no changes, return false with current version IF NOT v_changes_exist THEN RETURN QUERY SELECT FALSE AS row_inserted, (SELECT VERSION FROM fieldseeker.zones WHERE objectid = p_objectid AND organization_id = p_organization_id ORDER BY VERSION DESC LIMIT 1) AS version_num; RETURN; END IF; -- Calculate next version SELECT COALESCE(MAX(VERSION) + 1, 1) INTO v_next_version FROM fieldseeker.zones WHERE objectid = p_objectid AND organization_id = p_organization_id; -- Insert new version INSERT INTO fieldseeker.zones ( objectid, organization_id, name, globalid, created_user, created_date, last_edited_user, last_edited_date, active, creationdate, creator, editdate, editor, shape__area, shape__length, geometry, geospatial, VERSION ) VALUES ( p_objectid, p_organization_id, p_name, p_globalid, p_created_user, p_created_date, p_last_edited_user, p_last_edited_date, p_active, p_creationdate, p_creator, p_editdate, p_editor, p_shape__area, p_shape__length, p_geometry, p_geospatial, v_next_version ); -- Return success with new version RETURN QUERY SELECT TRUE AS row_inserted, v_next_version AS version_num; END; $$ LANGUAGE plpgsql; -- +goose StatementEnd