--- /dev/null
+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;