/*************************************** * FUNCTION f_calcDestOdette * * Compongo il primo campo delle odette ( campo_2 ) x il destinatario/molo * * Steamware, S.E.L. * mod: 14/05/2013 * ****************************************/ CREATE FUNCTION [dbo].[f_odetteCalcDest] (@INEND VARCHAR(50) , @CCDMOL VARCHAR(50), @CCDPTR VARCHAR(50), @CDINB VARCHAR(50), @CRAGCL VARCHAR(50) , @TELND VARCHAR(50) ) RETURNS NVARCHAR(50) AS BEGIN DECLARE @answ NVARCHAR(50) = '' DECLARE @destP1A NVARCHAR(50) = '' DECLARE @destP2A NVARCHAR(50) = '' DECLARE @destP1 NVARCHAR(50) = '' DECLARE @destP2 NVARCHAR(50) = '' DECLARE @destP3 NVARCHAR(50) = '' IF GETDATE() < '20140101' -- 06/12/2013 Hard Coded x Modifica Anagrafica Articoli BEGIN -- Se il campo INEND è vuoto devo prendere sempre gli altri campi CCDMOL e CCDPTR SET @destP1A = CASE WHEN (SUBSTRING(@INEND,1,30)) = '' THEN (@CCDMOL) ELSE dbo.f_trim(SUBSTRING(@INEND,16,15)) END SET @destP2A = CASE WHEN (SUBSTRING(@INEND,1,30)) = '' THEN (@CCDPTR) ELSE dbo.f_trim(SUBSTRING(@INEND,1,15)) END END ELSE BEGIN -- Se il campo INEND è vuoto devo prendere sempre gli altri campi CCDMOL e CCDPTR SET @destP1A = CASE WHEN (SUBSTRING(@INEND,1,20)) = '' THEN (@CCDMOL) ELSE dbo.f_trim(SUBSTRING(@INEND,16,5)) END SET @destP2A = CASE WHEN (SUBSTRING(@INEND,1,20)) = '' THEN (@CCDPTR) ELSE dbo.f_trim(SUBSTRING(@INEND,1,15)) END END SET @destP1 = CASE WHEN (@CDINB) <> '' THEN @destP1A ELSE (@CCDMOL) END SET @destP2 = CASE WHEN (@CDINB) <> '' THEN @destP2A ELSE (@CCDPTR) END -- solo se BMW metto /S SET @destP3 = CASE WHEN @CRAGCL = '13' OR ( @CDINB <> '' AND SUBSTRING(@TELND,19,2) = '13') THEN '/S' ELSE '' END IF @destP1 + @destP2 <> '' SET @answ = @destP1 + '/' + @destP2 + @destP3 ELSE SET @answ = '' RETURN @answ END