ASFC#34371: Start en stopmoment bij schoonmaak via inspecties kunnen vastleggen.

svn path=/Database/trunk/; revision=28368
This commit is contained in:
Maykel Geerdink
2016-03-07 09:40:53 +00:00
parent 27233e842b
commit 58d26d83a0
3 changed files with 62 additions and 4 deletions

View File

@@ -4453,7 +4453,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
AND isc.ins_srtinstallatie_key = id.ins_discipline_key)
AND id.ins_deel_key = p_insdeel)
SELECT fac.nextcyclusdate (COALESCE ( (SELECT MAX ( GREATEST (COALESCE (idsc.ins_deelsrtcontrole_datum_xcp,
SELECT fac.nextcyclusdate (COALESCE ( (SELECT MAX ( GREATEST (COALESCE (idsc.ins_deelsrtcontrole_plandatum,
CASE di.ins_srtcontrole_mode
WHEN 0
THEN idsc.ins_deelsrtcontrole_datum_org
@@ -4466,6 +4466,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
) ins_deelsrtcontrole_datum
FROM ins_deelsrtcontrole idsc
WHERE idsc.ins_srtcontrole_key = di.ins_srtcontrole_key
AND idsc.ins_deelsrtcontrole_status IN (5,6)
AND idsc.ins_deel_key = di.ins_deel_key),
di.ins_deel_aanmaak),
di.ins_srtcontrole_mode,

View File

@@ -10,6 +10,7 @@ CREATE OR REPLACE PACKAGE ins AS
FUNCTION sprintf (ps IN varchar2, pins_deel_key IN number) RETURN varchar2;
FUNCTION nextcyclusdate (p_insdeel IN NUMBER, p_srtcontrole IN NUMBER, p_steps IN NUMBER DEFAULT 0) RETURN DATE;
FUNCTION nextcyclusdatesteps (p_insdeel IN NUMBER, p_srtcontrole IN NUMBER, p_steps IN NUMBER DEFAULT 1) RETURN NUMBER;
PROCEDURE setinspectstatus (pdlsrtcontrkey IN NUMBER, pstatus IN NUMBER, puserkey IN NUMBER);
END ins;
/
@@ -220,7 +221,7 @@ CREATE OR REPLACE PACKAGE BODY ins AS
AND isc.ins_srtinstallatie_key = id.ins_discipline_key)
AND id.ins_deel_key = p_insdeel)
SELECT fac.nextcyclusdate (COALESCE ( (SELECT MAX ( GREATEST (COALESCE (idsc.ins_deelsrtcontrole_datum_xcp,
SELECT fac.nextcyclusdate (COALESCE ( (SELECT MAX ( GREATEST (COALESCE (idsc.ins_deelsrtcontrole_plandatum,
CASE di.ins_srtcontrole_mode
WHEN 0
THEN idsc.ins_deelsrtcontrole_datum_org
@@ -280,7 +281,7 @@ CREATE OR REPLACE PACKAGE BODY ins AS
OR isc.ins_srtcontrole_niveau = 'D'
AND isc.ins_srtinstallatie_key = id.ins_discipline_key)
AND id.ins_deel_key = p_insdeel)
SELECT fac.nextcyclusdatesteps (COALESCE ( (SELECT MAX (COALESCE(idsc.ins_deelsrtcontrole_datum_xcp, idsc.ins_deelsrtcontrole_datum_org)) ins_deelsrtcontrole_datum
SELECT fac.nextcyclusdatesteps (COALESCE ( (SELECT MAX (COALESCE(idsc.ins_deelsrtcontrole_plandatum, idsc.ins_deelsrtcontrole_datum_org)) ins_deelsrtcontrole_datum
FROM ins_deelsrtcontrole idsc
WHERE di.ins_srtcontrole_key = idsc.ins_srtcontrole_key
AND idsc.ins_deelsrtcontrole_status IN (5,6)
@@ -303,6 +304,63 @@ CREATE OR REPLACE PACKAGE BODY ins AS
RETURN lsteps;
END;
-- Geef deelsrtcontrolekey, gewenste status en userkey, en de status wortdt
-- gezet, waarbij zonodig (indien verandering) een trackrecord wordt gemaakt
-- Als de status niet wijzigt, wordt ook geen trackrecord gemaakt
PROCEDURE setinspectstatus (pdlsrtcontrkey IN NUMBER, pstatus IN NUMBER, puserkey IN NUMBER)
AS
currentstatus ins_deelsrtcontrole.ins_deelsrtcontrole_status%TYPE;
newstatus ins_deelsrtcontrole.ins_deelsrtcontrole_status%TYPE;
eventcode fac_srtnotificatie.fac_srtnotificatie_code%TYPE;
BEGIN
SELECT ins_deelsrtcontrole_status
INTO currentstatus
FROM ins_deelsrtcontrole
WHERE ins_deelsrtcontrole_key = pdlsrtcontrkey;
CASE pstatus
WHEN 0 -- Gepland
THEN
IF currentstatus IS NULL
THEN
newstatus := pstatus;
END IF;
WHEN 2 -- In behandeling
THEN
IF currentstatus IS NULL OR currentstatus = 0
THEN
newstatus := pstatus;
eventcode := 'INSCBE';
END IF;
WHEN 5 -- Afgemeld
THEN
IF currentstatus IS NULL OR currentstatus = 0 OR currentstatus = 2
THEN
newstatus := pstatus;
eventcode := 'INSCAF';
END IF;
WHEN 6 -- Verwerkt
THEN
IF currentstatus IS NULL OR currentstatus = 0 OR currentstatus = 2 OR currentstatus = 5
THEN
newstatus := pstatus;
eventcode := 'INSCVE';
END IF;
ELSE
-- Invalid statuschange or no change
newstatus := NULL;
END CASE;
IF newstatus IS NOT NULL
THEN
-- vooralsnog lopen de notificaties 1-op-1 met de tracking
-- noticode := eventcode;
UPDATE ins_deelsrtcontrole
SET ins_deelsrtcontrole_status = newstatus
WHERE ins_deelsrtcontrole_key = pdlsrtcontrkey;
-- We know that trackaction doesnt do tracking if eventcode is null
fac.trackaction (eventcode, pdlsrtcontrkey, puserkey, NULL, NULL);
END IF;
END;
END ins;
/

View File

@@ -532,7 +532,6 @@ CREATE_TABLE(ins_deelsrtcontrole, 0)
DATE,
ins_deelsrtcontrole_status // (vooralsnog 0,2,5,6)
NUMBER(1)
DEFAULT (6)
CONSTRAINT ins_c_deelsrtcontrole_status NOT NULL,
// Note: this column is defined in PRS_TAB.SRC
// prs_perslid_key