DIAN#51429 EXACT-import
svn path=/Customer/trunk/; revision=40151
This commit is contained in:
100
DIAN/dian.sql
100
DIAN/dian.sql
@@ -361,15 +361,16 @@ AS
|
||||
v_count_import NUMBER (10);
|
||||
-- De importvelden:
|
||||
v_clientid VARCHAR2 (255); -- C16
|
||||
v_clientachternaam VARCHAR2 (255); -- C60
|
||||
v_clientnaam VARCHAR2 (255); -- C60
|
||||
v_clientvoorletters VARCHAR2 (255); -- C15
|
||||
v_clientgeslacht VARCHAR2 (255); -- N1
|
||||
v_clienttelefoon VARCHAR2 (255); -- C15
|
||||
v_clientemail VARCHAR2 (255); -- C200
|
||||
v_artikelnr VARCHAR2 (255); -- C32
|
||||
v_omschrijving VARCHAR2 (255); -- C100
|
||||
v_prijs VARCHAR2 (255); -- N8.2
|
||||
v_eenheid VARCHAR2 (255); -- C30
|
||||
v_artnr VARCHAR2 (255); -- C32
|
||||
v_artikelomschrijving VARCHAR2 (255); -- C100
|
||||
v_artikelprijs VARCHAR2 (255); -- N8.2
|
||||
v_artikeleenheid VARCHAR2 (255); -- C30
|
||||
v_aantal_ce VARCHAR2 (255); -- Nx
|
||||
|
||||
CURSOR c1
|
||||
IS
|
||||
@@ -395,18 +396,20 @@ BEGIN
|
||||
v_newline := rec1.fac_imp_file_line;
|
||||
-- Lees alle veldwaarden
|
||||
-- ClientId;ClientAchternaam;ClientVoorletters;ClientGeslacht;ClientTelefoon;ClientEmail;Artikelnr;Omschrijving;Prijs;Eenheid
|
||||
-- ClientID;ClientNaam;ClientVoorletters;ClientGeslacht;ClientTelefoon;ClientEmail;Artnr;ArtikelOmschrijving;ArtikelPrijs;ArtikelEenheid;aantal_ce
|
||||
fac.imp_getfield (v_newline, c_delim, v_clientid);
|
||||
fac.imp_getfield (v_newline, c_delim, v_clientachternaam);
|
||||
fac.imp_getfield (v_newline, c_delim, v_clientnaam);
|
||||
fac.imp_getfield (v_newline, c_delim, v_clientvoorletters);
|
||||
fac.imp_getfield (v_newline, c_delim, v_clientgeslacht);
|
||||
fac.imp_getfield (v_newline, c_delim, v_clienttelefoon);
|
||||
fac.imp_getfield (v_newline, c_delim, v_clientemail);
|
||||
fac.imp_getfield (v_newline, c_delim, v_artikelnr);
|
||||
fac.imp_getfield (v_newline, c_delim, v_omschrijving);
|
||||
fac.imp_getfield (v_newline, c_delim, v_prijs);
|
||||
fac.imp_getfield (v_newline, c_delim, v_eenheid);
|
||||
fac.imp_getfield (v_newline, c_delim, v_artnr);
|
||||
fac.imp_getfield (v_newline, c_delim, v_artikelomschrijving);
|
||||
fac.imp_getfield (v_newline, c_delim, v_artikelprijs);
|
||||
fac.imp_getfield (v_newline, c_delim, v_artikeleenheid);
|
||||
fac.imp_getfield (v_newline, c_delim, v_aantal_ce);
|
||||
|
||||
v_aanduiding := '[' || v_clientid || '|' || v_artikelnr || '] ';
|
||||
v_aanduiding := '[' || v_clientid || '|' || v_artnr || '] ';
|
||||
|
||||
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
|
||||
-- de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
|
||||
@@ -414,15 +417,16 @@ BEGIN
|
||||
IF (header_is_valid = 0)
|
||||
THEN
|
||||
IF UPPER (v_clientid) = 'CLIENTID'
|
||||
AND UPPER (v_clientachternaam) = 'CLIENTACHTERNAAM'
|
||||
AND UPPER (v_clientnaam) = 'CLIENTNAAM'
|
||||
AND UPPER (v_clientvoorletters) = 'CLIENTVOORLETTERS'
|
||||
AND UPPER (v_clientgeslacht) = 'CLIENTGESLACHT'
|
||||
AND UPPER (v_clienttelefoon) = 'CLIENTTELEFOON'
|
||||
AND UPPER (v_clientemail) = 'CLIENTEMAIL'
|
||||
AND UPPER (v_artikelnr) = 'ARTIKELNR'
|
||||
AND UPPER (v_omschrijving) = 'OMSCHRIJVING'
|
||||
AND UPPER (v_prijs) = 'PRIJS'
|
||||
AND UPPER (v_eenheid) = 'EENHEID'
|
||||
AND UPPER (v_artnr) = 'ARTNR'
|
||||
AND UPPER (v_artikelomschrijving) = 'ARTIKELOMSCHRIJVING'
|
||||
AND UPPER (v_artikelprijs) = 'ARTIKELPRIJS'
|
||||
AND UPPER (v_artikeleenheid) = 'ARTIKELEENHEID'
|
||||
AND UPPER (v_aantal_ce) = 'AANTAL_CE'
|
||||
THEN
|
||||
header_is_valid := 1;
|
||||
END IF;
|
||||
@@ -439,10 +443,10 @@ BEGIN
|
||||
END IF;
|
||||
|
||||
--
|
||||
v_errormsg := 'ClientAchternaam ongeldig; ongedefinieerd of te lang';
|
||||
v_clientachternaam := TRIM (v_clientachternaam);
|
||||
v_errormsg := 'ClientNaam ongeldig; ongedefinieerd of te lang';
|
||||
v_clientnaam := TRIM (v_clientnaam);
|
||||
|
||||
IF v_clientachternaam IS NULL OR LENGTH (v_clientachternaam) > 60
|
||||
IF v_clientnaam IS NULL OR LENGTH (v_clientnaam) > 60
|
||||
THEN
|
||||
v_ongeldig := 1;
|
||||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel overgeslagen!');
|
||||
@@ -489,10 +493,10 @@ BEGIN
|
||||
END IF;
|
||||
|
||||
--
|
||||
v_errormsg := 'ArtikelNr ongeldig; ongedefinieerd of te lang';
|
||||
v_artikelnr := TRIM (v_artikelnr);
|
||||
v_errormsg := 'ArtNr ongeldig; ongedefinieerd of te lang';
|
||||
v_artnr := TRIM (v_artnr);
|
||||
|
||||
IF v_artikelnr IS NULL OR LENGTH (v_artikelnr) > 32
|
||||
IF v_artnr IS NULL OR LENGTH (v_artnr) > 32
|
||||
THEN
|
||||
v_ongeldig := 1;
|
||||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel overgeslagen!');
|
||||
@@ -500,9 +504,9 @@ BEGIN
|
||||
|
||||
--
|
||||
v_errormsg := 'ArtikelOmschrijving ongeldig; ongedefinieerd of te lang';
|
||||
v_omschrijving := TRIM (v_omschrijving);
|
||||
v_artikelomschrijving := TRIM (v_artikelomschrijving);
|
||||
|
||||
IF v_omschrijving IS NULL OR LENGTH (v_omschrijving) > 100
|
||||
IF v_artikelomschrijving IS NULL OR LENGTH (v_artikelomschrijving) > 100
|
||||
THEN
|
||||
v_ongeldig := 1;
|
||||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel overgeslagen!');
|
||||
@@ -510,10 +514,10 @@ BEGIN
|
||||
|
||||
--
|
||||
v_errormsg := 'ArtikelPrijs ongeldig';
|
||||
v_prijs := TRIM (v_prijs);
|
||||
v_artikelprijs := TRIM (v_artikelprijs);
|
||||
|
||||
--IF v_prijs IS NOT NULL AND fac.safe_to_number (v_prijs) IS NULL
|
||||
IF fac.safe_to_number (v_prijs) IS NULL
|
||||
--IF fac.safe_to_number (v_artikelprijs) IS NULL
|
||||
IF v_artikelprijs IS NOT NULL AND fac.safe_to_number (v_artikelprijs) IS NULL
|
||||
THEN
|
||||
v_ongeldig := 1;
|
||||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel overgeslagen!');
|
||||
@@ -521,14 +525,25 @@ BEGIN
|
||||
|
||||
--
|
||||
v_errormsg := 'ArtikelEenheid te lang';
|
||||
v_eenheid := TRIM (v_eenheid);
|
||||
v_artikeleenheid := TRIM (v_artikeleenheid);
|
||||
|
||||
IF LENGTH (v_eenheid) > 30
|
||||
IF LENGTH (v_artikeleenheid) > 30
|
||||
THEN
|
||||
v_eenheid := SUBSTR (v_eenheid, 1, 30);
|
||||
v_artikeleenheid := SUBSTR (v_artikeleenheid, 1, 30);
|
||||
fac.imp_writelog (p_import_key, 'I', v_aanduiding || v_errormsg, 'ArtikelEenheid afgekapt!');
|
||||
END IF;
|
||||
|
||||
--
|
||||
v_errormsg := 'aantal_ce ongeldig';
|
||||
v_aantal_ce := TRIM (v_aantal_ce);
|
||||
|
||||
--IF fac.safe_to_number (v_aantal_ce) IS NULL
|
||||
IF v_aantal_ce IS NOT NULL AND fac.safe_to_number (v_aantal_ce) IS NULL
|
||||
THEN
|
||||
v_ongeldig := 1;
|
||||
fac.imp_writelog (p_import_key, 'I', v_aanduiding || v_errormsg, 'Regel overgeslagen!');
|
||||
END IF;
|
||||
|
||||
-- Insert geformatteerde import record
|
||||
IF v_ongeldig = 0
|
||||
THEN
|
||||
@@ -546,7 +561,7 @@ BEGIN
|
||||
prs_srtperslid_omschrijving)
|
||||
SELECT p_import_key,
|
||||
v_clientid,
|
||||
v_clientachternaam,
|
||||
v_clientnaam,
|
||||
v_clientvoorletters,
|
||||
DECODE (v_clientgeslacht, 'M', 1, 'V', 0, NULL),
|
||||
v_clienttelefoon,
|
||||
@@ -583,12 +598,14 @@ BEGIN
|
||||
NULL,
|
||||
NULL,
|
||||
TRUNC (SYSDATE),
|
||||
v_artikelnr,
|
||||
v_artnr,
|
||||
v_clientid,
|
||||
v_omschrijving,
|
||||
fac.safe_to_number (v_prijs),
|
||||
v_artikelomschrijving,
|
||||
0,
|
||||
NULL,
|
||||
v_eenheid,
|
||||
DECODE (UPPER (v_artikeleenheid),
|
||||
'STUKS', DECODE (v_aantal_ce, 1, 'stuks', 'per ' || v_aantal_ce || ' stuks'),
|
||||
LOWER (v_artikeleenheid) || ' <20> ' || v_aantal_ce),
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
@@ -640,7 +657,7 @@ AS
|
||||
c_client_anaam VARCHAR2(4) := 'EXTB';
|
||||
c_exact_bkey NUMBER (10) := 481; -- Exact/D641/A481/P641
|
||||
c_default_gkey NUMBER (10) := 1; -- _Default-groep
|
||||
c_clientbeheer_gkey NUMBER (10) := 62; -- Cli<6C>ntBeheer-groep/D61/A62/P61
|
||||
c_clientbeheer_gkey NUMBER (10) := 61; -- Cli<6C>ntBeheer-groep
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
@@ -762,8 +779,9 @@ BEGIN
|
||||
bes_disc_params_leverdagen,
|
||||
bes_disc_params_module,
|
||||
bes_disc_params_bonotify,
|
||||
bes_disc_params_bestelmode)
|
||||
VALUES (v_discipline_key, 1, 1, 10, 'BES', 0, 2);
|
||||
bes_disc_params_bestelmode,
|
||||
bes_disc_params_hide_cost_fe)
|
||||
VALUES (v_discipline_key, 1, 1, 0, 'BES', 0, 2, 1);
|
||||
ELSE -- Exception als v_count > 1!
|
||||
SELECT td.ins_discipline_key
|
||||
INTO v_discipline_key
|
||||
@@ -884,6 +902,12 @@ EXCEPTION
|
||||
END dian_update_exact;
|
||||
/
|
||||
|
||||
/*
|
||||
DELETE FROM bes_srtdeel;
|
||||
DELETE FROM bes_srtgroep;
|
||||
DELETE FROM bes_disc_params;
|
||||
DELETE FROM ins_tab_discipline td WHERE TD.INS_DISCIPLINE_MODULE = 'BES';
|
||||
*/
|
||||
------ payload end ------
|
||||
|
||||
SET DEFINE OFF
|
||||
|
||||
Reference in New Issue
Block a user