Files
GMW/GMW_data/SqlScripts/V1.1/GMW_00276.sql
T
Samuele E. Locatelli bdd7b413e8 Riaggiunto GMW_data
2016-11-22 17:58:00 +01:00

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