MARX#53116: Facturatie verfijnen nav HaagWonen (extra detailvelden).

svn path=/Database/trunk/; revision=39525
This commit is contained in:
Maykel Geerdink
2018-10-25 13:15:06 +00:00
parent 5c1b3dff45
commit d55459d35f
5 changed files with 186 additions and 12 deletions

View File

@@ -13815,9 +13815,21 @@ AS
-- v_kenmerk10: 26
-- v_kenmerk11: 27
-- v_kenmerk12: 28
-- v_kenmerk13: 29
-- v_kenmerk14: 30
-- v_kenmerk15: 31
-- v_kenmerk16: 32
-- v_kenmerk17: 33
-- v_kenmerk18: 34
-- v_kenmerk19: 35
-- v_kenmerk20: 36
-- v_artikelcode: 37
-- v_factuurregelaantal: 38
-- v_eenheid: 39
-- v_opdrachtregelid: 40
-- Eerst geprobeerd via nette array, geeft problemen met type buiten package, en in package lukt niet omdat
-- de import in Facilitor package-loos is (en niet 1-2-3 zo kan worden gemaakt vanwege alle bestaande klanten)
-- v_seq_of_columns ListOfInteger := (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28);
-- v_seq_of_columns ListOfInteger := (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40);
-- Dus dan maar via een string, en ook op slimme wijze, nl alsof het een ingelezen factuur-record is met p_fielddelimitor
v_seq_of_columns VARCHAR(255);
@@ -13834,7 +13846,7 @@ AS
-- M.a.w. waar een 0 staat, wordt de variabele niet ingelezen en blijft LEEG.
BEGIN
v_seq_of_columns := '1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28';
v_seq_of_columns := '1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28;29;30;31;32;33;34;35;36;37;38;39;40';
fac_import_factuur_body(p_import_key, v_seq_of_columns);
END;
/
@@ -13888,7 +13900,20 @@ AS
v_kenmerk10 VARCHAR2 (255);
v_kenmerk11 VARCHAR2 (255);
v_kenmerk12 VARCHAR2 (255);
v_kenmerk13 VARCHAR2 (255);
v_kenmerk14 VARCHAR2 (255);
v_kenmerk15 VARCHAR2 (255);
v_kenmerk16 VARCHAR2 (255);
v_kenmerk17 VARCHAR2 (255);
v_kenmerk18 VARCHAR2 (255);
v_kenmerk19 VARCHAR2 (255);
v_kenmerk20 VARCHAR2 (255);
v_boekmaand VARCHAR2 (255);
v_artikelcode VARCHAR2(30);
v_factuurregelaantal NUMBER(8,2);
v_eenheid VARCHAR2(30);
v_opdrachtregelid NUMBER(10);
v_check_dec_sign NUMBER (5, 2);
v_seq_of_columns VARCHAR2(100);
@@ -13921,6 +13946,18 @@ AS
v_colnr26 NUMBER;
v_colnr27 NUMBER;
v_colnr28 NUMBER;
v_colnr29 NUMBER;
v_colnr30 NUMBER;
v_colnr31 NUMBER;
v_colnr32 NUMBER;
v_colnr33 NUMBER;
v_colnr34 NUMBER;
v_colnr35 NUMBER;
v_colnr36 NUMBER;
v_colnr37 NUMBER;
v_colnr38 NUMBER;
v_colnr39 NUMBER;
v_colnr40 NUMBER;
CURSOR cfactuur
IS
@@ -13972,6 +14009,18 @@ BEGIN
fac.imp_getfield (v_seq_of_columns, v_fielddelimitor, v_colnr26);
fac.imp_getfield (v_seq_of_columns, v_fielddelimitor, v_colnr27);
fac.imp_getfield (v_seq_of_columns, v_fielddelimitor, v_colnr28);
fac.imp_getfield (v_seq_of_columns, v_fielddelimitor, v_colnr29);
fac.imp_getfield (v_seq_of_columns, v_fielddelimitor, v_colnr30);
fac.imp_getfield (v_seq_of_columns, v_fielddelimitor, v_colnr31);
fac.imp_getfield (v_seq_of_columns, v_fielddelimitor, v_colnr32);
fac.imp_getfield (v_seq_of_columns, v_fielddelimitor, v_colnr33);
fac.imp_getfield (v_seq_of_columns, v_fielddelimitor, v_colnr34);
fac.imp_getfield (v_seq_of_columns, v_fielddelimitor, v_colnr35);
fac.imp_getfield (v_seq_of_columns, v_fielddelimitor, v_colnr36);
fac.imp_getfield (v_seq_of_columns, v_fielddelimitor, v_colnr37);
fac.imp_getfield (v_seq_of_columns, v_fielddelimitor, v_colnr38);
fac.imp_getfield (v_seq_of_columns, v_fielddelimitor, v_colnr39);
fac.imp_getfield (v_seq_of_columns, v_fielddelimitor, v_colnr40);
v_errorhint := 'Decimaal check';
@@ -14043,6 +14092,30 @@ BEGIN
fac.imp_getfield_nr (v_newline, v_fielddelimitor, fac.safe_to_number(v_colnr27), v_kenmerk11);
v_errorhint := 'Inlezen kenmerk12 kolom:' || v_colnr28;
fac.imp_getfield_nr (v_newline, v_fielddelimitor, fac.safe_to_number(v_colnr28), v_kenmerk12);
v_errorhint := 'Inlezen kenmerk13 kolom:' || v_colnr29;
fac.imp_getfield_nr (v_newline, v_fielddelimitor, fac.safe_to_number(v_colnr28), v_kenmerk13);
v_errorhint := 'Inlezen kenmerk14 kolom:' || v_colnr30;
fac.imp_getfield_nr (v_newline, v_fielddelimitor, fac.safe_to_number(v_colnr28), v_kenmerk14);
v_errorhint := 'Inlezen kenmerk15 kolom:' || v_colnr31;
fac.imp_getfield_nr (v_newline, v_fielddelimitor, fac.safe_to_number(v_colnr28), v_kenmerk15);
v_errorhint := 'Inlezen kenmerk16 kolom:' || v_colnr32;
fac.imp_getfield_nr (v_newline, v_fielddelimitor, fac.safe_to_number(v_colnr28), v_kenmerk16);
v_errorhint := 'Inlezen kenmerk17 kolom:' || v_colnr33;
fac.imp_getfield_nr (v_newline, v_fielddelimitor, fac.safe_to_number(v_colnr28), v_kenmerk17);
v_errorhint := 'Inlezen kenmerk18 kolom:' || v_colnr34;
fac.imp_getfield_nr (v_newline, v_fielddelimitor, fac.safe_to_number(v_colnr28), v_kenmerk18);
v_errorhint := 'Inlezen kenmerk19 kolom:' || v_colnr35;
fac.imp_getfield_nr (v_newline, v_fielddelimitor, fac.safe_to_number(v_colnr28), v_kenmerk19);
v_errorhint := 'Inlezen kenmerk20 kolom:' || v_colnr36;
fac.imp_getfield_nr (v_newline, v_fielddelimitor, fac.safe_to_number(v_colnr28), v_kenmerk20);
v_errorhint := 'Inlezen factuurregel artikelcode kolom:' || v_colnr37;
fac.imp_getfield_nr (v_newline, v_fielddelimitor, fac.safe_to_number(v_colnr29), v_artikelcode);
v_errorhint := 'Inlezen factuurregel aantal kolom:' || v_colnr38;
fac.imp_getfield_nr (v_newline, v_fielddelimitor, fac.safe_to_number(v_colnr30), v_factuurregelaantal);
v_errorhint := 'Inlezen factuurregel eenheid kolom:' || v_colnr39;
fac.imp_getfield_nr (v_newline, v_fielddelimitor, fac.safe_to_number(v_colnr31), v_eenheid);
v_errorhint := 'Inlezen factuurregel opdrachtregelid kolom:' || v_colnr40;
fac.imp_getfield_nr (v_newline, v_fielddelimitor, fac.safe_to_number(v_colnr32), v_opdrachtregelid);
IF v_check_dec_sign IS NULL
@@ -14093,7 +14166,19 @@ BEGIN
kenmerk10,
kenmerk11,
kenmerk12,
boekmaand)
kenmerk13,
kenmerk14,
kenmerk15,
kenmerk16,
kenmerk17,
kenmerk18,
kenmerk19,
kenmerk20,
boekmaand,
artikelcode,
factuurregelaantal,
eenheid,
opdrachtregelid)
VALUES ( v_rec.fac_import_key,
v_count,
UPPER (SUBSTR (v_leveranciernr, 1, 20)),
@@ -14123,7 +14208,19 @@ BEGIN
SUBSTR (v_kenmerk10, 1, 255),
SUBSTR (v_kenmerk11, 1, 255),
SUBSTR (v_kenmerk12, 1, 255),
SUBSTR (v_boekmaand, 1, 7)
SUBSTR (v_kenmerk13, 1, 255),
SUBSTR (v_kenmerk14, 1, 255),
SUBSTR (v_kenmerk15, 1, 255),
SUBSTR (v_kenmerk16, 1, 255),
SUBSTR (v_kenmerk17, 1, 255),
SUBSTR (v_kenmerk18, 1, 255),
SUBSTR (v_kenmerk19, 1, 255),
SUBSTR (v_kenmerk20, 1, 255),
SUBSTR (v_boekmaand, 1, 7),
SUBSTR (v_artikelcode, 1, 30),
SUBSTR (v_factuurregelaantal, 1, 11),
SUBSTR (v_eenheid, 1, 30),
SUBSTR (v_opdrachtregelid, 1, 10)
);
v_count := v_count + 1;
END IF;
@@ -14163,6 +14260,10 @@ AS
opmerking,
btw_verlegd,
boekmaand,
artikelcode,
factuurregelaantal,
eenheid,
opdrachtregelid,
fac_import_key,
fac_imp_file_index
FROM fac_imp_factuur
@@ -14194,6 +14295,10 @@ AS
c_kostprijs fin_factuurregel.fin_factuurregel_totaal%TYPE;
c_btwtabel_key fin_btwtabel.fin_btwtabel_key%TYPE;
c_boekmaand fin_factuur.fin_factuur_boekmaand%TYPE;
c_artikelcode fin_factuurregel.fin_factuurregel_code%TYPE;
c_factuurregelaantal fin_factuurregel.fin_factuurregel_aantal%TYPE;
c_eenheid fin_factuurregel.fin_factuurregel_eenheid%TYPE;
c_opdrachtregelid fin_factuurregel.fin_factuurregel_id%TYPE;
c_find BOOLEAN;
c_find_ordernr BOOLEAN;
c_mld_opdr_key NUMBER (10);
@@ -14715,6 +14820,7 @@ AS
c_btw IN NUMBER, c_btw_bedrag IN NUMBER, c_btwtabel_key IN NUMBER,
c_fac_import_key IN NUMBER, c_fac_imp_file_index IN NUMBER,
c_omschrijving IN VARCHAR2, c_locatie IN VARCHAR2, c_btw_verlegd IN NUMBER,
c_artikelcode IN VARCHAR2, c_factuurregelaantal IN NUMBER, c_eenheid IN VARCHAR2, c_opdrachtregelid IN NUMBER,
c_factuur_statuses_key IN OUT NUMBER, c_opmerking IN OUT VARCHAR2, c_succeeded IN OUT BOOLEAN)
IS
c_btwtabelwaarde_key NUMBER(10);
@@ -14763,8 +14869,13 @@ AS
fin_factuurregel_btw,
fin_factuurregel_omschrijving,
fin_factuurregel_referentie,
fin_btwtabelwaarde_key)
VALUES (c_factuur_key, c_factuurregel, l_kostprijs, l_btwbedrag, c_omschrijving, c_locatie, c_btwtabelwaarde_key)
fin_btwtabelwaarde_key,
fin_factuurregel_code,
fin_factuurregel_aantal,
fin_factuurregel_eenheid,
fin_factuurregel_id)
VALUES (c_factuur_key, c_factuurregel, l_kostprijs, l_btwbedrag, c_omschrijving, c_locatie, c_btwtabelwaarde_key,
c_artikelcode, c_factuurregelaantal, c_eenheid, c_opdrachtregelid)
RETURNING fin_factuurregel_key
INTO c_fin_factuurregel_key;
@@ -14843,6 +14954,7 @@ BEGIN
try_insert_factuurregel(c_factuur_key, c_factuurregel, rc.kostprijs,
rc.btw, rc.btw_bedrag, c_btwtabel_key, rc.fac_import_key, rc.fac_imp_file_index,
rc.omschrijving, rc.locatie, c_btw_verlegd,
rc.artikelcode, rc.factuurregelaantal, rc.eenheid, rc.opdrachtregelid,
c_factuur_statuses_key, c_opmerking, c_succeeded);
IF c_succeeded
THEN
@@ -15003,6 +15115,7 @@ BEGIN
try_insert_factuurregel(c_factuur_key, c_factuurregel, rc.kostprijs,
rc.btw, rc.btw_bedrag, c_btwtabel_key, rc.fac_import_key, rc.fac_imp_file_index,
rc.omschrijving, rc.locatie, c_btw_verlegd,
rc.artikelcode, rc.factuurregelaantal, rc.eenheid, rc.opdrachtregelid,
c_factuur_statuses_key, c_opmerking, c_succeeded);
IF c_succeeded
THEN
@@ -15048,7 +15161,11 @@ BEGIN
rc.afleverdatum || ',' ||
rc.docid || ',' ||
rc.omschrijving || ',' ||
rc.opmerking
rc.opmerking || ',' ||
rc.artikelcode || ',' ||
rc.factuurregelaantal || ',' ||
rc.eenheid || ',' ||
rc.opdrachtregelid
);
END IF;
END IF;

View File

@@ -76,7 +76,6 @@ DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'impAllowedExt'
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'flexExtensionFilter' , 'string' , NULL , 'All files can be uploaded. "PDF DOC TIFF XLS" would filter')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'flexFilesOrdering' , 'number' , '0' , 'Ordering for list of flexfilenames {0=ascending | 1=descending}')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'MaxDownloadSize' , 'number' , '-1' , 'Should match IIS Metabase AspBufferingLimit for download warning (Future use)')
DEFINE_SETTING('FAC', 0001, 'WEB_FACFAC', 'flex_X_is_URL' , 'number' , '1' , '0=browse-knop 1=gewoon input field. Deprecated 2018.1')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'fac_tabframes' , 'number' , '0' , 'Turn all subframes into tabs')
DEFINE_SETTING('FAC', 0001, 'WEB_FACTAB', 'fac_accept_terms' , 'number' , '0' , '0 (default) no accept, 1=must accept L("lcl_terms_filename")')
DEFINE_SETTING('FAC', 0001, 'WEB_PRSSYS', 'menu_start_open' , 'boolean' , 'true' , 'Menu is open by default')
@@ -278,7 +277,7 @@ DEFINE_SETTING('CAD', 0001, 'WEB_PRSSYS', 'fg_publiclayers'
DEFINE_SETTING('ALG', 0001, 'WEB_FACTAB', 'alg_ruimtenr_aut_use' , 'number' , '0' , 'WEB_ALGUSE may change alg_ruimte_nr/omschrijving {0=WEB_ALGMAN required | 1=WEB_ALGUSE allowed too}')
DEFINE_SETTING('ALG', 0001, 'WEB_FACFAC', 'alg_ruimte_comm_opp_key' , 'number' , '-1' , 'Key to be used for commercial ruimte oppervlakte')
DEFINE_SETTING('ALG', 0001, 'WEB_FACFAC', 'alg_terrein_comm_opp_key' , 'number' , '-1' , 'Key to be used for commercial terrein oppervlakte')
DEFINE_SETTING('ALG', 0001, 'WEB_PRSSYS', 'alg_fg_remote_maps' , 'string' , '' , 'URL. if not empty use Google Maps for locations en buildings in FACILITOR Graphics')
DEFINE_SETTING('ALG', 0001, 'WEB_PRSSYS', 'alg_fg_remote_maps' , 'string' , '' , 'API Key. if not empty use Google Maps for locations en buildings in FACILITOR Graphics')
DEFINE_SETTING('BES', 0001, 'WEB_FACFAC', 'bes_image_path' , 'string' , NULL , 'path to folder storing bes_srtdeel pictures')
DEFINE_SETTING('BES', 0001, 'WEB_PRSSYS', 'bes_show_RFO_price' , 'number' , '2' , 'show prices {0=no support | 1=FO support | 2=FE&FO support}')
DEFINE_SETTING('BES', 0001, 'WEB_PRSSYS', 'bes_datum_limiet' , 'number' , '90' , 'max days in the future')
@@ -338,6 +337,7 @@ DEFINE_SETTING('FIN', 0001, 'WEB_PRSSYS', 'fin_factuur_flags'
DEFINE_SETTING('FIN', 0001, 'WEB_PRSSYS', 'fin_match_lowerlimit' , 'number' , '0' , 'Check lowerlimit also for matching {0=Only upperlimit (invoice<order+tolerance | 1=Upper and lowerlimit (order-tolerance<invoice<order+tolerance)}')
DEFINE_SETTING('FIN', 0001, 'WEB_PRSSYS', 'fin_use_verkoopfacturen' , 'number' , '0' , 'Provide direct access to generated salesinvoices (if any) from contract/order/reservation details {0=no | 1=yes}')
DEFINE_SETTING('FIN', 0001, 'WEB_PRSSYS', 'fin_factuur_verlegdmode' , 'number' , '0' , 'Use and validation of field fin_factuur_gbedrag: {0=field invisible | &1=visible and enterable | &2=required if invoicelines has a shifted VAT-value | &4=all invoicelines must have shifted VAT-value or must have standard VAT values (=not shifted)}')
DEFINE_SETTING('FIN', 0001, 'WEB_PRSSYS', 'fin_splitsen_omschr' , 'number' , '0' , 'Split up the discription of the invoice lines? {0=no (default) | 1=yes}')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_processing_group' , 'boolean' , 'false' , 'Gebruik MLD behandel-vakgroep')
DEFINE_SETTING('MLD', 0001, 'WEB_PRSSYS', 'mld_processing_group_all' , 'number' , '1' , 'Een behandelgroep mag gekozen worden uit dezelfde srtdiscipline {0} of uit alle srtdiscipline {1=default})')
DEFINE_SETTING('MLD', 0001, 'WEB_FACFAC', 'mld_meldbron_key' , 'number' , '5' , 'MLD_MELDBRON_KEY of meldbron ''intranet''')
@@ -486,7 +486,7 @@ DEFINE_SETTING('PRJ', 0001, 'WEB_PRSSYS', 'prj_fg_paperColor'
DEFINE_SETTING('PRJ', 0001, 'WEB_FACFAC', 'fg_prj_syncruimteview' , 'string' , 'cad_v_sync_prj_ruimte' , NULL)
DEFINE_SETTING('PRJ', 0001, 'WEB_PRSSYS', 'prj_discipline_key' , 'number' , '-1' , 'mld_discipline_key of discipline for moves')
DEFINE_SETTING('INS', 0001, 'WEB_FACFAC', 'ins_image_path' , 'string' , NULL , 'path to folder storing ins_srtdeel pictures')
DEFINE_SETTING('INS', 0001, 'WEB_PRSSYS', 'ins_fg_remote_maps' , 'string' , '' , 'URL. if not empty use Google Maps instead of FG if x,y coordinates of an object are available')
DEFINE_SETTING('INS', 0001, 'WEB_PRSSYS', 'ins_fg_remote_maps' , 'string' , '' , 'API Key. if not empty use Google Maps instead of FG if x,y coordinates of an object are available')
DEFINE_SETTING('INS', 0001, 'WEB_PRSSYS', 'ins_inspect_soon_days' , 'number' , '30' , 'Days margin for needs inspection ''soon''')
DEFINE_SETTING('INS', 0001, 'WEB_PRSSYS', 'ins_can_edit_own_objects' , 'number' , '0' , 'Owner can edit objects {0|1, default 0}')
DEFINE_SETTING('INS', 0001, 'WEB_FACTAB', 'inspect_enabled' , 'number' , '0' , 'Is FACILITOR Inspect available {0 | 1} (future use)')

View File

@@ -1471,11 +1471,23 @@ CREATE_TABLE(fac_imp_factuur, 0) /* Standaard tabel voor de factuur-import */
kenmerk10 VARCHAR2(250),
kenmerk11 VARCHAR2(250),
kenmerk12 VARCHAR2(250),
kenmerk13 VARCHAR2(250),
kenmerk14 VARCHAR2(250),
kenmerk15 VARCHAR2(250),
kenmerk16 VARCHAR2(250),
kenmerk17 VARCHAR2(250),
kenmerk18 VARCHAR2(250),
kenmerk19 VARCHAR2(250),
kenmerk20 VARCHAR2(250),
fac_import_key NUMBER(10) CONSTRAINT fac_r_fac_imp_factuur1 REFERENCES fac_import(fac_import_key) ON DELETE CASCADE,
fac_imp_file_index NUMBER(10),
fin_factuur_key NUMBER(10), -- geen importkolom, temp
fin_factuurregel_key NUMBER(10), -- geen importkolom, temp
boekmaand VARCHAR2(7)
boekmaand VARCHAR2(7),
artikelcode VARCHAR2(30),
factuurregelaantal NUMBER(8,2),
eenheid VARCHAR2(30),
opdrachtregelid NUMBER(10)
);
CREATE_TABLE(fac_imp_menu, 0)

View File

@@ -154,6 +154,14 @@ CREATE_TABLE(fin_factuurregel,0)
, prs_kostensoort_key
NUMBER(10)
CONSTRAINT fin_r_fin_factuur5 REFERENCES prs_kostensoort(prs_kostensoort_key)
, fin_factuurregel_code
VARCHAR2(30)
, fin_factuurregel_aantal
NUMBER(8,2)
, fin_factuurregel_eenheid
VARCHAR2(30)
, fin_factuurregel_id
NUMBER(10)
);

View File

@@ -219,6 +219,43 @@ ALTER TABLE res_srtactiviteit
ALTER TABLE res_srtactiviteit
ADD CONSTRAINT res_c_srtactiviteit_anonym CHECK(res_srtactiviteit_anonym IN (0,1,2));
/////////////////////////////////////////////////////////////////////////////////////////// XXXX#12345
ALTER TABLE fin_factuurregel
ADD (fin_factuurregel_code
VARCHAR2(30),
fin_factuurregel_aantal
NUMBER(8,2),
fin_factuurregel_eenheid
VARCHAR2(30),
fin_factuurregel_id
NUMBER(10));
ALTER TABLE fac_imp_factuur
ADD (kenmerk13
VARCHAR2(250),
kenmerk14
VARCHAR2(250),
kenmerk15
VARCHAR2(250),
kenmerk16
VARCHAR2(250),
kenmerk17
VARCHAR2(250),
kenmerk18
VARCHAR2(250),
kenmerk19
VARCHAR2(250),
kenmerk20
VARCHAR2(250),
artikelcode
VARCHAR2(30),
factuurregelaantal
NUMBER(8,2),
eenheid
VARCHAR2(30),
opdrachtregelid
NUMBER(10));
/////////////////////////////////////////////////////////////////////////////////////////// XXXX#12345
///////////////////////////////////////////////////////////////////////////////////////////