Files
Database/FIN/FIN_TAB.SRC
Alex Tiehuis 32547f87c7 FCLT#57650 ##show## expressie via een eigen veld
svn path=/Database/trunk/; revision=42822
2019-06-04 09:23:09 +00:00

357 lines
13 KiB
Plaintext

#ifdef FIN
/* $Revision$
* $Id$
*/
CREATE_TABLE(fin_btwtabel, 0)
(
fin_btwtabel_key
NUMBER(10)
CONSTRAINT fin_k_btwtabel_key PRIMARY KEY,
fin_btwtabel_omschrijving
VARCHAR(30)
NOT_NULL(fin_btwtabel_omschrijving, fin_c_btwtabel_omschr),
fin_btwtabel_default
NUMBER(1),
fin_btwtabel_aanmaak
DATE
DEFAULT SYSDATE,
fin_btwtabel_verwijder
DATE
DEFAULT NULLDATUM
);
CREATE_TABLE(fin_btwtabelwaarde, 0)
(
fin_btwtabelwaarde_key
NUMBER(10)
CONSTRAINT fin_k_btwtabelwaarde_key PRIMARY KEY,
fin_btwtabel_key
NUMBER(10)
CONSTRAINT fin_r_btwtabel_key1 REFERENCES fin_btwtabel(fin_btwtabel_key) ON DELETE CASCADE
NOT_NULL(fin_btwtabel_key, fin_c_btwtabel_key1),
fin_btwtabelwaarde_code
VARCHAR(10)
NOT_NULL(fin_btwtabelwaarde_code, fin_c_btwtabelwaarde_code),
fin_btwtabelwaarde_oms
VARCHAR(30),
fin_btwtabelwaarde_perc
NUMBER(5,3)
NOT_NULL(fin_btwtabelwaarde_perc, fin_c_btwtabelwaarde_perc),
fin_btwtabelwaarde_verlegd
NUMBER(1),
fin_btwtabelwaarde_van -- yet unused
DATE,
fin_btwtabelwaarde_tot -- yet unused
DATE,
fin_btwtabelwaarde_aanmaak
DATE
DEFAULT SYSDATE,
fin_btwtabelwaarde_verwijder
DATE
DEFAULT NULLDATUM,
CONSTRAINT fin_u_fin_btwtabelwaarde UNIQUE(fin_btwtabel_key, fin_btwtabelwaarde_code, fin_btwtabelwaarde_verwijder)
);
ALTER TABLE prs_kostensoort ADD fin_btwtabelwaarde_key NUMBER(10) CONSTRAINT prs_r_fin_btwtabelwaarde_key REFERENCES fin_btwtabelwaarde (fin_btwtabelwaarde_key);
ALTER TABLE prs_bedrijf
ADD fin_btwtabel_key NUMBER(10)
CONSTRAINT prs_r_fin_btwtabel_key1 REFERENCES fin_btwtabel(fin_btwtabel_key);
ALTER TABLE mld_opdr_materiaal
ADD fin_btwtabelwaarde_key NUMBER(10)
CONSTRAINT mld_r_fin_btwtabelwaarde1 REFERENCES fin_btwtabelwaarde(fin_btwtabelwaarde_key);
// FSN#37318
ALTER TABLE ins_srtcontrole
ADD fin_btwtabelwaarde_key NUMBER(10)
CONSTRAINT ins_r_fin_btwtabelwaarde1 REFERENCES fin_btwtabelwaarde(fin_btwtabelwaarde_key);
ALTER TABLE prs_bedrijf_bedrijf
ADD fin_btwtabelwaarde_key NUMBER(10) -- default btw
CONSTRAINT prs_r_fin_btwtabelwaarde_key2 REFERENCES fin_btwtabelwaarde(fin_btwtabelwaarde_key);
CREATE_TABLE(fin_factuur,0)
(
fin_factuur_key
NUMBER(10)
CONSTRAINT fin_k_fin_factuur PRIMARY KEY
, fin_factuur_nr
VARCHAR2(30)
NOT_NULL(fin_factuur_nr, fin_c_fin_factuur0)
, fin_factuur_totaal
NUMBER(12,2)
, fin_factuur_totaal_btw
NUMBER (14,4)
NOT_NULL(fin_factuur_totaal_btw, fin_c_fin_factuur1)
, fin_factuur_gbedrag
NUMBER(14,2)
, mld_opdr_key
NUMBER(10)
CONSTRAINT fin_r_fin_factuur1 REFERENCES mld_opdr(mld_opdr_key)
, cnt_contract_key
NUMBER(10)
CONSTRAINT fin_r_fin_factuur2 REFERENCES cnt_contract(cnt_contract_key)
, bes_bestelopdr_key
NUMBER(10)
CONSTRAINT fin_r_fin_factuur3 REFERENCES bes_bestelopdr(bes_bestelopdr_key)
, prs_perslid_key_user
NUMBER(10)
CONSTRAINT fin_r_fin_factuur4 REFERENCES prs_perslid(prs_perslid_key)
, prs_perslid_key_goedkeur
NUMBER(10)
CONSTRAINT fin_r_fin_factuur6 REFERENCES prs_perslid(prs_perslid_key)
, fin_factuur_datum
DATE
NOT_NULL(fin_factuur_datum, fin_c_fin_factuur3)
, fin_factuur_advies
DATE
, fin_factuur_boekmaand
VARCHAR2(7)
, fin_factuur_debiteur_nr
VARCHAR2(30)
, prs_kostensoort_key
NUMBER(10)
CONSTRAINT fin_r_fin_factuur7 REFERENCES prs_kostensoort(prs_kostensoort_key)
, fin_factuur_opmerking
VARCHAR2(250)
, fin_factuur_statuses_key
NUMBER(10)
CONSTRAINT fin_c_fin_status1 CHECK(fin_factuur_statuses_key IN (1,2,3,5,6,7))
NOT_NULL(fin_factuur_statuses_key, fin_c_fin_factuur5)
, fin_factuur_bron
NUMBER(3)
DEFAULT 0
NOT NULL
, fin_factuur_verwijder
DATE
, fin_factuur_flag
NUMBER(1)
, cnt_contract_plaats_key
NUMBER(10)
CONSTRAINT fin_r_fin_factuur8 REFERENCES cnt_contract_plaats(cnt_contract_plaats_key)
);
CREATE_TABLE(fin_factuurregel,0)
(
fin_factuurregel_key
NUMBER(10)
CONSTRAINT fin_k_fin_regel PRIMARY KEY
, fin_factuur_key
NUMBER(10)
CONSTRAINT fin_r_fin_factuurregel1 REFERENCES fin_factuur(fin_factuur_key)
NOT_NULL(fin_factuur_key, fin_c_fin_factuurregel1)
, fin_factuurregel_nr
NUMBER
, fin_factuurregel_totaal
NUMBER(12,2)
NOT_NULL(fin_factuurregel_totaal, fin_c_fin_factuurregel2)
, fin_factuurregel_btw
NUMBER(14,4)
NOT_NULL(fin_factuurregel_btw, fin_c_fin_factuurregel3)
, fin_factuurregel_omschrijving
VARCHAR2(250)
, fin_factuurregel_referentie
VARCHAR2(30)
, fin_btwtabelwaarde_key
NUMBER(10)
CONSTRAINT fin_r_btwtabelwaarde_key1 REFERENCES fin_btwtabelwaarde(fin_btwtabelwaarde_key)
, 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)
);
/* flexkenmerken zijn hier isomorf aan alg en prs, alleen hebben we geen niveau
en gebruiken we de juiste naam voor de waarden (niet: fin_kenmerklink)
*/
CREATE_TABLE(fin_kenmerk,0)
(fin_kenmerk_key
NUMBER(10)
CONSTRAINT fin_k_fin_kenmerk_key PRIMARY KEY
,fin_kenmerk_volgnr
NUMBER(3)
NOT NULL
,fin_kenmerk_omschrijving
VARCHAR2(50)
,fin_kenmerk_upper
VARCHAR2(50)
,fin_kenmerk_type -- Factuur of factuurRegel
VARCHAR2(1)
CONSTRAINT fin_c_fin_kenmerk_type CHECK (fin_kenmerk_type is not null and (fin_kenmerk_type IN( 'F', 'R')))
,fin_kenmerk_hint
VARCHAR2(255)
,fin_kenmerk_default
VARCHAR2(4000)
,fin_kenmerk_show_expr
VARCHAR2(4000)
,fin_kenmerk_dimensie
VARCHAR2(10)
,fin_kenmerk_kenmerktype
VARCHAR2(1)
CONSTRAINT fin_c_fin_kenmerk_type1 CHECK(fin_kenmerk_kenmerktype IN ('C','N','D','T','R','X','L','Q','F','M','E','S','l','B','V'))
,fin_kenmerk_systeem
NUMBER(2)
,fin_kenmerk_toonbaar
NUMBER(1)
,fin_kenmerk_uniek
NUMBER(1)
,fin_kenmerk_regexp
VARCHAR2(255)
,fin_kenmerk_verplicht
NUMBER(1)
,fin_kenmerk_groep
NUMBER(1)
DEFAULT 0 NOT NULL
,fin_kenmerk_lengte
NUMBER(4)
,fin_kenmerk_dec
NUMBER(2)
,fin_kenmerk_nmin
NUMBER(10)
,fin_kenmerk_nmax
NUMBER(10)
,fac_kenmerkdomein_key
NUMBER(10)
CONSTRAINT fin_r_kenmerkdomein_key1 REFERENCES fac_kenmerkdomein(fac_kenmerkdomein_key)
,fin_kenmerk_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(fin_kenmerk_aanmaak, fin_c_fin_kenmerk_aanmaak)
,fin_kenmerk_verwijder
DATE
DEFAULT NULLDATUM
);
CREATE_TABLE(fin_kenmerkfactuur,0)
(fin_kenmerkfactuur_key
NUMBER(10)
CONSTRAINT fin_k_fin_kenmerkfactuur_key PRIMARY KEY
,fin_factuur_key
NUMBER(10)
CONSTRAINT fin_r_fin_factuur_key REFERENCES fin_factuur(fin_factuur_key)
,fin_kenmerk_key
NUMBER(10)
,fin_kenmerkfactuur_waarde
VARCHAR2(4000)
,fin_kenmerkfactuur_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(fin_kenmerkfactuur_aanmaak, fin_c_fin_kenmerkfactuur_aanm)
,fin_kenmerkfactuur_verwijder
DATE
DEFAULT NULLDATUM,
CONSTRAINT fin_u_fin_kenmerkfactuur_key UNIQUE(fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_verwijder)
);
CREATE_TABLE(fin_kenmerkfactregel,0)
(fin_kenmerkfactregel_key
NUMBER(10)
CONSTRAINT fin_k_kenmerkfactregel_key PRIMARY KEY
,fin_factuurregel_key
NUMBER(10)
CONSTRAINT fin_r_fin_factuurregel_key REFERENCES fin_factuurregel(fin_factuurregel_key)
,fin_kenmerk_key
NUMBER(10)
CONSTRAINT fin_r_fin_kenmerk_key2 REFERENCES fin_kenmerk(fin_kenmerk_key)
,fin_kenmerkfactregel_waarde
VARCHAR2(4000)
,fin_kenmerkfactregel_aanmaak
DATE
DEFAULT SYSDATE
NOT_NULL(fin_kenmerkfactregel_aanmaak, fin_c_kenmerkfactregel_aanm)
,fin_kenmerkfactregel_verwijder
DATE
DEFAULT NULLDATUM,
CONSTRAINT fin_u_kenmerkfactregel_key UNIQUE(fin_factuurregel_key, fin_kenmerk_key, fin_kenmerkfactregel_verwijder)
);
CREATE_TABLE(fin_factuur_note, 0)
(
fin_factuur_note_key NUMBER (10) PRIMARY KEY,
fin_factuur_key NUMBER (10) NOT NULL REFERENCES fin_factuur (fin_factuur_key) ON DELETE CASCADE,
fin_factuur_note_aanmaak DATE DEFAULT SYSDATE,
prs_perslid_key NUMBER (10) REFERENCES prs_perslid (prs_perslid_key) ON DELETE SET NULL,
fin_factuur_note_omschrijving VARCHAR2 (4000 CHAR)
);
// Met name om er een model (scaffolding) op te kunnen baseren is een kop-tabel erg wenselijk.
CREATE_TABLE(fin_verkoopfactuurkop, 0)
(
fin_verkoopfactuurkop_key NUMBER(10) PRIMARY KEY,
fin_verkoopfactuurkop_aanmaak DATE DEFAULT SYSDATE,
fin_verkoopfactuurkop_id VARCHAR2(30), /* het (externe) factuurnummer, vaak wel numeriek */
CONSTRAINT fin_u_verkoopfactuurkop_id UNIQUE(fin_verkoopfactuurkop_id)
);
// Een basistabel waarin verkoopfactuurREGELS kunnen worden bewaard als een soort hardcopy
// Deze tabel wordt (vooralsnog) niet door de core-programmatuur gevuld maar is wel een
// uniforme opslag voor latere referentie; vervangt de diverse cust-tabellen die ontstonden
// Voor verschillende waarden (van bv kostenplaats of btwpercentage) zijn er verschillende regels
// Stamgegevens kunnen later wijzigen en worden hier bevroren, overige gegevens kunnen worden
// teruggevonden via de bijbehorende referentie
// Tevens zijn er plenty extra kolommen voor gebruik naar eigen inzicht
// LET OP: dit is bewust de rand van ons datamodel, hierin verder gaan opent de beerput van de financiele wereld
// waar we niet vrijwillig in willen vallen.
// LET OP: de verwijzing fin_verkoopfactuurkop_key is optioneel.
// Indien een cust dit via de GUI wil gebruiken is deze vereist.
CREATE_TABLE(fin_verkoopfactuur, 0)
(
fin_verkoopfactuur_key NUMBER(10) PRIMARY KEY,
fin_verkoopfactuurkop_key NUMBER(10) REFERENCES fin_verkoopfactuurkop(fin_verkoopfactuurkop_key) ON DELETE CASCADE,
fin_verkoopfactuur_aanmaak DATE DEFAULT SYSDATE,
fin_verkoopfactuur_id VARCHAR2(30), /* het (externe) factuurnummer, vaak wel numeriek */
fin_verkoopfactuur_datum DATE, /* de factuurdatum */
fin_verkoopfactuur_omschr VARCHAR2(1000),
fin_verkoopfactuur_xmlnode VARCHAR2(60), /* type van waarover deze factuur gaat */
fin_verkoopfactuur_refkey NUMBER(10), /* key van de bijbehorende entiteit van type xmlnode */
prs_kostenplaats_key NUMBER(10),
prs_kostenplaats_nr VARCHAR2(30),
prs_kostenplaats_omschrijving VARCHAR2(60),
prs_kostenplaatsgrp_oms VARCHAR2(60),
prs_kostensoort_oms VARCHAR2(60),
prs_kostensoort_opmerking VARCHAR2(255),
prs_kostensoort_refcode VARCHAR2(60),
prs_bedrijf_key NUMBER(10),
prs_debiteur_naam VARCHAR2(60), /* kan prs_bedrijf_naam zijn maar hoeft niet */
prs_kostensoortgrp_oms VARCHAR2(60),
fin_verkoopfactuur_bedrag NUMBER(12,2),
fin_verkoopfactuur_btw NUMBER(12,2),
fin_btwtabelwaarde_code VARCHAR2(10),
fin_btwtabelwaarde_oms VARCHAR2(30),
fin_btwtabelwaarde_perc NUMBER(5,3),
fin_btwtabelwaarde_verlegd NUMBER(1),
fin_verkoopfactuur_maand VARCHAR2(6), /* boekmaand, bv 201409 */
fin_verkoopfactuur_n1 NUMBER(14,4),
fin_verkoopfactuur_n2 NUMBER(14,4),
fin_verkoopfactuur_n3 NUMBER(14,4),
fin_verkoopfactuur_n4 NUMBER(14,4),
fin_verkoopfactuur_n5 NUMBER(14,4),
fin_verkoopfactuur_c1 VARCHAR2(200),
fin_verkoopfactuur_c2 VARCHAR2(200),
fin_verkoopfactuur_c3 VARCHAR2(200),
fin_verkoopfactuur_c4 VARCHAR2(200),
fin_verkoopfactuur_c5 VARCHAR2(200),
fin_verkoopfactuur_c6 VARCHAR2(500),
fin_verkoopfactuur_c7 VARCHAR2(1000),
fin_verkoopfactuur_c8 VARCHAR2(4000),
fin_verkoopfactuur_d1 DATE,
fin_verkoopfactuur_d2 DATE,
fin_verkoopfactuur_d3 DATE,
fin_verkoopfactuur_d4 DATE,
fin_verkoopfactuur_d5 DATE
);
REGISTERONCE('$Id$')
#endif // FIN