STPH#38624: Digitale facturen zonder kostensoort

svn path=/Customer/trunk/; revision=32728
This commit is contained in:
Marcel Bourseau
2017-02-07 11:57:51 +00:00
parent 2d16b3d32e
commit e0b0519ba5

View File

@@ -31,7 +31,7 @@ BEGIN
'0;0;0;0;0;0',
'Roepnaam;Voorletters;Tussenvoegsel;Achternaam;Persnr.;Afdnr.;Functie;Email;Mobile;Telefoon;Loginnaam;%'
);
COMMIT;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
@@ -45,9 +45,9 @@ END stph_import_perslid;
CREATE OR REPLACE PROCEDURE stph_post_update_perslid (p_import_key IN NUMBER)
AS
v_kostenplaats_key_perslid NUMBER(10);
v_kostenplaats_key_perslid NUMBER(10);
v_kostenplaats_key_afdeling NUMBER(10);
v_prs_afdeling_key NUMBER(10);
v_prs_afdeling_key NUMBER(10);
CURSOR c_perslid_kpn_kenmerk
IS
@@ -69,46 +69,46 @@ BEGIN
IF v_kostenplaats_key_perslid IS NULL
THEN
-- Kostenplaats bij de persoon (vanuit AFAS) staat niet in Facilitor, persoon blijft aan de afdeling gekoppeld volgens AFAS (dus niet naar evt. 'fictieve' afdeling).
fac.imp_writelog (p_import_key,
-- Kostenplaats bij de persoon (vanuit AFAS) staat niet in Facilitor, persoon blijft aan de afdeling gekoppeld volgens AFAS (dus niet naar evt. 'fictieve' afdeling).
fac.imp_writelog (p_import_key,
'W',
'Kostenplaats van persoon' || rc.prs_perslid_nr || ' is NIET gevonden)',
'Naam:' || rc.prs_perslid_naam || ' / Afdeling: ' || rc.prs_afdeling_naam
);
ELSE
-- Kostenplaats record bij de persoon is gevonden,
-- Nu eerst de kostenplaats van de afdeling bepalen
SELECT MAX(a.prs_kostenplaats_key)
INTO v_kostenplaats_key_afdeling
FROM prs_afdeling a, prs_perslid p
WHERE p.prs_perslid_nr = rc.prs_perslid_nr
AND p.prs_perslid_verwijder IS NULL
AND a.prs_afdeling_key = p.prs_afdeling_key
AND a.prs_afdeling_verwijder IS NULL;
-- Als deze afwijkt van de kostenplaats van de afdeling waar persoon onder valt, dan persoon verhuizen naar die fictieve afdeling
IF v_kostenplaats_key_afdeling IS NOT NULL
THEN
-- Afdeling heeft kostenplaats, nu vergelijken met die van persoon
-- Indien ongelijk, dan zoek de fictieve afdeling, want daar persoon aan koppelen.
IF v_kostenplaats_key_perslid <> v_kostenplaats_key_afdeling
THEN
-- Zoek de eerste afdeling (MAX) die kostenplaats van persoon heeft, daar gaat persoon onder vallen.
SELECT MAX(a.prs_afdeling_key)
INTO v_prs_afdeling_key
FROM prs_afdeling a
WHERE a.prs_kostenplaats_key = v_kostenplaats_key_perslid
AND a.prs_afdeling_verwijder IS NULL;
IF v_prs_afdeling_key IS NOT NULL
THEN
UPDATE prs_perslid p
SET p.prs_afdeling_key = v_prs_afdeling_key
WHERE p.prs_perslid_nr = rc.prs_perslid_nr
AND p.prs_perslid_verwijder IS NULL;
END IF;
END IF;
END IF;
-- Kostenplaats record bij de persoon is gevonden,
-- Nu eerst de kostenplaats van de afdeling bepalen
SELECT MAX(a.prs_kostenplaats_key)
INTO v_kostenplaats_key_afdeling
FROM prs_afdeling a, prs_perslid p
WHERE p.prs_perslid_nr = rc.prs_perslid_nr
AND p.prs_perslid_verwijder IS NULL
AND a.prs_afdeling_key = p.prs_afdeling_key
AND a.prs_afdeling_verwijder IS NULL;
-- Als deze afwijkt van de kostenplaats van de afdeling waar persoon onder valt, dan persoon verhuizen naar die fictieve afdeling
IF v_kostenplaats_key_afdeling IS NOT NULL
THEN
-- Afdeling heeft kostenplaats, nu vergelijken met die van persoon
-- Indien ongelijk, dan zoek de fictieve afdeling, want daar persoon aan koppelen.
IF v_kostenplaats_key_perslid <> v_kostenplaats_key_afdeling
THEN
-- Zoek de eerste afdeling (MAX) die kostenplaats van persoon heeft, daar gaat persoon onder vallen.
SELECT MAX(a.prs_afdeling_key)
INTO v_prs_afdeling_key
FROM prs_afdeling a
WHERE a.prs_kostenplaats_key = v_kostenplaats_key_perslid
AND a.prs_afdeling_verwijder IS NULL;
IF v_prs_afdeling_key IS NOT NULL
THEN
UPDATE prs_perslid p
SET p.prs_afdeling_key = v_prs_afdeling_key
WHERE p.prs_perslid_nr = rc.prs_perslid_nr
AND p.prs_perslid_verwijder IS NULL;
END IF;
END IF;
END IF;
END IF;
@@ -131,19 +131,19 @@ END;
CREATE OR REPLACE PROCEDURE stph_update_perslid (
p_import_key IN NUMBER
) IS
-- Alle personen verwijderen die niet meer in import bestand voorkomen.
CURSOR c_del
IS
SELECT p.prs_perslid_key, p.prs_perslid_nr, pf.prs_perslid_naam_full
FROM fac_imp_perslid i, prs_perslid p, prs_v_perslid_fullnames_all pf
WHERE p.prs_perslid_nr = i.prs_perslid_nr(+)
AND pf.prs_perslid_key = p.prs_perslid_key
AND p.prs_perslid_nr IS NOT NULL
AND i.prs_perslid_nr IS NULL
AND p.prs_perslid_verwijder IS NULL
ORDER BY 2;
v_count NUMBER;
-- Alle personen verwijderen die niet meer in import bestand voorkomen.
CURSOR c_del
IS
SELECT p.prs_perslid_key, p.prs_perslid_nr, pf.prs_perslid_naam_full
FROM fac_imp_perslid i, prs_perslid p, prs_v_perslid_fullnames_all pf
WHERE p.prs_perslid_nr = i.prs_perslid_nr(+)
AND pf.prs_perslid_key = p.prs_perslid_key
AND p.prs_perslid_nr IS NOT NULL
AND i.prs_perslid_nr IS NULL
AND p.prs_perslid_verwijder IS NULL
ORDER BY 2;
v_count NUMBER;
BEGIN
-- generic update
@@ -228,12 +228,12 @@ IS
v_srtdeel_wijzigdagen VARCHAR2 (255);
v_srtdeel_annuleerdagen VARCHAR2 (255);
v_srtdeel_opmerking VARCHAR2 (4000); -- straks afgekapt op 2000
v_bes_srtdeel_voorraadmin VARCHAR2 (255);
v_bes_srtdeel_voorraadmin VARCHAR2 (255);
v_bes_srtdeel_voorraadmax VARCHAR2 (255);
v_bes_srtdeel_voorraadfactor VARCHAR2 (255);
v_bes_srtdeel_maxbestel VARCHAR2 (255);
v_bes_inclexcl_btw VARCHAR2 (255);
-- Overige velden:
v_discipline_key NUMBER (10);
v_bedrijf_key NUMBER (10);
@@ -324,20 +324,20 @@ BEGIN
-- Hier checken of we de voorraad-kolommen hebben...
-- MinVoorraad;Maxvoorraad;Maxbestel;VoorraadFactor;VoorraadOmrekenPrijs
IF UPPER (TRIM (v_bes_srtdeel_voorraadmin)) = 'MINVOORRAAD'
AND UPPER (TRIM (v_bes_srtdeel_voorraadmax)) = 'MAXVOORRAAD'
AND UPPER (TRIM (v_bes_srtdeel_maxbestel)) = 'MAXBESTEL'
AND UPPER (TRIM (v_bes_srtdeel_voorraadfactor)) = 'VOORRAADFACTOR'
AND UPPER (TRIM (v_bes_inclexcl_btw)) = 'VOORRAADOMREKENPRIJS'
AND UPPER (TRIM (v_bes_srtdeel_voorraadmax)) = 'MAXVOORRAAD'
AND UPPER (TRIM (v_bes_srtdeel_maxbestel)) = 'MAXBESTEL'
AND UPPER (TRIM (v_bes_srtdeel_voorraadfactor)) = 'VOORRAADFACTOR'
AND UPPER (TRIM (v_bes_inclexcl_btw)) = 'VOORRAADOMREKENPRIJS'
THEN
-- Met deze waarde '2' doen we wat met de voorraadkolommen.
header_is_valid := 2;
fac.imp_writelog (
-- Met deze waarde '2' doen we wat met de voorraadkolommen.
header_is_valid := 2;
fac.imp_writelog (
p_import_key,
'I',
'Voorraad kolommen zijn aanwezig',
'Voorraad kolommen worden ingelezen'
);
END IF;
END IF;
END IF;
ELSIF rec.regellengte > 1 -- Lege regels overslaan!
@@ -613,85 +613,85 @@ BEGIN
IF (header_is_valid = 2)
THEN
-- We hebben van doen met de BES interne catalogus (voorraad) kolommen.
v_bes_srtdeel_voorraadmin := TRIM (v_bes_srtdeel_voorraadmin);
IF v_bes_srtdeel_voorraadmin IS NOT NULL
AND ( fac.safe_to_number (v_bes_srtdeel_voorraadmin) IS NULL
OR fac.safe_to_number (v_bes_srtdeel_voorraadmin) < 0
OR fac.safe_to_number (v_bes_srtdeel_voorraadmin) > 999999)
THEN
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || 'Ongeldig minimum voorraad',
'Regel wordt niet ingelezen (Nr:' || v_srtdeel_nr || ')'
);
v_ongeldig := 1;
END IF;
v_bes_srtdeel_voorraadmax := TRIM (v_bes_srtdeel_voorraadmax);
IF v_bes_srtdeel_voorraadmax IS NOT NULL
AND ( fac.safe_to_number (v_bes_srtdeel_voorraadmax) IS NULL
OR fac.safe_to_number (v_bes_srtdeel_voorraadmax) < 0
OR fac.safe_to_number (v_bes_srtdeel_voorraadmax) > 999999)
THEN
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || 'Ongeldig maximum voorraad',
'Regel wordt niet ingelezen (Nr:' || v_srtdeel_nr || ')'
);
v_ongeldig := 1;
END IF;
v_bes_srtdeel_maxbestel := TRIM (v_bes_srtdeel_maxbestel);
IF v_bes_srtdeel_maxbestel IS NOT NULL
AND ( fac.safe_to_number (v_bes_srtdeel_maxbestel) IS NULL
OR fac.safe_to_number (v_bes_srtdeel_maxbestel) < 0
OR fac.safe_to_number (v_bes_srtdeel_maxbestel) > 1)
THEN
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || 'Ongeldige MaxBestel',
'Regel wordt niet ingelezen (Nr:' || v_srtdeel_nr || ')'
);
v_ongeldig := 1;
END IF;
v_bes_srtdeel_voorraadfactor := TRIM (v_bes_srtdeel_voorraadfactor);
IF v_bes_srtdeel_voorraadfactor IS NOT NULL
AND ( fac.safe_to_number (v_bes_srtdeel_voorraadfactor) IS NULL
OR fac.safe_to_number (v_bes_srtdeel_voorraadfactor) < 0
OR fac.safe_to_number (v_bes_srtdeel_voorraadfactor) > 999999)
THEN
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || 'Ongeldig voorraadfactor',
'Regel wordt niet ingelezen (Nr:' || v_srtdeel_nr || ')'
);
v_ongeldig := 1;
END IF;
v_bes_inclexcl_btw := TRIM (v_bes_inclexcl_btw);
IF v_bes_inclexcl_btw IS NOT NULL
AND ( fac.safe_to_number (v_bes_inclexcl_btw) IS NULL
OR fac.safe_to_number (v_bes_inclexcl_btw) < 0
OR fac.safe_to_number (v_bes_inclexcl_btw) > 3)
THEN
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || 'Ongeldige Voorraad OmrekenPrijs',
'Regel wordt niet ingelezen (Nr:' || v_srtdeel_nr || ')'
);
v_ongeldig := 1;
END IF;
END IF;
-- We hebben van doen met de BES interne catalogus (voorraad) kolommen.
v_bes_srtdeel_voorraadmin := TRIM (v_bes_srtdeel_voorraadmin);
IF v_bes_srtdeel_voorraadmin IS NOT NULL
AND ( fac.safe_to_number (v_bes_srtdeel_voorraadmin) IS NULL
OR fac.safe_to_number (v_bes_srtdeel_voorraadmin) < 0
OR fac.safe_to_number (v_bes_srtdeel_voorraadmin) > 999999)
THEN
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || 'Ongeldig minimum voorraad',
'Regel wordt niet ingelezen (Nr:' || v_srtdeel_nr || ')'
);
v_ongeldig := 1;
END IF;
v_bes_srtdeel_voorraadmax := TRIM (v_bes_srtdeel_voorraadmax);
IF v_bes_srtdeel_voorraadmax IS NOT NULL
AND ( fac.safe_to_number (v_bes_srtdeel_voorraadmax) IS NULL
OR fac.safe_to_number (v_bes_srtdeel_voorraadmax) < 0
OR fac.safe_to_number (v_bes_srtdeel_voorraadmax) > 999999)
THEN
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || 'Ongeldig maximum voorraad',
'Regel wordt niet ingelezen (Nr:' || v_srtdeel_nr || ')'
);
v_ongeldig := 1;
END IF;
v_bes_srtdeel_maxbestel := TRIM (v_bes_srtdeel_maxbestel);
IF v_bes_srtdeel_maxbestel IS NOT NULL
AND ( fac.safe_to_number (v_bes_srtdeel_maxbestel) IS NULL
OR fac.safe_to_number (v_bes_srtdeel_maxbestel) < 0
OR fac.safe_to_number (v_bes_srtdeel_maxbestel) > 1)
THEN
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || 'Ongeldige MaxBestel',
'Regel wordt niet ingelezen (Nr:' || v_srtdeel_nr || ')'
);
v_ongeldig := 1;
END IF;
v_bes_srtdeel_voorraadfactor := TRIM (v_bes_srtdeel_voorraadfactor);
IF v_bes_srtdeel_voorraadfactor IS NOT NULL
AND ( fac.safe_to_number (v_bes_srtdeel_voorraadfactor) IS NULL
OR fac.safe_to_number (v_bes_srtdeel_voorraadfactor) < 0
OR fac.safe_to_number (v_bes_srtdeel_voorraadfactor) > 999999)
THEN
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || 'Ongeldig voorraadfactor',
'Regel wordt niet ingelezen (Nr:' || v_srtdeel_nr || ')'
);
v_ongeldig := 1;
END IF;
v_bes_inclexcl_btw := TRIM (v_bes_inclexcl_btw);
IF v_bes_inclexcl_btw IS NOT NULL
AND ( fac.safe_to_number (v_bes_inclexcl_btw) IS NULL
OR fac.safe_to_number (v_bes_inclexcl_btw) < 0
OR fac.safe_to_number (v_bes_inclexcl_btw) > 3)
THEN
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || 'Ongeldige Voorraad OmrekenPrijs',
'Regel wordt niet ingelezen (Nr:' || v_srtdeel_nr || ')'
);
v_ongeldig := 1;
END IF;
END IF;
IF v_ongeldig = 0
@@ -743,24 +743,24 @@ BEGIN
SUBSTR (v_srtdeel_opmerking, 1, 2000)
);
IF (header_is_valid = 2)
THEN
-- Met voorraad gegevens erbij
UPDATE STPH_IMP_CATALOGUS
SET
bes_srtdeel_voorraadmin = v_bes_srtdeel_voorraadmin,
bes_srtdeel_voorraadmax = v_bes_srtdeel_voorraadmax,
bes_srtdeel_maxbestel = v_bes_srtdeel_maxbestel,
bes_srtdeel_voorraadfactor = v_bes_srtdeel_voorraadfactor,
bes_inclexcl_btw = v_bes_inclexcl_btw
WHERE fac_import_key = p_import_key
AND ins_discipline_key = v_discipline_key
AND prs_bedrijf_key = v_bedrijf_key
AND ins_srtdeel_nr = SUBSTR (v_srtdeel_nr, 1, 32)
AND ins_srtdeel_eenheid = SUBSTR (v_srtdeel_eenheid, 1, 30);
END IF;
IF (header_is_valid = 2)
THEN
-- Met voorraad gegevens erbij
UPDATE STPH_IMP_CATALOGUS
SET
bes_srtdeel_voorraadmin = v_bes_srtdeel_voorraadmin,
bes_srtdeel_voorraadmax = v_bes_srtdeel_voorraadmax,
bes_srtdeel_maxbestel = v_bes_srtdeel_maxbestel,
bes_srtdeel_voorraadfactor = v_bes_srtdeel_voorraadfactor,
bes_inclexcl_btw = v_bes_inclexcl_btw
WHERE fac_import_key = p_import_key
AND ins_discipline_key = v_discipline_key
AND prs_bedrijf_key = v_bedrijf_key
AND ins_srtdeel_nr = SUBSTR (v_srtdeel_nr, 1, 32)
AND ins_srtdeel_eenheid = SUBSTR (v_srtdeel_eenheid, 1, 30);
END IF;
v_count_import := v_count_import + 1;
v_count_import := v_count_import + 1;
END IF;
END IF;
EXCEPTION
@@ -1421,7 +1421,7 @@ AS
PROCEDURE l_update_voorraad (pdisc_key IN NUMBER, pbedr_key IN NUMBER)
AS
-- Cursor van alle artikelen (die dus op dit punt zijn gesynct met de importtabel), waarvan we de voorraad-info van het bijbehorende inkoopartikel willen gaan zoeken...
-- Cursor van alle artikelen (die dus op dit punt zijn gesynct met de importtabel), waarvan we de voorraad-info van het bijbehorende inkoopartikel willen gaan zoeken...
CURSOR c_updsrtdeel_voorraad (
cdisc_key IN NUMBER,
cbedr_key IN NUMBER
@@ -1438,26 +1438,26 @@ AS
AND s.prs_bedrijf_key = cbedr_key
AND s.bes_srtdeel_verwijder IS NULL;
ccount NUMBER (10);
ccount NUMBER (10);
l_bes_discipline_key_inkoop bes_disc_params.bes_ins_discipline_key_inkoop%TYPE;
l_bes_srtdeel_key bes_srtdeel.bes_srtdeel_key%TYPE;
l_prijs bes_srtdeel_prijs.bes_srtdeel_prijs_prijs%TYPE;
BEGIN
ccount := 0;
SELECT dp.bes_ins_discipline_key_inkoop
INTO l_bes_discipline_key_inkoop
FROM bes_disc_params dp
WHERE dp.bes_ins_discipline_key = pdisc_key;
IF l_bes_discipline_key_inkoop IS NOT NULL
THEN
-- We hebben van doen met een magazijn catalogus die is gkoppeld aan inkoopcatalogus met discipline-key 'l_bes_discipline_key_inkoop'
-- De voorraad gegevens moeten in de overeenkomstige artikel van die inkoopcatalogus worden bijgewerkt.
fac.imp_writelog (
WHERE dp.bes_ins_discipline_key = pdisc_key;
IF l_bes_discipline_key_inkoop IS NOT NULL
THEN
-- We hebben van doen met een magazijn catalogus die is gkoppeld aan inkoopcatalogus met discipline-key 'l_bes_discipline_key_inkoop'
-- De voorraad gegevens moeten in de overeenkomstige artikel van die inkoopcatalogus worden bijgewerkt.
fac.imp_writelog (
p_import_key,
'I',
v_aanduiding
@@ -1465,116 +1465,116 @@ AS
|| l_bes_discipline_key_inkoop,
''
);
FOR rec IN c_updsrtdeel_voorraad (pdisc_key, pbedr_key)
LOOP
BEGIN
v_errormsg :=
'Fout bij bepalen artikel in de inkoopcatalogus ' || rec.ins_srtdeel_nr;
-- Op zoek naar het overeenkomstige artikel in de inkoopcatalogus, op basis van artikelnummer (bes_srtdeel_nr) welke niet verwijderd is van de catalogus met key 'l_bes_discipline_key_inkoop'
-- Daarbij JUIST geen check op eenheid, die is namelijk vooral anders (b.v. inkoopcatalogus heeft '1 pak van 4 stuks' en de magazijncatalogus heeft 'per stuk')
SELECT s.bes_srtdeel_key
INTO l_bes_srtdeel_key
FROM bes_srtdeel s, bes_srtgroep g
WHERE UPPER (s.bes_srtdeel_nr) = UPPER (rec.ins_srtdeel_nr)
AND s.bes_srtgroep_key = g.bes_srtgroep_key
AND s.bes_srtdeel_verwijder IS NULL
AND g.ins_discipline_key = l_bes_discipline_key_inkoop;
UPDATE bes_srtdeel
SET bes_srtdeel_voorraadmin = rec.bes_srtdeel_voorraadmin,
bes_srtdeel_voorraadmax = rec.bes_srtdeel_voorraadmax,
bes_srtdeel_voorraadfactor = rec.bes_srtdeel_voorraadfactor,
bes_srtdeel_maxbestel = COALESCE(rec.bes_srtdeel_maxbestel,0)
WHERE bes_srtdeel_key = l_bes_srtdeel_key;
l_prijs := NULL;
CASE rec.bes_inclexcl_btw
WHEN '1'
THEN
-- 1. Prijs van artikel van inerne (magazijn)catalogus omrekenen obv factor, zonder btw omrekening (100 euro met factor 50 -> 100/50 = 2 euro)
l_prijs := rec.ins_srtdeel_prijs / COALESCE(rec.bes_srtdeel_voorraadfactor,1);
WHEN '2'
THEN
-- 2. is omrekenen obv de voorraadfactor excl btw (prijzen staan incl btw, en je wilt naar excl btw intern) (100 euro met factor 50 en 21% btw -> 100 - 21% BTW /50 = 82,64 / 50 = 1,65)
IF fac.safe_to_number(rec.ins_srtdeel_btw) IS NOT NULL
THEN l_prijs := (rec.ins_srtdeel_prijs * 100) / (100 + fac.safe_to_number(rec.ins_srtdeel_btw));
l_prijs := l_prijs / COALESCE(rec.bes_srtdeel_voorraadfactor,1);
ELSE fac.imp_writelog (
p_import_key,
'W',
'BTW bij artkel ' || rec.ins_srtdeel_nr || ' is NIET gevonden',
'Prijs wordt niet omgerekend'
);
END IF;
WHEN '3'
THEN
-- 3. is omrekenen obv de voorraadfactor incl btw (prijzen staan excl btw, en je wilt naar incl btw intern) (100 euro met factor 50 en 21% btw -> 100 + 21% BTW = 121,00 / 50 = 2,42)
IF fac.safe_to_number(rec.ins_srtdeel_btw) IS NOT NULL
THEN l_prijs := rec.ins_srtdeel_prijs * ((100 + fac.safe_to_number(rec.ins_srtdeel_btw))/100);
l_prijs := l_prijs / COALESCE(rec.bes_srtdeel_voorraadfactor,1);
ELSE fac.imp_writelog (
p_import_key,
'W',
'BTW bij artkel ' || rec.ins_srtdeel_nr || ' is NIET gevonden',
'Prijs wordt niet omgerekend'
);
END IF;
ELSE
NULL;
END CASE;
IF l_prijs IS NOT NULL
THEN
l_prijs := ROUND (l_prijs,2);
-- Inkoopprijs NULL, magazijn catalogus is dit niet relevant, is uitgangspunt
bes.upsert_srtdeel_prijs (rec.bes_srtdeel_key, l_prijs, NULL);
END IF;
ccount := ccount + 1;
EXCEPTION
WHEN DUP_VAL_ON_INDEX
THEN
v_errormsg := 'Artikelnummer dubbel in inkoopcatalogus';
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || v_errormsg,
'');
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
v_errormsg
|| ' ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || v_errormsg,
'');
END;
FOR rec IN c_updsrtdeel_voorraad (pdisc_key, pbedr_key)
LOOP
BEGIN
v_errormsg :=
'Fout bij bepalen artikel in de inkoopcatalogus ' || rec.ins_srtdeel_nr;
-- Op zoek naar het overeenkomstige artikel in de inkoopcatalogus, op basis van artikelnummer (bes_srtdeel_nr) welke niet verwijderd is van de catalogus met key 'l_bes_discipline_key_inkoop'
-- Daarbij JUIST geen check op eenheid, die is namelijk vooral anders (b.v. inkoopcatalogus heeft '1 pak van 4 stuks' en de magazijncatalogus heeft 'per stuk')
SELECT s.bes_srtdeel_key
INTO l_bes_srtdeel_key
FROM bes_srtdeel s, bes_srtgroep g
WHERE UPPER (s.bes_srtdeel_nr) = UPPER (rec.ins_srtdeel_nr)
AND s.bes_srtgroep_key = g.bes_srtgroep_key
AND s.bes_srtdeel_verwijder IS NULL
AND g.ins_discipline_key = l_bes_discipline_key_inkoop;
UPDATE bes_srtdeel
SET bes_srtdeel_voorraadmin = rec.bes_srtdeel_voorraadmin,
bes_srtdeel_voorraadmax = rec.bes_srtdeel_voorraadmax,
bes_srtdeel_voorraadfactor = rec.bes_srtdeel_voorraadfactor,
bes_srtdeel_maxbestel = COALESCE(rec.bes_srtdeel_maxbestel,0)
WHERE bes_srtdeel_key = l_bes_srtdeel_key;
l_prijs := NULL;
CASE rec.bes_inclexcl_btw
WHEN '1'
THEN
-- 1. Prijs van artikel van inerne (magazijn)catalogus omrekenen obv factor, zonder btw omrekening (100 euro met factor 50 -> 100/50 = 2 euro)
l_prijs := rec.ins_srtdeel_prijs / COALESCE(rec.bes_srtdeel_voorraadfactor,1);
WHEN '2'
THEN
-- 2. is omrekenen obv de voorraadfactor excl btw (prijzen staan incl btw, en je wilt naar excl btw intern) (100 euro met factor 50 en 21% btw -> 100 - 21% BTW /50 = 82,64 / 50 = 1,65)
IF fac.safe_to_number(rec.ins_srtdeel_btw) IS NOT NULL
THEN l_prijs := (rec.ins_srtdeel_prijs * 100) / (100 + fac.safe_to_number(rec.ins_srtdeel_btw));
l_prijs := l_prijs / COALESCE(rec.bes_srtdeel_voorraadfactor,1);
ELSE fac.imp_writelog (
p_import_key,
'W',
'BTW bij artkel ' || rec.ins_srtdeel_nr || ' is NIET gevonden',
'Prijs wordt niet omgerekend'
);
END IF;
WHEN '3'
THEN
-- 3. is omrekenen obv de voorraadfactor incl btw (prijzen staan excl btw, en je wilt naar incl btw intern) (100 euro met factor 50 en 21% btw -> 100 + 21% BTW = 121,00 / 50 = 2,42)
IF fac.safe_to_number(rec.ins_srtdeel_btw) IS NOT NULL
THEN l_prijs := rec.ins_srtdeel_prijs * ((100 + fac.safe_to_number(rec.ins_srtdeel_btw))/100);
l_prijs := l_prijs / COALESCE(rec.bes_srtdeel_voorraadfactor,1);
ELSE fac.imp_writelog (
p_import_key,
'W',
'BTW bij artkel ' || rec.ins_srtdeel_nr || ' is NIET gevonden',
'Prijs wordt niet omgerekend'
);
END IF;
ELSE
NULL;
END CASE;
IF l_prijs IS NOT NULL
THEN
l_prijs := ROUND (l_prijs,2);
-- Inkoopprijs NULL, magazijn catalogus is dit niet relevant, is uitgangspunt
bes.upsert_srtdeel_prijs (rec.bes_srtdeel_key, l_prijs, NULL);
END IF;
ccount := ccount + 1;
EXCEPTION
WHEN DUP_VAL_ON_INDEX
THEN
v_errormsg := 'Artikelnummer dubbel in inkoopcatalogus';
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || v_errormsg,
'');
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
v_errormsg
|| ' ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || v_errormsg,
'');
END;
END LOOP;
ELSE
fac.imp_writelog (
ELSE
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding
|| 'Inkoop catalogus is NIET gevonden',
''
);
END IF;
fac.imp_writelog (
p_import_key,
'S',
v_aanduiding
|| 'Er zijn '
|| TO_CHAR (ccount)
|| ' artikelen met waarvan de voorraadgegevens zijn bijgewerkt',
''
);
END;
END IF;
fac.imp_writelog (
p_import_key,
'S',
v_aanduiding
|| 'Er zijn '
|| TO_CHAR (ccount)
|| ' artikelen met waarvan de voorraadgegevens zijn bijgewerkt',
''
);
END;
@@ -1730,18 +1730,18 @@ AS
f.fin_factuur_totaal,
f.fin_factuur_totaal_btw,
CASE
WHEN ROUND(f.fin_factuur_totaal + f.fin_factuur_totaal_btw,2) > 0
THEN LPAD(TO_CHAR(100 * ROUND(f.fin_factuur_totaal + f.fin_factuur_totaal_btw,2)), 10, '0') || '-'
ELSE LPAD(TO_CHAR(100 * ROUND(ABS(f.fin_factuur_totaal + f.fin_factuur_totaal_btw),2)), 10, '0') || '+'
WHEN ROUND(f.fin_factuur_totaal + f.fin_factuur_totaal_btw,2) > 0
THEN LPAD(TO_CHAR(100 * ROUND(f.fin_factuur_totaal + f.fin_factuur_totaal_btw,2)), 10, '0') || '-'
ELSE LPAD(TO_CHAR(100 * ROUND(ABS(f.fin_factuur_totaal + f.fin_factuur_totaal_btw),2)), 10, '0') || '+'
END fin_factuur_totaal_dbs,
COALESCE (b_c.prs_bedrijf_key, b_o.prs_bedrijf_key) prs_bedrijf_key,
COALESCE (b_c.prs_leverancier_nr, b_o.prs_leverancier_nr) prs_leverancier_nr,
fr.fin_factuurregel_totaal,
fr.fin_factuurregel_btw,
CASE
WHEN ROUND(fr.fin_factuurregel_totaal + fr.fin_factuurregel_btw,2) > 0
THEN LPAD(TO_CHAR(100 * ROUND(fr.fin_factuurregel_totaal + fr.fin_factuurregel_btw,2)), 10, '0') || LPAD('0',10,'0')
ELSE LPAD('0',10,'0') || LPAD(TO_CHAR(100 * ROUND(ABS(fr.fin_factuurregel_totaal + fr.fin_factuurregel_btw),2)), 10, '0')
WHEN ROUND(fr.fin_factuurregel_totaal + fr.fin_factuurregel_btw,2) > 0
THEN LPAD(TO_CHAR(100 * ROUND(fr.fin_factuurregel_totaal + fr.fin_factuurregel_btw,2)), 10, '0') || LPAD('0',10,'0')
ELSE LPAD('0',10,'0') || LPAD(TO_CHAR(100 * ROUND(ABS(fr.fin_factuurregel_totaal + fr.fin_factuurregel_btw),2)), 10, '0')
END fin_factuurregel_totaal_dbs,
btw.fin_btwtabelwaarde_perc,
btw.fin_btwtabelwaarde_code,
@@ -1819,18 +1819,18 @@ AS
f.fin_factuur_totaal,
f.fin_factuur_totaal_btw,
CASE
WHEN ROUND(f.fin_factuur_totaal + f.fin_factuur_totaal_btw,2) > 0
THEN LPAD(TO_CHAR(100 * ROUND(f.fin_factuur_totaal + f.fin_factuur_totaal_btw,2)), 10, '0') || '-'
ELSE LPAD(TO_CHAR(100 * ROUND(ABS(f.fin_factuur_totaal + f.fin_factuur_totaal_btw),2)), 10, '0') || '+'
WHEN ROUND(f.fin_factuur_totaal + f.fin_factuur_totaal_btw,2) > 0
THEN LPAD(TO_CHAR(100 * ROUND(f.fin_factuur_totaal + f.fin_factuur_totaal_btw,2)), 10, '0') || '-'
ELSE LPAD(TO_CHAR(100 * ROUND(ABS(f.fin_factuur_totaal + f.fin_factuur_totaal_btw),2)), 10, '0') || '+'
END fin_factuur_totaal_dbs,
b.prs_bedrijf_key,
b.prs_leverancier_nr,
fr.fin_factuurregel_totaal,
fr.fin_factuurregel_btw,
CASE
WHEN ROUND(fr.fin_factuurregel_totaal + fr.fin_factuurregel_btw,2) > 0
THEN LPAD(TO_CHAR(100 * ROUND(fr.fin_factuurregel_totaal + fr.fin_factuurregel_btw,2)), 10, '0') || LPAD('0',10,'0')
ELSE LPAD('0',10,'0') || LPAD(TO_CHAR(100 * ROUND(ABS(fr.fin_factuurregel_totaal + fr.fin_factuurregel_btw),2)), 10, '0')
WHEN ROUND(fr.fin_factuurregel_totaal + fr.fin_factuurregel_btw,2) > 0
THEN LPAD(TO_CHAR(100 * ROUND(fr.fin_factuurregel_totaal + fr.fin_factuurregel_btw,2)), 10, '0') || LPAD('0',10,'0')
ELSE LPAD('0',10,'0') || LPAD(TO_CHAR(100 * ROUND(ABS(fr.fin_factuurregel_totaal + fr.fin_factuurregel_btw),2)), 10, '0')
END fin_factuurregel_totaal_dbs,
btw.fin_btwtabelwaarde_perc,
btw.fin_btwtabelwaarde_code,
@@ -1845,7 +1845,7 @@ AS
NULL mld_opdr_key,
NULL cnt_contract_key,
f.fin_factuur_statuses_key
FROM bes_bestelopdr bo,
FROM bes_bestelopdr bo,
prs_bedrijf b,
bes_bestelling bes,
bes_bestelopdr_item boi,
@@ -1922,32 +1922,32 @@ CREATE OR REPLACE VIEW stph_v_export_dbs
(result, result_order)
AS
SELECT SUBSTR(MAX(fin_factuur_boekmaand),1,4) || LPAD(MAX(fin_factuur_key), 5, '0') ||
LPAD(MAX(fin_factuur_nr), 16, '0') ||
TO_CHAR (MAX(fin_factuur_datum), 'ddmmyyyy') ||
SUBSTR(MAX(fin_factuur_boekmaand),1,4) || LPAD(SUBSTR(MAX(fin_factuur_boekmaand),6,2) , 2, '0') ||
LPAD(COALESCE(MAX(prs_leverancier_nr),'0'), 4, '0') ||
LPAD('0',5,'0') ||
LPAD(' ',30,' ') ||
LPAD('0',5,'0') ||
LPAD('0',4,'0') ||
MAX(fin_factuur_totaal_dbs) ||
LPAD('0',10,'0') ||
LPAD('0',10,'0')
LPAD(MAX(fin_factuur_nr), 16, '0') ||
TO_CHAR (MAX(fin_factuur_datum), 'ddmmyyyy') ||
SUBSTR(MAX(fin_factuur_boekmaand),1,4) || LPAD(SUBSTR(MAX(fin_factuur_boekmaand),6,2) , 2, '0') ||
LPAD(COALESCE(MAX(prs_leverancier_nr),'0'), 4, '0') ||
LPAD('0',5,'0') ||
LPAD(' ',30,' ') ||
LPAD('0',5,'0') ||
LPAD('0',4,'0') ||
MAX(fin_factuur_totaal_dbs) ||
LPAD('0',10,'0') ||
LPAD('0',10,'0')
, SUBSTR(MAX(fin_factuur_boekmaand),1,4) || LPAD(MAX(fin_factuur_key), 5, '0') || LPAD('0',5,'0')
FROM stph_v_factuur_geg_akkoord fg
GROUP by fin_factuur_key
UNION ALL
SELECT SUBSTR(fin_factuur_boekmaand,1,4) || LPAD(fin_factuur_key, 5, '0') ||
LPAD(fin_factuur_nr, 16, '0') ||
TO_CHAR (fin_factuur_datum, 'ddmmyyyy') ||
SUBSTR(fin_factuur_boekmaand,1,4) || LPAD(SUBSTR(fin_factuur_boekmaand,6,2) , 2, '0') ||
LPAD(COALESCE(prs_leverancier_nr,'0'), 4, '0') ||
LPAD(fin_factuurregel_nr,5,'0') ||
LPAD(COALESCE(fin_factuurregel_omschrijving, ' '),30,' ') ||
LPAD(prs_kostensoort_oms,5,'0') ||
LPAD(prs_kostenplaats_nr,4,'0') ||
LPAD('0',10,'0') || '0' ||
fin_factuurregel_totaal_dbs
SELECT SUBSTR(fin_factuur_boekmaand,1,4) || LPAD(fin_factuur_key, 5, '0') ||
LPAD(fin_factuur_nr, 16, '0') ||
TO_CHAR (fin_factuur_datum, 'ddmmyyyy') ||
SUBSTR(fin_factuur_boekmaand,1,4) || LPAD(SUBSTR(fin_factuur_boekmaand,6,2) , 2, '0') ||
LPAD(COALESCE(prs_leverancier_nr,'0'), 4, '0') ||
LPAD(fin_factuurregel_nr,5,'0') ||
LPAD(COALESCE(fin_factuurregel_omschrijving, ' '),30,' ') ||
LPAD(prs_kostensoort_oms,5,'0') ||
LPAD(prs_kostenplaats_nr,4,'0') ||
LPAD('0',10,'0') || '0' ||
fin_factuurregel_totaal_dbs
, SUBSTR(fin_factuur_boekmaand,1,4) || LPAD(fin_factuur_key, 5, '0') || LPAD(fin_factuurregel_nr,5,'0')
FROM stph_v_factuur_geg_akkoord fg;
@@ -2191,44 +2191,44 @@ AS
CREATE OR REPLACE VIEW stph_v_export_catering_dbs
(result, result_order)
AS
SELECT LPAD(prs_kostensoort_oms,5,'0') ||
LPAD(prs_kostenplaats_nr,4,'0') ||
LPAD(TO_CHAR(ROUND(100 * totaalprijs,2)), 10, '0') ||
'0000000000'
, LPAD(res_reservering_key, 10, '0') || LPAD(res_rsv_ruimte_volgnr,5,'0') || '1'
FROM stph_v_res_catering_2_dbs
WHERE res_status_fo_key = 2
AND totaalprijs <> 0
SELECT LPAD(prs_kostensoort_oms,5,'0') ||
LPAD(prs_kostenplaats_nr,4,'0') ||
LPAD(TO_CHAR(ROUND(100 * totaalprijs,2)), 10, '0') ||
'0000000000'
, LPAD(res_reservering_key, 10, '0') || LPAD(res_rsv_ruimte_volgnr,5,'0') || '1'
FROM stph_v_res_catering_2_dbs
WHERE res_status_fo_key = 2
AND totaalprijs <> 0
UNION ALL
SELECT '83211' ||
'2020' ||
'0000000000' ||
LPAD(TO_CHAR(ROUND(100 * totaalprijs,2)), 10, '0')
, LPAD(res_reservering_key, 10, '0') || LPAD(res_rsv_ruimte_volgnr,5,'0') || '2'
FROM stph_v_res_catering_2_dbs
WHERE res_status_fo_key = 2
AND totaalprijs <> 0
AND ins_discipline_key NOT IN (581, 582)
SELECT '83211' ||
'2020' ||
'0000000000' ||
LPAD(TO_CHAR(ROUND(100 * totaalprijs,2)), 10, '0')
, LPAD(res_reservering_key, 10, '0') || LPAD(res_rsv_ruimte_volgnr,5,'0') || '2'
FROM stph_v_res_catering_2_dbs
WHERE res_status_fo_key = 2
AND totaalprijs <> 0
AND ins_discipline_key NOT IN (581, 582)
UNION ALL
SELECT '41900' ||
'2061' ||
'0000000000' ||
LPAD(TO_CHAR(ROUND(100 * totaalprijs,2)), 10, '0')
, LPAD(res_reservering_key, 10, '0') || LPAD(res_rsv_ruimte_volgnr,5,'0') || '2'
FROM stph_v_res_catering_2_dbs
WHERE res_status_fo_key = 2
AND totaalprijs <> 0
AND ins_discipline_key = 581
SELECT '41900' ||
'2061' ||
'0000000000' ||
LPAD(TO_CHAR(ROUND(100 * totaalprijs,2)), 10, '0')
, LPAD(res_reservering_key, 10, '0') || LPAD(res_rsv_ruimte_volgnr,5,'0') || '2'
FROM stph_v_res_catering_2_dbs
WHERE res_status_fo_key = 2
AND totaalprijs <> 0
AND ins_discipline_key = 581
UNION ALL
SELECT '41900' ||
'2005' ||
'0000000000' ||
LPAD(TO_CHAR(ROUND(100 * totaalprijs,2)), 10, '0')
, LPAD(res_reservering_key, 10, '0') || LPAD(res_rsv_ruimte_volgnr,5,'0') || '2'
FROM stph_v_res_catering_2_dbs
WHERE res_status_fo_key = 2
AND totaalprijs <> 0
AND ins_discipline_key = 582;
SELECT '41900' ||
'2005' ||
'0000000000' ||
LPAD(TO_CHAR(ROUND(100 * totaalprijs,2)), 10, '0')
, LPAD(res_reservering_key, 10, '0') || LPAD(res_rsv_ruimte_volgnr,5,'0') || '2'
FROM stph_v_res_catering_2_dbs
WHERE res_status_fo_key = 2
AND totaalprijs <> 0
AND ins_discipline_key = 582;
--------------------------------------------------
@@ -2239,13 +2239,13 @@ UNION ALL
CREATE OR REPLACE VIEW stph_v_bes_intern_2_dbs
( prs_bedrijf_key,
bes_bestelopdr_key,
bes_bestelopdr_item_posnr,
prs_kostensoort_oms,
prs_kostensoort_tegenboeking,
bes_bestelopdr_item_posnr,
prs_kostensoort_oms,
prs_kostensoort_tegenboeking,
prs_kostenplaats_nr,
bes_bestelopdr_item_aantalontv,
bes_bestelopdr_item_brutoprijs,
bes_srtdeel_btw
bes_bestelopdr_item_brutoprijs,
bes_srtdeel_btw
)
AS
SELECT b.prs_bedrijf_key,
@@ -2298,19 +2298,19 @@ AS
CREATE OR REPLACE VIEW stph_v_export_intern_magazijn
(result, result_order)
AS
SELECT LPAD(prs_kostensoort_oms,5,'0') ||
LPAD(prs_kostenplaats_nr,4,'0') ||
LPAD(TO_CHAR(100 * ROUND(COALESCE(bes_bestelopdr_item_aantalontv,0) * bes_bestelopdr_item_brutoprijs,2)), 10, '0') ||
'0000000000'
SELECT LPAD(prs_kostensoort_oms,5,'0') ||
LPAD(prs_kostenplaats_nr,4,'0') ||
LPAD(TO_CHAR(100 * ROUND(COALESCE(bes_bestelopdr_item_aantalontv,0) * bes_bestelopdr_item_brutoprijs,2)), 10, '0') ||
'0000000000'
, LPAD(bes_bestelopdr_key, 10, '0') || LPAD(bes_bestelopdr_item_posnr,5,'0') || '1'
FROM stph_v_bes_intern_2_dbs
WHERE bes_bestelopdr_item_brutoprijs <> 0
AND prs_bedrijf_key = 422
UNION ALL
SELECT LPAD(prs_kostensoort_tegenboeking,5,'0') ||
'0000' ||
'0000000000' ||
LPAD(TO_CHAR(100 * ROUND(COALESCE(bes_bestelopdr_item_aantalontv,0) * bes_bestelopdr_item_brutoprijs,2)), 10, '0')
SELECT LPAD(prs_kostensoort_tegenboeking,5,'0') ||
'0000' ||
'0000000000' ||
LPAD(TO_CHAR(100 * ROUND(COALESCE(bes_bestelopdr_item_aantalontv,0) * bes_bestelopdr_item_brutoprijs,2)), 10, '0')
, LPAD(bes_bestelopdr_key, 10, '0') || LPAD(bes_bestelopdr_item_posnr,5,'0') || '2'
FROM stph_v_bes_intern_2_dbs
WHERE bes_bestelopdr_item_brutoprijs <> 0
@@ -2333,19 +2333,19 @@ AND prs_bedrijf_key = 422;
CREATE OR REPLACE VIEW stph_v_export_intern_keuken
(result, result_order)
AS
SELECT LPAD(prs_kostensoort_oms,5,'0') ||
LPAD(prs_kostenplaats_nr,4,'0') ||
LPAD(TO_CHAR(100 * ROUND(COALESCE(bes_bestelopdr_item_aantalontv,0) * bes_bestelopdr_item_brutoprijs,2)), 10, '0') ||
'0000000000'
SELECT LPAD(prs_kostensoort_oms,5,'0') ||
LPAD(prs_kostenplaats_nr,4,'0') ||
LPAD(TO_CHAR(100 * ROUND(COALESCE(bes_bestelopdr_item_aantalontv,0) * bes_bestelopdr_item_brutoprijs,2)), 10, '0') ||
'0000000000'
, LPAD(bes_bestelopdr_key, 10, '0') || LPAD(bes_bestelopdr_item_posnr,5,'0') || '1'
FROM stph_v_bes_intern_2_dbs
WHERE bes_bestelopdr_item_brutoprijs <> 0
AND prs_bedrijf_key = 1401
UNION ALL
SELECT LPAD(prs_kostensoort_oms,5,'0') ||
'2010' ||
'0000000000' ||
LPAD(TO_CHAR(100 * ROUND(COALESCE(bes_bestelopdr_item_aantalontv,0) * bes_bestelopdr_item_brutoprijs,2)), 10, '0')
SELECT LPAD(prs_kostensoort_oms,5,'0') ||
'2010' ||
'0000000000' ||
LPAD(TO_CHAR(100 * ROUND(COALESCE(bes_bestelopdr_item_aantalontv,0) * bes_bestelopdr_item_brutoprijs,2)), 10, '0')
, LPAD(bes_bestelopdr_key, 10, '0') || LPAD(bes_bestelopdr_item_posnr,5,'0') || '2'
FROM stph_v_bes_intern_2_dbs
WHERE bes_bestelopdr_item_brutoprijs <> 0
@@ -2359,13 +2359,13 @@ AND prs_bedrijf_key = 1401;
CREATE OR REPLACE VIEW stph_v_bes_extern_2_dbs
( prs_bedrijf_key,
bes_bestelopdr_key,
bes_bestelopdr_item_posnr,
prs_kostensoort_oms,
prs_kostensoort_tegenboeking,
bes_bestelopdr_item_posnr,
prs_kostensoort_oms,
prs_kostensoort_tegenboeking,
prs_kostenplaats_nr,
bes_bestelopdr_item_aantalontv,
bes_bestelopdr_item_brutoprijs,
bes_srtdeel_btw
bes_bestelopdr_item_brutoprijs,
bes_srtdeel_btw
)
AS
SELECT b.prs_bedrijf_key,
@@ -2410,18 +2410,18 @@ SELECT b.prs_bedrijf_key,
CREATE OR REPLACE VIEW stph_v_export_externe_voorraad
(result, result_order)
AS
SELECT LPAD(prs_kostensoort_tegenboeking,5,'0') ||
'0000' ||
LPAD(TO_CHAR(100 * ROUND(COALESCE(bes_bestelopdr_item_aantalontv,0) * (1 + 0.01 * COALESCE(bes_srtdeel_btw,0)) * bes_bestelopdr_item_brutoprijs,2)), 10, '0') ||
'0000000000'
SELECT LPAD(prs_kostensoort_tegenboeking,5,'0') ||
'0000' ||
LPAD(TO_CHAR(100 * ROUND(COALESCE(bes_bestelopdr_item_aantalontv,0) * (1 + 0.01 * COALESCE(bes_srtdeel_btw,0)) * bes_bestelopdr_item_brutoprijs,2)), 10, '0') ||
'0000000000'
, LPAD(bes_bestelopdr_key, 10, '0') || LPAD(bes_bestelopdr_item_posnr,5,'0') || '1'
FROM stph_v_bes_extern_2_dbs
WHERE bes_bestelopdr_item_brutoprijs <> 0
UNION ALL
SELECT '32010' ||
'0000' ||
'0000000000' ||
LPAD(TO_CHAR(100 * ROUND(COALESCE(bes_bestelopdr_item_aantalontv,0) * (1 + 0.01 * COALESCE(bes_srtdeel_btw,0)) * bes_bestelopdr_item_brutoprijs,2)), 10, '0')
SELECT '32010' ||
'0000' ||
'0000000000' ||
LPAD(TO_CHAR(100 * ROUND(COALESCE(bes_bestelopdr_item_aantalontv,0) * (1 + 0.01 * COALESCE(bes_srtdeel_btw,0)) * bes_bestelopdr_item_brutoprijs,2)), 10, '0')
, LPAD(bes_bestelopdr_key, 10, '0') || LPAD(bes_bestelopdr_item_posnr,5,'0') || '2'
FROM stph_v_bes_extern_2_dbs
WHERE bes_bestelopdr_item_brutoprijs <> 0;
@@ -2720,7 +2720,7 @@ AS
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
------ INVOICESHARING.COM INVOICESHARING.COM INVOICESHARING.COM INVOICESHARING.COM INVOICESHARING.COM ------
------ INVOICESHARING.COM INVOICESHARING.COM INVOICESHARING.COM INVOICESHARING.COM INVOICESHARING.COM ------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
@@ -2764,7 +2764,7 @@ END;
CREATE OR REPLACE PROCEDURE stph_postupdate_invoicesharing (p_import_key IN NUMBER)
AS
v_prs_kostensoort_key prs_kostensoort.prs_kostensoort_key%TYPE;
v_prs_kostensoort_key prs_kostensoort.prs_kostensoort_key%TYPE;
v_fin_kostensoort_key prs_kostensoort.prs_kostensoort_key%TYPE;
CURSOR cfactuurregel_kostensoort
@@ -2801,6 +2801,11 @@ BEGIN
SET prs_kostensoort_key = v_prs_kostensoort_key
WHERE fin_factuurregel_key = rc.fin_factuurregel_key;
END IF;
ELSE
-- STPH#38624: als er GEEN of een FOUTE/ONBEKENDE kostensoort bij de import wordt meegegeven, dat dan de status op "Ingevoerd" terug wordt gezet.
UPDATE fin_factuur
SET fin_factuur_statuses_key = 2
WHERE fin_factuur_key = (SELECT fin_factuur_key FROM fin_factuurregel fr WHERE fr.fin_factuurregel_key = rc.fin_factuurregel_key)
END IF;
EXCEPTION