PCHX#63945 Import xml-factuur uit Scansys (xml ipv csv)
svn path=/Customer/trunk/; revision=50111
This commit is contained in:
251
PCHX/pchx.sql
251
PCHX/pchx.sql
@@ -4719,62 +4719,83 @@ BEGIN
|
||||
WHERE fin_factuur_key = rec.fin_factuur_key;
|
||||
|
||||
-- administratie
|
||||
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);
|
||||
IF rec.kenmerk6 IS NULL
|
||||
THEN
|
||||
v_errorhint := 'Geen administratie';
|
||||
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
|
||||
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);
|
||||
IF rec.kenmerk1 IS NULL
|
||||
THEN
|
||||
v_errorhint := 'Geen boekstuknummer';
|
||||
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
|
||||
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));
|
||||
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
|
||||
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));
|
||||
IF rec.kenmerk4 IS NULL
|
||||
THEN
|
||||
v_errorhint := 'Geen grootboekrekening';
|
||||
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 = '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;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
FOR rec IN km_factuurregels
|
||||
LOOP
|
||||
BEGIN
|
||||
v_kostenplaats := 0;
|
||||
v_kostenplaats := NULL;
|
||||
|
||||
SELECT MAX (prs_kostenplaats_key)
|
||||
INTO v_kostenplaats
|
||||
@@ -4783,53 +4804,72 @@ BEGIN
|
||||
AND prs_kostenplaats_verwijder IS NULL;
|
||||
|
||||
--Afwijkende grootboekrekening (factuurregel)
|
||||
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));
|
||||
IF rec.kenmerk8 IS NULL
|
||||
THEN
|
||||
v_errorhint := 'Geen afw. grootboekrekening 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. 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)
|
||||
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));
|
||||
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)
|
||||
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));
|
||||
|
||||
IF v_kostenplaats <> 0
|
||||
IF rec.kenmerk3 IS NULL
|
||||
THEN
|
||||
--Afw. kostenplaats (factuurregel)
|
||||
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)
|
||||
@@ -4842,21 +4882,42 @@ BEGIN
|
||||
END IF;
|
||||
|
||||
--Kostensoort (factuurregel)
|
||||
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;
|
||||
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;
|
||||
|
||||
--Regelnummer (factuurregel)
|
||||
UPDATE fin_factuurregel
|
||||
SET fin_factuurregel_nr = rec.kenmerk9
|
||||
WHERE fin_factuurregel_key = rec.fin_factuurregel_key;
|
||||
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;
|
||||
--Eigentabellen zonder code
|
||||
--Factuurkenmerken moeten nog
|
||||
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);
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
Reference in New Issue
Block a user