Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,155 @@
|
||||
USE [Facial]
|
||||
GO
|
||||
/****** Object: Trigger [dbo].[regentradas_insert] Script Date: 4/1/2023 9:33:47 AM ******/
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
ALTER TRIGGER [dbo].[regentradas_insert]
|
||||
ON [dbo].[CHECKINOUT]
|
||||
AFTER INSERT,UPDATE
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @emp INT,@nombre varchar(100),@htrabajadas DATETIME,@hextras_35 decimal(12,2),@hextras_100 decimal(12,2),@numnomi INT,@fecha DATETIME,@tipoReg VARCHAR(1),@tipoemp VARCHAR(1),
|
||||
@h_entrada time(7),@h_salida time(7),@fechaferiada DATE,@dia int,@mes int,@chfechaferiada VARCHAR(10),
|
||||
@fechaEntrada DATETIME,@departamento INT,@puesto INT,@nivel INT,
|
||||
@fechaInicioPeriodo date, @fechaFinPeriodo date
|
||||
SET NOCOUNT ON;
|
||||
|
||||
SELECT @emp=a.num_emp,@nombre=RTRIM(a.nom1_emp)+' '+a.apell1_emp,@fecha=b.CHECKTIME,@tipoReg=b.CHECKTYPE,@tipoemp=a.nomina ,@departamento=a.departamento,@puesto=a.cod_puesto,@nivel=a.nivel_emp
|
||||
from marmotech.dbo.adtb00003 a,inserted b where a.cuenta_out = b.USERID
|
||||
SELECT @numnomi=MIN(a.num_nomi) FROM marmotech.dbo.notb00010 a WHERE a.fecha_cierre_nomina > @fecha and tipo_emp = @tipoemp
|
||||
|
||||
IF EXISTS(SELECT b.num_emp FROM marmotech.dbo.adtb00054 a,marmotech.dbo.adtb00055 b WHERE a.id_hora = b.id_horario and b.num_emp=@emp)
|
||||
BEGIN
|
||||
IF @tipoReg ='O'
|
||||
BEGIN
|
||||
SELECT @mes=month(@fecha)
|
||||
SELECT @dia=day(@fecha)
|
||||
|
||||
/* CALCULO DIAS FERIADOS */
|
||||
IF EXISTS(SELECT a.dias FROM marmotech.dbo.notb00012 a WHERE a.cod_mes = @mes and a.dias = @dia)
|
||||
BEGIN
|
||||
SELECT @fechaferiada=@fecha
|
||||
END
|
||||
SELECT 'FECHA FERIADA '+CAST(@fechaferiada AS VARCHAR)
|
||||
/*============================================================== */
|
||||
/*---------------------------------------------------------------------------- */
|
||||
/* ACTUALIZA LA TABLA NOVEDADES DE NOMINA */
|
||||
/* LOS CODIGOS DE MOVIMIENTOS 2 ES PARA HORAS EXTRAS AL 35% Y EL 3 PARA LAS HORAS EXTRAS AL 1005 */
|
||||
IF @fechaferiada IS NULL
|
||||
/* SI ES DIA NO FERIADO */
|
||||
BEGIN
|
||||
|
||||
SELECT @h_entrada=a.entrada,@h_salida=a.salida FROM marmotech.dbo.adtb00054 a,marmotech.dbo.adtb00055 b WHERE a.id_hora = b.id_horario and b.num_emp=@emp
|
||||
|
||||
SELECT ' H SALIDA '+CAST(@h_salida AS CHAR)+' HORA 35% '+CAST(convert(time(7),@fecha) AS CHAR)
|
||||
/*------------------------------------------------------------------------------------------------------------------------------------------ */
|
||||
IF @h_salida < convert(time(7),@fecha)
|
||||
BEGIN
|
||||
SELECT @fechaEntrada=convert(char(10),a.checktime,101)+' '+ convert(char(5),@h_salida) from inserted a
|
||||
SELECT @hextras_35=DATEDIFF(hour,@fechaEntrada,a.CHECKTIME ) from inserted a
|
||||
IF EXISTS(SELECT TOP 1 a.num_emp FROM marmotech.dbo.notb00007 a WHERE a.num_nomi = @numnomi AND a.num_Emp = @emp AND a.cod_mov = 2)
|
||||
BEGIN
|
||||
UPDATE marmotech.dbo.notb00007 set cantidad = cantidad + @hextras_35,us_mod = 'TRIGGER',fech_mod = getdate()
|
||||
WHERE num_nomi = @numnomi AND num_emp = @emp and cod_mov = 2
|
||||
END
|
||||
ELSE
|
||||
IF @hextras_35 > 0
|
||||
BEGIN
|
||||
INSERT INTO marmotech.dbo.notb00007 (num_nomi,tipo_emp,cod_mov,num_emp,departamento,cod_puesto,nivel_emp,cantidad,valor,us_crea,fech_crea)
|
||||
VALUES (@numnomi,@tipoemp,2,@emp,@departamento,@puesto,@nivel,@hextras_35,0,'TRIGGER',getdate())
|
||||
END
|
||||
END
|
||||
END /* TERMINA NO DIA FERIADO */
|
||||
/*----------------------------------------------------------------------------------------------------------------------------------------------------- */
|
||||
|
||||
ELSE
|
||||
BEGIN /* DIA FERIADO */
|
||||
SELECT @h_entrada=a.entrada,@h_salida=a.salida FROM marmotech.dbo.adtb00054 a,marmotech.dbo.adtb00055 b WHERE a.id_hora = b.id_horario and b.num_emp=@emp
|
||||
IF @h_salida < convert(time(7),@fecha)
|
||||
BEGIN
|
||||
|
||||
SELECT @fechaEntrada=convert(char(10),a.checktime,101)+' '+ convert(char(5),@h_salida) from inserted a
|
||||
SELECT @hextras_100=DATEDIFF(hour,@fechaEntrada,a.CHECKTIME ) from inserted a
|
||||
|
||||
SELECT 'H SALIDA '+CAST(@h_salida AS VARCHAR)+' TRAB H 100 '+CAST(convert(time(7),@fecha) AS CHAR)+' EMP '+cast(@emp as varchar)+' '+CAST(@numnomi AS VARCHAR)
|
||||
|
||||
IF EXISTS(SELECT TOP 1 a.num_emp FROM marmotech.dbo.notb00007 a WHERE a.num_nomi = @numnomi AND a.num_Emp = @emp AND a.cod_mov = 3)
|
||||
BEGIN
|
||||
UPDATE marmotech.dbo.notb00007 set cantidad = cantidad + @hextras_100,us_mod = 'TRIGGER',fech_mod = getdate()
|
||||
WHERE num_nomi = @numnomi AND num_emp = @emp and cod_mov = 3
|
||||
END
|
||||
ELSE
|
||||
IF @hextras_100 > 0
|
||||
BEGIN
|
||||
INSERT INTO marmotech.dbo.notb00007 (num_nomi,tipo_emp,cod_mov,num_emp,departamento,cod_puesto,nivel_emp,cantidad,valor,us_crea,fech_crea)
|
||||
VALUES (@numnomi,@tipoemp,3,@emp,@departamento,@puesto,@nivel,@hextras_100,0,'TRIGGER',getdate())
|
||||
END
|
||||
END /* TERMINA DIA FERIADO */
|
||||
END /* TERMINA TIPO REGISTRO */
|
||||
END /* SI TIENE HORARIO */
|
||||
END
|
||||
/* INSERTA LA DATA EN LA BASE DE DATOS DEL SITEMA DE NOMINAS */
|
||||
IF NOT EXISTS (SELECT TOP 1 a.LOGID FROM marmotech.dbo.CHECKINOUT a,inserted b where a.LOGID = b.LOGID)
|
||||
BEGIN
|
||||
INSERT INTO marmotech.[dbo].[CHECKINOUT]
|
||||
([USERID]
|
||||
,[CHECKTIME]
|
||||
,[CHECKTYPE]
|
||||
,[VERIFYCODE]
|
||||
,[SENSORID]
|
||||
,[LOGID]
|
||||
,[MachineId]
|
||||
,[UserExtFmt]
|
||||
,[WorkCode]
|
||||
,[Memoinfo]
|
||||
,[sn]
|
||||
,[num_emp]
|
||||
,[nombre_empleado]
|
||||
,h_trabajadas
|
||||
,h_extras35
|
||||
,h_extras100
|
||||
,num_nomi
|
||||
)
|
||||
SELECT
|
||||
USERID
|
||||
,CHECKTIME
|
||||
,CHECKTYPE
|
||||
,VERIFYCODE
|
||||
,SENSORID
|
||||
,LOGID
|
||||
,MachineId
|
||||
,UserExtFmt
|
||||
,WorkCode
|
||||
,Memoinfo
|
||||
,sn
|
||||
,@emp
|
||||
,@nombre
|
||||
,@htrabajadas
|
||||
,@hextras_35
|
||||
,@hextras_100
|
||||
,@numnomi
|
||||
FROM inserted
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
WITH checke as (select * from marmotech.dbo.checkinout)
|
||||
UPDATE X
|
||||
SET [USERID] = x1.USERID
|
||||
,[CHECKTIME] = x1.CHECKTIME
|
||||
,[CHECKTYPE] = x1.CHECKTYPE
|
||||
,[VERIFYCODE] = x1.VERIFYCODE
|
||||
,[SENSORID] = x1.SENSORID
|
||||
,[MachineId] = x1.MachineId
|
||||
,[UserExtFmt] = x1.UserExtFmt
|
||||
,[WorkCode] = x1.WorkCode
|
||||
,[Memoinfo] = x1.Memoinfo
|
||||
,[sn] = x1.sn
|
||||
,num_emp = @emp
|
||||
,nombre_empleado = @nombre
|
||||
from checke as x
|
||||
INNER JOIN checkinout x1 ON x1.logid = x.logid
|
||||
END
|
||||
END
|
||||
|
||||
Reference in New Issue
Block a user