828 lines
24 KiB
Transact-SQL
828 lines
24 KiB
Transact-SQL
set xact_abort on
|
|
go
|
|
|
|
begin transaction
|
|
go
|
|
|
|
create index i_dataFus on ElencoCartellini(DataFus)
|
|
go
|
|
|
|
create index i_IdxPosizione on ElencoCartellini(IdxPosizione)
|
|
go
|
|
|
|
commit
|
|
go
|
|
|
|
set xact_abort on
|
|
go
|
|
|
|
begin transaction
|
|
go
|
|
|
|
set ANSI_NULLS on
|
|
go
|
|
|
|
/***************************************
|
|
* 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
|
|
*
|
|
****************************************/
|
|
alter PROCEDURE 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
|
|
go
|
|
|
|
commit
|
|
go
|
|
|
|
|
|
set xact_abort on
|
|
go
|
|
|
|
begin transaction
|
|
go
|
|
|
|
set ANSI_NULLS on
|
|
go
|
|
|
|
/***************************************
|
|
* STORED stp_UDC_delibera
|
|
*
|
|
* fa la delibera dell'UDC andando a processare la state machien e quindi eventualmente cambiando la sua posizione
|
|
*
|
|
* Steamware, S.E.L.
|
|
* mod: 2010.09.13
|
|
*
|
|
************************************/
|
|
alter PROCEDURE stp_UDC_delibera
|
|
(
|
|
@CodTipoDelibera NVARCHAR(50),
|
|
@UDC NVARCHAR(50),
|
|
@CodSoggetto NVARCHAR(17),
|
|
@CodCS VARCHAR(2)
|
|
)
|
|
|
|
AS
|
|
|
|
BEGIN TRAN
|
|
DECLARE @IdxPosizioneTo AS INT
|
|
DECLARE @IdxPosizioneFrom AS INT
|
|
DECLARE @IdxPosizionePre AS NVARCHAR(50)
|
|
DECLARE @IdxCellaPre AS INT
|
|
DECLARE @IdxCellaTo AS INT
|
|
|
|
-- ricavo cella ATTUALE
|
|
SET @IdxCellaPre = (SELECT IdxCella FROM PosizioneUdcCorrente WHERE UDC = @UDC)
|
|
|
|
-- ricavo posizione ATTUALE
|
|
SET @IdxPosizionePre = (SELECT TOP 1 b.CodMag FROM Celle c INNER JOIN Blocchi b ON c.IdxBlocco=b.IdxBlocco WHERE c.IdxCella = @IdxCellaPre)
|
|
|
|
|
|
-- registro delibera
|
|
INSERT INTO DELIBERE
|
|
VALUES (@CodTipoDelibera, @UDC, GETDATE(), @CodSoggetto)
|
|
|
|
-- ricavo nuova posizione
|
|
SET @IdxPosizioneTo = (SELECT tt.IdxPosizioneTo
|
|
FROM TabTranPosizEventi tt INNER JOIN AnagTipoDelibere atd ON tt.CodEvento = atd.CodEvento
|
|
WHERE (atd.CodTipoDelibera = @CodTipoDelibera))
|
|
|
|
-- ricavo posizione TEORICA VECCHIA
|
|
SET @IdxPosizioneFrom = (SELECT tt.IdxPosizione
|
|
FROM TabTranPosizEventi tt INNER JOIN AnagTipoDelibere atd ON tt.CodEvento = atd.CodEvento
|
|
WHERE (atd.CodTipoDelibera = @CodTipoDelibera))
|
|
|
|
-- calcolo la prima cella della nuova posizione...
|
|
SET @IdxCellaTo = (
|
|
SELECT TOP 1 IdxCella FROM Celle
|
|
WHERE IdxBlocco = (
|
|
SELECT IdxBlocco FROM Blocchi
|
|
WHERE CodMag=CAST(@IdxPosizioneTo AS NVARCHAR(50)))
|
|
)
|
|
|
|
-- faccio update posizione
|
|
UPDATE ElencoCartellini
|
|
SET IdxPosizione = @IdxPosizioneTo
|
|
WHERE UDC = @UDC
|
|
|
|
-- controllo posizioni act e from teorica: SE e SOLO SE corrispondono faccio spostamento...
|
|
IF(CAST(@IdxPosizioneFrom AS NVARCHAR(50)) = @IdxPosizionePre)
|
|
BEGIN
|
|
-- ora cambio anche la posizione corrente dell'UDC (e tramite trigger storicizza...)
|
|
EXEC stp_spostaUdc @CodCS, @UDC, @IdxCellaTo
|
|
END
|
|
|
|
COMMIT TRAN
|
|
|
|
|
|
RETURN
|
|
go
|
|
|
|
/***************************************
|
|
* STORED stp_UDC_getByFlussoDate
|
|
*
|
|
* elenco cartellini creati su una data bilancia in un periodo ti tempo indicato
|
|
*
|
|
* Steamware, S.E.L.
|
|
* mod: 2010.10.13
|
|
*
|
|
****************************************/
|
|
create PROCEDURE stp_UDC_getByFlussoDate
|
|
(
|
|
|
|
@CodCS NVARCHAR(2),
|
|
@Flusso NVARCHAR(2),
|
|
@DataFrom DATETIME,
|
|
@DataTo DATETIME
|
|
)
|
|
AS
|
|
|
|
SELECT *
|
|
FROM ElencoCartellini
|
|
WHERE (UDC LIKE 'U' + @CodCS + @Flusso + '%')
|
|
AND (DataFus >= @DataFrom) AND (DataFus <= @DataTo)
|
|
ORDER BY UDC DESC
|
|
|
|
RETURN
|
|
go
|
|
|
|
/***************************************
|
|
* STORED stp_UDC_getLast_ByDataTurnoLineaParticolare
|
|
*
|
|
* elenco cartellini ULTIMI creati su una data bilancia dati data, turno, linea e particolare
|
|
*
|
|
* Steamware, S.E.L.
|
|
* mod: 2010.10.13
|
|
*
|
|
****************************************/
|
|
create PROCEDURE stp_UDC_getLast_ByDataTurnoLineaParticolare
|
|
(
|
|
@CodCS VARCHAR(2),
|
|
@Particolare VARCHAR(15),
|
|
@CodImpianto AS VARCHAR(50),
|
|
@DataFus DATETIME,
|
|
@TurnoFus INT
|
|
)
|
|
AS
|
|
|
|
-- carico l'elenco dei dati "attivi" x il filtraggio richiesto
|
|
WITH cte_contAttivi AS(
|
|
SELECT CodCS, Particolare, Esponente, CodImpianto,CodStampo, Figura, DataFus, TurnoFus, MAX(NumCont) AS NumCont
|
|
FROM ElencoCartellini
|
|
GROUP BY CodCS, Particolare, Esponente, CodImpianto, CodStampo, Figura, DataFus, TurnoFus
|
|
HAVING (CodImpianto = @CodImpianto) AND (DataFus = @DataFus) AND (TurnoFus= @TurnoFus) AND (Particolare= @Particolare) AND CodCS = @CodCS
|
|
)
|
|
|
|
-- traduco in tab estesa UDC
|
|
SELECT ec.* FROM ElencoCartellini ec INNER JOIN cte_contAttivi ca
|
|
ON ec.Particolare = ca.Particolare AND ec.Esponente=ca.Esponente AND ec.CodImpianto=ca.CodImpianto
|
|
AND ec.CodStampo=ca.CodStampo AND ec.Figura=ca.Figura AND ec.DataFus=ca.DataFus AND ec.TurnoFus=ca.TurnoFus
|
|
AND ec.NumCont=ca.NumCont AND ec.CodCS=ca.CodCS
|
|
|
|
RETURN
|
|
go
|
|
|
|
commit
|
|
go
|
|
|
|
set xact_abort on
|
|
go
|
|
|
|
begin transaction
|
|
go
|
|
|
|
INSERT INTO dbo.TabTranPosizEventi
|
|
VALUES (N'MagPreFus', 84, 84)
|
|
go
|
|
|
|
commit transaction
|
|
go
|
|
|
|
|
|
|
|
drop table AS400_BatchMovimenti
|
|
go
|
|
|
|
|
|
|
|
|
|
|
|
|
|
set xact_abort on
|
|
go
|
|
|
|
begin transaction
|
|
go
|
|
|
|
create table AS400_BatchMovimenti(
|
|
IdxBatch int not null identity constraint PK_AS400_BatchMovimenti primary key,
|
|
DataIns datetime not null,
|
|
CodEvento nvarchar(10) not null,
|
|
Particolare nvarchar(15) not null,
|
|
UDC nvarchar(50) not null,
|
|
CodMagAS nvarchar(50) not null,
|
|
Quantita decimal(10,2) not null,
|
|
DataBatch datetime,
|
|
DataVerifica datetime
|
|
)
|
|
go
|
|
|
|
alter table AS400_BatchMovimenti add
|
|
constraint FK_AS400_BatchMovimenti_AS400_MagCont foreign key(CodMagAS) references AS400_MagCont(CodMagAS) on update cascade,
|
|
constraint FK_AS400_BatchMovimenti_AnagTipoEvento foreign key(CodEvento) references AnagTipoEvento(CodEvento) on update cascade
|
|
go
|
|
|
|
exec sp_addextendedproperty 'MS_Description', 'dataora inserimento in coda caricamento', 'SCHEMA', 'dbo', 'TABLE', 'AS400_BatchMovimenti', 'COLUMN', 'DataIns'
|
|
go
|
|
|
|
exec sp_addextendedproperty 'MS_Description', 'NON MODIFICARE: nel codice si usano questi campi x chiamate...', 'SCHEMA', 'dbo', 'TABLE', 'AS400_BatchMovimenti', 'COLUMN', 'CodEvento'
|
|
go
|
|
|
|
exec sp_addextendedproperty 'MS_Description', 'dataora di caricamento batch verso AS', 'SCHEMA', 'dbo', 'TABLE', 'AS400_BatchMovimenti', 'COLUMN', 'DataBatch'
|
|
go
|
|
|
|
exec sp_addextendedproperty 'MS_Description', N'dataora in cui è stato verificato il caricamento su AS', 'SCHEMA', 'dbo', 'TABLE', 'AS400_BatchMovimenti', 'COLUMN', 'DataVerifica'
|
|
go
|
|
|
|
commit
|
|
go
|
|
|
|
|
|
|
|
|
|
|
|
|
|
drop table RigheListePrelievo_AS
|
|
go
|
|
|
|
|
|
|
|
create table RigheListePrelievo_AS(
|
|
IdxRiga int not null identity constraint PK_RigheListePrelievo_AS primary key,
|
|
CodLista nvarchar(12) not null,
|
|
UDC nvarchar(50) not null,
|
|
Qta decimal(10,2) not null,
|
|
Proposto bit,
|
|
Prelevato bit
|
|
)
|
|
go
|
|
|
|
|
|
drop table ElencoListePrelievo_AS
|
|
go
|
|
|
|
|
|
set xact_abort on
|
|
go
|
|
|
|
begin transaction
|
|
go
|
|
|
|
create table ElencoListePrelievo_AS(
|
|
CodLista nvarchar(12) not null constraint PK_ElencoListePrelievo_AS primary key,
|
|
CodTipoLista nvarchar(10) not null,
|
|
CodCS nchar(2) not null,
|
|
DataCreaz datetime not null,
|
|
CodCliente nvarchar(6),
|
|
RagSociale nvarchar(35),
|
|
CodSoggetto nchar(17) not null,
|
|
Particolare nvarchar(15) not null,
|
|
DescParticolare nvarchar(30),
|
|
DisegnoGrezzo nvarchar(30),
|
|
Esponente nvarchar(6),
|
|
Figura nvarchar(4),
|
|
CodImballo nvarchar(15),
|
|
QtaTot decimal(10,2) not null,
|
|
CodStatoLista int not null constraint DF_ElencoListePrelievo_AS_CodStatoLista default (1),
|
|
Destinatario nvarchar(50),
|
|
DataBatch datetime,
|
|
DataVerifica datetime
|
|
)
|
|
go
|
|
|
|
exec sp_addextendedproperty 'MS_Description', 'dataora di caricamento batch verso AS', 'SCHEMA', 'dbo', 'TABLE', 'ElencoListePrelievo_AS', 'COLUMN', 'DataBatch'
|
|
go
|
|
|
|
exec sp_addextendedproperty 'MS_Description', N'dataora in cui è stato verificato il caricamento su AS', 'SCHEMA', 'dbo', 'TABLE', 'ElencoListePrelievo_AS', 'COLUMN', 'DataVerifica'
|
|
go
|
|
|
|
commit
|
|
go
|
|
|
|
|
|
set xact_abort on
|
|
go
|
|
|
|
begin transaction
|
|
go
|
|
|
|
set ANSI_NULLS on
|
|
go
|
|
|
|
create VIEW v_datiPackingList
|
|
AS
|
|
SELECT dbo.RigheListePrelievo_AS.IdxRiga, dbo.ElencoCartellini.UDC, dbo.ElencoListePrelievo_AS.Particolare, dbo.ElencoCartellini.CodImballo,
|
|
CAST(RIGHT(dbo.RigheListePrelievo_AS.UDC, 6) AS INT) AS matrUdc, CASE WHEN (dbo.ElencoListePrelievo_AS.CodTipoLista = '03-TerWip')
|
|
THEN 'FO' ELSE 'CL' END AS tipo, dbo.ElencoListePrelievo_AS.Destinatario, dbo.ElencoCartellini.Qta,
|
|
dbo.ElencoCartellini.PesoTot - dbo.ElencoCartellini.Tara AS PesoNetto, dbo.ElencoCartellini.PesoTot, 'B' AS Stato, GETDATE() AS data,
|
|
dbo.ElencoListePrelievo_AS.DataBatch
|
|
FROM dbo.ElencoListePrelievo_AS INNER JOIN
|
|
dbo.RigheListePrelievo_AS ON dbo.ElencoListePrelievo_AS.CodLista = dbo.RigheListePrelievo_AS.CodLista INNER JOIN
|
|
dbo.ElencoCartellini ON dbo.RigheListePrelievo_AS.UDC = dbo.ElencoCartellini.UDC
|
|
WHERE (dbo.ElencoListePrelievo_AS.DataBatch IS NULL)
|
|
go
|
|
|
|
exec sp_addextendedproperty 'MS_DiagramPane1', '[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
|
|
Begin DesignProperties =
|
|
Begin PaneConfigurations =
|
|
Begin PaneConfiguration = 0
|
|
NumPanes = 4
|
|
Configuration = "(H (1[40] 4[20] 2[20] 3) )"
|
|
End
|
|
Begin PaneConfiguration = 1
|
|
NumPanes = 3
|
|
Configuration = "(H (1 [50] 4 [25] 3))"
|
|
End
|
|
Begin PaneConfiguration = 2
|
|
NumPanes = 3
|
|
Configuration = "(H (1 [50] 2 [25] 3))"
|
|
End
|
|
Begin PaneConfiguration = 3
|
|
NumPanes = 3
|
|
Configuration = "(H (4 [30] 2 [40] 3))"
|
|
End
|
|
Begin PaneConfiguration = 4
|
|
NumPanes = 2
|
|
Configuration = "(H (1 [56] 3))"
|
|
End
|
|
Begin PaneConfiguration = 5
|
|
NumPanes = 2
|
|
Configuration = "(H (2 [66] 3))"
|
|
End
|
|
Begin PaneConfiguration = 6
|
|
NumPanes = 2
|
|
Configuration = "(H (4 [50] 3))"
|
|
End
|
|
Begin PaneConfiguration = 7
|
|
NumPanes = 1
|
|
Configuration = "(V (3))"
|
|
End
|
|
Begin PaneConfiguration = 8
|
|
NumPanes = 3
|
|
Configuration = "(H (1[56] 4[18] 2) )"
|
|
End
|
|
Begin PaneConfiguration = 9
|
|
NumPanes = 2
|
|
Configuration = "(H (1 [75] 4))"
|
|
End
|
|
Begin PaneConfiguration = 10
|
|
NumPanes = 2
|
|
Configuration = "(H (1[66] 2) )"
|
|
End
|
|
Begin PaneConfiguration = 11
|
|
NumPanes = 2
|
|
Configuration = "(H (4 [60] 2))"
|
|
End
|
|
Begin PaneConfiguration = 12
|
|
NumPanes = 1
|
|
Configuration = "(H (1) )"
|
|
End
|
|
Begin PaneConfiguration = 13
|
|
NumPanes = 1
|
|
Configuration = "(V (4))"
|
|
End
|
|
Begin PaneConfiguration = 14
|
|
NumPanes = 1
|
|
Configuration = "(V (2))"
|
|
End
|
|
ActivePaneConfig = 0
|
|
End
|
|
Begin DiagramPane =
|
|
Begin Origin =
|
|
Top = 0
|
|
Left = 0
|
|
End
|
|
Begin Tables =
|
|
Begin Table = "ElencoCartellini"
|
|
Begin Extent =
|
|
Top = 14
|
|
Left = 658
|
|
Bottom = 376
|
|
Right = 828
|
|
End
|
|
DisplayFlags = 280
|
|
TopColumn = 0
|
|
End
|
|
Begin Table = "ElencoListePrelievo_AS"
|
|
Begin Extent =
|
|
Top = 6
|
|
Left = 38
|
|
Bottom = 367
|
|
Right = 208
|
|
End
|
|
DisplayFlags = 280
|
|
TopColumn = 0
|
|
End
|
|
Begin Table = "RigheListePrelievo_AS"
|
|
Begin Extent =
|
|
Top = 5
|
|
Left = 353
|
|
Bottom = 200
|
|
Right = 523
|
|
End
|
|
DisplayFlags = 280
|
|
TopColumn = 0
|
|
End
|
|
End
|
|
End
|
|
Begin SQLPane =
|
|
End
|
|
Begin DataPane =
|
|
Begin ParameterDefaults = ""
|
|
End
|
|
Begin ColumnWidths = 14
|
|
Width = 284
|
|
Width = 1500
|
|
Width = 1500
|
|
Width = 1500
|
|
Width = 1500
|
|
Width = 1500
|
|
Width = 1500
|
|
Width = 1500
|
|
Width = 1500
|
|
Width = 1500
|
|
Width = 1500
|
|
Width = 1500
|
|
Width = 1500
|
|
Width = 1500
|
|
End
|
|
End
|
|
Begin CriteriaPane =
|
|
Begin ColumnWidths = 11
|
|
Column = 1440
|
|
Alias = 900
|
|
Table = 1170
|
|
Output = 720
|
|
Append = 1400
|
|
NewValue = 1170
|
|
SortType = 1350
|
|
SortOrder = 1410
|
|
GroupBy = 1350
|
|
Filter = 1350
|
|
Or = 1350
|
|
Or = 1350
|
|
Or = 1350
|
|
End
|
|
End
|
|
End
|
|
', 'SCHEMA', 'dbo', 'VIEW', 'v_datiPackingList'
|
|
go
|
|
|
|
exec sp_addextendedproperty 'MS_DiagramPaneCount', 1, 'SCHEMA', 'dbo', 'VIEW', 'v_datiPackingList'
|
|
go
|
|
|
|
commit
|
|
go
|
|
|
|
|
|
set xact_abort on
|
|
go
|
|
|
|
begin transaction
|
|
go
|
|
|
|
set ANSI_NULLS on
|
|
go
|
|
|
|
/***************************************
|
|
* STORED stp_consumaMP
|
|
*
|
|
* Salva il movimento di consumo dell'UDC di MP indicato
|
|
*
|
|
* Steamware, S.E.L.
|
|
* mod: 2010.10.12
|
|
*
|
|
****************************************/
|
|
alter PROCEDURE BatchQueue.stp_consumaMP
|
|
(
|
|
@XRPQLN INT, --è il num rap qualità
|
|
@XNRETI NVARCHAR(10), -- è il numUdc prog
|
|
@XDTPRO INT, -- data 8 cifre aaaammgg
|
|
@XTRPRO NVARCHAR(5), -- turno
|
|
@XDESMT NVARCHAR(3), -- destinatario int/terzista
|
|
@XCDTER NVARCHAR(6) -- cod terzista
|
|
)
|
|
AS
|
|
-- BOZZA DA VERIFICARE E COMPLETARE A CURA MAZZUCCONI!!!
|
|
|
|
DECLARE @SQL AS NVARCHAR(1000)
|
|
|
|
-- Faccio chiamata su AS400
|
|
|
|
SET @SQL = N' OPENQUERY( P65220DC, ''UPDATE MAZZT_DTV3.XOGIX00F'
|
|
SET @SQL = @SQL + 'SET XDTPRO = ' + CAST(@XDTPRO AS NVARCHAR(8)) + ', XTRPRO = ' + @XTRPRO
|
|
SET @SQL = @SQL + ', XDESMT = ''' + @XDESMT +''', XMATSC=''S'' , XCDTER = ''' + @XCDTER + ''' '
|
|
SET @SQL = @SQL + 'WHERE XRPQLN =' + CAST(@XRPQLN AS NVARCHAR(20)) + ' AND XNRETI = ' + @XNRETI + ''' )'
|
|
|
|
EXEC dbo.sp_executesql @SQL
|
|
|
|
RETURN
|
|
go
|
|
|
|
commit
|
|
go
|
|
|
|
|
|
set xact_abort on
|
|
go
|
|
|
|
begin transaction
|
|
go
|
|
|
|
set ANSI_NULLS on
|
|
go
|
|
|
|
/*stp_processaCodaMovimMag
|
|
* STORED stp_processaCodaConsumoMP
|
|
*
|
|
* Processa la coda dei movimenti di magazzino e chiama procedura x salvataggio dato su AS400
|
|
*
|
|
* Steamware, S.E.L.
|
|
* mod: 2010.10.15
|
|
*
|
|
****************************************/
|
|
create PROCEDURE BatchQueue.stp_processaCodaMovimMag
|
|
AS
|
|
-- BOZZA DA VERIFICARE E COMPLETARE A CURA MAZZUCCONI!!!
|
|
|
|
-- campi x cursore e valorizzazione riga a riga
|
|
DECLARE @IdxRiga INT
|
|
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)
|
|
-- variabile x composizioen query
|
|
DECLARE @SqlCode NVARCHAR(1000)
|
|
-- faccio una query con un cursore x processare tutte le righe da inviare ad AS400..
|
|
DECLARE RigaPackList CURSOR FOR
|
|
SELECT IdxRiga FROM v_datiPackingList
|
|
|
|
-- setto il codice stabilimento da inviare ad AS... VERIFICARE!!!
|
|
SET @CodStab = '05'
|
|
|
|
-- inizio cursore!
|
|
OPEN RigaPackList
|
|
FETCH NEXT FROM RigaPackList
|
|
INTO @IdxRiga
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
-- controllo ci sia la riga
|
|
IF (SELECT COUNT(IdxRiga) FROM v_datiPackingList WHERE IdxRiga = @IdxRiga) > 0
|
|
BEGIN
|
|
-- carico valori che mi servono
|
|
SELECT @Particolare=pl.Particolare, @UDC=UDC, @CodImb=pl.CodImballo, @Matr = pl.matrUdc, @Tipo=pl.tipo, @Dest=pl.Destinatario,
|
|
@Qta=ABS(pl.Qta), @PesoNet=pl.PesoNetto, @PesoLor=pl.PesoTot, @Stato=pl.Stato, @Data=dbo.dateToAsFormat(pl.data)
|
|
FROM v_datiPackingList pl
|
|
WHERE IdxRiga = @IdxRiga
|
|
|
|
-- compongo testo x exec
|
|
SET @SqlCode = N'EXEC BatchQueue.stp_registraPackList ' + @CodStab + ' ' + @UDC + ' ' + @Particolare + ' ' + @CodImb + ' ' + CAST(@Matr AS NVARCHAR(8)) + ' ' + @Tipo + ' ' + @Dest + ' ' + CAST(@Qta AS NVARCHAR(8)) + ' ' + CAST(@PesoNet AS NVARCHAR(8)) + ' ' + CAST(@PesoLor AS NVARCHAR(8)) + ' ' + @Stato + ' ' + @Data
|
|
-- lo mostro
|
|
print '%' + LTRIM(RTRIM(@SqlCode)) + '%'
|
|
|
|
-- !!! TESTARE !!!
|
|
/*
|
|
-- chiamo la stored ed eseguo invio
|
|
EXEC dbo.sp_executesql @SqlCode -- decommentare se va bene...
|
|
|
|
-- registro la data del movimento BATCH
|
|
UPDATE AS400_BatchMovimenti SET DataBatch = GETDATE() WHERE IdxRiga = @IdxRiga
|
|
*/
|
|
|
|
FETCH NEXT FROM RigaPackList INTO @IdxRiga
|
|
END
|
|
END
|
|
CLOSE RigaPackList
|
|
DEALLOCATE RigaPackList
|
|
|
|
|
|
RETURN
|
|
go
|
|
|
|
/***************************************
|
|
* 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 INT, -- quantità movimento
|
|
@DAMOV NVARCHAR(8), -- data 8 cifre aaaammgg
|
|
@RIFFO NVARCHAR(8) -- cod UDC compresso
|
|
)
|
|
AS
|
|
-- BOZZA DA VERIFICARE E COMPLETARE A CURA MAZZUCCONI!!!
|
|
|
|
DECLARE @SQL AS NVARCHAR(1000)
|
|
|
|
-- Faccio chiamata su AS400
|
|
SET @SQL = N' OPENQUERY( P65220DC, ''INSERT INTO MAZZT_DTV3.MWMV200F VALUES '
|
|
SET @SQL = @SQL + @NOMUS + ', ' + @CDCAU + ', ' + @CDPAR + ', ' + @CDMAG + ', '
|
|
SET @SQL = @SQL + CAST(@QTMOV AS NVARCHAR(8)) + ', ' + @DAMOV + ', ' + @RIFFO + ''' )'
|
|
|
|
EXEC dbo.sp_executesql @SQL
|
|
|
|
RETURN
|
|
go
|
|
|
|
/***************************************
|
|
* 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à
|
|
@PLPNET NUMERIC(7, 3), -- peso netto
|
|
@PLPLOR NUMERIC(7, 3), -- peso lordo
|
|
@PLSTAT CHAR(1), -- stato "P" predisposto per packing list, "B" bolla stampata
|
|
@PLDTEN INT -- data entrata merce, data di carico dell'UDC 8 cifre aaaammgg
|
|
)
|
|
AS
|
|
-- BOZZA DA VERIFICARE E COMPLETARE A CURA MAZZUCCONI!!!
|
|
|
|
DECLARE @SQL AS NVARCHAR(1000)
|
|
|
|
-- Faccio chiamata su AS400
|
|
SET @SQL = N' OPENQUERY( P65220DC, ''INSERT INTO MAZZT_DTV3.PACKL00F VALUES '
|
|
SET @SQL = @SQL + @PLREPA + ', ' + @PLCART + ', ' + @PLARTI + ', ' + @PLCONT + ', '
|
|
SET @SQL = @SQL + CAST(@PLMATR AS NVARCHAR(5)) + ', ' + @PLTPAN + ', ' + @PLCDAN + ', ' + CAST(@PLQTA AS NVARCHAR(10)) + ', '
|
|
SET @SQL = @SQL + CAST(@PLPNET AS NVARCHAR(10)) + ', ' + CAST(@PLPLOR AS NVARCHAR(10)) + ', ' + @PLSTAT + ', '
|
|
SET @SQL = @SQL + CAST(@PLDTEN AS NVARCHAR(8)) + ''' )'
|
|
|
|
EXEC dbo.sp_executesql @SQL
|
|
|
|
RETURN
|
|
go
|
|
|
|
commit
|
|
go
|
|
|
|
|
|
set xact_abort on
|
|
go
|
|
|
|
begin transaction
|
|
go
|
|
|
|
set ANSI_NULLS on
|
|
go
|
|
|
|
/***************************************
|
|
* STORED stp_ParticolariOverview
|
|
*
|
|
* restituisce solo la riga con il num max di celle DI UN DATO magazzino
|
|
*
|
|
* Steamware, S.E.L.
|
|
* mod: 2010.06.02
|
|
*
|
|
****************************************/
|
|
alter PROCEDURE stp_magazzinoOverviewByMag_maxCelle
|
|
(
|
|
@CodCS VARCHAR(2),
|
|
@CodMag VARCHAR(50)
|
|
)
|
|
AS
|
|
|
|
|
|
WITH cte_celle AS(
|
|
SELECT b.CodBlocco, c.IdxTipoCella, COUNT(c.IdxCella) * t.Capienza AS numCelle
|
|
FROM Celle AS c INNER JOIN
|
|
Blocchi AS b ON c.IdxBlocco = b.IdxBlocco INNER JOIN
|
|
TipoCella AS t ON c.IdxTipoCella = t.IdxTipoCella
|
|
WHERE (b.CodCS = @CodCS) AND (b.CodMag = @CodMag)
|
|
GROUP BY b.CodBlocco, c.IdxTipoCella, t.Capienza
|
|
)
|
|
|
|
|
|
SELECT TOP (1) AnagMag.CodCS, AnagMag.CodMag, AnagMag.DescMag, b.IdxBlocco, b.CodBlocco,
|
|
ISNULL(c.numCelle,ISNULL(b.NumX * b.NumY * b.NumZ,1)) AS TotCelle,
|
|
0 AS CelleAttive, 0 AS CelleOccupate, 0 AS CelleLibere, GETDATE() AS Oldest, GETDATE() AS Newest
|
|
FROM AnagMag INNER JOIN Blocchi b ON AnagMag.CodMag = b.CodMag AND AnagMag.CodCS = b.CodCS INNER JOIN cte_celle c ON c.CodBlocco = b.CodBlocco
|
|
WHERE (AnagMag.CodCS = @CodCS) AND AnagMag.CodMag = @CodMag
|
|
ORDER BY TotCelle DESC
|
|
RETURN
|
|
go
|
|
|
|
/***************************************
|
|
* STORED stp_ParticolariOverview
|
|
*
|
|
* restituisce solo la riga con il num max di celle
|
|
*
|
|
* Steamware, S.E.L.
|
|
* mod: 2010.06.02
|
|
*
|
|
****************************************/
|
|
alter PROCEDURE stp_magazzinoOverview_maxCelle
|
|
(
|
|
@CodCS VARCHAR(2)
|
|
)
|
|
AS
|
|
|
|
WITH cte_celle AS(
|
|
SELECT b.CodBlocco, c.IdxTipoCella, COUNT(c.IdxCella) * t.Capienza AS numCelle
|
|
FROM Celle AS c INNER JOIN
|
|
Blocchi AS b ON c.IdxBlocco = b.IdxBlocco INNER JOIN
|
|
TipoCella AS t ON c.IdxTipoCella = t.IdxTipoCella
|
|
WHERE (b.CodCS = @CodCS)
|
|
GROUP BY b.CodBlocco, c.IdxTipoCella, t.Capienza
|
|
)
|
|
|
|
|
|
SELECT TOP (1) AnagMag.CodCS, AnagMag.CodMag, AnagMag.DescMag, b.IdxBlocco, b.CodBlocco,
|
|
ISNULL(c.numCelle,ISNULL(b.NumX * b.NumY * b.NumZ,1)) AS TotCelle,
|
|
0 AS CelleAttive, 0 AS CelleOccupate, 0 AS CelleLibere, GETDATE() AS Oldest, GETDATE() AS Newest
|
|
FROM AnagMag INNER JOIN Blocchi b ON AnagMag.CodMag = b.CodMag AND AnagMag.CodCS = b.CodCS INNER JOIN cte_celle c ON c.CodBlocco = b.CodBlocco
|
|
WHERE (AnagMag.CodCS = @CodCS)
|
|
ORDER BY TotCelle DESC
|
|
|
|
RETURN
|
|
go
|
|
|
|
commit
|
|
go
|
|
|
|
|
|
|
|
|
|
-- registro versione...
|
|
INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(285, GETDATE())
|
|
GO
|