Files
Samuele Locatelli 5d99b976a3 spostamento XPS_data
2017-01-31 14:34:55 +01:00

524 lines
9.9 KiB
Transact-SQL

set xact_abort on;
go
begin transaction;
go
set ANSI_NULLS on;
go
/*************************************
* STORED PROCEDURE sp_schedaIdent
* restituisce i dati x stampare 1 scheda di identificazione
*
* modif.: S.E.L.
* il: 2012.02.13
**************************************/
alter PROCEDURE sp_schedaIdent
(
@IdxObj VARCHAR(50)
)
AS
SELECT Cod AS IdxObj, CodCliente, Cliente, DDT, DataDDT AS DDT_del, DataArrivo, descrizione AS CodProdotto, DataPrevista AS ConsegnaPrevista, Peso,
CASE CodCli WHEN 'Fosf' THEN 'X' ELSE ' ' END AS FosfManganese, CASE CodCli WHEN 'Brun' THEN 'X' ELSE ' ' END AS Brunitura,
CASE CodCli WHEN 'Fosf_Tefl' THEN 'X' ELSE ' ' END AS FosfTeflon, CASE CodCli WHEN 'Sabb' THEN 'X' ELSE ' ' END AS Sabbiatura, ' ' AS F1, ' ' AS F2,
' ' AS FosfZinco, ' ' AS Teflon, ' ' AS FosfPreVern, ' ' AS PzRoto, ' ' AS Zinchlorex, ' ' AS PeekVicote, CodCli
FROM v_ULP
WHERE (Cod = @IdxObj)
RETURN
go
commit;
go
set xact_abort on;
go
begin transaction;
go
set ANSI_NULLS on;
go
/*---------------------------------------------------------
* TRIGGER controllo aggiornamento extKey
*
* - in caso di cambio extKey (ciclo lavorazione), SE è Obj master,
* aggiorna a cascata i child
---------------------------------------------------------*/
create TRIGGER trg_extKeyUpd
ON IstObj
FOR UPDATE
AS
IF UPDATE (ExtKey)
DECLARE @isMasterObj BIT
SET @isMasterObj = ( SELECT CASE WHEN SUBSTRING(IdxObj, LEN(idxobj),1) = 'D' THEN 1 ELSE 0 END FROM inserted )
-- verifico se sia un obj master (=finisce x "D")
IF(@isMasterObj = 1)
BEGIN
DECLARE @IdxObj NVARCHAR(50)
DECLARE @ExtKey NVARCHAR(50)
SELECT @IdxObj = IdxObj, @ExtKey = ExtKey FROM inserted
-- aggiorno child!
UPDATE IstObj
SET ExtKey = @ExtKey
WHERE IdxObj LIKE REPLACE(@IdxObj,'D','')+'%' AND IdxObj <> @IdxObj
END
go
commit;
go
set xact_abort on;
go
begin transaction;
go
set ANSI_NULLS on;
go
/*---------------------------------------------------------
* TRIGGER controllo aggiornamento extKey
*
* - in caso di cambio extKey (ciclo lavorazione), SE è Obj master,
* aggiorna a cascata i child
---------------------------------------------------------*/
alter TRIGGER trg_extKeyUpd
ON IstObj
FOR UPDATE
AS
IF UPDATE (ExtKey)
DECLARE @isMasterObj BIT
SET @isMasterObj = ( SELECT CASE WHEN SUBSTRING(IdxObj, LEN(idxobj),1) = 'D' THEN 1 ELSE 0 END FROM inserted )
-- verifico se sia un obj master (=finisce x "D")
IF(@isMasterObj = 1)
BEGIN
DECLARE @IdxObj NVARCHAR(50)
DECLARE @ExtKey NVARCHAR(50)
DECLARE @dataMod DATETIME
-- calcolo valori
SET @dataMod = GETDATE()
SELECT @IdxObj = IdxObj, @ExtKey = ExtKey FROM inserted
-- aggiorno child!
UPDATE IstObj
SET ExtKey = @ExtKey,
dataMod = @dataMod
WHERE IdxObj LIKE REPLACE(@IdxObj,'D','')+'%' AND IdxObj <> @IdxObj
END
go
commit;
go
set xact_abort on;
go
begin transaction;
go
alter table IstObj add
emailReq bit constraint DF_IstObj_emailReq default ((0)),
emailSent datetime;
go
RETURN
go
commit;
go
set xact_abort on;
go
begin transaction;
go
set ANSI_NULLS on;
go
/*---------------------------------------------------------
* TRIGGER controllo aggiornamento extKey
*
* - in caso di cambio extKey (ciclo lavorazione), SE è Obj master,
* aggiorna a cascata i child
---------------------------------------------------------*/
alter TRIGGER trg_extKeyUpd
ON IstObj
FOR UPDATE
AS
IF UPDATE (ExtKey)
UPDATE child
SET ExtKey = mother.ExtKey,
dataMod = mother.dataMod
FROM inserted AS mother INNER JOIN IstObj as child ON mother.IdxObj = child.IdxObjMamma
WHERE mother.IdxObjMamma IS NULL
go
commit;
go
--- update emailReq a zero x esistenti...
update IstObj
set emailReq = 0
where emailReq is null
set xact_abort on;
go
begin transaction;
go
set ANSI_NULLS on;
go
/*************************************
* STORED PROCEDURE sp_creaSetObj
* crea un set iniziale di valori da tracciare x la commessa
*
* modif.: S.E.L.
* il: 2008.10.17
**************************************/
alter PROCEDURE sp_creaSetObj
(
@IdxObj VARCHAR(50),
@CodSet VARCHAR(50),
@CodCliente VARCHAR(50),
@NumDDT VARCHAR(50),
@dataDDT as DATETIME,
@Nome VARCHAR(50),
@UserName VARCHAR(50),
@note VARCHAR(50),
@emailReq BIT
)
AS
DECLARE @livello VARCHAR(50)
DECLARE @IdxObjMamma VARCHAR(50)
DECLARE @numRow INT
DECLARE @adesso DATETIME
DECLARE @depth INT
BEGIN tran
/* creazione oggetti in qta minima */
SET @adesso = GETDATE()
SET @depth = 1
-- parto da obj top #.
SET @livello = '#.'
INSERT INTO IstObj(IdxObj, Livello,ExtKey , DataRif, Rev,CodObj, Posizione,Nome ,UserCreaz,DataCreaz,UserMod,DataMod,CodStato,Note,CodCliente,emailReq)
SELECT @IdxObj + Object2Set.CodObj AS idx, @depth, @Nome, @dataDDT, 0, Object2Set.CodObj, 1, @NumDDT AS nome,
@UserName AS userCreaz, @adesso AS Expr6, @UserName AS userMod, @adesso AS Expr8, V_statoStartFam.CodStato,@note,@CodCliente, @emailReq
FROM AnagFamStati INNER JOIN
AnagObj ON AnagFamStati.FamStato = AnagObj.FamStato INNER JOIN
Object2Set ON AnagObj.CodObj = Object2Set.CodObj INNER JOIN
V_statoStartFam ON AnagFamStati.FamStato = V_statoStartFam.FamStato
WHERE (Object2Set.Posizione = @livello)
-- salvo idx mamma...
SET @IdxObjMamma = (SELECT IdxObj FROM IstObj WHERE DataCreaz=@adesso AND Livello=@depth)
-- ora creo gli obj dei livelli successivi... aggiungo "#." al livello e conto se ce ne solo con ciclo while...
SET @livello = @livello + '#.'
SET @numRow = (SELECT count(IdxSet)
FROM Object2Set
WHERE (Posizione = @livello))
WHILE(@numRow > 0)
BEGIN
SET @depth = @depth +1
-- inserisco valori child
INSERT INTO IstObj(IdxObj, Livello, ExtKey, DataRif, Rev,CodObj, Posizione, Nome,UserCreaz,DataCreaz,UserMod,DataMod,CodStato,Note,CodCliente, IdxObjMamma, emailReq)
SELECT @IdxObj + Object2Set.CodObj +'01' AS idx, @depth, @Nome, @dataDDT, 0, Object2Set.CodObj, 1, @NumDDT ,
@UserName AS Expr5, @adesso, @UserName AS Expr7, @adesso AS Expr8, v_statoStartFam.CodStato,@note,@CodCliente, @IdxObjMamma, @emailReq
FROM AnagFamStati INNER JOIN
AnagObj ON AnagFamStati.FamStato = AnagObj.FamStato INNER JOIN
Object2Set ON AnagObj.CodObj = Object2Set.CodObj INNER JOIN
v_statoStartFam ON AnagFamStati.FamStato = v_statoStartFam.FamStato
WHERE (Object2Set.Posizione = @livello)
-- salvo idx mamma...
SET @IdxObjMamma = (SELECT IdxObj FROM IstObj WHERE DataCreaz=@adesso AND Livello=@depth)
-- aggiorno conteggio...
SET @livello = @livello + '#.'
SET @numRow = (SELECT count(IdxSet)
FROM Object2Set
WHERE (Posizione = @livello))
END
/* creazione fasi std per ogni oggetto creato */
COMMIT tran
RETURN
go
commit;
go
set xact_abort on;
go
begin transaction;
go
alter table AnagClienti add
email nvarchar(500) constraint DF_AnagClienti_email default ('');
go
update AnagClienti set email=('');
go
commit;
go
set xact_abort on;
go
begin transaction;
go
alter table IstObj drop
constraint FK_IstObj_AnagClienti ;
go
alter table AnagClienti drop
constraint DF_AnagClienti_email ;
go
exec sp_rename 'PK_AnagClienti', 'tmp__PK_AnagClienti', 'OBJECT';
go
exec sp_rename 'AnagClienti', 'tmp__AnagClienti_0', 'OBJECT';
go
create table AnagClienti(
CodCliente nvarchar(50) not null constraint PK_AnagClienti primary key,
RagioneSociale nvarchar(50),
piva nvarchar(20),
email nvarchar(500) constraint DF_AnagClienti_email default (''),
indirizzo nvarchar(50),
cap nvarchar(5),
localita nvarchar(50),
provincia nvarchar(5)
);
go
insert into AnagClienti(CodCliente,RagioneSociale,email) select CodCliente,RagioneSociale,email from tmp__AnagClienti_0;
go
drop table tmp__AnagClienti_0;
go
alter table IstObj add
constraint FK_IstObj_AnagClienti foreign key(CodCliente) references AnagClienti(CodCliente);
go
commit;
go
set xact_abort on;
go
begin transaction;
go
set ANSI_NULLS on;
go
/***************************************
* STORED stp_AnagCliUpdate
*
* aggiorna dati anagrafica clienti
*
* Steamware, S.E.L.
* mod: 2012.07.12
*
****************************************/
create PROCEDURE stp_AnagCliUpdate
(
@Original_CodCliente NVARCHAR(50),
@RagioneSociale NVARCHAR(50),
@piva NVARCHAR(20),
@email NVARCHAR(500),
@indirizzo NVARCHAR(50),
@cap NVARCHAR(5),
@localita NVARCHAR(50),
@provincia NVARCHAR(5)
)
AS
UPDATE dbo.AnagClienti
SET RagioneSociale = @RagioneSociale,
piva = @piva,
email = @email,
indirizzo = @indirizzo,
cap = @cap,
localita = @localita,
provincia = @provincia
WHERE (CodCliente = @Original_CodCliente)
RETURN
go
commit;
go
set xact_abort on
go
begin transaction
go
INSERT INTO dbo.Eventi
VALUES (N'07', N'BC', N'Invio email', N'act')
go
commit transaction
go
set xact_abort on
go
begin transaction
go
INSERT INTO dbo.TraEv2Stati
VALUES (N'E_BC', N'BC', N'05', N'07', N'*', N'07', N'sendMail', N'Invia Email')
go
commit transaction
go
set xact_abort on;
go
begin transaction;
go
set ANSI_NULLS on;
go
/***************************************
* STORED stp_AnagCliGetByKey
*
* ottiene record anagrafica clienti da chiave
*
* Steamware, S.E.L.
* mod: 2012.07.12
*
****************************************/
create PROCEDURE stp_AnagCliGetByKey
(
@CodCliente NVARCHAR(50)
)
AS
SELECT *
FROM AnagClienti
WHERE CodCliente = @CodCliente
RETURN
go
commit;
go
set xact_abort on;
go
begin transaction;
go
set ANSI_NULLS on;
go
/***************************************
* STORED stp_IstObj_updateEmailSent
*
* aggiorna email sent con data/ora correnti
*
* Steamware, S.E.L.
* mod: 2011.10.27
*
****************************************/
create PROCEDURE stp_IstObj_updateEmailSent
(
@IdxObj NVARCHAR(50)
)
AS
UPDATE IstObj
SET emailsent = GETDATE()
WHERE IdxObj = @IdxObj
RETURN
go
commit;
go
-- update email a Vuota!
update AnagClienti set email=''
where email is null
-- registro versione...
INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(150, GETDATE())
GO