update vers 550 x nuova procedura (TSQL) x creazione odette
This commit is contained in:
@@ -0,0 +1,329 @@
|
||||
set ANSI_NULLS on;
|
||||
go
|
||||
|
||||
/***************************************
|
||||
* 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 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) = ''
|
||||
|
||||
-- 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
|
||||
|
||||
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
|
||||
go
|
||||
|
||||
/***************************************
|
||||
* FUNCTION f_odetteCalcNAEL
|
||||
*
|
||||
* Compongo il primo campo delle odette campo 14 ( Change Index ) o codice NAEL + esponente di modifica particolare )
|
||||
*
|
||||
* Steamware, S.E.L.
|
||||
* mod: 14/05/2013
|
||||
*
|
||||
****************************************/
|
||||
create FUNCTION f_odetteCalcNAEL (@CRAGCL VARCHAR(50) , @TELND VARCHAR(50), @ECDNAE VARCHAR(50),@ECDNA1 VARCHAR(50)
|
||||
,@EESPMD VARCHAR(50), @OCDODM VARCHAR(50)
|
||||
)
|
||||
RETURNS NVARCHAR(50) AS
|
||||
BEGIN
|
||||
|
||||
DECLARE @answ NVARCHAR(50) = ''
|
||||
DECLARE @codNaelP1 NVARCHAR(50) = ''
|
||||
DECLARE @codNaelP2 NVARCHAR(50) = ''
|
||||
DECLARE @codNaelP3 NVARCHAR(50) = ''
|
||||
|
||||
-- Se il cliente è BMW calcolo campi x NAEL
|
||||
SET @codNaelP1 = CASE WHEN dbo.f_trim(@CRAGCL) = '13' OR dbo.f_trim(SUBSTRING(@TELND,19,2)) = '13' THEN dbo.f_trim(@ECDNAE) ELSE '' END
|
||||
SET @codNaelP2 = CASE WHEN dbo.f_trim(@CRAGCL) = '13' OR dbo.f_trim(SUBSTRING(@TELND,19,2)) = '13' THEN dbo.f_trim(@ECDNA1) ELSE '' END
|
||||
SET @codNaelP3 = CASE WHEN dbo.f_trim(@CRAGCL) = '13' OR dbo.f_trim(SUBSTRING(@TELND,19,2)) = '13' THEN dbo.f_trim(@EESPMD) ELSE '' END
|
||||
|
||||
|
||||
SET @answ = CASE WHEN dbo.f_trim(@CRAGCL) = '13' OR dbo.f_trim(SUBSTRING(@TELND,19,2)) = '13'
|
||||
THEN 'ZI:'+ @codNaelP1 + ' ' + @codNaelP2 + ' AI:'+ @codNaelP3
|
||||
ELSE @OCDODM -- se non BMW
|
||||
END
|
||||
|
||||
RETURN @answ
|
||||
|
||||
END
|
||||
go
|
||||
|
||||
|
||||
set xact_abort on;
|
||||
go
|
||||
|
||||
begin transaction;
|
||||
go
|
||||
|
||||
set ANSI_NULLS on;
|
||||
go
|
||||
|
||||
/*****************************************
|
||||
* STORED stp_ODETTE_updateVal
|
||||
*
|
||||
* effettua aggiornamento valori etichetta Odette
|
||||
*
|
||||
* Steamware, S.E.L.
|
||||
* mod: 2011.04.28
|
||||
*
|
||||
****************************************/
|
||||
alter PROCEDURE stp_ODETTE_updateVal
|
||||
(
|
||||
@UDC NVARCHAR(50),
|
||||
@ragSocCli NVARCHAR(50),
|
||||
@indirCli NVARCHAR(50),
|
||||
@capCittCli NVARCHAR(50),
|
||||
@ragSocDest NVARCHAR(50),
|
||||
@indirDest NVARCHAR(50),
|
||||
@capCittDest NVARCHAR(50),
|
||||
@pesoNetto NVARCHAR(50),
|
||||
@pesoLordo NVARCHAR(50),
|
||||
@numColli NVARCHAR(50),
|
||||
@disPart NVARCHAR(50),
|
||||
@descPart NVARCHAR(50),
|
||||
@codPart NVARCHAR(50),
|
||||
@codImb NVARCHAR(50),
|
||||
@codMaz NVARCHAR(50),
|
||||
@codNael NVARCHAR(50),
|
||||
@codAQP NVARCHAR(50)
|
||||
)
|
||||
AS
|
||||
|
||||
-- COMMIT TRAN
|
||||
|
||||
|
||||
-- update valori (sovrascrivo...)
|
||||
UPDATE Odette
|
||||
SET Campo1_2 = @ragSocCli,
|
||||
Campo1_3 = @indirCli,
|
||||
Campo1_4 = @capCittCli,
|
||||
Campo2_2 = @ragSocDest,
|
||||
Campo2_3 = @indirDest,
|
||||
Campo2_4 = @capCittDest,
|
||||
Campo5_2 = @pesoNetto,
|
||||
Campo6_2 = @pesoLordo,
|
||||
Campo7_2 = @numColli,
|
||||
Campo8_2 = @disPart,
|
||||
Campo8_3 = @disPart,
|
||||
Campo10_2 = @descPart,
|
||||
Campo11_1_2 = @codPart,
|
||||
Campo11_1_3 = @codPart,
|
||||
Campo11_2_2 = @codImb,
|
||||
Campo11_2_3 = @codImb,
|
||||
Campo12_2 = @codMaz,
|
||||
Campo12_3 = @codMaz,
|
||||
Campo14_2 = @codNael,
|
||||
Campo16_5 = ISNULL(@codAQP,'')
|
||||
|
||||
WHERE CampoUDC = @UDC
|
||||
|
||||
RETURN
|
||||
go
|
||||
|
||||
commit;
|
||||
go
|
||||
|
||||
|
||||
set xact_abort on;
|
||||
go
|
||||
|
||||
begin transaction;
|
||||
go
|
||||
|
||||
set ANSI_NULLS on;
|
||||
go
|
||||
|
||||
/*****************************************
|
||||
* STORED stp_ODETTE_caricaDatiBollaEtichettaOdette
|
||||
*
|
||||
* carica i dati x odette dai valori delel tab lette da as400 (rimpiazza procedura c#)
|
||||
*
|
||||
* Steamware, S.E.L.
|
||||
* mod: 2011.04.28
|
||||
*
|
||||
****************************************/
|
||||
alter PROCEDURE stp_ODETTE_caricaDatiBollaEtichettaOdette
|
||||
(
|
||||
@CodCS NVARCHAR(2),
|
||||
@UDC NVARCHAR(50),
|
||||
@numBolla NVARCHAR(6),
|
||||
@dataBolla NVARCHAR(8),
|
||||
@CodMag NVARCHAR(2),
|
||||
@GrpBolla NVARCHAR(1),
|
||||
@Particolare NVARCHAR(15)
|
||||
)
|
||||
|
||||
AS
|
||||
|
||||
SET NOCOUNT ON
|
||||
/* Dichiarazione variabili iniziale */
|
||||
|
||||
DECLARE @ragSocCli NVARCHAR(50) = ''
|
||||
DECLARE @indirCli NVARCHAR(50) = ''
|
||||
DECLARE @capCittCli NVARCHAR(50) = ''
|
||||
DECLARE @destinatario NVARCHAR(50) = ''
|
||||
DECLARE @ragSocDest NVARCHAR(50) = ''
|
||||
DECLARE @indirDest NVARCHAR(50) = ''
|
||||
DECLARE @capCittDest NVARCHAR(50) = ''
|
||||
DECLARE @peso NUMERIC(7,3) = 0
|
||||
DECLARE @pesoNetto NVARCHAR(50) = ''
|
||||
DECLARE @pesoLordo NVARCHAR(50) = ''
|
||||
DECLARE @numColli NVARCHAR(50) = ''
|
||||
DECLARE @disPart NVARCHAR(50) = ''
|
||||
DECLARE @descPart NVARCHAR(50) = ''
|
||||
DECLARE @codPart NVARCHAR(50) = ''
|
||||
DECLARE @codImb NVARCHAR(50) = ''
|
||||
DECLARE @codMaz NVARCHAR(50) = ''
|
||||
DECLARE @codNael NVARCHAR(50) = ''
|
||||
DECLARE @codNaelP1 NVARCHAR(50) = ''
|
||||
DECLARE @codNaelP2 NVARCHAR(50) = ''
|
||||
DECLARE @codNaelP3 NVARCHAR(50) = ''
|
||||
DECLARE @codAQP NVARCHAR(50) = ''
|
||||
|
||||
-- altre variabili accessorie
|
||||
DECLARE @trovati INT = 0
|
||||
DECLARE @qtaUdc INT = 1
|
||||
|
||||
-- in primis recupero la riga di dati da AS400...
|
||||
SELECT @trovati = COUNT(*)
|
||||
FROM RawData.BORI202J
|
||||
WHERE CDMFS = @CodMag
|
||||
AND GRBOS = @GrpBolla
|
||||
AND NRBOS = @numBolla
|
||||
AND DTBOS = @DataBolla
|
||||
AND CDARS = @Particolare
|
||||
|
||||
-- carico i dati dell'UDC
|
||||
SELECT @qtaUdc = Qta
|
||||
FROM ElencoCartellini
|
||||
WHERE UDC = @UDC
|
||||
|
||||
-- proseguo solo se ho trovato la bolla!
|
||||
IF(@trovati > 0)
|
||||
BEGIN
|
||||
|
||||
SELECT TOP 1
|
||||
-- campo 1 indirizzo destinazione cliente ( Receiver )
|
||||
@ragSocCli = CASE WHEN dbo.f_trim(CDINB) <> '' AND @CodCS <> 'TK' THEN dbo.f_trim(RA1ND) ELSE dbo.f_trim(RASCL) END
|
||||
,@indirCli = CASE WHEN dbo.f_trim(CDINB) <> '' AND @CodCS <> 'TK' THEN dbo.f_trim(RA2ND) ELSE dbo.f_trim(INDCL) END
|
||||
,@capCittCli = CASE WHEN dbo.f_trim(CDINB) <> '' AND @CodCS <> 'TK' THEN dbo.f_trim(CAPND) + ' ' + dbo.f_trim(CITND)
|
||||
ELSE dbo.f_trim(CAPCL) + ' ' + dbo.f_trim(LOCCL) + ' ' +dbo.f_trim(PROCL) END
|
||||
|
||||
-- campo 2 punto di rifornimento / molo / uso ( Destination )
|
||||
-- ATTENZIONE NON POSSO TESTARE QUI LE VARIABILI MA SOLO ASSEGNARLE!!! NEL CASE LE VALUTA SEMPRE VUOTE
|
||||
,@destinatario = dbo.f_odetteCalcDest( dbo.f_trim(INEND), dbo.f_trim(CCDMOL), dbo.f_trim(CCDPTR), dbo.f_trim(CDINB),
|
||||
dbo.f_trim(CRAGCL), dbo.f_trim(TELND) )
|
||||
|
||||
-- Leggo i dati che mi servono dopo nel caso il destinatario sia vuoto ( VEDI DOPO SELECT )
|
||||
,@ragSocDest = dbo.f_trim(RA1ND)
|
||||
,@indirDest = dbo.f_trim(RA2ND)
|
||||
,@capCittDest = dbo.f_trim(CAPND) + ' ' + dbo.f_trim(CITND)
|
||||
|
||||
-- campo 5_2 peso netto ( Net Weight )
|
||||
,@peso = CASE WHEN ISNULL(EPLAVO,0) <= 0 THEN EPNETT ELSE EPLAVO END
|
||||
,@pesoNetto = CONVERT(NVARCHAR(50), CONVERT(INT , FLOOR( @peso * @qtaUdc ) ) )
|
||||
|
||||
-- campo 6_2 peso lordo (Gross Weight)
|
||||
,@pesoLordo = CONVERT(NVARCHAR(50), CONVERT(INT, FLOOR( PELDB / NRC1B ) ) )
|
||||
|
||||
-- campo 7 numero colli (Nr. Boxes)
|
||||
,@numColli = CONVERT(NVARCHAR(50), 1) -- imposto n. colli del cartellino odette fisso = 1
|
||||
-- ,@numColli = CONVERT(NVARCHAR(50), NRC1B)
|
||||
|
||||
-- campo 8 disegno particolare ( Part Number )
|
||||
,@disPart = dbo.f_trim(ECMM01)
|
||||
|
||||
-- campo 10 Descrizione particolare ( Description )
|
||||
,@descPart = dbo.f_trim(DEPAR)
|
||||
|
||||
-- campo 11_1 Codice particolare (non stampato)
|
||||
,@codPart = dbo.f_trim(CDARS)
|
||||
-- campo 11_2 Codice imballo per il cliente ( Logistics Reference )
|
||||
,@codImb = dbo.f_trim(FCDI01)
|
||||
|
||||
-- campo 12 Codice Mazzucconi/Tekal/Possidonio per il cliente ( Supplier )
|
||||
,@codMaz = CASE WHEN dbo.f_trim(CRAGCL) = '13' OR dbo.f_trim(SUBSTRING(TELND,19,2)) = '13' THEN
|
||||
CASE WHEN dbo.f_trim(CDINB) <> '' AND dbo.f_trim(PERND) <> '' THEN dbo.f_trim(PERND)
|
||||
WHEN dbo.f_trim(CDINB) = '' AND dbo.f_trim(CCDET1) <> '' THEN dbo.f_trim(CCDET1)
|
||||
ELSE dbo.f_trim(CCFOE1) END
|
||||
ELSE dbo.f_trim(CCFOE1) END
|
||||
|
||||
-- campo 14 codice NAEL + esponente di modifica particolare ( Change Index )
|
||||
,@codNael = dbo.f_odetteCalcNAEL ( dbo.f_trim(CRAGCL),dbo.f_trim(TELND),dbo.f_trim(ECDNAE),dbo.f_trim(ECDNA1),
|
||||
dbo.f_trim(EESPMD),dbo.f_trim(OCDODM) )
|
||||
|
||||
--,@codNaelP1 = CASE WHEN dbo.f_trim(CRAGCL) = '13' OR dbo.f_trim(SUBSTRING(TELND,19,2)) = '13' THEN dbo.f_trim(ECDNAE) ELSE '' END
|
||||
--,@codNaelP2 = CASE WHEN dbo.f_trim(CRAGCL) = '13' OR dbo.f_trim(SUBSTRING(TELND,19,2)) = '13' THEN dbo.f_trim(ECDNA1) ELSE '' END
|
||||
--,@codNaelP3 = CASE WHEN dbo.f_trim(CRAGCL) = '13' OR dbo.f_trim(SUBSTRING(TELND,19,2)) = '13' THEN dbo.f_trim(EESPMD) ELSE '' END
|
||||
--,@codNael = CASE WHEN dbo.f_trim(CRAGCL) = '13' OR dbo.f_trim(SUBSTRING(TELND,19,2)) = '13' THEN 'ZI:'+ @codNaelP1 + ' ' + @codNaelP2 + ' AI:'+ @codNaelP3 ELSE OCDODM END
|
||||
|
||||
-- campo 16_5 AQP ( controllo qualità )
|
||||
,@codAQP = dbo.f_trim(ECLAQP)
|
||||
|
||||
FROM RawData.BORI202J
|
||||
WHERE CDMFS = @CodMag
|
||||
AND GRBOS = @GrpBolla
|
||||
AND NRBOS = @numBolla
|
||||
AND DTBOS = @DataBolla
|
||||
AND CDARS = @Particolare
|
||||
|
||||
-- Se nella destinazione non trovo nulla utilizzo i dati in RA1ND RA2ND CAPND CITND ( simile indirizzo cliente )
|
||||
IF @destinatario = ''
|
||||
SET @destinatario = @ragSocDest
|
||||
ELSE
|
||||
BEGIN -- vuoto i campi necessari solo se destinatario NON è vuoto ( in questo caso compilo solo prima riga )
|
||||
SET @indirDest = ''
|
||||
SET @capCittDest = ''
|
||||
END
|
||||
|
||||
-- SELECT @UDC, @ragSocCli, @indirCli, @capCittCli, @destinatario, @indirDest, @capCittDest, @pesoNetto, @pesoLordo, @numColli, @disPart, @descPart, @codPart, @codImb, @codMaz, @codNael, @codAQP
|
||||
EXEC stp_ODETTE_updateVal @UDC, @ragSocCli, @indirCli, @capCittCli, @destinatario, @indirDest, @capCittDest, @pesoNetto, @pesoLordo, @numColli, @disPart, @descPart, @codPart, @codImb, @codMaz, @codNael, @codAQP
|
||||
|
||||
END
|
||||
|
||||
RETURN
|
||||
go
|
||||
|
||||
commit;
|
||||
go
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
-- registro versione...
|
||||
INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(550, GETDATE())
|
||||
GO
|
||||
SELECT TOP 5 * FROM LogUpdateDb ORDER BY Versione DESC
|
||||
GO
|
||||
Reference in New Issue
Block a user