AAAH#35551 -- Uitbreiding Absoluta koppeling
svn path=/Customer/trunk/; revision=29394
This commit is contained in:
@@ -189,6 +189,8 @@ AS
|
||||
v_supplier_ref VARCHAR2(1000); -- VARCHAR2(30)
|
||||
v_aflever_postcode VARCHAR2(1000); -- VARCHAR2(15)
|
||||
v_aflever_adres VARCHAR2(1000); -- VARCHAR2(50)
|
||||
v_kostenplaats_nr VARCHAR2(1000); -- VARCHAR2(30)
|
||||
v_catalogus VARCHAR2(1000); -- VARCHAR2(50)
|
||||
|
||||
-- Overige velden:
|
||||
CURSOR c1
|
||||
@@ -224,6 +226,8 @@ BEGIN
|
||||
fac.imp_getfield (v_newline, c_delim, v_supplier_ref);
|
||||
fac.imp_getfield (v_newline, c_delim, v_aflever_postcode);
|
||||
fac.imp_getfield (v_newline, c_delim, v_aflever_adres);
|
||||
fac.imp_getfield (v_newline, c_delim, v_catalogus);
|
||||
fac.imp_getfield (v_newline, c_delim, v_kostenplaats_nr);
|
||||
v_aanduiding :=
|
||||
'['
|
||||
|| v_bestelopdr_id
|
||||
@@ -236,7 +240,7 @@ BEGIN
|
||||
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
|
||||
IF (header_is_valid = 0)
|
||||
THEN
|
||||
IF rec1.fac_imp_file_line = 'referenceID;dateTime;lineNumber;itemId;description;quantity;itemPrice;itemTax;deliveryDate;supplierRef;postcode;adres'
|
||||
IF rec1.fac_imp_file_line = 'referenceID;dateTime;lineNumber;itemId;description;quantity;itemPrice;itemTax;deliveryDate;supplierRef;postcode;adres;catalogus;kostenplaats'
|
||||
THEN
|
||||
header_is_valid := 1;
|
||||
END IF;
|
||||
@@ -256,7 +260,9 @@ BEGIN
|
||||
bes_bestelling_leverdatum,
|
||||
supplier_ref,
|
||||
aflever_postcode,
|
||||
aflever_adres)
|
||||
aflever_adres,
|
||||
catalogus,
|
||||
prs_kostenplaats_nr)
|
||||
VALUES (SUBSTR(v_bestelopdr_id,1,30),
|
||||
TO_DATE(v_datum_tijd, 'yyyy-mm-dd hh24:mi:ss'),
|
||||
TO_NUMBER(v_line_number),
|
||||
@@ -269,7 +275,9 @@ BEGIN
|
||||
TO_DATE(v_bestelling_leverdatum, 'yyyy-mm-dd hh24:mi:ss'),
|
||||
SUBSTR(v_supplier_ref,1,30),
|
||||
SUBSTR(v_aflever_postcode,1,15),
|
||||
SUBSTR(v_aflever_adres,1,50));
|
||||
SUBSTR(v_aflever_adres,1,50),
|
||||
SUBSTR(v_catalogus,1,50),
|
||||
SUBSTR(v_kostenplaats_nr,1,30));
|
||||
|
||||
END IF;
|
||||
EXCEPTION
|
||||
@@ -367,12 +375,15 @@ AS
|
||||
v_bestelopdr_status BES_BESTELOPDR.BES_BESTELOPDR_STATUS%TYPE;
|
||||
v_adres_key_lev MLD_ADRES.MLD_ADRES_KEY%TYPE;
|
||||
v_adres_key_lev2 MLD_ADRES.MLD_ADRES_KEY%TYPE;
|
||||
v_srtgroep_key BES_SRTGROEP.BES_SRTGROEP_KEY%TYPE; -- Groep waar producten van Absoluta onder vallen.
|
||||
v_kostenplaats_key PRS_KOSTENPLAATS.PRS_KOSTENPLAATS_KEY%TYPE;
|
||||
|
||||
c_adres_key_lev MLD_ADRES.MLD_ADRES_KEY%TYPE := 40; -- Hoofdkantoor
|
||||
c_perslid_key PRS_PERSLID.PRS_PERSLID_KEY%TYPE := 62; -- Absoluta API user
|
||||
c_kostenplaats_key PRS_KOSTENPLAATS.PRS_KOSTENPLAATS_KEY%TYPE := 32; -- General management
|
||||
c_bedrijf_key PRS_BEDRIJF.PRS_BEDRIJF_KEY%TYPE := 941; -- Absoluta
|
||||
c_srtgroep_key INS_SRTGROEP.INS_SRTGROEP_KEY%TYPE := 41; -- Groep waar producten van Absoluta onder vallen.
|
||||
c_srtgroep_key BES_SRTGROEP.BES_SRTGROEP_KEY%TYPE := 41; -- Groep waar producten van Absoluta onder vallen.
|
||||
|
||||
BEGIN
|
||||
-- Loop door alle geimporteerde bestelregels en verwerk deze.
|
||||
FOR rec IN c
|
||||
@@ -431,6 +442,7 @@ AS
|
||||
'Fout bij verwerken update Absoluta.');
|
||||
END;
|
||||
|
||||
|
||||
IF v_bestelling_key IS NULL
|
||||
THEN
|
||||
IF rec.bes_bestelopdr_id IS NULL
|
||||
@@ -469,6 +481,20 @@ AS
|
||||
'Fout bij verwerken update Absoluta.');
|
||||
END;
|
||||
|
||||
-- We gaan een nieuwe bestelling aanmaken die vanuit Absoluta geiniteerd is.
|
||||
-- We hebben dan geen kostenplaats, dus zoeken we deze op in FACILITOR.
|
||||
|
||||
BEGIN
|
||||
SELECT prs_kostenplaats_key
|
||||
INTO v_kostenplaats_key
|
||||
FROM prs_kostenplaats
|
||||
WHERE prs_kostenplaats_verwijder IS NULL
|
||||
AND prs_kostenplaats_nr = rec.prs_kostenplaats_nr;
|
||||
EXCEPTION WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
v_kostenplaats_key := c_kostenplaats_key;
|
||||
END;
|
||||
|
||||
IF v_bestelling_key IS NULL
|
||||
THEN
|
||||
-- maak nieuwe bestelling aan
|
||||
@@ -485,7 +511,7 @@ AS
|
||||
'BES',
|
||||
rec.bes_bestelling_leverdatum,
|
||||
c_perslid_key,
|
||||
c_kostenplaats_key,
|
||||
v_kostenplaats_key,
|
||||
v_adres_key_lev,
|
||||
0,
|
||||
0,
|
||||
@@ -533,6 +559,31 @@ AS
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
-- Nu gaan we de catalogus achterhalen. Er zijn namelijk drie verschillende catalogi die door Aliance gebruikt worden.
|
||||
-- Allereerst zoeken we bij bestaande artikelen onder welke catalogus deze vallen.
|
||||
SELECT MAX(bes_srtgroep_key)
|
||||
INTO v_srtgroep_key
|
||||
FROM bes_bestelling_item bi, bes_srtdeel sd
|
||||
WHERE bi.bes_bestelling_key = v_bestelling_key
|
||||
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key;
|
||||
|
||||
-- Als dit niet lukt (bijvoorbeeld bij een nieuwe bestelling), dan gebruiken we de catalogus tag (accounthash) uit de xml.
|
||||
IF v_srtgroep_key IS NULL
|
||||
THEN
|
||||
SELECT MAX(bes_srtgroep_key)
|
||||
INTO v_srtgroep_key
|
||||
FROM bes_disc_params bdp, bes_srtgroep sg
|
||||
WHERE bdp.bes_disc_params_punchouturl LIKE '%' || rec.catalogus || '%'
|
||||
AND bdp.bes_ins_discipline_key = sg.ins_discipline_key
|
||||
AND sg.bes_srtgroep_verwijder IS NULL;
|
||||
END IF;
|
||||
|
||||
-- kunnen we helemaal niets vinden dan vallen we terug op de default.
|
||||
IF v_srtgroep_key IS NULL
|
||||
THEN
|
||||
v_srtgroep_key := c_srtgroep_key;
|
||||
END IF;
|
||||
|
||||
-- En nu op zoek naar het bestelling_item (als die gevonden kan worden)
|
||||
BEGIN
|
||||
v_errormsg := 'Zoek bestelingitem';
|
||||
@@ -587,7 +638,7 @@ AS
|
||||
prs_bedrijf_key,
|
||||
bes_srtdeel_veelvoud,
|
||||
bes_srtdeel_notitie)
|
||||
VALUES (c_srtgroep_key,
|
||||
VALUES (v_srtgroep_key,
|
||||
rec.bes_srtdeel_omschrijving,
|
||||
rec.bes_srtdeel_opmerking,
|
||||
sysdate,
|
||||
@@ -709,7 +760,7 @@ BEGIN adm.systrackscriptId('$Id$', 0); END;
|
||||
/
|
||||
|
||||
|
||||
BEGIN fac.registercustversion('aaah', 2); END;
|
||||
BEGIN fac.registercustversion('aaah', 3); END;
|
||||
/
|
||||
|
||||
COMMIT;
|
||||
|
||||
Reference in New Issue
Block a user