301 lines
8.3 KiB
PL/PgSQL
301 lines
8.3 KiB
PL/PgSQL
|
|
-- +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
|