9870 lines
260 KiB
PL/PgSQL
9870 lines
260 KiB
PL/PgSQL
-- +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
|