Files
GMW/GMW_DB/dbo/Functions/f_odetteCalcDest.sql
T
Samuele Locatelli a6d7ea0b2f Import iniziale DB, GMW
versione TK 2.4
inclusione schema voc x tabella lingue e vocabolario
2014-02-20 09:54:57 +01:00

56 lines
2.0 KiB
Transact-SQL

/***************************************
* 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