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

35 lines
1.4 KiB
Transact-SQL

CREATE FUNCTION [dbo].[Crea_positionIDProposta]
(
@ChiaveCatalogo VARCHAR(35)='',
@CodiceContratto VARCHAR(11)='',
@Conto VARCHAR(12)= '',
@Rubricato VARCHAR(4)='',
@TipoProdotto VARCHAR(20)='',
@NumeroPolizza VARCHAR(11)= ''
)
RETURNS VARCHAR(123)
AS
BEGIN
DECLARE @ResultVar VARCHAR(123)
DECLARE @CatalogueID VARCHAR(128)
DECLARE @TitoloPCT VARCHAR(1)
DECLARE @PCTKEY VARCHAR(20)
SET @TitoloPCT = '0'
SET @PCTKEY = REPLICATE('0',20)
SELECT @CatalogueID = ISNULL(CatalogueID,'CHIAVE CATALOGO NON TROVATA')
FROM c6staging.CATITEMREF catalogo
WHERE catalogo.OID$ = @ChiaveCatalogo
IF LEN(RTRIM(ISNULL(@CodiceContratto, ''))) <11
SET @CodiceContratto= REPLICATE ( '0' ,11-LEN(RTRIM(ISNULL(@CodiceContratto, ''))) ) + RTRIM(ISNULL(@CodiceContratto, ''))
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 RTRIM(@TipoProdotto) = 'DT'
SET @TitoloPCT = '1'
IF LEN(RTRIM(ISNULL(@NumeroPolizza, ''))) <11
SET @NumeroPolizza= REPLICATE ( '0' ,11-LEN(RTRIM(ISNULL(@NumeroPolizza, ''))) ) + RTRIM(ISNULL(@NumeroPolizza, ''))
SET @ResultVar = @CatalogueID + @CodiceContratto + @Conto + @Rubricato + @TitoloPCT + @NumeroPolizza + @PCTKEY
-- Return the result of the function
RETURN @ResultVar
END