You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

937 lines
89 KiB

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.


/****** 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: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <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: <Author,,Name>
-- Create date: <Create Date, ,>
-- Description: <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