269 lines
6.9 KiB
Transact-SQL
269 lines
6.9 KiB
Transact-SQL
create table AS400_BatchConsumoMP(
|
|
ProgUDC char(10) not null constraint PK_AS400_BatchPrelievoMP primary key,
|
|
UDC nvarchar(50) not null,
|
|
DataPrelFus numeric(8,0) not null,
|
|
TurnoPrelFus char(5) not null,
|
|
DestLega char(3),
|
|
DestTerz char(6),
|
|
DataInvioAs datetime
|
|
)
|
|
go
|
|
|
|
|
|
|
|
set xact_abort on
|
|
go
|
|
|
|
begin transaction
|
|
go
|
|
|
|
set ANSI_NULLS on
|
|
go
|
|
|
|
-- =============================================
|
|
-- Author: Samuele E. Locatelli
|
|
-- Create date: 2009-09-20
|
|
-- Description: trigger x inserimento movimenti
|
|
-- nella coda di trasferimento batch
|
|
-- verso AS400 x UPDATE UDC
|
|
-- =============================================
|
|
alter TRIGGER trg_updMovAS
|
|
ON ElencoCartellini
|
|
AFTER UPDATE
|
|
AS
|
|
BEGIN
|
|
|
|
-- setup variabili e verbosità
|
|
SET NOCOUNT ON;
|
|
DECLARE @partOk AS BIT
|
|
DECLARE @IdxPosFrom AS INT
|
|
DECLARE @IdxPosTo AS INT
|
|
DECLARE @magFrom AS NVARCHAR(50)
|
|
DECLARE @magTo AS NVARCHAR(50)
|
|
DECLARE @qta AS DECIMAL(10,2)
|
|
DECLARE @qtaOld AS DECIMAL(10,2)
|
|
|
|
-- controllo che CI SIA il particolare (altrimenti non eseguo)
|
|
SET @partOk = (SELECT CASE WHEN ISNULL(Particolare,'n.d.') = 'n.d.' THEN 0 ELSE 1 END FROM deleted)
|
|
|
|
IF(@partOk = 1)
|
|
SET @qta = (SELECT Qta FROM inserted)
|
|
SET @qtaOld = (SELECT Qta FROM deleted)
|
|
-- se c'è stata modifica di quantità inizio a rettificare quella
|
|
IF (UPDATE(Qta)) AND(@qta <> @qtaOld)
|
|
BEGIN
|
|
INSERT INTO AS400_BatchMovimenti(DataIns, CodEvento, Particolare, UDC, CodMagAS, Quantita)
|
|
(
|
|
SELECT GETDATE(), 'UDC_MOD', Particolare, UDC, CAST(IdxPosizione AS NVARCHAR(50)), @qta-Qta
|
|
FROM deleted
|
|
WHERE CAST(IdxPosizione AS NVARCHAR(50)) IN (SELECT CodMagAS FROM AS400_MagCont WHERE Attivo = 1)
|
|
)
|
|
END
|
|
|
|
-- controllo poi se sia cambiato il magazzino, altrimenti non lo inserisco
|
|
IF UPDATE(IdxPosizione)
|
|
BEGIN
|
|
-- Prendo le posizioni di magazzino precedente e nuova
|
|
SET @IdxPosFrom = (SELECT IdxPosizione FROM deleted)
|
|
SET @IdxPosTo = (SELECT IdxPosizione FROM inserted)
|
|
-- Le trasformo nelle equivalenti stringhe del codMag SE attive
|
|
SET @magFrom = (SELECT ISNULL(CodMagAS,'---') FROM AS400_MagCont WHERE Attivo = 1 AND CodMagAs = CAST(@IdxPosFrom AS NVARCHAR(50)))
|
|
SET @magTo = (SELECT ISNULL(CodMagAS,'---') FROM AS400_MagCont WHERE Attivo = 1 AND CodMagAs = CAST(@IdxPosTo AS NVARCHAR(50)))
|
|
|
|
-- inserisco un movimento di deposito verso mag nuovo (SE attivo)
|
|
IF (@magFrom <> '---')
|
|
BEGIN
|
|
INSERT INTO AS400_BatchMovimenti(DataIns, CodEvento, Particolare, UDC, CodMagAS, Quantita)
|
|
(
|
|
SELECT GETDATE(), 'UDC_MOV', Particolare, UDC, CAST(IdxPosizione AS NVARCHAR(50)), -@qta
|
|
FROM deleted
|
|
WHERE CAST(IdxPosizione AS NVARCHAR(50)) IN (SELECT CodMagAS FROM AS400_MagCont WHERE Attivo = 1)
|
|
)
|
|
END
|
|
-- inserisco un movimento di prelievo verso mag vecchio (SE attivo)
|
|
IF (@magTo <> '---')
|
|
BEGIN
|
|
INSERT INTO AS400_BatchMovimenti(DataIns, CodEvento, Particolare, UDC, CodMagAS, Quantita)
|
|
(
|
|
SELECT GETDATE(), 'UDC_MOV', Particolare, UDC, CAST(IdxPosizione AS NVARCHAR(50)), @qta
|
|
FROM inserted
|
|
WHERE CAST(IdxPosizione AS NVARCHAR(50)) IN (SELECT CodMagAS FROM AS400_MagCont WHERE Attivo = 1)
|
|
)
|
|
END
|
|
END
|
|
|
|
END
|
|
go
|
|
|
|
commit
|
|
go
|
|
|
|
|
|
create index i_update on As400.t_CQNOC98L(NumDocRNC,TipoInterv,CodArticolo,MatrPezzo)
|
|
go
|
|
|
|
set xact_abort on
|
|
go
|
|
|
|
begin transaction
|
|
go
|
|
|
|
create index i_update on As400.t_MOMA200F(NumSessione,NumMovimento)
|
|
go
|
|
|
|
create index i_update on As400.t_MWMV200F(NomeUtente,CodCausale,CodParticolare,CodMagazzino,QtaMovimento,DataMovimento)
|
|
go
|
|
|
|
create index i_update on As400.t_PACKL00F(CodStabilimento,ProgUDC,CodParticolare,CodContenitore,MatrContenitore)
|
|
go
|
|
|
|
alter table As400.t_XOGIX00F add
|
|
XRPQLN numeric(6,0) not null constraint DFX_03434E4C default(0),
|
|
XRPQLD numeric(8,0) not null constraint DFX_03452060 default(0),
|
|
XNRETI char(10) not null constraint DFX_03434DA4 default(''),
|
|
XCDFOR char(6) not null constraint DFX_03463944 default(''),
|
|
XCDTER char(6) not null constraint DFX_03460E6C default(''),
|
|
XCDPAR char(15) not null constraint DFX_0345A2BC default(''),
|
|
XDTPRO numeric(8,0) not null constraint DFX_0345CC28 default(0),
|
|
XTRPRO char(5) not null constraint DFX_03434DDC default(''),
|
|
XQTPRO numeric(5,0) not null constraint DFX_034583E0 default(0),
|
|
XDESMT char(3) not null constraint DFX_037522B8 default(''),
|
|
XMATSC char(1) not null constraint DFX_03453C08 default(''),
|
|
XBENQL char(1) not null constraint DFX_03E1D3BC default('')
|
|
go
|
|
|
|
alter table As400.t_XOGIX00F drop
|
|
column nRapQual,
|
|
column DataRapQual,
|
|
column ProgUDC,
|
|
column CodFor,
|
|
column DestTerz,
|
|
column CodLega,
|
|
column DataPrelFus,
|
|
column TurnoPrelFus,
|
|
column Qta,
|
|
column DestLega,
|
|
column LegaScaric,
|
|
column BenesQual
|
|
go
|
|
|
|
create index i_update on As400.t_XOGIX00F(XRPQLN,XRPQLD,XNRETI)
|
|
go
|
|
|
|
alter table As400.t_XOGIX00F drop
|
|
constraint DFX_03E1D3BC,
|
|
constraint DFX_03453C08,
|
|
constraint DFX_037522B8,
|
|
constraint DFX_034583E0,
|
|
constraint DFX_03434DDC,
|
|
constraint DFX_0345CC28,
|
|
constraint DFX_0345A2BC,
|
|
constraint DFX_03460E6C,
|
|
constraint DFX_03463944,
|
|
constraint DFX_03434DA4,
|
|
constraint DFX_03452060,
|
|
constraint DFX_03434E4C
|
|
go
|
|
|
|
commit
|
|
go
|
|
|
|
|
|
set xact_abort on
|
|
go
|
|
|
|
begin transaction
|
|
go
|
|
|
|
set ANSI_NULLS on
|
|
go
|
|
|
|
/***************************************
|
|
* STORED stp_accodaConsumoUdcMP
|
|
*
|
|
* Accoda alla tab Batch il consumo di un UDC
|
|
*
|
|
* Steamware, S.E.L.
|
|
* mod: 2010.10.10
|
|
*
|
|
****************************************/
|
|
create PROCEDURE stp_accodaConsumoUdcMP
|
|
(
|
|
@UDC NVARCHAR(50),
|
|
@DataPrelFus DATETIME,
|
|
@TurnoPrelFus CHAR(5),
|
|
@DestLega CHAR(3),
|
|
@DestTerz CHAR(3)
|
|
|
|
)
|
|
AS
|
|
|
|
BEGIN TRAN
|
|
|
|
-- registro movimento da riconciliare
|
|
INSERT INTO AS400_BatchConsumoMP(ProgUDC, UDC, DataPrelFus, TurnoPrelFus, DestLega, DestTerz)
|
|
SELECT ProgUdc, UDC, dbo.dateToAsFormat(@DataPrelFus), @TurnoPrelFus, @DestLega, @DestTerz FROM RilPro.RapQual WHERE UDC = @UDC
|
|
|
|
-- aggiorno con data e turno di prelievo su tab RilPro (locale)
|
|
UPDATE RilPro.RapQual
|
|
SET DataPrelFus = dbo.dateToAsFormat(@DataPrelFus), TurnoPrelFus = @TurnoPrelFus
|
|
WHERE UDC = @UDC
|
|
|
|
COMMIT TRAN
|
|
|
|
RETURN
|
|
go
|
|
|
|
commit
|
|
go
|
|
|
|
|
|
set xact_abort on
|
|
go
|
|
|
|
begin transaction
|
|
go
|
|
|
|
set ANSI_NULLS on
|
|
go
|
|
|
|
/***************************************
|
|
* STORED stp_rappQualConsumabili
|
|
*
|
|
* Ottiene l'elenco dei record di rapp qualità (e quindi degli UDC) di AS non ancora consumati per range di data di approvazione
|
|
*
|
|
* Steamware, S.E.L.
|
|
* mod: 2010.10.05
|
|
*
|
|
****************************************/
|
|
alter PROCEDURE stp_rappQualConsumabili
|
|
(
|
|
@dataFrom DATETIME,
|
|
@dataTo DATETIME
|
|
)
|
|
|
|
AS
|
|
-- restituisce le righe richieste
|
|
SELECT *
|
|
FROM RilPro.RapQual
|
|
WHERE ((DataPrelFus IS NULL) OR (DataPrelFus = 0)) AND -- condizione sul NON aver fatto ancora il prelievo
|
|
((DataRapQual > dbo.dateToAsFormat(@dataFrom)) AND (DataRapQual < dbo.dateToAsFormat(@dataTo))) -- cond data RQ
|
|
AND (ISNULL(UDC,'') <>'') -- non nullo UDC, quindi stampati...
|
|
|
|
RETURN
|
|
go
|
|
|
|
commit
|
|
go
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- registro versione...
|
|
INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(276, GETDATE())
|
|
GO
|