Import iniziale DB, GMW

versione TK 2.4
inclusione schema voc x tabella lingue e vocabolario
This commit is contained in:
Samuele Locatelli
2014-02-20 09:54:57 +01:00
parent bc426dfb6f
commit a6d7ea0b2f
389 changed files with 19095 additions and 0 deletions
@@ -0,0 +1,75 @@
/***************************************
* STORED stp_SelectRappQualita
*
* Description: Ritorna i cartellini da AS400 partendo nal numero del rapporto di qualità
*
* Steamware, S.E.L.
*
****************************************/
CREATE PROCEDURE [As400].[stp_SelectRappQualita]
-- Add the parameters for the stored procedure here
@NumRappQual nVarChar(1000) = ''
AS
BEGIN
-- Cartellini Rapporti qualità Materia Prima
-- FILE XOGIX00F
-- LIBRERIA TEST MAZZT_DTV3
-- LIBRERIA EFFETTIVA TEKAL TEKA_DATV3
-- LIBRERIA EFFETTIVA POSS. POSN_DATV3
SET NOCOUNT ON;
DECLARE @SQL AS NVARCHAR(4000)
DECLARE @As400File AS NVARCHAR(50) = '';
DECLARE @As400Linked AS NVARCHAR(50) = ''; -- Linked Server AS400
-- DECLARE @PAR1 AS nVarChar(1000)
-- SET @PAR1 = N'903383'
-- In base al nome del DB e della stored recupero il Linked Server e file di AS400
SET @As400Linked = ( SELECT dbo.f_getLikedAS400(DB_NAME()) );
SET @As400File = ( SELECT dbo.f_getLibreriaAS400 ( DB_NAME() , OBJECT_SCHEMA_NAME(@@PROCID) + '.' + OBJECT_NAME(@@PROCID) ) )
-- Se rapporto di qualità è 0 non è un rapporto di qualità
-- Se rapporto di qualità e Blank va in errore quindi lo metto a -1
IF ( @NumRappQual = '' OR @NumRappQual = 0) SET @NumRappQual = '-1'
SET @SQL =
N'
SELECT
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
FROM OPENQUERY(' + @As400Linked
SET @SQL = @SQL + N', ''SELECT * FROM ' + @As400File
SET @SQL = @SQL + ' WHERE XRPQLN = ' + @NumRappQual + ''' )'
EXEC sp_executesql @SQL
-- SELECT * FROM OPENQUERY( AS400, 'SELECT * FROM MAZZT_DTV3.XOGIX00F WHERE XRPQLN = 903383' )
END
+12
View File
@@ -0,0 +1,12 @@
CREATE TABLE [As400].[t_CQNOC98L] (
[NumDocRNC] CHAR (10) NOT NULL,
[TipoInterv] CHAR (2) NOT NULL,
[CodArticolo] CHAR (15) NOT NULL,
[MatrPezzo] CHAR (15) NOT NULL
);
GO
CREATE NONCLUSTERED INDEX [i_update]
ON [As400].[t_CQNOC98L]([NumDocRNC] ASC, [TipoInterv] ASC, [CodArticolo] ASC, [MatrPezzo] ASC);
+11
View File
@@ -0,0 +1,11 @@
CREATE TABLE [As400].[t_MOMA200F] (
[NumSessione] CHAR (6) NOT NULL,
[NumMovimento] NUMERIC (5) NOT NULL,
[RifNumCartellino] CHAR (8) NOT NULL
);
GO
CREATE NONCLUSTERED INDEX [i_update]
ON [As400].[t_MOMA200F]([NumSessione] ASC, [NumMovimento] ASC);
+14
View File
@@ -0,0 +1,14 @@
CREATE TABLE [As400].[t_MWMV200F] (
[NomeUtente] CHAR (10) NOT NULL,
[CodCausale] CHAR (2) NOT NULL,
[CodParticolare] CHAR (15) NOT NULL,
[CodMagazzino] CHAR (2) NOT NULL,
[QtaMovimento] NUMERIC (9, 2) NOT NULL,
[DataMovimento] NUMERIC (8) NOT NULL
);
GO
CREATE NONCLUSTERED INDEX [i_update]
ON [As400].[t_MWMV200F]([NomeUtente] ASC, [CodCausale] ASC, [CodParticolare] ASC, [CodMagazzino] ASC, [QtaMovimento] ASC, [DataMovimento] ASC);
+20
View File
@@ -0,0 +1,20 @@
CREATE TABLE [As400].[t_PACKL00F] (
[CodStabilimento] CHAR (2) NOT NULL,
[ProgUDC] CHAR (15) NOT NULL,
[CodParticolare] CHAR (15) NOT NULL,
[CodContenitore] CHAR (15) NOT NULL,
[MatrContenitore] CHAR (5) NOT NULL,
[Qta] NUMERIC (5) NOT NULL,
[PesoNetto] NUMERIC (7, 3) NOT NULL,
[PesoLordo] NUMERIC (7, 3) NOT NULL,
[StaoPackList] CHAR (1) NOT NULL,
[DataEntrata] NUMERIC (8) NOT NULL,
[TipoAnagr] CHAR (2) NOT NULL,
[CodAnagr] CHAR (6) NOT NULL
);
GO
CREATE NONCLUSTERED INDEX [i_update]
ON [As400].[t_PACKL00F]([CodStabilimento] ASC, [ProgUDC] ASC, [CodParticolare] ASC, [CodContenitore] ASC, [MatrContenitore] ASC);
+20
View File
@@ -0,0 +1,20 @@
CREATE TABLE [As400].[t_XOGIX00F] (
[XRPQLN] NUMERIC (6) NOT NULL,
[XRPQLD] NUMERIC (8) NOT NULL,
[XNRETI] CHAR (10) NOT NULL,
[XCDFOR] CHAR (6) NOT NULL,
[XCDTER] CHAR (6) NOT NULL,
[XCDPAR] CHAR (15) NOT NULL,
[XDTPRO] NUMERIC (8) NOT NULL,
[XTRPRO] CHAR (5) NOT NULL,
[XQTPRO] NUMERIC (5) NOT NULL,
[XDESMT] CHAR (3) NOT NULL,
[XMATSC] CHAR (1) NOT NULL,
[XBENQL] CHAR (1) NOT NULL
);
GO
CREATE NONCLUSTERED INDEX [i_update]
ON [As400].[t_XOGIX00F]([XRPQLN] ASC, [XRPQLD] ASC, [XNRETI] ASC);
@@ -0,0 +1,104 @@
/***************************************
* 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
*
****************************************/
CREATE PROCEDURE BatchQueue.stp_batch_RapQual_S01
(
@minData DATETIME
)
AS
SET NOCOUNT ON;
-- BOZZA DA TESTARE A CURA MAZZUCCONI!!!
-- Caricamento Rapporti qualità Materia Prima
-- FILE XOGIX00F
-- LIBRERIA TEST MAZZT_DTV3
-- LIBRERIA EFFETTIVA TEKAL TEKA_DATV3
-- LIBRERIA EFFETTIVA POSS POSN_DATV3
/*
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
L'UPDATE FUNZIONA VERSO AS400
*/
DECLARE @SQL AS NVARCHAR(4000);
DECLARE @SqlOK AS INT;
DECLARE @As400File AS NVARCHAR(50) = '';
DECLARE @As400Linked AS NVARCHAR(50) = ''; -- Linked Server AS400
DECLARE @dataAs400 AS VARCHAR(8);
SET @dataAs400 = (SELECT dbo.dateToAsFormat(@minData));
SET @SqlOK = 0;
-- In base al nome del DB e della stored recupero il Linked Server e file di AS400 27/06/2013
SET @As400Linked = ( SELECT dbo.f_getLikedAS400(DB_NAME()) );
SET @As400File = ( SELECT dbo.f_getLibreriaAS400 ( DB_NAME() , OBJECT_SCHEMA_NAME(@@PROCID) + '.' + OBJECT_NAME(@@PROCID) ) )
BEGIN TRY
-- svuoto tab raw attuale
TRUNCATE TABLE RawData.XOGIX00F;
-- Leggo tutti gli UDC dei rapporti di qualità a partire dalla data richiesta
-- escludendo quelli con Numero Rapporto di qualità a zero ( non sono rapporti di qualità )
-- 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(' + @As400Linked
SET @SQL = @SQL + N', ''SELECT * FROM ' + @As400File
SET @SQL = @SQL + ' WHERE XRPQLN <> 0 AND XRPQLD >= ' + @dataAs400 + ' '' ) '
-- Eseguo il comando T-SQL verso AS400 e testo se OK
-- EXEC @SqlOK = sp_executesql @SQL se faccio così non mi valorizza la variabile se da errore
EXEC sp_executesql @SQL;
END TRY
BEGIN CATCH
-- nel caso di errore ne salvo il numero
SET @SqlOK = ERROR_NUMBER(); -- PRINT 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_batch_RapQual_S01', @SQL, @SqlOK;
-- è possibile sollevare un RAISERROR ??? come si comporta poi il programma?
-- NON SI FANNO RAISE ERROR E NON SI RESTITUISCE CODICE!!!!!
RETURN
@@ -0,0 +1,206 @@
/***************************************
* STORED stp_batch_RapQual_S02
*
* Esegue lo step 2 (travaso dati RAW in RilPro) per la tab dei rapporti di qualità
*
* Steamware, S.E.L.
* mod: 2011.11.25
*
****************************************/
CREATE PROCEDURE [BatchQueue].[stp_batch_RapQual_S02]
(
@CodMagMpNONacc NVARCHAR(50) = '6666',
@CodMagMpAcc NVARCHAR(50) = '6',
@CodStatoMpNONacc NVARCHAR(50) = 'MP-NA',
@CodStatoMpAcc NVARCHAR(50) = 'MP'
)
AS
SET XACT_ABORT ON;
SET NOCOUNT ON;
-- eseguo UPSERT x tutti i dati disponibili in tab Raw...
BEGIN TRAN;
-- ===============================================================================================
-- PRIMA DI AGGIORNARE VERIFICO SE CI SONO MODIFICHE DI MP ACCETTATA / NON ACCETTATA
-- ===============================================================================================
--DECLARE @CodMagMpNONacc AS VARCHAR(50) = '6666' -- Setto il Magazzino per MP NON ACCETTATA
--DECLARE @CodMagMpAcc AS VARCHAR(50) = '6' -- Setto il Magazzino per MP ACCETTATA
DECLARE @CellaOK AS INT
DECLARE @MagAccOK AS INT
DECLARE @MagNNAccOK AS INT
DECLARE @CodEven AS NVARCHAR(10) = 'UDC_MPRQ';
-- ===============================================================================================
-- SPOSTAMENTO DI MAGAZZINO DELLA MP che da ACCETTATA diventa NON ACCETTATA
-- ===============================================================================================
-- Controllo che il magazzino dest. NON ACCETTATA sia a cella singola( a terra ), attivo
SELECT @MagAccOK = COUNT(*) FROM dbo.Celle AS c INNER JOIN Blocchi b ON c.IdxBlocco=b.IdxBlocco
WHERE b.CodMag = @CodMagMpNONacc AND c.Attiva = 1
IF @MagAccOK = 1 -- Se mag. NON ACCETTATA è OK
BEGIN
-- Vado a leggere la cella corretta
SELECT @CellaOK = c.IdxCella FROM Celle AS c INNER JOIN Blocchi b ON c.IdxBlocco=b.IdxBlocco
WHERE b.CodMag = @CodMagMpNONacc AND c.Attiva = 1
-- Se ci sono cartellini di materia prima che sono passati da accettati a non accettati li sposto
UPDATE dbo.PosizioneUdcCorrente
SET IdxCella = @CellaOK,
DataRif = GETDATE()
FROM dbo.PosizioneUdcCorrente AS po
INNER JOIN RilPro.RapQual rq
ON rq.UDC = po.UDC
INNER JOIN RawData.XOGIX00F u
ON u.XNRETI = rq.ProgUDC
INNER JOIN dbo.ElencoCartellini AS el
ON rq.UDC = el.UDC
INNER JOIN Celle c
ON po.IdxCella=c.IdxCella
INNER JOIN Blocchi b
ON c.IdxBlocco=b.IdxBlocco
WHERE ( rq.BenesQual = 'S' AND u.XBENQL = 'N' ) -- da Accettata a NON accettata
AND XMATSC = 'N' -- solo Lega non ancora Scaricata
AND b.CodMag <> @CodMagMpNONacc -- Che non è in Magazzino NON Accettati
UPDATE dbo.ElencoCartellini
SET CodStato = @CodStatoMpNONacc,
CodEvento= @CodEven,
ModDate = GETDATE()
FROM dbo.ElencoCartellini AS el
INNER JOIN RilPro.RapQual rq
ON rq.UDC = el.UDC
INNER JOIN RawData.XOGIX00F u
ON u.XNRETI = rq.ProgUDC
WHERE ( rq.BenesQual = 'S' AND u.XBENQL = 'N' ) -- da Accettata a NON accettata
AND XMATSC = 'N' -- solo Lega non ancora Scaricata
AND el.CodStato = @CodStatoMpAcc -- Modifico solo UDC in stato 'MP' (accettata)
AND el.IdxPosizione = 6 -- Modifico solo se cartellini non scaricati Mod. 2012-05
END
-- ===============================================================================================
-- SPOSTAMENTO DI MAGAZZINO DELLA MP che da NON ACCETTATA diventa ACCETTATA
-- ===============================================================================================
-- Controllo che il magazzino dest. ACCETTATA sia a cella singola( a terra ), attivo
SELECT @MagNNAccOK = COUNT(*) FROM dbo.Celle AS c INNER JOIN Blocchi b ON c.IdxBlocco=b.IdxBlocco
WHERE b.CodMag = @CodMagMpAcc AND c.Attiva = 1
IF @MagNNAccOK = 1 -- Se mag. ACCETTATA è OK
BEGIN
-- Vado a leggere la cella corretta
SELECT @CellaOK = c.IdxCella FROM Celle AS c INNER JOIN Blocchi b ON c.IdxBlocco=b.IdxBlocco
WHERE b.CodMag = @CodMagMpAcc AND c.Attiva = 1
-- Se ci sono cartellini di materia prima che sono passati da accettati a non accettati li sposto
UPDATE dbo.PosizioneUdcCorrente
SET IdxCella = @CellaOK,
DataRif = GETDATE()
FROM dbo.PosizioneUdcCorrente AS po
INNER JOIN RilPro.RapQual rq
ON rq.UDC = po.UDC
INNER JOIN RawData.XOGIX00F u
ON u.XNRETI = rq.ProgUDC
INNER JOIN dbo.ElencoCartellini AS el
ON rq.UDC = el.UDC
INNER JOIN Celle c
ON po.IdxCella=c.IdxCella
INNER JOIN Blocchi b
ON c.IdxBlocco=b.IdxBlocco
WHERE ( rq.BenesQual = 'N' AND u.XBENQL = 'S' ) -- da NON Accettata ad Accettata
AND XMATSC = 'N' -- solo Lega non ancora Scaricata
AND b.CodMag <> @CodMagMpAcc -- Modifico solo UDC in stato MP non Accettata
UPDATE dbo.ElencoCartellini
SET CodStato = @CodStatoMpAcc,
CodEvento= @CodEven,
ModDate = GETDATE()
FROM dbo.ElencoCartellini AS el
INNER JOIN RilPro.RapQual rq
ON rq.UDC = el.UDC
INNER JOIN RawData.XOGIX00F u
ON u.XNRETI = rq.ProgUDC
WHERE ( rq.BenesQual = 'N' AND u.XBENQL = 'S' ) -- da NON Accettata ad Accettata
AND XMATSC = 'N' -- solo Lega non ancora Scaricata
AND el.CodStato = @CodStatoMpNONacc -- Che ha è in stato MP NON accettata
AND el.IdxPosizione = 6 -- Modifico solo se cartellini non scaricati Mod. 2012-05
END
-- ===============================================================================================
-- ADESSO POSSO FARE UPDATE DI RilPro.RapQual
-- ===============================================================================================
-- se il dato esiste faccio UPDATE!!!
UPDATE RilPro.RapQual
SET CodFor = RTRIM(u.XCDFOR),
DestTerz = RTRIM(u.XCDTER),
CodLega = RTRIM(u.XCDPAR),
-- DataPrelFus = u.XDTPRO,
-- TurnoPrelFus = u.XTRPRO, -- non lo aggiorno perchè in AS400 è blank nel caso di consumo verso terzista e quindi lo perderei
Qta = u.XQTPRO, -- non lo aggiorno x non perdere il mio dato di scaricamento
DestLega = RTRIM(u.XDESMT),
LegaScaric = u.XMATSC,
BenesQual = u.XBENQL
FROM RilPro.RapQual rq
INNER JOIN RawData.XOGIX00F u ON u.XNRETI = rq.ProgUDC; -- AND u.XRPQLN = rq.nRapQual AND u.XRPQLD = rq.DataRapQual; -- se XNRETI è univoco ...
-- verifico che non ci siano cartellini scaricati in AS400 e non sul mio sistema...
UPDATE RilPro.RapQual
SET CodFor = RTRIM(u.XCDFOR),
DestTerz = RTRIM(u.XCDTER),
CodLega = RTRIM(u.XCDPAR),
DataPrelFus = u.XDTPRO,
TurnoPrelFus = RTRIM(u.XTRPRO),
Qta = u.XQTPRO,
DestLega = RTRIM(u.XDESMT),
LegaScaric = u.XMATSC,
BenesQual = u.XBENQL
FROM RilPro.RapQual rq
INNER JOIN RawData.XOGIX00F u ON u.XNRETI = rq.ProgUDC
WHERE rq.DataPrelFus = 0 AND u.XDTPRO > 0;
-- creo tab temporanea x i dati inesistenti...
WITH cteInsert AS
(SELECT x.*
FROM RawData.XOGIX00F x LEFT OUTER JOIN RilPro.RapQual rq
ON x.XNRETI = rq.ProgUDC -- AND u.XRPQLN = rq.nRapQual AND u.XRPQLD = rq.DataRapQual; -- se XNRETI è univoco ...
WHERE rq.ProgUDC IS NULL )
-- se il dato non c'è faccio INSERT!!!
INSERT INTO RilPro.RapQual(nRapQual, DataRapQual, ProgUDC, CodFor, DestTerz, CodLega, DataPrelFus, TurnoPrelFus, Qta, DestLega, LegaScaric, BenesQual)
SELECT XRPQLN AS nRapQual,
XRPQLD AS DataRapQual,
RTRIM(XNRETI) AS ProgUDC,
RTRIM(XCDFOR) AS CodFor,
RTRIM(XCDTER) AS DestTerz,
RTRIM(XCDPAR) AS CodLega,
XDTPRO AS DataPrelFus,
RTRIM(XTRPRO) AS TurnoPrelFus,
XQTPRO AS Qta,
RTRIM(XDESMT) AS DestLega,
XMATSC AS LegaScaric,
XBENQL AS BenesQual
FROM cteInsert
-- ===============================================================================================
-- DOPO UPDATE aggiorno la QTA nei Cartellini GMW se diversi da quelli in RilPro.RapQual ( AS400 )
-- ===============================================================================================
UPDATE e
SET
e.Qta = r.Qta
,e.PesoTot = r.Qta
,CodEvento= @CodEven
,ModDate = GETDATE() -- memorizzo la modifica
-- OUTPUT deleted.* INTO dbo.ElencoCartellini_Copy -- deve essere già presente
FROM RilPro.RapQual AS r
INNER JOIN dbo.ElencoCartellini AS e
ON e.UDC = r.UDC
WHERE ( r.Qta <> e.Qta ) -- Solo se la quantità è diversa
COMMIT TRAN;
RETURN
@@ -0,0 +1,81 @@
/***************************************
* STORED stp_batch_RapQual_S02
*
* Esegue lo step 2 (travaso dati RAW in RilPro) per la tab dei rapporti di qualità
*
* Steamware, S.E.L.
* mod: 2010.09.23
*
****************************************/
CREATE PROCEDURE [BatchQueue].[stp_batch_RapQual_S02_GCarlo]
AS
-- eseguo UPSERT x tutti i dati disponibili in tab Raw...
-- se il dato esiste faccio UPDATE!!!
-- se su AS400 la lega è scaricata aggiorno tutto
UPDATE RilPro.RapQual
SET CodFor = u.XCDFOR,
DestTerz = u.XCDTER,
CodLega = u.XCDPAR,
DataPrelFus = u.XDTPRO,
-- TurnoPrelFus= u.XTRPRO, non lo aggiorno perchè in AS400 è blank nel caso di consumo verso terzista e quindi lo perderei
Qta = u.XQTPRO,
DestLega = u.XDESMT,
LegaScaric = u.XMATSC,
BenesQual = u.XBENQL
FROM RilPro.RapQual rq
INNER JOIN RawData.XOGIX00F u
ON u.XNRETI = rq.ProgUDC -- AND u.XRPQLN = rq.nRapQual AND u.XRPQLD = rq.DataRapQual; -- se XNRETI è univoco ...
AND u.XMATSC IN ('S','B');
-- se su AS400 la lega non è scaricata la aggiorno solo se anche su GMW non è
-- scaricata ( anche così non va bene perchè non mette la N quando scaricata )
-- ma cosa controlla ???? )
UPDATE RilPro.RapQual
SET CodFor = u.XCDFOR,
DestTerz = u.XCDTER,
CodLega = u.XCDPAR,
DataPrelFus = u.XDTPRO,
-- TurnoPrelFus= u.XTRPRO, non lo aggiorno perchè in AS400 è blank nel caso di consumo verso terzista e quindi lo perderei
Qta = u.XQTPRO,
DestLega = u.XDESMT,
LegaScaric = u.XMATSC,
BenesQual = u.XBENQL
FROM RilPro.RapQual rq
INNER JOIN RawData.XOGIX00F u
ON u.XNRETI = rq.ProgUDC -- AND u.XRPQLN = rq.nRapQual AND u.XRPQLD = rq.DataRapQual; -- se XNRETI è univoco ...
AND u.XMATSC = 'N' AND rq.LegaScaric = 'N';
-- creo tab temporanea x i dati inesistenti..
WITH cteInsert AS
(SELECT x.*
FROM RawData.XOGIX00F x LEFT OUTER JOIN RilPro.RapQual rq
ON x.XNRETI = rq.ProgUDC -- AND u.XRPQLN = rq.nRapQual AND u.XRPQLD = rq.DataRapQual; -- se XNRETI è univoco ...
WHERE rq.ProgUDC IS NULL )
-- se il dato non c'è faccio INSERT!!!
INSERT INTO RilPro.RapQual(nRapQual, DataRapQual, ProgUDC, CodFor, DestTerz, CodLega, DataPrelFus, TurnoPrelFus, Qta, DestLega, LegaScaric, BenesQual)
SELECT 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
FROM cteInsert
RETURN
@@ -0,0 +1,55 @@
-- =============================================
-- Steamware, S.E.L.
-- mod: 2012.02.23
--
-- Description: Verifica se ci sono RQ annullati e se ci sono cartellini associati
-- li elimina richiamando la relativa stored
-- =============================================
CREATE PROCEDURE [BatchQueue].[stp_batch_cancellaUDC_RapQualAnnullati]
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
SET NOCOUNT ON;
IF OBJECT_ID(N'tempdb..#CartRQAnnullati') IS NOT NULL -- Se esiste già la tabella temporanea cancello
DROP TABLE #CartRQAnnullati;
-- Carico gli UDC Annullati ( vengono messi ad A su AS400 quando annullano il Rapporto di Qualità )
WITH Cte AS
( SELECT DISTINCT r.nRapQual
FROM RilPro.RapQual AS r
INNER JOIN dbo.ElencoCartellini AS e -- per sicurezza verifico che i cartellini esistano anche in ElencoCartellini
ON r.UDC = e.UDC
WHERE r.BenesQual = 'A' AND r.UDC IS NOT NULL -- Cartellino Annullato e associato a Cartellini GMW
)
SELECT nRapQual, ROW_NUMBER() OVER( ORDER BY nRapQual ) AS Riga
INTO #CartRQAnnullati
FROM Cte
DECLARE @Riga AS INT = 1;
DECLARE @TotRighe AS INT;
DECLARE @nRapQual NUMERIC(6,0);
SELECT @TotRighe = MAX(Riga) FROM #CartRQAnnullati ;
-- Per ogni UDC Annullato eseguo la stored di cancellazione
WHILE @Riga <= @TotRighe
BEGIN
SELECT @nRapQual=nRapQual FROM #CartRQAnnullati WHERE Riga = @Riga
EXECUTE dbo.stp_UDC_delete_byRdQ @nRapQual , 0 -- 0 eseguita in Batch
-- Incremento contatore Riga ( RQ successiva )
SET @Riga = @Riga + 1
END
IF OBJECT_ID(N'tempdb..#CartRQAnnullati') IS NOT NULL -- tabella temporanea cancello
DROP TABLE #CartRQAnnullati;
END
@@ -0,0 +1,140 @@
/***************************************
* STORED stp_consumaMP
*
* Salva il movimento di consumo dell'UDC di MP indicato
*
* Steamware, S.E.L.
* mod: 2010.10.12
*
****************************************/
CREATE 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
-- Salva consumo cartellini Rapporti qualità Materia Prima
-- FILE XOGIX00F
-- LIBRERIA TEST MAZZT_DTV3
-- LIBRERIA EFFETT. TEKAL TEKA_DATV3
-- LIBRERIA EFFETT. SP POSN_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;
DECLARE @As400File AS NVARCHAR(50) = '';
DECLARE @As400Linked AS NVARCHAR(50) = ''; -- Linked Server AS400
SET @SqlOK = 0;
-- In base al nome del DB e della stored recupero il Linked Server e file di AS400 27/06/2013
SET @As400Linked = ( SELECT dbo.f_getLikedAS400(DB_NAME()) );
SET @As400File = ( SELECT dbo.f_getLibreriaAS400 ( DB_NAME() , OBJECT_SCHEMA_NAME(@@PROCID) + '.' + OBJECT_NAME(@@PROCID) ) )
BEGIN TRY
-- TEST per generare errore
-- SET @XDTPRO = 99999920100723 -- data 8 cifre aaaammgg
-- ==============================================================
-- Creo l'istruzione SQL e faccio chiamata su AS400
-- Aggiorno solo se su As400 Legascar è N XMATSC = 'N' mettendo poi S
-- indico su As400 che il cartellino UDC della Lega è stato scaricato
-- ==============================================================
SET @SQL = N'UPDATE OPENQUERY(' + @As400Linked
SET @SQL = @SQL + N', ''SELECT * FROM ' + @As400File
SET @SQL = @SQL + ' WHERE XRPQLN = ' + CAST(@XRPQLN AS NVARCHAR(20)) -- Numero Rapporto Qualita
SET @SQL = @SQL + ' AND XMATSC = ''''N'''' AND XNRETI = ''''' + @XNRETI + ''''''' ) ' -- non ancora scaricato ('N') e Numero UDC AS400
SET @SQL = @SQL + 'SET XDTPRO = ' + CAST(@XDTPRO AS NVARCHAR(8)) -- Data
SET @SQL = @SQL + ', XTRPRO = ''' + @XTRPRO + '''' -- Turno
SET @SQL = @SQL + ', XDESMT = ''' + @XDESMT + '''' -- Destinatario
SET @SQL = @SQL + ', XMATSC = ''S''' -- Flag Lega Scaricata
SET @SQL = @SQL + ', XCDTER = ''' + @XCDTER + ''''; -- Cod Terzista
-- Eseguo il comando T-SQL verso AS400
EXEC sp_executesql @SQL;
-- EXEC @SqlOK = sp_executesql @SQL se faccio così non mi valorizza la variabile se da errore
END TRY
BEGIN CATCH
-- se entro nel CATCH c'è stato un errore quindo lo memorizzo
SET @SqlOK = ERROR_NUMBER();
END CATCH
-- Test di lettura - Modifica 14/06/2011
IF @SqlOK = 0 -- Se sp_executesql è Ok
BEGIN
SET @SqlOK = -1 -- lo rimetto a 0 solo se lettura è OK
-- Controllo che l'UDC sia stato scaricato in modo corretto su AS400
DECLARE @SQL2 AS NVARCHAR(4000);
DECLARE @LettoOk AS INT = 99;
SET @SQL2 = N'SELECT @LettoOk = COUNT(*) FROM OPENQUERY(' + @As400Linked
SET @SQL2 = @SQL2 + N', ''SELECT XRPQLN FROM ' + @As400File
SET @SQL2 = @SQL2 + N' WHERE XRPQLN = ' + CAST(@XRPQLN AS NVARCHAR(20)) -- Numero Rapporto Qualita
SET @SQL2 = @SQL2 + N' AND XNRETI = ''''' + @XNRETI + '''''' -- Numero UDC AS400
SET @SQL2 = @SQL2 + N' AND XMATSC = ''''N''''' -- non ancora scaricato ('N')
SET @SQL2 = @SQL2 + N''' ) '
EXEC sp_executesql @SQL2, N'@LettoOk INT OUTPUT', @LettoOk OUTPUT;
-- Se trovo record UDC non scaricato lo imposto come errore -2 altrimenti tutto OK
IF @LettoOk = 0 SET @SqlOK = 0 ELSE SET @SqlOK = -2
END
-- Fine Modifica - Modifica 14/06/2011
-- 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!!!!!
RETURN @SqlOK;
/* -- sono tutte su DB di test
SELECT XRPQLN, XNRETI , XDTPRO, XTRPRO, XDESMT, XMATSC, XCDTER
FROM OPENQUERY( AS400XXXX, 'SELECT * FROM MAZZT_DTV3.XOGIX00F WHERE XRPQLN = 905793 AND XNRETI = ''U100548151'' ')
-- Resetto l'UDC
UPDATE OPENQUERY( AS400XXXX, 'SELECT * FROM MAZZT_DTV3.XOGIX00F WHERE XRPQLN = 905793 AND XNRETI = ''U100548151'' ')
SET XDTPRO = 0 , XTRPRO = '', XDESMT = '', XMATSC = 'N', XCDTER = ''
-- Comando OK
-- UPDATE OPENQUERY( AS400XXXX, 'SELECT * FROM MAZZT_DTV3.XOGIX00F WHERE XRPQLN = 905793 AND XNRETI = ''U100548151'' ')
-- SET XDTPRO = 20100723 , XTRPRO = 'S', XDESMT = 'F01', XMATSC = 'N', XCDTER = ''
*/
@@ -0,0 +1,90 @@
/***************************************
* STORED stp_processaCodaConsumoMP
*
* Processa la coda dei consumo di UDC di MP e chiaam procedura x salvataggio dato su AS400
*
* Steamware
* mod:
*
****************************************/
CREATE PROCEDURE [BatchQueue].[stp_processaCodaConsumoMP]
(
@ExecBatchInter BIT -- 0 Eseguita in Batch , 1 in Interattivo
)
AS
-- faccio una query con un cursore x processare tutte le righe da inviare ad AS400..
DECLARE @UDC NVARCHAR(50) -- UDC SQL
DECLARE @XRPQLN INT -- UDC
DECLARE @XNRETI NVARCHAR(10) -- Progr UDC AS400
DECLARE @XDTPRO INT -- DataPrelievo
DECLARE @XTRPRO NVARCHAR(5) -- Turno Prelievo
DECLARE @XDESMT NVARCHAR(3) -- Destinazione Lega
DECLARE @XCDTER NVARCHAR(6) -- Cod. Terzista
DECLARE @ScritturaASOK AS INT = 0;
DECLARE @InteroCicloASOK AS INT = 0; -- memorizzo errore nel ciclo WHILE
-- Dichiaro e carico il cursore
DECLARE UdcMpList CURSOR LOCAL FOR
SELECT UDC FROM dbo.AS400_BatchConsumoMP WHERE DataInvioAs IS NULL
OPEN UdcMpList
FETCH NEXT FROM UdcMpList
INTO @UDC
WHILE @@FETCH_STATUS = 0
BEGIN
-- controllo ci sia la riga
IF (SELECT COUNT(UDC) FROM AS400_BatchConsumoMP WHERE UDC=@UDC) > 0
BEGIN
-- carico valori che mi servono
SELECT @XRPQLN=rq.nRapQual, @XNRETI=rq.ProgUDC, @XDTPRO=bcu.DataPrelFus, @XTRPRO=bcu.TurnoPrelFus,
@XDESMT=bcu.DestLega, @XCDTER=bcu.DestTerz
FROM dbo.AS400_BatchConsumoMP as bcu
INNER JOIN RilPro.RapQual as rq ON bcu.UDC = rq.UDC
WHERE bcu.UDC=@UDC
-- BEGIN TRAN qui non va messa perchè se verso AS400 le transazioni non sono gestite
-- MANCA IL CONTROLLO SE L'AGGIORNAMENTO E' STATO OK
EXECUTE @ScritturaASOK = BatchQueue.stp_consumaMP @XRPQLN ,@XNRETI ,@XDTPRO ,@XTRPRO ,@XDESMT ,@XCDTER
-- registro la data del movimento BATCH solo se stp_consumaMP ritorna OK
-- Così non aggiorna la tabella MA L'UTENTE NON SI ACCORGE DI NULLA!!!
IF @ScritturaASOK = 0
UPDATE dbo.AS400_BatchConsumoMP SET DataInvioAs = GETDATE() WHERE UDC = @UDC
ELSE
SET @InteroCicloASOK = @ScritturaASOK
FETCH NEXT FROM UdcMpList INTO @UDC
END
END
CLOSE UdcMpList
DEALLOCATE UdcMpList
-- aggiunta per dare errore se schedulata!!! GCARLO
-- Se la scrittura su AS400 ha dato errore ed è stata eseguita in batch sollevo l'errore
-- così anche il batch da errore
IF @InteroCicloASOK <> 0 AND @ExecBatchInter = 0
BEGIN
DECLARE @ErrorMessage NVARCHAR(4000);
DECLARE @ErrorSeverity INT = 16;
DECLARE @ErrorState INT = 1;
IF @InteroCicloASOK < 0 -- errore nella verifica della scrittura su AS400
SELECT @ErrorMessage = 'Errore nella VERIFICA di scrittura su AS400 in stp_consumaMP'
ELSE
SELECT -- nn so se riesce a leggere i dati dell'errore cmq lo solleva
@ErrorMessage = ERROR_MESSAGE()+ ' '+ CONVERT( VARCHAR(10),ERROR_NUMBER()),
@ErrorSeverity = ISNULL(ERROR_SEVERITY(),16),
@ErrorState = ERROR_STATE();
-- sollevo errore per mandare in errore la procedura schedulata
RAISERROR (@ErrorMessage, -- Message text.
@ErrorSeverity, -- Severity.
@ErrorState -- State.
);
END
RETURN
@@ -0,0 +1,103 @@
/*****************************************************
* STORED sstp_processaCodaMovimMag
*
* Processa la coda dei movimenti di magazzino e chiama procedura x salvataggio dato su AS400
*
* Steamware, S.E.L.
* mod: 2013.11.22
*
****************************************/
CREATE PROCEDURE BatchQueue.stp_processaCodaMovimMag
AS
-- VERIFICARE 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 LOCAL FOR
-- SELECT TOP 2000 IdxBatch FROM dbo.AS400_BatchMovimenti WHERE DataBatch IS NULL -- limito a 2000 i movimenti da passare
-- modifica per cambio anagrafica ( blocco i movimenti con particolare vecchio )
IF GETDATE() >= '20140101' -- 22/11/2013 Hard Coded x Modifica Anagrafica Articoli
DECLARE RigaMovMag CURSOR LOCAL FOR
SELECT TOP 2000 IdxBatch FROM dbo.AS400_BatchMovimenti
WHERE DataBatch IS NULL -- limito a 2000 i movimenti da passare
AND LEFT(Particolare ,1) <> 'P' -- Hard Coded 22/11/2013 non passo movimenti con codice vecchio
AND LEFT(Particolare ,1) <> 'A' -- Hard Coded 31/01/2014 non passo movimenti con codice anime vecchio
ORDER BY DataIns
ELSE
DECLARE RigaMovMag CURSOR LOCAL FOR
SELECT TOP 2000 IdxBatch FROM dbo.AS400_BatchMovimenti
WHERE DataBatch IS NULL -- limito a 2000 i movimenti da passare
ORDER BY DataIns
-- utente da inviare ad AS... VERIFICARE!!! su AS400 è un Char(10)
SET @CodSoggetto = 'UTENTEGMW2'
-- carico i 2 valori di default di carico e scarico da AS400
SET @CodMovCarico = (SELECT CauCarico FROM RilPro.AnagCausaliMag WHERE CodElemento = '0001')
SET @CodMovScarico = (SELECT CauScarico FROM RilPro.AnagCausaliMag WHERE CodElemento = '0001')
-- 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 dbo.AS400_BatchMovimenti WHERE IdxBatch = @IdxBatch) > 0
BEGIN
/* OLD VERSION
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(bm.DataIns), -- mod. 09/06/2012
@RIFFO=RIGHT( (CONVERT(NVARCHAR(20),bm.IdxBatch)) , 8 ) -- mod. 09/06/2012
*/
-- carico valori che mi servono
-- Lo scarico Anime esterne usa la causale P3 per poterle distinguerle in AS400 ( richiesta da TEKAL ) x il carico
-- non serve visto che non viene mai fatto vs AS400 x le anime esterne
SELECT @Particolare = bm.Particolare,
@Causale = CASE WHEN bm.Quantita < 0 AND (gm.CodStatoTo='AnimExt' OR gm.CodStatoFrom='AnimExt') THEN 'P3' -- Hard Coded 11/06/2013
WHEN bm.Quantita > 0 THEN @CodMovCarico
ELSE @CodMovScarico END,
@CodMag = bm.CodMagAS,
@Qta = ABS(bm.Quantita),
@Data = dbo.dateToAsFormat(bm.DataIns), -- mod. 09/06/2012
@RIFFO = RIGHT( (CONVERT(NVARCHAR(20),bm.IdxBatch)) , 8 ) -- mod. 09/06/2012
-- @Data=dbo.dateToAsFormat(GETDATE()),
-- @RIFFO=dbo.getUdcComp(bm.UDC,8)
FROM dbo.AS400_BatchMovimenti AS bm
INNER JOIN dbo.GiornaleMagazzino AS gm ON bm.numOp = gm.numOp
WHERE IdxBatch = @IdxBatch
-- Eseguo la stored che registra i movimenti magazzino
DECLARE @ScritturaASOK AS INT
EXECUTE @ScritturaASOK = BatchQueue.stp_registraMovMag @CodSoggetto, @Causale, @Particolare, @CodMag, @Qta, @Data, @RIFFO
-- registro la data del movimento BATCH solo se la stp verso AS400 è Ok
IF @ScritturaASOK = 0
UPDATE dbo.AS400_BatchMovimenti SET DataBatch = GETDATE() WHERE IdxBatch = @IdxBatch
FETCH NEXT FROM RigaMovMag INTO @IdxBatch
END
END
CLOSE RigaMovMag
DEALLOCATE RigaMovMag
RETURN
@@ -0,0 +1,113 @@
/*****************************************
* 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)
DECLARE @ScritturaRigaOK AS INT -- Flag errore su riga ritornato da Stored che va su As400 0 = Ok
SET @ScritturaRigaOK = 0;
DECLARE @ScritturaASOK AS INT -- Flag errore Packing generale su Stored che va su As400 0 = Ok
SET @ScritturaASOK = 0;
-- qui è meglio usare una tabella temporanea o ancor meglio una variabile tabella x pochi record
-- query con un cursore x processare tutte le righe di Packing che sono ancora da inviare ad AS400 ( DataBatch IS NULL )
DECLARE RigaPackList CURSOR LOCAL FOR
SELECT IdxRiga, CodLista 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 caricando le righe
OPEN RigaPackList
FETCH NEXT FROM RigaPackList
INTO @IdxRiga , @CodLista
SET @CodListaPre = @CodLista
WHILE @@FETCH_STATUS = 0
BEGIN
-- controllo ci sia almento una riga di Packing ( PER ME NON SERVE )
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 la Packing List con le righe sue righe
EXECUTE @ScritturaRigaOK = BatchQueue.stp_registraPackList @CodStab, @UDC, @Particolare , @CodImb , @Matr , @Tipo , @Dest , @Qta , @PesoNet , @PesoLor , @Stato , @Data
-- se scrittura riga è ok allora salvo sulla riga la data di invio... così poi non la rivedo tra quelle da processare...
IF @ScritturaRigaOK = 0
UPDATE RigheListePrelievo_AS SET DataBatch = GETDATE() WHERE IdxRiga = @IdxRiga;
-- Se scrittura Riga Packing non ok metto Flag Packing list non Ok
IF @ScritturaRigaOK <> 0 SET @ScritturaASOK = @ScritturaRigaOK
FETCH NEXT FROM RigaPackList
INTO @IdxRiga , @CodLista
-- controllo: se la lista precedente è diversa dall'attuale la indico come scaricata (precedente)
IF(@CodListaPre <> @CodLista)
BEGIN
-- Se tutte le righe della lista sono Ok la indico come scaricata
-- se UDC già presente in As400 errore 7343
IF @ScritturaASOK = 0
UPDATE ElencoListePrelievo_AS SET DataBatch = GETDATE() WHERE CodLista = @CodListaPre;
ELSE
SET @ScritturaASOK = 0; -- resetto il flag di controllo
-- cambio il cod pre da confrontare
SET @CodListaPre = @CodLista
END
END
END
-- Aggiorno anche l'ultima lista prelievo
-- x gli UDC già in AS400 da errore 7343
IF @ScritturaASOK = 0 -- OR @ScritturaASOK = 7343 ???
-- registro la data del movimento BATCH anche dell'ultima lista processata
UPDATE ElencoListePrelievo_AS SET DataBatch = GETDATE() WHERE CodLista = @CodLista
-- se c'è un errore mi rimane aperto il cursore? nn dovrebbe perchè LOCAL
CLOSE RigaPackList
DEALLOCATE RigaPackList
RETURN
@@ -0,0 +1,221 @@
/*****************************************
* STORED stp_processaGiornaleMagazzino
*
* processa il giornale del magazzino, in modo da controlalre tutte le righe non processate (o eventualmente solo quelle nuove)
* e spostare nella coda di trasferimento con AS400 SOLO i movimenti che soddisfano i criteri specificati nella tabella
* "TabSyncMovMag"
*
* Steamware, S.E.L.
* mod: 2012.05.25
*
****************************************/
CREATE PROCEDURE [BatchQueue].[stp_processaGiornaleMagazzino]
(
@CodCS NCHAR(2),
@lastInsDate DATETIME = NULL -- data-ora da cui cercare i record, se non viene passata è l'ultimo movimento registrato
)
AS
SET XACT_ABORT ON;
BEGIN TRAN
/**********************************************************************************
*
* PROCEDURA in 4 step:
* - STEP 1: registro rettifiche QUANTITA' in FROM
* - STEP 2: registro prelievi da mag ext "from" (cambio mag)
* - STEP 3: registro depositi a mag ext "to" (cambio mag)
* - STEP 4: registro compensazioni: se from e to corrispondono e mag comp è NON NULLO metto in comp!
* - STEP 5: verifico e creo movimenti di scarico grezzi tramite distinta
**********************************************************************************/
-- in primis: se è nulla la data calcolo l'ultim data di processing...
IF ( @lastInsDate IS NULL )
BEGIN
SET @lastInsDate = ( SELECT ISNULL(MAX(DataOra), '19000101') FROM GiornaleMagazzino WHERE NOT (DataOraProc IS NULL) )
END
-- ATTENZIONE!!! DEVE ESSERCI UN PARTICOLARE NON NULLO e != "n.d."
-- ora prendo tutte le righe che mi interessano e cerco match sulla tab TabSyncMovMag e le inserisco in batch...
-- =====================================================================================
-- STEP 1: rettifico quantità!
-- =====================================================================================
INSERT INTO AS400_BatchMovimenti(DataIns, numOp, CodEvento, Particolare, UDC, CodMagAS, Quantita)
SELECT DataOra, numOp, 'UDC_MOD', gm.Particolare, gm.UDC, tsmm.codMagExtFrom , gm.QtaTo - gm.QtaFrom
FROM GiornaleMagazzino gm
INNER JOIN TabSyncMovMag tsmm ON
tsmm.CodCS = @CodCS AND
gm.CodStatoFrom = tsmm.CodStatoFrom AND
gm.CodStatoTo = tsmm.CodStatoTo AND
gm.IdxPosizioneFrom = tsmm.IdxPosizioneFrom AND
gm.IdxPosizioneTo = tsmm.IdxPosizioneTo
WHERE (gm.DataOra >= @lastInsDate)
AND (gm.DataOraProc IS NULL)
AND (tsmm.toExt = 1) -- Se devo fare movimento su Sistema EXT
AND gm.Particolare <> '' -- particolare deve essere disponibile!!!!
AND (tsmm.codMagExtTo IS NOT NULL AND tsmm.codMagExtFrom IS NOT NULL ) -- le righe con magazzini ext NULLI non sono permessi
AND (tsmm.codMagExtFrom = tsmm.codMagExtTo) -- Solo se NON VARIA MAG ESTERNO...
AND (tsmm.codMagExtTo > 0 AND codMagExtFrom > 0 ) -- e magazzini non 0 ( usato quando non esiste Mag )
-- =====================================================================================
-- STEP 2: genero ora casi con 2 mag ext che cambiano: tolgo da FROM
-- =====================================================================================
INSERT INTO AS400_BatchMovimenti(DataIns, numOp, CodEvento, Particolare, UDC, CodMagAS, Quantita)
SELECT DataOra, numOp, 'UDC_MOV', gm.Particolare, gm.UDC, tsmm.codMagExtFrom , - gm.QtaFrom
FROM GiornaleMagazzino gm
INNER JOIN TabSyncMovMag tsmm ON
tsmm.CodCS = @CodCS AND
gm.CodStatoFrom = tsmm.CodStatoFrom AND
gm.CodStatoTo = tsmm.CodStatoTo AND
gm.IdxPosizioneFrom = tsmm.IdxPosizioneFrom AND
gm.IdxPosizioneTo = tsmm.IdxPosizioneTo
WHERE (gm.DataOra >= @lastInsDate)
AND (gm.DataOraProc IS NULL)
AND (tsmm.toExt = 1)
AND gm.Particolare <> '' -- particolare deve essere disponibile!!!!
AND (tsmm.codMagExtTo IS NOT NULL AND tsmm.codMagExtFrom IS NOT NULL ) -- le righe con magazzini ext NULLI non sono permessi
AND (tsmm.codMagExtFrom <> tsmm.codMagExtTo) -- se VARIA MAG ESTERNO...
AND (tsmm.codMagExtFrom > 0); -- e mag. partenza non 0 ( usato se non esiste Mag di partenza es. NEW UDC )
-- e non Negativo ( consumo ) non carica nessun magazzino
-- =====================================================================================
-- STEP 3: genero ora casi con 2 mag ext che cambiano: metto in TO
-- =====================================================================================
INSERT INTO AS400_BatchMovimenti(DataIns, numOp, CodEvento, Particolare, UDC, CodMagAS, Quantita)
SELECT DataOra, numOp, 'UDC_MOV', gm.Particolare, gm.UDC, tsmm.codMagExtTo , gm.QtaTo
FROM GiornaleMagazzino gm INNER JOIN TabSyncMovMag tsmm ON
tsmm.CodCS = @CodCS AND
gm.CodStatoFrom = tsmm.CodStatoFrom AND
gm.CodStatoTo = tsmm.CodStatoTo AND
gm.IdxPosizioneFrom = tsmm.IdxPosizioneFrom AND
gm.IdxPosizioneTo = tsmm.IdxPosizioneTo
WHERE (gm.DataOra >= @lastInsDate)
AND (gm.DataOraProc IS NULL)
AND (tsmm.toExt = 1)
AND (tsmm.codMagExtTo IS NOT NULL AND tsmm.codMagExtFrom IS NOT NULL ) -- le righe con magazzini ext NULLI non sono permessi
AND gm.Particolare <> '' -- particolare deve essere disponibile!!!!
AND (tsmm.codMagExtFrom <> tsmm.codMagExtTo) -- se VARIA MAG ESTERNO...
AND (tsmm.codMagExtTo > 0); -- e mag. destinazione non 0 ( usato se non esiste Mag di arrivo es. DEL UDC )
-- e non Negativo ( consumo ) non carica nessun magazzino
-- =====================================================================================
-- STEP 4: cerco prima casi con magazzini ext origine = destinazione e compensazioni
-- =====================================================================================
INSERT INTO AS400_BatchMovimenti(DataIns, numOp, CodEvento, Particolare, UDC, CodMagAS, Quantita)
SELECT DataOra, numOp, 'UDC_COMP', gm.Particolare, gm.UDC, tsmm.codMagExtComp, gm.QtaFrom - gm.QtaTo
FROM GiornaleMagazzino gm
INNER JOIN TabSyncMovMag tsmm ON
tsmm.CodCS = @CodCS AND
gm.CodStatoFrom = tsmm.CodStatoFrom AND
gm.CodStatoTo = tsmm.CodStatoTo AND
gm.IdxPosizioneFrom = tsmm.IdxPosizioneFrom AND
gm.IdxPosizioneTo = tsmm.IdxPosizioneTo
WHERE (gm.DataOra >= @lastInsDate)
AND (gm.DataOraProc IS NULL)
AND (tsmm.toExt = 1)
AND gm.Particolare <> '' -- particolare deve essere disponibile!!!!
AND (tsmm.codMagExtTo IS NOT NULL AND tsmm.codMagExtFrom IS NOT NULL ) -- le righe con magazzini ext NULLI non sono permessi
AND (tsmm.codMagExtTo > 0 AND codMagExtFrom > 0 ) -- e magazzini > 0 ( usato quando non esiste Mag )
AND (tsmm.codMagExtComp IS NOT NULL AND tsmm.codMagExtComp <> 0 ) -- HO compensazioni!!!
AND (tsmm.codMagExtFrom = tsmm.codMagExtTo); -- E NON VARIA MAG ESTERNO...
-- =====================================================================================
-- STEP 5: verifico e creo movimenti di scarico grezzi tramite distinta
-- =====================================================================================
-- estraggo i mov. già creati che in base alla TabSyncMovMag devono fare mov. di scarico grezzi
-- tramite distinta base e particolare leggo i relativi grezzi e qta da scaricare
-- oppure, se il particolare è già un grezzo scarico se stesso
WITH ctePartMov AS -- movimenti creati che hanno un ulteriore carico-scarico tramite distinta
(
SELECT mov.DataIns , mov.numOp, mov.CodEvento, mov.Particolare, mov.UDC, mov.CodMagAS, mov.Quantita
,tsmm.codMagExtDist AS CodMagAS_Update
--,*
FROM dbo.AS400_BatchMovimenti AS mov
INNER JOIN dbo.GiornaleMagazzino AS gm
ON mov.numOp = gm.numOp
INNER JOIN dbo.TabSyncMovMag AS tsmm
ON tsmm.CodCS = @CodCS AND
gm.CodStatoFrom = tsmm.CodStatoFrom AND
gm.CodStatoTo = tsmm.CodStatoTo AND
gm.IdxPosizioneFrom = tsmm.IdxPosizioneFrom AND
gm.IdxPosizioneTo = tsmm.IdxPosizioneTo
WHERE gm.DataOraProc IS NULL
AND tsmm.toDistinta = 1 -- movimenti elaborati con compensazione distinta grezzo richiesta toDistinta = 1
AND codMagExtDist > 0 -- e magazzino di compensazione grezzo impostato
),
-- Cte ricorsiva che a fronte dei particolari passati mi ritorna tutto l'albero della distinta
-- per tutti i figli del particolare con il relativo calcolo delle quantità
DistintaCTE ( Particolare , Padre, Figlio, Coeff, QtaDaScar ,Level ) AS
(
SELECT p.Particolare, d.Padre, d.Figlio, d.Coeff , CONVERT( numeric(20,4), d.Coeff ) AS QtaDaScar, 0 AS Level
FROM RilPro.DistintaAS400 AS d
INNER JOIN ctePartMov AS p ON p.Particolare = d.Padre -- prendo i particolari e leggo l'albero partendo da questi
UNION ALL
SELECT Particolare, p.Padre, p.Figlio, p.Coeff, -- select ricorsiva
CONVERT( numeric(20,4),( p.Coeff * QtaDaScar ) ) AS QtaDaScar,
Level + 1
FROM RilPro.DistintaAS400 AS p
INNER JOIN DistintaCTE AS f ON p.Padre = f.Figlio
)
-- estraggo solo le righe distinta con grezzi come figli
,CteGrezzi AS
(
SELECT Particolare, Padre, Figlio, Coeff, QtaDaScar, Level
FROM DistintaCTE
WHERE SUBSTRING( Figlio, 2,3) = 'GRZ' -- solo le righe di scarico grezzi
)
INSERT INTO dbo.AS400_BatchMovimenti(DataIns, numOp, CodEvento, Particolare, UDC, CodMagAS, Quantita)
SELECT DataIns
, numOp
, 'UDC_GRZ' AS CodEvento
, g.Figlio AS PartGrezzo
, UDC
, CodMagAS_Update
, -( ISNULL( g.QtaDaScar, 1) * p.Quantita ) AS QtaGrezzo -- quantità grezzi da scaricare secondo la dist. base
FROM ctePartMov AS p
INNER JOIN CteGrezzi AS g ON p.Particolare = g.Particolare
UNION
-- i movimenti di scarico dei grezzi stessi li inserisco direttamente con qta 1=1
SELECT DataIns, numOp, 'UDC_GRZ' AS CodEvento, Particolare AS PartGrezzo, UDC, CodMagAS_Update, -(Quantita) AS QtaGrezzo
FROM ctePartMov
WHERE SUBSTRING( Particolare, 2,3) = 'GRZ'
OPTION (MAXRECURSION 50); -- max n. sottolivelli
-- =====================================================================================
-- ora aggiorno le stesse righe di giornale riportate indicando la data ora di processing...
-- =====================================================================================
UPDATE gm
SET DataOraProc = GETDATE()
FROM GiornaleMagazzino gm
INNER JOIN AS400_BatchMovimenti abm
ON gm.numOp = abm.numOp
WHERE (gm.DataOra >= @lastInsDate)
AND (gm.DataOraProc IS NULL)
COMMIT TRAN
RETURN
@@ -0,0 +1,155 @@
/***************************************
* STORED stp_registraMovMag
*
* Salva il movimento di magazzino indicato
*
* Steamware, S.E.L.
* mod: 2010.10.15
*
****************************************/
CREATE 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
-- Movimentazioni Magazzino di Massa
-- FILE TEKAL MWMV260F ( MWMV230F x TEST )
-- FILE POSS ???..... ( MWMV230F x TEST )
-- LIBR. TEST MAZZT_DTV3
-- LIBR. EFFETTIVA TEKAL TEKA_DATV3
-- LIBR. EFFETTIVA POSS ????
/* -- 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 @SQL AS NVARCHAR(4000);
DECLARE @SqlOK AS INT;
DECLARE @As400File AS NVARCHAR(50) = '';
DECLARE @As400Linked AS NVARCHAR(50) = ''; -- Linked Server AS400
SET @SqlOk = 0; -- variabile test se in errore
-- Verificare prima se è già stato inserito? usare in RIFFO idxBatch?
-- allineo il CDMAG a destra con zeri a SX mod. 07/09/2012
SET @CDMAG = RIGHT('00' + LTRIM(RTRIM(@CDMAG)), 2);
-- metto il particolare in Maiuscolo altrimenti ACG lo scarta
SET @CDPAR = UPPER(@CDPAR);
-- In base al nome del DB e della stored recupero il Linked Server e file di AS400
SET @As400Linked = ( SELECT dbo.f_getLikedAS400(DB_NAME()) );
SET @As400File = ( SELECT dbo.f_getLibreriaAS400 ( DB_NAME() , OBJECT_SCHEMA_NAME(@@PROCID) + '.' + OBJECT_NAME(@@PROCID) ) )
-- SET @As400File = ( SELECT dbo.f_getLibreriaAS400 ( DB_NAME(), 'stp_registraMovMag' ) );
-- Eseguo l'istruzione inserimento movimento verso AS400 con controllo errori
BEGIN TRY
-- TEST per generare errore
-- SET @XDTPRO = 99999920100723 -- data 8 cifre aaaammgg
-- ==============================================================
-- Creo l'istruzione SQL e faccio chiamata su AS400
-- ==============================================================
SET @SQL = N'INSERT INTO OPENQUERY(' + @As400Linked
SET @SQL = @SQL + N', ''SELECT NOMUS, CDCAU, CDPAR, CDMAG, QTMOV, DAMOV, RIFFO'
SET @SQL = @SQL + ' FROM ' + @As400File + ''') '
SET @SQL = @SQL + 'VALUES ( @NOMUS , @CDCAU , @CDPAR , @CDMAG , @QTMOV , @DAMOV , @RIFFO )'
-- Eseguo il comando T-SQL verso AS400
EXEC sp_executesql @SQL, N'@NOMUS NVARCHAR(50)
,@CDCAU NVARCHAR(2)
,@CDPAR NVARCHAR(15)
,@CDMAG NVARCHAR(2)
,@QTMOV NUMERIC(9,2)
,@DAMOV NVARCHAR(8)
,@RIFFO NVARCHAR(8)' -- Definizione Parametri
,@NOMUS , @CDCAU , @CDPAR , @CDMAG , @QTMOV , @DAMOV , @RIFFO
-- EXEC @SqlOK = sp_executesql @SQL se faccio così non mi valorizza la variabile se da errore
/* --VECCHIA INSERT
INSERT INTO OPENQUERY( AS400XXX,
'SELECT NOMUS , CDCAU , CDPAR , CDMAG , QTMOV , DAMOV , RIFFO
FROM MAZZT_DTV3.MWMV230F' )
VALUES ( @NOMUS , @CDCAU , @CDPAR , @CDMAG , @QTMOV , @DAMOV , @RIFFO )
*/
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
-- Test di lettura - Modifica 06/09/2012
IF @SqlOK = 0
BEGIN
SET @SqlOK = -1; -- lo rimetto a 0 solo se lettura è OK
-- Controllo che il record sia stato inserito in modo corretto su AS400
DECLARE @SQL2 AS NVARCHAR(4000);
DECLARE @LettoOk AS INT;
SET @SQL2 = N'SELECT @LettoOk = COUNT(*) FROM OPENQUERY(' + @As400Linked
SET @SQL2 = @SQL2 + N', ''SELECT RIFFO FROM ' + @As400File
SET @SQL2 = @SQL2 + ' WHERE '
SET @SQL2 = @SQL2 + ' NOMUS = ''''' + @NOMUS + '''''' -- Utente
SET @SQL2 = @SQL2 + ' AND CDCAU = ''''' + @CDCAU + '''''' -- Causale
SET @SQL2 = @SQL2 + ' AND CDPAR = ''''' + @CDPAR + '''''' -- Particolare
SET @SQL2 = @SQL2 + ' AND CDMAG = ''''' + @CDMAG + '''''' -- Magazzino
SET @SQL2 = @SQL2 + ' AND QTMOV = ' + CAST(@QTMOV AS NVARCHAR(15)) -- Qta
SET @SQL2 = @SQL2 + ' AND DAMOV = ' + @DAMOV + '' -- Data
SET @SQL2 = @SQL2 + ' AND RIFFO = ''''' + @RIFFO + '''''' -- Riferimento ( UDC )
SET @SQL2 = @SQL2 + ''' ) '
EXEC sp_executesql @SQL2, N'@LettoOk INT OUTPUT', @LettoOk OUTPUT;
-- Se non trovo record Movimento UDC lo imposto come errore -2 altrimenti tutto OK
IF @LettoOk = 0 SET @SqlOK = -2; ELSE SET @SqlOK = 0;
END
-- Fine Modifica - Modifica 06/09/2012
-- Memorizzo il comando per verifica T-SQL e l'esito del comando se 0 è OK
INSERT INTO RawData.AS400_Comandi
SELECT GETDATE(), 'stp_registraMovMag',
@SQL + ' parametri :'
+ @NOMUS + ',' + @CDCAU + ',' + @CDPAR + ',' + @CDMAG + ',' + CONVERT(VARCHAR(20) , @QTMOV) + ',' + @DAMOV + ',' + @RIFFO, @SqlOk
RETURN @SqlOK;
/* TEST e DELETE
SELECT * FROM OPENQUERY( AS400XXX, 'SELECT NOMUS ,CDCAU ,CDPAR ,CDMAG ,QTMOV ,DAMOV ,RIFFO FROM MAZZ_DATV3.MWMV230F' )
DELETE
OPENQUERY( AS400XXX, 'SELECT * FROM MAZZT_DTV3.MWMV230F WHERE NOMUS = ''PIPPO'' ')
DELETE AS400XXX.A60220DC.MAZZT_DTV3.MWMV230F WHERE NOMUS_CANCELLA = 'UTENTEGMW1'
*/
@@ -0,0 +1,109 @@
/***************************************
* 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;
Binary file not shown.
+28
View File
@@ -0,0 +1,28 @@
CREATE VIEW [external].[v_ExportDatiOdette]
AS
SELECT
[CampoUDC] AS [UDC]
,[Campo1_2] AS [Campo1_2_Receiver]
,[CodMag]
,[Particolare]
,[Campo9_2] AS [Qta]
,[Campo11_2_2] AS [Imballo]
,[GrpBolla]
,[DataBolla]
,[NumBolla]
--,[Campo2_2] AS [Campo2_2_Destination]
--,[Campo3_2] AS [Campo3_2_DocNumber_Bolla]
--,[Campo5_2] AS [Campo5_2_NetWeight]
--,[Campo6_2] AS [Campo6_2_GrossWeight]
--,[Campo7_2] AS [Campo7_2_Boxes_Colli]
--,[Campo8_2] AS [Campo8_2_PartNumber] -- Disegno
--,[Campo13_2] AS [Campo13_2_Data]
--,[Campo15_2] AS [Campo15_2_SerialNumber_ProgrOdette]
--,[CodLista]
FROM dbo.Odette
+478
View File
@@ -0,0 +1,478 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<Name>GMW_DB</Name>
<SchemaVersion>2.0</SchemaVersion>
<ProjectVersion>4.1</ProjectVersion>
<ProjectGuid>{4a7c6325-d822-446c-bce3-811fc178dcbe}</ProjectGuid>
<DSP>Microsoft.Data.Tools.Schema.Sql.Sql100DatabaseSchemaProvider</DSP>
<OutputType>Database</OutputType>
<RootPath>
</RootPath>
<RootNamespace>GMW_DB</RootNamespace>
<AssemblyName>GMW_DB</AssemblyName>
<ModelCollation>1033,CI</ModelCollation>
<DefaultFileStructure>BySchemaAndSchemaType</DefaultFileStructure>
<DeployToDatabase>True</DeployToDatabase>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<TargetLanguage>CS</TargetLanguage>
<AppDesignerFolder>Properties</AppDesignerFolder>
<SqlServerVerification>False</SqlServerVerification>
<IncludeCompositeObjects>True</IncludeCompositeObjects>
<TargetDatabaseSet>True</TargetDatabaseSet>
<DefaultCollation>Latin1_General_CI_AS</DefaultCollation>
<DefaultFilegroup>PRIMARY</DefaultFilegroup>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<OutputPath>bin\Release\</OutputPath>
<BuildScriptName>$(MSBuildProjectName).sql</BuildScriptName>
<TreatWarningsAsErrors>False</TreatWarningsAsErrors>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<DefineDebug>false</DefineDebug>
<DefineTrace>true</DefineTrace>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<OutputPath>bin\Debug\</OutputPath>
<BuildScriptName>$(MSBuildProjectName).sql</BuildScriptName>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<!-- VS10 without SP1 will not have VisualStudioVersion set, so do that here -->
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<!-- Default to the v10.0 targets path if the targets file for the current VS version is not found -->
<SSDTExists Condition="Exists('$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets')">True</SSDTExists>
<VisualStudioVersion Condition="'$(SSDTExists)' == ''">10.0</VisualStudioVersion>
</PropertyGroup>
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
<ItemGroup>
<Folder Include="Properties" />
<Folder Include="dbo\" />
<Folder Include="dbo\Tables\" />
<Folder Include="As400\" />
<Folder Include="As400\Tables\" />
<Folder Include="RawData\" />
<Folder Include="RawData\Tables\" />
<Folder Include="RilPro\" />
<Folder Include="RilPro\Tables\" />
<Folder Include="dbo\Views\" />
<Folder Include="RilPro\Views\" />
<Folder Include="External\" />
<Folder Include="External\Views\" />
<Folder Include="prt\" />
<Folder Include="prt\Views\" />
<Folder Include="Security\" />
<Folder Include="dbo\Functions\" />
<Folder Include="dbo\Stored Procedures\" />
<Folder Include="BatchQueue\" />
<Folder Include="BatchQueue\Stored Procedures\" />
<Folder Include="As400\Stored Procedures\" />
<Folder Include="voc" />
<Folder Include="voc\Tables" />
<Folder Include="External\DB" />
</ItemGroup>
<ItemGroup>
<Build Include="dbo\Tables\Blocchi.sql" />
<Build Include="dbo\Tables\LogUpdateDb.sql" />
<Build Include="As400\Tables\t_MOMA200F.sql" />
<Build Include="RawData\Tables\BORI202J.sql" />
<Build Include="dbo\Tables\GiornaleMagazzino.sql" />
<Build Include="RilPro\Tables\StampoFigure.sql" />
<Build Include="RilPro\Tables\StampoEsponente.sql" />
<Build Include="dbo\Tables\AS400_MagCont.sql" />
<Build Include="dbo\Tables\ElencoPostazioni.sql" />
<Build Include="RilPro\Tables\StampoArticolo.sql" />
<Build Include="RawData\Tables\AS400_Comandi.sql" />
<Build Include="RawData\Tables\ANODM00F.sql" />
<Build Include="dbo\Tables\AnagTipoEvento.sql" />
<Build Include="RawData\Tables\XOGIX00F.sql" />
<Build Include="dbo\Tables\AnagTipoDichiaraz.sql" />
<Build Include="RilPro\Tables\AnagImballi.sql" />
<Build Include="RilPro\Tables\AnagFamiglie.sql" />
<Build Include="RilPro\Tables\AnagDepositi.sql" />
<Build Include="dbo\Tables\AnagCompanySito.sql" />
<Build Include="dbo\Tables\AS400_BatchMovimenti.sql" />
<Build Include="RilPro\Tables\AnagClienti.sql" />
<Build Include="RilPro\Tables\RapQual.sql" />
<Build Include="dbo\Tables\AnagBilance.sql" />
<Build Include="dbo\Tables\StoricoCartellini.sql" />
<Build Include="dbo\Tables\AnagMag.sql" />
<Build Include="dbo\Tables\AnagStatiProdotto.sql" />
<Build Include="dbo\Tables\AnagStatiListe.sql" />
<Build Include="dbo\Tables\PrintJobQueue.sql" />
<Build Include="RilPro\Tables\AnagReparti.sql" />
<Build Include="dbo\Tables\AnagPosizioni.sql" />
<Build Include="dbo\Tables\AnagPeriodi.sql" />
<Build Include="dbo\Tables\ContatoriUdc.sql" />
<Build Include="dbo\Tables\RigheListePrelievo.sql" />
<Build Include="dbo\Tables\ContatoriListePrelievo.sql" />
<Build Include="As400\Tables\t_XOGIX00F.sql" />
<Build Include="dbo\Tables\TMP_UdcModificati.sql" />
<Build Include="As400\Tables\t_PACKL00F.sql" />
<Build Include="As400\Tables\t_MWMV200F.sql" />
<Build Include="dbo\Tables\ElencoDataMatrix.sql" />
<Build Include="dbo\Tables\TMP_UdcModificati_BIS.sql" />
<Build Include="dbo\Tables\TipoListaPrelievo.sql" />
<Build Include="dbo\Tables\TipoCella.sql" />
<Build Include="dbo\Tables\TabTranPosizEventi.sql" />
<Build Include="dbo\Tables\ImpegnoLinee.sql" />
<Build Include="RilPro\Tables\TabDecodBolla.sql" />
<Build Include="dbo\Tables\Permessi2Funzione.sql" />
<Build Include="dbo\Tables\LogImportFlussi.sql" />
<Build Include="dbo\Tables\ElencoListePrelievo_storico.sql" />
<Build Include="dbo\Tables\Odette_storico.sql" />
<Build Include="dbo\Tables\RigheListePrelievo_storico.sql" />
<Build Include="RilPro\Tables\AnagParticolari.sql" />
<Build Include="dbo\Tables\AnagLinee.sql" />
<Build Include="RilPro\Tables\AnagOperatori.sql" />
<Build Include="dbo\Tables\Odette.sql" />
<Build Include="RilPro\Tables\AnagLeghe.sql" />
<Build Include="dbo\Tables\AnagImpianti.sql" />
<Build Include="dbo\Tables\AnagAzioniUtente.sql" />
<Build Include="dbo\Tables\AnagTipoDelibere.sql" />
<Build Include="RilPro\Tables\AnagFornitori.sql" />
<Build Include="dbo\Tables\TabSyncMovMag.sql" />
<Build Include="RilPro\Tables\DistintaAS400.sql" />
<Build Include="dbo\Tables\StoricoAzioniOperatore.sql" />
<Build Include="dbo\Tables\AnagAttributi.sql" />
<Build Include="dbo\Tables\ElencoCartellini.sql" />
<Build Include="dbo\Tables\Celle.sql" />
<Build Include="dbo\Tables\Attr2UDC.sql" />
<Build Include="dbo\Tables\PosizioneUdcCorrente.sql" />
<Build Include="dbo\Tables\Delibere.sql" />
<Build Include="dbo\Tables\AS400_BatchConsumoMP.sql" />
<Build Include="dbo\Tables\TMP_UdcModificatiAnime.sql" />
<Build Include="RilPro\Tables\LineaStampi.sql" />
<Build Include="dbo\Tables\Soggetti2Utente.sql" />
<Build Include="RilPro\Tables\AnagCausaliMag.sql" />
<Build Include="As400\Tables\t_CQNOC98L.sql" />
<Build Include="dbo\Tables\PosizioneUdcStorico.sql" />
<Build Include="dbo\Tables\ElencoListePrelievo.sql" />
<Build Include="RilPro\Tables\AnagLegheCopertura.sql" />
<Build Include="dbo\Tables\Config.sql" />
<Build Include="dbo\Tables\RigheListePrelievo_AS.sql" />
<Build Include="dbo\Tables\RelazUDC.sql" />
<Build Include="dbo\Tables\ElencoListePrelievo_AS.sql" />
<Build Include="dbo\Tables\Permessi.sql" />
<Build Include="dbo\Views\v_datiPackingList.sql" />
<Build Include="dbo\Views\v_selBlocco.sql" />
<Build Include="dbo\Views\v_particolariEsponenteFigura.sql" />
<Build Include="dbo\Views\v_selUdcByPart.sql" />
<Build Include="dbo\Views\v_selTipoLista.sql" />
<Build Include="dbo\Views\v_selTipoDelibera.sql" />
<Build Include="dbo\Views\v_selTipoCella.sql" />
<Build Include="dbo\Views\v_selPeriodiTrad.sql" />
<Build Include="RilPro\Views\vDatiLineeGiornata.sql" />
<Build Include="dbo\Views\v_UdcDetail.sql" />
<Build Include="dbo\Views\V_statoCelleCapienzaAssegnati.sql" />
<Build Include="dbo\Views\V_MagazziniOverview.sql" />
<Build Include="dbo\Views\V_DettMagPart.sql" />
<Build Include="dbo\Views\V_CelleOverview.sql" />
<Build Include="dbo\Views\V_ParticolariOverview.sql" />
<Build Include="dbo\Views\v_selParticolari.sql" />
<Build Include="dbo\Views\v_specParticolari.sql" />
<Build Include="dbo\Views\v_selTipoPart.sql" />
<Build Include="dbo\Views\v_RapQualNote.sql" />
<Build Include="dbo\Views\v_printStatistic.sql" />
<Build Include="dbo\Views\v_AnagDatiParticolari.sql" />
<Build Include="External\Views\v_ExportDatiOdette.sql" />
<Build Include="dbo\Views\v_posizioniDelibere.sql" />
<Build Include="prt\Views\v_UDC_AllField.sql" />
<Build Include="dbo\Views\v_selStatiListe.sql" />
<Build Include="dbo\Views\v_vocabolario.sql" />
<Build Include="dbo\Views\v_righePrelevate.sql" />
<Build Include="dbo\Views\v_righeListePrelievoPosizione.sql" />
<Build Include="dbo\Views\v_ArtInProd.sql" />
<Build Include="dbo\Views\v_selMag.sql" />
<Build Include="dbo\Views\V_elencoListePrelievo.sql" />
<Build Include="dbo\Views\v_selLinee.sql" />
<Build Include="dbo\Views\v_trasfDataMatrix.sql" />
<Build Include="dbo\Views\v_transcParticolari.sql" />
<Build Include="dbo\Views\v_RapQualSunto.sql" />
<Build Include="dbo\Views\v_selPostazioni.sql" />
<Build Include="dbo\Views\v_selAzioniUt.sql" />
<Build Include="dbo\Views\v_selPartic_SAO.sql" />
<Build Include="dbo\Views\v_selSoggetti.sql" />
<Build Include="dbo\Views\v_selUDC_SAO.sql" />
<Build Include="dbo\Views\v_selOperatori.sql" />
<Build Include="dbo\Views\v_selDestinatariListePrelievo.sql" />
<Build Include="dbo\Views\v_selPostazioni_SAO.sql" />
<Build Include="dbo\Views\v_selSoggetti_SAO.sql" />
<Build Include="dbo\Views\V_MagazziniLogiciOverview.sql" />
<Build Include="dbo\Views\v_selMagLogico.sql" />
<Build Include="Security\db_executor.sql" />
<Build Include="Security\GRUPPOMM_UserReport.sql" />
<Build Include="Security\connGMW.sql" />
<Build Include="Security\UserProcesso.sql" />
<Build Include="Security\RoleMemberships.sql" />
<Build Include="dbo\Functions\f_padLeft.sql" />
<Build Include="dbo\Functions\f_trim.sql" />
<Build Include="dbo\Functions\f_odetteCalcDest.sql" />
<Build Include="dbo\Functions\f_odetteCalcNAEL.sql" />
<Build Include="dbo\Functions\componiUdc.sql" />
<Build Include="dbo\Functions\getUdcComp.sql" />
<Build Include="dbo\Functions\f_getCellaByPos.sql" />
<Build Include="dbo\Functions\f_padRight.sql" />
<Build Include="dbo\Functions\dateToAsFormat.sql" />
<Build Include="dbo\Functions\getNumDatamatrix.sql" />
<Build Include="dbo\Functions\staccaNewIdx.sql" />
<Build Include="dbo\Functions\f_onlyNumbers.sql" />
<Build Include="dbo\Functions\f_getLibreriaAS400.sql" />
<Build Include="dbo\Functions\f_getLikedAS400.sql" />
<Build Include="dbo\Stored Procedures\stp_TipoCellaGetByIdx.sql" />
<Build Include="dbo\Stored Procedures\stp_UdcDetailGetByIdxBloccoCodMagLog.sql" />
<Build Include="dbo\Stored Procedures\stp_TipoCellaGetByCodMag.sql" />
<Build Include="BatchQueue\Stored Procedures\stp_processaCodaMovimMag.sql" />
<Build Include="dbo\Stored Procedures\stp_TipoCella_updateQuery.sql" />
<Build Include="BatchQueue\Stored Procedures\stp_registraMovMag.sql" />
<Build Include="dbo\Stored Procedures\stp_TipoCella_deleteQuery.sql" />
<Build Include="BatchQueue\Stored Procedures\stp_registraPackList.sql" />
<Build Include="dbo\Stored Procedures\stp_getUDC_Older.sql" />
<Build Include="dbo\Stored Procedures\stp_ODETTE_caricaDatiBollaEtichettaOdette.sql" />
<Build Include="dbo\Stored Procedures\stp_scaricaUdc.sql" />
<Build Include="dbo\Stored Procedures\stp_sbloccaUdc.sql" />
<Build Include="dbo\Stored Procedures\stp_S2U_getByUtente.sql" />
<Build Include="BatchQueue\Stored Procedures\stp_processaCodaMovimPackList.sql" />
<Build Include="dbo\Stored Procedures\stp_S2U_getByCodSogg.sql" />
<Build Include="dbo\Stored Procedures\stp_spostaUdc.sql" />
<Build Include="dbo\Stored Procedures\stp_UDC_delibera.sql" />
<Build Include="dbo\Stored Procedures\stp_UDC_updateQty.sql" />
<Build Include="dbo\Stored Procedures\stp_RLP_deleteFromCodLista.sql" />
<Build Include="dbo\Stored Procedures\stp_UDC_update.sql" />
<Build Include="dbo\Stored Procedures\stp_getUdcDetailLikeSearch.sql" />
<Build Include="dbo\Stored Procedures\stp_getUdcDetailFullCode.sql" />
<Build Include="BatchQueue\Stored Procedures\stp_batch_RapQual_S01.sql" />
<Build Include="dbo\Stored Procedures\stp_UdcDetailGetByIdxCella.sql" />
<Build Include="dbo\Stored Procedures\stp_particolariByConditio.sql" />
<Build Include="dbo\Stored Procedures\stp_UdcDetailGetByIdxBlocco.sql" />
<Build Include="dbo\Stored Procedures\stp_particolariByConditioLikePref.sql" />
<Build Include="dbo\Stored Procedures\stp_getPosizioneByUdc.sql" />
<Build Include="dbo\Stored Procedures\stp_ParticolariGetLike.sql" />
<Build Include="dbo\Stored Procedures\stp_posizioniGetByIdxCellaUdc.sql" />
<Build Include="dbo\Stored Procedures\stp_SpecParticolare.sql" />
<Build Include="dbo\Stored Procedures\stp_rappQualAssociaUdc.sql" />
<Build Include="dbo\Stored Procedures\stp_posizioniGetByIdxCella.sql" />
<Build Include="dbo\Stored Procedures\stp_ATD_getByKey.sql" />
<Build Include="dbo\Stored Procedures\stp_selDestListePrelByConditio.sql" />
<Build Include="dbo\Stored Procedures\stp_rappQualGetByNumRapQual.sql" />
<Build Include="dbo\Stored Procedures\stp_posizioniGetByIdxBlocco.sql" />
<Build Include="dbo\Stored Procedures\stp_prtCartAnimeByUDC.sql" />
<Build Include="dbo\Stored Procedures\stp_ParticolariOverviewLikePrefix.sql" />
<Build Include="dbo\Stored Procedures\stp_riattivaUdc.sql" />
<Build Include="dbo\Stored Procedures\stp_RLP_eliminaUdc.sql" />
<Build Include="dbo\Stored Procedures\stp_ParticolariOverviewLike.sql" />
<Build Include="dbo\Stored Procedures\stp_UDC_updateNoteByRQ.sql" />
<Build Include="dbo\Stored Procedures\stp_ParticolariOverview.sql" />
<Build Include="dbo\Stored Procedures\stp_elencoPostaziont_getByCod.sql" />
<Build Include="dbo\Stored Procedures\stp_ParticolariImballoByParticolare.sql" />
<Build Include="dbo\Stored Procedures\stp_RQN_getByRQ.sql" />
<Build Include="dbo\Stored Procedures\stp_ParticolariFiguraByParticolare.sql" />
<Build Include="dbo\Stored Procedures\stp_UDC_getLast_ByParticolare.sql" />
<Build Include="dbo\Stored Procedures\stp_PJQ_getNext.sql" />
<Build Include="dbo\Stored Procedures\stp_ParticolariEspByParticolare.sql" />
<Build Include="dbo\Stored Procedures\stp_Blocchi_Insert.sql" />
<Build Include="dbo\Stored Procedures\stp_PJQ_insert.sql" />
<Build Include="dbo\Stored Procedures\stp_paretoPartByMagBlocco.sql" />
<Build Include="dbo\Stored Procedures\stp_RLP_getByUdc.sql" />
<Build Include="dbo\Stored Procedures\stp_PJQ_updateStato.sql" />
<Build Include="dbo\Stored Procedures\stp_paretoDettPartByFullSpec.sql" />
<Build Include="dbo\Stored Procedures\stp_LP_updateDestTipo.sql" />
<Build Include="dbo\Stored Procedures\stp_paretoDettMagByParticolare.sql" />
<Build Include="dbo\Stored Procedures\stp_UdcDetailGetByCodCella.sql" />
<Build Include="dbo\Stored Procedures\stp_PJQ_chiudiZoombie.sql" />
<Build Include="dbo\Stored Procedures\stp_magazzinoOverview.sql" />
<Build Include="dbo\Stored Procedures\stp_selTipoLista_getByIdx.sql" />
<Build Include="dbo\Stored Procedures\stp_RLP_resetPrelevate.sql" />
<Build Include="dbo\Stored Procedures\stp_PJQ_updateLastTry.sql" />
<Build Include="BatchQueue\Stored Procedures\stp_processaGiornaleMagazzino.sql" />
<Build Include="dbo\Stored Procedures\stp_TTPE_getByCodEvento.sql" />
<Build Include="dbo\Stored Procedures\stp_anagFullParticolare.sql" />
<Build Include="dbo\Stored Procedures\stp_particolariByConditioValue.sql" />
<Build Include="dbo\Stored Procedures\stp_prtCartLiquidi_F18ByUDC.sql" />
<Build Include="dbo\Stored Procedures\stp_processaSpedizTerz.sql" />
<Build Include="dbo\Stored Procedures\stp_ArtiInProd_ByImpData.sql" />
<Build Include="dbo\Stored Procedures\stp_prtCartLiquidi_F10ByUDC.sql" />
<Build Include="dbo\Stored Procedures\stp_ODETTE_delete.sql" />
<Build Include="dbo\Stored Procedures\stp_getPosizioneByUdcCodMag.sql" />
<Build Include="dbo\Stored Procedures\stp_UDC_insNewFull_fixUDC.sql" />
<Build Include="dbo\Stored Procedures\stp_ODETTE_upsertUdc.sql" />
<Build Include="dbo\Stored Procedures\stp_UDC_delete_byRdQ_NEW.sql" />
<Build Include="dbo\Stored Procedures\stp_cellaGetFirstByPosizione.sql" />
<Build Include="dbo\Stored Procedures\stp_UdcPerParticolareCodLista.sql" />
<Build Include="BatchQueue\Stored Procedures\stp_consumaMP.sql" />
<Build Include="dbo\Stored Procedures\stp_LP_updateUDC.sql" />
<Build Include="dbo\Stored Procedures\stp_UDC_associaParent.sql" />
<Build Include="dbo\Stored Procedures\stp_DtMtx_getOrig.sql" />
<Build Include="dbo\Stored Procedures\stp_LP_exportToAs400.sql" />
<Build Include="dbo\Stored Procedures\stp_LP_getOpenByUserTipoPart.sql" />
<Build Include="dbo\Stored Procedures\stp_getRigaPrelievoByCodListaPrelevate.sql" />
<Build Include="dbo\Stored Procedures\stp_LP_deleteQuery.sql" />
<Build Include="dbo\Stored Procedures\stp_LP_getOpenByUserTipo.sql" />
<Build Include="dbo\Stored Procedures\stp_updateByBilancia.sql" />
<Build Include="dbo\Stored Procedures\stp_UDC_upsertPrelevato.sql" />
<Build Include="dbo\Stored Procedures\stp_RLP_getOpenByUserTipo.sql" />
<Build Include="dbo\Stored Procedures\stp_getUDC_UnusedOlder.sql" />
<Build Include="BatchQueue\Stored Procedures\stp_batch_RapQual_S02.sql" />
<Build Include="dbo\Stored Procedures\stp_setAnnullaUdcPrelevato.sql" />
<Build Include="dbo\Stored Procedures\stp_rappQualGetByUDC.sql" />
<Build Include="dbo\Stored Procedures\stp_righePrelevateByUdc.sql" />
<Build Include="dbo\Stored Procedures\stp_ComAs_lastComandoByStored.sql" />
<Build Include="dbo\Stored Procedures\stp_RigheListePrelievo_eliminaNonPrelevate.sql" />
<Build Include="dbo\Stored Procedures\stp_ODETTE_deleteByLDP.sql" />
<Build Include="dbo\Stored Procedures\stp_ODETTE_getByBolla.sql" />
<Build Include="dbo\Stored Procedures\stp_getRigaPrelievoByCodLista.sql" />
<Build Include="dbo\Stored Procedures\stp_ODETTE_getByListaPrelievo.sql" />
<Build Include="dbo\Stored Procedures\stp_getUDC_Child.sql" />
<Build Include="dbo\Stored Procedures\stp_getRigaPrelievoPosizioneByCodLista.sql" />
<Build Include="dbo\Stored Procedures\stp_getUDC_Parent.sql" />
<Build Include="dbo\Stored Procedures\stp_elencoListePrelievoUpdateStato.sql" />
<Build Include="dbo\Stored Procedures\stp_getRagioneSocialeByCodCliente.sql" />
<Build Include="dbo\Stored Procedures\stp_BORI_getByBollaFull.sql" />
<Build Include="dbo\Stored Procedures\stp_elencoListePrelievoFilt.sql" />
<Build Include="dbo\Stored Procedures\stp_BORI_getByBollaPart.sql" />
<Build Include="dbo\Stored Procedures\stp_elencoListePrelievoByCodLista.sql" />
<Build Include="dbo\Stored Procedures\stp_creaListaPrelievo.sql" />
<Build Include="dbo\Stored Procedures\stp_getImballoLikeSearch.sql" />
<Build Include="dbo\Stored Procedures\stp_BORI_getByBolla.sql" />
<Build Include="dbo\Stored Procedures\stp_getImballoByCod.sql" />
<Build Include="dbo\Stored Procedures\stp_EDM_getByCode.sql" />
<Build Include="dbo\Stored Procedures\stp_v_selLinee_byConditio.sql" />
<Build Include="dbo\Stored Procedures\stp_getBilanceByCodCS.sql" />
<Build Include="dbo\Stored Procedures\stp_EDM_spostaDataMtx.sql" />
<Build Include="dbo\Stored Procedures\stp_AL_getByKey.sql" />
<Build Include="dbo\Stored Procedures\stp_getBilanceByCodBilancia.sql" />
<Build Include="dbo\Stored Procedures\stp_EDM_svuotaGitterbox.sql" />
<Build Include="dbo\Stored Procedures\stp_UDC_getLast_ByParticolareStato.sql" />
<Build Include="dbo\Stored Procedures\stp_dummy.sql" />
<Build Include="dbo\Stored Procedures\stp_UDC_getByUdc.sql" />
<Build Include="dbo\Stored Procedures\stp_prtCartSterratiByUDC.sql" />
<Build Include="dbo\Stored Procedures\stp_celleNonAttiveByIdxBlocco.sql" />
<Build Include="dbo\Stored Procedures\stp_DtMtrx_import.sql" />
<Build Include="dbo\Stored Procedures\stp_celleLibereGetByIdxBlocco.sql" />
<Build Include="dbo\Stored Procedures\stp_BORI_caricaDatiBolla.sql" />
<Build Include="dbo\Stored Procedures\stp_magGetByCS.sql" />
<Build Include="dbo\Stored Procedures\stp_RLP_eliminaNonPrelevate.sql" />
<Build Include="dbo\Stored Procedures\stp_magGetByCodMag.sql" />
<Build Include="dbo\Stored Procedures\stp_rappQualGetByNumRapQualSenzaUdc.sql" />
<Build Include="dbo\Stored Procedures\stp_prtCartTrattatiByUDC.sql" />
<Build Include="dbo\Stored Procedures\stp_EDM_getByGitterBox.sql" />
<Build Include="dbo\Stored Procedures\stp_RLP_getBloccateMovByUdc.sql" />
<Build Include="BatchQueue\Stored Procedures\stp_batch_RapQual_S02_GCarlo.sql" />
<Build Include="dbo\Stored Procedures\stp_rappQualSuntoGetByDataRange.sql" />
<Build Include="dbo\Stored Procedures\stp_RLP_getBloccateQtaByUdc.sql" />
<Build Include="dbo\Stored Procedures\stp_ODETTE_getByUDC.sql" />
<Build Include="dbo\Stored Procedures\stp_rappQualSuntoGetByNumRap.sql" />
<Build Include="dbo\Stored Procedures\stp_ODETTE_updateLingua.sql" />
<Build Include="dbo\Stored Procedures\stp_ODETTE_updateVal.sql" />
<Build Include="dbo\Stored Procedures\stp_prtCartMatPrimaByUDC.sql" />
<Build Include="dbo\Stored Procedures\stp_ODETTE_setStato.sql" />
<Build Include="dbo\Stored Procedures\stp_OdetteStatoCreate.sql" />
<Build Include="dbo\Stored Procedures\usp_get_trigger_status.sql" />
<Build Include="dbo\Stored Procedures\stp_AL_updatePost.sql" />
<Build Include="dbo\Stored Procedures\stp_AL_resetPost.sql" />
<Build Include="dbo\Stored Procedures\stp_cellaGetByCodCellaLike.sql" />
<Build Include="dbo\Stored Procedures\stp_cellaGetByCodCella.sql" />
<Build Include="dbo\Stored Procedures\stp_rappQualConsumabili.sql" />
<Build Include="dbo\Stored Procedures\stp_celle_updPiena.sql" />
<Build Include="dbo\Stored Procedures\stp_SAO_getBySearch.sql" />
<Build Include="dbo\Stored Procedures\stp_celle_updAttiva.sql" />
<Build Include="dbo\Stored Procedures\stp_SAO_insert.sql" />
<Build Include="dbo\Stored Procedures\stp_celle_updateQuery.sql" />
<Build Include="dbo\Stored Procedures\stp_celle_deleteQuery.sql" />
<Build Include="dbo\Stored Procedures\stp_ParticolareInOutOk.sql" />
<Build Include="dbo\Stored Procedures\stp_cellaGetByTipoCella.sql" />
<Build Include="dbo\Stored Procedures\stp_cellaGetByIdxCella.sql" />
<Build Include="dbo\Stored Procedures\stp_SAO_getLastPostazione.sql" />
<Build Include="dbo\Stored Procedures\stp_cellaGetByIdxBlocco.sql" />
<Build Include="dbo\Stored Procedures\stp_SAO_getByIdxEv.sql" />
<Build Include="dbo\Stored Procedures\stp_UDC_delete.sql" />
<Build Include="dbo\Stored Procedures\stp_v_selPartic_SAO.sql" />
<Build Include="dbo\Stored Procedures\stp_v_selUDC_SAO.sql" />
<Build Include="dbo\Stored Procedures\stp_getUdcDetailFullCode_storico.sql" />
<Build Include="dbo\Stored Procedures\stp_getDestListePrelLike.sql" />
<Build Include="As400\Stored Procedures\stp_SelectRappQualita.sql" />
<Build Include="dbo\Stored Procedures\stp_v_selPostazioni_SAO.sql" />
<Build Include="dbo\Stored Procedures\stp_v_selSoggetti_SAO.sql" />
<Build Include="dbo\Stored Procedures\stp_EP_delete.sql" />
<Build Include="dbo\Stored Procedures\stp_cellaGetByCodMag.sql" />
<Build Include="dbo\Stored Procedures\stp_EP_update.sql" />
<Build Include="dbo\Stored Procedures\stp_ContaDeltaCelleBlocco.sql" />
<Build Include="dbo\Stored Procedures\stp_selMagByConditio.sql" />
<Build Include="dbo\Stored Procedures\stp_ContaCelleCreate.sql" />
<Build Include="dbo\Stored Procedures\stp_selMagLogicoByConditio.sql" />
<Build Include="dbo\Stored Procedures\stp_ContaCelleCapa.sql" />
<Build Include="dbo\Stored Procedures\stp_MagFifoByParticolare.sql" />
<Build Include="dbo\Stored Procedures\stp_ContaCelleBlocco.sql" />
<Build Include="dbo\Stored Procedures\stp_UDC_delete_byRdQ.sql" />
<Build Include="dbo\Stored Procedures\stp_anagOperatoriGetByCodSogg.sql" />
<Build Include="dbo\Stored Procedures\stp_UDC_FifoByParticolareBlocco.sql" />
<Build Include="dbo\Stored Procedures\stp_ContaCelle4Tipo.sql" />
<Build Include="dbo\Stored Procedures\stp_elencoLP_attiveByCodSoggetto.sql" />
<Build Include="dbo\Stored Procedures\stp_ContaCelle4Blocchi.sql" />
<Build Include="dbo\Stored Procedures\stp_StatoCelleByCodCella.sql" />
<Build Include="dbo\Stored Procedures\stp_prtCartFusiByUDC.sql" />
<Build Include="dbo\Stored Procedures\stp_BlocchiGetByIdx.sql" />
<Build Include="BatchQueue\Stored Procedures\stp_batch_cancellaUDC_RapQualAnnullati.sql" />
<Build Include="dbo\Stored Procedures\stp_StatoCelleByIdxCella.sql" />
<Build Include="dbo\Stored Procedures\stp_BlocchiGetByCodMag.sql" />
<Build Include="dbo\Stored Procedures\stp_accodaConsumoUdcMP.sql" />
<Build Include="dbo\Stored Procedures\stp_StatoCelleOverbooked.sql" />
<Build Include="dbo\Stored Procedures\stp_BlocchiGetByCodBlocco.sql" />
<Build Include="BatchQueue\Stored Procedures\stp_processaCodaConsumoMP.sql" />
<Build Include="dbo\Stored Procedures\stp_RLP_sbloccaNonPrelevate.sql" />
<Build Include="dbo\Stored Procedures\stp_RLP_delete.sql" />
<Build Include="dbo\Stored Procedures\stp_magazzinoOverviewByMag_maxCelle.sql" />
<Build Include="dbo\Stored Procedures\stp_RLP_updateQty.sql" />
<Build Include="dbo\Stored Procedures\stp_magazzinoOverview_maxCelle.sql" />
<Build Include="dbo\Stored Procedures\stp_UDC_getByFlussoDate.sql" />
<Build Include="dbo\Stored Procedures\stp_prtCartByUDC.sql" />
<Build Include="dbo\Stored Procedures\stp_UDC_getLast_ByDataTurnoLineaParticolare.sql" />
<Build Include="dbo\Stored Procedures\stp_ricercaFullTerminalino.sql" />
<Build Include="dbo\Stored Procedures\stp_celleCreaMancantiBlocco.sql" />
<Build Include="dbo\Stored Procedures\stp_getDetailsUdcByUdc.sql" />
<Build Include="dbo\Stored Procedures\stp_ParticolariOverviewPerListaPrelievo.sql" />
<Build Include="dbo\Stored Procedures\stp_getCartellinoByUdc.sql" />
<Build Include="dbo\Stored Procedures\stp_UDC_updateIdxPosizione.sql" />
<Build Include="dbo\Stored Procedures\stp_getImpiantiByCodCS.sql" />
<Build Include="dbo\Stored Procedures\stp_UDC_insNewFull.sql" />
<Build Include="dbo\Stored Procedures\stp_prtCartFinitiByUDC.sql" />
<Build Include="dbo\Stored Procedures\stp_UDC_getByTipoDelibera.sql" />
<Build Include="dbo\Stored Procedures\stp_magazzinoLogicoOverview.sql" />
<Build Include="dbo\Stored Procedures\stp_UDC_updateNote.sql" />
<Build Include="dbo\Stored Procedures\stp_TTPE_getByCodEventoPosizione.sql" />
<Build Include="dbo\Stored Procedures\stp_paretoDettPartByFullSpecMagLog.sql" />
<Build Include="dbo\Stored Procedures\stp_TL_getByCodTipoLista.sql" />
<Build Include="dbo\Stored Procedures\stp_paretoPartByMagBloccoCodMagLog.sql" />
<Build Include="Security\As400.sql" />
<Build Include="Security\BatchQueue.sql" />
<Build Include="Security\External.sql" />
<Build Include="Security\prt.sql" />
<Build Include="Security\RawData.sql" />
<Build Include="Security\RilPro.sql" />
<Build Include="Security\voc.sql" />
<Build Include="voc\Tables\Lingue.sql" />
<Build Include="voc\Tables\Vocabolario.sql" />
</ItemGroup>
<ItemGroup>
<None Include="External\DB\ProduzionePossidonio.dacpac" />
</ItemGroup>
<ItemGroup>
<ArtifactReference Include="External\DB\ProduzionePossidonio.dacpac">
<HintPath>External\DB\ProduzionePossidonio.dacpac</HintPath>
<SuppressMissingDependenciesErrors>False</SuppressMissingDependenciesErrors>
<DatabaseVariableLiteralValue>ProduzionePossidonio</DatabaseVariableLiteralValue>
</ArtifactReference>
</ItemGroup>
</Project>
+3
View File
@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
</Project>
@@ -0,0 +1,71 @@
2/20/2014 9:29:59 AM This log contains information about the import schema operation into project 'GMW_DB' on computer 'W2012R2SAM' by user 'samuele'.
2/20/2014 9:29:59 AM Import of database schema has started.
2/20/2014 9:30:05 AM Gathering database options
2/20/2014 9:30:05 AM Gathering users
2/20/2014 9:30:05 AM Gathering roles
2/20/2014 9:30:05 AM Gathering application roles
2/20/2014 9:30:05 AM Gathering role memberships
2/20/2014 9:30:05 AM Gathering filegroups
2/20/2014 9:30:05 AM Gathering full-text catalogs
2/20/2014 9:30:05 AM Gathering assemblies
2/20/2014 9:30:05 AM Gathering certificates
2/20/2014 9:30:05 AM Gathering asymmetric keys
2/20/2014 9:30:05 AM Gathering symmetric keys
2/20/2014 9:30:05 AM Gathering encrypted symmetric keys
2/20/2014 9:30:05 AM Gathering schemas
2/20/2014 9:30:05 AM Gathering XML schema collections
2/20/2014 9:30:05 AM Gathering user-defined data types
2/20/2014 9:30:05 AM Gathering user-defined types
2/20/2014 9:30:05 AM Gathering table types
2/20/2014 9:30:05 AM Gathering unique keys for table types
2/20/2014 9:30:05 AM Gathering primary keys for table types
2/20/2014 9:30:05 AM Gathering check constraints for table types
2/20/2014 9:30:05 AM Gathering default constraints for table types
2/20/2014 9:30:05 AM Gathering partition functions
2/20/2014 9:30:05 AM Gathering partition schemes
2/20/2014 9:30:05 AM Gathering functions
2/20/2014 9:30:05 AM Gathering encrypted functions
2/20/2014 9:30:05 AM Gathering aggregates
2/20/2014 9:30:05 AM Gathering procedures
2/20/2014 9:30:05 AM Gathering encrypted procedures
2/20/2014 9:30:05 AM Gathering tables
2/20/2014 9:30:06 AM Gathering primary keys
2/20/2014 9:30:06 AM Gathering unique constraints
2/20/2014 9:30:06 AM Gathering foreign keys
2/20/2014 9:30:06 AM Gathering default constraints
2/20/2014 9:30:06 AM Gathering check constraints
2/20/2014 9:30:06 AM Gathering views
2/20/2014 9:30:06 AM Gathering encrypted views
2/20/2014 9:30:06 AM Gathering indexes
2/20/2014 9:30:06 AM Gathering statistics
2/20/2014 9:30:06 AM Gathering full-text index stoplists
2/20/2014 9:30:06 AM Gathering full-text indexes
2/20/2014 9:30:06 AM Gathering spatial indexes
2/20/2014 9:30:06 AM Gathering XML indexes
2/20/2014 9:30:06 AM Gathering encrypted triggers
2/20/2014 9:30:06 AM Gathering triggers
2/20/2014 9:30:06 AM Gathering encrypted and clr ddl triggers
2/20/2014 9:30:06 AM Gathering ddl triggers
2/20/2014 9:30:06 AM Gathering synonyms
2/20/2014 9:30:06 AM Gathering defaults
2/20/2014 9:30:06 AM Gathering data constraint uddt bindings
2/20/2014 9:30:06 AM Gathering rules
2/20/2014 9:30:06 AM Gathering data constraint uddt bindings
2/20/2014 9:30:06 AM Gathering message types
2/20/2014 9:30:06 AM Gathering queues
2/20/2014 9:30:06 AM Gathering contracts
2/20/2014 9:30:06 AM Gathering services
2/20/2014 9:30:06 AM Gathering event notifications
2/20/2014 9:30:06 AM Gathering remote service bindings
2/20/2014 9:30:06 AM Gathering broker priorities
2/20/2014 9:30:06 AM Gathering signatures
2/20/2014 9:30:06 AM Gathering data compression options
2/20/2014 9:30:06 AM Gathering extended properties
2/20/2014 9:30:06 AM Gathering credentials
2/20/2014 9:30:06 AM Gathering logins
2/20/2014 9:30:06 AM Gathering server audits
2/20/2014 9:30:06 AM Scanning project for duplicate elements
2/20/2014 9:30:07 AM Finished duplicate element processing
2/20/2014 9:30:08 AM Finished importing database.
2/20/2014 9:30:08 AM A summary of the import was saved to the following location: C:\Users\samuele\Documents\Visual Studio 2012\Projects\GMW\GMW_DB\Import Schema Logs\GMW_DB_20140220082959.log
2/20/2014 9:30:08 AM Click Finish to continue...
+8
View File
@@ -0,0 +1,8 @@
CREATE TABLE [RawData].[ANODM00F] (
[OATV08] NCHAR (1) NOT NULL,
[OCDPAR] NVARCHAR (15) NOT NULL,
[OCDODM] NVARCHAR (15) NOT NULL,
[ODTVAL] NUMERIC (8) NOT NULL,
CONSTRAINT [PK_ANODM00F] PRIMARY KEY CLUSTERED ([OCDPAR] ASC, [ODTVAL] ASC) WITH (FILLFACTOR = 95)
);
+12
View File
@@ -0,0 +1,12 @@
CREATE TABLE [RawData].[AS400_Comandi] (
[DataEsecuzione] DATETIME NOT NULL,
[Stored] VARCHAR (100) NOT NULL,
[ComandoTSQL] NVARCHAR (4000) NULL,
[Test] INT NULL
);
GO
CREATE CLUSTERED INDEX [IDX_Data]
ON [RawData].[AS400_Comandi]([DataEsecuzione] ASC) WITH (FILLFACTOR = 95);
+42
View File
@@ -0,0 +1,42 @@
CREATE TABLE [RawData].[BORI202J] (
[CDMFS] NVARCHAR (2) NOT NULL,
[GRBOS] NVARCHAR (1) NOT NULL,
[DTBOS] NUMERIC (8) NOT NULL,
[NRBOS] NUMERIC (6) NOT NULL,
[CDARS] NVARCHAR (15) NOT NULL,
[NRRGS] NUMERIC (5) NOT NULL,
[CDINB] NVARCHAR (6) NOT NULL,
[RA1ND] NVARCHAR (35) NOT NULL,
[RA2ND] NVARCHAR (35) NOT NULL,
[CAPND] NVARCHAR (9) NOT NULL,
[CITND] NVARCHAR (25) NOT NULL,
[RASCL] NVARCHAR (35) NOT NULL,
[INDCL] NVARCHAR (35) NOT NULL,
[CAPCL] NVARCHAR (9) NOT NULL,
[LOCCL] NVARCHAR (25) NOT NULL,
[PROCL] NVARCHAR (2) NOT NULL,
[INEND] NVARCHAR (50) NOT NULL,
[CRAGCL] NVARCHAR (4) NOT NULL,
[TELND] NVARCHAR (20) NOT NULL,
[CCDMOL] NVARCHAR (15) NOT NULL,
[CCDPTR] NVARCHAR (15) NOT NULL,
[EPLAVO] NUMERIC (7, 3) NOT NULL,
[NRC1B] NUMERIC (5) NOT NULL,
[ECMM01] NVARCHAR (30) NOT NULL,
[DEPAR] NVARCHAR (30) NOT NULL,
[RCARTC] NVARCHAR (30) NOT NULL,
[PERND] NVARCHAR (20) NOT NULL,
[CCDET1] NVARCHAR (15) NOT NULL,
[ECDNAE] NVARCHAR (6) NOT NULL,
[ECDNA1] NVARCHAR (1) NOT NULL,
[EESPMD] NVARCHAR (6) NOT NULL,
[PELDB] NUMERIC (7, 2) NOT NULL,
[QTCNS] NUMERIC (9, 2) NOT NULL,
[ECLAQP] NCHAR (1) CONSTRAINT [DF__tmp_rg_xx__ECLAQ__10416098] DEFAULT ('') NOT NULL,
[EPNETT] NUMERIC (7, 3) CONSTRAINT [DF__tmp_rg_xx__EPNET__113584D1] DEFAULT ((0)) NOT NULL,
[FCDI01] NVARCHAR (35) CONSTRAINT [DF__tmp_rg_xx__FCDI0__1229A90A] DEFAULT ('') NOT NULL,
[OCDODM] VARCHAR (15) CONSTRAINT [DF__tmp_rg_xx__OCDOD__131DCD43] DEFAULT ('') NOT NULL,
[CCFOE1] NVARCHAR (15) CONSTRAINT [DF__BORI202J__CCFOE1__1ABEEF0B] DEFAULT ('') NOT NULL,
CONSTRAINT [PK_BORI202J] PRIMARY KEY CLUSTERED ([CDMFS] ASC, [GRBOS] ASC, [DTBOS] ASC, [NRBOS] ASC, [CDARS] ASC, [NRRGS] ASC) WITH (FILLFACTOR = 95)
);
+15
View File
@@ -0,0 +1,15 @@
CREATE TABLE [RawData].[XOGIX00F] (
[XRPQLN] NUMERIC (6) CONSTRAINT [DF_XOGIX00F_XRPQLN] DEFAULT ((0)) NOT NULL,
[XRPQLD] NUMERIC (8) CONSTRAINT [DF_XOGIX00F_XRPQLD] DEFAULT ((0)) NOT NULL,
[XNRETI] CHAR (10) CONSTRAINT [DF_XOGIX00F_XNRETI] DEFAULT ('') NOT NULL,
[XCDFOR] CHAR (6) CONSTRAINT [DF_XOGIX00F_XCDFOR] DEFAULT ('') NOT NULL,
[XCDTER] CHAR (6) CONSTRAINT [DF_XOGIX00F_XCDTER] DEFAULT ('') NOT NULL,
[XCDPAR] CHAR (15) CONSTRAINT [DF_XOGIX00F_XCDPAR] DEFAULT ('') NOT NULL,
[XDTPRO] NUMERIC (8) CONSTRAINT [DF_XOGIX00F_XDTPRO] DEFAULT ((0)) NOT NULL,
[XTRPRO] CHAR (5) CONSTRAINT [DF_XOGIX00F_XTRPRO] DEFAULT ('') NOT NULL,
[XQTPRO] NUMERIC (5) CONSTRAINT [DF_XOGIX00F_XQTPRO] DEFAULT ((0)) NOT NULL,
[XDESMT] CHAR (3) CONSTRAINT [DF_XOGIX00F_XDESMT] DEFAULT ('') NOT NULL,
[XMATSC] CHAR (1) CONSTRAINT [DF_XOGIX00F_XMATSC] DEFAULT ('') NOT NULL,
[XBENQL] CHAR (1) NOT NULL
);
+7
View File
@@ -0,0 +1,7 @@
CREATE TABLE [RilPro].[AnagCausaliMag] (
[CodElemento] VARCHAR (4) NOT NULL,
[CauCarico] VARCHAR (2) NOT NULL,
[CauScarico] VARCHAR (2) NOT NULL,
CONSTRAINT [PK_AnagCausaliMag] PRIMARY KEY CLUSTERED ([CodElemento] ASC)
);
+6
View File
@@ -0,0 +1,6 @@
CREATE TABLE [RilPro].[AnagClienti] (
[CodCliente] NVARCHAR (6) NOT NULL,
[RagSociale] NVARCHAR (35) NOT NULL,
CONSTRAINT [PK_AnagClienti] PRIMARY KEY CLUSTERED ([CodCliente] ASC)
);
+6
View File
@@ -0,0 +1,6 @@
CREATE TABLE [RilPro].[AnagDepositi] (
[CodTerzista] VARCHAR (6) NOT NULL,
[DescTerzista] VARCHAR (20) NULL,
CONSTRAINT [PK_AnagDepositi] PRIMARY KEY CLUSTERED ([CodTerzista] ASC)
);
+6
View File
@@ -0,0 +1,6 @@
CREATE TABLE [RilPro].[AnagFamiglie] (
[CodFamiglia] NCHAR (4) NOT NULL,
[DescFamiglia] NVARCHAR (100) NULL,
CONSTRAINT [PK_AnagFamiglia] PRIMARY KEY CLUSTERED ([CodFamiglia] ASC)
);
+7
View File
@@ -0,0 +1,7 @@
CREATE TABLE [RilPro].[AnagFornitori] (
[CodFornitore] NVARCHAR (6) NOT NULL,
[DescFornitore] NVARCHAR (35) NULL,
[DescFornitore2] NVARCHAR (35) NULL,
CONSTRAINT [PK_AnagFornitori] PRIMARY KEY CLUSTERED ([CodFornitore] ASC)
);
+7
View File
@@ -0,0 +1,7 @@
CREATE TABLE [RilPro].[AnagImballi] (
[CodImballo] NVARCHAR (15) NOT NULL,
[ClasseArticolo] NVARCHAR (1) NULL,
[DescImballo] NVARCHAR (30) NULL,
CONSTRAINT [PK_AnagImballi_1] PRIMARY KEY CLUSTERED ([CodImballo] ASC)
);
+7
View File
@@ -0,0 +1,7 @@
CREATE TABLE [RilPro].[AnagLeghe] (
[CodLega] NVARCHAR (12) NOT NULL,
[DescLega] NVARCHAR (25) NULL,
[DescLega2] NVARCHAR (25) NULL,
CONSTRAINT [PK_AnagLeghe] PRIMARY KEY CLUSTERED ([CodLega] ASC)
);
@@ -0,0 +1,8 @@
CREATE TABLE [RilPro].[AnagLegheCopertura] (
[CodLega] NVARCHAR (12) NOT NULL,
[DescLega] NVARCHAR (25) NULL,
[DescLega2] NVARCHAR (25) NULL,
[Copertura] INT DEFAULT ((0)) NULL,
CONSTRAINT [PK_AnagLegheCopertura] PRIMARY KEY CLUSTERED ([CodLega] ASC) WITH (FILLFACTOR = 90)
);
+14
View File
@@ -0,0 +1,14 @@
CREATE TABLE [RilPro].[AnagOperatori] (
[CodSoggetto] NCHAR (17) NOT NULL,
[CodCS] NCHAR (2) NOT NULL,
[CodDipendente] NCHAR (7) NULL,
[CodAziendaOp] NCHAR (6) NULL,
[DescAziendaOp] NVARCHAR (40) NULL,
[CodFilialeOp] NCHAR (10) NULL,
[DescFilialeOp] NVARCHAR (40) NULL,
[Cognome] NVARCHAR (40) NULL,
[Nome] NVARCHAR (40) NULL,
CONSTRAINT [PK_AnagOperatori_1] PRIMARY KEY CLUSTERED ([CodSoggetto] ASC),
CONSTRAINT [FK_AnagOperatori_AnagCompanySito] FOREIGN KEY ([CodCS]) REFERENCES [dbo].[AnagCompanySito] ([CodCS]) ON UPDATE CASCADE
);
+13
View File
@@ -0,0 +1,13 @@
CREATE TABLE [RilPro].[AnagParticolari] (
[Particolare] NVARCHAR (15) NOT NULL,
[CodCS] NCHAR (2) NOT NULL,
[CodCliente] NVARCHAR (6) NOT NULL,
[DisegnoGrezzo] NVARCHAR (30) NOT NULL,
[CodFamiglia] NVARCHAR (4) NULL,
[DescParticolare] NVARCHAR (30) NULL,
[EsponenteModifica] NVARCHAR (6) NULL,
[ClassifArticolo] NCHAR (1) NULL,
CONSTRAINT [PK_AnagParticolari_1] PRIMARY KEY CLUSTERED ([Particolare] ASC),
CONSTRAINT [FK_AnagParticolari_AnagCompanySito] FOREIGN KEY ([CodCS]) REFERENCES [dbo].[AnagCompanySito] ([CodCS]) ON UPDATE CASCADE
);
+6
View File
@@ -0,0 +1,6 @@
CREATE TABLE [RilPro].[AnagReparti] (
[CodReparto] NVARCHAR (4) NOT NULL,
[DescReparto] NVARCHAR (100) NOT NULL,
CONSTRAINT [PK_AnagReparti] PRIMARY KEY CLUSTERED ([CodReparto] ASC)
);
+14
View File
@@ -0,0 +1,14 @@
CREATE TABLE [RilPro].[DistintaAS400] (
[Padre] VARCHAR (15) NOT NULL,
[Figlio] VARCHAR (15) NOT NULL,
[Seqza] VARCHAR (4) NULL,
[Coeff] NUMERIC (9, 4) NOT NULL,
[DescParticolare] VARCHAR (30) NULL,
[ClassFiglio] CHAR (1) NULL,
[LPSP] CHAR (1) NULL,
[LTEK] CHAR (1) NULL,
[LAMB] CHAR (1) NULL,
[LRONO] CHAR (1) NULL,
[LPOSS] CHAR (1) NULL
);
+13
View File
@@ -0,0 +1,13 @@
CREATE TABLE [RilPro].[LineaStampi] (
[CodCS] NCHAR (2) NOT NULL,
[CodImpianto] NVARCHAR (50) NOT NULL,
[CodStampo] NVARCHAR (8) NOT NULL,
[DataInizio] DATETIME NOT NULL,
[NumStampate] NUMERIC (9) NOT NULL,
[DataFine] DATETIME NOT NULL,
[TurnoInizio] NVARCHAR (6) NOT NULL,
[TurnoFine] NVARCHAR (6) NOT NULL,
CONSTRAINT [PK_LineaStampi_1] PRIMARY KEY CLUSTERED ([CodImpianto] ASC, [CodStampo] ASC, [DataInizio] ASC),
CONSTRAINT [FK_LineaStampi_AnagImpianti] FOREIGN KEY ([CodImpianto]) REFERENCES [dbo].[AnagImpianti] ([CodImpianto]) ON UPDATE CASCADE
);
+45
View File
@@ -0,0 +1,45 @@
CREATE TABLE [RilPro].[RapQual] (
[nRapQual] NUMERIC (6) NOT NULL,
[DataRapQual] NUMERIC (8) NOT NULL,
[ProgUDC] NVARCHAR (10) NOT NULL,
[CodFor] NVARCHAR (6) NOT NULL,
[DestTerz] NVARCHAR (6) NOT NULL,
[CodLega] NVARCHAR (15) NOT NULL,
[DataPrelFus] NUMERIC (8) NOT NULL,
[TurnoPrelFus] NVARCHAR (5) NOT NULL,
[Qta] NUMERIC (5) NOT NULL,
[DestLega] NVARCHAR (3) NOT NULL,
[LegaScaric] NVARCHAR (1) NOT NULL,
[BenesQual] NVARCHAR (1) NOT NULL,
[UDC] NVARCHAR (50) NULL,
CONSTRAINT [PK_RapQual] PRIMARY KEY CLUSTERED ([ProgUDC] ASC) WITH (FILLFACTOR = 95)
);
GO
CREATE NONCLUSTERED INDEX [i_RapQual_DataPrelFusDataRapQual]
ON [RilPro].[RapQual]([DataPrelFus] ASC, [DataRapQual] ASC) WITH (FILLFACTOR = 95);
GO
CREATE NONCLUSTERED INDEX [i_dataRap]
ON [RilPro].[RapQual]([DataRapQual] ASC)
INCLUDE([BenesQual], [CodFor], [CodLega], [LegaScaric], [nRapQual], [Qta], [UDC]) WITH (FILLFACTOR = 95);
GO
CREATE NONCLUSTERED INDEX [i_RapQual_nRapQual_LegaScaric]
ON [RilPro].[RapQual]([nRapQual] ASC, [LegaScaric] ASC)
INCLUDE([UDC]) WITH (FILLFACTOR = 95);
GO
CREATE NONCLUSTERED INDEX [i_RapQual_BenesQual]
ON [RilPro].[RapQual]([BenesQual] ASC)
INCLUDE([ProgUDC], [UDC]) WITH (FILLFACTOR = 95);
GO
CREATE NONCLUSTERED INDEX [i_UDC]
ON [RilPro].[RapQual]([UDC] ASC);
+13
View File
@@ -0,0 +1,13 @@
CREATE TABLE [RilPro].[StampoArticolo] (
[CodStampo] NVARCHAR (8) NOT NULL,
[InizioValidita] DATETIME NOT NULL,
[ProgFigure] NUMERIC (7) NOT NULL,
[FineValidita] DATETIME NULL,
[NumCommessa] NVARCHAR (20) NULL,
[NumFigure] NUMERIC (7) NULL,
[CodCliente] NVARCHAR (6) NOT NULL,
[CodArticolo] NVARCHAR (6) NOT NULL,
[Particolare] NVARCHAR (15) NOT NULL,
CONSTRAINT [PK_StampoArticolo] PRIMARY KEY CLUSTERED ([CodStampo] ASC, [InizioValidita] ASC, [ProgFigure] ASC)
);
+9
View File
@@ -0,0 +1,9 @@
CREATE TABLE [RilPro].[StampoEsponente] (
[CodStampo] NVARCHAR (8) NOT NULL,
[Esponente] NVARCHAR (6) NOT NULL,
[DataInserim] DATETIME NOT NULL,
[DataValidita] DATETIME NULL,
[EspAttivo] NVARCHAR (1) NULL,
CONSTRAINT [PK_StampoEsponente] PRIMARY KEY CLUSTERED ([CodStampo] ASC, [Esponente] ASC, [DataInserim] ASC)
);
+7
View File
@@ -0,0 +1,7 @@
CREATE TABLE [RilPro].[StampoFigure] (
[CodStampo] NVARCHAR (8) NOT NULL,
[NumFigura] SMALLINT NOT NULL,
[Figura] NVARCHAR (4) NULL,
CONSTRAINT [PK_StampoFigure] PRIMARY KEY CLUSTERED ([CodStampo] ASC, [NumFigura] ASC)
);
+10
View File
@@ -0,0 +1,10 @@
CREATE TABLE [RilPro].[TabDecodBolla] (
[CodRaggrMag] VARCHAR (2) NOT NULL,
[NumRaggrMag] VARCHAR (2) NOT NULL,
CONSTRAINT [PK_TabDecodBolla] PRIMARY KEY CLUSTERED ([CodRaggrMag] ASC)
);
GO
EXECUTE sp_addextendedproperty @name = N'Note', @value = N'Tabella di decodifica il CodRaggruppamento Magazzino per Stampa Odette', @level0type = N'SCHEMA', @level0name = N'RilPro', @level1type = N'TABLE', @level1name = N'TabDecodBolla';
+281
View File
@@ -0,0 +1,281 @@
CREATE VIEW RilPro.vDatiLineeGiornata
AS
-- Non tiene conto del Turno ma prende tutti gli stampi della giornata
WITH cteUltStampo
AS (
SELECT CodStampo
,InizioValidita
,ProgFigure
,FineValidita
,NumCommessa
,NumFigure
,CodCliente
,CodArticolo
,Particolare
FROM RilPro.StampoArticolo AS A
WHERE ( GETDATE() BETWEEN InizioValidita AND FineValidita )
),
cteEspAttivi
AS (
SELECT s.CodStampo
,s.Esponente
,s.EspAttivo
,s.DataInserim
,s.DataValidita
FROM RilPro.StampoEsponente AS s
INNER JOIN (
SELECT CodStampo
,MAX(DataValidita) AS DataValidita
FROM RilPro.StampoEsponente
WHERE ( DataValidita <= GETDATE() )
AND ( EspAttivo = 'S' )
GROUP BY CodStampo
) AS s2
ON s.CodStampo = s2.CodStampo
AND s.DataValidita = s2.DataValidita
),
cteLineeAttive
AS (
SELECT CodImpianto
,CodStampo
,NumStampate
,CONVERT(DATETIME, DataInizio) AS DataInizio
,DataFine
,TurnoInizio
,TurnoFine
FROM RilPro.LineaStampi
WHERE ( DataFine = '99991231' )
)
SELECT
l.CodImpianto
,l.CodStampo
,l.NumStampate
,l.DataInizio
,l.TurnoInizio
,g.InizioValidita
,g.FineValidita
,g.NumFigure
,CAST(g.CodCliente AS varchar(50)) AS CodCliente
,cl.RagSociale
,CAST(g.CodArticolo AS varchar(50)) AS CodArticolo
,g.Particolare
,pa.DescParticolare
,pa.DisegnoGrezzo
,pa.CodFamiglia
,fa.DescFamiglia
,fi.Figura
,es.Esponente
FROM cteLineeAttive AS l
INNER JOIN cteUltStampo AS g
ON l.CodStampo = g.CodStampo
LEFT OUTER JOIN RilPro.StampoFigure AS fi
ON l.CodStampo = fi.CodStampo
LEFT OUTER JOIN cteEspAttivi AS es
ON g.CodStampo = es.CodStampo
LEFT OUTER JOIN RilPro.AnagParticolari AS pa
ON g.Particolare = pa.Particolare
LEFT OUTER JOIN RilPro.AnagFamiglie AS fa
ON pa.CodFamiglia = fa.CodFamiglia
LEFT OUTER JOIN RilPro.AnagClienti AS cl
ON g.CodCliente = cl.CodCliente
GO
EXECUTE sp_addextendedproperty @name = N'MS_DiagramPane1', @value = N'[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 = "l"
Begin Extent =
Top = 6
Left = 38
Bottom = 125
Right = 198
End
DisplayFlags = 280
TopColumn = 0
End
Begin Table = "g"
Begin Extent =
Top = 6
Left = 246
Bottom = 135
Right = 421
End
DisplayFlags = 280
TopColumn = 0
End
Begin Table = "fi"
Begin Extent =
Top = 138
Left = 38
Bottom = 250
Right = 208
End
DisplayFlags = 280
TopColumn = 0
End
Begin Table = "es"
Begin Extent =
Top = 138
Left = 246
Bottom = 267
Right = 416
End
DisplayFlags = 280
TopColumn = 0
End
Begin Table = "pa"
Begin Extent =
Top = 252
Left = 38
Bottom = 381
Right = 208
End
DisplayFlags = 280
TopColumn = 0
End
Begin Table = "fa"
Begin Extent =
Top = 270
Left = 246
Bottom = 365
Right = 416
End
DisplayFlags = 280
TopColumn = 0
End
Begin Table = "cl"
Begin Extent =
Top = 366
Left = 246
Bottom = 461
Right = 416
End
DisplayFlags = 280
TopColumn = 0
', @level0type = N'SCHEMA', @level0name = N'RilPro', @level1type = N'VIEW', @level1name = N'vDatiLineeGiornata';
GO
EXECUTE sp_addextendedproperty @name = N'MS_DiagramPane2', @value = N'End
End
End
Begin SQLPane =
End
Begin DataPane =
Begin ParameterDefaults = ""
End
Begin ColumnWidths = 19
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
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
', @level0type = N'SCHEMA', @level0name = N'RilPro', @level1type = N'VIEW', @level1name = N'vDatiLineeGiornata';
GO
EXECUTE sp_addextendedproperty @name = N'MS_DiagramPaneCount', @value = 2, @level0type = N'SCHEMA', @level0name = N'RilPro', @level1type = N'VIEW', @level1name = N'vDatiLineeGiornata';
+3
View File
@@ -0,0 +1,3 @@
CREATE SCHEMA [As400]
AUTHORIZATION [dbo];
+3
View File
@@ -0,0 +1,3 @@
CREATE SCHEMA [BatchQueue]
AUTHORIZATION [db_accessadmin];
+7
View File
@@ -0,0 +1,7 @@
CREATE SCHEMA [External]
AUTHORIZATION [dbo];
GO
EXECUTE sp_addextendedproperty @name = N'Note', @value = N'Schema per oggetti letti da sistemi esterni', @level0type = N'SCHEMA', @level0name = N'External';
+2
View File
@@ -0,0 +1,2 @@
CREATE USER [GRUPPOMM\UserReport];
+3
View File
@@ -0,0 +1,3 @@
CREATE SCHEMA [RawData]
AUTHORIZATION [db_accessadmin];
+3
View File
@@ -0,0 +1,3 @@
CREATE SCHEMA [RilPro]
AUTHORIZATION [dbo];
+10
View File
@@ -0,0 +1,10 @@
EXECUTE sp_addrolemember @rolename = N'db_owner', @membername = N'connGMW';
GO
EXECUTE sp_addrolemember @rolename = N'db_datareader', @membername = N'GRUPPOMM\UserReport';
GO
EXECUTE sp_addrolemember @rolename = N'db_datareader', @membername = N'UserProcesso';
+2
View File
@@ -0,0 +1,2 @@
CREATE USER [UserProcesso] WITHOUT LOGIN;
+2
View File
@@ -0,0 +1,2 @@
CREATE USER [connGMW] WITHOUT LOGIN;
+7
View File
@@ -0,0 +1,7 @@
CREATE ROLE [db_executor]
AUTHORIZATION [dbo];
GO
EXECUTE sp_addrolemember @rolename = N'db_executor', @membername = N'GRUPPOMM\UserReport';
+3
View File
@@ -0,0 +1,3 @@
CREATE SCHEMA [prt]
AUTHORIZATION [dbo];
+2
View File
@@ -0,0 +1,2 @@
CREATE SCHEMA [voc]
AUTHORIZATION [dbo];
Binary file not shown.
Binary file not shown.
Binary file not shown.
+34
View File
@@ -0,0 +1,34 @@
/***************************************
* function componiUdc
*
* compone il cod UDC a partire da
* - "U" fisso
* - CodCS (codice company sito, 2 char)
* - Flusso (codice flusso-bilancia 2 char)
* - @Anno (anno, 2 char)
* - @numUdc (progr annuale, 2 char)
*
* Steamware, S.E.L.
* mod: 2010.09.23
*
****************************************/
CREATE FUNCTION [dbo].[componiUdc]
(
@CodCS NVARCHAR(2),
@Flusso NVARCHAR(2),
@Anno NVARCHAR(2),
@numUdc INT
)
RETURNS NVARCHAR(13)
AS
BEGIN
DECLARE @answ AS NVARCHAR(50)
SET @answ = UPPER('U' + @CodCS + @Flusso + @Anno + dbo.f_padLeft(CAST(@numUdc AS VARCHAR(6)), 6, '0'))
RETURN @answ
END
+19
View File
@@ -0,0 +1,19 @@
/***************************************
* function dateToAsFormat
*
* converte le date da DATETIME al formato AS 8 cifre AAAAMMGG
*
* Steamware, S.E.L.
* mod: 2010.09.29
*
****************************************/
create FUNCTION dateToAsFormat
(
@data DATETIME
)
RETURNS NVARCHAR(8)
AS
BEGIN
RETURN CONVERT(NVARCHAR(8), @data, 112)
END
+25
View File
@@ -0,0 +1,25 @@
/***************************************
* FUNCTION f_getCellaByPos
*
* fornisce la prima cella associata ad una posizione "logica" di magazzino
*
* Steamware, S.E.L.
* mod: 2011.05.20
*
****************************************/
CREATE FUNCTION [dbo].[f_getCellaByPos] (@posizione VARCHAR(255))
RETURNS INT AS
BEGIN
DECLARE @answ AS INT
SET @answ = (
SELECT TOP 1 ISNULL(IdxCella,0) FROM Celle
WHERE IdxBlocco IN ( SELECT IdxBlocco FROM Blocchi WHERE CodMag = @posizione )
ORDER BY IdxCella -- regola: si deve creare per prima la cella "TERRA"
)
RETURN @answ
END
@@ -0,0 +1,94 @@
-- =============================================
-- Author: Gcarlo
-- Create date:
-- Description: In base al database corrente passato ritorno la corretta libreria di AS400
-- che deve essere utilizzata
-- =============================================
CREATE FUNCTION [dbo].[f_getLibreriaAS400]
(
@CurrentDB nVarchar(128)
,@Function nVarchar(50)
)
RETURNS nvarchar(100)
AS
BEGIN
-- FORSE MEGLIO USARE IL NOME DELLA STORED CHE LA RICHIAMA CON ... nella stored che la richiama
-- DECLARE @StoredName AS NVARCHAR(256);
-- SET @StoredName = OBJECT_SCHEMA_NAME(@@PROCID) + '.' + OBJECT_NAME(@@PROCID)
-- Declare the return variable here
DECLARE @As400File nvarchar(100)
-- Valorizzo la corretta libreria in base al database passato
SET @As400File =
CASE
-- impostazione tramite stored che richiama la function
WHEN @Function = 'BatchQueue.stp_registraMovMag' THEN -- Registrazione Movimenti Magazzino
CASE
-- S.POSSIDONIO
WHEN ( @CurrentDB = 'SP_GMW' ) THEN 'POSN_DATV3.???'
WHEN ( @CurrentDB = 'SP_GMWTest' ) THEN 'MAZZT_DTV3.MWMV230F' -- TEST SP
-- TEKAL
WHEN ( @CurrentDB = 'TK_GMW' ) THEN 'TEKA_DATV3.MWMV260F'
WHEN ( @CurrentDB = 'TK_GMWTest' ) THEN 'MAZZT_DTV3.MWMV230F' -- TEST TEKAL
ELSE 'DB_NON_TROVATO'
END
WHEN @Function = 'dbo.stp_BORI_caricaDatiBolla' THEN -- carica dati bolla
CASE
-- S.POSSIDONIO
WHEN ( @CurrentDB = 'SP_GMW' ) THEN 'POSN_AZI.BORI202J'
WHEN ( @CurrentDB = 'SP_GMWTest' ) THEN 'POSN_AZI.BORI202J' -- TEST SP
-- TEKAL
WHEN ( @CurrentDB = 'TK_GMW' ) THEN 'TEKA_AZI.BORI202J'
WHEN ( @CurrentDB = 'TK_GMWTest' ) THEN 'TEKA_AZI.BORI202J' -- TEST TEKAL
WHEN ( @CurrentDB = 'TK_GMWTestCopy' ) THEN 'TEKA_AZI.BORI202J' -- TEST TEKAL
ELSE 'DB_NON_TROVATO'
END
WHEN @Function = 'BatchQueue.stp_consumaMP' THEN -- consuma UDC rapporti qualita
CASE
-- S.POSSIDONIO
WHEN ( @CurrentDB = 'SP_GMW' ) THEN 'POSN_DATV3.XOGIX00F'
WHEN ( @CurrentDB = 'SP_GMWTest' ) THEN 'MAZZT_DTV3.XOGIX00F' -- TEST SP
-- TEKAL
WHEN ( @CurrentDB = 'TK_GMW' ) THEN 'TEKA_DATV3.XOGIX00F'
WHEN ( @CurrentDB = 'TK_GMWTest' ) THEN 'MAZZT_DTV3.XOGIX00F' -- TEST TEKAL
WHEN ( @CurrentDB = 'TK_GMWTestCopy' ) THEN 'MAZZT_DTV3.XOGIX00F' -- TEST TEKAL
ELSE 'DB_NON_TROVATO'
END
WHEN @Function = 'BatchQueue.stp_batch_RapQual_S01' -- legge cartellini dei rapporti qualita x caricamento
OR @Function = 'As400.stp_SelectRappQualita' -- legge cartellini di un rapporto qualita
THEN
CASE
-- S.POSSIDONIO
WHEN ( @CurrentDB = 'SP_GMW' ) THEN 'POSN_DATV3.XOGIX00F'
WHEN ( @CurrentDB = 'SP_GMWTest' ) THEN 'POSN_DATV3.XOGIX00F' -- TEST SP
-- TEKAL
WHEN ( @CurrentDB = 'TK_GMW' ) THEN 'TEKA_DATV3.XOGIX00F'
WHEN ( @CurrentDB = 'TK_GMWTest' ) THEN 'TEKA_DATV3.XOGIX00F' -- TEST TEKAL
WHEN ( @CurrentDB = 'TK_GMWTestCopy' ) THEN 'TEKA_DATV3.XOGIX00F' -- TEST TEKAL
ELSE 'DB_NON_TROVATO'
END
WHEN @Function = 'XOGIX' THEN -- NON USATO
CASE
-- S.POSSIDONIO
WHEN ( @CurrentDB = 'SP_GMW' ) THEN 'POSN_DATV3.XOGIX00F'
WHEN ( @CurrentDB = 'SP_GMWTest' ) THEN 'MAZZT_DTV3.XOGIX00F' -- TEST SP
-- TEKAL
WHEN ( @CurrentDB = 'TK_GMW' ) THEN 'TEKA_DATV3.XOGIX00F'
WHEN ( @CurrentDB = 'TK_GMWTest' ) THEN 'MAZZT_DTV3.XOGIX00F' -- TEST TEKAL
ELSE 'DB_NON_TROVATO'
END
ELSE 'STORED_NON_TROVATA'
END
-- Return the result of the function
RETURN @As400File
END
+35
View File
@@ -0,0 +1,35 @@
-- =============================================
-- Author: Gcarlo
-- Create date:
-- Description: In base al database corrente passato ritorno il corretto linked Server AS400
-- =============================================
CREATE FUNCTION [dbo].[f_getLikedAS400]
(
@CurrentDB nVarchar(128) -- Database Corrente
)
RETURNS nvarchar(50)
AS
BEGIN
-- Declare the return variable here
DECLARE @As400File nvarchar(50);
-- Valorizzo il corretto Linked Server in base al database passato
SET @As400File =
CASE
-- LINKED SERVER AS400 S.POSSIDONIO
WHEN ( LEFT(@CurrentDB,3) = 'SP_' ) THEN 'AS400POSS' -- S.POSSIDONIO
-- LINKED SERVER AS400 TEKAL
WHEN ( LEFT(@CurrentDB,3) = 'TK_' ) THEN 'AS400TEKAL' -- TEKAL
ELSE ''
END
-- Return the result of the function
RETURN @As400File
END
+55
View File
@@ -0,0 +1,55 @@
/***************************************
* 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
+35
View File
@@ -0,0 +1,35 @@

/***************************************
* 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 [dbo].[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
+46
View File
@@ -0,0 +1,46 @@

/***************************************
* FUNCTION f_onlyNumbers
*
* elimina tutti i caratteri alfabetici dalal stringa
*
* Steamware, S.E.L.
* mod: 2010.03.19
*
****************************************/
CREATE FUNCTION [dbo].[f_onlyNumbers] (@string NVARCHAR(255))
RETURNS NVARCHAR(255) AS
BEGIN
DECLARE @answ NVARCHAR(255)
-- sostituisco TUTTE le lettere dell'alfabeto
SET @answ = (SELECT REPLACE(@string, 'a', ''))
SET @answ = (SELECT REPLACE(@answ, 'b', ''))
SET @answ = (SELECT REPLACE(@answ, 'c', ''))
SET @answ = (SELECT REPLACE(@answ, 'd', ''))
SET @answ = (SELECT REPLACE(@answ, 'e', ''))
SET @answ = (SELECT REPLACE(@answ, 'f', ''))
SET @answ = (SELECT REPLACE(@answ, 'g', ''))
SET @answ = (SELECT REPLACE(@answ, 'h', ''))
SET @answ = (SELECT REPLACE(@answ, 'i', ''))
SET @answ = (SELECT REPLACE(@answ, 'j', ''))
SET @answ = (SELECT REPLACE(@answ, 'k', ''))
SET @answ = (SELECT REPLACE(@answ, 'l', ''))
SET @answ = (SELECT REPLACE(@answ, 'm', ''))
SET @answ = (SELECT REPLACE(@answ, 'n', ''))
SET @answ = (SELECT REPLACE(@answ, 'o', ''))
SET @answ = (SELECT REPLACE(@answ, 'p', ''))
SET @answ = (SELECT REPLACE(@answ, 'q', ''))
SET @answ = (SELECT REPLACE(@answ, 'r', ''))
SET @answ = (SELECT REPLACE(@answ, 's', ''))
SET @answ = (SELECT REPLACE(@answ, 't', ''))
SET @answ = (SELECT REPLACE(@answ, 'u', ''))
SET @answ = (SELECT REPLACE(@answ, 'v', ''))
SET @answ = (SELECT REPLACE(@answ, 'w', ''))
SET @answ = (SELECT REPLACE(@answ, 'x', ''))
SET @answ = (SELECT REPLACE(@answ, 'y', ''))
SET @answ = (SELECT REPLACE(@answ, 'z', ''))
RETURN @answ
END
+21
View File
@@ -0,0 +1,21 @@
/***************************************
* FUNCTION f_padLeft
*
* fornisce una stringa della lunghezza desiderata aggiungendo a sx il carattere richiesto alla @string originale
*
* Steamware, S.E.L.
* mod: 2010.03.19
*
****************************************/
CREATE FUNCTION [dbo].[f_padLeft] (@string VARCHAR(255), @desired_length INTEGER, @pad_character CHAR(1))
RETURNS VARCHAR(255) AS
BEGIN
-- Prefix the required number of spaces to bulk up the string and then replace the spaces with the desired character
RETURN CASE
WHEN LEN(@string) < @desired_length
THEN REPLACE(SPACE(@desired_length - LEN(@string)), ' ', @pad_character) + @string
ELSE @string
END
END
+22
View File
@@ -0,0 +1,22 @@

/***************************************
* FUNCTION f_padLeft
*
* fornisce una stringa della lunghezza desiderata aggiungendo a sx il carattere richiesto alla @string originale
*
* Steamware, S.E.L.
* mod: 2010.03.19
*
****************************************/
create FUNCTION [dbo].[f_padRight] (@string VARCHAR(255), @desired_length INTEGER, @pad_character CHAR(1))
RETURNS VARCHAR(255) AS
BEGIN
-- Prefix the required number of spaces to bulk up the string and then replace the spaces with the desired character
RETURN CASE
WHEN LEN(@string) < @desired_length
THEN @string + REPLACE(SPACE(@desired_length - LEN(@string)), ' ', @pad_character)
ELSE @string
END
END
+19
View File
@@ -0,0 +1,19 @@

/***************************************
* FUNCTION f_trim
*
* trim completo: LTRIM(RTRIM(...))
*
* Steamware, S.E.L.
* mod: 2013.05.10
*
****************************************/
create FUNCTION [dbo].[f_trim] (@string NVARCHAR(MAX))
RETURNS NVARCHAR(MAX) AS
BEGIN
-- Prefix the required number of spaces to bulk up the string and then replace the spaces with the desired character
RETURN LTRIM(RTRIM(@string))
END
+20
View File
@@ -0,0 +1,20 @@
/***************************************
* function getNumDatamatrix
*
* calcola il numero dei datamatrix BUONI presenti in un gitterbox dalla view v_trasfDataMatrix
*
* Steamware, S.E.L.
* mod: 2011.04.29
*
****************************************/
CREATE FUNCTION dbo.getNumDatamatrix
(
@CodGitterbox AS NVARCHAR(50)
)
RETURNS INT
AS
BEGIN
DECLARE @answ AS INT
SET @answ = (SELECT COUNT(*) FROM v_trasfDataMatrix WHERE CodGitterbox = @CodGitterbox)
RETURN @answ
END
+33
View File
@@ -0,0 +1,33 @@

/***************************************
* function getUdcComp
*
* effettua la "compattazione" dell'UDC, andando a prendere un sottoinsieme dei dati iniziali (UAAxxxx dove AA = anno...)
*
* Steamware, S.E.L.
* mod: 2010.09.23
*
****************************************/
CREATE FUNCTION [dbo].[getUdcComp]
(
@fullUDC NVARCHAR(50),
@maxLen INTEGER
)
RETURNS NVARCHAR(20)
AS
BEGIN
-- calcolo lunghezza originale
DECLARE @fullLen AS INT
SET @fullLen = LEN(LTRIM(RTRIM(@fullUDC)))
-- dichiaro stringa out (max 20 char)
DECLARE @answ NVARCHAR(20)
-- recupero parte finale (ultimi @maxLen caratteri...)
-- compongo codice
SET @answ = 'U' + RIGHT(LEFT(@fullUDC, 7), 2) + RIGHT(LTRIM(RTRIM(@fullUDC)),@maxLen-3) -- tolgo 3 char: U + anno...
RETURN @answ
END
+59
View File
@@ -0,0 +1,59 @@

-- =================================================================================================
-- =================================================================================================
/***************************************
* function staccaNewIdx
*
* fornisce un nuovo idx valido per company - flusso - anno indicati ed aggiorna tab contatori
*
* Steamware, S.E.L.
* mod: 2010.03.19
*
****************************************/
CREATE FUNCTION [dbo].[staccaNewIdx]
(
@CodCompany VARCHAR(2),
@Flusso VARCHAR(2),
@Anno VARCHAR(2)
)
RETURNS INT
AS
BEGIN
DECLARE @answ AS INT
-- cerco nella tab contatori UDC l'ultimo valido
SET @answ = ISNULL(
( SELECT ISNULL(LastIdx,0)
FROM ContatoriUdc
WHERE CodCS = @CodCompany
AND Flusso = @Flusso
AND Anno = @Anno
),0)
/*
-- controllo se record c'è...
IF(@answ > 0)
BEGIN
-- se c'è incremento di 1 in tab
UPDATE ContatoriUdc
SET LastIdx = LastIdx + 1
WHERE CodCompany = @CodCompany
AND Flusso = @Flusso
AND Anno = @Anno
END
ELSE
BEGIN
-- lo creo!
INSERT INTO ContatoriUdc(CodCompany, Flusso, Anno, LastIdx)
VALUES (@CodCompany, @Flusso, @Anno, 1)
END
@answ = @answ + 1
*/
-- uso il dato passando valore + 1 (ho incrementato nel frattempo...)
RETURN @answ
END
@@ -0,0 +1,20 @@
/***************************************
* STORED stp_AL_getByKey
*
* recupera linea da CodLinea
*
* Steamware, S.E.L.
* mod: 2014.01.14
*
************************************/
create PROCEDURE [dbo].[stp_AL_getByKey]
(
@CodLinea NVARCHAR(5)
)
AS
SELECT *
FROM AnagLinee
WHERE CodLinea = @CodLinea
RETURN
@@ -0,0 +1,21 @@
/***************************************
* STORED stp_AL_resetPost
*
* update linea: RESETTA l'uso della postazione indicata (la toglie dagli elenchi d'uso a prima apertura...
*
* Steamware, S.E.L.
* mod: 2014.02.10
*
************************************/
create PROCEDURE [dbo].[stp_AL_resetPost]
(
@codPostazione NVARCHAR(250)
)
AS
UPDATE AnagLinee
SET codPostazione = '',
dtAccess = GETDATE()
WHERE codPostazione = @codPostazione
RETURN
@@ -0,0 +1,22 @@
/***************************************
* STORED stp_AL_updatePost
*
* update linea: da quale postazione viene occupata la linea
*
* Steamware, S.E.L.
* mod: 2014.02.10
*
************************************/
create PROCEDURE [dbo].[stp_AL_updatePost]
(
@CodLinea NVARCHAR(5),
@codPostazione NVARCHAR(250)
)
AS
UPDATE AnagLinee
SET codPostazione = @codPostazione,
dtAccess = GETDATE()
WHERE CodLinea = @CodLinea
RETURN
@@ -0,0 +1,21 @@

/***************************************
* STORED stp_ATD_getByKey
*
* recupera Tipo Delibera da chiave
*
* Steamware, S.E.L.
* mod: 2012.05.30
*
************************************/
create PROCEDURE [dbo].[stp_ATD_getByKey]
(
@CodTipoDelibera NVARCHAR(50)
)
AS
SELECT *
FROM AnagTipoDelibere
WHERE CodTipoDelibera = @CodTipoDelibera
RETURN
@@ -0,0 +1,101 @@

/***************************************
* STORED stp_ArtiInProd_ByImpData
*
* ottiene l'elenco dei particolari in lavorazione in una certa data/ora (già trasformato data+turno in dataora) su un impianto
* --> con dettaglio su articoli (da anagrafica)
*
* Steamware, S.E.L.
* mod: 2010.04.29
*
****************************************/
CREATE PROCEDURE [dbo].[stp_ArtiInProd_ByImpData]
(
@CodImpianto VARCHAR(50)
,@DataRif DATETIME
)
AS -- iniziamo definendo le varie viste accessorie
WITH cteUltStampo
AS (
SELECT CodStampo
,InizioValidita
,ProgFigure
,FineValidita
,NumCommessa
,NumFigure
,CodCliente
,CodArticolo
,Particolare
FROM RilPro.StampoArticolo AS A
WHERE (
@DataRif >= InizioValidita
AND @DataRif <= ISNULL(FineValidita, DATEADD(year, 2, GETDATE()))
)
),
cteEspAttivi
AS (
SELECT s.CodStampo
,s.Esponente
,s.EspAttivo
,s.DataInserim
,s.DataValidita
FROM RilPro.StampoEsponente AS s
INNER JOIN (
SELECT CodStampo
,MAX(DataValidita) AS DataValidita
FROM RilPro.StampoEsponente
WHERE ( DataValidita <= @DataRif )
AND ( EspAttivo = 'S' )
GROUP BY CodStampo
) AS s2
ON s.CodStampo = s2.CodStampo
AND s.DataValidita = s2.DataValidita
),
cteLineeAttive
AS (
SELECT CodImpianto
,CodStampo
,NumStampate
,CONVERT(DATETIME, DataInizio) AS DataInizio
,DataFine
,TurnoInizio
,TurnoFine
FROM RilPro.LineaStampi
WHERE ( @DataRif BETWEEN DataInizio AND ISNULL(DataFine, DATEADD(year, 2, GETDATE())) )
AND CodImpianto = @CodImpianto
)
-- faccio la select principale
SELECT l.CodImpianto
,l.CodStampo
,l.NumStampate
,l.DataInizio
,l.TurnoInizio
,g.InizioValidita
,g.FineValidita
,g.NumFigure
,dbo.f_padLeft(CAST(g.CodCliente AS varchar(50)), 5, '0') AS CodCliente
,ISNULL(cl.RagSociale, '-') AS RagSociale
,CAST(g.CodArticolo AS varchar(50)) AS CodArticolo
,g.Particolare
,pa.DescParticolare
,pa.DisegnoGrezzo
,pa.CodFamiglia
,fa.DescFamiglia
,fi.Figura
,es.Esponente
FROM cteLineeAttive AS l
INNER JOIN cteUltStampo AS g
ON l.CodStampo = g.CodStampo
LEFT OUTER JOIN RilPro.StampoFigure AS fi
ON l.CodStampo = fi.CodStampo
LEFT OUTER JOIN cteEspAttivi AS es
ON g.CodStampo = es.CodStampo
LEFT OUTER JOIN RilPro.AnagParticolari AS pa
ON g.Particolare = pa.Particolare
LEFT OUTER JOIN RilPro.AnagFamiglie AS fa
ON pa.CodFamiglia = fa.CodFamiglia
LEFT OUTER JOIN RilPro.AnagClienti AS cl
ON g.CodCliente = cl.CodCliente
ORDER BY l.CodImpianto
RETURN
@@ -0,0 +1,190 @@

/*****************************************
* STORED stp_BORI_caricaDatiBolla
*
* richiama la stored di caricamento da AS400 x la bolla indicata
*
* Steamware, S.E.L.
* mod: 2013.04.15
*
****************************************/
CREATE PROCEDURE [dbo].[stp_BORI_caricaDatiBolla]
(
@RaggrMagazz NVARCHAR(2) ,
@GruppoBolle NVARCHAR(1) ,
@NumeroBolla NVARCHAR(6) ,
@DataBolla NVARCHAR(8) ,
@Particolare NVARCHAR(15)
)
AS
SET NOCOUNT ON;
--DECLARE @RaggrMagazz AS NVARCHAR(2) = -- N'SP' oppure = N'TK'
--DECLARE @GruppoBolle AS NVARCHAR(1) = N'0'
--DECLARE @NumeroBolla AS NVARCHAR(6) = N'678'
--DECLARE @DataBolla AS NVARCHAR(8) = N'20110421'
--DECLARE @Particolare AS NVARCHAR(15) = N'P00528536146'
-- ATTENZIONE!!! i parametri non devono essere nulli altrimenti la stringa ritornata è nulla
-- Prima cancello i dati della se già presenti bolla poi li carico
DELETE RawData.BORI202J
WHERE CDMFS = @RaggrMagazz
AND GRBOS = @GruppoBolle
AND NRBOS = @NumeroBolla
AND DTBOS = @DataBolla
AND CDARS = @Particolare
DECLARE @SQL AS NVARCHAR(4000);
DECLARE @SqlOK AS INT;
DECLARE @As400File AS NVARCHAR(50) = ''; -- Libreria e File AS400
DECLARE @As400Linked AS NVARCHAR(50) = ''; -- Linked Server AS400
SET @SqlOK = 0;
/*
Prima estraggo i dati della bolla dal file in AS400 in una tabella temporanea
Poi va letta la tabella temporanea per creare i dati per la stampa Odette
NON VA BENE, SE ESEGUONO IN DUE LA STAMPA PUO ANDARE IN CONFLITTO
--IF OBJECT_ID(N'tempdb..##TabTemp') IS NOT NULL -- ##TabTemp Tabella temporanea globale altrimenti non riesco ad usarla
-- DROP TABLE ##TabTemp;
-- SET @SQL = 'SELECT * INTO ##TabTemp FROM OPENQUERY(AS400XXXX,
*/
-- In base al nome del DB allora setto Linked Server e file di AS400
SET @As400Linked = ( SELECT dbo.f_getLikedAS400(DB_NAME()) );
-- SET @As400File = ( SELECT dbo.f_getLibreriaAS400 ( DB_NAME() , OBJECT_SCHEMA_NAME(@@PROCID) + '.' + OBJECT_NAME(@@PROCID) ) )
SET @As400File = ( SELECT dbo.f_getLibreriaAS400 ( DB_NAME(), 'dbo.stp_BORI_caricaDatiBolla' ) );
BEGIN TRY
SET @SQL = 'INSERT INTO RawData.BORI202J SELECT * FROM OPENQUERY(' -- OPENQUERY(AS400XXXX,'SELECT ...
SET @SQL = @SQL + @As400Linked + ',
''SELECT DISTINCT
CDMFS
,GRBOS
,DTBOS
,NRBOS
,CDARS
,NRRGS
,CDINB
,RA1ND
,RA2ND
,CAPND
,CITND
,RASCL
,INDCL
,CAPCL
,LOCCL
,PROCL
,INEND
,CRAGCL
,TELND
,CCDMOL
,CCDPTR
,EPLAVO
,NRC1B
,ECMM01
,DEPAR
,RCARTC
,PERND
,CCDET1
,ECDNAE
,ECDNA1
,EESPMD
,PELDB
,QTCNS
,ECLAQP
,EPNETT
,FCDI01
,'''''''' AS OCDODM
,CCFOE1
FROM ' + @As400File
SET @SQL = @SQL + ' WHERE ATV08 <> ''''A''''' -- escludo bolle annullate
-- commemntare le righe successive per estrarre tutto
-- Parametri di selezione della bolla
SET @SQL = @SQL + ' AND CDMFS = ''''' + @RaggrMagazz + ''''' '
SET @SQL = @SQL + ' AND GRBOS = ''''' + @GruppoBolle + ''''' '
SET @SQL = @SQL + ' AND NRBOS = ' + @NumeroBolla + ' '
SET @SQL = @SQL + ' AND DTBOS = ' + @DataBolla + ' '
SET @SQL = @SQL + ' AND CDARS = ''''' + @Particolare + ''''' '
SET @SQL = @SQL + ''' ) OPTION (RECOMPILE)';
EXEC sp_executesql @SQL -- commentare per test
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_BORI_caricaDatiBolla', REPLACE(@SQL,' ',' '), @SqlOK;
/* NEW 2013/05/01
Aggiorno il change index in base alla data validità e data bolla
leggo dalla tabella RawData.ANODM00F aggiornata da import AS400 ( potrei aggiornarla anche qui )
*/
IF @SqlOK = 0 -- se import Bolle è OK
BEGIN
;WITH cte AS -- cte con inizio e fine validità
(
SELECT OCDPAR,
OCDODM,
ODTVAL,
ISNULL(( SELECT MIN(ODTVAL)
FROM RawData.ANODM00F AS T2
WHERE T2.OCDPAR = v.OCDPAR AND T2.ODTVAL > v.ODTVAL )
,'20993112') AS ODTVALEND
FROM RawData.ANODM00F AS v
)
UPDATE b
SET OCDODM = c.OCDODM
FROM RawData.BORI202J AS b
INNER JOIN cte AS c
ON b.CDARS = c.OCDPAR AND b.DTBOS >= c.ODTVAL AND b.DTBOS < c.ODTVALEND
WHERE CDMFS = @RaggrMagazz -- aggiorno solo la bolla corretta
AND GRBOS = @GruppoBolle
AND NRBOS = @NumeroBolla
AND DTBOS = @DataBolla
AND CDARS = @Particolare
/* query di test
;WITH cte AS
(
SELECT OCDPAR,
OCDODM,
ODTVAL,
ISNULL(( SELECT MIN(ODTVAL) FROM RawData.ANODM00F AS T2
WHERE T2.OCDPAR = v.OCDPAR AND T2.ODTVAL > v.ODTVAL )
,'20993112') AS ODTVALEND
FROM RawData.ANODM00F AS v
)
SELECT b.*, c.OCDODM FROM RawData.BORI202J AS b
LEFT JOIN cte AS c
ON b.CDARS = c.OCDPAR AND b.DTBOS >= c.ODTVAL AND b.DTBOS < c.ODTVALEND
*/
END
-- Carico i dati della Temp table nel file di appoggio
-- INSERT INTO RawData.BORI202J
-- SELECT * FROM ##TabTemp
RETURN
@@ -0,0 +1,31 @@

/*****************************************
* STORED stp_BORI_getByBolla
*
* Cerca la bolla richiesta x chiave
*
* Steamware, S.E.L.
* mod: 2011.05.05
*
****************************************/
CREATE PROCEDURE [dbo].[stp_BORI_getByBolla]
(
@RaggrMagazz NVARCHAR(2),
@GruppoBolle NVARCHAR(1),
@NumeroBolla NUMERIC(6,0),
@DataBolla NUMERIC(8,0),
@Particolare NVARCHAR(15)
)
AS
SELECT *
FROM RawData.BORI202J
WHERE CDMFS = @RaggrMagazz
AND GRBOS = @GruppoBolle
AND NRBOS = @NumeroBolla
AND DTBOS = @DataBolla
AND CDARS = @Particolare
RETURN
@@ -0,0 +1,29 @@

/*****************************************
* STORED stp_BORI_getByBollaFull
*
* Cerca la bolla richiesta x chiave completa
*
* Steamware, S.E.L.
* mod: 2011.05.05
*
****************************************/
create PROCEDURE stp_BORI_getByBollaFull
(
@RaggrMagazz NVARCHAR(2),
@GruppoBolle NVARCHAR(1),
@NumeroBolla NUMERIC(6,0),
@DataBolla NUMERIC(8,0),
@Particolare NVARCHAR(15)
)
AS
SELECT *
FROM RawData.BORI202J
WHERE CDMFS = @RaggrMagazz
AND GRBOS = @GruppoBolle
AND NRBOS = @NumeroBolla
AND DTBOS = @DataBolla
AND CDARS = @Particolare
RETURN
@@ -0,0 +1,27 @@

/*****************************************
* STORED stp_BORI_getByBollaPart
*
* Cerca la bolla richiesta x chiave parziale (no particolare)
*
* Steamware, S.E.L.
* mod: 2011.05.05
*
****************************************/
create PROCEDURE stp_BORI_getByBollaPart
(
@RaggrMagazz NVARCHAR(2),
@GruppoBolle NVARCHAR(1),
@NumeroBolla NUMERIC(6,0),
@DataBolla NUMERIC(8,0)
)
AS
SELECT *
FROM RawData.BORI202J
WHERE CDMFS = @RaggrMagazz
AND GRBOS = @GruppoBolle
AND NRBOS = @NumeroBolla
AND DTBOS = @DataBolla
RETURN
@@ -0,0 +1,21 @@

/***************************************
* STORED stp_BlocchiGetByCodBlocco
*
* ottiene l'elenco dei blocchi di magazzino dal codBlocco richiesto
*
* Steamware, S.E.L.
* mod: 2010.07.27
*
****************************************/
create PROCEDURE [dbo].[stp_BlocchiGetByCodBlocco]
(
@CodBlocco VARCHAR(3)
)
AS
SELECT *
FROM Blocchi
WHERE CodBlocco = @CodBlocco
RETURN
@@ -0,0 +1,23 @@

/***************************************
* STORED stp_BlocchiGetByCodMag
*
* ottiene l'elenco dei blocchi di magazzino dal codice Company/Sito + codice magazzino richiesti
*
* Steamware, S.E.L.
* mod: 2010.05.17
*
****************************************/
create PROCEDURE [dbo].[stp_BlocchiGetByCodMag]
(
@CodCS VARCHAR(2),
@CodMag VARCHAR(50)
)
AS
SELECT *
FROM Blocchi
WHERE CodCS = @CodCS
AND CodMag = @CodMag
RETURN
@@ -0,0 +1,21 @@

/***************************************
* STORED stp_BlocchiGetByIdx
*
* ottiene l'elenco dei blocchi di magazzino dall'Idx richiesto
*
* Steamware, S.E.L.
* mod: 2010.05.18
*
****************************************/
create PROCEDURE [dbo].[stp_BlocchiGetByIdx]
(
@IdxBlocco INT
)
AS
SELECT *
FROM Blocchi
WHERE IdxBlocco = @IdxBlocco
RETURN
@@ -0,0 +1,35 @@

/***************************************
* STORED stp_Blocchi_Insert
*
* crea nuovo record blocchi magazzino
*
* Steamware, S.E.L.
* mod: 2012.05.21
*
****************************************/
CREATE PROCEDURE [dbo].[stp_Blocchi_Insert]
(
@CodMag NVARCHAR(50),
@CodCS NVARCHAR(2),
@CodBlocco NVARCHAR(3),
@DescBlocco NVARCHAR(50),
@NumX INT,
@NumY INT,
@NumZ INT
)
AS
BEGIN TRAN
-- inizio calcolando il primo blocco libero x chiave (non è + autoincrement)...
DECLARE @idxBlocco INT
SET @idxBlocco = ( SELECT ISNULL(MAX(idxBlocco),0)+1 AS nextIdxBlocco FROM Blocchi )
INSERT INTO Blocchi (idxBlocco, CodMag, CodCS, CodBlocco, DescBlocco, NumX, NumY, NumZ)
VALUES (@idxBlocco, @CodMag, @CodCS, @CodBlocco, @DescBlocco, @NumX, @NumY, @NumZ)
COMMIT TRAN
RETURN
@@ -0,0 +1,21 @@
/***************************************
* STORED stp_ComAs_lastComandoByStored
*
* Ottiene il record dell'ultimo comando inviato ad AS400 dato il nome della stored con Test = 0
*
* Steamware, S.E.L.
* mod: 2011.03.30
*
****************************************/
create PROCEDURE dbo.stp_ComAs_lastComandoByStored
(
@Stored NVARCHAR(100)
)
AS
-- restituisce le righe richieste
SELECT TOP 1 *
FROM RawData.AS400_Comandi
WHERE (Stored = @Stored) AND Test = 0
ORDER BY DataEsecuzione DESC
RETURN
@@ -0,0 +1,23 @@
/***************************************
* STORED stp_ContaCelle4Blocchi
*
* effettua conteggio celle dai blocchi assegnati dato codice magazzino
*
* Steamware, S.E.L.
* mod: 2010.05.17
*
****************************************/
create PROCEDURE [dbo].[stp_ContaCelle4Blocchi]
(
@CodCS VARCHAR(2),
@CodMag VARCHAR(50),
@TotCelle INT OUTPUT
)
AS
SET @TotCelle = (SELECT SUM(NumX * NumY * numz) AS Totale
FROM Blocchi
WHERE (CodCS = @CodCS) AND (CodMag = @CodMag))
RETURN @TotCelle
@@ -0,0 +1,23 @@
/***************************************
* STORED stp_ContaCelle4Tipo
*
* effettua conteggio celle dai tipi assegnati dato codice magazzino
*
* Steamware, S.E.L.
* mod: 2010.05.17
*
****************************************/
create PROCEDURE [dbo].[stp_ContaCelle4Tipo]
(
@CodCS VARCHAR(2),
@CodMag VARCHAR(50),
@TotCelle INT OUTPUT
)
AS
SET @TotCelle = (SELECT SUM(Quantita) AS Totale
FROM TipoCella
WHERE (CodCS = @CodCS) AND (CodMag = @CodMag))
RETURN @TotCelle
@@ -0,0 +1,28 @@
/***************************************
* STORED stp_ContaCelle4Tipo
*
* effettua conteggio celle x blocco, dato filtro su attive (si/no) e su posizioen assegnata (0 = non assegnata, 1 = assegnata)
*
* Steamware, S.E.L.
* mod: 2010.05.18
*
****************************************/
create PROCEDURE [dbo].[stp_ContaCelleBlocco]
(
@CodCS VARCHAR(2),
@CodMag VARCHAR(50),
@FiltAttive BIT,
@PosAssegnata BIT,
@TotCelle INT OUTPUT
)
AS
SET @TotCelle = (SELECT Count(IdxCella) AS Totale
FROM Celle
WHERE (IdxBlocco IN (SELECT IdxBlocco FROM Blocchi WHERE (CodCS = @CodCS) AND (CodMag = @CodMag))) -- cerco i blocchi
AND (Attiva = @FiltAttive) -- cerco attive/non attive
AND ((ISNULL(X,0)+ISNULL(Y,0)+ISNULL(Z,0)) = (CASE @PosAssegnata WHEN 0 THEN 0 ELSE (ISNULL(X,0)+ISNULL(Y,0)+ISNULL(Z,0)) END))
AND ((ISNULL(X,0)+ISNULL(Y,0)+ISNULL(Z,0)) > (CASE @PosAssegnata WHEN 0 THEN (ISNULL(X,0)+ISNULL(Y,0)+ISNULL(Z,0)) - 1 ELSE 0 END))
)
RETURN @TotCelle
@@ -0,0 +1,23 @@
/***************************************
* STORED stp_ContaCelleCapa
*
* effettua conteggio CAPACITA' TOTALE celle dai tipi assegnati dato codice magazzino
*
* Steamware, S.E.L.
* mod: 2010.07.22
*
****************************************/
create PROCEDURE [dbo].[stp_ContaCelleCapa]
(
@CodCS VARCHAR(2),
@CodMag VARCHAR(50),
@TotCelle INT OUTPUT
)
AS
SET @TotCelle = (SELECT SUM(Quantita * Capienza) AS Totale
FROM TipoCella
WHERE (CodCS = @CodCS) AND (CodMag = @CodMag))
RETURN @TotCelle
@@ -0,0 +1,23 @@
/***************************************
* STORED stp_ContaCelleCreate
*
* effettua conteggio celle create nei blocchi del magazzino
*
* Steamware, S.E.L.
* mod: 2010.05.18
*
****************************************/
create PROCEDURE [dbo].[stp_ContaCelleCreate]
(
@CodCS VARCHAR(2),
@CodMag VARCHAR(50),
@TotCelle INT OUTPUT
)
AS
SET @TotCelle = (SELECT Count(IdxCella) AS Totale
FROM Celle
WHERE (IdxBlocco IN (SELECT IdxBlocco FROM Blocchi WHERE (CodCS = @CodCS) AND (CodMag = @CodMag)))
)
RETURN @TotCelle
@@ -0,0 +1,31 @@
/***************************************
* STORED stp_ContaDeltaCelleBlocco
*
* effettua conteggio celle x blocco, restituisce la differenza tra le celle necessarie al blocco e quelle già create (0 = tutto ok)
*
* Steamware, S.E.L.
* mod: 2010.05.18
*
****************************************/
create PROCEDURE [dbo].[stp_ContaDeltaCelleBlocco]
(
@IdxBlocco INT,
@DeltaCelle INT OUTPUT
)
AS
-- calcolo quanto richiesto dai blocchi
DECLARE @NumInBlocco INT
SET @NumInBlocco = (SELECT SUM(NumX * NumY * numz) AS Totale
FROM Blocchi
WHERE IdxBlocco = @IdxBlocco)
-- calcolo quante celle create
DECLARE @NumCelle INT
SET @NumCelle = (SELECT COUNT(IdxCella) AS Totale
FROM Celle
WHERE IdxBlocco = @IdxBlocco)
SET @DeltaCelle = @NumInBlocco - @NumCelle
RETURN @DeltaCelle
@@ -0,0 +1,210 @@

/*****************************************
* STORED stp_DtMtrx_import
*
* Recupera dati Gitterbox/DataMatrix partendo leggendo dati successivi all'ultimo import e importanto in tab GMW
*
* Steamware, S.E.L.
* mod: 2011.04.29
*
****************************************/
CREATE PROCEDURE [dbo].[stp_DtMtrx_import]
(
@CodCS VARCHAR(2),
@IdxPosizione INT,
@CodSoggetto VARCHAR(17)
)
AS
SET XACT_ABORT ON;
SET NOCOUNT ON;
/**** NON PRESENTE IN TEKAL
------------------------------------------------------------------------------------------------------
-- leggo data ultimo import (o creo record...)
------------------------------------------------------------------------------------------------------
DECLARE @nomeFlusso AS NVARCHAR(50)
DECLARE @lastImport AS DATETIME
DECLARE @trovati AS INT
-- imposto valori
SET @nomeFlusso = 'DataMatrix'
SET @lastImport = DATEADD(yy,-10,GETDATE()) -- inizializzo a -10 anni ...
-- sistemo tab registrazione import...
BEGIN TRAN
-- cerco nella tab log ultima data caricamento
SET @trovati = (
SELECT COUNT(*)
FROM logImportFlussi
WHERE NomeFlusso = @nomeFlusso
)
-- controllo se record c'è...
IF(@trovati > 0)
BEGIN
SET @lastImport = ( SELECT LastImport FROM LogImportFlussi WHERE NomeFlusso = @nomeFlusso )
END
ELSE
BEGIN
-- lo creo!
INSERT INTO LogImportFlussi(NomeFlusso, LastImport)
VALUES (@nomeFlusso, @lastImport)
END
COMMIT TRAN
------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
-- ora gestisco il vero caricamento...
------------------------------------------------------------------------------------------------------
-- filtro e salvo in tabella... gitterbox validi SOLO se iniziano per "U"
-- verifico già se esite già l'UDC/Gitterbox in ElencoCartellini
DECLARE @newData TABLE
(
RowNumber int,
CodDataMatrix numeric(23, 0) ,
CodGitterbox varchar(10) ,
NumConchiglia int ,
NumDisegno numeric(7, 0) ,
EsponenteDisegno tinyint ,
CodDifettoScarto varchar(5) ,
InizioPreparazione smalldatetime ,
FinePreparazione smalldatetime ,
InizioIniezione smalldatetime ,
FineIniezione smalldatetime ,
MagDestinazione varchar(2) ,
DataImport smalldatetime ,
UDC varchar(50)
)
INSERT INTO @newData
SELECT
ROW_NUMBER() OVER(PARTITION BY CodGitterbox ORDER BY InizioIniezione ASC),
dm.CodDataMatrix, LTRIM(RTRIM(dm.CodGitterbox)), dm.NumConchiglia, dm.NumDisegno, dm.EsponenteDisegno,dm.CodDifettoScarto, dm.InizioPreparazione, dm.FinePreparazione, dm.InizioIniezione, dm.FineIniezione, dm.MagDestinazione, dm.DataImport,
ec.UDC
FROM dbo.v_trasfDataMatrix AS dm
LEFT JOIN dbo.ElencoCartellini AS ec
ON dm.CodGitterbox = ec.UDC
WHERE DataImport > @lastImport AND LEFT(CodGitterbox, 1) = 'U'
AND CodDifettoScarto = '00' -- non importa gli scarti!!!
/* INIZIO MODIFICA
Note GCarlo :
Se il Gitterbox è già stato trasferito e/o cmq già presente non viene caricato, al
limite vengono caricati i Datamatrix non ancora presenti ma con Gitterbox = EmptyGBox
Se non trovo il Particolare in dbo.v_transcParticolari i datamatrix non vengono importati
Posso reimportarli spostando la data di import indietro in LogImportFlussi
ATTENZIONE! Si presuppone che i DataMatrix siano coerenti ovvero stesso Particolare ecc. ecc.
*/
BEGIN TRAN;
-- creo UDC da gitterbox nuovi ( Se UDC già presenti non li carico )
-- GCARLO messo un RowCount prima e prendo solo il primo DataMatrix
INSERT INTO ElencoCartellini(UDC,CodCS, Particolare, DescParticolare, DisegnoGrezzo, Esponente, DataFus, Qta,
CodSoggetto, CodStato, IdxPosizione,CreateDate, ModDate, Figura, CodImballo, Tara, PesoTot, PesoCad, NumCont, TurnoFus, CodEvento )
SELECT DISTINCT nd.CodGitterbox, @CodCS, tp.Particolare, an.DescParticolare, an.DisegnoGrezzo, an.EsponenteModifica
,InizioIniezione, dbo.getNumDatamatrix(nd.CodGitterbox), @CodSoggetto As CodSoggetto, 'FinGBox' AS CodStato
,@IdxPosizione, GETDATE(), GETDATE()
,'' AS Figura, '' AS CodImballo,0 AS Tara,0 AS PesoTot,0 AS PesoCad,1 AS NumCont,0 AS TurnoFus, 'UDC_GBOX' AS CodEvento
FROM @newData nd
INNER JOIN dbo.v_transcParticolari tp -- solo se PArticolare è presente in Trascodifica
ON nd.NumDisegno = tp.NumDisegno AND nd.EsponenteDisegno = tp.EsponenteDisegno
LEFT JOIN RilPro.AnagParticolari an -- Leggo il disegno in anagrafica
ON tp.Particolare = an.Particolare
WHERE nd.RowNumber = 1 -- Prendo solo i dati del First DataMatrix ( data iniezione )
AND nd.UDC IS NULL -- solo Gitterbox Nuovi
DECLARE @udc NVARCHAR(50)
DECLARE @Particolare NVARCHAR(50)
DECLARE @NumDisegno NVARCHAR(50)
DECLARE @EsponenteDisegno NVARCHAR(50)
DECLARE @IdxCellaTo INT
DECLARE @adesso DATETIME
DECLARE @posTrovate INT
SET @adesso = GETDATE()
SET @posTrovate = 0
-- indico cella UDC corrente... calcolo la prima cella della nuova posizione...
SET @IdxCellaTo = ( SELECT dbo.f_getCellaByPos(CAST(@IdxPosizione AS NVARCHAR(50))) )
DECLARE cursoreImport CURSOR FOR
SELECT DISTINCT CodGitterbox
FROM @newData
WHERE UDC IS NULL -- solo x Gitterbox Nuovi
OPEN cursoreImport
FETCH NEXT FROM cursoreImport INTO @udc
WHILE @@FETCH_STATUS = 0
BEGIN
-- controllo se posizione non ancora creata...
SET @posTrovate = ( SELECT COUNT(*) FROM PosizioneUdcCorrente WHERE UDC = @udc )
IF( @posTrovate = 0)
BEGIN
INSERT INTO PosizioneUdcCorrente(UDC, IdxCella, CodCS, DataRif, CodSoggetto)
VALUES(@udc, @IdxCellaTo, @CodCS, @adesso, @CodSoggetto)
END
FETCH NEXT FROM cursoreImport INTO @udc
END
CLOSE cursoreImport
DEALLOCATE cursoreImport
-- CARICAMENTO DATAMATRIX --
-- Carico i datamatrix se UDC/Gitterbox nuovi
INSERT INTO dbo.ElencoDataMatrix
SELECT nw.CodDataMatrix
,nw.CodGitterbox
,nw.NumConchiglia
,nw.NumDisegno
,nw.EsponenteDisegno
,nw.CodDifettoScarto
,nw.InizioPreparazione
,nw.FinePreparazione
,nw.InizioIniezione
,nw.FineIniezione
,nw.MagDestinazione
,nw.DataImport
FROM @newData AS nw
LEFT JOIN dbo.ElencoDataMatrix AS el
ON nw.CodDataMatrix = el.CodDataMatrix
WHERE el.CodDataMatrix IS NULL -- Nuovi Datamatrix
AND nw.UDC IS NULL -- Solo per Gitterbox nuovi
-- Se esistono Datamatrix di UDC già caricati in precedenza li inserisco ma senza
-- assegnare l'UDC ma lo metto a EmptyGBox perchè potrebbero essere UDC già spediti o
-- movimentati e dovrei anche aggiornare la giacenza in ElencoCartellini
INSERT INTO dbo.ElencoDataMatrix
SELECT nw.CodDataMatrix
,'EmptyGBox' AS CodGitterbox
,nw.NumConchiglia
,nw.NumDisegno
,nw.EsponenteDisegno
,nw.CodDifettoScarto
,nw.InizioPreparazione
,nw.FinePreparazione
,nw.InizioIniezione
,nw.FineIniezione
,nw.MagDestinazione
,nw.DataImport
FROM @newData AS nw
LEFT JOIN dbo.ElencoDataMatrix AS el
ON nw.CodDataMatrix = el.CodDataMatrix
WHERE el.CodDataMatrix IS NULL
AND nw.UDC IS NOT NULL
-- aggiorno dati ultimo caricamento
SET @lastImport = ISNULL( ( SELECT MAX(DataImport)FROM @newData ),@lastImport )
UPDATE LogImportFlussi
SET LastImport = @lastImport
WHERE NomeFlusso = @nomeFlusso
COMMIT TRAN;
*/
RETURN
@@ -0,0 +1,21 @@

/*****************************************
* STORED stp_DtMtx_getOrig
*
* Cerca la bolla richiesta x chiave
*
* Steamware, S.E.L.
* mod: 2011.05.19
*
****************************************/
create PROCEDURE stp_DtMtx_getOrig
(
@CodDataMatrix NVARCHAR(50)
)
AS
SELECT *
FROM v_trasfDataMatrix
WHERE CodDataMatrix = @CodDataMatrix
RETURN
@@ -0,0 +1,21 @@

/*****************************************
* STORED stp_EDM_getByCode
*
* Recupera datamatrix da codice
*
* Steamware, S.E.L.
* mod: 2011.05.05
*
****************************************/
create PROCEDURE stp_EDM_getByCode
(
@CodDataMatrix NUMERIC(23)
)
AS
SELECT *
FROM ElencoDataMatrix
WHERE CodDataMatrix = @CodDataMatrix
RETURN
@@ -0,0 +1,21 @@

/*****************************************
* STORED stp_EDM_getByGitterBox
*
* Recupera datamatrix da codice gitterbox
*
* Steamware, S.E.L.
* mod: 2011.05.06
*
****************************************/
create PROCEDURE [dbo].[stp_EDM_getByGitterBox]
(
@CodGitterbox NVARCHAR(10)
)
AS
SELECT *
FROM ElencoDataMatrix
WHERE CodGitterbox = @CodGitterbox
RETURN
@@ -0,0 +1,59 @@

/*****************************************
* STORED stp_EDM_spostaDataMtx
*
* Sposta un datamatrix in un nuovo gitterbox
*
* Steamware, S.E.L.
* mod: 2011.05.05
*
****************************************/
CREATE PROCEDURE [dbo].[stp_EDM_spostaDataMtx]
(
@CodDataMatrix NUMERIC(23),
@CodGitterbox NVARCHAR(10),
@CodSoggetto VARCHAR(17)
)
AS
DECLARE @CodEvento VARCHAR(10)
SET @CodEvento = 'SpostaDMtx'
-- salvo codice gitterbox di partenza
DECLARE @CodGitterboxFrom AS NVARCHAR(10)
SET @CodGitterboxFrom = ( SELECT CodGitterbox FROM ElencoDataMatrix WHERE CodDataMatrix = @CodDataMatrix )
UPDATE ElencoDataMatrix
SET CodGitterbox = @CodGitterbox
WHERE CodDataMatrix = @CodDataMatrix
-- aggiorno valori QTA gitterbox di partenza...
UPDATE ElencoCartellini
SET Qta = ( SELECT COUNT(*) FROM ElencoDataMatrix WHERE CodGitterbox = @CodGitterboxFrom )
,ModDate=GETDATE()
,CodEvento = @CodEvento
,CodSoggetto = @CodSoggetto
WHERE UDC = @CodGitterboxFrom
-- aggiorno valoti QTA gitterbox destinazione e modificatore...
UPDATE ElencoCartellini
SET Qta = ( SELECT COUNT(*) FROM ElencoDataMatrix WHERE CodGitterbox = @CodGitterbox )
,ModDate=GETDATE()
,CodEvento = @CodEvento
,CodSoggetto = @CodSoggetto
WHERE UDC = @CodGitterbox
-- aggiorno righe liste di prelievo...
UPDATE RigheListePrelievo
SET Qta = ( SELECT COUNT(*) FROM ElencoDataMatrix WHERE CodGitterbox = @CodGitterboxFrom )
WHERE UDC = @CodGitterboxFrom
-- aggiorno valoti QTA gitterbox destinazione...
UPDATE RigheListePrelievo
SET Qta = ( SELECT COUNT(*) FROM ElencoDataMatrix WHERE CodGitterbox = @CodGitterbox )
WHERE UDC = @CodGitterbox
-- select finale!
SELECT *
FROM ElencoDataMatrix
WHERE CodDataMatrix = @CodDataMatrix
RETURN
@@ -0,0 +1,47 @@

/*****************************************
* STORED stp_EDM_svuotaGitterbox
*
* Elimina il codice gitterbox dai datamatrix associati (svuotandolo...)
*
* Steamware, S.E.L.
* mod: 2011.05.06
*
****************************************/
CREATE PROCEDURE [dbo].[stp_EDM_svuotaGitterbox]
(
@CodGitterbox NVARCHAR(10),
@CodSoggetto VARCHAR(17)
)
AS
DECLARE @CodEvento VARCHAR(10)
SET @CodEvento = 'SvuotaGbox'
UPDATE ElencoDataMatrix
SET CodGitterbox = 'EmptyGBox'
WHERE CodGitterbox = @CodGitterbox
-- aggiorno valoti QTA gitterbox originale...
UPDATE ElencoCartellini
SET Qta = ( SELECT COUNT(*) FROM ElencoDataMatrix WHERE CodGitterbox = @CodGitterbox )
,ModDate=GETDATE()
,CodEvento = @CodEvento
,CodSoggetto = @CodSoggetto
WHERE UDC = @CodGitterbox
-- aggiorno valoti QTA gitterbox 'EmptyGBox
UPDATE ElencoCartellini
SET Qta = ( SELECT COUNT(*) FROM ElencoDataMatrix WHERE CodGitterbox = 'EmptyGBox' )
,ModDate = GETDATE()
,CodEvento = @CodEvento
,CodSoggetto = @CodSoggetto
WHERE UDC = 'EmptyGBox'
-- aggiorno righe liste di prelievo...
UPDATE RigheListePrelievo
SET Qta = ( SELECT COUNT(*) FROM ElencoDataMatrix WHERE CodGitterbox = @CodGitterbox )
WHERE UDC = @CodGitterbox
RETURN

Some files were not shown because too many files have changed in this diff Show More