This requires a bunch of changes since the types on these tables are much closer to the underlying types of the Fieldseeker data we are getting back from the API. I now need to use proper UUID types everywhere, which means I had to modify the bob gen config to consistently use google UUID, my UUID library of choice. I also had to add the organization_id to all the fieldseeker tables since we rely on them existing for some of our compound queries. There were some changes to the API type signatures to get things to build. I may yet regret those.
9817 lines
260 KiB
PL/PgSQL
9817 lines
260 KiB
PL/PgSQL
-- +goose Up
|
|
ALTER TABLE fieldseeker.containerrelate ADD COLUMN organization_id INTEGER NOT NULL REFERENCES organization(id);
|
|
ALTER TABLE fieldseeker.fieldscoutinglog ADD COLUMN organization_id INTEGER NOT NULL REFERENCES organization(id);
|
|
ALTER TABLE fieldseeker.habitatrelate ADD COLUMN organization_id INTEGER NOT NULL REFERENCES organization(id);
|
|
ALTER TABLE fieldseeker.inspectionsample ADD COLUMN organization_id INTEGER NOT NULL REFERENCES organization(id);
|
|
ALTER TABLE fieldseeker.inspectionsampledetail ADD COLUMN organization_id INTEGER NOT NULL REFERENCES organization(id);
|
|
ALTER TABLE fieldseeker.linelocation ADD COLUMN organization_id INTEGER NOT NULL REFERENCES organization(id);
|
|
ALTER TABLE fieldseeker.locationtracking ADD COLUMN organization_id INTEGER NOT NULL REFERENCES organization(id);
|
|
ALTER TABLE fieldseeker.mosquitoinspection ADD COLUMN organization_id INTEGER NOT NULL REFERENCES organization(id);
|
|
ALTER TABLE fieldseeker.pointlocation ADD COLUMN organization_id INTEGER NOT NULL REFERENCES organization(id);
|
|
ALTER TABLE fieldseeker.polygonlocation ADD COLUMN organization_id INTEGER NOT NULL REFERENCES organization(id);
|
|
ALTER TABLE fieldseeker.pool ADD COLUMN organization_id INTEGER NOT NULL REFERENCES organization(id);
|
|
ALTER TABLE fieldseeker.pooldetail ADD COLUMN organization_id INTEGER NOT NULL REFERENCES organization(id);
|
|
ALTER TABLE fieldseeker.proposedtreatmentarea ADD COLUMN organization_id INTEGER NOT NULL REFERENCES organization(id);
|
|
ALTER TABLE fieldseeker.qamosquitoinspection ADD COLUMN organization_id INTEGER NOT NULL REFERENCES organization(id);
|
|
ALTER TABLE fieldseeker.rodentlocation ADD COLUMN organization_id INTEGER NOT NULL REFERENCES organization(id);
|
|
ALTER TABLE fieldseeker.samplecollection ADD COLUMN organization_id INTEGER NOT NULL REFERENCES organization(id);
|
|
ALTER TABLE fieldseeker.samplelocation ADD COLUMN organization_id INTEGER NOT NULL REFERENCES organization(id);
|
|
ALTER TABLE fieldseeker.servicerequest ADD COLUMN organization_id INTEGER NOT NULL REFERENCES organization(id);
|
|
ALTER TABLE fieldseeker.speciesabundance ADD COLUMN organization_id INTEGER NOT NULL REFERENCES organization(id);
|
|
ALTER TABLE fieldseeker.stormdrain ADD COLUMN organization_id INTEGER NOT NULL REFERENCES organization(id);
|
|
ALTER TABLE fieldseeker.timecard ADD COLUMN organization_id INTEGER NOT NULL REFERENCES organization(id);
|
|
ALTER TABLE fieldseeker.trapdata ADD COLUMN organization_id INTEGER NOT NULL REFERENCES organization(id);
|
|
ALTER TABLE fieldseeker.traplocation ADD COLUMN organization_id INTEGER NOT NULL REFERENCES organization(id);
|
|
ALTER TABLE fieldseeker.treatment ADD COLUMN organization_id INTEGER NOT NULL REFERENCES organization(id);
|
|
ALTER TABLE fieldseeker.treatmentarea ADD COLUMN organization_id INTEGER NOT NULL REFERENCES organization(id);
|
|
ALTER TABLE fieldseeker.zones ADD COLUMN organization_id INTEGER NOT NULL REFERENCES organization(id);
|
|
ALTER TABLE fieldseeker.zones2 ADD COLUMN organization_id INTEGER NOT NULL REFERENCES organization(id);
|
|
|
|
-- +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
|
|
-- +goose Down
|
|
-- +goose StatementBegin
|
|
CREATE OR REPLACE FUNCTION fieldseeker.insert_containerrelate(
|
|
p_objectid bigint,
|
|
|
|
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.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 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;
|
|
|
|
-- Insert new version
|
|
INSERT INTO fieldseeker.containerrelate (
|
|
objectid,
|
|
|
|
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_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_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.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 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;
|
|
|
|
-- Insert new version
|
|
INSERT INTO fieldseeker.fieldscoutinglog (
|
|
objectid,
|
|
|
|
status,
|
|
globalid,
|
|
created_user,
|
|
created_date,
|
|
last_edited_user,
|
|
last_edited_date,
|
|
creationdate,
|
|
creator,
|
|
editdate,
|
|
editor,
|
|
geometry,
|
|
geospatial,
|
|
VERSION
|
|
) VALUES (
|
|
p_objectid,
|
|
|
|
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_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.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 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;
|
|
|
|
-- Insert new version
|
|
INSERT INTO fieldseeker.habitatrelate (
|
|
objectid,
|
|
|
|
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_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_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.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 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;
|
|
|
|
-- Insert new version
|
|
INSERT INTO fieldseeker.inspectionsampledetail (
|
|
objectid,
|
|
|
|
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_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_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.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 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;
|
|
|
|
-- Insert new version
|
|
INSERT INTO fieldseeker.inspectionsample (
|
|
objectid,
|
|
|
|
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_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_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.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 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;
|
|
|
|
-- Insert new version
|
|
INSERT INTO fieldseeker.linelocation (
|
|
objectid,
|
|
|
|
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_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_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.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 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;
|
|
|
|
-- Insert new version
|
|
INSERT INTO fieldseeker.locationtracking (
|
|
objectid,
|
|
|
|
accuracy,
|
|
created_user,
|
|
created_date,
|
|
last_edited_user,
|
|
last_edited_date,
|
|
globalid,
|
|
fieldtech,
|
|
creationdate,
|
|
creator,
|
|
editdate,
|
|
editor,
|
|
geometry,
|
|
geospatial,
|
|
VERSION
|
|
) VALUES (
|
|
p_objectid,
|
|
|
|
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_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.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 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;
|
|
|
|
-- Insert new version
|
|
INSERT INTO fieldseeker.mosquitoinspection (
|
|
objectid,
|
|
|
|
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_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_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.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 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;
|
|
|
|
-- Insert new version
|
|
INSERT INTO fieldseeker.pointlocation (
|
|
objectid,
|
|
|
|
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_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_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.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 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;
|
|
|
|
-- Insert new version
|
|
INSERT INTO fieldseeker.polygonlocation (
|
|
objectid,
|
|
|
|
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_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_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.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 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;
|
|
|
|
-- Insert new version
|
|
INSERT INTO fieldseeker.pooldetail (
|
|
objectid,
|
|
|
|
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_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_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.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 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;
|
|
|
|
-- Insert new version
|
|
INSERT INTO fieldseeker.pool (
|
|
objectid,
|
|
|
|
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_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_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.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 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;
|
|
|
|
-- Insert new version
|
|
INSERT INTO fieldseeker.proposedtreatmentarea (
|
|
objectid,
|
|
|
|
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_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_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.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 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;
|
|
|
|
-- Insert new version
|
|
INSERT INTO fieldseeker.qamosquitoinspection (
|
|
objectid,
|
|
|
|
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_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_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.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 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;
|
|
|
|
-- Insert new version
|
|
INSERT INTO fieldseeker.rodentlocation (
|
|
objectid,
|
|
|
|
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_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_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.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 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;
|
|
|
|
-- Insert new version
|
|
INSERT INTO fieldseeker.samplecollection (
|
|
objectid,
|
|
|
|
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_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_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.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 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;
|
|
|
|
-- Insert new version
|
|
INSERT INTO fieldseeker.samplelocation (
|
|
objectid,
|
|
|
|
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_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_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.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 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;
|
|
|
|
-- Insert new version
|
|
INSERT INTO fieldseeker.servicerequest (
|
|
objectid,
|
|
|
|
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_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_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.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 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;
|
|
|
|
-- Insert new version
|
|
INSERT INTO fieldseeker.speciesabundance (
|
|
objectid,
|
|
|
|
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_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_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.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 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;
|
|
|
|
-- Insert new version
|
|
INSERT INTO fieldseeker.stormdrain (
|
|
objectid,
|
|
|
|
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_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_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.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 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;
|
|
|
|
-- Insert new version
|
|
INSERT INTO fieldseeker.timecard (
|
|
objectid,
|
|
|
|
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_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_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.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 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;
|
|
|
|
-- Insert new version
|
|
INSERT INTO fieldseeker.trapdata (
|
|
objectid,
|
|
|
|
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_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_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.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 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;
|
|
|
|
-- Insert new version
|
|
INSERT INTO fieldseeker.traplocation (
|
|
objectid,
|
|
|
|
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_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_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.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 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;
|
|
|
|
-- Insert new version
|
|
INSERT INTO fieldseeker.treatmentarea (
|
|
objectid,
|
|
|
|
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_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_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.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 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;
|
|
|
|
-- Insert new version
|
|
INSERT INTO fieldseeker.treatment (
|
|
objectid,
|
|
|
|
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_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_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.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 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;
|
|
|
|
-- Insert new version
|
|
INSERT INTO fieldseeker.zones2 (
|
|
objectid,
|
|
|
|
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_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_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.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 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;
|
|
|
|
-- Insert new version
|
|
INSERT INTO fieldseeker.zones (
|
|
objectid,
|
|
|
|
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_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
|
|
ALTER TABLE fieldseeker.containerrelate DROP COLUMN organization_id;
|
|
ALTER TABLE fieldseeker.fieldscoutinglog DROP COLUMN organization_id;
|
|
ALTER TABLE fieldseeker.habitatrelate DROP COLUMN organization_id;
|
|
ALTER TABLE fieldseeker.inspectionsample DROP COLUMN organization_id;
|
|
ALTER TABLE fieldseeker.inspectionsampledetail DROP COLUMN organization_id;
|
|
ALTER TABLE fieldseeker.linelocation DROP COLUMN organization_id;
|
|
ALTER TABLE fieldseeker.locationtracking DROP COLUMN organization_id;
|
|
ALTER TABLE fieldseeker.mosquitoinspection DROP COLUMN organization_id;
|
|
ALTER TABLE fieldseeker.pointlocation DROP COLUMN organization_id;
|
|
ALTER TABLE fieldseeker.polygonlocation DROP COLUMN organization_id;
|
|
ALTER TABLE fieldseeker.pool DROP COLUMN organization_id;
|
|
ALTER TABLE fieldseeker.pooldetail DROP COLUMN organization_id;
|
|
ALTER TABLE fieldseeker.proposedtreatmentarea DROP COLUMN organization_id;
|
|
ALTER TABLE fieldseeker.qamosquitoinspection DROP COLUMN organization_id;
|
|
ALTER TABLE fieldseeker.rodentlocation DROP COLUMN organization_id;
|
|
ALTER TABLE fieldseeker.samplecollection DROP COLUMN organization_id;
|
|
ALTER TABLE fieldseeker.samplelocation DROP COLUMN organization_id;
|
|
ALTER TABLE fieldseeker.servicerequest DROP COLUMN organization_id;
|
|
ALTER TABLE fieldseeker.speciesabundance DROP COLUMN organization_id;
|
|
ALTER TABLE fieldseeker.stormdrain DROP COLUMN organization_id;
|
|
ALTER TABLE fieldseeker.timecard DROP COLUMN organization_id;
|
|
ALTER TABLE fieldseeker.trapdata DROP COLUMN organization_id;
|
|
ALTER TABLE fieldseeker.traplocation DROP COLUMN organization_id;
|
|
ALTER TABLE fieldseeker.treatment DROP COLUMN organization_id;
|
|
ALTER TABLE fieldseeker.treatmentarea DROP COLUMN organization_id;
|
|
ALTER TABLE fieldseeker.zones DROP COLUMN organization_id;
|
|
ALTER TABLE fieldseeker.zones2 DROP COLUMN organization_id;
|