LOGC#75016 -- SAP bestanden geautomatiseerd verwerken

svn path=/Customer/trunk/; revision=57775
This commit is contained in:
Arthur Egberink
2022-10-27 12:04:00 +00:00
parent cf461c88f0
commit f248c9f6b4

View File

@@ -421,6 +421,10 @@ IS
v_datum_txt VARCHAR2 (20);
v_categorie VARCHAR2 (100);
v_werknemer NUMBER (10);
v_factuurnr VARCHAR2 (100);
v_factuurdatum_txt VARCHAR2 (100);
v_factuurbedrag VARCHAR2 (100);
v_factuurstatus VARCHAR2(100);
i_transactietekst NUMBER(2);
i_project NUMBER(2);
@@ -429,6 +433,10 @@ IS
i_datum_txt NUMBER(2);
i_categorie NUMBER(2);
i_werknemer NUMBER(2);
i_factuurnr NUMBER(2);
i_factuurdatum_txt NUMBER(2);
i_factuurbedrag NUMBER(2);
i_factuurstatus NUMBER(2);
CURSOR c1
IS
@@ -458,17 +466,22 @@ BEGIN
fac.imp_getfield (v_newline, c_delim, v_field);
v_index := v_index + 1;
CASE UPPER(v_field)
WHEN 'DATUM' THEN i_datum_txt := v_index;
WHEN 'ALGEMENE ONTVANGER' THEN i_project := v_index;
WHEN 'RUBRICERINGSOMS.' THEN i_project_oms := v_index;
WHEN 'PRESTATIESOORT' THEN i_categorie := v_index;
WHEN 'PERSONEELSNUMMER' THEN i_werknemer := v_index;
WHEN 'AANTAL (MAATEENHEID)' THEN i_uren := v_index;
WHEN 'K. TEKST' THEN i_transactietekst := v_index;
WHEN 'DATE' THEN i_datum_txt := v_index;
WHEN 'GENERAL RECEIVER' THEN i_project := v_index;
WHEN 'ACCT ASSGNT TEXT' THEN i_project_oms := v_index;
WHEN 'ACTIVITY TYPE' THEN i_categorie := v_index;
WHEN 'PERSONNEL NUMBER' THEN i_werknemer := v_index;
WHEN 'NUMBER (UNIT)' THEN i_uren := v_index;
WHEN 'SHORT TEXT' THEN i_transactietekst := v_index;
WHEN 'INVOICE' THEN i_factuurnr := v_index;
WHEN 'BILLINGDATE' THEN i_factuurdatum_txt := v_index;
WHEN 'PRICE' THEN i_factuurbedrag := v_index;
WHEN 'STATUS' THEN i_factuurstatus := v_index;
ELSE
NULL;
END CASE;
END LOOP;
IF i_datum_txt > 0
AND i_project > 0
@@ -477,6 +490,12 @@ BEGIN
AND i_werknemer > 0
AND i_uren > 0
AND i_transactietekst > 0
AND i_factuurnr > 0
AND i_factuurdatum_txt > 0
AND i_factuurbedrag > 0
AND i_factuurstatus > 0
THEN
header_is_valid := 1;
END IF;
@@ -492,6 +511,10 @@ BEGIN
fac.imp_getfield_nr (v_newline, c_delim, i_datum_txt, v_datum_txt);
fac.imp_getfield_nr (v_newline, c_delim, i_categorie, v_categorie);
fac.imp_getfield_nr (v_newline, c_delim, i_werknemer, v_werknemer);
fac.imp_getfield_nr (v_newline, c_delim, i_factuurnr, v_factuurnr);
fac.imp_getfield_nr (v_newline, c_delim, i_factuurdatum_txt, v_factuurdatum_txt);
fac.imp_getfield_nr (v_newline, c_delim, i_factuurbedrag, v_factuurbedrag);
fac.imp_getfield_nr (v_newline, c_delim, i_factuurstatus, v_factuurstatus);
IF (header_is_valid = 1)
THEN
@@ -585,14 +608,65 @@ BEGIN
'Regel wordt overgeslagen!');
END IF;
v_errormsg := 'Factuurnummer ongeldig';
v_factuurnr := SUBSTR(TRIM (REPLACE(v_factuurnr,'#N/A')),1,20);
-- Bij fixed price projecten komt als datum 0-1-1900 te staan
v_errormsg := 'Factuurdatum ongeldig';
v_factuurdatum_txt := TRIM (REPLACE(REPLACE(v_factuurdatum_txt,'#N/A'), '0-1-1900'));
IF (v_factuurdatum_txt IS NOT NULL AND fac.safe_to_date (v_factuurdatum_txt,'dd-mm-yyyy') IS NULL)
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
'Regel wordt overgeslagen!');
END IF;
v_errormsg := 'Factuurbedrag ongeldig';
v_factuurbedrag := TRIM (REPLACE(v_factuurbedrag,'#N/A'));
IF (v_factuurbedrag IS NOT NULL AND fac.safe_to_number (replace(replace(v_factuurbedrag, '.'),',','.')) IS NULL)
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
'Regel wordt overgeslagen!');
END IF;
v_errormsg := 'Factuurstatus ongeldig';
v_factuurstatus := SUBSTR(TRIM (REPLACE(v_factuurstatus,'#N/A')), 1, 10);
-- Insert geformatteerde import record
IF v_ongeldig = 0
THEN
BEGIN
v_errormsg := 'Fout bij wegschrijven importregel';
INSERT INTO logc_imp_uren_besteding (transactietekst, project, project_oms, uren, datum_txt, categorie, werknemer)
VALUES (v_transactietekst, v_project, v_project_oms, fac.safe_to_number (replace(v_uren,',','.')), v_datum_txt, v_categorie, v_werknemer);
INSERT INTO logc_imp_uren_besteding (transactietekst,
project,
project_oms,
uren,
datum_txt,
categorie,
werknemer,
factuurnr,
factuurdatum,
factuurbedrag,
factuurstatus)
VALUES (v_transactietekst,
v_project,
v_project_oms,
fac.safe_to_number (replace(v_uren,',','.')),
v_datum_txt,
v_categorie,
v_werknemer,
v_factuurnr,
fac.safe_to_date (v_factuurdatum_txt,'dd-mm-yyyy'),
fac.safe_to_number (replace(replace(v_factuurbedrag, '.'),',','.')),
v_factuurstatus);
v_count_import := v_count_import + 1;
EXCEPTION
@@ -626,7 +700,11 @@ BEGIN
i_categorie || '-' ||
i_werknemer || '-' ||
i_uren || '-' ||
i_transactietekst || ')');
i_transactietekst || '-' ||
i_factuurnr || '-' ||
i_factuurdatum_txt || '-' ||
i_factuurbedrag || '-' ||
i_factuurstatus || ')');
ELSE
fac.imp_writelog (p_import_key,
'S',
@@ -902,19 +980,19 @@ BEGIN
IF (header_is_valid = 0)
THEN
IF UPPER (v_KlantOmschrijving) = 'OMSCHRIJVING'
AND UPPER (v_WBSelement) = 'WBS-ELEMENT'
AND UPPER (v_Projectsoort) = 'PROJECTSOORT'
AND UPPER (v_Omschrijving) = 'OMSCHRIJVING'
IF UPPER (v_KlantOmschrijving) = 'DESCRIPTION'
AND UPPER (v_WBSelement) = 'WBS ELEMENT'
AND UPPER (v_Projectsoort) = 'PROJECT TYPE'
AND UPPER (v_Omschrijving) = 'DESCRIPTION'
AND UPPER (v_Status) = 'STATUS'
AND UPPER (v_Debiteur) = 'KLANT'
AND UPPER (v_Debiteur) = 'CUSTOMER'
AND UPPER (v_PlanWorktime) = 'PLAN WORKTIME'
AND UPPER (v_ActualWorktime) = 'ACTUAL WORKTIME'
AND UPPER (v_ActualWorkCosts) = 'ACTUAL WORK COSTS'
AND UPPER (v_PlanWorkCosts) = 'PLAN WORK COSTS'
AND UPPER (v_InvoiceReceived) = 'INVOICE RECEIVED'
AND UPPER (v_InvoicePosted) = 'INVOICE POSTED'
AND UPPER (v_ProjektManagerLogin) = 'PROJEKTLEITER'
AND UPPER (v_ProjektManagerLogin) = 'PROJECTMANAGER NAME' -- Name niet opnemen
AND UPPER (v_SalesPersonNr) = 'SALES PERSON'
AND UPPER (v_NameSalesPerson) = 'NAME SALES REPRESEN'
THEN
@@ -1226,6 +1304,13 @@ EXCEPTION
END logc_import_projecten;
/
CREATE OR REPLACE PROCEDURE logc_update_projecten (p_import_key IN NUMBER)
IS
BEGIN
NULL; -- Hier hoeven we verder niets te doen.
END;
/
CREATE OR REPLACE VIEW logc_v_rap_projecten
AS
SELECT d.prs_afdeling_key
@@ -1609,7 +1694,11 @@ AS
AND mk.mld_srtkenmerk_key = 25
AND km.mld_melding_key = m.mld_melding_key) custref,
m.mld_melding_externnr,
m.mld_melding_key
m.mld_melding_key,
i.factuurnr,
i.factuurdatum,
i.factuurbedrag,
i.factuurstatus
FROM logc_imp_uren_besteding i,
logc_imp_projecten pr,
mld_melding m,