YAXX#80483 Opdracht direct aanmaken (auto-order) per locatie instellen

svn path=/Database/trunk/; revision=63122
This commit is contained in:
Erik Groener
2024-01-09 13:27:47 +00:00
parent 2680861c40
commit 19a3591ed1
3 changed files with 34 additions and 3 deletions

View File

@@ -1573,6 +1573,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
PROCEDURE mld_addautoorder (p_melding_key IN NUMBER)
AS
l_autoorder mld_stdmelding.mld_stdmelding_autoorder%TYPE;
l_mld_autoorder prs_bedrijfdienstlocatie.mld_autoorder%TYPE;
l_prs_perslid_key prs_perslid.prs_perslid_key%TYPE;
l_mld_stdmelding_key mld_stdmelding.mld_stdmelding_key%TYPE;
l_mld_disc_params_opdr_kosten NUMBER;
@@ -1622,6 +1623,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
BEGIN
BEGIN
SELECT sm.mld_stdmelding_autoorder
, bdl.mld_autoorder
, m.prs_perslid_key
, sm.mld_stdmelding_key
, mdp.mld_disc_params_opdr_kosten
@@ -1640,6 +1642,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
, mdp.mld_disc_params_bestellimiet
, m.mld_melding_conceptstatus
INTO l_autoorder
, l_mld_autoorder
, l_prs_perslid_key
, l_mld_stdmelding_key
, l_mld_disc_params_opdr_kosten
@@ -1662,10 +1665,17 @@ CREATE OR REPLACE PACKAGE BODY mld AS
, ins_tab_discipline d
, mld_disc_params mdp
, prs_kostenplaats k
, prs_bedrijfdienstlocatie bdl
, prs_bedrijfadres ba
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = d.ins_discipline_key
AND d.ins_discipline_key = mdp.mld_ins_discipline_key
AND m.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
AND bdl.alg_locatie_key = m.mld_alg_locatie_key
AND bdl.prs_dienst_key = sm.prs_dienst_key
AND bdl.prs_bedrijf_key = ba.prs_bedrijf_key(+)
AND ba.prs_bedrijfadres_type = 'O'
AND ba.prs_bedrijfadres_url IS NOT NULL
AND m.mld_melding_key = p_melding_key;
EXCEPTION
WHEN NO_DATA_FOUND
@@ -1682,7 +1692,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
END IF;
-- Moet er bij deze melding automatisch een opdracht worden aangemaakt?
IF l_autoorder = 0 OR l_conceptstatus <> 0
IF l_autoorder = 0 OR l_mld_autoorder = 0 OR l_conceptstatus <> 0
THEN
-- No, done.
RETURN;

View File

@@ -221,8 +221,8 @@ CREATE_TABLE(prs_bedrijf_bedrijf,0)
VARCHAR2(60)
);
/* Kruistabel met elektronische adressen van een bedrijf, toegepast door PutOrders
* voor Bestellingen, Contracten en Opdrachten enz, zie prs_bedrijfadres_type.
/* Kruistabel met elektronische adressen van een bedrijf, toegepast door PutOrders
* voor Bestellingen, Contracten en Opdrachten enz, zie prs_bedrijfadres_type.
* Bij Opdrachten kan er per opdrachttype een ander adres zijn, het record met mld_typeopdr_key NULL
* is de fallback voor de niet benoemde opdrachttypes.
* prs_bedrijf_key2 is optioneel het bedrijf van de opdrachtGEVER, in (pseudo-)multicompany omgevingen
@@ -1297,6 +1297,10 @@ prs_bedrijf_voor_key
prs_bdl_t_uitvoertijd
MLD_T_UITVOERTIJD
CONSTRAINT prs_c_prs_bdl_t_uitvoertijd CHECK(prs_bdl_t_uitvoertijd.tijdsduur >= 0), /* of null */
mld_autoorder
NUMBER(1)
DEFAULT 0
NOT NULL,
CONSTRAINT prs_u_prs_bedrijfdienstloc_key UNIQUE (prs_bedrijf_key, prs_perslid_key, prs_dienst_key, alg_locatie_key, alg_gebouw_key,prs_bedrijf_voor_key),
CONSTRAINT prs_c_prs_bedrijfdienstloc CHECK (alg_locatie_key IS NULL OR alg_gebouw_key IS NULL),
CONSTRAINT prs_c_prs_bdlbp1 CHECK ((prs_bedrijf_key IS NOT NULL AND prs_perslid_key IS NULL) OR (prs_bedrijf_key IS NULL AND prs_perslid_key IS NOT NULL))

View File

@@ -209,6 +209,23 @@ ALTER TABLE bes_srtdeel_prijs
MODIFY (bes_srtdeel_prijs_prijs NUMBER (14, 5),
bes_srtdeel_prijs_inkprijs NUMBER (14, 5));
/////////////////////////////////////////////////////////////////////////////////////////// YAXX#80483
ALTER TABLE prs_bedrijfdienstlocatie
ADD mld_autoorder NUMBER(1) DEFAULT(0) NOT NULL;
UPDATE prs_bedrijfdienstlocatie
SET mld_autoorder = 1
WHERE prs_bedrijfdienstlocatie_key IN
(SELECT d.prs_bedrijfdienstlocatie_key
FROM prs_bedrijfdienstlocatie d
, prs_bedrijfadres a
WHERE d.prs_bedrijf_key = a.prs_bedrijf_key
AND a.prs_bedrijfadres_type = 'O'
AND ( d.alg_locatie_key is not null
OR d.alg_gebouw_key is not null
)
);
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#00000