110 lines
4.3 KiB
Transact-SQL
110 lines
4.3 KiB
Transact-SQL
|
|
/***************************************
|
|
* STORED stp_registraPackList
|
|
*
|
|
* Salva i dati di packing list indicati
|
|
*
|
|
* Steamware, S.E.L.
|
|
* mod: 2010.10.15
|
|
*
|
|
****************************************/
|
|
CREATE PROCEDURE BatchQueue.stp_registraPackList
|
|
(
|
|
@PLREPA NVARCHAR(2), -- è il codice reparto/stabilimento (05 pressofusione)
|
|
@PLCART NVARCHAR(15), -- UDC
|
|
@PLARTI NVARCHAR(15), -- cod articolo
|
|
@PLCONT NVARCHAR(15), -- cod contenitore
|
|
@PLMATR INT, -- matricola contenitore (solo cifre finali INT)
|
|
@PLTPAN CHAR(2), -- tipo anagrafico CLiente / FOrnitore-terzista
|
|
@PLCDAN NVARCHAR(6), -- cod terzista / cliente
|
|
@PLQTA INT, -- quantità Attenzione è Numeric(5, 0)
|
|
@PLPNET NUMERIC(7, 3), -- peso netto
|
|
@PLPLOR NUMERIC(7, 3), -- peso lordo
|
|
@PLSTAT CHAR(1), -- stato "P" predisposto per packing list, "B" bolla stampata
|
|
@PLDTEN NUMERIC(8,0) -- data entrata merce, data di carico dell'UDC 8 cifre aaaammgg
|
|
)
|
|
AS
|
|
-- BOZZA DA VERIFICARE A CURA MAZZUCCONI!!!
|
|
|
|
-- AMBIENTE EFFETTIVO
|
|
|
|
-- Carica i dati dei packing list in AS400
|
|
|
|
-- FILE PACKL00F
|
|
|
|
-- LIBRERIA TEST SMEDATVETS
|
|
-- LIBRERIA EFFETTIVA ???
|
|
|
|
DECLARE @SqlOK AS INT;
|
|
SET @SqlOk = 0; -- variabile test se in errore
|
|
|
|
|
|
-- Modifica Temporanea per problema spedizione a RONO che attualmente non può essere fatta tramite
|
|
-- lista prelievo terzista che preleva solo UDC in stato 84 mentre in RONO vanno quelli in 54
|
|
-- Per RONO prelevo con lista Prelievo cliente e poi prima di mandare ad AS400 cambio il Codice Fornitore e
|
|
-- il tipo anagrafico a FO
|
|
IF @PLCDAN = '00232' -- Codice Cliente RONO
|
|
BEGIN
|
|
SET @PLCDAN = '02345'; -- Codice Fornitore RONO
|
|
SET @PLTPAN = 'FO';
|
|
END
|
|
-- Fine Modifica
|
|
|
|
|
|
/* ======== L'INVIO PACKING NON E' MAI STATO IMPLEMENTATO
|
|
|
|
-- Eseguo l'istruzione verso AS400 con controllo errori
|
|
-- Se inserisco un UDC già esistente mi da errore 7343 perchè su AS400 è univoco
|
|
BEGIN TRY
|
|
|
|
INSERT INTO
|
|
OPENQUERY( AS400XXXX,
|
|
'
|
|
SELECT PLREPA , PLCART , PLARTI , PLCONT , PLMATR , PLTPAN , PLCDAN , PLQTA , PLPNET , PLPLOR , PLSTAT , PLDTEN
|
|
FROM SMEDATVETS.PACKL00F
|
|
' )
|
|
VALUES ( @PLREPA , @PLCART , @PLARTI , @PLCONT , @PLMATR , @PLTPAN , @PLCDAN , @PLQTA , @PLPNET , @PLPLOR, @PLSTAT, @PLDTEN )
|
|
|
|
END TRY
|
|
BEGIN CATCH
|
|
-- PRINT ERROR_NUMBER()
|
|
SET @SqlOK = ERROR_NUMBER();
|
|
|
|
-- Posso usare RAISERROR x mandare in errore la procedura e x per tornare le info
|
|
-- sull'errore originale che ha portato l'esecuzione nel blocco CATCH
|
|
-- DECLARE @ErrorMessage NVARCHAR(4000);
|
|
-- DECLARE @ErrorSeverity INT;
|
|
-- DECLARE @ErrorState INT;
|
|
-- SELECT @ErrorMessage = ERROR_MESSAGE(),@ErrorSeverity = ERROR_SEVERITY(),@ErrorState = ERROR_STATE();
|
|
-- RAISERROR (@ErrorMessage,@ErrorSeverity,@ErrorState); -- Se non uso RAISERROR la procedura non mi da errore es. se schedulata
|
|
END CATCH
|
|
|
|
-- Memorizzo il comando per verifica T-SQL e l'esito del comando se 0 è OK
|
|
INSERT INTO RawData.AS400_Comandi
|
|
SELECT GETDATE(), 'stp_registraPackList',
|
|
'INSERT INTO SMEDATVETS.PACKL00F parametri :'
|
|
+ @PLREPA + ', ' + @PLCART + ', ' + @PLARTI + ', ' + @PLCONT + ', ' + CAST(@PLMATR AS NVARCHAR(5)) + ', ' + @PLTPAN + ', ' + @PLCDAN + ', ' + CAST(@PLQTA AS NVARCHAR(10)) + ', ' + CAST(@PLPNET AS NVARCHAR(10)) + ', ' + CAST(@PLPLOR AS NVARCHAR(10)) + ', ' + @PLSTAT + ', ' + CAST(@PLDTEN AS NVARCHAR(8)) , @SqlOk
|
|
========================*/
|
|
|
|
|
|
/*
|
|
SELECT * FROM OPENQUERY( AS400XXXX,
|
|
'
|
|
SELECT PLREPA , PLCART , PLARTI , PLCONT , PLMATR , PLTPAN , PLCDAN , PLQTA , PLPNET , PLPLOR , PLSTAT , PLDTEN
|
|
FROM SMEDATVE.PACKL00F WHERE PLDTEN >= 20100601
|
|
' )
|
|
*/
|
|
|
|
/*
|
|
-- preparo chiamata su AS400
|
|
SET @SQL = N' OPENQUERY( AS400XXXX, ''INSERT INTO MAZZT_DTV3.PACKL00F VALUES '
|
|
SET @SQL = @SQL + @PLREPA + ', ' + @PLCART + ', ' + @PLARTI + ', ' + @PLCONT + ', '
|
|
SET @SQL = @SQL + CAST(@PLMATR AS NVARCHAR(5)) + ', ' + @PLTPAN + ', ' + @PLCDAN + ', ' + CAST(@PLQTA AS NVARCHAR(10)) + ', '
|
|
SET @SQL = @SQL + CAST(@PLPNET AS NVARCHAR(10)) + ', ' + CAST(@PLPLOR AS NVARCHAR(10)) + ', ' + @PLSTAT + ', '
|
|
SET @SQL = @SQL + CAST(@PLDTEN AS NVARCHAR(8)) + ''' )'
|
|
|
|
EXEC sp_executesql @SQL
|
|
*/
|
|
|
|
RETURN @SqlOK;
|