Files
Samuele E. Locatelli bdd7b413e8 Riaggiunto GMW_data
2016-11-22 17:58:00 +01:00

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