Está en la página 1de 5

Gabriel Araujo Arzubialde gua 10

tigger
-- a. Cuando un empleado se registre en una Central sindical el monto de la cuota se
-- debe descontar de su sueldo
tabla empleados :

Tabla sindicatos

create trigger Descuento_Sindicato


on SINDICATO
for insert
as
declare @DNI VARCHAR(8),@Sueldo int, @DNI_emp varchar(8),@Cuota int
select @Cuota = Cuota from SINDICATO
select @DNI= DNI from EMPLEADO
select @Sueldo = Sueldo from EMPLEADO
join inserted
on inserted.DNI_EM=EMPLEADO.DNI
where EMPLEADO.DNI=inserted.DNI_EM
if (@Sueldo>=(select Cuota from inserted))
update EMPLEADO set Sueldo=Sueldo-inserted.Cuota
from EMPLEADO
join inserted
on inserted.DNI_EM=EMPLEADO.DNI
where DNI=inserted.DNI_EM
else
begin
raiserror ('El Empleado No cuenta con los recursos pra pertenecer al sindicto',16,1 )
rollback transaction
end
insertar datos :
insert into SINDICATO values
('GENERAL',300, '444504')

En caso contrario
Insertar datos
insert into SINDICATO values
('PREMIER', 1000,'444501')

-- b. Cuando se contrate a un nuevo empleado de forma temporal se debe verificar


-- que el plazo de su contrato no sea mayor a 2 aos
Tabla empleados temporales

create trigger EmpleadoNuevoContratado2


on EmplTemporal
for insert
as
declare @fechaMaxima date
declare @fechaI date
declare @fecha2 date
declare @fechaultima date
select @fechaI = ETemp.InicioContrato
-from EmplTemporal as ETemp join inserted as i
-on ETemp.DNItemporal = i.DNItemporal
select @fecha2 = i.FinContrato
from EmplTemporal as ETemp2 join inserted as i
on ETemp2.DNItemporal = i.DNItemporal

select @fechaultima = DATEADD(YEAR, 2, @fechaI)


if (@fecha2 > @fechaultima)
begin
raiserror('El tiempo de empleo en mayor a dos aos no realizo la transaccion', 16,1)
rollback transaction
end
INSERTAMOS DATOS
INSERT INTO EmplTemporal VALUES
('444501','15-08-15','15-12-15'),
('444502','15-08-15','20-01-16')

Caso contrario
INSERT INTO EmplTemporal VALUES
('444503','01-01-15','01-01-18')

-- c. Para registrar un prstamo a un empleado fijo se debe verificar que el monto

-- solicitado no exceda 3 veces su sueldo base


TABLA EMPLEADOS FIJOS

Tabla prestamos

create trigger PRESTAMOACTIVAR2


on PRESTAMO
for insert
as
declare @MONTO int, @SUELDO INT
select @MONTO= Monto from PRESTAMO
select @SUELDO= Sueldo from EMPLEADO
join inserted
on inserted.DNIempleado=EMPLEADO.DNI
where EMPLEADO.DNI=inserted.DNIempleado
if (@MONTO<=(3*(select @SUELDO from inserted)))
update EMPLEADO set Sueldo=Sueldo + inserted.Monto
FROM EMPLEADO
join inserted
on inserted.DNIempleado=EMPLEADO.DNI
where DNI=inserted.DNIempleado
ELSE begin
raiserror ('NO PUEDE REALIZARSE EL PRESTAMO POR SUELDO INSUFICIENTE', 16, 1)
rollback transaction
end
DISABLE TRIGGER PRESTAMOACTIVAR
ON prestamo;

INSERTAR DATOS:
INSERT INTO PRESTAMO VALUES
('PRES001','SALUD','PENDIENTE',1000,500,'17-11-16','444506'),
('PRES003','SALUD','PENDIENTE',9000,500,'17-11-16','444505')

Caso contrario
INSERT INTO PRESTAMO VALUES
('PRES002','SALUD','PENDIENTE',80000,500,'17-11-16','444504')

También podría gustarte