terug naar Scansys
svn path=/Customer/trunk/; revision=56248
This commit is contained in:
819
PCHX/pchx.sql
819
PCHX/pchx.sql
@@ -4516,437 +4516,508 @@ END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE PROCEDURE pchx_post_upd_fin_scansys_xml (
|
||||
p_import_key IN NUMBER)
|
||||
p_import_key IN NUMBER)
|
||||
AS
|
||||
CURSOR km_facturen
|
||||
IS
|
||||
SELECT factuurnr,
|
||||
fin_factuur_key,
|
||||
omschrijving,
|
||||
-- opmerking,
|
||||
kenmerk1,
|
||||
kenmerk4,
|
||||
kenmerk6,
|
||||
kenmerk12,
|
||||
debiteurnr,
|
||||
fac_import_key,
|
||||
(SELECT DISTINCT (MAX (p.prs_perslid_key))
|
||||
FROM prs_perslid p, fac_v_rap_groeprechten r
|
||||
WHERE r.fclt_f_login = p.prs_perslid_oslogin
|
||||
AND r.fclt_f_funcode = 'WEB_FINGOE')
|
||||
AS goedkeurder
|
||||
FROM ( SELECT factuurnr,
|
||||
MAX (fin_factuur_key) AS fin_factuur_key,
|
||||
omschrijving,
|
||||
-- opmerking,
|
||||
kenmerk1,
|
||||
kenmerk4,
|
||||
kenmerk6,
|
||||
kenmerk12,
|
||||
debiteurnr,
|
||||
fac_import_key
|
||||
FROM fac_imp_factuur
|
||||
GROUP BY factuurnr,
|
||||
omschrijving,
|
||||
-- opmerking,
|
||||
kenmerk1,
|
||||
kenmerk4,
|
||||
kenmerk6,
|
||||
kenmerk12,
|
||||
debiteurnr,
|
||||
fac_import_key);
|
||||
CURSOR km_facturen IS
|
||||
SELECT factuurnr,
|
||||
fin_factuur_key,
|
||||
omschrijving,
|
||||
-- opmerking,
|
||||
kenmerk1,
|
||||
kenmerk4,
|
||||
kenmerk6,
|
||||
kenmerk12,
|
||||
debiteurnr,
|
||||
fac_import_key,
|
||||
(SELECT DISTINCT (MAX (p.prs_perslid_key))
|
||||
FROM prs_perslid p, fac_v_rap_groeprechten r
|
||||
WHERE r.fclt_f_login = p.prs_perslid_oslogin
|
||||
AND r.fclt_f_funcode = 'WEB_FINGOE') AS goedkeurder
|
||||
FROM ( SELECT factuurnr,
|
||||
MAX (fin_factuur_key) AS fin_factuur_key,
|
||||
omschrijving,
|
||||
-- opmerking,
|
||||
kenmerk1,
|
||||
kenmerk4,
|
||||
kenmerk6,
|
||||
kenmerk12,
|
||||
debiteurnr,
|
||||
fac_import_key
|
||||
FROM fac_imp_factuur
|
||||
GROUP BY factuurnr,
|
||||
omschrijving,
|
||||
-- opmerking,
|
||||
kenmerk1,
|
||||
kenmerk4,
|
||||
kenmerk6,
|
||||
kenmerk12,
|
||||
debiteurnr,
|
||||
fac_import_key);
|
||||
|
||||
CURSOR km_factuurregels
|
||||
IS
|
||||
SELECT *
|
||||
FROM fac_imp_factuur
|
||||
WHERE fac_import_key = p_import_key;
|
||||
CURSOR km_factuurregels IS
|
||||
SELECT *
|
||||
FROM fac_imp_factuur
|
||||
WHERE fac_import_key = p_import_key;
|
||||
|
||||
CURSOR btw
|
||||
IS
|
||||
SELECT f.fac_import_key,
|
||||
f.fac_imp_file_index,
|
||||
f.fin_factuur_key,
|
||||
f.fin_factuurregel_key,
|
||||
f.btw,
|
||||
f.kenmerk11,
|
||||
f.btw_bedrag
|
||||
FROM fac_imp_factuur f
|
||||
WHERE f.fac_import_key = p_import_key;
|
||||
CURSOR btw IS
|
||||
SELECT f.fac_import_key,
|
||||
f.fac_imp_file_index,
|
||||
f.fin_factuur_key,
|
||||
f.fin_factuurregel_key,
|
||||
f.btw,
|
||||
f.kenmerk11,
|
||||
f.btw_bedrag
|
||||
FROM fac_imp_factuur f
|
||||
WHERE f.fac_import_key = p_import_key;
|
||||
|
||||
v_factuur_key NUMBER (10);
|
||||
v_errormsg VARCHAR (200);
|
||||
v_errorhint VARCHAR (200);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_afwbedrijf VARCHAR2 (200);
|
||||
v_grootboekrekening VARCHAR2 (200);
|
||||
v_kostendrager VARCHAR2 (200);
|
||||
v_kostenplaats NUMBER;
|
||||
v_referentie_key NUMBER;
|
||||
v_opmerking VARCHAR2 (3000);
|
||||
v_omschrijving VARCHAR2 (3000);
|
||||
v_afw_boekdatum VARCHAR2 (200);
|
||||
CURSOR btw_verlegd IS
|
||||
SELECT f.fac_import_key,
|
||||
f.fac_imp_file_index,
|
||||
f.fin_factuur_key,
|
||||
f.fin_factuurregel_key,
|
||||
f.btw,
|
||||
f.kenmerk11,
|
||||
f.btw_bedrag
|
||||
FROM fac_imp_factuur f
|
||||
WHERE f.fac_import_key = p_import_key
|
||||
AND (f.kenmerk11 = 'I21' OR f.kenmerk11 = 'I9');
|
||||
|
||||
|
||||
v_factuur_key NUMBER (10);
|
||||
v_errormsg VARCHAR (200);
|
||||
v_errorhint VARCHAR (200);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_afwbedrijf VARCHAR2 (200);
|
||||
v_grootboekrekening VARCHAR2 (200);
|
||||
v_kostendrager VARCHAR2 (200);
|
||||
v_kostenplaats NUMBER;
|
||||
v_referentie_key NUMBER;
|
||||
v_opmerking VARCHAR2 (3000);
|
||||
v_omschrijving VARCHAR2 (3000);
|
||||
v_afw_boekdatum VARCHAR2 (200);
|
||||
v_btwverlegd_key VARCHAR2 (200);
|
||||
BEGIN
|
||||
-- In PCHY zijn er meerdere BTW codes met 21%, hier zetten we deze goed.
|
||||
v_errorhint := 'BTW code goedzetten';
|
||||
-- In PCHY zijn er meerdere BTW codes met 21%, hier zetten we deze goed.
|
||||
v_errorhint := 'BTW code goedzetten';
|
||||
|
||||
FOR rec IN btw
|
||||
LOOP
|
||||
BEGIN
|
||||
IF pchx.get_user = 'PCHY'
|
||||
THEN
|
||||
UPDATE fin_factuurregel
|
||||
SET fin_btwtabelwaarde_key = 24 -- BTW key voor code 23 - Hoog-21% - inclusief vrijgesteld
|
||||
WHERE fin_factuurregel_key = rec.fin_factuurregel_key
|
||||
AND rec.kenmerk11 = '23';
|
||||
END IF;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
-- Er kunnen meerdere BTW codes zijn met zelfde BTW percentage ivm btw verlegd, hier zetten we deze goed.
|
||||
v_errorhint := 'BTW code verlegd goedzetten';
|
||||
|
||||
FOR rec IN btw_verlegd
|
||||
LOOP
|
||||
BEGIN
|
||||
SELECT fin_btwtabelwaarde_key
|
||||
INTO v_btwverlegd_key
|
||||
FROM fin_btwtabelwaarde
|
||||
WHERE fin_btwtabelwaarde_code = rec.kenmerk11
|
||||
AND fin_btwtabelwaarde_verwijder IS NULL;
|
||||
|
||||
FOR rec IN btw
|
||||
LOOP
|
||||
BEGIN
|
||||
IF pchx.get_user = 'PCHY'
|
||||
THEN
|
||||
UPDATE fin_factuurregel
|
||||
SET fin_btwtabelwaarde_key = 24 -- BTW key voor code 23 - Hoog-21% - inclusief vrijgesteld
|
||||
WHERE fin_factuurregel_key = rec.fin_factuurregel_key
|
||||
AND rec.kenmerk11 = '23';
|
||||
END IF;
|
||||
END;
|
||||
END LOOP;
|
||||
SET fin_btwtabelwaarde_key = v_btwverlegd_key -- BTW key bijbehorende BTW code (I21 / I9)
|
||||
WHERE fin_factuurregel_key = rec.fin_factuurregel_key
|
||||
AND (rec.kenmerk11 = 'I21' OR rec.kenmerk11 = 'I9');
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
-- De kenmerken bij de facturen en factuurregels worden hieronder nog gevuld.
|
||||
v_errorhint := 'Kenmerken facturen vullen';
|
||||
-- De kenmerken bij de facturen en factuurregels worden hieronder nog gevuld.
|
||||
v_errorhint := 'Kenmerken facturen vullen';
|
||||
|
||||
FOR rec IN km_facturen
|
||||
LOOP
|
||||
v_opmerking := SUBSTR (rec.omschrijving, 1, 250);
|
||||
-- verwijder de markering voor cr/lf die we zelf in de stylesheet toegevoegd hebben.
|
||||
v_opmerking := REPLACE (v_opmerking, '@@', CHR (13));
|
||||
FOR rec IN km_facturen
|
||||
LOOP
|
||||
v_opmerking := SUBSTR (rec.omschrijving, 1, 250);
|
||||
-- verwijder de markering voor cr/lf die we zelf in de stylesheet toegevoegd hebben.
|
||||
v_opmerking := REPLACE (v_opmerking, '@@', CHR (13));
|
||||
|
||||
v_errorhint := 'Opmerking bij factuur vullen';
|
||||
v_errorhint := 'Opmerking bij factuur vullen';
|
||||
|
||||
UPDATE fin_factuur
|
||||
SET fin_factuur_opmerking = v_opmerking
|
||||
WHERE fin_factuur_key = rec.fin_factuur_key;
|
||||
UPDATE fin_factuur
|
||||
SET fin_factuur_opmerking = v_opmerking
|
||||
WHERE fin_factuur_key = rec.fin_factuur_key;
|
||||
|
||||
BEGIN
|
||||
v_errorhint := 'Debiteur in factuur vullen';
|
||||
BEGIN
|
||||
v_errorhint := 'Debiteur in factuur vullen';
|
||||
|
||||
--Debiteur bij de factuur overnemen van de tag <Debiteur>
|
||||
UPDATE fin_factuur
|
||||
SET fin_factuur_debiteur_nr = rec.kenmerk12
|
||||
WHERE fin_factuur_key = rec.fin_factuur_key;
|
||||
--Debiteur bij de factuur overnemen van de tag <Debiteur>
|
||||
UPDATE fin_factuur
|
||||
SET fin_factuur_debiteur_nr = rec.kenmerk12
|
||||
WHERE fin_factuur_key = rec.fin_factuur_key;
|
||||
|
||||
|
||||
v_errorhint := 'Goedkeurder in factuur vullen';
|
||||
v_errorhint := 'Goedkeurder in factuur vullen';
|
||||
|
||||
--Een goedkeurder vullen bij de factuur
|
||||
UPDATE fin_factuur
|
||||
SET prs_perslid_key_goedkeur = rec.goedkeurder
|
||||
WHERE fin_factuur_key = rec.fin_factuur_key
|
||||
AND rec.fin_factuur_key IS NOT NULL;
|
||||
--Een goedkeurder vullen bij de factuur
|
||||
UPDATE fin_factuur
|
||||
SET prs_perslid_key_goedkeur = rec.goedkeurder
|
||||
WHERE fin_factuur_key = rec.fin_factuur_key
|
||||
AND rec.fin_factuur_key IS NOT NULL;
|
||||
|
||||
-- administratie
|
||||
IF rec.kenmerk6 IS NULL
|
||||
THEN
|
||||
v_errorhint := 'Geen administratie';
|
||||
fac.imp_writelog (
|
||||
p_import_key,
|
||||
'E',
|
||||
v_errormsg || v_errorhint,
|
||||
'Er is geen administratie gevuld bij dit boekstuknummer '
|
||||
|| rec.kenmerk1);
|
||||
ELSE
|
||||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key,
|
||||
fin_kenmerk_key,
|
||||
fin_kenmerkfactuur_waarde)
|
||||
VALUES (rec.fin_factuur_key,
|
||||
(SELECT MAX (fin_kenmerk_key)
|
||||
FROM fin_kenmerk
|
||||
WHERE fin_kenmerk_verwijder IS NULL
|
||||
AND fin_kenmerk_upper = 'ADMINISTRATIE'),
|
||||
rec.kenmerk6);
|
||||
END IF;
|
||||
-- administratie
|
||||
IF rec.kenmerk6 IS NULL
|
||||
THEN
|
||||
v_errorhint := 'Geen administratie';
|
||||
fac.imp_writelog (
|
||||
p_import_key,
|
||||
'E',
|
||||
v_errormsg || v_errorhint,
|
||||
'Er is geen administratie gevuld bij dit boekstuknummer '
|
||||
|| rec.kenmerk1);
|
||||
ELSE
|
||||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key,
|
||||
fin_kenmerk_key,
|
||||
fin_kenmerkfactuur_waarde)
|
||||
VALUES (
|
||||
rec.fin_factuur_key,
|
||||
(SELECT MAX (fin_kenmerk_key)
|
||||
FROM fin_kenmerk
|
||||
WHERE fin_kenmerk_verwijder IS NULL
|
||||
AND fin_kenmerk_upper =
|
||||
'ADMINISTRATIE'),
|
||||
rec.kenmerk6);
|
||||
END IF;
|
||||
|
||||
-- boekstuknummer
|
||||
IF rec.kenmerk1 IS NULL
|
||||
THEN
|
||||
v_errorhint := 'Geen boekstuknummer';
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
v_errormsg || v_errorhint,
|
||||
'Er is geen boekstuknummer gevuld');
|
||||
ELSE
|
||||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key,
|
||||
fin_kenmerk_key,
|
||||
fin_kenmerkfactuur_waarde)
|
||||
VALUES (rec.fin_factuur_key,
|
||||
(SELECT MAX (fin_kenmerk_key)
|
||||
FROM fin_kenmerk
|
||||
WHERE fin_kenmerk_verwijder IS NULL
|
||||
AND fin_kenmerk_upper = 'BOEKSTUKNUMMER'),
|
||||
rec.kenmerk1);
|
||||
END IF;
|
||||
-- boekstuknummer
|
||||
IF rec.kenmerk1 IS NULL
|
||||
THEN
|
||||
v_errorhint := 'Geen boekstuknummer';
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
v_errormsg || v_errorhint,
|
||||
'Er is geen boekstuknummer gevuld');
|
||||
ELSE
|
||||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key,
|
||||
fin_kenmerk_key,
|
||||
fin_kenmerkfactuur_waarde)
|
||||
VALUES (
|
||||
rec.fin_factuur_key,
|
||||
(SELECT MAX (fin_kenmerk_key)
|
||||
FROM fin_kenmerk
|
||||
WHERE fin_kenmerk_verwijder IS NULL
|
||||
AND fin_kenmerk_upper =
|
||||
'BOEKSTUKNUMMER'),
|
||||
rec.kenmerk1);
|
||||
END IF;
|
||||
|
||||
-- Afwijkend bedrijf
|
||||
IF rec.debiteurnr IS NULL
|
||||
THEN
|
||||
v_errorhint := 'Geen afw. bedrijf';
|
||||
ELSE
|
||||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key,
|
||||
fin_kenmerk_key,
|
||||
fin_kenmerkfactuur_waarde)
|
||||
VALUES (rec.fin_factuur_key,
|
||||
(SELECT MAX (fin_kenmerk_key)
|
||||
FROM fin_kenmerk
|
||||
WHERE fin_kenmerk_verwijder IS NULL
|
||||
AND fin_kenmerk_upper = 'AFW. BEDRIJF'),
|
||||
(SELECT MAX (prs_bedrijf_key)
|
||||
FROM prs_v_aanwezigbedrijf
|
||||
WHERE fac.safe_to_number (prs_leverancier_nr) =
|
||||
rec.debiteurnr));
|
||||
END IF;
|
||||
-- Afwijkend bedrijf
|
||||
IF rec.debiteurnr IS NULL
|
||||
THEN
|
||||
v_errorhint := 'Geen afw. bedrijf';
|
||||
ELSE
|
||||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key,
|
||||
fin_kenmerk_key,
|
||||
fin_kenmerkfactuur_waarde)
|
||||
VALUES (
|
||||
rec.fin_factuur_key,
|
||||
(SELECT MAX (fin_kenmerk_key)
|
||||
FROM fin_kenmerk
|
||||
WHERE fin_kenmerk_verwijder IS NULL
|
||||
AND fin_kenmerk_upper =
|
||||
'AFW. BEDRIJF'),
|
||||
(SELECT MAX (prs_bedrijf_key)
|
||||
FROM prs_v_aanwezigbedrijf
|
||||
WHERE fac.safe_to_number (
|
||||
prs_leverancier_nr) =
|
||||
rec.debiteurnr));
|
||||
END IF;
|
||||
|
||||
--Grootboekrekening
|
||||
IF rec.kenmerk4 IS NULL
|
||||
THEN
|
||||
v_errorhint := 'Geen grootboekrekening';
|
||||
ELSE
|
||||
v_errorhint := 'Fout bij inlezen grootboekrekening';
|
||||
--Grootboekrekening
|
||||
IF rec.kenmerk4 IS NULL
|
||||
THEN
|
||||
v_errorhint := 'Geen grootboekrekening';
|
||||
ELSE
|
||||
v_errorhint := 'Fout bij inlezen grootboekrekening';
|
||||
|
||||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key,
|
||||
fin_kenmerk_key,
|
||||
fin_kenmerkfactuur_waarde)
|
||||
VALUES (rec.fin_factuur_key,
|
||||
(SELECT MAX (fin_kenmerk_key)
|
||||
FROM fin_kenmerk
|
||||
WHERE fin_kenmerk_verwijder IS NULL
|
||||
AND fin_kenmerk_upper = 'GROOTBOEKREKENING'),
|
||||
(SELECT MAX (ud.fac_usrdata_key)
|
||||
FROM fac_usrdata ud, fac_usrtab ut
|
||||
WHERE UPPER (ut.fac_usrtab_naam) =
|
||||
'GROOTBOEKREKENIN'
|
||||
AND ut.fac_usrtab_key = ud.fac_usrtab_key
|
||||
AND ud.fac_usrdata_code = rec.kenmerk4));
|
||||
END IF;
|
||||
INSERT INTO fin_kenmerkfactuur (fin_factuur_key,
|
||||
fin_kenmerk_key,
|
||||
fin_kenmerkfactuur_waarde)
|
||||
VALUES (
|
||||
rec.fin_factuur_key,
|
||||
(SELECT MAX (fin_kenmerk_key)
|
||||
FROM fin_kenmerk
|
||||
WHERE fin_kenmerk_verwijder IS NULL
|
||||
AND fin_kenmerk_upper =
|
||||
'GROOTBOEKREKENING'),
|
||||
(SELECT MAX (ud.fac_usrdata_key)
|
||||
FROM fac_usrdata ud, fac_usrtab ut
|
||||
WHERE UPPER (ut.fac_usrtab_naam) =
|
||||
'GROOTBOEKREKENIN'
|
||||
AND ut.fac_usrtab_key =
|
||||
ud.fac_usrtab_key
|
||||
AND ud.fac_usrdata_code =
|
||||
rec.kenmerk4));
|
||||
END IF;
|
||||
|
||||
v_errorhint := 'Bepalen referentie';
|
||||
v_errorhint := 'Bepalen referentie';
|
||||
|
||||
SELECT COALESCE (mld_opdr_key, cnt_contract_key, bes_bestelopdr_key)
|
||||
INTO v_referentie_key
|
||||
FROM fin_factuur
|
||||
WHERE fin_factuur_key = rec.fin_factuur_key
|
||||
AND rec.fac_import_key = p_import_key;
|
||||
SELECT COALESCE (mld_opdr_key,
|
||||
cnt_contract_key,
|
||||
bes_bestelopdr_key)
|
||||
INTO v_referentie_key
|
||||
FROM fin_factuur
|
||||
WHERE fin_factuur_key = rec.fin_factuur_key
|
||||
AND rec.fac_import_key = p_import_key;
|
||||
|
||||
IF v_referentie_key IS NULL
|
||||
THEN
|
||||
v_errorhint := 'Geen referentie';
|
||||
fac.imp_writelog (
|
||||
p_import_key,
|
||||
'E',
|
||||
v_errormsg || v_errorhint,
|
||||
'Er is geen referentie gevonden bij dit boekstuknummer '
|
||||
|| rec.kenmerk1);
|
||||
END IF;
|
||||
END;
|
||||
END LOOP;
|
||||
IF v_referentie_key IS NULL
|
||||
THEN
|
||||
v_errorhint := 'Geen referentie';
|
||||
fac.imp_writelog (
|
||||
p_import_key,
|
||||
'E',
|
||||
v_errormsg || v_errorhint,
|
||||
'Er is geen referentie gevonden bij dit boekstuknummer '
|
||||
|| rec.kenmerk1);
|
||||
END IF;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
FOR rec IN km_factuurregels
|
||||
LOOP
|
||||
BEGIN
|
||||
v_errorhint := 'Update factuurregels';
|
||||
v_kostenplaats := NULL;
|
||||
v_omschrijving := SUBSTR (rec.opmerking, 1, 250);
|
||||
-- verwijder de markering voor cr/lf die we zelf in de stylesheet toegevoegd hebben.
|
||||
FOR rec IN km_factuurregels
|
||||
LOOP
|
||||
BEGIN
|
||||
v_errorhint := 'Update factuurregels';
|
||||
v_kostenplaats := NULL;
|
||||
v_omschrijving := SUBSTR (rec.opmerking, 1, 250);
|
||||
-- verwijder de markering voor cr/lf die we zelf in de stylesheet toegevoegd hebben.
|
||||
|
||||
v_omschrijving := REPLACE (v_omschrijving, '@@', CHR (13));
|
||||
v_afw_boekdatum :=
|
||||
TO_CHAR (
|
||||
fac.safe_to_date (SUBSTR (rec.kenmerk13, 0, 10), 'yyyy-mm-dd'),
|
||||
'dd-mm-yyyy');
|
||||
v_omschrijving := REPLACE (v_omschrijving, '@@', CHR (13));
|
||||
v_afw_boekdatum :=
|
||||
TO_CHAR (
|
||||
fac.safe_to_date (SUBSTR (rec.kenmerk13, 0, 10),
|
||||
'yyyy-mm-dd'),
|
||||
'dd-mm-yyyy');
|
||||
|
||||
v_errorhint := 'Update factuurregels, kostenplaats';
|
||||
v_errorhint := 'Update factuurregels, kostenplaats';
|
||||
|
||||
SELECT MAX (prs_kostenplaats_key)
|
||||
INTO v_kostenplaats
|
||||
FROM prs_kostenplaats
|
||||
WHERE prs_kostenplaats_upper = UPPER (rec.kenmerk10)
|
||||
AND prs_kostenplaats_verwijder IS NULL;
|
||||
SELECT MAX (prs_kostenplaats_key)
|
||||
INTO v_kostenplaats
|
||||
FROM prs_kostenplaats
|
||||
WHERE prs_kostenplaats_upper = UPPER (rec.kenmerk10)
|
||||
AND prs_kostenplaats_verwijder IS NULL;
|
||||
|
||||
v_errorhint := 'Update factuurregels, omschrijving';
|
||||
v_errorhint := 'Update factuurregels, omschrijving';
|
||||
|
||||
UPDATE fin_factuurregel
|
||||
SET fin_factuurregel_omschrijving = v_omschrijving
|
||||
WHERE fin_factuurregel_key = rec.fin_factuurregel_key;
|
||||
UPDATE fin_factuurregel
|
||||
SET fin_factuurregel_omschrijving = v_omschrijving
|
||||
WHERE fin_factuurregel_key = rec.fin_factuurregel_key;
|
||||
|
||||
--Afwijkende grootboekrekening (factuurregel)
|
||||
v_errorhint := 'Geen afw. grootboekrekening factuurregel';
|
||||
|
||||
--Het BTW bedrag moet 1 op 1 worden overgenomen vanuit Scansys, om geen afrondingsverschillen te krijgen
|
||||
v_errorhint := 'BTW bedrag overnemen';
|
||||
|
||||
UPDATE fin_factuurregel
|
||||
SET fin_factuurregel_btw =
|
||||
fac.safe_to_number (REPLACE (rec.kenmerk14, ',', '.'))
|
||||
WHERE fin_factuurregel_key = rec.fin_factuurregel_key;
|
||||
|
||||
IF rec.kenmerk8 IS NULL
|
||||
THEN
|
||||
--Afwijkende grootboekrekening (factuurregel)
|
||||
v_errorhint := 'Geen afw. grootboekrekening factuurregel';
|
||||
fac.imp_writelog (
|
||||
p_import_key,
|
||||
'E',
|
||||
v_errormsg || v_errorhint,
|
||||
'Er is geen afwijkende grootboekrekening gevuld bij een factuurregel bij dit boekstuknummer '
|
||||
|| rec.kenmerk1);
|
||||
ELSE
|
||||
INSERT INTO fin_kenmerkfactregel (fin_factuurregel_key,
|
||||
fin_kenmerk_key,
|
||||
fin_kenmerkfactregel_waarde)
|
||||
VALUES (rec.fin_factuurregel_key,
|
||||
(SELECT MAX (fin_kenmerk_key)
|
||||
FROM fin_kenmerk
|
||||
WHERE fin_kenmerk_verwijder IS NULL
|
||||
AND fin_kenmerk_upper =
|
||||
'AFW. GROOTBOEKREKENING'),
|
||||
(SELECT MAX (ud.fac_usrdata_key)
|
||||
FROM fac_usrdata ud, fac_usrtab ut
|
||||
WHERE UPPER (ut.fac_usrtab_naam) =
|
||||
'GROOTBOEKREKENIN'
|
||||
AND ut.fac_usrtab_key = ud.fac_usrtab_key
|
||||
AND ud.fac_usrdata_code = rec.kenmerk8));
|
||||
END IF;
|
||||
|
||||
--Projectcode (factuurregel)
|
||||
v_errorhint := 'Geen projectcode factuurregel';
|
||||
--Het BTW bedrag moet 1 op 1 worden overgenomen vanuit Scansys, om geen afrondingsverschillen te krijgen
|
||||
v_errorhint := 'BTW bedrag overnemen';
|
||||
|
||||
IF rec.kenmerk7 IS NULL
|
||||
THEN
|
||||
UPDATE fin_factuurregel
|
||||
SET fin_factuurregel_btw =
|
||||
fac.safe_to_number (REPLACE (rec.kenmerk14, ',', '.'))
|
||||
WHERE fin_factuurregel_key = rec.fin_factuurregel_key;
|
||||
|
||||
IF rec.kenmerk8 IS NULL
|
||||
THEN
|
||||
v_errorhint := 'Geen afw. grootboekrekening factuurregel';
|
||||
fac.imp_writelog (
|
||||
p_import_key,
|
||||
'E',
|
||||
v_errormsg || v_errorhint,
|
||||
'Er is geen afwijkende grootboekrekening gevuld bij een factuurregel bij dit boekstuknummer '
|
||||
|| rec.kenmerk1);
|
||||
ELSE
|
||||
INSERT INTO fin_kenmerkfactregel (
|
||||
fin_factuurregel_key,
|
||||
fin_kenmerk_key,
|
||||
fin_kenmerkfactregel_waarde)
|
||||
VALUES (
|
||||
rec.fin_factuurregel_key,
|
||||
(SELECT MAX (fin_kenmerk_key)
|
||||
FROM fin_kenmerk
|
||||
WHERE fin_kenmerk_verwijder IS NULL
|
||||
AND fin_kenmerk_upper =
|
||||
'AFW. GROOTBOEKREKENING'),
|
||||
(SELECT MAX (ud.fac_usrdata_key)
|
||||
FROM fac_usrdata ud, fac_usrtab ut
|
||||
WHERE UPPER (ut.fac_usrtab_naam) =
|
||||
'GROOTBOEKREKENIN'
|
||||
AND ut.fac_usrtab_key =
|
||||
ud.fac_usrtab_key
|
||||
AND ud.fac_usrdata_code =
|
||||
rec.kenmerk8));
|
||||
END IF;
|
||||
|
||||
--Projectcode (factuurregel)
|
||||
v_errorhint := 'Geen projectcode factuurregel';
|
||||
ELSE
|
||||
INSERT INTO fin_kenmerkfactregel (fin_factuurregel_key,
|
||||
fin_kenmerk_key,
|
||||
fin_kenmerkfactregel_waarde)
|
||||
VALUES (rec.fin_factuurregel_key,
|
||||
(SELECT MAX (fin_kenmerk_key)
|
||||
FROM fin_kenmerk
|
||||
WHERE fin_kenmerk_verwijder IS NULL
|
||||
AND fin_kenmerk_upper = 'PROJECTCODE'),
|
||||
(SELECT MAX (ud.fac_usrdata_key)
|
||||
FROM fac_usrdata ud, fac_usrtab ut
|
||||
WHERE UPPER (ut.fac_usrtab_naam) = 'PROJECTCODE'
|
||||
AND ut.fac_usrtab_key = ud.fac_usrtab_key
|
||||
AND ud.fac_usrdata_code = rec.kenmerk7));
|
||||
END IF;
|
||||
|
||||
v_errorhint := 'Geen afw. kostendrager factuurregel';
|
||||
IF rec.kenmerk7 IS NULL
|
||||
THEN
|
||||
v_errorhint := 'Geen projectcode factuurregel';
|
||||
ELSE
|
||||
INSERT INTO fin_kenmerkfactregel (
|
||||
fin_factuurregel_key,
|
||||
fin_kenmerk_key,
|
||||
fin_kenmerkfactregel_waarde)
|
||||
VALUES (
|
||||
rec.fin_factuurregel_key,
|
||||
(SELECT MAX (fin_kenmerk_key)
|
||||
FROM fin_kenmerk
|
||||
WHERE fin_kenmerk_verwijder IS NULL
|
||||
AND fin_kenmerk_upper =
|
||||
'PROJECTCODE'),
|
||||
(SELECT MAX (ud.fac_usrdata_key)
|
||||
FROM fac_usrdata ud, fac_usrtab ut
|
||||
WHERE UPPER (ut.fac_usrtab_naam) =
|
||||
'PROJECTCODE'
|
||||
AND ut.fac_usrtab_key =
|
||||
ud.fac_usrtab_key
|
||||
AND ud.fac_usrdata_code =
|
||||
rec.kenmerk7));
|
||||
END IF;
|
||||
|
||||
--Afw. Kostendrager (factuurregel)
|
||||
IF rec.kenmerk3 IS NULL
|
||||
THEN
|
||||
v_errorhint := 'Geen afw. kostendrager factuurregel';
|
||||
ELSE
|
||||
INSERT INTO fin_kenmerkfactregel (fin_factuurregel_key,
|
||||
fin_kenmerk_key,
|
||||
fin_kenmerkfactregel_waarde)
|
||||
VALUES (rec.fin_factuurregel_key,
|
||||
(SELECT MAX (fin_kenmerk_key)
|
||||
FROM fin_kenmerk
|
||||
WHERE fin_kenmerk_verwijder IS NULL
|
||||
AND fin_kenmerk_upper = 'AFW. KOSTENDRAGER'),
|
||||
(SELECT MAX (ud.fac_usrdata_key)
|
||||
FROM fac_usrdata ud, fac_usrtab ut
|
||||
WHERE UPPER (ut.fac_usrtab_naam) = 'KOSTENDRAGER'
|
||||
AND ut.fac_usrtab_key = ud.fac_usrtab_key
|
||||
AND ud.fac_usrdata_code = rec.kenmerk3));
|
||||
END IF;
|
||||
|
||||
v_errorhint := 'Geen afw. kostenplaats factuurregel';
|
||||
--Afw. Kostendrager (factuurregel)
|
||||
IF rec.kenmerk3 IS NULL
|
||||
THEN
|
||||
v_errorhint := 'Geen afw. kostendrager factuurregel';
|
||||
ELSE
|
||||
INSERT INTO fin_kenmerkfactregel (
|
||||
fin_factuurregel_key,
|
||||
fin_kenmerk_key,
|
||||
fin_kenmerkfactregel_waarde)
|
||||
VALUES (
|
||||
rec.fin_factuurregel_key,
|
||||
(SELECT MAX (fin_kenmerk_key)
|
||||
FROM fin_kenmerk
|
||||
WHERE fin_kenmerk_verwijder IS NULL
|
||||
AND fin_kenmerk_upper =
|
||||
'AFW. KOSTENDRAGER'),
|
||||
(SELECT MAX (ud.fac_usrdata_key)
|
||||
FROM fac_usrdata ud, fac_usrtab ut
|
||||
WHERE UPPER (ut.fac_usrtab_naam) =
|
||||
'KOSTENDRAGER'
|
||||
AND ut.fac_usrtab_key =
|
||||
ud.fac_usrtab_key
|
||||
AND ud.fac_usrdata_code =
|
||||
rec.kenmerk3));
|
||||
END IF;
|
||||
|
||||
--Afw. kostenplaats (factuurregel)
|
||||
IF v_kostenplaats IS NULL
|
||||
THEN
|
||||
v_errorhint := 'Geen afw. kostenplaats factuurregel';
|
||||
ELSE
|
||||
INSERT INTO fin_kenmerkfactregel (fin_factuurregel_key,
|
||||
fin_kenmerk_key,
|
||||
fin_kenmerkfactregel_waarde)
|
||||
VALUES (rec.fin_factuurregel_key,
|
||||
(SELECT MAX (fin_kenmerk_key)
|
||||
FROM fin_kenmerk
|
||||
WHERE fin_kenmerk_verwijder IS NULL
|
||||
AND fin_kenmerk_upper = 'AFW. KOSTENPLAATS'),
|
||||
v_kostenplaats);
|
||||
END IF;
|
||||
|
||||
v_errorhint := 'Geen kostensoort factuurregel';
|
||||
--Afw. kostenplaats (factuurregel)
|
||||
IF v_kostenplaats IS NULL
|
||||
THEN
|
||||
v_errorhint := 'Geen afw. kostenplaats factuurregel';
|
||||
ELSE
|
||||
INSERT INTO fin_kenmerkfactregel (
|
||||
fin_factuurregel_key,
|
||||
fin_kenmerk_key,
|
||||
fin_kenmerkfactregel_waarde)
|
||||
VALUES (
|
||||
rec.fin_factuurregel_key,
|
||||
(SELECT MAX (fin_kenmerk_key)
|
||||
FROM fin_kenmerk
|
||||
WHERE fin_kenmerk_verwijder IS NULL
|
||||
AND fin_kenmerk_upper =
|
||||
'AFW. KOSTENPLAATS'),
|
||||
v_kostenplaats);
|
||||
END IF;
|
||||
|
||||
--Kostensoort (factuurregel)
|
||||
IF rec.kenmerk2 IS NULL
|
||||
THEN
|
||||
v_errorhint := 'Geen kostensoort factuurregel';
|
||||
ELSE
|
||||
UPDATE fin_factuurregel
|
||||
SET prs_kostensoort_key =
|
||||
(SELECT MAX (ks.prs_kostensoort_key)
|
||||
FROM prs_kostensoort ks
|
||||
WHERE ks.prs_kostensoort_upper = UPPER (rec.kenmerk2))
|
||||
WHERE fin_factuurregel_key = rec.fin_factuurregel_key;
|
||||
END IF;
|
||||
|
||||
--Kostensoort (factuurregel)
|
||||
IF rec.kenmerk2 IS NULL
|
||||
THEN
|
||||
v_errorhint := 'Geen kostensoort factuurregel';
|
||||
ELSE
|
||||
UPDATE fin_factuurregel
|
||||
SET prs_kostensoort_key =
|
||||
(SELECT MAX (ks.prs_kostensoort_key)
|
||||
FROM prs_kostensoort ks
|
||||
WHERE ks.prs_kostensoort_upper =
|
||||
UPPER (rec.kenmerk2))
|
||||
WHERE fin_factuurregel_key = rec.fin_factuurregel_key;
|
||||
END IF;
|
||||
|
||||
|
||||
v_errorhint := 'Geen regelnummer factuurregel';
|
||||
|
||||
--Regelnummer (factuurregel)
|
||||
IF rec.kenmerk9 IS NULL
|
||||
THEN
|
||||
v_errorhint := 'Geen regelnummer factuurregel';
|
||||
ELSE
|
||||
UPDATE fin_factuurregel
|
||||
SET fin_factuurregel_nr = rec.kenmerk9
|
||||
WHERE fin_factuurregel_key = rec.fin_factuurregel_key;
|
||||
END IF;
|
||||
|
||||
v_errorhint := 'Geen afw. boekdatum factuurregel';
|
||||
--Regelnummer (factuurregel)
|
||||
IF rec.kenmerk9 IS NULL
|
||||
THEN
|
||||
v_errorhint := 'Geen regelnummer factuurregel';
|
||||
ELSE
|
||||
UPDATE fin_factuurregel
|
||||
SET fin_factuurregel_nr = rec.kenmerk9
|
||||
WHERE fin_factuurregel_key = rec.fin_factuurregel_key;
|
||||
END IF;
|
||||
|
||||
--Afw. boekdatum (factuurregel)
|
||||
IF rec.kenmerk13 IS NULL
|
||||
THEN
|
||||
v_errorhint := 'Geen afw. boekdatum factuurregel';
|
||||
ELSE
|
||||
INSERT INTO fin_kenmerkfactregel (fin_factuurregel_key,
|
||||
fin_kenmerk_key,
|
||||
fin_kenmerkfactregel_waarde)
|
||||
VALUES (rec.fin_factuurregel_key,
|
||||
(SELECT MAX (fin_kenmerk_key)
|
||||
FROM fin_kenmerk
|
||||
WHERE fin_kenmerk_verwijder IS NULL
|
||||
AND fin_kenmerk_upper = 'AFW. BOEKDATUM'),
|
||||
v_afw_boekdatum);
|
||||
END IF;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
COMMIT;
|
||||
--Afw. boekdatum (factuurregel)
|
||||
IF rec.kenmerk13 IS NULL
|
||||
THEN
|
||||
v_errorhint := 'Geen afw. boekdatum factuurregel';
|
||||
ELSE
|
||||
INSERT INTO fin_kenmerkfactregel (
|
||||
fin_factuurregel_key,
|
||||
fin_kenmerk_key,
|
||||
fin_kenmerkfactregel_waarde)
|
||||
VALUES (
|
||||
rec.fin_factuurregel_key,
|
||||
(SELECT MAX (fin_kenmerk_key)
|
||||
FROM fin_kenmerk
|
||||
WHERE fin_kenmerk_verwijder IS NULL
|
||||
AND fin_kenmerk_upper =
|
||||
'AFW. BOEKDATUM'),
|
||||
v_afw_boekdatum);
|
||||
END IF;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
--Het BTW bedrag moet 1 op 1 worden overgenomen vanuit Scansys, om geen afrondingsverschillen te krijgen
|
||||
FOR rec IN km_facturen
|
||||
LOOP
|
||||
v_errorhint := 'BTW bedrag factuur herrekenen';
|
||||
COMMIT;
|
||||
|
||||
BEGIN
|
||||
UPDATE fin_factuur
|
||||
SET fin_factuur_totaal_btw =
|
||||
(SELECT SUM (fin_factuurregel_btw)
|
||||
FROM fin_factuurregel
|
||||
WHERE fin_factuur_key = rec.fin_factuur_key)
|
||||
WHERE fin_factuur_key = rec.fin_factuur_key;
|
||||
END;
|
||||
END LOOP;
|
||||
--Het BTW bedrag moet 1 op 1 worden overgenomen vanuit Scansys, om geen afrondingsverschillen te krijgen
|
||||
FOR rec IN km_facturen
|
||||
LOOP
|
||||
v_errorhint := 'BTW bedrag factuur herrekenen';
|
||||
|
||||
BEGIN
|
||||
UPDATE fin_factuur
|
||||
SET fin_factuur_totaal_btw =
|
||||
(SELECT SUM (fin_factuurregel_btw)
|
||||
FROM fin_factuurregel
|
||||
WHERE fin_factuur_key = rec.fin_factuur_key)
|
||||
WHERE fin_factuur_key = rec.fin_factuur_key;
|
||||
END;
|
||||
END LOOP;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
v_errormsg :=
|
||||
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
SUBSTR (v_errormsg, 1, 1000),
|
||||
v_errorhint);
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
v_errormsg :=
|
||||
'OTHERS (error '
|
||||
|| oracle_err_num
|
||||
|| '/'
|
||||
|| oracle_err_mes
|
||||
|| ')';
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
SUBSTR (v_errormsg, 1, 1000),
|
||||
v_errorhint);
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
CREATE OR REPLACE PROCEDURE pchx_update_fin_scansys_xml (
|
||||
p_import_key IN NUMBER)
|
||||
AS
|
||||
|
||||
Reference in New Issue
Block a user