/****** Object: Table [dbo].[DMS_Dokument] Script Date: 19.09.2018 19:47:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[DMS_Dokument]( [nreintrag] [int] IDENTITY(1,1) NOT NULL, [dms_strukturnr] [int] NULL, [bezeichnung] [varchar](255) NULL, [beschreibung] [varchar](1024) NULL, [pfad] [varchar](1024) NULL, [erstellt_am] [datetime] NULL, [mutiert_am] [datetime] NULL, [mutierer] [int] NULL, [aktiv] [bit] NULL, [indb] [bit] NULL, [Termin] [varchar](255) NULL, [Erinnerung] [bit] NULL, [Termintext] [varchar](1024) NULL, [Keyvalue] [int] NULL, [dokumentfile] [image] NULL, [nrfaktura] [int] NULL, CONSTRAINT [PK_DMS_Dokument] PRIMARY KEY CLUSTERED ( [nreintrag] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO /****** Object: Table [dbo].[DMS_Settings] Script Date: 19.09.2018 19:47:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[DMS_Settings]( [nreintrag] [int] IDENTITY(1,1) NOT NULL, [Einstellung] [varchar](255) NULL, [Wert] [varchar](255) NULL, [erstellt_am] [datetime] NULL, [mutiert_am] [datetime] NULL, [mutierer] [int] NULL, [aktiv] [bit] NULL, CONSTRAINT [PK_DMS_Settings] PRIMARY KEY CLUSTERED ( [nreintrag] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO /****** Object: Table [dbo].[DMS_Struktur] Script Date: 19.09.2018 19:47:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[DMS_Struktur]( [Eintragnr] [int] IDENTITY(1,1) NOT NULL, [Parentid] [int] NULL, [Bezeichnung] [varchar](255) NULL, [erstellt_am] [datetime] NULL, [mutiert_am] [datetime] NULL, [mutierer] [int] NULL, [aktiv] [bit] NULL, CONSTRAINT [PK_DMS_Struktur] PRIMARY KEY CLUSTERED ( [Eintragnr] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO /****** Object: Table [dbo].[dms_vorlage] Script Date: 19.09.2018 19:47:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[dms_vorlage]( [nreintrag] [int] IDENTITY(1,1) NOT NULL, [strukturnr] [int] NULL, [Bezeichnung] [varchar](255) NULL, [Beschreibng] [varchar](1024) NULL, [aktiv] [bit] NULL, [erstllt_am] [datetime] NULL, [mutiert_am] [datetime] NULL, [mutierer] [int] NULL, [vorlage] [image] NULL, CONSTRAINT [PK_dms_vorlage] PRIMARY KEY CLUSTERED ( [nreintrag] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO SET IDENTITY_INSERT [dbo].[DMS_Settings] ON INSERT [dbo].[DMS_Settings] ([nreintrag], [Einstellung], [Wert], [erstellt_am], [mutiert_am], [mutierer], [aktiv]) VALUES (1, N'Dokumente in DB', N'false', CAST(N'2018-09-10T00:00:00.000' AS DateTime), CAST(N'2018-09-10T00:00:00.000' AS DateTime), 1, 1) INSERT [dbo].[DMS_Settings] ([nreintrag], [Einstellung], [Wert], [erstellt_am], [mutiert_am], [mutierer], [aktiv]) VALUES (2, N'Dokumentpfad', N'h:\dpm\dokumente\', CAST(N'2018-09-10T00:00:00.000' AS DateTime), CAST(N'2018-09-10T00:00:00.000' AS DateTime), 1, 1) INSERT [dbo].[DMS_Settings] ([nreintrag], [Einstellung], [Wert], [erstellt_am], [mutiert_am], [mutierer], [aktiv]) VALUES (3, N'Editierbare Dokumenttypne', N'docx,docm,doc,dot,xlsx,xlsm', CAST(N'2018-09-10T00:00:00.000' AS DateTime), NULL, 1, 1) INSERT [dbo].[DMS_Settings] ([nreintrag], [Einstellung], [Wert], [erstellt_am], [mutiert_am], [mutierer], [aktiv]) VALUES (4, N'Sicherungsverzeichnis', N'h:\dpm\dokumente\Sicherungen', CAST(N'2018-09-10T00:00:00.000' AS DateTime), CAST(N'2018-09-10T00:00:00.000' AS DateTime), 1, 1) INSERT [dbo].[DMS_Settings] ([nreintrag], [Einstellung], [Wert], [erstellt_am], [mutiert_am], [mutierer], [aktiv]) VALUES (5, N'Sicherung bei Dokumentbearbieutng', N'True', CAST(N'2018-09-10T00:00:00.000' AS DateTime), CAST(N'2018-09-10T00:00:00.000' AS DateTime), 1, 1) INSERT [dbo].[DMS_Settings] ([nreintrag], [Einstellung], [Wert], [erstellt_am], [mutiert_am], [mutierer], [aktiv]) VALUES (6, N'Preview_Dir', N'h:\dpm\dokumente\Vorschau', CAST(N'2018-09-10T00:00:00.000' AS DateTime), CAST(N'2018-09-10T00:00:00.000' AS DateTime), 1, 1) INSERT [dbo].[DMS_Settings] ([nreintrag], [Einstellung], [Wert], [erstellt_am], [mutiert_am], [mutierer], [aktiv]) VALUES (7, N'Excluded PreviewTypes', N'odt', CAST(N'2018-09-10T00:00:00.000' AS DateTime), CAST(N'2018-09-10T00:00:00.000' AS DateTime), 1, 1) INSERT [dbo].[DMS_Settings] ([nreintrag], [Einstellung], [Wert], [erstellt_am], [mutiert_am], [mutierer], [aktiv]) VALUES (8, N'DM_Struktur eigene Rechnungen', N'6', CAST(N'2018-09-10T00:00:00.000' AS DateTime), CAST(N'2018-09-10T00:00:00.000' AS DateTime), 1, 1) INSERT [dbo].[DMS_Settings] ([nreintrag], [Einstellung], [Wert], [erstellt_am], [mutiert_am], [mutierer], [aktiv]) VALUES (9, N'DMS_Struktur fremde Rechnungen', N'7', CAST(N'2018-09-10T00:00:00.000' AS DateTime), CAST(N'2018-09-10T00:00:00.000' AS DateTime), 1, 1) INSERT [dbo].[DMS_Settings] ([nreintrag], [Einstellung], [Wert], [erstellt_am], [mutiert_am], [mutierer], [aktiv]) VALUES (10, N'Copy_RG_To_Garanz', N'True', CAST(N'2018-09-10T00:00:00.000' AS DateTime), CAST(N'2018-09-10T00:00:00.000' AS DateTime), 1, 1) SET IDENTITY_INSERT [dbo].[DMS_Settings] OFF SET IDENTITY_INSERT [dbo].[DMS_Struktur] ON INSERT [dbo].[DMS_Struktur] ([Eintragnr], [Parentid], [Bezeichnung], [erstellt_am], [mutiert_am], [mutierer], [aktiv]) VALUES (0, NULL, N'Root', CAST(N'2018-09-10T00:00:00.000' AS DateTime), CAST(N'2018-09-10T00:00:00.000' AS DateTime), 1, 1) INSERT [dbo].[DMS_Struktur] ([Eintragnr], [Parentid], [Bezeichnung], [erstellt_am], [mutiert_am], [mutierer], [aktiv]) VALUES (1, 0, N'Briefe', CAST(N'2018-09-10T00:00:00.000' AS DateTime), CAST(N'2018-09-10T00:00:00.000' AS DateTime), 1, 1) INSERT [dbo].[DMS_Struktur] ([Eintragnr], [Parentid], [Bezeichnung], [erstellt_am], [mutiert_am], [mutierer], [aktiv]) VALUES (2, 0, N'Mails', CAST(N'2018-09-10T00:00:00.000' AS DateTime), CAST(N'2018-09-10T00:00:00.000' AS DateTime), 1, 1) INSERT [dbo].[DMS_Struktur] ([Eintragnr], [Parentid], [Bezeichnung], [erstellt_am], [mutiert_am], [mutierer], [aktiv]) VALUES (3, 0, N'Bilder', CAST(N'2018-09-10T00:00:00.000' AS DateTime), CAST(N'2018-09-10T00:00:00.000' AS DateTime), 1, 1) INSERT [dbo].[DMS_Struktur] ([Eintragnr], [Parentid], [Bezeichnung], [erstellt_am], [mutiert_am], [mutierer], [aktiv]) VALUES (5, 0, N'Rechnungen', CAST(N'2018-09-10T00:00:00.000' AS DateTime), CAST(N'2018-09-10T00:00:00.000' AS DateTime), 1, 1) INSERT [dbo].[DMS_Struktur] ([Eintragnr], [Parentid], [Bezeichnung], [erstellt_am], [mutiert_am], [mutierer], [aktiv]) VALUES (6, 5, N'EIgene Rechnungen', CAST(N'2018-09-10T00:00:00.000' AS DateTime), CAST(N'2018-09-10T00:00:00.000' AS DateTime), 1, 1) INSERT [dbo].[DMS_Struktur] ([Eintragnr], [Parentid], [Bezeichnung], [erstellt_am], [mutiert_am], [mutierer], [aktiv]) VALUES (7, 5, N'Fremde Rechnungen', CAST(N'2018-09-10T00:00:00.000' AS DateTime), CAST(N'2018-09-10T00:00:00.000' AS DateTime), 1, 1) SET IDENTITY_INSERT [dbo].[DMS_Struktur] OFF /****** Object: StoredProcedure [dbo].[sp_get_fakturadata] Script Date: 19.09.2018 19:45:03 ******/ DROP PROCEDURE [dbo].[sp_get_fakturadata] GO /****** Object: StoredProcedure [dbo].[sp_get_fakturadata] Script Date: 19.09.2018 19:45:03 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: -- Create date: -- Description: -- ============================================= CREATE PROCEDURE [dbo].[sp_get_fakturadata] @behandlungsnr INT , @typ INT , @betrag FLOAT = 0 , @rate INT = 0, @verbuchen INT = 0, @kopie INT = 0, @ifakturanr INT = 0, @iMahnStufe INT = 0, @iHauptfakturanr int=0 AS BEGIN --INSERT __log (logeintrag) VALUES(@kopie) DECLARE @rgdatum DATETIME SET @rgdatum=GETDATE() IF @kopie = 1 BEGIN SELECT @rgdatum=datum FROM faktura WHERE Nrfaktura=@ifakturanr END IF @iMahnStufe>0 BEGIN SET @rgdatum=GETDATE() end DECLARE @type INT; DECLARE @Tabelle_ohne_datum TABLE ( [Typ] [INT] NULL , [SSO_Nummer] [VARCHAR](255) NULL , [Bezd] [VARCHAR](255) NULL , [Taxpunkte] [FLOAT] NULL , [Menge] [FLOAT] NULL , [Frankenprotaxpunkt] [FLOAT] NULL , [Absolut] [INT] NULL , [Leistungstotal] [FLOAT] NULL , [NrBehandlung] INT ); DECLARE @Tabelle_mit_datum TABLE ( [Typ] [INT] NULL , [Datum] [DATE] NULL , [SSO_Nummer] [VARCHAR](255) NULL , [Bezd] [VARCHAR](255) NULL , [Taxpunkte] [FLOAT] NULL , [Menge] [FLOAT] NULL , [Frankenprotaxpunkt] [FLOAT] NULL , [Absolut] [BIT] NULL , [Leistungstotal] [FLOAT] NULL , [nrbehandlu] INT ); DECLARE @lr_tabelle_mit_Datum TABLE ( pk INT NOT NULL IDENTITY(1, 1) , [L_Datum] [DATE] NULL , [L_SSO_Nummer] [VARCHAR](255) NULL , [L_Bezd] [VARCHAR](255) NULL , [L_Taxpunkte] [FLOAT] NULL , [L_Menge] [FLOAT] NULL , [L_Frankenprotaxpunkt] [FLOAT] NULL , [L_Absolut] [BIT] NULL , [L_Leistungstotal] [FLOAT] NULL , [R_Datum] [DATE] NULL , [R_SSO_Nummer] [VARCHAR](255) NULL , [R_Bezd] [VARCHAR](255) NULL , [R_Taxpunkte] [FLOAT] NULL , [R_Menge] [FLOAT] NULL , [R_Frankenprotaxpunkt] [FLOAT] NULL , [R_Absolut] [BIT] NULL , [R_Leistungstotal] [FLOAT] NULL , PRIMARY KEY ( pk ) ); DECLARE @lr_tabelle_dentotar TABLE ( pk INT NOT NULL IDENTITY(1, 1) , datum DATE NULL , tarif VARCHAR(255) , tarifziffer VARCHAR(255) NULL , tariftext VARCHAR(255) NULL , bezugsziffer VARCHAR(255) NULL , si VARCHAR(255) NULL , st VARCHAR(255) NULL , anzahl INT NULL , tpal_preis DECIMAL(10, 2) NULL , f_al DECIMAL(10, 2) NULL , tpw_al DECIMAL(10, 2) NULL , f_tl DECIMAL(10, 2) NULL , tpw_tl DECIMAL(10, 2) NULL , a INT NULL , v INT NULL , p INT NULL , m INT NULL , betrag DECIMAL(10, 2) NULL PRIMARY KEY ( pk ) ); DECLARE @lr_tabelle_ohne_Datum TABLE ( pk INT NOT NULL IDENTITY(1, 1) , [L_SSO_Nummer] [VARCHAR](255) NULL , [L_Bezd] [VARCHAR](255) NULL , [L_Taxpunkte] [FLOAT] NULL , [L_Menge] [FLOAT] NULL , [L_Frankenprotaxpunkt] [FLOAT] NULL , [L_Absolut] [BIT] NULL , [L_Leistungstotal] [FLOAT] NULL , [R_SSO_Nummer] [VARCHAR](255) NULL , [R_Bezd] [VARCHAR](255) NULL , [R_Taxpunkte] [FLOAT] NULL , [R_Menge] [FLOAT] NULL , [R_Frankenprotaxpunkt] [FLOAT] NULL , [R_Absolut] [BIT] NULL , [R_Leistungstotal] [FLOAT] NULL , PRIMARY KEY ( pk ) ); DECLARE @Nrbehandlung AS INT , @Behandlungsbeginn AS DATE , @Behandlungsende AS DATE , @Patient AS VARCHAR(51) , @Behandler AS VARCHAR(51) , @Taxpunktwert AS FLOAT , @Rabatt AS FLOAT , @Total AS FLOAT , @Rechnungsbemerkung AS VARCHAR(255) , @Ratenzuschlag AS FLOAT , @Andrucken_Taxpunkte AS BIT , @Anzahlung AS FLOAT , @ESTyp INT , @Nrleistung AS INT , @Datum AS DATE , @SSO_Nummer AS VARCHAR(255) , @Taxpunkte AS FLOAT , @Menge AS FLOAT , @Frankenprotaxpunkt AS FLOAT , @Absolut AS BIT , @Leistungstotal AS FLOAT , @Bezd AS VARCHAR(255) , @@AdressZeile1 AS VARCHAR(255) , @AdressZeile2 AS VARCHAR(255) , @AdressZeile3 AS VARCHAR(255) , @AdressZeile4 AS VARCHAR(255) , @AdressZeile5 AS VARCHAR(255) , @Total_SSO AS FLOAT , @Total_Medikamente AS FLOAT , @Total_Labor AS FLOAT , @RabattTotal AS FLOAT , @Vorauszahlung AS FLOAT , @TotalTextblock AS VARCHAR(1024) , @TotalNumBlock AS VARCHAR(1024) , @Anzahlraten INT , @Ungeraterateamstart INT , @i INT , @franken VARCHAR(255) , @rappen VARCHAR(255) , @totalstring VARCHAR(255) , @faelligkeit DATETIME , @hauptfaktura VARCHAR(255); DECLARE @esdaten TABLE ( [Vs_konto] [VARCHAR](20) NULL , [Vs_belegart] [VARCHAR](2) NULL , [Vs_teilnehmernummer] [VARCHAR](20) NULL , [Vs_besrid] [VARCHAR](20) NULL , [Bankzeile1] [VARCHAR](50) NULL , [Bankzeile2] [VARCHAR](50) NULL , [Bankzeile3] [VARCHAR](50) NULL , [ZuGunstenVon1] [VARCHAR](50) NULL , [ZuGunstenVon2] [VARCHAR](50) NULL , [ZuGunstenVon3] [VARCHAR](50) NULL , [ZuGunstenVon4] [VARCHAR](50) NULL , [Total_Franken] FLOAT , [Nur_Franken] INT , [Nur_Rappen] VARCHAR(2) , Referenzzeile1 VARCHAR(255) , referenzzeile2 VARCHAR(255) , fakturanr VARCHAR(255) , rate INT , zahlungsfrist INT , faelligkeit DATETIME , hauptfaktura VARCHAR(255), mahndatum DATETIME, mahnfaelligkeit DATETIME, mahnzuschlag FLOAT, mahnstufe INT, FakturaDatum datetime ); IF @typ = 1 BEGIN-- Kontoinformationen / ES_Daten DECLARE @manr INT; DECLARE @totalbetrag FLOAT; DECLARE @rc INT; DECLARE @FAKTURANR INT; DECLARE @vz FLOAT; SELECT @vz = dbo.Get_Totale(5, @behandlungsnr); SET @vz = 0; SET @rc = 0; IF @kopie=1 Or @ifakturanr<>0 BEGIN SET @fakturanr=@ifakturanr END ELSE BEGIN SET @FAKTURANR = dbo.get_FakturaNr(); END IF @betrag <> 0 SET @totalbetrag = @betrag; SELECT @manr = Nrbehandler , @totalbetrag = Total , @Anzahlraten = Anzahlraten , @Ungeraterateamstart = Ungeraterateamstart FROM Behandlu WHERE Nrbehandlung = @behandlungsnr; SET @totalbetrag = dbo.GetRoundedValue(@totalbetrag - @vz); SELECT @rc = COUNT(*) FROM dbo.VDKonti WHERE NrPrivat = @manr; PRINT @totalbetrag; IF @rc = 0 SET @manr = 1; PRINT FLOOR(@totalbetrag); PRINT ( @totalbetrag - FLOOR(@totalbetrag) ) * 100; DECLARE @temp FLOAT; DECLARE @temp1 FLOAT; DECLARE @temp2 FLOAT; DECLARE @temp3 VARCHAR(255); DECLARE @tage_zahlungsfrist INT; SELECT @tage_zahlungsfrist = INHALT FROM dbo.OPTIONS WHERE NROPTION = 2000; IF @Anzahlraten > 1 BEGIN SET @temp = FLOOR(FLOOR(@totalbetrag) / @Anzahlraten); -- Rate ohne Nachkommastellen SET @temp1 = @temp * @Anzahlraten; SET @temp2 = @temp + ( @totalbetrag - @temp1 ); -- ungerate rate IF @rate <= 1 BEGIN IF @Ungeraterateamstart = 1 BEGIN SET @totalbetrag = @temp2; END; ELSE BEGIN SET @totalbetrag = @temp; END; SET @hauptfaktura = @FAKTURANR; SET @faelligkeit = DATEADD(dd, @tage_zahlungsfrist, GETDATE()); SET @faelligkeit = DATEADD(dd, @tage_zahlungsfrist, @rgdatum); END; ELSE BEGIN IF @Ungeraterateamstart = 1 AND @rate =1 BEGIN SET @totalbetrag = @temp2; END; ELSE if @Ungeraterateamstart = 0 and @rate=@Anzahlraten begin set @totalbetrag=@temp2 end else BEGIN SET @totalbetrag = @temp; END; set @hauptfaktura=@iHauptfakturanr if @kopie=0 set @fakturanr=dbo.get_FakturaNr() SET @faelligkeit = DATEADD(dd, @tage_zahlungsfrist * @rate, GETDATE()); SET @faelligkeit = DATEADD(dd, @tage_zahlungsfrist * @rate, @rgdatum); END; END; ELSE BEGIN SET @hauptfaktura = @FAKTURANR; SET @faelligkeit = DATEADD(dd, @tage_zahlungsfrist, GETDATE()); SET @faelligkeit = DATEADD(dd, @tage_zahlungsfrist, @rgdatum); END; DECLARE @mahndatum date DECLARE @mahnfaelligkeit date DECLARE @mahnstufe INT DECLARE @mahnzuschlag FLOAT DECLARE @tmp INT DECLARE @tmpbetrag FLOAT DECLARE @fakturadatum DATETIME SET @mahndatum=GETDATE() SET @mahnfaelligkeit=GETDATE() SET @mahnzuschlag=0 IF @iMahnStufe = 1 BEGIN SET @mahndatum=GETDATE() SELECT @tmp=inhalt FROM options WHERE NROPTION=5005 SET @mahnfaelligkeit=@mahndatum SET @mahnfaelligkeit=DATEADD(d,@tmp,GETDATE()) SELECT @mahnzuschlag=inhalt FROM options WHERE nroption=5010 SELECT @fakturadatum=datum FROM faktura WHERE Nrfaktura=@ifakturanr PRINT @ifakturanr END IF @iMahnStufe = 2 BEGIN SELECT @mahndatum = mahndatum1 FROM faktura WHERE Nrfaktura=@FAKTURANR --SET @mahndatum=GETDATE() SELECT @tmp=inhalt FROM options WHERE NROPTION=5006 SET @mahnfaelligkeit=@mahndatum SET @mahnfaelligkeit=DATEADD(d,@tmp,getdate()) SELECT @mahnzuschlag=inhalt FROM options WHERE nroption=5011 END IF @iMahnStufe = 3 BEGIN SET @mahndatum=GETDATE() SELECT @mahndatum = mahndatum2 FROM faktura WHERE Nrfaktura=@FAKTURANR SELECT @tmp=inhalt FROM options WHERE NROPTION=5007 SET @mahnfaelligkeit=@mahndatum SET @mahnfaelligkeit=DATEADD(d,@tmp,GETDATE()) SELECT @mahnzuschlag=inhalt FROM options WHERE nroption=5012 END SET @totalbetrag=@totalbetrag+@mahnzuschlag SET @totalstring = CONVERT(NUMERIC(10, 2), @totalbetrag); SET @franken = SUBSTRING(@totalstring, 1, CHARINDEX('.', @totalstring) - 1); SET @rappen = SUBSTRING(@totalstring, CHARINDEX('.', @totalstring) + 1, 2); WHILE LEN(@rappen)<2 BEGIN SET @rappen='0'+LTRIM(RTRIM(STR(@rappen))) END PRINT @franken; PRINT @rappen; PRINT @totalstring; INSERT @esdaten SELECT Vs_konto , Vs_belegart , Vs_teilnehmernummer , Vs_besrid , Bankzeile1 , Bankzeile2 , Bankzeile3 , ZuGunstenVon1 , ZuGunstenVon2 , ZuGunstenVon3 , ZuGunstenVon4 , @totalbetrag , @franken ,--FLOOR(@totalbetrag) , @rappen ,--( @totalbetrag - FLOOR(@totalbetrag) ) * 100 , ' ' , ' ' , @FAKTURANR , @rate , @tage_zahlungsfrist , @faelligkeit , @hauptfaktura, @mahndatum, @mahnfaelligkeit, @mahnzuschlag, @imahnstufe, @fakturadatum FROM dbo.VDKonti WHERE NrPrivat = @manr; SELECT * FROM @esdaten; END; DECLARE @mitdatum INT; SELECT @mitdatum = MitDatum FROM Behandlu WHERE Nrbehandlung = @behandlungsnr; IF @typ = 2 BEGIN -- Empfängerdaten / Allg Behandlung / Totale DECLARE @absenderort AS VARCHAR(255) SELECT TOP 1 @absenderort = absenderort FROM absender SET @absenderort=@absenderort + ', '+CONVERT(VARCHAR(10),@rgdatum,104) SELECT 1 AS Typ , @rgdatum AS Rechnungsdatum, @mitdatum AS MitDatum , dbo.Behandlu.Nrbehandlung , dbo.Behandlu.Behandlungsbeginn , dbo.Behandlu.Behandlungsende , dbo.PRIVAT.NAME + ' ' + dbo.PRIVAT.VORNAME AS Patient , dbo.PRIVAT.NAME AS Patient_Name , dbo.PRIVAT.VORNAME AS Patient_Vorname , dbo.PRIVAT.STRASSE AS Patient_Strasse , dbo.PRIVAT.PLZ AS Patient_PLZ , dbo.PRIVAT.ORT AS Patient_Ort , dbo.PRIVAT.Kanton AS Patient_Kanton , dbo.PRIVAT.AHVNR AS Patient_AHVNr , CASE WHEN dbo.PRIVAT.GESCHLECHT = 0 THEN 'M' ELSE 'W' END AS Patient_Geschlecht , CONVERT(VARCHAR(10),dbo.PRIVAT.GEBDAT,104) AS Patient_Geburtsdatum , dbo.PRIVAT.GLN AS Patient_GLNr , privat_1.NAME + ' ' + privat_1.VORNAME AS Behandler , dbo.Behandlu.Taxpunktwert , dbo.Behandlu.Rabatt , dbo.Behandlu.Total , dbo.Behandlu.Rechnungsbemerkung , dbo.Behandlu.Ratenzuschlag , dbo.Behandlu.Andrucken_Taxpunkte , dbo.Behandlu.Anzahlung , dbo.Behandlu.Nrestyp , dbo.Behandlu.Fallnummer , dbo.Behandlu.Anzahlraten , dbo.Behandlu.Unfalldatum, dbo.behandlu.Datum_Kostengutsprache, dbo.behandlu.Kostengutsprache_Nummer, dbo.behandlu.Behandlungsgrund, dbo.behandlu.Diagnose, dbo.behandlu.GLN_Liste, dbo.get_adresszeile(1, dbo.Behandlu.Nrbehandlung) AS AdressZeile1 , dbo.get_adresszeile(2, dbo.Behandlu.Nrbehandlung) AS AdressZeile2 , dbo.get_adresszeile(3, dbo.Behandlu.Nrbehandlung) AS AdressZeile3 , dbo.get_adresszeile(4, dbo.Behandlu.Nrbehandlung) AS AdressZeile4 , dbo.get_adresszeile(5, dbo.Behandlu.Nrbehandlung) AS AdressZeile5 , dbo.Get_Dentotar_Parameter(11, dbo.Behandlu.Nrbehandlung) AS GLN_Empfaenger , dbo.get_adresse(dbo.Behandlu.Nrbehandlung, 0) AS Empfaenger , dbo.Get_Totale(1, dbo.Behandlu.Nrbehandlung) AS Total_SSO , dbo.Get_Totale(2, dbo.Behandlu.Nrbehandlung) AS Total_Medikamente , dbo.Get_Totale(3, dbo.Behandlu.Nrbehandlung) AS Total_Labor , dbo.Get_Totale(4, dbo.Behandlu.Nrbehandlung) AS RabattTotal , dbo.Get_Totale(5, dbo.Behandlu.Nrbehandlung) AS Vorauszahlung , dbo.get_totalblock(1, dbo.Behandlu.Nrbehandlung) AS TotalTextblock , dbo.get_totalblock(2, dbo.Behandlu.Nrbehandlung) AS TotalNumBlock , dbo.Get_Dentotar_Parameter(1, dbo.Behandlu.Nrbehandlung) AS Rechnungstitel , dbo.Get_Dentotar_Parameter(2, dbo.Behandlu.Nrbehandlung) AS Dokument_Identifikation , dbo.Get_Dentotar_Parameter(3, dbo.Behandlu.Nrbehandlung) AS RG_Steller_GLN , dbo.Get_Dentotar_Parameter(4, dbo.Behandlu.Nrbehandlung) AS RG_Steller_ZSR , dbo.Get_Dentotar_Parameter(5, dbo.Behandlu.Nrbehandlung) AS RG_Steller_Name , dbo.Get_Dentotar_Parameter(6, dbo.Behandlu.Nrbehandlung) AS RG_Steller_Adresse , dbo.Get_Dentotar_Parameter(15, dbo.Behandlu.Nrbehandlung) AS RG_Steller_Tel , dbo.Get_Dentotar_Parameter(16, dbo.Behandlu.Nrbehandlung) AS RG_Steller_Fax , (SELECT ISNULL(GLN,'') FROM privat WHERE nrprivat=behandlu.Nrbehandler) AS Leistungserbringer_GSN, (SELECT ISNULL(ZSR,'') FROM privat WHERE nrprivat=behandlu.Nrbehandler) AS Leistungserbringer_ZSR, (SELECT name+' '+vorname FROM privat WHERE nrprivat=behandlu.Nrbehandler) AS Leistungserbringer_Name, --dbo.Get_Dentotar_Parameter(7, -- dbo.Behandlu.Nrbehandlung) AS Leistungserbringer_GSN , --dbo.Get_Dentotar_Parameter(8, -- dbo.Behandlu.Nrbehandlung) AS Leistungserbringer_ZSR , --dbo.Get_Dentotar_Parameter(9, -- dbo.Behandlu.Nrbehandlung) AS Leistungserbringer_Name , dbo.Get_Dentotar_Parameter(10, dbo.Behandlu.Nrbehandlung) AS Leistungserbringer_Adresse , dbo.Get_Dentotar_Parameter(12, dbo.Behandlu.Nrbehandlung) AS Verguetungsart , --dbo.Get_Dentotar_Parameter(13, -- dbo.Behandlu.Nrbehandlung) AS Gesetz , dbo.get_gesetz(dbo.Behandlu.Nrbehandlung) AS Gesetz, dbo.Get_Dentotar_Parameter(14, dbo.Behandlu.Nrbehandlung) AS Rolle_Ort , dbo.Get_Dentotar_Parameter(17, dbo.Behandlu.Nrbehandlung) AS Leistungserbringer_Tel , dbo.Get_Dentotar_Parameter(18, dbo.Behandlu.Nrbehandlung) AS Leistungserbringer_Fax, CASE WHEN @kopie=0 THEN 'nein' ELSE 'nein' END AS Kopie, @absenderort AS Absenderort_Datum, dbo.get_behandlungsart(dbo.behandlu.nrbehandlung) AS Behandlungsart INTO #tmp1 FROM dbo.Behandlu INNER JOIN dbo.PRIVAT ON dbo.Behandlu.Nrpatient = dbo.PRIVAT.NRPRIVAT INNER JOIN dbo.PRIVAT AS privat_1 ON dbo.Behandlu.Nrbehandler = privat_1.NRPRIVAT WHERE Behandlu.Nrbehandlung = @behandlungsnr; SELECT * FROM #tmp1; END; IF @typ = 3 OR @typ = 4 BEGIN -- Leistungen DECLARE @pk INT; IF @mitdatum = 1 BEGIN -- Nach Datum INSERT @Tabelle_mit_datum SELECT * FROM View_Leistungen_mit_Datum WHERE Nrbehandlung = @behandlungsnr ORDER BY Datum , SSO_Nummer; SET @i = 1; DECLARE xc CURSOR FOR SELECT * FROM @Tabelle_mit_datum ORDER BY Datum , [SSO_Nummer]; OPEN xc; FETCH NEXT FROM xc INTO @type, @Datum, @SSO_Nummer, @Bezd, @Taxpunkte, @Menge, @Frankenprotaxpunkt, @Absolut, @Leistungstotal, @Nrbehandlung; WHILE @@FETCH_STATUS = 0 BEGIN IF @i = 1 BEGIN INSERT @lr_tabelle_mit_Datum ( L_Datum , L_SSO_Nummer , L_Bezd , L_Taxpunkte , L_Menge , L_Frankenprotaxpunkt , L_Absolut , L_Leistungstotal , R_Datum , R_SSO_Nummer , R_Bezd , R_Taxpunkte , R_Menge , R_Frankenprotaxpunkt , R_Absolut , R_Leistungstotal ) VALUES ( @Datum , -- L_Datum - date @SSO_Nummer , -- L_SSO_Nummer - int @Bezd , -- L_Bezd - varchar(255) @Taxpunkte , -- L_Taxpunkte - float @Menge , -- L_Menge - float @Frankenprotaxpunkt , -- L_Frankenprotaxpunkt - float @Absolut , -- L_Absolut - bit @Leistungstotal , -- L_Leistungstotal - float NULL , -- R_Datum - date NULL , -- R_SSO_Nummer - int CONVERT(VARCHAR(255), '') , -- R_Bezd - varchar(255) NULL , -- R_Taxpunkte - float NULL , -- R_Menge - float NULL , -- R_Frankenprotaxpunkt - float NULL , -- R_Absolut - bit NULL -- R_Leistungstotal - float ); SET @i = @i + 1; END; ELSE BEGIN SELECT TOP 1 @pk = pk FROM @lr_tabelle_mit_Datum ORDER BY pk DESC; UPDATE @lr_tabelle_mit_Datum SET R_Datum = @Datum , R_SSO_Nummer = @SSO_Nummer , R_Bezd = @Bezd , R_Taxpunkte = @Taxpunkte , R_Menge = @Menge , R_Frankenprotaxpunkt = @Frankenprotaxpunkt , R_Absolut = @Absolut , R_Leistungstotal = @Leistungstotal WHERE pk = @pk; SET @i = 1; END; FETCH NEXT FROM xc INTO @type, @Datum, @SSO_Nummer, @Bezd, @Taxpunkte, @Menge, @Frankenprotaxpunkt, @Absolut, @Leistungstotal, @Nrbehandlung; END; CLOSE xc; DEALLOCATE xc; IF @typ = 4 BEGIN PRINT 'a0'; SELECT * FROM @lr_tabelle_mit_Datum; END; ELSE BEGIN SELECT * FROM @Tabelle_mit_datum; END; END; ELSE BEGIN -- ohne Datum INSERT @Tabelle_ohne_datum SELECT * FROM View_Leistungen_ohne_Datum WHERE Nrbehandlung = @behandlungsnr ORDER BY SSO_Nummer; SET @i = 1; DECLARE xc CURSOR FOR SELECT * FROM @Tabelle_ohne_datum ORDER BY [SSO_Nummer]; OPEN xc; FETCH NEXT FROM xc INTO @type, @SSO_Nummer, @Bezd, @Taxpunkte, @Menge, @Frankenprotaxpunkt, @Absolut, @Leistungstotal, @Nrbehandlung; WHILE @@FETCH_STATUS = 0 BEGIN IF @i = 1 BEGIN INSERT @lr_tabelle_ohne_Datum ( L_SSO_Nummer , L_Bezd , L_Taxpunkte , L_Menge , L_Frankenprotaxpunkt , L_Absolut , L_Leistungstotal , R_SSO_Nummer , R_Bezd , R_Taxpunkte , R_Menge , R_Frankenprotaxpunkt , R_Absolut , R_Leistungstotal ) VALUES ( @SSO_Nummer , -- L_SSO_Nummer - int @Bezd , -- L_Bezd - varchar(255) @Taxpunkte , -- L_Taxpunkte - float @Menge , -- L_Menge - float @Frankenprotaxpunkt , -- L_Frankenprotaxpunkt - float @Absolut , -- L_Absolut - bit @Leistungstotal , -- L_Leistungstotal - float NULL , -- R_SSO_Nummer - int CONVERT(VARCHAR(255), '') , -- R_Bezd - varchar(255) NULL , -- R_Taxpunkte - float NULL , -- R_Menge - float NULL , -- R_Frankenprotaxpunkt - float NULL , -- R_Absolut - bit NULL -- R_Leistungstotal - float ); SET @i = @i + 1; END; ELSE BEGIN SELECT TOP 1 @pk = pk FROM @lr_tabelle_ohne_Datum ORDER BY pk DESC; PRINT @pk; UPDATE @lr_tabelle_ohne_Datum SET R_SSO_Nummer = @SSO_Nummer , R_Bezd = @Bezd , R_Taxpunkte = @Taxpunkte , R_Menge = @Menge , R_Frankenprotaxpunkt = @Frankenprotaxpunkt , R_Absolut = @Absolut , R_Leistungstotal = @Leistungstotal WHERE pk = @pk; SET @i = 1; END; FETCH NEXT FROM xc INTO @type, @SSO_Nummer, @Bezd, @Taxpunkte, @Menge, @Frankenprotaxpunkt, @Absolut, @Leistungstotal, @Nrbehandlung; END; CLOSE xc; DEALLOCATE xc; IF @typ = 4 BEGIN SELECT '' AS Datum , * FROM @lr_tabelle_ohne_Datum; END; ELSE BEGIN SELECT '' AS Datum , * FROM @Tabelle_ohne_datum; END; END; END; IF @typ = 5 BEGIN SELECT * FROM View_Leistungen_Dentotar WHERE Nrbehandlung = @behandlungsnr; END; END; GO /****** Object: UserDefinedFunction [dbo].[get_adresse_firmaprivat] Script Date: 29.09.2018 10:05:23 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: -- Create date: -- Description: -- ============================================= CREATE FUNCTION [dbo].[get_adresse_firmaprivat] ( @keyvalue INT, @einzeilig INT=0 ) RETURNS varchar(255) AS BEGIN DECLARE @Adresstype int DECLARE @res VARCHAR(255) DECLARE @res2 VARCHAR(255) DECLARE @ansprechpartner INT declare @adresse varchar(255) DECLARE @crlf varchar(2) SET @crlf = char(13) + char(10) IF @einzeilig=1 SET @crlf = ' ' IF @keyvalue > 49000 GOTO Firmenadresse SET @adresse='' SET @res='' SELECT @res=dbo.anrede.Anrede_D FROM dbo.anrede INNER JOIN dbo.privat ON dbo.anrede.NRANREDE = dbo.privat.NRANREDE WHERE (dbo.privat.NRPRIVAT = @keyvalue) SET @adresse=@res SET @res='' SELECT @res=ISNULL(dbo.titel.titel_d,'') FROM dbo.Titel INNER JOIN dbo.privat ON dbo.titel.nrtitel = dbo.privat.nrtitel WHERE (dbo.privat.NRPRIVAT = @keyvalue) IF @res<>'' SET @adresse=@adresse+@crlf+@res SET @res='' SELECT @res= vorname+' '+name FROM privat WHERE NRPRIVAT=@keyvalue IF @res<>'' SET @adresse=@adresse+@crlf+@res SET @res='' SELECT @res=ISNULL(COADRESSE,'') FROM privat WHERE (dbo.privat.NRPRIVAT = @keyvalue) IF @res<>'' SET @adresse=@adresse+@crlf+@res SET @res='' SELECT @res=ISNULL(COADRESSE,'') FROM privat WHERE (dbo.privat.NRPRIVAT = @keyvalue) IF @res<>'' SET @adresse=@adresse+@crlf+@res SET @res='' SELECT @res= STRASSE FROM privat WHERE NRPRIVAT=@keyvalue IF @res<>'' SET @adresse=@adresse+@crlf+@res SET @res='' SELECT @res=plz+' '+ort FROM privat WHERE NRPRIVAT=@keyvalue IF @res<>'' SET @adresse=@adresse+@crlf+@res SET @res=@adresse GOTO ende firmenadresse: SET @adresse='' SET @res='' SELECT @adresse=name1 FROM firma WHERE NRFIRMA=@keyvalue SELECT @res=ISNULL(name2,'') FROM dbo.FIRMA WHERE NRFIRMA=@keyvalue IF @res<>'' SET @adresse=@adresse+@crlf+@res SELECT @res=ISNULL(dbo.ANREDE.Anrede_D +' '+ dbo.firmaap.NAME,'') FROM dbo.ANREDE LEFT OUTER JOIN dbo.FIRMAAP ON dbo.ANREDE.NRANREDE = dbo.FIRMAAP.NRANREDE IF @res<>'' SET @adresse=@adresse+@crlf+@res SELECT @res=ISNULL(strasse,'') FROM dbo.FIRMA WHERE NRFIRMA=@keyvalue IF @res<>'' SET @adresse=@adresse+@crlf+@res SELECT @res=ISNULL(POSTFACH,'') FROM dbo.FIRMA WHERE NRFIRMA=@keyvalue IF @res<>'' SET @adresse=@adresse+@crlf+@res SELECT @res=ISNULL(plz+' '+ort,'') FROM dbo.FIRMA WHERE NRFIRMA=@keyvalue IF @res<>'' SET @adresse=@adresse+@crlf+@res SET @res=@adresse ende: RETURN @res END GO