PDC_REPORT_CreazioneDB/sql/Produzione/funzioni/dbo_GeneraChiaveContratto.sql
2025-06-10 16:47:41 +02:00

36 lines
2.2 KiB
Transact-SQL

CREATE FUNCTION [dbo].[GeneraChiaveContratto]
(
@TipoProdotto varchar(5)='',
@CodInterno varchar(13)='', @CodMAF varchar(13)='', @CodISIN varchar(16)='', @CodSottoprodotto varchar(13)='',
@CodiceContratto varchar(11)='',@NumeroPolizza varchar(11)= '', @Conto varchar(12)= '',
@Rubricato varchar(4)='',@CustodiaGaranzia varchar(1)='',
@Termid varchar(8)='', @Anno decimal(3)=0, @Prog decimal(9)=0
)
RETURNS varchar(123)
AS
BEGIN
-- Questa funzione concatena i dati dormando una stringa unica
DECLARE @ResultVar VARCHAR(123)
DECLARE @t1 VARCHAR(63)
DECLARE @tp VARCHAR(5)
DECLARE @t2 VARCHAR(60)
declare @AnnoS as varchar(3)
declare @ProgS as varchar(9)
set @AnnoS = cast(@Anno as varchar(3))
set @ProgS = cast(@Prog as varchar(9))
set @t2= '@'+ rtrim(isnull(@CodInterno, '')) + rtrim(isnull(@CodMAF, '')) + rtrim(isnull(@CodISIN, '')) + rtrim(isnull(@CodSottoprodotto, ''))
set @tp = rtrim(@TipoProdotto)+ '@'
if len(rtrim(isnull(@Conto, ''))) <12 set @Conto= REPLICATE ( '0' ,12-len(rtrim(isnull(@Conto, ''))) ) +rtrim(isnull(@Conto, ''))
if len(rtrim(isnull(@Rubricato, ''))) <3 set @Rubricato= REPLICATE ( '0' ,3-len(rtrim(isnull(@Rubricato, ''))) ) +rtrim(isnull(@Rubricato, ''))
if len(rtrim(isnull(@CustodiaGaranzia, ''))) <1 set @CustodiaGaranzia= '0'
if len(rtrim(isnull(@NumeroPolizza, ''))) <11 set @NumeroPolizza= REPLICATE ( '0' ,11-len(rtrim(isnull(@NumeroPolizza, ''))) ) +rtrim(isnull(@NumeroPolizza, ''))
if len(rtrim(isnull(@Termid, ''))) <8 set @Termid= REPLICATE ( '0' ,8-len(rtrim(isnull(@Termid, ''))) ) +rtrim(isnull(@Termid, ''))
if len(rtrim(isnull(@AnnoS, 0))) <3 set @AnnoS= REPLICATE ( '0' ,3-len(rtrim(isnull(@AnnoS, 0))) ) +rtrim(isnull(@AnnoS, 0))
if len(rtrim(isnull(@ProgS, 0))) <9 set @ProgS= REPLICATE ( '0' ,9-len(rtrim(isnull(@ProgS, 0))) ) +rtrim(isnull(@ProgS, 0))
set @t1= rtrim(isnull(@CodiceContratto,'e'))+rtrim(isnull(@Conto,'e'))+ rtrim(isnull(@Rubricato,'e'))+
rtrim(isnull(@CustodiaGaranzia, 'e'))+ rtrim(isnull(@NumeroPolizza,'e'))+rtrim(isnull(@Termid, 'e'))+
rtrim(isnull(@AnnoS, 'e'))+rtrim(isnull(@ProgS, 'e'))
set @ResultVar = isnull(@tp,'tp') +isnull(@t1,'1') + isnull(@t2,'2')
-- Return the result of the function
RETURN @ResultVar
END