-- FIX parte As400
set xact_abort on
go

begin transaction
go

set ANSI_NULLS on
go

alter VIEW v_datiPackingList
AS
SELECT        dbo.ElencoListePrelievo_AS.CodLista, dbo.RigheListePrelievo_AS.IdxRiga, dbo.ElencoCartellini.UDC, dbo.ElencoListePrelievo_AS.Particolare, 
                         dbo.ElencoCartellini.CodImballo, CAST(RIGHT(dbo.RigheListePrelievo_AS.UDC, 6) AS INT) AS matrUdc, 
                         CASE WHEN (dbo.ElencoListePrelievo_AS.CodTipoLista = '03-TerWip') THEN 'FO' ELSE 'CL' END AS tipo, dbo.ElencoListePrelievo_AS.Destinatario, 
                         dbo.ElencoCartellini.Qta, dbo.ElencoCartellini.PesoTot - dbo.ElencoCartellini.Tara AS PesoNetto, dbo.ElencoCartellini.PesoTot, 'B' AS Stato, GETDATE() AS data, 
                         dbo.ElencoListePrelievo_AS.DataBatch
FROM            dbo.ElencoListePrelievo_AS INNER JOIN
                         dbo.RigheListePrelievo_AS ON dbo.ElencoListePrelievo_AS.CodLista = dbo.RigheListePrelievo_AS.CodLista INNER JOIN
                         dbo.ElencoCartellini ON dbo.RigheListePrelievo_AS.UDC = dbo.ElencoCartellini.UDC
WHERE        (dbo.ElencoListePrelievo_AS.DataBatch IS NULL)
go

exec sp_updateextendedproperty 'MS_DiagramPane1', '[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties = 
   Begin PaneConfigurations = 
      Begin PaneConfiguration = 0
         NumPanes = 4
         Configuration = "(H (1[40] 4[20] 2[20] 3) )"
      End
      Begin PaneConfiguration = 1
         NumPanes = 3
         Configuration = "(H (1 [50] 4 [25] 3))"
      End
      Begin PaneConfiguration = 2
         NumPanes = 3
         Configuration = "(H (1 [50] 2 [25] 3))"
      End
      Begin PaneConfiguration = 3
         NumPanes = 3
         Configuration = "(H (4 [30] 2 [40] 3))"
      End
      Begin PaneConfiguration = 4
         NumPanes = 2
         Configuration = "(H (1 [56] 3))"
      End
      Begin PaneConfiguration = 5
         NumPanes = 2
         Configuration = "(H (2 [66] 3))"
      End
      Begin PaneConfiguration = 6
         NumPanes = 2
         Configuration = "(H (4 [50] 3))"
      End
      Begin PaneConfiguration = 7
         NumPanes = 1
         Configuration = "(V (3))"
      End
      Begin PaneConfiguration = 8
         NumPanes = 3
         Configuration = "(H (1[56] 4[18] 2) )"
      End
      Begin PaneConfiguration = 9
         NumPanes = 2
         Configuration = "(H (1 [75] 4))"
      End
      Begin PaneConfiguration = 10
         NumPanes = 2
         Configuration = "(H (1[66] 2) )"
      End
      Begin PaneConfiguration = 11
         NumPanes = 2
         Configuration = "(H (4 [60] 2))"
      End
      Begin PaneConfiguration = 12
         NumPanes = 1
         Configuration = "(H (1) )"
      End
      Begin PaneConfiguration = 13
         NumPanes = 1
         Configuration = "(V (4))"
      End
      Begin PaneConfiguration = 14
         NumPanes = 1
         Configuration = "(V (2))"
      End
      ActivePaneConfig = 0
   End
   Begin DiagramPane = 
      Begin Origin = 
         Top = 0
         Left = 0
      End
      Begin Tables = 
         Begin Table = "ElencoListePrelievo_AS"
            Begin Extent = 
               Top = 6
               Left = 38
               Bottom = 367
               Right = 238
            End
            DisplayFlags = 280
            TopColumn = 0
         End
         Begin Table = "RigheListePrelievo_AS"
            Begin Extent = 
               Top = 5
               Left = 353
               Bottom = 200
               Right = 557
            End
            DisplayFlags = 280
            TopColumn = 0
         End
         Begin Table = "ElencoCartellini"
            Begin Extent = 
               Top = 14
               Left = 658
               Bottom = 376
               Right = 828
            End
            DisplayFlags = 280
            TopColumn = 0
         End
      End
   End
   Begin SQLPane = 
   End
   Begin DataPane = 
      Begin ParameterDefaults = ""
      End
      Begin ColumnWidths = 14
         Width = 284
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
      End
   End
   Begin CriteriaPane = 
      Begin ColumnWidths = 11
         Column = 1440
         Alias = 900
         Table = 1170
         Output = 720
         Append = 1400
         NewValue = 1170
         SortType = 1350
         SortOrder = 1410
         GroupBy = 1350
         Filter = 1350
         Or = 1350
         Or = 1350
         Or = 1350
      End
   End
End
', 'SCHEMA', 'dbo', 'VIEW', 'v_datiPackingList'
go

commit
go


set xact_abort on
go

begin transaction
go

set ANSI_NULLS on
go

/***************************************
* STORED stp_batch_RapQual_S01
*
* Esegue lo step 1 (caricamento dati RAW da AS400) per la tab dei rapporti di qualità
*
* Steamware, S.E.L.
* mod: 2010.09.23
*
****************************************/
alter PROCEDURE BatchQueue.stp_batch_RapQual_S01
(
    @minData DATETIME
)
AS
    SET NOCOUNT ON;
    
    -- BOZZA DA TESTARE A CURA MAZZUCCONI!!!
    /*    
       XRPQLN AS nRapQual
       XRPQLD AS DataRapQual
       XNRETI AS ProgUDC
       XCDFOR AS CodFor
       XCDTER AS DestTerz
       XCDPAR AS CodLega
       XDTPRO AS DataPrelFus
       XTRPRO AS TurnoPrelFus
       XQTPRO AS Qta
       XDESMT AS DestLega
       XMATSC AS LegaScaric
       XBENQL AS BenesQual
    
       WHERE XRPQLN <> 0   -- Se il n. rapporto di qualità è zero non sono cartellini materia prima

    */
    
    DECLARE @SQL AS NVARCHAR(4000);
    DECLARE @SqlOK AS INT;

    DECLARE @dataAs400 AS VARCHAR(8)
    
    SET @dataAs400 = (SELECT dbo.dateToAsFormat(@minData))

    BEGIN TRY
    
        -- svuoto tab raw attuale
        DELETE FROM RawData.XOGIX00F

        -- CREO L'ISTRUZIONE SQL DI INSERT PARAMETRICA
        SET @SQL = 
        N'INSERT INTO RawData.XOGIX00F
         SELECT  XRPQLN
                ,XRPQLD
                ,XNRETI
                ,XCDFOR
                ,XCDTER
                ,XCDPAR
                ,XDTPRO
                ,XTRPRO
                ,XQTPRO
                ,XDESMT
                ,XMATSC
                ,XBENQL
        FROM OPENQUERY( P65220DC,  ''SELECT * FROM MAZZT_DTV3.XOGIX00F WHERE XRPQLN <> 0 AND XRPQLD >= '
        
        SET @SQL = @SQL + @dataAs400 + ' '' ) '
        
        -- SELECT @SQL

        -- Eseguo il comando T-SQL verso AS400 e testo se OK
        SET  @SqlOK = 0;
        
       -- EXEC @SqlOK = sp_executesql @SQL  se faccio così non mi valorizza la variabile se da errore
        EXEC dbo.sp_executesql @SQL;		
        
    END TRY
    BEGIN CATCH
        -- PRINT ERROR_NUMBER()
        SET @SqlOK = ERROR_NUMBER();
      
    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_consumaMP', @SQL, @SqlOK;
    
    -- è possibile sollevare un RAISERROR ??? come si comporta poi il programma?
    
    -- NON SI FANNO RAISE ERROR E NON SI RESTITUISCE CODICE!!!!!
    
    --RETURN @SqlOK; -- commentato da Sam

RETURN
go

commit
go


set xact_abort on
go

begin transaction
go

set ANSI_NULLS on
go

/***************************************
* STORED stp_consumaMP
*
* Salva il movimento di consumo dell'UDC di MP indicato
*
* Steamware, S.E.L.
* mod: 2010.10.12
*
****************************************/
alter PROCEDURE BatchQueue.stp_consumaMP
(
    @XRPQLN	INT,          -- è il num rap qualità
    @XNRETI NVARCHAR(10), -- è il numUdc prog AS400
    @XDTPRO	INT,          -- data 8 cifre aaaammgg Data Prelievo Fusione
    @XTRPRO NVARCHAR(5),  -- turno prelievo ( solo se interno )
    @XDESMT NVARCHAR(3),  -- destinatario int/terzista ( F01 / T01 )
    @XCDTER NVARCHAR(6)   -- cod terzista ( Anagrafico Depositi )
)
AS
    -- BOZZA DA VERIFICARE E COMPLETARE A CURA MAZZUCCONI!!!
    -- L'UPDATE FUNZIONA VERSO AS400 DI TEST MAZZT_DTV3 effetiva MAZZ_DATV3

    /*  PER TESTARE 
    
    DECLARE @XRPQLN	INT,          -- è il num rap qualità
            @XNRETI NVARCHAR(10), -- è il numUdc prog
            @XDTPRO	INT,          -- data 8 cifre aaaammgg
            @XTRPRO NVARCHAR(5),  -- turno
            @XDESMT NVARCHAR(3),  -- destinatario int/terzista
            @XCDTER NVARCHAR(6)   -- cod terzista

    SET @XRPQLN	= 905793        -- è il num rap qualità 
    SET @XNRETI = 'U100548151'  -- è il numUdc prog
    SET @XDTPRO	= 20100723      -- data 8 cifre aaaammgg
    SET @XTRPRO = 'S'           -- turno
    SET @XDESMT = 'F01'         -- destinatario int/terzista
    SET @XCDTER = ''            -- cod terzista
    */
 
    DECLARE @SQL AS NVARCHAR(4000);
    DECLARE @SqlOK AS INT;

    BEGIN TRY

        -- TEST per generare errore
        -- SET @XDTPRO	= 99999920100723      -- data 8 cifre aaaammgg
        
        -- Creo l'istruzione SQL e faccio chiamata su AS400
        -- Forse è meglio controllare prima se già aggiornato e preso in carico da ACG???
        
        SET @SQL =  N'UPDATE OPENQUERY( P65220DC, ''SELECT * FROM MAZZT_DTV3.XOGIX00F ' 
        
        SET @SQL = @SQL + 'WHERE XRPQLN = ' +  CAST(@XRPQLN AS NVARCHAR(20))   -- Numero Rapporto Qualita
        SET @SQL = @SQL + ' AND XNRETI = ''''' + @XNRETI + ''''''' ) '         -- Numero UDC AS400

        SET @SQL = @SQL + 'SET	XDTPRO =  ' + CAST(@XDTPRO AS NVARCHAR(8)) 
        SET @SQL = @SQL +    ', XTRPRO = ''' + @XTRPRO + ''''
        SET @SQL = @SQL +    ', XDESMT = ''' + @XDESMT + ''''
        SET @SQL = @SQL +    ', XMATSC = ''S'''                    -- Flag Lega Scaricata
        SET @SQL = @SQL +    ', XCDTER = ''' + @XCDTER + '''';
         
        -- SELECT @SQL

        -- Eseguo il comando T-SQL verso AS400 e testo se OK
        SET  @SqlOK = 0;
        
       -- EXEC @SqlOK = sp_executesql @SQL  se faccio così non mi valorizza la variabile se da errore
        EXEC dbo.sp_executesql @SQL;
    END TRY
    BEGIN CATCH
      -- PRINT ERROR_NUMBER()
      SET @SqlOK = ERROR_NUMBER();
  
      -- Uso RAISERROR 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_consumaMP', @SQL, @SqlOK;
    
    -- è possibile sollevare un RAISERROR ??? come si comporta poi il programma?
    
    -- NON SI FANNO RAISE ERROR E NON SI RESTITUISCE CODICE!!!!!
    
    --RETURN @SqlOK; -- commentato da Sam
    
    
            
    -- MANCA IL TEST SE HO AGGIORNATO EFFETTIVAMENTE o MENO

    /*
    SELECT XRPQLN, XNRETI , XDTPRO, XTRPRO, XDESMT, XMATSC, XCDTER 
    FROM OPENQUERY( P65220DC, 'SELECT * FROM MAZZT_DTV3.XOGIX00F WHERE XRPQLN = 905793 AND XNRETI = ''U100548151'' ')

    -- Resetto l'UDC
    UPDATE OPENQUERY( P65220DC, 'SELECT * FROM MAZZT_DTV3.XOGIX00F WHERE XRPQLN = 905793 AND XNRETI = ''U100548151'' ') 
    SET XDTPRO =  0 , XTRPRO = '', XDESMT = '', XMATSC = 'N', XCDTER = ''

    -- Comando OK
    -- UPDATE OPENQUERY( P65220DC, 'SELECT * FROM MAZZT_DTV3.XOGIX00F WHERE XRPQLN = 905793 AND XNRETI = ''U100548151'' ') 
    -- SET XDTPRO = 20100723 , XTRPRO = 'S', XDESMT = 'F01', XMATSC = 'N', XCDTER = ''
    */    

RETURN
go

commit
go


set xact_abort on
go

begin transaction
go

set ANSI_NULLS on
go

/*****************************************************
* STORED sstp_processaCodaMovimMag
*
* Processa la coda dei movimenti di magazzino e chiama procedura x salvataggio dato su AS400
*
* Steamware, S.E.L.
* mod: 2010.10.15
*
****************************************/
alter PROCEDURE BatchQueue.stp_processaCodaMovimMag
AS

    -- BOZZA DA VERIFICARE E COMPLETARE A CURA MAZZUCCONI!!!
    -- campi variabili "globali"
    DECLARE @IdxBatch INT	
    DECLARE @CodSoggetto NVARCHAR(17)
    DECLARE @CodMovCarico CHAR(2)
    DECLARE @CodMovScarico CHAR(2)
    -- campi x cursore e valorizzazione riga a riga
    DECLARE @Particolare NVARCHAR(15)
    DECLARE @Causale NVARCHAR(2)
    DECLARE @CodMag	NVARCHAR(50)
    DECLARE @Qta INT
    DECLARE @Data NVARCHAR(8)
    DECLARE @RIFFO NVARCHAR(8)
    
    -- faccio una query con un cursore x processare tutte le righe da inviare ad AS400..
    DECLARE RigaMovMag CURSOR FOR
        SELECT IdxBatch FROM AS400_BatchMovimenti WHERE DataBatch IS NULL

    -- setto il codice soggetto da inviare ad AS... VERIFICARE!!!
    SET @CodSoggetto = 'O0000000000099999'

    -- carico i 2 valori di default di carico e scarico da AS400
    SET @CodMovCarico = (SELECT CauCarico FROM RilPro.AnagCausaliMag)
    SET @CodMovScarico = (SELECT CauScarico FROM RilPro.AnagCausaliMag)

    -- inizio cursore!
    OPEN RigaMovMag
    FETCH NEXT FROM RigaMovMag 
    INTO @IdxBatch
    WHILE @@FETCH_STATUS = 0
    BEGIN
      -- controllo ci sia la riga
      IF (SELECT COUNT(IdxBatch) FROM AS400_BatchMovimenti WHERE IdxBatch = @IdxBatch) > 0
        BEGIN
            -- carico valori che mi servono
            SELECT	@Particolare=bm.Particolare, @Causale=CASE WHEN bm.Quantita>0 THEN @CodMovCarico ELSE @CodMovScarico END, 
                    @CodMag=bm.CodMagAS, @Qta = ABS(bm.Quantita), @Data=dbo.dateToAsFormat(GETDATE()), @RIFFO=dbo.getUdcComp(bm.UDC,8)
                    FROM AS400_BatchMovimenti bm
                    WHERE IdxBatch = @IdxBatch
                    
            -- Eseguo la stored che registra il Packing List ???
            Execute BatchQueue.stp_registraMovMag @CodSoggetto, @Causale, @Particolare, @CodMag, @Qta, @Data, @RIFFO
            
            -- registro la data del movimento BATCH
            UPDATE AS400_BatchMovimenti SET DataBatch = GETDATE() WHERE IdxBatch = @IdxBatch
            
            FETCH NEXT FROM RigaMovMag INTO @IdxBatch
        END
    END
    CLOSE RigaMovMag
    DEALLOCATE RigaMovMag
    

RETURN
go

commit
go

set xact_abort on
go

begin transaction
go

set ANSI_NULLS on
go

/*
* STORED stp_processaCodaMovimPackList
*
* Processa la coda delle packing list e chiama procedura x salvataggio dato su AS400
*
* Steamware, S.E.L.
* mod: 2010.10.22
*
****************************************/
create PROCEDURE BatchQueue.stp_processaCodaMovimPackList
AS

    -- BOZZA DA VERIFICARE E COMPLETARE A CURA MAZZUCCONI!!!
    
    -- campi x cursore e valorizzazione riga a riga
    DECLARE @IdxRiga INT
    DECLARE @CodLista NVARCHAR(12)
    DECLARE @CodListaPre NVARCHAR(12)
    DECLARE @CodStab CHAR(2)
    DECLARE @UDC NVARCHAR(15)
    DECLARE @Particolare NVARCHAR(15)
    DECLARE @CodImb NVARCHAR(15)
    DECLARE @Matr INT	
    DECLARE @Tipo NVARCHAR(2)
    DECLARE @Dest NVARCHAR(10)
    DECLARE @Qta INT
    DECLARE @PesoNet NUMERIC(7,3)
    DECLARE @PesoLor NUMERIC(7,3)	
    DECLARE @Stato CHAR(1)
    DECLARE @Data NVARCHAR(8)
    
    -- faccio una query con un cursore x processare tutte le righe da inviare ad AS400..
    DECLARE RigaPackList CURSOR FOR
        SELECT IdxRiga FROM v_datiPackingList ORDER BY CodLista

    -- setto il codice stabilimento da inviare ad AS... VERIFICARE!!!
    SET @CodStab = '05';

    -- imposto prima codListaPre a vuoto...
    SET	@CodListaPre = '';
    -- inizio cursore!
    OPEN RigaPackList
    FETCH NEXT FROM RigaPackList 
    INTO @IdxRiga
    WHILE @@FETCH_STATUS = 0
    BEGIN
      -- controllo ci sia la riga
      IF (SELECT COUNT(IdxRiga) FROM v_datiPackingList WHERE IdxRiga = @IdxRiga) > 0
        BEGIN
            -- carico valori che mi servono
            SELECT	@Particolare=pl.Particolare, @UDC=UDC, @CodImb=pl.CodImballo, @Matr = pl.matrUdc, @Tipo=pl.tipo, @Dest=pl.Destinatario, 
                    @Qta=ABS(pl.Qta), @PesoNet=pl.PesoNetto, @PesoLor=pl.PesoTot, @Stato=pl.Stato, @Data=dbo.dateToAsFormat(pl.data), 
                    @CodLista=pl.CodLista
                    FROM v_datiPackingList pl
                    WHERE IdxRiga = @IdxRiga
                    
            -- Eseguo la stored che registra il Packing List ???
            Execute BatchQueue.stp_registraPackList @CodStab,  @UDC, @Particolare , @CodImb , @Matr , @Tipo , @Dest , @Qta , @PesoNet  , @PesoLor , @Stato , @Data
                        
            FETCH NEXT FROM RigaPackList INTO @IdxRiga
            
            -- controllo: se la lissta precedente è diversa dall'attuale la indico come scaricata (precedente)
            IF(@CodListaPre <> @CodLista)
            BEGIN
                UPDATE ElencoListePrelievo_AS SET DataBatch = GETDATE() WHERE CodLista = @CodListaPre
                -- cambio il cod pre da confrontare
                SET @CodListaPre = @CodLista
            END
        END
        -- registro la data del movimento BATCH dell'ultima lista processata
        UPDATE ElencoListePrelievo_AS SET DataBatch = GETDATE() WHERE CodLista = @CodLista
        
    END
    CLOSE RigaPackList
    DEALLOCATE RigaPackList

RETURN
go

commit
go


set xact_abort on
go

begin transaction
go

set ANSI_NULLS on
go

/***************************************
* STORED stp_registraMovMag
*
* Salva il movimento di magazzino indicato
*
* Steamware, S.E.L.
* mod: 2010.10.15
*
****************************************/
alter PROCEDURE BatchQueue.stp_registraMovMag
(
    @NOMUS NVARCHAR(50),    -- è il nome utente 
    @CDCAU NVARCHAR(2),     -- è la causale del movimento
    @CDPAR NVARCHAR(15),    -- codice particolare
    @CDMAG NVARCHAR(2),     -- codice magazzino
    @QTMOV NUMERIC(9,2),    -- quantità movimento
    @DAMOV NVARCHAR(8),     -- data 8 cifre aaaammgg Data Movimento
    @RIFFO NVARCHAR(8)      -- cod UDC compresso
)
AS
    
    -- QUESTA FUNZIONA!!! DA VERIFICARE I DATI PASSATI VISTO CHE ATTUALMENTE NON FUNZIONA
    -- LA STORED CHE LA RICHIAMA-POPOLA ?
    
    -- Movimentazioni Magazzino
    -- Tabella MWMV200F libreria MAZZT_AZI per test – MAZZ_AZI effettiva

    /* -- Variabili per test senza Stored 
    DECLARE	@NOMUS	NVARCHAR(50),   -- è il nome utente
            @CDCAU  NVARCHAR(2),    -- è la causale del movimento
            @CDPAR	NVARCHAR(15),   -- codice particolare
            @CDMAG  NVARCHAR(2),    -- codice magazzino
            @QTMOV	NUMERIC(9,2),   -- quantità movimento ATTENZIONE QUESTA E' SBAGLIATA SULLA STORED
            @DAMOV	NVARCHAR(8),    -- data 8 cifre aaaammgg
            @RIFFO  NVARCHAR(8)     -- cod UDC compresso

    -- SETTO LE VARIABILI DI PROVA PER TEST
    SET @NOMUS = N'PIPPO'
    SET @CDCAU = N'01'
    SET @CDPAR = N'P00528503817'
    SET @CDMAG = N'54'
    SET @QTMOV = 1234567.51
    SET @DAMOV = N'20100101'
    SET @RIFFO = N'UDCPROVA'
     */
     
    DECLARE @SqlOK AS INT;
    
    -- inizio a dire che è andata bene e salvo in tab comandi
    SET		@SqlOk = 1;

    -- Memorizzo il comando per verifica T-SQL
    INSERT INTO RawData.AS400_Comandi
    SELECT GETDATE(), 'stp_registraMovMag', 
    'INSERT INTO OPENQUERY MAZZT_AZI.MWMV200F parametri :' 
    + @NOMUS + ',' + @CDCAU + ',' + @CDPAR + ',' + @CDMAG + ',' + CONVERT(VARCHAR(20) ,  @QTMOV) + ',' + @DAMOV + ',' + @RIFFO, @SqlOk

    /*
    INSERT INTO
    OPENQUERY( P65220DC,  
    '
    SELECT    NOMUS ,  CDCAU ,  CDPAR ,  CDMAG ,  QTMOV ,  DAMOV ,  RIFFO 
    FROM MAZZT_AZI.MWMV200F
    ' )
    VALUES ( @NOMUS , @CDCAU , @CDPAR , @CDMAG , @QTMOV , @DAMOV , @RIFFO )
      */  

    
    /* TEST e DELETE
       SELECT * FROM OPENQUERY( P65220DC,  'SELECT NOMUS ,CDCAU ,CDPAR ,CDMAG ,QTMOV ,DAMOV ,RIFFO FROM MAZZT_AZI.MWMV200F' )     

       DELETE 
       OPENQUERY( P65220DC, 'SELECT * FROM MAZZT_AZI.MWMV200F WHERE NOMUS = ''PIPPO'' ')   
    */

RETURN
go

commit
go


set xact_abort on
go

begin transaction
go

set ANSI_NULLS on
go

/***************************************
* STORED stp_registraPackList
*
* Salva i dati di packing list indicati
*
* Steamware, S.E.L.
* mod: 2010.10.15
*
****************************************/
alter 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à
    @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 INT -- data entrata merce, data di carico dell'UDC 8 cifre aaaammgg
)
AS
    -- BOZZA DA VERIFICARE E COMPLETARE A CURA MAZZUCCONI!!!

    --DECLARE @SQL AS NVARCHAR(4000);	
    DECLARE @SqlOK AS INT;
    
    -- inizio a dire che è andata bene e salvo in tab comandi
    SET		@SqlOk = 1;
 
    -- Memorizzo il comando per verifica T-SQL
    INSERT INTO RawData.AS400_Comandi
    SELECT GETDATE(), 'stp_registraPackList', 
    'INSERT INTO MAZZT_DTV3.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

    /*
    INSERT INTO
    OPENQUERY( P65220DC,  
    '
    SELECT    PLREPA , PLCART , PLARTI , PLCONT , PLMATR , PLTPAN , PLCDAN , PLQTA , PLPNET , PLPLOR , PLSTAT , PLDTEN
    FROM MAZZT_AZI.MWMV200F
    ' )
    VALUES ( @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)) )
      */  

    
   /*
    -- preparo chiamata su AS400
    SET @SQL =  N' OPENQUERY( P65220DC,  ''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 dbo.sp_executesql @SQL
    */
    
RETURN
go

commit
go












-- registro versione...
INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(288, GETDATE())
GO
