sql schema ij
authorkilian (ksmachome) <ksaffran@dks.lu>
Thu, 21 Nov 2019 13:13:47 +0000 (14:13 +0100)
committerkilian (ksmachome) <ksaffran@dks.lu>
Thu, 21 Nov 2019 13:13:47 +0000 (14:13 +0100)
dev/db/buchhaltung.schema.sql [new file with mode: 0644]

diff --git a/dev/db/buchhaltung.schema.sql b/dev/db/buchhaltung.schema.sql
new file mode 100644 (file)
index 0000000..5806387
--- /dev/null
@@ -0,0 +1,578 @@
+CREATE TABLE sqlite_sequence(name,seq);
+CREATE TABLE IF NOT EXISTS "zzold_banks" (
+        bank_id integer not null,
+        bank_country Code TEXT,
+        bank_name TEXT,
+        bank_bic TEXT
+);
+CREATE TABLE IF NOT EXISTS "zzold_product_codes" (
+        product_code_id integer not null,
+        product_name TEXT,
+        product_description TEXT,
+        product__net_price numeric
+);
+CREATE TABLE IF NOT EXISTS "zzold_invoice_type" (
+        type_id intger integer not null,
+        type_sign text,
+        type_name text,
+        type_print text
+);
+CREATE TABLE IF NOT EXISTS "zzold_invoice_status" (
+        status_id integer not null,
+        status_text text
+);
+CREATE TABLE IF NOT EXISTS "zzold_reminder_definition" (
+        level integer not null,
+        days integer,
+        value numeric
+);
+CREATE TABLE IF NOT EXISTS "zzold_positions"
+    (
+        uuid TEXT,
+        invoiceuuid TEXT,
+        productuuid TEXT,
+        quantity INTEGER,
+        unitamount NUMERIC,
+        unittype TEXT,
+        description TEXT,
+        taxamount NUMERIC,
+        moddate DATETIME,
+        taxpercent NUMERIC,
+        netamount NUMERIC,
+        totalamount NUMERIC
+    );
+CREATE TABLE IF NOT EXISTS "zzold_invoices"
+    (
+        uuid TEXT,
+        invoicedate DATE,
+        type TEXT,
+        refnumber TEXT,
+        ordertext TEXT,
+        recipientsendername TEXT,
+        recepientsendername2 TEXT,
+        address TEXT,
+        address2 TEXT,
+        zip TEXT,
+        city TEXT,
+        country TEXT,
+        reftext TEXT,
+        status TEXT,
+        statusdate DATE,
+        invoicenote TEXT,
+        payedamount NUMERIC,
+        remindercount INTEGER,
+        reportlanguage TEXT,
+        netamount NUMERIC,
+        taxamount NUMERIC,
+        totalamount NUMERIC,
+        id_old INTEGER,
+        reminderlimitdate DATE,
+        direction TEXT
+    );
+CREATE TABLE IF NOT EXISTS "zzold_addresses"
+    (
+        uuid TEXT,
+        name TEXT,
+        address TEXT,
+        zip TEXT,
+        city TEXT,
+        country TEXT,
+        invoice_language TEXT,
+        name2 TEXT,
+        address2 TEXT,
+        reportlanguage TEXT
+    , email TEXT, phone TEXT, vatnumber TEXT);
+CREATE TABLE IF NOT EXISTS "zzold_countries" (iso TEXT, "de" TEXT, "en" TEXT, "fr" TEXT);
+CREATE TABLE IF NOT EXISTS "zzold_vatpercents" (country TEXT, desciption TEXT, percents float);
+CREATE TABLE IF NOT EXISTS "zzold_languages" (
+"iso" TEXT,
+"de" TEXT,
+"fr" TEXT,
+"en" TEXT
+);
+CREATE TABLE IF NOT EXISTS "zzold_products"
+    (
+        "uuid" TEXT NOT NULL,
+        "name" TEXT,
+        "description" TEXT,
+        "unittype" TEXT,
+        "unitamount" NUMERIC
+    );
+CREATE TABLE IF NOT EXISTS "zzold_offers"(
+        "uuid" TEXT NOT NULL,
+        "addressuuid" TEXT,
+        "offerdate" DATE,
+        "reccurence" TEXT,
+        "expirationdate" DATE,
+        "name" TEXT,
+        "description" TEXT,
+        "referencenumber" TEXT,
+        "referencetext" TEXT,
+        "offernote" TEXT,
+        "status" TEXT,
+        "statusdate" DATE
+        "offerlanguage" TEXT,
+        "direction" TEXT
+);
+CREATE TABLE IF NOT EXISTS "zzold_contracts"(
+        "uuid" TEXT NOT NULL,
+        "addressuuid" TEXT,
+        "contractdate" DATE,
+        "recurrence" TEXT,
+        "expirationdate" DATE,
+        "name" TEXT,
+        "description" TEXT,
+        "referencenumber" TEXT,
+        "referencetext" TEXT,
+        "contractnote" TEXT,
+        "status" TEXT,
+        "statusdate" DATE
+        "contractlanguage" TEXT,
+        "direction" TEXT
+);
+CREATE TABLE IF NOT EXISTS "zzold_offerpositions" (
+        "uuid" TEXT NOT NULL,
+        "productuuid" TEXT,
+        "quantity" INTEGER
+);
+CREATE TABLE IF NOT EXISTS "zzold_contractpositions" (
+        "uuid" TEXT NOT NULL,
+        "productuuid" TEXT,
+        "quantity" INTEGER
+);
+CREATE TABLE IF NOT EXISTS "zzold_tblprodukte" (\r
+       "procuctuuid" TEXT,\r
+       "id" TEXT,\r
+       "name" TEXT,\r
+       "typ" TEXT,\r
+       "interne_beschreibung" TEXT,\r
+       "nettoeinheitspreis" TEXT,\r
+       "einheit" TEXT,\r
+       "prozentmehrwertsteuer" TEXT,\r
+       "bruttoeinheitspreis" TEXT,\r
+       PRIMARY KEY ('id')\r
+);
+CREATE TABLE IF NOT EXISTS "zzold_tblkonten" (\r
+       "address" TEXT,\r
+       "bankaccount" TEXT,\r
+       "bic" TEXT,\r
+       "calc_empfaenger" TEXT,\r
+       "calc_sender" TEXT,\r
+       "city" TEXT,\r
+       "clientnumber" TEXT,\r
+       "company" TEXT,\r
+       "country" TEXT,\r
+       "email" TEXT,\r
+       "id" TEXT,\r
+       "language" TEXT,\r
+       "mobile" TEXT,\r
+       "phone" TEXT,\r
+       "prename" TEXT,\r
+       "surname" TEXT,\r
+       "title" TEXT,\r
+       "type" TEXT,\r
+       "vatid" TEXT,\r
+       "zip" TEXT,\r
+       PRIMARY KEY ('id')\r
+);
+CREATE TABLE IF NOT EXISTS "zzold_tbljournal" (\r
+       "betragbezahlt" TEXT,\r
+       "betragbrutto" TEXT,\r
+       "betraggeplantnetto" TEXT,\r
+       "bussinessjahr" TEXT,\r
+       "bussinessquartal" TEXT,\r
+       "calc_jahr" TEXT,\r
+       "calc_quartal" TEXT,\r
+       "calc_rechnungbrutto" TEXT,\r
+       "calc_rechnungmwst" TEXT,\r
+       "calc_rechnungnetto" TEXT,\r
+       "calc_rechnungnettomitrabatt" TEXT,\r
+       "calc_rechnungrabatt" TEXT,\r
+       "calc_referenzrechnung" TEXT,\r
+       "created" TEXT,\r
+       "datum" TEXT,\r
+       "datumfaelligkeit" TEXT,\r
+       "datumstatus" TEXT,\r
+       "emailadresse" TEXT,\r
+       "emailbetreff" TEXT,\r
+       "emailnachricht" TEXT,\r
+       "empfaengeradresse" TEXT,\r
+       "empfaengerland" TEXT,\r
+       "empfaengername" TEXT,\r
+       "empfaengerort" TEXT,\r
+       "empfaengerplz" TEXT,\r
+       "empfaengerustid" TEXT,\r
+       "foreignaccount" TEXT,\r
+       "id" TEXT,\r
+       "id_angebot" TEXT,\r
+       "id_emailvorlage" TEXT,\r
+       "id_empfaenger" TEXT,\r
+       "id_sender" TEXT,\r
+       "kontengruppe" TEXT,\r
+       "kontoauszug" TEXT,\r
+       "last_editor" TEXT,\r
+       "modified" TEXT,\r
+       "nachwort" TEXT,\r
+       "nomoreuse_prozentmehrwertsteuer" TEXT,\r
+       "receipientident" TEXT,\r
+       "referenz" TEXT,\r
+       "remindernumber" TEXT,\r
+       "remindersenddates" TEXT,\r
+       "senderadresse" TEXT,\r
+       "senderland" TEXT,\r
+       "sendername" TEXT,\r
+       "senderort" TEXT,\r
+       "senderrplz" TEXT,\r
+       "senderustid" TEXT,\r
+       "status" TEXT,\r
+       "transactionident" TEXT,\r
+       "typ" TEXT,\r
+       "vorlage" TEXT,\r
+       "vorwort" TEXT,\r
+       PRIMARY KEY ('id')\r
+);
+CREATE TABLE IF NOT EXISTS "zzold_tblausgaben" (\r
+       "id" TEXT,\r
+       "company" TEXT,\r
+       "address" TEXT,\r
+       "zip" TEXT,\r
+       "city" TEXT,\r
+       "country" TEXT,\r
+       "netamount" TEXT,\r
+       "vatamount" TEXT,\r
+       "totalamount" TEXT,\r
+       "payedamount" TEXT,\r
+       "invoicedate" TEXT,\r
+       "reminderdate" TEXT,\r
+       "payementtype" TEXT,\r
+       "status" TEXT,\r
+       "statusdate" TEXT,\r
+       "reference" TEXT,\r
+       "statementreference" TEXT,\r
+       "note" TEXT,\r
+       "moddate" TEXT,\r
+       "calcinvoiceyear" TEXT,\r
+       "calcinvoicequarter" TEXT,\r
+       "geschaeftsjahr" TEXT,\r
+       PRIMARY KEY ('id')\r
+);
+CREATE TABLE IF NOT EXISTS "zzold_rechnungslabels" (\r
+       "addressheading" TEXT,\r
+       "clientnumber" TEXT,\r
+       "clientvatnumber" TEXT,\r
+       "commoninvoicenote" TEXT,\r
+       "date" TEXT,\r
+       "discount" TEXT,\r
+       "heading" TEXT,\r
+       "headpositionexplication" TEXT,\r
+       "headpositionnetamount" TEXT,\r
+       "headpositionquantity" TEXT,\r
+       "headpositiontaxpercent" TEXT,\r
+       "headpositionunit" TEXT,\r
+       "headpositionunitamount" TEXT,\r
+       "id" TEXT,\r
+       "letterfooter" TEXT,\r
+       "letterheader" TEXT,\r
+       "name" TEXT,\r
+       "netsubtotal" TEXT,\r
+       "refnumber" TEXT,\r
+       "refordernumber" TEXT,\r
+       "reftext" TEXT,\r
+       "reminderdate" TEXT,\r
+       "shortaddressbar" TEXT,\r
+       "sprache" TEXT,\r
+       "totaldiscountamount" TEXT,\r
+       "totalnetamount" TEXT,\r
+       "totalsum" TEXT,\r
+       "totaltaxamount" TEXT,\r
+       "typ" TEXT,\r
+       PRIMARY KEY ('id')\r
+);
+CREATE TABLE IF NOT EXISTS "zzold_accounts_old" (\r
+       "id" TEXT,\r
+       "company" TEXT,\r
+       "title" TEXT,\r
+       "prename" TEXT,\r
+       "surname" TEXT,\r
+       "address" TEXT,\r
+       "zip" TEXT,\r
+       "city" TEXT,\r
+       "country" TEXT,\r
+       "email" TEXT,\r
+       "phone" TEXT,\r
+       "mobile" TEXT,\r
+       "ident" TEXT,\r
+       "vatid" TEXT,\r
+       "iban" TEXT,\r
+       "bic" TEXT,\r
+       "type" TEXT,\r
+       "language" TEXT,\r
+       PRIMARY KEY (id)\r
+);
+CREATE TABLE IF NOT EXISTS "zzold_invoicejournal" (
+       "id" TEXT,
+       "id_receipient" TEXT,
+       "id_sender" TEXT,
+       "payedamount" REAL,
+       "byear" INTEGER,
+       "bquarter" TEXT,
+       "created" TEXT,
+       "date" DATE,
+       "deadlinedate" DATE,
+       "statusdate" DATE,
+       "status" TEXT,
+       "statement" TEXT,
+       "modified" TEXT,
+       "footertext" TEXT,
+       "reference" TEXT,
+       "remindernumber" TEXT,
+       "reminderdates" TEXT,
+       "transactionident" TEXT,
+       "type" TEXT,
+       "id_template" TEXT,
+       "headertext" TEXT,
+       PRIMARY KEY ('id')
+);
+CREATE TABLE IF NOT EXISTS "zzold_tblrechnungsdaten" (
+       "anzahl" TEXT,
+       "beschreibung" TEXT,
+       "betrageinheit" TEXT,
+       "betragmwst" TEXT,
+       "date_created" TEXT,
+       "date_modified" TEXT,
+       "einheit" TEXT,
+       "id" TEXT,
+       "id_rechnung" TEXT,
+       "last_editor" TEXT,
+       "prozentmwst" TEXT,
+       "prozentrabatt" TEXT,
+       PRIMARY KEY ('id')
+);
+CREATE TABLE IF NOT EXISTS "zzold_invoicepositions"
+    (
+        id TEXT,
+        id_invoice TEXT,
+        id_product TEXT,
+        quantity INTEGER,
+        unitamount NUMERIC,
+        unit TEXT,
+        description TEXT,
+        taxamount NUMERIC,
+        discountamount NUMERIC,
+        taxpercent NUMERIC,
+        discountpercent NUMERIC,
+        netamount NUMERIC,
+        totalamount NUMERIC,
+        created DATETIME,
+        modified DATETIME, id_sender TEXT, id_receipient TEXT, bookingdate DATE,
+       PRIMARY KEY (id)
+    );
+CREATE TABLE products (\r
+       id TEXT,\r
+       ident TEXT,\r
+       ptype TEXT,\r
+       unit TEXT,\r
+       unitamount TEXT,\r
+       vatpercent TEXT,\r
+       description TEXT,\r
+       primary key (id)\r
+);
+CREATE TABLE IF NOT EXISTS "zzold_banktransactions_old" (\r
+       id TEXT,\r
+       account TEXT,\r
+       statementnumber INTEGER,\r
+       bookingdate DATE,\r
+       amount REAL,\r
+       transactionident TEXT,\r
+       message TEXT,\r
+       foreignaccountowner TEXT,\r
+       bank TEXT,\r
+       transferaccount TEXT,\r
+       transfercosts REAL,\r
+       file TEXT,\r
+       PRIMARY KEY (id)\r
+);
+CREATE TABLE IF NOT EXISTS "zzold_accounts" (\r
+       id INTEGER PRIMARY KEY AUTOINCREMENT,\r
+       receipient TEXT,\r
+       title TEXT,\r
+       prename TEXT,\r
+       surname TEXT,\r
+       address TEXT,\r
+       zip TEXT,\r
+       city TEXT,\r
+       country TEXT,\r
+       email TEXT,\r
+       phone TEXT,\r
+       mobile TEXT,\r
+       ident TEXT,\r
+       vatid TEXT,\r
+       iban TEXT,\r
+       bic TEXT,\r
+       types TEXT,\r
+       lang TEXT,\r
+       old_id TEXT\r
+);
+CREATE TABLE invoices (\r
+       id INTEGER PRIMARY KEY AUTOINCREMENT,\r
+       id_receipient integer,\r
+       id_sender integer,\r
+       payedamount REAL,\r
+       byear INTEGER,\r
+       bquarter TEXT,\r
+       invoicedate DATE,\r
+       deadlinedate DATE,\r
+       statusdate DATE,\r
+       status TEXT,\r
+       bankstatement integer,\r
+       footertext TEXT,\r
+       reference TEXT,\r
+       remindernumber TEXT,\r
+       reminderdates TEXT,\r
+       transactionident TEXT,\r
+       invoicetype TEXT,\r
+       templatename integer,\r
+       headertext TEXT,\r
+       old_id TEXT,\r
+       old_id_receipient TEXT,\r
+       old_id_sender TEXT,\r
+       modified DATETIME DEFAULT CURRENT_TIMESTAMP,\r
+       created DATETIME DEFAULT CURRENT_TIMESTAMP\r
+);
+CREATE TABLE IF NOT EXISTS "bookings" (\r
+        id INTEGER PRIMARY KEY AUTOINCREMENT,\r
+        quantity NUMERIC,\r
+        unitamount NUMERIC,\r
+        unit TEXT,\r
+        description TEXT,\r
+        taxamount NUMERIC,\r
+        discountamount NUMERIC,\r
+        taxpercent NUMERIC,\r
+        discountpercent NUMERIC,\r
+        netamount NUMERIC,\r
+        totalamount NUMERIC,\r
+        bookingdate DATE,\r
+        old_id TEXT,\r
+        old_id_invoice TEXT,\r
+        old_id_product TEXT,\r
+        modified DATETIME DEFAULT CURRENT_TIMESTAMP,\r
+               created DATETIME DEFAULT CURRENT_TIMESTAMP\r
+    , id_invoice integer);
+CREATE TABLE IF NOT EXISTS "zzold_transactions" (\r
+       id INTEGER PRIMARY KEY AUTOINCREMENT,\r
+       "type" TEXT,\r
+       account TEXT,\r
+       statementnumber INTEGER,\r
+       bookingdate DATE,\r
+       amount REAL,\r
+       transactionident TEXT,\r
+       message TEXT,\r
+       foreignaccountowner TEXT,\r
+       bank TEXT,\r
+       transferaccount TEXT,\r
+       transfercosts REAL,\r
+       file TEXT\r
+);
+CREATE VIEW vw_banktransactions as \r
+select * from "zzold_transactions";
+CREATE VIEW vw_businessyears as\r
+select bb.byear as value,bb.byear as label from  \r
+(select strftime("%Y",invoicedate) as byear from invoices) bb  group by byear order by byear;
+CREATE VIEW vw_invoices as \r
+SELECT inv.id, inv.id_receipient,recp.receipient, inv.id_sender,sen.receipient as sender, inv.payedamount, inv.byear, inv.bquarter, inv.invoicedate, inv.deadlinedate, inv.statusdate, inv.status, inv.bankstatement, inv.footertext, inv.reference, inv.remindernumber, inv.reminderdates, inv.transactionident, inv.invoicetype, inv.templatename, inv.headertext, inv.modified, inv.created \r
+FROM invoices inv\r
+left join "zzold_accounts" sen on (inv.id_sender=sen.id)\r
+left join "zzold_accounts" recp on (inv.id_receipient=recp.id);
+CREATE VIEW vw_receipients as \r
+select id as value,receipient as label from "zzold_accounts" order by receipient;
+CREATE VIEW vw_receipientsdata as \r
+select id,receipient,coalesce(address,'') || '\n' || coalesce(zip,'') || ' ' || coalesce(city,'') || '\n' || coalesce(country,'') as address from "zzold_accounts";
+CREATE TABLE IF NOT EXISTS "accounts" (
+       id INTEGER PRIMARY KEY AUTOINCREMENT,
+       receipient TEXT,
+       title TEXT,
+       prename TEXT,
+       surname TEXT,
+       address TEXT,
+       zip TEXT,
+       city TEXT,
+       country TEXT,
+       email TEXT,
+       phone TEXT,
+       mobile TEXT,
+       ident TEXT,
+       vatid TEXT,
+       iban TEXT,
+       bic TEXT,
+       types TEXT,
+       lang TEXT,
+       old_id TEXT
+, created DATETIME DEFAULT CURRENT_TIMESTAMP, modified DATETIME default CURRENT_TIMESTAMP);
+CREATE TRIGGER trg_accounts_upd UPDATE ON accounts
+ BEGIN
+  UPDATE accounts set modified=CURRENT_TIMESTAMP where id = NEW.id;
+ END;
+CREATE TABLE IF NOT EXISTS "transactions" (
+       id INTEGER PRIMARY KEY AUTOINCREMENT,
+       "type" TEXT,
+       account TEXT,
+       statementnumber INTEGER,
+       bookingdate DATE,
+       amount REAL,
+       transactionident TEXT,
+       message TEXT,
+       foreignaccountowner TEXT,
+       bank TEXT,
+       transferaccount TEXT,
+       transfercosts REAL,
+       file TEXT,
+       modified DATETIME default CURRENT_TIMESTAMP,
+       created DATETIME default CURRENT_TIMESTAMP
+);
+CREATE TRIGGER trg_transactions_upd UPDATE ON transactions
+ BEGIN
+  UPDATE transactions set modified=CURRENT_TIMESTAMP where id = NEW.id;
+ END;
+CREATE TRIGGER trg_invoices_upd UPDATE ON invoices
+ BEGIN
+  UPDATE invoices set modified=CURRENT_TIMESTAMP where id = NEW.id;
+ END;
+CREATE TRIGGER trg_bookings_upd UPDATE ON bookings
+ BEGIN
+  UPDATE bookings set modified=CURRENT_TIMESTAMP where id = NEW.id;
+ END;
+CREATE VIEW vw_quarters as 
+select bquarter as label, bquarter as value from invoices group by bquarter order by bquarter DESC;
+CREATE TABLE files (
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
+ id_invoice integer,
+ id_transaction integer,
+ filepath TEXT,
+ folder TEXT,
+ filetype TEXT,
+ created DATETIME DEFAULT (datetime('now','localtime')), 
+ modified DATETIME default (datetime('now','localtime'))
+);
+CREATE TRIGGER trg_files_upd UPDATE ON files
+ BEGIN
+  UPDATE files SET modified=datetime('now','localtime') WHERE id = NEW.id;
+ END;
+CREATE VIEW vw_invoicelist as 
+select inv.id,inv.id_receipient,rec.receipient,inv.id_sender,sen.receipient as sender,inv.bquarter, inv.invoicedate,inv.deadlinedate,inv.bankstatement,inv.reminderdates,inv.status,inv.statusdate,inv.reference
+,printf("%.2f",sum(round(bk.quantity * bk.unitamount,2))) as netamount
+,printf("%.2f",sum(round(bk.quantity * bk.unitamount * bk.taxpercent,2))) as vatamount
+,printf("%.2f",sum(round(bk.quantity * bk.unitamount,2)) + sum(round(bk.quantity * bk.unitamount * bk.taxpercent,2))) as grossamount
+,printf("%.2f",inv.payedamount) as payedamount
+from invoices inv 
+join bookings bk on (inv.id=bk.id_invoice) 
+join accounts rec on (inv.id_receipient=rec.id)
+join accounts sen on (inv.id_sender=sen.id)
+where inv.invoicedate
+group by inv.id
+order by inv.invoicedate desc;
+CREATE VIEW vw_bookings as
+SELECT id, printf("%.2f",quantity) as quantity, printf("%.2f",coalesce(unitamount,0.0)) as unitamount, coalesce(unit,'') as unit, coalesce(description,'') as description, 
+printf("%.2f",case when taxpercent is not null then coalesce(taxpercent,0.0) * coalesce(quantity,0.0) * coalesce(unitamount,0.0) else coalesce(taxamount,0.0) end ) as taxamount, 
+printf("%.2f",coalesce(taxpercent,0.0)) as taxpercent, 
+printf("%.2f",coalesce(quantity,0.0) * coalesce(unitamount,0.0)) as netamount,
+printf("%.2f",netamount) as netamount, id_invoice FROM bookings;