/****** Object: UserDefinedFunction [dbo].[get_offener_betrag] Script Date: 12.05.2018 07:51:54 ******/ DROP FUNCTION [dbo].[get_offener_betrag] GO /****** Object: UserDefinedFunction [dbo].[get_offener_betrag] Script Date: 12.05.2018 07:51:54 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: -- Create date: -- Description: -- ============================================= CREATE FUNCTION [dbo].[get_offener_betrag] ( -- Add the parameters for the function here @fakturanr INT ) RETURNS DECIMAL(10,2) AS BEGIN DECLARE @RESULT FLOAT DECLARE @result1 FLOAT SELECT @result=total FROM faktura WHERE nrfaktura=@fakturanr SELECT @RESULT1=ISNULL(SUM(Betrag), 0) FROM dbo.Zahlung WHERE (Status <> 9) AND (Nrfaktura = @fakturanr) AND (CAST(aktiv AS INT) = 1) RETURN @RESULT-@RESULt1 END GO /****** Object: UserDefinedFunction [dbo].[get_adresse_direkt] Script Date: 12.05.2018 07:52:22 ******/ DROP FUNCTION [dbo].[get_adresse_direkt] GO /****** Object: UserDefinedFunction [dbo].[get_adresse_direkt] Script Date: 12.05.2018 07:52:22 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: -- Create date: -- Description: -- ============================================= CREATE FUNCTION [dbo].[get_adresse_direkt] ( @keyvalue INT, @einzeilig INT=0 ) RETURNS VARCHAR(255) AS BEGIN DECLARE @Adresstype int DECLARE @Nrprivat int DECLARE @res VARCHAR(255) DECLARE @res2 VARCHAR(255) DECLARE @garant INT DECLARE @ansprechpartner INT declare @adresse varchar(255) DECLARE @crlf varchar(2) SET @crlf = char(13) + char(10) IF @einzeilig=1 SET @crlf = ' ' SET @garant=@keyvalue SET @nrprivat=@keyvalue IF @garant > 0 AND @garant > 49000 GOTO Firmenadresse SET @adresse='' SELECT @res=dbo.anrede.Anrede_D FROM dbo.anrede INNER JOIN dbo.privat ON dbo.anrede.NRANREDE = dbo.privat.NRANREDE WHERE (dbo.privat.NRPRIVAT = @Nrprivat) 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 = @Nrprivat) IF @res<>'' SET @adresse=@adresse+@crlf+@res SELECT @res= vorname+' '+name FROM privat WHERE NRPRIVAT=@Nrprivat IF @res<>'' SET @adresse=@adresse+@crlf+@res SELECT @res=ISNULL(COADRESSE,'') FROM privat WHERE (dbo.privat.NRPRIVAT = @Nrprivat) IF @res<>'' SET @adresse=@adresse+@crlf+@res SELECT @res=ISNULL(COADRESSE,'') FROM privat WHERE (dbo.privat.NRPRIVAT = @Nrprivat) IF @res<>'' SET @adresse=@adresse+@crlf+@res SELECT @res= STRASSE FROM privat WHERE NRPRIVAT=@Nrprivat IF @res<>'' SET @adresse=@adresse+@crlf+@res SELECT @res=plz+' '+ort FROM privat WHERE NRPRIVAT=@Nrprivat IF @res<>'' SET @adresse=@adresse+@crlf+@res SET @res=@adresse GOTO ende firmenadresse: SET @adresse='' SET @res='' SELECT @adresse=name1 FROM firma WHERE NRFIRMA=@garant SELECT @res=ISNULL(name2,'') FROM dbo.FIRMA WHERE NRFIRMA=@garant 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=@garant IF @res<>'' SET @adresse=@adresse+@crlf+@res SELECT @res=ISNULL(POSTFACH,'') FROM dbo.FIRMA WHERE NRFIRMA=@garant IF @res<>'' SET @adresse=@adresse+@crlf+@res SELECT @res=ISNULL(plz+' '+ort,'') FROM dbo.FIRMA WHERE NRFIRMA=@garant IF @res<>'' SET @adresse=@adresse+@crlf+@res SET @res=@adresse --SET @res='' --IF @zeilenr=1 BEGIN -- SELECT @res=name1 FROM firma WHERE nrfirma=@garant --END --IF @ZeileNr=2 BEGIN -- IF @ansprechpartner<>0 BEGIN -- SELECT @res=dbo.ANREDE.Anrede_D +' '+ dbo.firmaap.NAME FROM dbo.ANREDE LEFT OUTER JOIN dbo.FIRMAAP ON dbo.ANREDE.NRANREDE = dbo.FIRMAAP.NRANREDE -- END ELSE begin -- SELECT @res=ISNULL(name2,'') FROM firma WHERE NRFIRMA=@garant --end --END --IF @ZeileNr=3 BEGIN -- IF @ansprechpartner<>0 BEGIN -- SELECT @res=ISNULL(name2,'') FROM firma WHERE NRFIRMA=@garant --END ELSE BEGIN -- SELECT @res=ISNULL(Strasse,'') FROM firma WHERE NRFIRMA=@garant -- END --end --IF @ZeileNr=4 BEGIN -- IF @ansprechpartner<>0 BEGIN -- SELECT @res=ISNULL(Strasse,'') FROM firma WHERE NRFIRMA=@garant --END ELSE BEGIN -- SELECT @res2=ISNULL(postfach,'') FROM firma WHERE NRFIRMA=@garant --IF @res2='' SELECT @res=plz + ' '+ort FROM dbo.FIRMA WHERE NRFIRMA=@garant ELSE SET @res=@res2 -- END --end --IF @ZeileNr=5 BEGIN -- IF @ansprechpartner<>0 BEGIN -- SELECT @res=plz + ' '+ort FROM dbo.FIRMA WHERE NRFIRMA=@garant --END ELSE BEGIN -- SELECT @res=ISNULL(Postfach,'') FROM firma WHERE NRFIRMA=@garant -- END --end --RETURN @res ende: RETURN @res END GO /****** Object: UserDefinedFunction [dbo].[get_offener_betrag] Script Date: 12.05.2018 07:52:46 ******/ DROP FUNCTION [dbo].[get_offener_betrag] GO /****** Object: UserDefinedFunction [dbo].[get_offener_betrag] Script Date: 12.05.2018 07:52:46 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: -- Create date: -- Description: -- ============================================= CREATE FUNCTION [dbo].[get_offener_betrag] ( -- Add the parameters for the function here @fakturanr INT ) RETURNS DECIMAL(10,2) AS BEGIN DECLARE @RESULT FLOAT DECLARE @result1 FLOAT SELECT @result=total FROM faktura WHERE nrfaktura=@fakturanr SELECT @RESULT1=ISNULL(SUM(Betrag), 0) FROM dbo.Zahlung WHERE (Status <> 9) AND (Nrfaktura = @fakturanr) AND (CAST(aktiv AS INT) = 1) RETURN @RESULT-@RESULt1 END GO /****** Object: StoredProcedure [dbo].[sp_reset_Mahnstufe] Script Date: 12.05.2018 08:56:39 ******/ DROP PROCEDURE [dbo].[sp_reset_Mahnstufe] GO /****** Object: StoredProcedure [dbo].[sp_reset_Mahnstufe] Script Date: 12.05.2018 08:56:39 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: -- Create date: -- Description: -- ============================================= CREATE PROCEDURE [dbo].[sp_reset_Mahnstufe] @stufe INT, @nrfaktura INT AS BEGIN SET NOCOUNT ON; IF @stufe=1 UPDATE faktura SET Mahndatum1=NULL, Mahnfaelligkeit1=NULL,Mahngebuehr1=0 WHERE Nrfaktura=@nrfaktura IF @stufe=2 UPDATE faktura SET Mahndatum2=NULL, Mahnfaelligkeit2=NULL,Mahngebuehr2=0 WHERE Nrfaktura=@nrfaktura IF @stufe=3 UPDATE faktura SET Mahndatum3=NULL, Mahnfaelligkeit3=NULL,Mahngebuehr3=0 WHERE Nrfaktura=@nrfaktura END GO DROP VIEW [dbo].[View_Offene_Rechnungen] GO /****** Object: View [dbo].[View_Offene_Rechnungen] Script Date: 12.05.2018 09:11:16 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE VIEW [dbo].[View_Offene_Rechnungen] AS SELECT TOP (100) PERCENT dbo.DEBITOR.Nreintrag, dbo.Faktura.Nrfaktura, dbo.DEBITOR.Faelligam, dbo.DEBITOR.Betrag, dbo.DEBITOR.Status, dbo.get_adresse_direkt(dbo.DEBITOR.Nrpatient, 1) AS Patient, ISNULL(dbo.get_adresse_direkt(dbo.DEBITOR.Nrdebitor, 1), '') AS Debitor, dbo.DEBITOR.Nrpatient, dbo.get_offener_betrag(dbo.Faktura.Nrfaktura) AS Offener_Betrag, dbo.DEBITOR.Nrdebitor, dbo.Faktura.Mahndatum1, dbo.Faktura.Mahnfaelligkeit1, dbo.Faktura.Mahngebuehr1, dbo.Faktura.Mahndatum2, dbo.Faktura.Mahnfaelligkeit2, dbo.Faktura.Mahngebuehr2, dbo.Faktura.Mahndatum3, dbo.Faktura.Mahnfaelligkeit3, dbo.Faktura.Mahngebuehr3 FROM dbo.DEBITOR INNER JOIN dbo.Faktura ON dbo.DEBITOR.Nrfaktura = dbo.Faktura.Nrfaktura WHERE (dbo.DEBITOR.Status <> 9) AND (dbo.DEBITOR.Betrag <> 0) AND (dbo.DEBITOR.aktiv = 1) AND (dbo.get_offener_betrag(dbo.Faktura.Nrfaktura) > 0) ORDER BY dbo.DEBITOR.Faelligam DESC GO