From c02a69958ac71cff60ec97b4013258d91f7b5488 Mon Sep 17 00:00:00 2001
From: wohlgemu <michael.wohlgemuth@slub-dresden.de>
Date: Thu, 28 Sep 2023 10:55:51 +0200
Subject: [PATCH] Create Table

---
 script/Create_Table.sql    | 222 +++++++++++++
 script/Script_Database.sql | 620 -------------------------------------
 2 files changed, 222 insertions(+), 620 deletions(-)
 create mode 100644 script/Create_Table.sql
 delete mode 100644 script/Script_Database.sql

diff --git a/script/Create_Table.sql b/script/Create_Table.sql
new file mode 100644
index 0000000..5048e90
--- /dev/null
+++ b/script/Create_Table.sql
@@ -0,0 +1,222 @@
+-- Table: public.finance_request
+
+-- DROP TABLE IF EXISTS public.finance_request;
+
+CREATE TABLE IF NOT EXISTS public.finance_request
+(
+    oa_id character varying(17) COLLATE pg_catalog."default" NOT NULL,
+    ts_form timestamp without time zone NOT NULL DEFAULT now(),
+    ticket_number character varying(17) COLLATE pg_catalog."default",
+    decision character varying(1) COLLATE pg_catalog."default" NOT NULL,
+    reason_denied character varying(100) COLLATE pg_catalog."default",
+    date_approved date,
+    comment_postpayment_check character varying(250) COLLATE pg_catalog."default",
+    report character varying(40) COLLATE pg_catalog."default",
+    processing_status character varying(50) COLLATE pg_catalog."default",
+    processing_comment text COLLATE pg_catalog."default",
+    first_name character varying(40) COLLATE pg_catalog."default" NOT NULL,
+    family_name character varying(40) COLLATE pg_catalog."default" NOT NULL,
+    orcid character varying(19) COLLATE pg_catalog."default",
+    dfg_number character varying(200) COLLATE pg_catalog."default",
+    school character varying(50) COLLATE pg_catalog."default" NOT NULL,
+    faculty character varying(50) COLLATE pg_catalog."default",
+    department character varying(70) COLLATE pg_catalog."default",
+    institute character varying(150) COLLATE pg_catalog."default",
+    center character varying(150) COLLATE pg_catalog."default",
+    chair character varying(150) COLLATE pg_catalog."default",
+    workgroup character varying(150) COLLATE pg_catalog."default",
+    publisher character varying(150) COLLATE pg_catalog."default" NOT NULL,
+    journal character varying(150) COLLATE pg_catalog."default" NOT NULL,
+    eissn character varying(9) COLLATE pg_catalog."default" DEFAULT 'XXXX-XXXX'::character varying,
+    title character varying(400) COLLATE pg_catalog."default" NOT NULL,
+    article_type character varying(40) COLLATE pg_catalog."default",
+    manuskript_id character varying(100) COLLATE pg_catalog."default",
+    doi character varying(100) COLLATE pg_catalog."default",
+    date_submitting date,
+    date_acceptance date,
+    date_publishing date,
+    license character varying(16) COLLATE pg_catalog."default",
+    media_type character varying(12) COLLATE pg_catalog."default" NOT NULL,
+    issuer character varying(30) COLLATE pg_catalog."default" DEFAULT SESSION_USER,
+    issuer_update character varying(30) COLLATE pg_catalog."default" DEFAULT SESSION_USER,
+    institution character varying(70) COLLATE pg_catalog."default" DEFAULT 'TU Dresden'::character varying,
+    research_article character varying(1) COLLATE pg_catalog."default" NOT NULL DEFAULT 'o'::character varying,
+    postpayment_check character varying(1) COLLATE pg_catalog."default" NOT NULL DEFAULT 'o'::character varying,
+    CONSTRAINT finance_request_pkey PRIMARY KEY (oa_id),
+    CONSTRAINT value_check_research_article1 CHECK (research_article::text = ANY (ARRAY['y'::character varying, 'n'::character varying, 'o'::character varying]::text[])),
+    CONSTRAINT value_check_postpayment_check1 CHECK (postpayment_check::text = ANY (ARRAY['y'::character varying, 'n'::character varying, 'o'::character varying]::text[])),
+    CONSTRAINT value_check_decision CHECK (decision::text = ANY (ARRAY['y'::character varying, 'n'::character varying, 'o'::character varying]::text[])),
+    CONSTRAINT blank_check_institution CHECK (btrim(institution::text) = institution::text),
+    CONSTRAINT blank_check_oa_id CHECK (ltrim(oa_id::text) = oa_id::text AND rtrim(oa_id::text) = oa_id::text),
+    CONSTRAINT blank_check_ticket_number CHECK (ltrim(ticket_number::text) = ticket_number::text AND rtrim(ticket_number::text) = ticket_number::text),
+    CONSTRAINT blank_check_first_name CHECK (ltrim(first_name::text) = first_name::text AND rtrim(first_name::text) = first_name::text),
+    CONSTRAINT blank_check_family_name CHECK (ltrim(family_name::text) = family_name::text AND rtrim(family_name::text) = family_name::text),
+    CONSTRAINT blank_check_orcid CHECK (ltrim(orcid::text) = orcid::text AND rtrim(orcid::text) = orcid::text),
+    CONSTRAINT blank_check_school CHECK (ltrim(school::text) = school::text AND rtrim(school::text) = school::text),
+    CONSTRAINT blank_check_faculty CHECK (ltrim(faculty::text) = faculty::text AND rtrim(faculty::text) = faculty::text),
+    CONSTRAINT blank_check_department CHECK (ltrim(department::text) = department::text AND rtrim(department::text) = department::text),
+    CONSTRAINT blank_check_institute CHECK (ltrim(institute::text) = institute::text AND rtrim(institute::text) = institute::text),
+    CONSTRAINT blank_check_center CHECK (ltrim(center::text) = center::text AND rtrim(center::text) = center::text),
+    CONSTRAINT blank_check_chair CHECK (ltrim(chair::text) = chair::text AND rtrim(chair::text) = chair::text),
+    CONSTRAINT blank_check_workgroup CHECK (ltrim(workgroup::text) = workgroup::text AND rtrim(workgroup::text) = workgroup::text),
+    CONSTRAINT blank_check_publisher CHECK (ltrim(publisher::text) = publisher::text AND rtrim(publisher::text) = publisher::text),
+    CONSTRAINT blank_check_journal CHECK (ltrim(journal::text) = journal::text AND rtrim(journal::text) = journal::text),
+    CONSTRAINT blank_check_title CHECK (ltrim(title::text) = title::text AND rtrim(title::text) = title::text),
+    CONSTRAINT blank_check_article_type CHECK (ltrim(article_type::text) = article_type::text AND rtrim(article_type::text) = article_type::text),
+    CONSTRAINT blank_check_manuskript_id CHECK (ltrim(manuskript_id::text) = manuskript_id::text AND rtrim(manuskript_id::text) = manuskript_id::text),
+    CONSTRAINT blank_check_doi CHECK (ltrim(doi::text) = doi::text AND rtrim(doi::text) = doi::text),
+    CONSTRAINT blank_check_license CHECK (ltrim(license::text) = license::text AND rtrim(license::text) = license::text),
+    CONSTRAINT blank_check_media_type CHECK (ltrim(media_type::text) = media_type::text AND rtrim(media_type::text) = media_type::text)
+)
+WITH (
+    OIDS = FALSE
+)
+TABLESPACE pg_default;
+
+
+-- Index: idx_finance_request_doi
+
+-- DROP INDEX IF EXISTS public.idx_finance_request_doi;
+
+CREATE INDEX IF NOT EXISTS idx_finance_request_doi
+    ON public.finance_request USING btree
+    (doi COLLATE pg_catalog."default" ASC NULLS LAST)
+    TABLESPACE pg_default;
+
+-- Trigger: update_issuer_request
+
+-- DROP TRIGGER IF EXISTS update_issuer_request ON public.finance_request;
+
+CREATE TRIGGER update_issuer_request
+    BEFORE UPDATE 
+    ON public.finance_request
+    FOR EACH ROW
+    EXECUTE FUNCTION public.update_issuer();
+
+
+	--------------------------------------------------------------------------------------------------------------
+	--------------------------------------------------------------------------------------------------------------
+
+	CREATE TABLE IF NOT EXISTS public.finance_cost
+(
+    ts_form timestamp without time zone NOT NULL DEFAULT now(),
+    pk_cost integer NOT NULL GENERATED ALWAYS AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1 ),
+    oa_id character varying(17) COLLATE pg_catalog."default",
+    invoice_number character varying(100) COLLATE pg_catalog."default",
+    budget_id character varying(20) COLLATE pg_catalog."default" DEFAULT 'TUD_EL_2023'::character varying,
+    cost_type character varying(100) COLLATE pg_catalog."default",
+    contract_type character varying(50) COLLATE pg_catalog."default",
+    amount_net numeric(8,2),
+    currency character varying(3) COLLATE pg_catalog."default",
+    amount_euro_net numeric(8,2),
+    vat_percent numeric(3,2) DEFAULT 1.19,
+    amount_payment_brut numeric(8,2),
+    comment_cost character varying(250) COLLATE pg_catalog."default",
+    issuer character varying(30) COLLATE pg_catalog."default" DEFAULT SESSION_USER,
+    issuer_update character varying(30) COLLATE pg_catalog."default" DEFAULT SESSION_USER,
+    CONSTRAINT finance_cost_pkey PRIMARY KEY (pk_cost),
+    CONSTRAINT blank_check_oa_id CHECK (ltrim(oa_id::text) = oa_id::text AND rtrim(oa_id::text) = oa_id::text),
+    CONSTRAINT blank_check_invoice_number CHECK (ltrim(invoice_number::text) = invoice_number::text AND rtrim(invoice_number::text) = invoice_number::text),
+    CONSTRAINT blank_check_budget_id CHECK (ltrim(budget_id::text) = budget_id::text AND rtrim(budget_id::text) = budget_id::text),
+    CONSTRAINT blank_check_cost_type CHECK (ltrim(cost_type::text) = cost_type::text AND rtrim(cost_type::text) = cost_type::text),
+    CONSTRAINT blank_check_contract_type CHECK (ltrim(contract_type::text) = contract_type::text AND rtrim(contract_type::text) = contract_type::text),
+    CONSTRAINT blank_check_currency CHECK (ltrim(currency::text) = currency::text AND rtrim(currency::text) = currency::text)
+)
+WITH (
+    OIDS = FALSE
+)
+TABLESPACE pg_default;
+
+-- Trigger: update_issuer_cost
+
+-- DROP TRIGGER IF EXISTS update_issuer_cost ON public.finance_cost;
+
+CREATE TRIGGER update_issuer_cost
+    BEFORE UPDATE 
+    ON public.finance_cost
+    FOR EACH ROW
+    EXECUTE FUNCTION public.update_issuer();
+
+	--------------------------------------------------------------------------------------------------------------
+	--------------------------------------------------------------------------------------------------------------
+
+-- Table: public.finance_invoice
+
+-- DROP TABLE IF EXISTS public.finance_invoice;
+
+CREATE TABLE IF NOT EXISTS public.finance_invoice
+(
+    ts_form timestamp without time zone NOT NULL DEFAULT now(),
+    invoice_number character varying(100) COLLATE pg_catalog."default" NOT NULL,
+    ticket_number character varying(17) COLLATE pg_catalog."default",
+    publisher character varying(150) COLLATE pg_catalog."default" NOT NULL,
+    date_invoice_due date,
+    date_invoice_receipt date,
+    date_factually_accurate date,
+    date_hauptkasse date,
+    comment_invoice character varying(100) COLLATE pg_catalog."default",
+    issuer character varying(30) COLLATE pg_catalog."default" DEFAULT SESSION_USER,
+    issuer_update character varying(30) COLLATE pg_catalog."default" DEFAULT SESSION_USER,
+    CONSTRAINT finance_invoice_pkey PRIMARY KEY (invoice_number),
+    CONSTRAINT blank_check_invoice_number CHECK (ltrim(invoice_number::text) = invoice_number::text AND rtrim(invoice_number::text) = invoice_number::text),
+    CONSTRAINT blank_check_publisher CHECK (ltrim(publisher::text) = publisher::text AND rtrim(publisher::text) = publisher::text),
+    CONSTRAINT blank_check_ticket_number CHECK (ltrim(ticket_number::text) = ticket_number::text AND rtrim(ticket_number::text) = ticket_number::text)
+)
+WITH (
+    OIDS = FALSE
+)
+TABLESPACE pg_default;
+
+
+
+-- Trigger: update_issuer_invoice
+
+-- DROP TRIGGER IF EXISTS update_issuer_invoice ON public.finance_invoice;
+
+CREATE TRIGGER update_issuer_invoice
+    BEFORE UPDATE 
+    ON public.finance_invoice
+    FOR EACH ROW
+    EXECUTE FUNCTION public.update_issuer();
+
+
+--------------------------------------------------------------------------------------------------------------
+--------------------------------------------------------------------------------------------------------------
+
+-- Table: public.finance_budget
+
+-- DROP TABLE IF EXISTS public.finance_budget;
+
+CREATE TABLE IF NOT EXISTS public.finance_budget
+(
+    ts_form timestamp without time zone NOT NULL DEFAULT now(),
+    budget_id character varying(20) COLLATE pg_catalog."default" NOT NULL,
+    amount_budget_brut numeric(9,2),
+    name_budget character varying(100) COLLATE pg_catalog."default",
+    budget_year integer,
+    kostenart character varying(20) COLLATE pg_catalog."default",
+    produkt character varying(20) COLLATE pg_catalog."default",
+    kostenstelle character varying(20) COLLATE pg_catalog."default",
+    titelgruppe character varying(20) COLLATE pg_catalog."default",
+    central_paying boolean,
+    budget_comment character varying(100) COLLATE pg_catalog."default",
+    issuer character varying(30) COLLATE pg_catalog."default" DEFAULT SESSION_USER,
+    issuer_update character varying(30) COLLATE pg_catalog."default" DEFAULT SESSION_USER,
+    CONSTRAINT finance_budget_pkey PRIMARY KEY (budget_id)
+)
+WITH (
+    OIDS = FALSE
+)
+TABLESPACE pg_default;
+
+
+
+-- Trigger: update_issuer_budget
+
+-- DROP TRIGGER IF EXISTS update_issuer_budget ON public.finance_budget;
+
+CREATE TRIGGER update_issuer_budget
+    BEFORE UPDATE 
+    ON public.finance_budget
+    FOR EACH ROW
+    EXECUTE FUNCTION public.update_issuer();
\ No newline at end of file
diff --git a/script/Script_Database.sql b/script/Script_Database.sql
deleted file mode 100644
index 2d838f0..0000000
--- a/script/Script_Database.sql
+++ /dev/null
@@ -1,620 +0,0 @@
-CREATE  FUNCTION update_ISSUER()
-RETURNS TRIGGER AS $$
-BEGIN
-    NEW.ISSUER_Update = session_user;
-    RETURN NEW;
-END;
-$$ language 'plpgsql';
-
-----------------------------------
---drop table Finance_Request;
-create table Finance_Request (
-	-----Bearbeitung
-	OA_ID VARCHAR(17) NOT NULL Constraint Blank_Check_OA_ID CHECK (ltrim(OA_ID) = OA_ID AND rtrim(OA_ID) = OA_ID),
-	ts_form TIMESTAMP NOT NULL DEFAULT NOW(),
-	Ticket_Number VARCHAR (17) Constraint Blank_Check_Ticket_Number CHECK (ltrim(Ticket_Number) = Ticket_Number AND rtrim(Ticket_Number) = Ticket_Number),
-	Decision VARCHAR (1) NOT NULL DEFAULT 'o' CONSTRAINT Value_Check_Decision CHECK (Decision IN ('y','n','o')),
-	Reason_Denied VARCHAR(100),
-	Date_Approved DATE,
-	Postpayment_Check VARCHAR (1) NOT NULL DEFAULT 'o' CONSTRAINT Value_Check_Postpayment_Check CHECK (Postpayment_Check IN ('y','n','o')),
-	Comment_Postpayment_Check VARCHAR (250),
-	Report VARCHAR (40),
-	Processing_Status VARCHAR(50),
-	Processing_Comment TEXT,
-	-----Antragsteller
-	First_Name VARCHAR(40) NOT NULL Constraint Blank_Check_First_Name CHECK (ltrim(First_Name) = First_Name AND rtrim(First_Name) = First_Name),
-	Family_Name VARCHAR(40) NOT NULL Constraint Blank_Check_Family_Name CHECK (ltrim(Family_Name) = Family_Name AND rtrim(Family_Name) = Family_Name),
-	ORCID VARCHAR(19) Constraint Blank_Check_ORCID CHECK (ltrim(ORCID) = ORCID AND rtrim(ORCID) = ORCID),
-	DFG_number VARCHAR(200),
-	Institution VARCHAR(70) DEFAULT 'TU Dresden' CONSTRAINT Blank_Check_Institution CHECK (trim(Institution) = Institution),
-	School VARCHAR(50) NOT NULL Constraint Blank_Check_School CHECK (ltrim(School) = School AND rtrim(School) = School),
-	Faculty VARCHAR(50) Constraint Blank_Check_Faculty CHECK (ltrim(Faculty) = Faculty AND rtrim(Faculty) = Faculty),
-	Department VARCHAR(70) Constraint Blank_Check_Department CHECK (ltrim(Department) = Department AND rtrim(Department) = Department),
-	Institute VARCHAR(150) Constraint Blank_Check_Institute CHECK (ltrim(Institute) = Institute AND rtrim(Institute) = Institute),
-	Center VARCHAR(150) Constraint Blank_Check_Center CHECK (ltrim(Center) = Center AND rtrim(Center) = Center),
-	Chair VARCHAR(150) Constraint Blank_Check_Chair CHECK (ltrim(Chair) = Chair AND rtrim(Chair) = Chair),
-	Workgroup VARCHAR(150) Constraint Blank_Check_Workgroup CHECK (ltrim(Workgroup) = Workgroup AND rtrim(Workgroup) = Workgroup),
-	----Metadaten
-	Publisher VARCHAR(150) NOT NULL Constraint Blank_Check_Publisher CHECK (ltrim(Publisher) = Publisher AND rtrim(Publisher) = Publisher),
-	Journal VARCHAR(150) NOT NULL Constraint Blank_Check_Journal CHECK (ltrim(Journal) = Journal AND rtrim(Journal) = Journal),
-	EISSN VARCHAR(9) DEFAULT 'XXXX-XXXX',
-	Title VARCHAR(400) NOT NULL Constraint Blank_Check_Title CHECK (ltrim(title) = title AND rtrim(title) = title),
-	Article_Type VARCHAR(40) Constraint Blank_Check_Article_Type CHECK (ltrim(Article_Type) = Article_Type AND rtrim(Article_Type) = Article_Type),
-	Manuskript_ID VARCHAR(100) Constraint Blank_Check_Manuskript_ID CHECK (ltrim(Manuskript_ID) = Manuskript_ID AND rtrim(Manuskript_ID) = Manuskript_ID),
-	DOI VARCHAR(100) Constraint Blank_Check_DOI CHECK (ltrim(DOI) = DOI AND rtrim(DOI) = DOI),
-	Research_Article VARCHAR (1) NOT NULL DEFAULT 'o' CONSTRAINT Value_Check_Research_Article CHECK (Research_Article IN ('y','n','o')),
-	Date_Submitting DATE,
-	Date_Acceptance DATE,
-	Date_Publishing DATE,
-	License VARCHAR(16) Constraint Blank_Check_License CHECK (ltrim(License) = License AND rtrim(License) = License),
-	Media_Type VARCHAR(12) NOT NULL Constraint Blank_Check_Media_Type CHECK (ltrim(Media_Type) = Media_Type AND rtrim(Media_Type) = Media_Type),
-	ISSUER varchar(30) default session_user,
-	ISSUER_Update varchar(30) default session_user,
-	PRIMARY KEY(OA_ID)
-	);
-	
-CREATE TRIGGER update_ISSUER_request
-    BEFORE UPDATE
-    ON
-        Finance_Request
-    FOR EACH ROW
-EXECUTE PROCEDURE update_ISSUER();
-
-
-CREATE INDEX idx_Finance_Request_doi ON Finance_Request(doi);
-EXPLAIN SELECT * FROM Finance_Request WHERE doi = '10.1186/s12871-021-01264-2';
-
-select * from Finance_Request;
-
------------------------------------------------------------------------------------------------------------------------------
---drop table Finance_Invoice;	
-create table Finance_Invoice (
-	ts_form TIMESTAMP NOT NULL DEFAULT NOW(),
-	Invoice_Number VARCHAR(100) Constraint Blank_Check_Invoice_Number CHECK (ltrim(Invoice_Number) = Invoice_Number AND rtrim(Invoice_Number) = Invoice_Number),
-	Ticket_Number VARCHAR (17) Constraint Blank_Check_Ticket_Number CHECK (ltrim(Ticket_Number) = Ticket_Number AND rtrim(Ticket_Number) = Ticket_Number),
-	Publisher VARCHAR(150) NOT NULL Constraint Blank_Check_Publisher CHECK (ltrim(Publisher) = Publisher AND rtrim(Publisher) = Publisher),
-	Date_Invoice_Due DATE,
-	Date_Invoice_Receipt DATE,
-	Date_Factually_Accurate DATE,
-	Date_Hauptkasse DATE,
-	Comment_Invoice VARCHAR(100),
-	ISSUER varchar(30) default session_user,
-	ISSUER_Update varchar(30) default session_user,
-	PRIMARY KEY(Invoice_Number)
-	);
-	
-CREATE TRIGGER update_ISSUER_Invoice
-    BEFORE UPDATE
-    ON
-        Finance_Invoice
-    FOR EACH ROW
-EXECUTE PROCEDURE update_ISSUER();
-	
-select * from Finance_Invoice;
-
----------------------------------------------------------------------------
-
---https://intranet.slub-dresden.de/pages/viewpage.action?pageId=187270120	
---drop table Finance_Budget;
-create table Finance_Budget (
-	ts_form TIMESTAMP NOT NULL DEFAULT NOW(),
-	Budget_ID VARCHAR(20),
-	Amount_budget_brut NUMERIC(9,2),
-	Name_Budget VARCHAR(100),
-	Budget_Year INT,
-	Kostenart VARCHAR(20),
-	Produkt VARCHAR(20),
-	Kostenstelle VARCHAR(20),
-	Titelgruppe VARCHAR(20),
-	Central_Paying Boolean,		--neu: Wird zentral über unsere Transformationsverträge/Publikationsfonds gezahlt oder dezentral?
-	Budget_Comment VARCHAR(100),
-	ISSUER VARCHAR(30) default session_user,
-	ISSUER_Update VARCHAR(30) default session_user,
-	PRIMARY KEY(Budget_ID)
-	);
-	
-CREATE TRIGGER update_ISSUER_Budget
-    BEFORE UPDATE
-    ON
-        Finance_Budget
-    FOR EACH ROW
-EXECUTE PROCEDURE update_ISSUER();
-
---------------------------------------------------------------------------
-
---drop table Finance_Cost;
-create table Finance_Cost (
-	ts_form TIMESTAMP NOT NULL DEFAULT NOW(),
-	PK_Cost INT GENERATED ALWAYS AS IDENTITY,
-	OA_ID VARCHAR(17) Constraint Blank_Check_OA_ID CHECK (ltrim(OA_ID) = OA_ID AND rtrim(OA_ID) = OA_ID),
-	Invoice_Number VARCHAR(100) Constraint Blank_Check_Invoice_Number CHECK (ltrim(Invoice_Number) = Invoice_Number AND rtrim(Invoice_Number) = Invoice_Number),
-	Budget_ID VARCHAR(20) DEFAULT 'TUD_EL_2023' Constraint Blank_Check_Budget_ID CHECK (ltrim(Budget_ID) = Budget_ID AND rtrim(Budget_ID) = Budget_ID),
-	Cost_Type VARCHAR(100) Constraint Blank_Check_Cost_Type CHECK (ltrim(Cost_Type) = Cost_Type AND rtrim(Cost_Type) = Cost_Type),
-	Contract_Type VARCHAR(50) Constraint Blank_Check_Contract_Type CHECK (ltrim(Contract_Type) = Contract_Type AND rtrim(Contract_Type) = Contract_Type),
-	Amount_net NUMERIC(8,2),
-	Currency VARCHAR(3) Constraint Blank_Check_Currency CHECK (ltrim(Currency) = Currency AND rtrim(Currency) = Currency),
-	Amount_euro_net NUMERIC(8,2),
-	VAT_Percent NUMERIC(3,2) DEFAULT 1.19,
-	Amount_payment_brut NUMERIC(8,2), --Grüne Spalte
---	Amount_euro_brut NUMERIC(8,2), als virtuelle Spalte
-	Comment_Cost VARCHAR(250),
-	ISSUER varchar(30) default session_user,
-	ISSUER_Update varchar(30) default session_user,
-	PRIMARY KEY(PK_Cost)
-	);
-
-CREATE TRIGGER update_ISSUER_Cost
-    BEFORE UPDATE
-    ON
-        Finance_Cost
-    FOR EACH ROW
-EXECUTE PROCEDURE update_ISSUER();
-
-
-select * from finance_cost where oa_id = 'OA2023_191'
-Handling fee!
-
-Invoice GAMES-44132-APF-0051635 Handling_Fee 158,44
-
-------------------------------------
-------------------------------------
-
---Tabelle für MedFak/Uniklinikum
-drop table Finance_MF_Strukturen;
-create table Finance_MF_Strukturen (
-	ts_form TIMESTAMP NOT NULL DEFAULT NOW(),
-	PK_MF_Strukturen INT GENERATED ALWAYS AS IDENTITY,
-	Institution VARCHAR(100) NOT NULL Constraint Blank_Check_Institution CHECK (trim(Institution) = Institution),
-	Zuordnung VARCHAR(100) NOT NULL Constraint Blank_Check_Zuordnung CHECK (trim(Zuordnung) = Zuordnung),
-	Kurzbezeichnung VARCHAR(30) NOT NULL Constraint Blank_Check_Kurzbezeichnung CHECK (trim(Kurzbezeichnung) = Kurzbezeichnung),
-	Langbezeichnung VARCHAR(150) NOT NULL Constraint Blank_Check_Langbezeichnung CHECK (trim(Langbezeichnung) = Langbezeichnung),
-	PRIMARY KEY(PK_MF_Strukturen)
-)
-
-drop view view_Finance_MF_Strukturen;
-create view view_Finance_MF_Strukturen as
-select distinct Kurzbezeichnung from Finance_MF_Strukturen limit 10;
-
-create table Table_MF_Struk as
-select distinct Kurzbezeichnung from Finance_MF_Strukturen limit 10;
-
-
-
-
-
-
-
-
-select * from view_Finance_MF_Strukturen
-
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('TU, Medizinische Fakultät Carl Gustav Carus Dresden','Institute und weitere Einrichtungen der MF','ANA','Institut für Anatomie');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('TU, Medizinische Fakultät Carl Gustav Carus Dresden','Institute und weitere Einrichtungen der MF','ASM','Institut und Poliklinik für Arbeits- und Sozialmedizin');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('TU, Medizinische Fakultät Carl Gustav Carus Dresden','Institute und weitere Einrichtungen der MF','CarL','Carus Lehrzentrum');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('TU, Medizinische Fakultät Carl Gustav Carus Dresden','Institute und weitere Einrichtungen der MF','FTE','Forschungsgruppe Tissue Engineering');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('TU, Medizinische Fakultät Carl Gustav Carus Dresden','Institute und weitere Einrichtungen der MF','GES','Institut für Geschichte der Medizin');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('TU, Medizinische Fakultät Carl Gustav Carus Dresden','Institute und weitere Einrichtungen der MF','IMB','Institut für Medizinische Informatik und Biometrie');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('TU, Medizinische Fakultät Carl Gustav Carus Dresden','Institute und weitere Einrichtungen der MF','IMU','Institut für Immunologie');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('TU, Medizinische Fakultät Carl Gustav Carus Dresden','Institute und weitere Einrichtungen der MF','KGE','Institut für Klinische Genetik');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('TU, Medizinische Fakultät Carl Gustav Carus Dresden','Institute und weitere Einrichtungen der MF','KKS','Koordinierungszentrum für Klinische Studien Dresden (KKS-DD)');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('TU, Medizinische Fakultät Carl Gustav Carus Dresden','Institute und weitere Einrichtungen der MF','KPH','Institut für Klinische Pharmakologie');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('TU, Medizinische Fakultät Carl Gustav Carus Dresden','Institute und weitere Einrichtungen der MF','KSM','Klinisches Sensoring und Monitoring');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('TU, Medizinische Fakultät Carl Gustav Carus Dresden','Institute und weitere Einrichtungen der MF','MBIO','Arbeitsbereich Medizinische Biologie');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('TU, Medizinische Fakultät Carl Gustav Carus Dresden','Institute und weitere Einrichtungen der MF','MEDSYS','Medizinische Systembiologie');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('TU, Medizinische Fakultät Carl Gustav Carus Dresden','Institute und weitere Einrichtungen der MF','MIB','Institut für Medizinische Mikrobiologie und Hygiene');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('TU, Medizinische Fakultät Carl Gustav Carus Dresden','Institute und weitere Einrichtungen der MF','MITZ','Medizinisch-Interprofessionelles-Trainingszentrum');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('TU, Medizinische Fakultät Carl Gustav Carus Dresden','Institute und weitere Einrichtungen der MF','MOLDIA/MOD','Molekulare Diabetologie');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('TU, Medizinische Fakultät Carl Gustav Carus Dresden','Institute und weitere Einrichtungen der MF','MPH','Medizinische Physik');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('TU, Medizinische Fakultät Carl Gustav Carus Dresden','Institute und weitere Einrichtungen der MF','PCH','Institut für Physiologische Chemie');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('TU, Medizinische Fakultät Carl Gustav Carus Dresden','Institute und weitere Einrichtungen der MF','PHT','Institut für Pharmakologie und Toxikologie');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('TU, Medizinische Fakultät Carl Gustav Carus Dresden','Institute und weitere Einrichtungen der MF','PHY','Institut für Physiologie');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('TU, Medizinische Fakultät Carl Gustav Carus Dresden','Institute und weitere Einrichtungen der MF','REM','Institut für Rechtsmedizin');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('TU, Medizinische Fakultät Carl Gustav Carus Dresden','Institute und weitere Einrichtungen der MF','VIR','Institut für Virologie');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('TU, Medizinische Fakultät Carl Gustav Carus Dresden','Institute und weitere Einrichtungen der MF','ZMI','Zetrum für Medizinische Informatik');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('TU, Medizinische Fakultät Carl Gustav Carus Dresden','Institute und weitere Einrichtungen der MF','ZEGV','Zentrum für evidenzbasierte Gesundheitsversorgung');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('TU, Medizinische Fakultät Carl Gustav Carus Dresden','gemeinsame Einrichtungen der MFD mit externen Partnern','BIOTEC','Biotechnology Center (inkl. Forschungsgruppe (Molecular) Tissue Engineering (Biotec/MF))');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('TU, Medizinische Fakultät Carl Gustav Carus Dresden','gemeinsame Einrichtungen der MFD mit externen Partnern','CRTD','Center for Regenerative Therapies Dresden (CRTD) - DFG-Forschungszentrum');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('TU, Medizinische Fakultät Carl Gustav Carus Dresden','gemeinsame Einrichtungen der MFD mit externen Partnern','DKTK','Deutsches Konsortium für Translationale Krebsforschung (Partner: DKTK, DKFZ)');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('TU, Medizinische Fakultät Carl Gustav Carus Dresden','gemeinsame Einrichtungen der MFD mit externen Partnern','DZD-PLID','Deutsches Zentrum für Diabetesforschung - Paul Langerhans Institut Dresden (Partner: HMGU)');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('TU, Medizinische Fakultät Carl Gustav Carus Dresden','gemeinsame Einrichtungen der MFD mit externen Partnern','DZNE','Deutsches Zentrum für Neurodegenerative Erkrankungen, Standort Dresden (Partner: DZNE der Helmholtzgemeinschaft)');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('TU, Medizinische Fakultät Carl Gustav Carus Dresden','gemeinsame Einrichtungen der MFD mit externen Partnern','NCT','Nationales Centrum für Tumorerkrankungen (Partner: UKD, MFD, HZDR, DKFZ)');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('TU, Medizinische Fakultät Carl Gustav Carus Dresden','gemeinsame Einrichtungen der MFD mit externen Partnern','"OncoRay"/ZIC','Nationales Zentrum für Strahlenforschung in der Onkologie (Partner/Träger: UKD, HZDR)');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Zentralbereiche des UKD','KIF','Klinische Infektiologie');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Zentralbereiche des UKD','QM/QRM','Zentralbereich Qualitäts- und Medizinisches Risikomanagement/Qualitäts- und Medizinisches Risikomanagement');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Institute des UKD','IKL','Institut für Klinische Chemie und Laboratoriumsmedizin');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Institute des UKD','NRA','Institut und Poliklinik für Diagnostische und Interventionelle Neuroradiologie');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Institute des UKD','PAT','Institut für Pathologie');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Institute des UKD','RAD','Institut und Poliklinik für diagnostische und interventionelle Radiologie');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Kliniken, Polikliniken, selbständige Abteilungen des UKD','AMED','Medizinische Klinik und Poliklinik III, Bereich Allgemeinmedizin');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Kliniken, Polikliniken, selbständige Abteilungen des UKD','ANE','Klinik und Poliklinik für Anaesthesiologie und Intensivtherapie');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Kliniken, Polikliniken, selbständige Abteilungen des UKD','AUG','Klinik und Poliklinik für Augenheilkunde');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Kliniken, Polikliniken, selbständige Abteilungen des UKD','DER','Klinik und Poliklinik für Dermatologie');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Kliniken, Polikliniken, selbständige Abteilungen des UKD','GYN','Klinik und Poliklinik für Frauenheilkunde und Geburtshilfe');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Kliniken, Polikliniken, selbständige Abteilungen des UKD','HNO','Klinik und Poliklinik für Hals-Nasen-Ohrenheilkunde');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Kliniken, Polikliniken, selbständige Abteilungen des UKD','HZ-HCH','Klinik für Kardiochirurgie (am Herzzentrum)');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Kliniken, Polikliniken, selbständige Abteilungen des UKD','KCH','Klinik und Poliklinik für Kinderchirurgie');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Kliniken, Polikliniken, selbständige Abteilungen des UKD','KIK','Klinik und Poliklinik für Kinder- und Jugendmedizin');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Kliniken, Polikliniken, selbständige Abteilungen des UKD','KIK-NP','Klinik und Poliklinik für Kinder- und Jugendmedizin, Abteilung für Neuropädiatrie');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Kliniken, Polikliniken, selbständige Abteilungen des UKD','KJP','Klinik und Poliklinik für Kinder- und Jugendpsychiatrie');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Kliniken, Polikliniken, selbständige Abteilungen des UKD','MK1','Medizinische Klinik und Poliklinik I');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Kliniken, Polikliniken, selbständige Abteilungen des UKD','MK3','Medizinische Klinik und Poliklinik III');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Kliniken, Polikliniken, selbständige Abteilungen des UKD','HZ-KAR','Medizinische Klinik mit Schwerpunkt Kardiologie (am Herzzentrum)');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Kliniken, Polikliniken, selbständige Abteilungen des UKD','MPS','Medizinische Psychologie und Medizinische Soziologie');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Kliniken, Polikliniken, selbständige Abteilungen des UKD','NCH','Klinik und Poliklinik für Neurochirurgie');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Kliniken, Polikliniken, selbständige Abteilungen des UKD','NEU','Klinik und Poliklinik für Neurologie');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Kliniken, Polikliniken, selbständige Abteilungen des UKD','NUK','Klinik und Poliklinik für Nuklearmedizin');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Kliniken, Polikliniken, selbständige Abteilungen des UKD','PSM','Psychosoziale Medizin und Neurowissenschaften');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Kliniken, Polikliniken, selbständige Abteilungen des UKD','PSO','Klinik und Poliklinik für Psychotherapie und Psychosomatik');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Kliniken, Polikliniken, selbständige Abteilungen des UKD','PSY','Klinik und Poliklinik für Psychiatrie und Psychotherapie');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Kliniken, Polikliniken, selbständige Abteilungen des UKD','STR','Klinik und Poliklinik für Strahlentherapie und Radioonkologie');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Kliniken, Polikliniken, selbständige Abteilungen des UKD','TRA','Bereich Transfusionsmedizin');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Kliniken, Polikliniken, selbständige Abteilungen des UKD','URO','Klinik und Poliklinik für Urologie');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Kliniken, Polikliniken, selbständige Abteilungen des UKD','VTG','Klinik und Poliklinik für Viszeral-, Thorax- und Gefäßchirurgie');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Kliniken, Polikliniken, selbständige Abteilungen des UKD','ZCHFOR/CFO','Abteilung Chirurgische Forschung');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Kliniken, Polikliniken, selbständige Abteilungen des UKD','ZIM','Zentrum für Innere Medizin');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Kliniken, Polikliniken, selbständige Abteilungen des UKD','ZSG','Zentrum für Seelische Gesundheit');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Zentrum für Muskuloskelettale Medizin','OUC','UniversitätsCentrum für Orthopädie und Unfallchirurgie');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Zentrum für Muskuloskelettale Medizin','PHCH','Abteilung für Plastische und Handchirurgie');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Zentrum für Muskuloskelettale Medizin','TFO','Zentrum für Translationale Knochen-, Gelenk- und Weichgewebeforschung');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Zentrum für Muskuloskelettale Medizin','MKG','Klinik und Poliklinik für Mund-, Kiefer- und Gesichtschirurgie');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Zahnmedizin','KFO','Poliklinik für Kieferorthopädie');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Zahnmedizin','KZH','Kinderzahnheilkunde');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Zahnmedizin','PAR','Poliklinik für Parodontologie');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Zahnmedizin','ZAP','Poliklinik für Zahnärztliche Prothetik');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Zahnmedizin','ZER','Poliklinik für Zahnerhaltung');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Interdisziplinäre Zentren des UKD','EKFZ','Else-Kröner-Fresenius-Zentrum');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Interdisziplinäre Zentren des UKD','DINZ','Diagnostisch-Internistisch-Neurologisches Zentrum');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Interdisziplinäre Zentren des UKD','DNVC','Dresdner NeurovaskuläresCentrum');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Interdisziplinäre Zentren des UKD','GKZ','Gynäkologisches Krebszentrum');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Interdisziplinäre Zentren des UKD','HTZ','Hauttumorzentrum');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Interdisziplinäre Zentren des UKD','MKG-UPÄC','Universitäts PlastischÄsthetisches Centrum');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Interdisziplinäre Zentren des UKD','PCA','Prostatakarzinomzentrum am UniversitätsKrebsCentrum');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Interdisziplinäre Zentren des UKD','RBZ','Regionales Brustzentrum Dresden');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Interdisziplinäre Zentren des UKD','SCIC','Sächsisches Cochlear Implant Centrum');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Interdisziplinäre Zentren des UKD','SPZ','Sozialpädiatrisches Zentrum');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Interdisziplinäre Zentren des UKD','UAC','Universitäts Allergiecentrum');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Interdisziplinäre Zentren des UKD','UCARE','UniversitätsCentrum für Autoimmun- und Rheumatische Erkrankungen');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Interdisziplinäre Zentren des UKD','UCC','Universitäts KrebsCentrum Dresden (University Cancer Center)');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Interdisziplinäre Zentren des UKD','UCGA','UniversitätsCentrum für Gesundes Altern (in der MK3)');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Interdisziplinäre Zentren des UKD','UGC','Universitäts GefäßCentrum');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Interdisziplinäre Zentren des UKD','UKF','Universitäts Kinder- Frauenzentrum');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Interdisziplinäre Zentren des UKD','UMC','Universitäts MukoviszidoseCentrum');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Interdisziplinäre Zentren des UKD','UPC','Universitäts PalliativCentrum');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Interdisziplinäre Zentren des UKD','UPZ','Universitäts-Physiotherapie-Zentrum');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Interdisziplinäre Zentren des UKD','USC','Universitäts SchmerzCentrum');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Interdisziplinäre Zentren des UKD','USE','UniversitätsCentrum für Seltene Erkrankungen');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Interdisziplinäre Zentren des UKD','ZFD','Zentrum Familiärer Darmkrebs');
-INSERT INTO Finance_MF_Strukturen (Institution, Zuordnung, Kurzbezeichnung, Langbezeichnung) VALUES ('Universitätsklinikum Carl Gustav Carus Dresden','Interdisziplinäre Zentren des UKD','HZ-ANÄ','Institut für Kardioanästhesie (am Herzzentrum)');
-
-select * from Finance_MF_Strukturen;
-
-
-create table Finance_MF (
-	ts_form TIMESTAMP NOT NULL DEFAULT NOW(),
-	Belegnummer VARCHAR(10) NOT NULL,
-	Bemerkungen TEXT,
-	Vorname VARCHAR(40) NOT NULL Constraint Blank_Check_Vorname CHECK (trim(Vorname) = Vorname),
-	Nachname VARCHAR(40) NOT NULL Constraint Blank_Check_Nachname CHECK (trim(Nachname) = Nachname),
-	Einrichtung VARCHAR(100) NOT NULL Constraint Blank_Check_Einrichtung CHECK (trim(Einrichtung) = Einrichtung),
-	Verlag VARCHAR(150) NOT NULL Constraint Blank_Check_Verlag CHECK (trim(Verlag) = Verlag),
-	Journal VARCHAR(150) NOT NULL Constraint Blank_Check_Journal2 CHECK (trim(Journal) = Journal),
-	--OA.Status
-	Title VARCHAR(400) NOT NULL Constraint Blank_Check_Journal CHECK (trim(Journal) = Journal),
-	--Article.Type
-	Manuskript_ID VARCHAR(40) Constraint Blank_Check_Manuskript_ID CHECK (trim(Manuskript_ID) = Manuskript_ID),
-	DOI VARCHAR(100) NOT NULL Constraint Blank_Check_DOI CHECK (trim(DOI) = DOI),
-	Datum_Akzeptanz DATE,
-	Datum_Veröffentlichung DATE,
-	Gebühr_Netto NUMERIC(8,2),
-	Währung VARCHAR(3) Constraint Blank_Check_Währung CHECK (trim(Währung) = Währung),
-	Gebühr_Euro_Netto NUMERIC(8,2),
-	Gebühr_Euro_Brutto NUMERIC(8,2),
-	Gebührenart VARCHAR(20),
-	Budget VARCHAR(20),
-	Kostenstelle VARCHAR(20),
-	Fonds VARCHAR(20),
-	Datum_Rechnung DATE,
-	Datum_Rechnungsfälligkeit DATE,
-	Rechnungsnummer VARCHAR(100) Constraint Blank_Check_Rechnungsnummer CHECK (trim(Rechnungsnummer) = Rechnungsnummer),
-	Datum_Buchung DATE,
-	Haushaltskasse_Brutto NUMERIC(8,2),
-	Haushaltsjahr_Rechnung INT,
-	ISSUER VARCHAR(30) default session_user,
-	ISSUER_Update VARCHAR(30) default session_user,
-	PRIMARY KEY(Belegnummer)
-)
-
-select * from Finance_MF
-
-
-
-
-
-
-
----------------------------------------
----------------------------------------
-
---https://stackoverflow.com/questions/39361426/postgres-query-for-matrix-table
---create extension if not exists tablefunc;
-
---drop view View_Budget_Kalkulation;
-CREATE VIEW View_Budget_Kalkulation AS
-WITH BASIS AS
-(
-select distinct a.oa_id, a.amount_net, a.currency, a.amount_euro_net, a.Amount_payment_brut, a.Budget_ID, Budget_Year, date_factually_accurate, b.Amount_budget_brut as Budget,
-CASE
-WHEN a.Amount_payment_brut is null and currency = 'EUR'  THEN ROUND(a.amount_net * VAT_Percent,2)
-WHEN a.Amount_payment_brut is null and currency <> 'EUR'  THEN ROUND(a.amount_euro_net * VAT_Percent,2)
-ELSE a.Amount_payment_brut END AS Amount,
-CASE
-	WHEN a.Amount_payment_brut is null AND date_factually_accurate is null THEN 'FESTLEGUNG'
-	WHEN a.Amount_payment_brut is not null THEN 'ZAHLUNG'
-	ELSE 'ZAHLUNGSANORDNUNG' END AS INVOICE_STATUS	
-from Finance_Cost a
-JOIN Finance_Budget b ON (a.Budget_id = b.Budget_id)
-LEFT JOIN Finance_Invoice c ON (a.Invoice_number = c.Invoice_number)
-),
-basis1 AS
-(
-select oa_id, Budget_Year, Budget_ID, cast(Amount as money) AS Amount, cast(Budget as money) as Budget, INVOICE_STATUS
-FROM basis
-),
-basis2 AS
-(
-select distinct Budget_Year, INVOICE_STATUS, Budget_ID,
-SUM(Amount) OVER (PARTITION BY INVOICE_STATUS, Budget_ID) AS SUM_AMOUNT
-FROM basis1
-UNION
-select distinct Budget_Year, 'BEWILLIGT' AS INVOICE_STATUS, Budget_ID,
-SUM(Amount) OVER (PARTITION BY Budget_ID) AS SUM_AMOUNT
-FROM basis1
-UNION
-select distinct Budget_Year, 'BUDGET' AS INVOICE_STATUS, Budget_ID,
-Budget AS SUM_AMOUNT
-FROM basis1
-UNION
-select distinct Budget_Year, 'SALDO' AS INVOICE_STATUS, Budget_ID,
-Budget - SUM(Amount) OVER (PARTITION BY Budget_ID) AS SUM_AMOUNT
-FROM basis1
-)
-select distinct 
-CASE
-	WHEN INVOICE_STATUS = 'BEWILLIGT' THEN '1_'
-	WHEN INVOICE_STATUS = 'FESTLEGUNG' THEN '2_'
-	WHEN INVOICE_STATUS = 'ZAHLUNGSANORDNUNG' THEN '3_'
-	WHEN INVOICE_STATUS = 'ZAHLUNG' THEN '4_'
-	WHEN INVOICE_STATUS = 'BUDGET' THEN '5_'
-	ELSE '6_' END AS RANG,
-Budget_Year, INVOICE_STATUS, Budget_ID, SUM_AMOUNT
-from basis2;
-
-
-select * from View_Budget_Kalkulation;
-
---drop view View_Extern_Budget_2019;
-CREATE VIEW View_Extern_Budget_2019 AS
-Select * from
-  crosstab('select CONCAT(RANG, INVOICE_STATUS), Budget_ID,SUM_AMOUNT from View_Budget_Kalkulation where Budget_Year = 2019 order by 1,2')
-  as View_Budget_Kalkulation(INVOICE_STATUS text, SLUB_2019 Money, TUD_EPC_2019 Money, TUD_I_2019 Money);
-
---drop view View_Extern_Budget_2020;
-CREATE VIEW View_Extern_Budget_2020 AS
-Select * from
-  crosstab('select CONCAT(RANG, INVOICE_STATUS), Budget_ID,SUM_AMOUNT from View_Budget_Kalkulation where Budget_Year = 2020 order by 1,2')
-  as View_Budget_Kalkulation(INVOICE_STATUS text, DFG_2020 Money, DFG_PP_2020 Money, SLUB_2020 Money, TUD_EL_2020 Money, TUD_EPC_2020 Money);
-  
-select * from View_Extern_Budget_2020;  
-
---drop view View_Extern_Budget_2021;
-CREATE VIEW View_Extern_Budget_2021 AS
-Select * from
-  crosstab('select CONCAT(RANG, INVOICE_STATUS), Budget_ID,SUM_AMOUNT from View_Budget_Kalkulation where Budget_Year = 2021 order by 1,2')
-  as View_Budget_Kalkulation(INVOICE_STATUS text, DFG_2021 Money, DFG_PP_2021 Money, OA_SAX_2021 Money, SLUB_2021 Money, TUD_EL_2021 Money, TUD_KOFIN_2021 Money);  
-  
-select * from View_Extern_Budget_2021;
-
---drop view View_Extern_Budget_2022;
-CREATE VIEW View_Extern_Budget_2022 AS
-Select * from
-  crosstab('select CONCAT(RANG, INVOICE_STATUS), Budget_ID,SUM_AMOUNT from View_Budget_Kalkulation where Budget_Year = 2022 order by 1,2')
-  as View_Budget_Kalkulation(INVOICE_STATUS text, DFG_2022 Money, MF_DM_2022 Money, MF_HA_2022 Money, SLUB_2022 Money, TUD_DM_2022 Money, TUD_EL_2022 Money, TUD_HA_2022 Money);
-  
-select * from View_Extern_Budget_2022;
-
-
---drop view View_Extern_Budget_2023;
-CREATE VIEW View_Extern_Budget_2023 AS
-Select * from
-  crosstab('select CONCAT(RANG, INVOICE_STATUS), Budget_ID,SUM_AMOUNT from View_Budget_Kalkulation where Budget_Year = 2023 order by 1,2')
-  as View_Budget_Kalkulation(INVOICE_STATUS text, DFG_2023 Money, DFG_PP_2023 Money, DFG_TUD_2023 Money, MF_DM_2023 Money, MF_HA_2023 Money, SLUB_2023 Money, TUD_DM_2023 Money, TUD_EL_2023 Money, TUD_HA_2023 Money);
-  
-select * from View_Extern_Budget_2023;
-
-
-
-drop view View_All_Tables_2022;
-CREATE VIEW View_All_Tables_2022 AS
-SELECT DISTINCT a.oa_id, a.ticket_number, a.decision, a.reason_denied, a.date_approved, a.postpayment_check, a.comment_postpayment_check, a.report, a.processing_status, a.processing_comment, a.research_article, a.first_name, a.family_name, a.dfg_number, a.institution, a.school, a.faculty, a.publisher, a.journal, a.eissn, a.title, a.article_type, a.manuskript_id, a.doi, a.date_acceptance, a.date_publishing, a.license, a.media_type,
-b.budget_id, d.budget_year, b.cost_type, b.contract_type, b.amount_net, b.currency, b.amount_euro_net, b.vat_percent,
-CASE
-WHEN b.Amount_payment_brut is null and currency = 'EUR' THEN ROUND(b.amount_net * VAT_Percent,2)
-WHEN b.Amount_payment_brut is null and currency <> 'EUR' THEN ROUND(b.amount_euro_net * VAT_Percent,2)
-ELSE b.Amount_payment_brut END AS amount_euro_brut,
-b.amount_payment_brut, b.comment_cost,
-CASE
-	WHEN decision = 'n' THEN 'ABLEHNUNG'
-	WHEN b.Amount_payment_brut is null AND date_factually_accurate is null THEN 'FESTLEGUNG'
-	WHEN b.Amount_payment_brut is not null THEN 'ZAHLUNG'
-	ELSE 'ZAHLUNGSANORDNUNG' END AS INVOICE_STATUS,
-c.invoice_number, c.date_invoice_due, c.date_invoice_receipt, c.date_factually_accurate, c.date_hauptkasse, c.comment_invoice
-FROM Finance_Request a
-LEFT JOIN Finance_Cost b ON (a.OA_ID = b.OA_ID)
-LEFT JOIN Finance_Invoice c ON (b.Invoice_number = c.Invoice_number)
-LEFT JOIN Finance_Budget d ON (b.Budget_id = d.Budget_id)
-where budget_year = 2022 OR Comment_cost like '%_2022%';
-
-select * from View_All_Tables_2022;
-
-drop view View_All_Tables_2023;
-CREATE VIEW View_All_Tables_2023 AS
-SELECT DISTINCT a.oa_id, a.ticket_number, a.decision, a.reason_denied, a.date_approved, a.postpayment_check, a.comment_postpayment_check, a.report, a.processing_status, a.processing_comment, a.research_article, a.first_name, a.family_name, a.dfg_number, a.institution, a.school, a.faculty, a.publisher, a.journal, a.eissn, a.title, a.article_type, a.manuskript_id, a.doi, a.date_acceptance, a.date_publishing, a.license, a.media_type,
-b.budget_id, d.budget_year, b.cost_type, b.contract_type, b.amount_net, b.currency, b.amount_euro_net, b.vat_percent,
-CASE
-WHEN b.Amount_payment_brut is null and currency = 'EUR' THEN ROUND(b.amount_net * VAT_Percent,2)
-WHEN b.Amount_payment_brut is null and currency <> 'EUR' THEN ROUND(b.amount_euro_net * VAT_Percent,2)
-ELSE b.Amount_payment_brut END AS amount_euro_brut,
-b.amount_payment_brut, b.comment_cost,
-CASE
-	WHEN decision = 'n' THEN 'ABLEHNUNG'
-	WHEN b.Amount_payment_brut is null AND date_factually_accurate is null THEN 'FESTLEGUNG'
-	WHEN b.Amount_payment_brut is not null THEN 'ZAHLUNG'
-	ELSE 'ZAHLUNGSANORDNUNG' END AS INVOICE_STATUS,
-c.invoice_number, c.date_invoice_due, c.date_invoice_receipt, c.date_factually_accurate, c.date_hauptkasse, c.comment_invoice
-FROM Finance_Request a
-LEFT JOIN Finance_Cost b ON (a.OA_ID = b.OA_ID)
-LEFT JOIN Finance_Invoice c ON (b.Invoice_number = c.Invoice_number)
-LEFT JOIN Finance_Budget d ON (b.Budget_id = d.Budget_id)
-where budget_year = 2023 OR Comment_cost like '%_2023%';
-
-select * from View_All_Tables_2023;
-
-drop view View_All_Tables;
-CREATE VIEW View_All_Tables AS
-SELECT DISTINCT a.oa_id, a.ticket_number, a.decision, a.reason_denied, a.date_approved, a.postpayment_check, a.comment_postpayment_check, a.report, a.processing_status, a.processing_comment, a.research_article, a.first_name, a.family_name, a.dfg_number, a.institution, a.school, a.faculty, a.publisher, a.journal, a.eissn, a.title, a.article_type, a.manuskript_id, a.doi, a.date_acceptance, a.date_publishing, a.license, a.media_type,
-b.budget_id, d.budget_year, b.cost_type, b.contract_type, b.amount_net, b.currency, b.amount_euro_net, b.vat_percent,
-CASE
-WHEN b.Amount_payment_brut is null and currency = 'EUR' THEN ROUND(b.amount_net * VAT_Percent,2)
-WHEN b.Amount_payment_brut is null and currency <> 'EUR' THEN ROUND(b.amount_euro_net * VAT_Percent,2)
-ELSE b.Amount_payment_brut END AS amount_euro_brut,
-b.amount_payment_brut, b.comment_cost,
-CASE
-	WHEN decision = 'n' THEN 'ABLEHNUNG'
-	WHEN b.Amount_payment_brut is null AND date_factually_accurate is null THEN 'FESTLEGUNG'
-	WHEN b.Amount_payment_brut is not null THEN 'ZAHLUNG'
-	ELSE 'ZAHLUNGSANORDNUNG' END AS INVOICE_STATUS,
-c.invoice_number, c.date_invoice_due, c.date_invoice_receipt, c.date_factually_accurate, c.date_hauptkasse, c.comment_invoice
-FROM Finance_Request a
-LEFT JOIN Finance_Cost b ON (a.OA_ID = b.OA_ID)
-LEFT JOIN Finance_Invoice c ON (b.Invoice_number = c.Invoice_number)
-LEFT JOIN Finance_Budget d ON (b.Budget_id = d.Budget_id);
-
---Views für DropDown-Felder
-CREATE VIEW View_formular_license AS
-select distinct license from finance_request order by license;
-
-CREATE VIEW View_formular_media_type AS
-select distinct media_type from finance_request order by media_type;
-
---CREATE VIEW View_formular_Reason_Denied AS
---select distinct Reason_Denied from finance_request order by Reason_Denied;
-
-CREATE VIEW View_formular_decision AS
-select distinct decision from finance_request order by decision;
-
-CREATE VIEW View_formular_postpayment_Check AS
-select distinct postpayment_Check from finance_request order by postpayment_Check;
-
-CREATE VIEW View_formular_research_article AS
-select distinct research_article from finance_request order by research_article;
-
-
-select * from finance_request where decision = 'J' 
-
-
-
-
-
---Kontrolle MDPL-Rechnung 30.08.2023 											  
-WITH BASIS AS
-(
-select distinct a.oa_id, a.amount_net, a.currency, a.amount_euro_net, a.Amount_payment_brut, a.Budget_ID, Budget_Year, date_factually_accurate, b.Amount_budget_brut as Budget,
-CASE
-WHEN a.Amount_payment_brut is null and currency = 'EUR'  THEN ROUND(a.amount_net * VAT_Percent,2)
-WHEN a.Amount_payment_brut is null and currency <> 'EUR'  THEN ROUND(a.amount_euro_net * VAT_Percent,2)
-ELSE a.Amount_payment_brut END AS Amount,
-CASE
-	WHEN a.Amount_payment_brut is null AND date_factually_accurate is null THEN 'FESTLEGUNG'
-	WHEN a.Amount_payment_brut is not null THEN 'ZAHLUNG'
-	ELSE 'ZAHLUNGSANORDNUNG' END AS INVOICE_STATUS	
-from Finance_Cost a
-JOIN Finance_Budget b ON (a.Budget_id = b.Budget_id)
-LEFT JOIN Finance_Invoice c ON (a.Invoice_number = c.Invoice_number)
-)
-select oa_id, Budget_Year, Budget_ID, cast(Amount as money) AS Amount, cast(Budget as money) as Budget, INVOICE_STATUS
-FROM basis
---where INVOICE_STATUS = 'ZAHLUNGSANORDNUNG'
-where OA_ID IN ('OA2022_511', 'OA2022_661', 'OA2022_683', 'OA2023_007', 'OA2023_030', 'OA2023_037', 'OA2023_039',
-											  'OA2023_043', 'OA2023_065', 'OA2023_073', 'OA2023_076', 'OA2023_080', 'OA2023_081', 'OA2023_094',
-											  'OA2023_097', 'OA2023_124', 'OA2023_125', 'OA2023_131', 'OA2023_143', 'OA2023_158', 'OA2023_178',
-											  'OA2023_179', 'OA2023_197', 'OA2023_202')
-
-
-
-
---Für Haushalt: Alle Zahlungen, die festgelegt sind oder in Zahlungsanordnung
-CREATE VIEW View_Budget_FESTLEGUNGEN_ZAHLUNGSANORDNUNG AS
-WITH BASIS AS
-(
-select distinct a.oa_id, a.amount_net, a.currency, a.amount_euro_net, a.Amount_payment_brut, a.Budget_ID, Budget_Year, date_factually_accurate, b.Amount_budget_brut as Budget,
-CASE
-WHEN a.Amount_payment_brut is null and currency = 'EUR'  THEN ROUND(a.amount_net * VAT_Percent,2)
-WHEN a.Amount_payment_brut is null and currency <> 'EUR'  THEN ROUND(a.amount_euro_net * VAT_Percent,2)
-ELSE a.Amount_payment_brut END AS Amount	
-from Finance_Cost a
-JOIN Finance_Budget b ON (a.Budget_id = b.Budget_id)
-LEFT JOIN Finance_Invoice c ON (a.Invoice_number = c.Invoice_number)
-where b.budget_id IN ('DFG_2023', 'SLUB_2023', 'TUD_EL_2023') and a.Amount_payment_brut is null
-),
-basis1 AS
-(
-select oa_id, Budget_Year, Budget_ID, cast(Amount as money) AS Amount, cast(Budget as money) as Budget
-FROM basis
-)
-select distinct Budget_Year, Budget_ID, SUM(Amount) OVER (PARTITION BY Budget_ID) AS SUM_AMOUNT FROM basis1;
-
-
-
------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------
---drop view View_Extern_ORG_ZAHLUNG;
-CREATE VIEW View_Extern_ORG_ZAHLUNG AS
-WITH BASIS AS
-(
-select distinct a.oa_id, a.amount_net, a.currency, a.amount_euro_net, a.Amount_payment_brut, Budget_Year, date_factually_accurate, institution, School, Faculty,
-CASE
-WHEN a.Amount_payment_brut is null and currency = 'EUR'  THEN ROUND(a.amount_net * VAT_Percent,2)
-WHEN a.Amount_payment_brut is null and currency <> 'EUR'  THEN ROUND(a.amount_euro_net * VAT_Percent,2)
-ELSE a.Amount_payment_brut END AS Amount,
-CASE
-	WHEN a.Amount_payment_brut is null AND date_factually_accurate is null THEN 'FESTLEGUNG'
-	WHEN a.Amount_payment_brut is null AND date_factually_accurate is not null THEN 'ZAHLUNGSANORDNUNG'
-	ELSE 'ZAHLUNG' END AS INVOICE_STATUS	
-from Finance_Cost a
-JOIN Finance_Budget b ON (a.Budget_id = b.Budget_id)
-JOIN Finance_Request d ON (a.OA_ID = d.OA_ID)	
-LEFT JOIN Finance_Invoice c ON (a.Invoice_number = c.Invoice_number)
-where decision IN ('j', 'o') AND Budget_Year = 2023 AND OA_Status IN ('Fully OA', 'Hybrid')
-),
-basis1 AS
-(
-select distinct oa_id, Budget_Year, Amount, School, Faculty,
-CASE
-	WHEN Amount_payment_brut is null AND date_factually_accurate is null THEN 'FESTLEGUNG'
-	WHEN Amount_payment_brut is null AND date_factually_accurate is not null THEN 'ZAHLUNGSANORDNUNG'
-	ELSE 'ZAHLUNG' END AS INVOICE_STATUS
-FROM basis
-),
-basis2 AS
-(
-select distinct Budget_Year, INVOICE_STATUS, School, Faculty,
-COUNT(OA_ID) OVER (PARTITION BY School) AS CNT_School,
-cast(SUM(Amount) OVER (PARTITION BY School) as money) AS AMOUNT_School,
-COUNT(OA_ID) OVER (PARTITION BY Faculty) AS CNT_Faculty,
-cast(SUM(Amount) OVER (PARTITION BY Faculty) as money) AS AMOUNT_Faculty	
-FROM basis1
-	where INVOICE_STATUS IN ('ZAHLUNG', 'ZAHLUNGSANORNUNG')
-order by School, Faculty
-)
-select distinct Budget_Year, School, Faculty, 
-CONCAT(CNT_School, ' (', AMOUNT_School, ')') AS Value_School, CONCAT(CNT_Faculty, ' (', AMOUNT_Faculty, ')') AS Value_Faculty	
-FROM basis2;
\ No newline at end of file
-- 
GitLab