
-- =============================================
-- Author:		M.Teresa Falomí
-- Create date: Desembre 2018
-- Description:	Joc de Proves
-- =============================================


USE dbInventari;
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--En primer lloc s'ha d'executar l'scrip inicialització per netejar la base de dades 
--i insertar els primers registres.

--Cada lot de proves executa diversos procediments i llavors mostra les taules afectades.


--Alta d'un usuari incorrecte
declare @resultat varchar(500);
exec a_usugestio '','Administrador', @resultat output;
select 'Alta usuari <en_blanc>. Resultat: '+@resultat;
GO
--Alta d'un usuari existent
declare @resultat varchar(500);
exec a_usugestio 'Administrador','Administrador', @resultat output;
select 'Alta usuari existent "Administrador". Resultat: '+@resultat;
GO
--Alta d'un usuari 
declare @resultat varchar(500);
exec a_usugestio 'Prova','Prova', @resultat output;
select 'Alta usuari "Prova". Resultat: '+@resultat;
GO
--Baixa d'un usuari 
declare @resultat varchar(500);
exec b_usugestio 'Prova', @resultat output;
select 'Baixa usuari "Prova". Resultat: '+@resultat;
GO
--Baixa d'un usuari inexistent
declare @resultat varchar(500);
exec b_usugestio 'Prova', @resultat output;
select 'Baixa usuari inexistent "Prova". Resultat: '+@resultat;
GO
--Modificació d'un usuari 
declare @resultat varchar(500);
exec m_usugestio 'Administrador','Enric Oliver', @resultat output;
select 'Modificació usuari "Administrador". Resultat: '+@resultat;
GO
--Modificació d'un usuari inexistent
declare @resultat varchar(500);
exec m_usugestio 'Prova','prova', @resultat output;
select 'Modificació usuari inexistent "Prova". Resultat: '+@resultat;
GO
print 'Fi proves usugest';
--Mostra la taula UsuGestio
SELECT * FROM UsuGestio;
GO

--Alta d'una familia
declare @resultat varchar(500);
exec a_famreferencia 'Administrador','Portatil','Portatil','PR001/18',1,0,0,0,0, @resultat output;
select 'Alta familia "Portatil". Resultat: '+@resultat;
GO
--Alta d'una familia
declare @resultat varchar(500);
exec a_famreferencia 'Administrador','Prova','Prova','PV001/18',1,0,0,0,0, @resultat output;
select 'Alta familia "Prova". Resultat: '+@resultat;
GO
--Baixa d'una familia (incorrecte)
declare @resultat varchar(500);
exec b_famreferencia 'Administrador','Ordinador', @resultat output;
select 'Baixa familia "Ordinador". Resultat: '+@resultat;
GO
--Baixa d'una familia 
declare @resultat varchar(500);
exec b_famreferencia 'Administrador','Prova', @resultat output;
select 'Baixa familia "Prova". Resultat: '+@resultat;
GO
--Modificació d'una familia amb format etiqueta incorrecte
declare @resultat varchar(500);
exec m_famreferencia 'Administrador','Monitor','Monitor','xxx',1,0,0,0,0, @resultat output;
select 'Modificació familia "etiqueta xxx". Resultat: '+@resultat;
GO
--Modificació d'una familia 
declare @resultat varchar(500);
exec m_famreferencia 'Administrador','Cable','Cables cat 6','CB000/18',0,0,0,0,1, @resultat output;
select 'Modificació familia "Cable". Resultat: '+@resultat;
GO
print 'Fi proves famreferencia';
--Mostra la taula FamReferencia
SELECT * FROM FamReferencia;
GO
--Mostra la taula Auditoria
SELECT * FROM Auditoria
GO

--Alta d'un edifici
declare @resultat varchar(500);
exec a_edifici 'Administrador','Prova','','','', @resultat output;
select 'Alta edifici "Prova". Resultat: '+@resultat;
GO
--Modificació d'un edifici
declare @resultat varchar(500);
exec m_edifici 'Administrador','AJ','Ajuntament R','Plaça Figueres,8','Roda de Ter', @resultat output;
select 'Modificació edifici "AJ". Resultat: '+@resultat;
GO
--Modificació d'un edifici incorrecte
declare @resultat varchar(500);
exec m_edifici 'Administrador','XX','Ajuntament R','Plaça Figueres,8','Roda de Ter', @resultat output;
select 'Modificació edifici "XX". Resultat: '+@resultat;
GO
--Alta planta amb edifici incorrecte
declare @resultat varchar(500);
exec a_planta 'Administrador','PP','A',0, @resultat output;
select 'Alta planta "PP-A". Resultat: '+@resultat;
GO
--Alta planta 
declare @resultat varchar(500);
exec a_planta 'Administrador','AJ','D',3, @resultat output;
select 'Alta planta "AJ-D". Resultat: '+@resultat;
GO
--Baixa planta 
declare @resultat varchar(500);
exec b_planta 'Administrador','AJ','D', @resultat output;
select 'Baixa planta "AJ-D". Resultat: '+@resultat;
GO
--Modificació planta 
declare @resultat varchar(500);
exec m_planta 'Administrador','AJ','A',-1, @resultat output;
select 'Modificació planta "AJ-A". Resultat: '+@resultat;
GO
--Baixa d'un edifici per comprovar que s'eliminen les plantes automàticament
declare @resultat varchar(500);
exec a_planta 'Administrador','Prova','A',0, @resultat output;
select 'Alta planta "Prova-A". Resultat: '+@resultat;
GO
declare @resultat varchar(500);
exec b_edifici 'Administrador','Prova', @resultat output;
select 'Baixa edifici "Prova". Resultat: '+@resultat;
GO
print 'Fi proves edifici-planta';
--Mostra la taula Edifici-Planta
SELECT * FROM Edifici 
LEFT JOIN Planta ON Planta.idEdifici=Edifici.idEdifici;
GO
--Mostra la taula Planta (verifiquem que no queden registres orfes)
SELECT * FROM Planta;
GO
--Mostra la taula Auditoria
SELECT * FROM Auditoria
GO


--Alta d'una referencia
declare @resultat varchar(500);
--Com que idRef es basa en l'etiqueta de la familia, primer recollim
--aquesta dada amb la funció retorna_etiqueta
declare @etiqueta varchar(12)=dbo.retorna_etiqueta('Ordinador');
exec a_referencia 'Tecnic',@etiqueta,'125YJK5','Ordinador','Ordinador','Clonic','PK78','','Actiu','45AD4587','','',
'CA02',NULL,'','2016-11-01','','2018-11-01',1,NULL, @resultat output;
select 'Alta referencia'+@etiqueta+'. Resultat: '+@resultat;
GO
--Alta d'un ordinador
declare @resultat varchar(500);
exec a_ordinador 'Tecnic','PC003/18','i5 7400',8,500,'',1,'', @resultat output;
select 'Alta ordinador PC003/18. Resultat: '+@resultat;
GO
--Alta d'un switch
declare @resultat varchar(500);
exec a_boqswitch 'Tecnic','SW001/18','A',23,1,'RJ45', @resultat output;
select 'Alta boqswtich PC003/18. Resultat: '+@resultat;
GO
--Alta d'una referencia de familia incorrecte
declare @resultat varchar(500);
--Com que idRef es basa en l'etiqueta de la familia, primer recollim
--aquesta dada amb la funció retorna_etiqueta
declare @etiqueta varchar(12)=dbo.retorna_etiqueta('Ordinador');
exec a_referencia 'Tecnic',@etiqueta,'125YJK5','xx','Ordinador','Clonic','PK78','','Actiu','45AD4587','','',
'CA02',NULL,'','2016-11-01','','2018-11-01',1,NULL, @resultat output;
select 'Alta referencia'+@etiqueta+'. Resultat: '+@resultat;
GO
--Modificació d'una referencia
declare @resultat varchar(500);
exec m_referencia 'Tecnic','PC004/18','256NKL5','Ordinador','Ordinador','Clonic','PK78','','Actiu','65AD4587','','',
'CA02',NULL,'','2016-11-01','','2018-11-01',1,NULL, @resultat output;
select 'Modificació referencia PC004/18. Resultat: '+@resultat;
GO
--Modificació d'un ordinador
declare @resultat varchar(500);
exec m_ordinador 'Tecnic','PC003/18','i5 7400',8,500,'',1,'DVD RW', @resultat output;
select 'Modificació ordinador PC003/18. Resultat: '+@resultat;
GO
--Modificació d'un switch inexistent
declare @resultat varchar(500);
exec m_boqswitch 'Tecnic','SW001/18','A',22,0,'RJ45', @resultat output;
select 'Modificació boqswtich SW001/18. Resultat: '+@resultat;
GO
--Modificació d'un switch
declare @resultat varchar(500);
exec m_boqswitch 'Tecnic','SW001/18','A',23,0,'RJ45', @resultat output;
select 'Modificació boqswtich SW001/18. Resultat: '+@resultat;
GO
print 'Fi proves referencia-ordinador-switch';
--Mostra la taula Referencia
SELECT * FROM Referencia r
LEFT JOIN Ordinador ON Ordinador.idRef=r.idRef
LEFT JOIN BoqSwitch ON BoqSwitch.idRef=r.idRef
GO
--Mostra la taula FamReferencia (verifiquem que s'ha actualitzat el camp etiqueta)
SELECT * FROM FamReferencia
GO
--Mostra la taula Auditoria
SELECT * FROM Auditoria
GO


--Alta d'una entrada de material
declare @resultat varchar(500);
exec a_entmat 'Administratiu','2016-06-04','A3425','F3425','2016-06-04','E20168569','2016-06-04','Icono', @resultat output;
select 'Alta Entrada 3. Resultat: '+@resultat;
GO
--Alta d'una linia de material no fungible
declare @resultat varchar(500);
exec a_linentmat 'Administratiu',3,'PC002/18',1,526,'Factura',12,'2017-06-04', @resultat output;
select 'Alta linia entrada 3-PC002/18. Resultat: '+@resultat;
GO
--Alta d'una linia de material fungible
declare @resultat varchar(500);
exec a_linentmat 'Administratiu',3,'CB001/18',5,10,'Factura',12,'2017-06-04', @resultat output;
select 'Alta linia entrada 3-CB001/18. Resultat: '+@resultat;
GO
--Modificació d'una linia de material
declare @resultat varchar(500);
--recollim el número de linia per poder modificar
declare @linia int=(select idLinEntMat from linentmat where comLinMat=3 and idRef='PC002/18');
exec m_linentmat 'Administratiu',@linia,3,'PC002/18','1',514,'Factura',12,'2017-06-04', @resultat output;
select 'Modificació linia entrada 3-PC002/18. Resultat: '+@resultat;
GO
--Modificació d'una entrada de material
declare @resultat varchar(500);
exec m_entmat 'Administratiu',3,'2016-06-04','A3425','F-3425','2016-06-04','E20168569','2016-06-04','Icono', @resultat output;
select 'Modificació Entrada 3. Resultat: '+@resultat;
GO
--Baixa d'una entrada de material (verificar que elimina entrada i linies)
declare @resultat varchar(500);
exec b_entmat 'Administratiu',1, @resultat output;
select 'Baixa Entrada 1. Resultat: '+@resultat;
GO
print 'Fi proves entrada de material';
--Mostra la taula Entrada de Material (EntMaterial i LinEntMat)
SELECT * FROM EntMaterial
LEFT JOIN LinEntMat ON comLinMat=idEntMat
GO
--Mostra la taula Referencia (verifiquem que actualitza les dades d'entrada)
SELECT * FROM Referencia
GO
--Mostra la taula Auditoria
SELECT * FROM Auditoria
GO


--Alta d'un usuari
declare @resultat varchar(500);
exec a_usuari 'Tecnic','torresrl','Laia','Torres Reyes','33569745L','2018-01-02','2018-06-02','Actiu','Arquitecte','',NULL,NULL,'TM','ST',NULL, @resultat output;
select 'Alta Usuari torresrl. Resultat: '+@resultat;
GO
--Alta d'un usuari incorrecte
declare @resultat varchar(500);
exec a_usuari 'Tecnic','prova','','','','','','Actiu','','',NULL,NULL,'TM','AJ',NULL, @resultat output;
select 'Alta Usuari prova. Resultat: '+@resultat;
GO
--Modificació d'un usuari 
declare @resultat varchar(500);
exec m_usuari 'Tecnic','masci','Irene','Mas Castro','33658745K','2011-05-06',NULL,'Excedencia','Cap de TIC','',NULL,NULL,'PL','TIC',NULL, @resultat output;
select 'Modificació Usuari masci. Resultat: '+@resultat;
GO
--Baixa d'un usuari incorrecte
declare @resultat varchar(500);
exec b_usuari 'Tecnic','torresrl','2017-01-02', @resultat output;
select 'Baixa Usuari torresrl. Resultat: '+@resultat;
GO
--Baixa d'un usuari
declare @resultat varchar(500);
exec b_usuari 'Tecnic','torresrl','2019-01-02', @resultat output;
select 'Baixa Usuari torresrl. Resultat: '+@resultat;
GO
print 'Fi Usuari-HistUsuari';
--Mostra la taula Usuari
SELECT * FROM Usuari
GO
--Mostra la taula HistUsu
SELECT * FROM HistUsu
GO
--Mostra la taula Auditoria
SELECT * FROM Auditoria
GO
