SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_RodSelHorariosDiasDin]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[usp_RodSelHorariosDiasDin]          
 @WhereCondition nvarchar(500),          
 @OrderByExpression nvarchar(250) = NULL          
AS          
SET NOCOUNT ON          
SET TRANSACTION ISOLATION LEVEL READ COMMITTED          
          
DECLARE @SQL nvarchar(3250)          
          
SET @SQL = ''          
SELECT          
 [HorarioDiaID],          
 [HoraInicio] as [Hora Inicio],          
 [HoraFinal] as [Hora Final],          
 [HoraInicioRefrigerio] as [Refrigerio Hora inicio],          
 [HoraFinalRefrigerio] as [Refrigerio Hora Final],          
 [DiaDeSemana],          
 [HorasDiarias] as [Horas Diarias],          
 [MinutosDiarios] as [Minutos Diarios],          
 [GrupoHorarioID],           
 CASE DiaDeSemana WHEN 1 THEN ''''Lunes''''          
      WHEN 2 THEN ''''Martes''''          
      WHEN 3 THEN ''''Miércoles''''          
      WHEN 4 THEN ''''Jueves''''          
      WHEN 5 THEN ''''Viernes''''          
      WHEN 6 THEN ''''Sábado''''          
      WHEN 7 THEN ''''Domingo'''' END AS Dia,    
 [Nocturno]    
FROM          
 [dbo].[HorariosDia]          
WHERE          
 '' + @WhereCondition          
          
IF @OrderByExpression IS NOT NULL AND LEN(@OrderByExpression) > 0          
BEGIN          
 SET @SQL = @SQL + ''          
ORDER BY          
 '' + @OrderByExpression          
END          
          
EXEC sp_executesql @SQL       

' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_RodSelHorariosDiasReporte]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[usp_RodSelHorariosDiasReporte]      
@Seleccion varchar(500)      
AS      
      
SET NOCOUNT ON      
SET TRANSACTION ISOLATION LEVEL READ COMMITTED      
      
DECLARE @SQL nvarchar(3250)      
      
SET @SQL = ''      
SELECT  
  HD.HorarioDiaID,      
  HD.HoraInicio,      
  HD.HoraFinal,       
  HD.HoraInicioRefrigerio,      
  HD.HoraFinalRefrigerio,      
  CASE DiaDeSemana WHEN 1 THEN ''''Lunes''''          
  WHEN 2 THEN ''''Martes''''          
  WHEN 3 THEN ''''Miércoles''''          
  WHEN 4 THEN ''''Jueves''''          
  WHEN 5 THEN ''''Viernes''''          
  WHEN 6 THEN ''''Sábado''''          
  WHEN 7 THEN ''''Domingo'''' END AS Dia,      
  HD.HorasDiarias,      
  HD.MinutosDiarios,      
  GH.Nombre,      
  GH.GrupoHorarioID,  
  GH.Estado  
FROM  
  HorariosDia HD      
  inner join GruposHorarios GH       
  on GH.GrupoHorarioID = HD.GrupoHorarioID      
WHERE  
  GH.GrupoHorarioID in ('' + @Seleccion + '')      
  order by GH.GrupoHorarioID, DiaDeSemana''      
      
      
EXEC sp_executesql @SQL      

' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_RodSelAsistenciaReporte]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[usp_RodSelAsistenciaReporte]  
@Seleccion varchar(500)            
AS  
SET NOCOUNT ON            
SET TRANSACTION ISOLATION LEVEL READ COMMITTED            
            
DECLARE @SQL nvarchar(4000)            
SET DATEFIRST 1  
SET @SQL = ''     
SELECT                
	LTRIM(RTRIM(T.ApellidoPaterno)) + '''' '''' + LTRIM(RTRIM(T.ApellidoMaterno)) + '''', '''' + LTRIM(RTRIM(T.NombreTrabajador)) AS ''''Nombre Trabajador'''',  
	TI.HoraIngreso,    
	TI.horaSalida,    
	TI.HorarioGrupoHoraIngreso AS [Hora Ingreso Asignado],    
	TI.HorarioGrupoHoraSalida AS [Hora Salida Asignada],    
	dbo.FN_MINUTOS_A_HORA(TI.MinutosReales) AS [Horas Reales],    
	dbo.FN_MINUTOS_A_HORA(TI.MinutosProgramados) AS [Horas Programadas],    
	dbo.FN_MINUTOS_A_HORA(TI.MinutosReales-TI.MinutosProgramados) AS [Diferencia de Horas],  
	dbo.FN_MINUTOS_A_HORA(TI.MinutosRemunerados) AS [Horas Remuneradas],  
	dbo.FN_MINUTOS_A_HORA(TI.MinutosExtra) AS [Horas Extra],    
	dbo.FN_MINUTOS_A_HORA(TI.MinutosNocturnos) AS [Horas Nocturnas],    
	CASE  
	WHEN DATEPART(day,TI.HorarioGrupoHoraIngreso)!=DATEPART(day,TI.HorarioGrupoHoraSalida) THEN ''''Dia Nocturno''''  
	ELSE ''''Dia Normal''''  
	END AS [Dias],  
	CASE  
	WHEN (DATEDIFF(minute,TI.HoraIngreso,TI.HorarioGrupoHoraIngreso))>20 THEN ''''Ingreso Antes''''  
	WHEN (DATEDIFF(minute,TI.Horaingreso,TI.HorarioGrupoHoraIngreso)+GH.Tolerancia)<0 THEN ''''Tardanza''''  
	WHEN HoraIngreso IS NULL THEN ''''Falta''''  
	END AS [Observacion]  
FROM           
	TrabajadorIngresos AS TI INNER JOIN            
	Trabajadores AS T ON TI.TrabajadorID = T.TrabajadorId INNER JOIN            
	GruposHorarios AS GH ON TI.GrupoHorarioID = GH.GrupoHorarioID INNER JOIN            
	HorariosDia AS HD ON GH.GrupoHorarioID = HD.GrupoHorarioID AND TI.Dias = HD.DiaDeSemana   
WHERE
('' + @Seleccion + '')
UNION  
  
SELECT                
	LTRIM(RTRIM(T.ApellidoPaterno)) + '''' '''' + LTRIM(RTRIM(T.ApellidoMaterno)) + '''', '''' + LTRIM(RTRIM(T.NombreTrabajador)) AS ''''Nombre Trabajador'''',  
	TI.HoraIngreso,    
	TI.horaSalida,    
	TI.HorarioGrupoHoraIngreso AS [Hora Ingreso Asignado],    
	TI.HorarioGrupoHoraSalida AS [Hora Salida Asignada],    
	dbo.FN_MINUTOS_A_HORA(TI.MinutosReales) AS [Horas Reales],    
	dbo.FN_MINUTOS_A_HORA(TI.MinutosProgramados) AS [Horas Programadas],    
	dbo.FN_MINUTOS_A_HORA(TI.MinutosReales-TI.MinutosProgramados) AS [Diferencia de Horas],  
	dbo.FN_MINUTOS_A_HORA(TI.MinutosRemunerados) AS [Horas Remuneradas],  
	dbo.FN_MINUTOS_A_HORA(TI.MinutosExtra) AS [Horas Extra],    
	dbo.FN_MINUTOS_A_HORA(TI.MinutosNocturnos) AS [Horas Nocturnas],    
	CASE  
	WHEN DATEPART(day,TI.HorarioGrupoHoraIngreso)!=DATEPART(day,TI.HorarioGrupoHoraSalida) THEN ''''Dia Nocturno''''  
	ELSE ''''Dia Normal''''  
	END AS [Dias],  
	CASE  
	WHEN (DATEDIFF(minute,TI.HoraIngreso,TI.HorarioGrupoHoraIngreso))>20 THEN ''''Ingreso Antes''''  
	WHEN (DATEDIFF(minute,TI.Horaingreso,TI.HorarioGrupoHoraIngreso)+GH.Tolerancia)<0 THEN ''''Tardanza''''  
	WHEN HoraIngreso IS NULL THEN ''''Falta''''  
	END AS [Observacion]  
FROM           
	TrabajadorFaltas AS TI inner JOIN            
	Trabajadores AS T ON TI.TrabajadorID = T.TrabajadorId INNER  JOIN            
	GruposHorarios AS GH ON TI.GrupoHorarioID = GH.GrupoHorarioID LEFT JOIN            
	HorariosDia AS HD ON GH.GrupoHorarioID = HD.GrupoHorarioID AND TI.Dias = HD.DiaDeSemana   

ORDER BY
	''''Hora Ingreso Asignado''''
ASC
''
            
EXEC sp_executesql @SQL  

' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_RodBuscarGrupoHorarioenTrabajadorIngreso]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'
CREATE PROCEDURE [dbo].[usp_RodBuscarGrupoHorarioenTrabajadorIngreso]    
@GrupoHorarioId int    
AS    
SELECT         
  distinct(grupohorarioid)    
FROM        
     dbo.TrabajadorIngresos  
where GrupoHorarioId = @GrupoHorarioId ' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_RodSelAutorizacionesporArea]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[usp_RodSelAutorizacionesporArea]  
 @WhereCondition nvarchar(500)  
AS  
  
SET NOCOUNT ON  
SET TRANSACTION ISOLATION LEVEL READ COMMITTED  
  
DECLARE @SQL nvarchar(3250)  
  
SET @SQL = ''  
  
SELECT   
  AR.NombreArea ,  
  COUNT(*) AS NumAut  
FROM  
  Trabajadores T INNER JOIN   
  TrabajadorIngresos TI ON T.TrabajadorId=TI.TrabajadorId INNER JOIN  
  Autorizaciones A ON TI.TrabajadorIngresoID=A.TrabajadorIngresoID INNER JOIN  
  Areas AR ON T.AreaID=AR.AreaID  
WHERE  
  '' + @WhereCondition  
  
SET @SQL = @SQL + ''  
GROUP BY AR.NombreArea  
''  
EXEC sp_executesql @SQL  
  
' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_RodSelTotalHoras]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[usp_RodSelTotalHoras]    
@WhereCondition nvarchar(500)  
AS  
DECLARE @SQL nvarchar(3250)    
    
SET @SQL = ''    
SELECT       
  T.Codigo,      
  (LTRIM(RTRIM(T.ApellidoPaterno))+ '''' ''''+RTRIM(LTRIM(T.ApellidoMaterno))+ '''' '''' +RTRIM(LTRIM(T.NombreTrabajador))) AS NombreCompleto,      
  T.NumeroDocumentoIdentidad,  
  A.NombreArea,  
  dbo.FN_MINUTOS_A_HORA(SUM(MinutosProgramados))AS [Horas Programadas],  
  dbo.FN_MINUTOS_A_HORA(SUM(MinutosReales)) AS [Horas Trabajadas],  
  dbo.FN_MINUTOS_A_HORA(SUM(MinutosExtra)) AS [Horas Extra],  
  dbo.FN_MINUTOS_A_HORA(SUM(MinutosNocturnos)) AS [Horas Nocturnas],
  dbo.FN_MINUTOS_A_HORA(SUM(TI.MinutosRemunerados)) AS [Horas Remuneradas]
FROM       
  dbo.Trabajadores T INNER JOIN      
  dbo.TrabajadorIngresos TI ON T.TrabajadorID = TI.TrabajadorID INNER JOIN  
  dbo.Areas A ON T.AreaID = A.AreaID  
WHERE            
 '' + @WhereCondition            
    
SET @SQL = @SQL + ''  
GROUP BY     
  T.Codigo,  
  T.TrabajadorId,  
  T.ApellidoPaterno,  
  T.ApellidoMaterno,  
  T.NombreTrabajador,  
  T.NumeroDocumentoIdentidad,  
  A.NombreArea  
''    
EXEC sp_executesql @SQL    
    
  
' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_PerSelTrabajadoresDin]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'



--region [dbo].[usp_SelMenuesDin]

------------------------------------------------------------------------------------------------------------------------
-- Generated By:   Sistemas001 using CodeSmith 5.0.0.0
-- Template:       PlantillaProcedimientos.cst
-- Procedure Name: [dbo].[usp_SelMenuesDin]
-- Date Generated: mi?rcoles, 13 de mayo de 2009
------------------------------------------------------------------------------------------------------------------------

CREATE PROCEDURE [dbo].[usp_PerSelTrabajadoresDin]
	@WhereCondition nvarchar(500),
	@OrderByExpression nvarchar(250) = NULL
AS

SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED

DECLARE @SQL nvarchar(3250)

SET @SQL = ''
SELECT
	T.[TrabajadorId] as ''''TrabajadorID'''',
	T.[Codigo] as ''''Codigo'''',
	dbo.FN_NOMBRECOMPLETO_TRABAJADOR(T.TrabajadorID) as ''''Trabajador'''',
	G.[Nombre] as ''''Grupo Horario'''',
	A.[NombreArea] as ''''Area'''',
	case(T.[HorasExtra])
		when 0 then ''''No''''
		when 1 then ''''Si''''
		else ''''''''
	end as ''''Horas Extra''''
FROM
	[dbo].[Trabajadores] T
	LEFT JOIN Areas A ON T.AreaId=A.AreaId
	LEFT JOIN GruposHorarios G ON T.GrupoHorarioID=G.GrupoHorarioID
WHERE
	'' + @WhereCondition + '' and T.Estado=1''

IF @OrderByExpression IS NOT NULL AND LEN(@OrderByExpression) > 0
BEGIN
	SET @SQL = @SQL + ''
ORDER BY
	'' + @OrderByExpression
END

EXEC sp_executesql @SQL

--endregion

' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_RodSelGruposHorariosDin]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'
------------------------------------------------------------------------------------------------------------------------      



--endregion   
  
------------------------------------------------------------------------------------------------------------------------      
  
    
        
CREATE PROCEDURE [dbo].[usp_RodSelGruposHorariosDin]                  
 @WhereCondition nvarchar(500),                  
 @OrderByExpression nvarchar(250) = NULL                  
AS                  
                  
SET NOCOUNT ON                  
SET TRANSACTION ISOLATION LEVEL READ COMMITTED                  
                  
DECLARE @SQL nvarchar(3250)                  
                  
SET @SQL = ''                  
SELECT               
  GH.GrupoHorarioID,           
  GH.Nombre,           
  GH.Estado,              
  GH.EstablecimientoID,    
  CASE GH.SinAutorizacion    
  WHEN 0 THEN ''''No''''    
  WHEN 1 THEN ''''Si''''    
  END AS ''''Sin Autorizacion'''',          
  GH.SinAutorizacion,           
  GH.Tolerancia,           
  E.NombreEstablecimiento          
FROM           
  GruposHorarios AS GH INNER JOIN          
  Establecimientos AS E ON GH.EstablecimientoID = E.EstablecimientoId          
          
WHERE                  
 '' + @WhereCondition                  
                  
IF @OrderByExpression IS NOT NULL AND LEN(@OrderByExpression) > 0                  
BEGIN                  
 SET @SQL = @SQL + ''                  
ORDER BY                  
 '' + @OrderByExpression                  
END                  
                  
EXEC sp_executesql @SQL   
' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_SelFeriadosDin]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'

--region [dbo].[usp_SelFeriadosDin]

------------------------------------------------------------------------------------------------------------------------
-- Generated By:   Sistemas001 using CodeSmith 5.0.0.0
-- Template:       PlantillaProcedimientos.cst
-- Procedure Name: [dbo].[usp_SelFeriadosDin]
-- Date Generated: mi?rcoles, 13 de mayo de 2009
------------------------------------------------------------------------------------------------------------------------

CREATE PROCEDURE [dbo].[usp_SelFeriadosDin]
	@WhereCondition nvarchar(500),
	@OrderByExpression nvarchar(250) = NULL
AS

SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED

DECLARE @SQL nvarchar(3250)

SET @SQL = ''
SELECT
	[FeriadoID],
	[Fecha],
	[FechaCreada],
	[UsuarioID],
	[Motivo],
	[Estado]
FROM
	[dbo].[Feriados]
WHERE
	'' + @WhereCondition

IF @OrderByExpression IS NOT NULL AND LEN(@OrderByExpression) > 0
BEGIN
	SET @SQL = @SQL + ''
ORDER BY
	'' + @OrderByExpression
END

EXEC sp_executesql @SQL

--endregion


' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_PerSelTrabajadorIngresosDin]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'









CREATE PROCEDURE [dbo].[usp_PerSelTrabajadorIngresosDin]
	@WhereCondition nvarchar(500),
	@OrderByExpression nvarchar(250) = NULL
as
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED

DECLARE @SQL nvarchar(3250)

SET @SQL = ''
select distinct	
		TI.TrabajadorIngresoID,
		T.Codigo,
		dbo.FN_NOMBRECOMPLETO_TRABAJADOR(TI.TrabajadorID) as ''''Trabajador'''',
		case(TI.Dias) 
			when 1 then ''''Lunes''''
			when 2 then ''''Martes''''
			when 3 then ''''Miercoles''''
			when 4 then ''''Jueves''''
			when 5 then ''''Viernes''''
			when 6 then ''''Sabado''''
			else ''''Domingo''''
		end as ''''Dia'''',
		TI.HoraIngreso as ''''Ingreso'''',
		TI.HorarioGrupoHoraIngreso as ''''Ing. Prog.'''',
		dbo.FN_MINUTOS_A_HORA(TI.MinutosDiferenciaIngreso) as ''''Dif. Ing.'''',
		TI.HoraSalida as ''''Salida'''',
		TI.HorarioGrupoHoraSalida as ''''Sal. Prog.'''',	
		dbo.FN_MINUTOS_A_HORA(TI.MinutosDiferenciaSalida) as ''''Dif. Sal.'''',	
		G.Nombre as ''''G. Horario'''',
		dbo.FN_MINUTOS_A_HORA(TI.MinutosReales) as ''''H.T. Reales'''',	
		dbo.FN_MINUTOS_A_HORA(TI.MinutosRemunerados) as ''''H.T. Remuneradas'''',
		dbo.FN_MINUTOS_A_HORA(TI.MinutosProgramados) as ''''H.T. Programadas'''',
		Case(A.Estado)
			when 0 then ''''Pendiente Ingreso''''
			when 1 then ''''Autorizado Ingreso''''
			when 2 then ''''Rechazado Ingreso''''
			when 3 then ''''Pendiente Salida''''
			when 4 then ''''Autorizado Salida''''
			when 5 then ''''Rechazado Salida''''
			when 6 then ''''Aceptado Falta''''
			else ''''No necesita Autorizacion''''
		end as ''''Autorizacion'''',		
		TI.HoraRefrigerioInicio as ''''I. Refrig'''',
		TI.HoraRefrigerioFin as ''''F. Refrig'''',
		AR.NombreArea as ''''Area''''
from	TrabajadorIngresos TI
		left join GruposHorarios G on G.GrupoHorarioID=TI.GrupoHorarioID
		left join Trabajadores T on T.TrabajadorID=TI.TrabajadorID
		left join Autorizaciones A on A.TrabajadorIngresoID=TI.TrabajadorIngresoID
		left join Areas AR on AR.AreaID=T.AreaID
WHERE
	'' + @WhereCondition

IF @OrderByExpression IS NOT NULL AND LEN(@OrderByExpression) > 0
BEGIN
	SET @SQL = @SQL + ''
ORDER BY
	'' + @OrderByExpression
END

EXEC sp_executesql @SQL










' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_SelGruposHorariosDin]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'
--region [dbo].[usp_SelGruposHorariosDin]

------------------------------------------------------------------------------------------------------------------------
-- Generated By:   Sistemas001 using CodeSmith 5.0.0.0
-- Template:       PlantillaProcedimientos.cst
-- Procedure Name: [dbo].[usp_SelGruposHorariosDin]
-- Date Generated: mi?rcoles, 13 de mayo de 2009
------------------------------------------------------------------------------------------------------------------------

CREATE PROCEDURE [dbo].[usp_SelGruposHorariosDin]
	@WhereCondition nvarchar(500),
	@OrderByExpression nvarchar(250) = NULL
AS

SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED

DECLARE @SQL nvarchar(3250)

SET @SQL = ''
SELECT
	[GrupoHorarioID],
	[Nombre],
	[Estado]
FROM
	[dbo].[GruposHorarios]
WHERE
	'' + @WhereCondition

IF @OrderByExpression IS NOT NULL AND LEN(@OrderByExpression) > 0
BEGIN
	SET @SQL = @SQL + ''
ORDER BY
	'' + @OrderByExpression
END

EXEC sp_executesql @SQL

--endregion

' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_RodSelGrupos]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'------------------------------------------------------------------------------------------------------------------------      

------------------------------------------------------------------------------------------------------------------------      
  
  
    
    
CREATE PROCEDURE [dbo].[usp_RodSelGrupos]            
 @WhereCondition nvarchar(500)            
AS            
             
DECLARE @SQL nvarchar(3250)                    
SET @SQL = ''            
SELECT               
  GH.GrupoHorarioID,       
  GH.Nombre,       
  GH.Estado,       
  CASE GH.SinAutorizacion    
  WHEN 0 THEN ''''No''''    
  WHEN 1 THEN ''''Si''''    
  END AS ''''Sin Autorizacion'''',          
  GH.SinAutorizacion,       
  GH.EstablecimientoID,      
  GH.Tolerancia,      
  E.NombreEstablecimiento,      
  T.TrabajadorId,       
  LTRIM(RTRIM(T.ApellidoPaterno))+'''' ''''+LTRIM(RTRIM(T.ApellidoMaterno))+'''' ''''+LTRIM(RTRIM(T.NombreTrabajador)) AS NombreCompleto      
FROM           
  GruposHorarios GH  INNER JOIN            
  Trabajadores T ON GH.GrupoHorarioID = T.GrupoHorarioID  INNER JOIN        
  Establecimientos E ON GH.EstablecimientoID = E.EstablecimientoId    
WHERE '' + @WhereCondition            
            
EXEC sp_executesql @SQL            
    

' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_RodSelUsuariosDin]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'
         
CREATE PROCEDURE [dbo].[usp_RodSelUsuariosDin]          
 @WhereCondition nvarchar(500),          
 @OrderByExpression nvarchar(250) = NULL          
AS          
          
SET NOCOUNT ON          
SET TRANSACTION ISOLATION LEVEL READ COMMITTED          
          
DECLARE @SQL nvarchar(3250)          
          
SET @SQL = ''      
SELECT          
 T.ApellidoPaterno,         
 T.ApellidoMaterno,         
 T.NombreTrabajador,         
 U.NombreUsuario,         
 U.Clave,         
 A.NombreArea,         
 P.Descripcion,         
 P.PerfilID,         
 U.UsuarioID,        
 T.TrabajadorId,  
 CASE U.IngresoManual           
 WHEN 0 THEN ''''No''''  
 WHEN 1 THEN ''''Si''''  
 END AS ''''Ingreso Manual''''  
FROM          
   Trabajadores AS T RIGHT JOIN           
   Usuarios AS U ON T.TrabajadorId=U.TrabajadorId LEFT JOIN          
   areas AS A ON U.AreaId = A.areaId LEFT JOIN            
   Perfiles AS P ON U.PerfilID = P.PerfilID              
WHERE          
 '' + @WhereCondition          
          
IF @OrderByExpression IS NOT NULL AND LEN(@OrderByExpression) > 0          
BEGIN          
 SET @SQL = @SQL + ''          
ORDER BY          
 '' + @OrderByExpression          
END          
          
EXEC sp_executesql @SQL  ' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_RodSelTrabajadoresDin]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'

    
          
CREATE PROCEDURE [dbo].[usp_RodSelTrabajadoresDin]          
 @WhereCondition nvarchar(500),          
 @OrderByExpression nvarchar(250) = NULL          
AS          
          
SET NOCOUNT ON          
SET TRANSACTION ISOLATION LEVEL READ COMMITTED          
          
DECLARE @SQL nvarchar(3250)          
          
SET @SQL = ''          
SELECT          
 T.[TrabajadorId],          
 T.[NombreTrabajador] as ''''Nombre'''',           
 T.[ApellidoPaterno] as ''''Apellido Paterno'''',          
 T.[ApellidoMaterno] as ''''Apellido Materno'''',        
 T.[AreaId],          
 G.[Nombre] as ''''Grupo Horario'''',          
 A.[NombreArea] as ''''Area'''',      
 (LTRIM(RTRIM(T.ApellidoPaterno))+'''' ''''+LTRIM(RTRIM(T.ApellidoMaterno))+ '''' '''' +LTRIM(RTRIM(T.NombreTrabajador))) AS ''''NombreCompleto''''         
FROM          
 [dbo].[Trabajadores] T          
 LEFT JOIN Areas A ON T.AreaId=A.AreaId          
 LEFT JOIN GruposHorarios G ON T.GrupoHorarioID=G.GrupoHorarioID        
 LEFT JOIN Usuarios U ON T.TrabajadorId=U.TrabajadorId  
WHERE          
 '' + @WhereCondition          
          
IF @OrderByExpression IS NOT NULL AND LEN(@OrderByExpression) > 0          
BEGIN          
 SET @SQL = @SQL + ''          
ORDER BY          
 '' + @OrderByExpression          
END          
          
EXEC sp_executesql @SQL 

' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_SelareasDin]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'
--region [dbo].[usp_SelareasDin]

------------------------------------------------------------------------------------------------------------------------
-- Generated By:   Sistemas001 using CodeSmith 5.0.0.0
-- Template:       PlantillaProcedimientos.cst
-- Procedure Name: [dbo].[usp_SelareasDin]
-- Date Generated: mi?rcoles, 13 de mayo de 2009
------------------------------------------------------------------------------------------------------------------------

CREATE PROCEDURE [dbo].[usp_SelareasDin]
	@WhereCondition nvarchar(500),
	@OrderByExpression nvarchar(250) = NULL
AS

SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED

DECLARE @SQL nvarchar(3250)

SET @SQL = ''
SELECT
	[areaId],
	[NombreArea],
	[nomenclatura],
	[EstablecimientoID],
	[Produccion],
	[Inventario],
	[TipoProductoID],
	[AreaContable],
	[CocinaBebida],
	[OrdenHojaFuncion],
	[ObservacionHojaFuncion],
	[UnidadNegocioID],
	[Activo],
	[CuentaActivo],
	[TipoProductoIDHojaFuncion],
	[MostrarDetalladoHojaFuncion],
	[Estado],
	[RequiereNumeroReserva]
FROM
	[dbo].[areas]
WHERE
	'' + @WhereCondition

IF @OrderByExpression IS NOT NULL AND LEN(@OrderByExpression) > 0
BEGIN
	SET @SQL = @SQL + ''
ORDER BY
	'' + @OrderByExpression
END

EXEC sp_executesql @SQL

--endregion

' 
END
GO
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_RodSelAutorizacionesDin_test]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[usp_RodSelAutorizacionesDin_test]                  
 @WhereCondition nvarchar(500),                  
 @OrderByExpression nvarchar(250) = NULL                  
AS
SET NOCOUNT ON                  
SET TRANSACTION ISOLATION LEVEL READ COMMITTED                  
                  
DECLARE @SQL nvarchar(3250)                  
                  
SET @SQL = ''            
SELECT                  
		A.AutorizacionID,
		A.TrabajadorIngresoID,
		FechaAutorizacion,
		(LTRIM(RTRIM(T.ApellidoPaterno))+ '''' ''''+RTRIM(LTRIM(T.ApellidoMaterno))+ '''' '''' +RTRIM(LTRIM(T.NombreTrabajador))) AS NombreCompleto,
		A.Motivo,
		dbo.FN_NOMBRE_USUARIO(A.UsuarioID) AS NombreUsuario,
		--dbo.FN_NOMBRECOMPLETO_USUARIO(A.UsuarioID) AS NombreUsuario,
		AR.NombreArea,
		GH.Nombre,  
		A.Fecha,
		A.Hora,
		TI.HorarioGrupoHoraIngreso AS ''''Ingreso Programado'''',
		TI.HorarioGrupoHoraSalida AS ''''Salida Programada'''',
		CASE A.Estado          
		WHEN 0 THEN dbo.FN_MINUTOS_A_HORA(MinutosDiferenciaIngreso)
		WHEN 1 THEN dbo.FN_MINUTOS_A_HORA(MinutosDiferenciaIngreso)
		WHEN 2 THEN dbo.FN_MINUTOS_A_HORA(MinutosDiferenciaIngreso)
		WHEN 3 THEN dbo.FN_MINUTOS_A_HORA(MinutosDiferenciaSalida)
		WHEN 4 THEN dbo.FN_MINUTOS_A_HORA(MinutosDiferenciaSalida)
		WHEN 5 THEN dbo.FN_MINUTOS_A_HORA(MinutosDiferenciaSalida)
		END AS ''''Diferencia de Horas'''',
		GH.Tolerancia,
		CASE A.Remunerada           
		WHEN 0 THEN ''''No Remunerada''''              
		WHEN 1 THEN ''''Remunerada''''           
		END AS Remuneradas,              
		CASE A.Estado           
		WHEN 0 THEN ''''Ingreso''''                  
		WHEN 1 THEN ''''Aceptado Ingreso''''           
		WHEN 2 THEN ''''Rechazado Ingreso''''          
		WHEN 3 THEN ''''Salida''''           
		WHEN 4 THEN ''''Aceptado Salida''''          
		ELSE ''''Rechazado Salida''''           
		END AS Estados,      
		E.NombreEstablecimiento                 
FROM                  
		Autorizaciones A           
		LEFT JOIN TrabajadorIngresos TI ON A.TrabajadorIngresoID = TI.TrabajadorIngresoID           
		LEFT JOIN Trabajadores T ON TI.TrabajadorID = T.TrabajadorId           
		LEFT JOIN areas AR ON T.AreaId = AR.areaId           
		LEFT JOIN Establecimientos E ON AR.EstablecimientoId = E.EstablecimientoId              
		LEFT JOIN dbo.GruposHorarios GH ON T.GrupoHorarioID = GH.GrupoHorarioID
		LEFT JOIN Usuarios U ON T.TrabajadorID=U.TrabajadorID
WHERE                  
 '' + @WhereCondition                  
                  
IF @OrderByExpression IS NOT NULL AND LEN(@OrderByExpression) > 0                  
BEGIN                  
 SET @SQL = @SQL + ''                  
ORDER BY                  
 '' + @OrderByExpression                  
END                  
                  
EXEC sp_executesql @SQL
' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_RodSelTrabajadorReporte]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N' 
CREATE PROCEDURE [dbo].[usp_RodSelTrabajadorReporte]      
@TrabajadorId int      
AS      
SELECT         
  T.TrabajadorId,   
  T.Codigo,   
  T.ApellidoPaterno,   
  T.ApellidoMaterno,   
  T.NombreTrabajador,   
  TipoDocumentoIdentidad.Descripcion AS [Tipo Documento Identidad],  
  T.NumeroDocumentoIdentidad,  
  NE.NombreNivelEducativo AS [Nivel Educativo],   
  CASE(Discapacidad)  
  WHEN 0 THEN ''No''  
  ELSE ''Si''  
  END AS [Discapacidad],  
  O.Descripcion AS Ocupacion,  
  A.NombreArea AS Area,   
  TT.Descripcion AS [Tipo Trabajador],  
  GH.Nombre AS [Grupo Horario],      
  TC.NombreTipoContrato AS [Tipo Contrato],  
  TipoPagos.Nombre AS [Tipo de Pago],  
  CASE(AfiliadoEPS)  
  WHEN 0 THEN ''No''   
  ELSE ''Si''  
  END AS [Prestacion de Servicios],  
  PDS.Descripcion as [Empresa Prestadora de Servicios],  
  CASE(RegimenLaboral)  
  WHEN 0 THEN ''No''   
  ELSE ''Si''  
  END AS [Regimen Laboral],  
  FechaInscripcionRegimen AS [Fecha Inscripcion Regimen],  
  TS.Descripcion AS Situacion,  
  RP.Descripcion AS [Regimen Pensionario],  
  CUSSP,  
  CASE(SCTRPension)  
  WHEN 0 THEN ''Ninguna''  
  WHEN 1 THEN ''ONP''  
  ELSE ''Seguro Privado''  
  END AS [SCTR Pension],  
  CASE(SCTRSalud)  
  WHEN 0 THEN ''Ninguna''  
  WHEN 1 THEN ''ESSALUD''  
  ELSE ''EPS''  
  END AS [SCTR Salud],  
  PR.Descripcion AS [Periodo Sueldo],  
  CASE(SituacionEspecial)  
  WHEN 0 THEN ''Ninguna''  
  WHEN 1 THEN ''Confianza''  
  ELSE ''Direccion''  
  END AS [Situacion Especial],  
  CASE(T.HorarioNocturno)  
  WHEN 0 THEN ''No''   
  ELSE ''Si''  
  END AS [Horario Nocturno],  
  CASE(T.HorasExtra)  
  WHEN 0 THEN ''No''   
  ELSE ''Si''  
  END AS [Horas Extra],  
  CASE(RegimenAlternativoAcumulativoAtipico)  
  WHEN 0 THEN ''No''   
  ELSE ''Si''  
  END AS [Regimen Alternativo],  
  CASE(JornadaMaxima)  
  WHEN 0 THEN ''No''   
  ELSE ''Si''  
  END AS [Jornada Maxima],  
  CASE(Sindicalizado)  
  WHEN 0 THEN ''No''   
  ELSE ''Si''  
  END AS [Sindicalizado],  
  CASE(RentaQuintaExonerada)  
  WHEN 0 THEN ''No''   
  ELSE ''Si''  
  END AS [RentaQuintaExonerada],  
  CASE(TieneOtrosIngresosQuinta)  
  WHEN 0 THEN ''No''   
  ELSE ''Si''  
  END AS [TieneOtrosIngresosQuinta]  
      
FROM             
  Trabajadores AS T LEFT JOIN      
  areas AS A ON T.AreaId = A.areaId LEFT JOIN      
  GruposHorarios AS GH ON T.GrupoHorarioID = GH.GrupoHorarioID LEFT JOIN      
  TipoPagos ON T.TipoPagoID = TipoPagos.TipoPagoID LEFT JOIN      
  TipoDocumentoIdentidad ON T.TipoDocumentoIdentidadID = TipoDocumentoIdentidad.TipoDocumentoIdentidadID LEFT JOIN      
  RegimenPensionario RP ON T.RegimenPensionarioID = RP.RegimenPensionarioID LEFT JOIN  
  NivelEducativos NE ON T.NivelEducativoID = NE.NivelEducativoID LEFT JOIN  
  TipoContratos TC ON T.TipoContratoID = TC.TipoContratoID LEFT JOIN  
  Ocupacion O ON O.OcupacionID = T.OcupacionID LEFT JOIN  
  PeriodoRemuneracion PR ON PR.PeriodoRemuneracionID = T.PeriodoRemuneracionID LEFT JOIN  
  TipoTrabajador TT ON T.TipoTrabajadorID=TT.TipoTrabajadorID LEFT JOIN  
  PrestacionesDeServicio PDS ON T.EPSID=PDS.EPSID LEFT JOIN  
  TrabajadorSituacion TS ON T.TrabajadorSituacionID=TS.TrabajadorSituacionID  
  
WHERE  
  
  TrabajadorId=@TrabajadorId      ' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_RodSelUsuariosAll]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'        
-------------------------------------------------------------------------------------------------------------------------------------------------------------      
CREATE PROCEDURE [dbo].[usp_RodSelUsuariosAll]          
AS          
SELECT     
  T.ApellidoPaterno,     
  T.ApellidoMaterno,     
  T.NombreTrabajador,     
  U.NombreUsuario,     
  U.Clave,     
  A.NombreArea,     
  P.Descripcion,     
  P.PerfilID,     
  U.UsuarioID,           
  T.TrabajadorId,    
  CASE U.IngresoManual    
  WHEN 0 THEN ''No''    
  WHEN 1 THEN ''Si''    
  END AS ''Ingreso Manual''     
FROM    
  Trabajadores AS T RIGHT JOIN         
  Usuarios AS U ON T.TrabajadorId=U.TrabajadorId LEFT JOIN        
  areas AS A ON U.AreaId = A.areaId LEFT JOIN          
  Perfiles AS P ON U.PerfilID = P.PerfilID        
WHERE  
  U.Estado = 0' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_SelareasAll]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'    
--region [dbo].[usp_SelareasAll]    
    
------------------------------------------------------------------------------------------------------------------------    
-- Generated By:   Sistemas001 using CodeSmith 5.0.0.0    
-- Template:       PlantillaProcedimientos.cst    
-- Procedure Name: [dbo].[usp_SelareasAll]    
-- Date Generated: mi?rcoles, 13 de mayo de 2009    
------------------------------------------------------------------------------------------------------------------------    
    
CREATE PROCEDURE [dbo].[usp_SelareasAll]    
AS    
    
SET NOCOUNT ON    
SET TRANSACTION ISOLATION LEVEL READ COMMITTED    
    
SELECT    
 [areaId],    
 [NombreArea],    
 [nomenclatura],    
 [EstablecimientoID],    
 [Produccion],    
 [Inventario],    
 [TipoProductoID],    
 [AreaContable],    
 [CocinaBebida],    
 [OrdenHojaFuncion],    
 [ObservacionHojaFuncion],    
 [UnidadNegocioID],    
 [Activo],    
 [CuentaActivo],    
 [TipoProductoIDHojaFuncion],    
 [MostrarDetalladoHojaFuncion],    
 [Estado],    
 [RequiereNumeroReserva]    
FROM    
 [dbo].[areas]    
  
ORDER BY  
  [NombreArea]  
  
--endregion    
' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_PerSelArea]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'


--region [dbo].[usp_SelTrabajadores]

------------------------------------------------------------------------------------------------------------------------
-- Generated By:   Sistemas001 using CodeSmith 5.0.0.0
-- Template:       PlantillaProcedimientos.cst
-- Procedure Name: [dbo].[usp_SelTrabajadores]
-- Date Generated: jueves, 28 de mayo de 2009
------------------------------------------------------------------------------------------------------------------------

CREATE PROCEDURE [dbo].[usp_PerSelArea]
AS

SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED

SELECT 
	[AreaID],
	[NombreArea]
FROM
	[dbo].[Areas]
ORDER BY NombreArea

--endregion



' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_RodSelPerfilesAll]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'------------------------------------------------------------------------------------------------------------------------------------------------------------

CREATE PROCEDURE [dbo].[usp_RodSelPerfilesAll]  
AS  
SELECT   
[PerfilID],  
[Descripcion]  
FROM dbo.Perfiles  

' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_PerSelPeriodoSueldosAll]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'
CREATE PROCEDURE [dbo].[usp_PerSelPeriodoSueldosAll]
AS

SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED

select	*
from PeriodoRemuneracion
' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_InsAutorizaciones]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'

--region [dbo].[usp_InsAutorizaciones]

------------------------------------------------------------------------------------------------------------------------
-- Generated By:   Sistemas001 using CodeSmith 5.0.0.0
-- Template:       PlantillaProcedimientos.cst
-- Procedure Name: [dbo].[usp_InsAutorizaciones]
-- Date Generated: mi?rcoles, 13 de mayo de 2009
------------------------------------------------------------------------------------------------------------------------

CREATE PROCEDURE [dbo].[usp_InsAutorizaciones]
	@TrabajadorIngresoID char(20),
	@UsuarioID int,
	@Fecha datetime,
	@Hora datetime,
	@Motivo varchar(50),
	@Estado int
AS

SET NOCOUNT ON
Declare @Ultimo as Char(5)
Select @Ultimo=isnull(right(''00000000000000000000'' + cast( (max(CAST(AutorizacionID AS INT))   +1) as varchar(5)),5),''0000000000000000001'')
from [dbo].[Autorizaciones]
INSERT INTO [dbo].[Autorizaciones] (
	[AutorizacionID],
	[TrabajadorIngresoID],
	[UsuarioID],
	[Fecha],
	[Hora],
	[Motivo],
	[Estado]
) VALUES (
	@Ultimo,
	@TrabajadorIngresoID,
	@UsuarioID,
	@Fecha,
	@Hora,
	@Motivo,
	@Estado
 
)
Select @Ultimo as ID
--endregion


' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_SelGruposHorariosAll]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'  
      
        
--region [dbo].[usp_SelGruposHorariosAll]        
        
------------------------------------------------------------------------------------------------------------------------        
-- Generated By:   Sistemas001 using CodeSmith 5.0.0.0        
-- Template:       PlantillaProcedimientos.cst        
-- Procedure Name: [dbo].[usp_SelGruposHorariosAll]        
-- Date Generated: mi?rcoles, 13 de mayo de 2009        
------------------------------------------------------------------------------------------------------------------------        
        
CREATE PROCEDURE [dbo].[usp_SelGruposHorariosAll]        
AS        
        
SET NOCOUNT ON        
SET TRANSACTION ISOLATION LEVEL READ COMMITTED        
        
SELECT                 
  GH.GrupoHorarioID,             
  GH.Nombre,             
  GH.Estado,                
  GH.EstablecimientoID,      
  CASE GH.SinAutorizacion      
  WHEN 0 THEN ''No''      
  WHEN 1 THEN ''Si''      
  END AS ''Sin Autorizacion'',           
  GH.SinAutorizacion,             
  GH.Tolerancia,             
  E.NombreEstablecimiento            
FROM             
  GruposHorarios AS GH INNER JOIN            
  Establecimientos AS E ON GH.EstablecimientoID = E.EstablecimientoId            
           
ORDER BY GH.Nombre

' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_SelFeriados]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'

--region [dbo].[usp_SelFeriados]

------------------------------------------------------------------------------------------------------------------------
-- Generated By:   Sistemas001 using CodeSmith 5.0.0.0
-- Template:       PlantillaProcedimientos.cst
-- Procedure Name: [dbo].[usp_SelFeriados]
-- Date Generated: mi?rcoles, 13 de mayo de 2009
------------------------------------------------------------------------------------------------------------------------

CREATE PROCEDURE [dbo].[usp_SelFeriados]
	@FeriadoID int
AS

SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED

SELECT
	[FeriadoID],
	[Fecha],
	[FechaCreada],
	[UsuarioID],
	[Motivo],
	[Estado]
FROM
	[dbo].[Feriados]
WHERE
	[FeriadoID] = @FeriadoID

--endregion


' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_PerSelFeriadosAll]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[usp_PerSelFeriadosAll]
AS

SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED

select	FeriadoID, 
		Fecha, 
		FechaCreada, 
		UsuarioID, 
		Motivo,
		case(Estado) 
			when 1 then ''Activo''
			else ''Inactivo''
		end as ''Estado''
from Feriados' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_PerSelTipoContratosAll]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'

CREATE PROCEDURE [dbo].[usp_PerSelTipoContratosAll]
AS

SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED

select	TipoContratoID,		
		NombreTipoContrato
from TipoContratos

' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_PerSelTipoPagosAll]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'
CREATE PROCEDURE [dbo].[usp_PerSelTipoPagosAll]
AS

SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED

select	*
from TipoPagos
' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_SelGrupoHorarios]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'



--region [dbo].[usp_SelGruposHorarios]

------------------------------------------------------------------------------------------------------------------------
-- Generated By:   Sistemas001 using CodeSmith 5.0.0.0
-- Template:       PlantillaProcedimientos.cst
-- Procedure Name: [dbo].[usp_SelGruposHorarios]
-- Date Generated: mi?rcoles, 13 de mayo de 2009
------------------------------------------------------------------------------------------------------------------------

CREATE PROCEDURE [dbo].[usp_SelGrupoHorarios]
	@GrupoHorarioID int
AS

SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED

SELECT
	[GrupoHorarioID],
	[Nombre],
	[Estado],
	[SinAutorizacion],
	[EstablecimientoID],
	[Tolerancia]
FROM
	[dbo].[GruposHorarios]
WHERE
	[GrupoHorarioID] = @GrupoHorarioID

--endregion




' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_RodDelGruposHorarios]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[usp_RodDelGruposHorarios]        
@GrupoHorarioID int  
AS  
DELETE dbo.HorariosDia WHERE GrupoHorarioID = @GrupoHorarioID  
DELETE dbo.GruposHorarios WHERE GrupoHorarioID = @GrupoHorarioID

' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_RodBuscarNombreGrupo]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'------------------------------------------------------------------------------------------------------------------------      

CREATE PROCEDURE [dbo].[usp_RodBuscarNombreGrupo]    
@NombreGrupo NVARCHAR(50)    
AS    
SELECT    
  Nombre  
FROM    
  GruposHorarios    
WHERE    
  Nombre = @NombreGrupo   
' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_PerSelGrupoHorarioActivo]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'



--region [dbo].[usp_SelTrabajadores]

------------------------------------------------------------------------------------------------------------------------
-- Generated By:   Sistemas001 using CodeSmith 5.0.0.0
-- Template:       PlantillaProcedimientos.cst
-- Procedure Name: [dbo].[usp_SelTrabajadores]
-- Date Generated: jueves, 28 de mayo de 2009
------------------------------------------------------------------------------------------------------------------------

CREATE PROCEDURE [dbo].[usp_PerSelGrupoHorarioActivo]
AS

SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED

SELECT 
	[GrupoHorarioID],
	[Nombre]
FROM
	[dbo].[GruposHorarios]
WHERE
	[Estado] = ''Activo''
ORDER BY 
	Nombre
--endregion




' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_PerUpdTrabajadorIngresos]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'

CREATE PROCEDURE [dbo].[usp_PerUpdTrabajadorIngresos]
	@TrabajadorIngresoID char(20),
	@Dias int,
	@HoraIngreso datetime,
	@horaSalida datetime,
	@HoraRefrigerioInicio datetime,
	@HoraRefrigerioFin datetime,
	@HorarioGrupoHoraIngreso datetime,
	@HorarioGrupoHoraSalida datetime,
	@HorarioGrupoInicioRefrigerio datetime,
	@HorarioGrupoFinRefrigerio datetime,
	@GrupoHorarioID int,
	@TrabajadorID int,
	@DiaCerrado int,
	@MinutosDiferenciaIngreso int,
	@MinutosRemunerados int,
	@MinutosReales int,
	@MinutosProgramados int,
	@MinutosExtra int,
	@MinutosDiferenciaSalida int,
	@MinutosNocturnos int
AS

SET NOCOUNT ON
UPDATE [dbo].[TrabajadorIngresos] SET
	Dias=@Dias,
	HoraIngreso = @HoraIngreso,
	horaSalida =@horaSalida,
	HoraRefrigerioInicio = @HoraRefrigerioInicio,
	HoraRefrigerioFin = @HoraRefrigerioFin,
	HorarioGrupoHoraIngreso = @HorarioGrupoHoraIngreso,
	HorarioGrupoHoraSalida = @HorarioGrupoHoraSalida,
	HorarioGrupoInicioRefrigerio = @HorarioGrupoInicioRefrigerio,
	HorarioGrupoFinRefrigerio = @HorarioGrupoFinRefrigerio,
	GrupoHorarioID = @GrupoHorarioID,
	TrabajadorID = @TrabajadorID,
	DiaCerrado = @DiaCerrado,
	MinutosDiferenciaIngreso=@MinutosDiferenciaIngreso,
	[MinutosReales]=@MinutosReales,
	[MinutosProgramados]=@MinutosProgramados,
	[MinutosExtra]=@MinutosExtra,
	[MinutosDiferenciaSalida]=@MinutosDiferenciaSalida,
	[MinutosRemunerados] = @MinutosRemunerados,
	[MinutosNocturnos]=@MinutosNocturnos
WHERE
	TrabajadorIngresoID = @TrabajadorIngresoID
' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_PerInsertarFaltas]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'
CREATE PROCEDURE [dbo].[usp_PerInsertarFaltas]
@FechaInicio datetime,
@FechaFin datetime
as
Declare @TrabajadorIngresoID char(20)
Declare @Dia int
Declare @DiaDeSemana int
Declare @HoraIngreso datetime
Declare @GrupoHorarioID int
Declare @TrabajadorID int
Declare @MinutosDiarios int


SET DATEFIRST 1
DELETE FROM dbo.TrabajadorFaltas
DECLARE TRABAJADOR CURSOR FOR SELECT TrabajadorID, GrupoHorarioID FROM  dbo.Trabajadores

OPEN TRABAJADOR
FETCH NEXT FROM TRABAJADOR INTO @TrabajadorID, @GrupoHorarioID
WHILE (@@FETCH_STATUS =0)
BEGIN
	DECLARE @FECHA_INICIO DATETIME
	DECLARE @FECHA_FIN DATETIME
	DECLARE @FECHAAUX DATETIME
	DECLARE @MARCO INT

	SELECT @FECHA_INICIO=MIN(HorarioGrupoHoraIngreso) FROM TrabajadorIngresos WHERE TRABAJADORID=@TrabajadorID AND (HorarioGrupoHoraIngreso BETWEEN @FECHAINICIO AND @FECHAFIN)	GROUP BY TRABAJADORID
	SELECT @FECHA_FIN=MAX(HorarioGrupoHoraIngreso) FROM TrabajadorIngresos WHERE TRABAJADORID=@TrabajadorID AND (HorarioGrupoHoraIngreso BETWEEN @FECHAINICIO AND @FECHAFIN) GROUP BY TRABAJADORID
	
	SET @FECHAAUX=@FECHA_INICIO
	WHILE (@FECHAAUX<=@FECHA_FIN)
	BEGIN
		SET @DIA=DATEPART(DW,@FECHAAUX)
		SELECT @MinutosDiarios=MinutosDiarios FROM HORARIOSDIA WHERE GRUPOHORARIOID=@GrupoHorarioID and DiaDeSemana=@Dia
		IF (@MinutosDiarios<>0)
		BEGIN
			SELECT	@MARCO=COUNT(*) 
			FROM	TrabajadorIngresos 
			WHERE	DATEPART(YEAR,HorarioGrupoHoraIngreso)=DATEPART(YEAR,@FECHAAUX) AND
					DATEPART(MONTH,HorarioGrupoHoraIngreso)=DATEPART(MONTH,@FECHAAUX) AND
					DATEPART(DAY,HorarioGrupoHoraIngreso)=DATEPART(DAY,@FECHAAUX)
			IF (@MARCO=0)
			BEGIN
				IF(@GrupoHorarioID!='''')
				BEGIN
					INSERT INTO dbo.TrabajadorFaltas VALUES(DATEPART(DW,@FECHAAUX), NULL,NULL,NULL,NULL,@FECHAAUX,NULL,NULL,NULL,@GrupoHorarioID,@TrabajadorID,0,0,0,0,0,0,0,0)
				END
			END
		END
		SET @FECHAAUX=DATEADD(DAY,1,@FECHAAUX)	
	END
	FETCH NEXT FROM TRABAJADOR INTO @TrabajadorID, @GrupoHorarioID
END
CLOSE TRABAJADOR
DEALLOCATE TRABAJADOR

' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_PerInsTrabajadorIngresos]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'
CREATE PROCEDURE [dbo].[usp_PerInsTrabajadorIngresos]
	@TrabajadorIngresoID char(20),
	@Dias int,
	@HoraIngreso datetime,
	@horaSalida datetime,
	@HoraRefrigerioInicio datetime,
	@HoraRefrigerioFin datetime,
	@HorarioGrupoHoraIngreso datetime,
	@HorarioGrupoHoraSalida datetime,
	@HorarioGrupoInicioRefrigerio datetime,
	@HorarioGrupoFinRefrigerio datetime,
	@GrupoHorarioID int,
	@TrabajadorID int,
	@DiaCerrado int,
	@MinutosDiferenciaIngreso int,
	@MinutosRemunerados int,
	@MinutosReales int,
	@MinutosProgramados int,
	@MinutosExtra int,
	@MinutosDiferenciaSalida int,
	@MinutosNocturnos int
AS

SET NOCOUNT ON
IF EXISTS(	SELECT [TrabajadorIngresoID] 
			FROM [dbo].[TrabajadorIngresos] 
			WHERE [TrabajadorIngresoID] = @TrabajadorIngresoID
)
BEGIN
	UPDATE [dbo].[TrabajadorIngresos] SET
		Dias=@Dias,
		HoraIngreso = @HoraIngreso,
		horaSalida =@horaSalida,
		HoraRefrigerioInicio = @HoraRefrigerioInicio,
		HoraRefrigerioFin = @HoraRefrigerioFin,
		HorarioGrupoHoraIngreso = @HorarioGrupoHoraIngreso,
		HorarioGrupoHoraSalida = @HorarioGrupoHoraSalida,
		HorarioGrupoInicioRefrigerio = @HorarioGrupoInicioRefrigerio,
		HorarioGrupoFinRefrigerio = @HorarioGrupoFinRefrigerio,
		GrupoHorarioID = @GrupoHorarioID,
		TrabajadorID = @TrabajadorID,
		DiaCerrado = @DiaCerrado		
	WHERE
		TrabajadorIngresoID = @TrabajadorIngresoID
	IF @HORASALIDA IS NOT NULL
	BEGIN
		UPDATE [dbo].[TrabajadorIngresos] SET
			[MinutosReales]=@MinutosReales,
			[MinutosProgramados]=@MinutosProgramados,
			[MinutosExtra]=@MinutosExtra,
			[MinutosDiferenciaSalida]=@MinutosDiferenciaSalida,
			[MinutosRemunerados] = @MinutosRemunerados,
			[MinutosNocturnos]=@MinutosNocturnos
		WHERE
			TrabajadorIngresoID = @TrabajadorIngresoID
	END
END
ELSE
BEGIN
	Declare @Ultimo as Char(20)
	Select @Ultimo=isnull(right(''00000000000000000000'' + cast( (max(CAST(TrabajadorIngresoID AS INT))+1) as varchar(20)),20),''00000000000000000001'')
	from [dbo].[TrabajadorIngresos]
	INSERT INTO [dbo].[TrabajadorIngresos] (
		[TrabajadorIngresoID],
		[Dias],
		[HoraIngreso],
		[horaSalida],
		[HoraRefrigerioInicio],
		[HoraRefrigerioFin],
		[HorarioGrupoHoraIngreso],
		[HorarioGrupoHoraSalida],
		[HorarioGrupoInicioRefrigerio],
		[HorarioGrupoFinRefrigerio],
		[GrupoHorarioID],
		[TrabajadorID],
		[DiaCerrado],
		[MinutosDiferenciaIngreso]
	) VALUES (
		@Ultimo,
		@Dias,
		@HoraIngreso,
		@horaSalida,
		@HoraRefrigerioInicio,
		@HoraRefrigerioFin,
		@HorarioGrupoHoraIngreso,
		@HorarioGrupoHoraSalida,
		@HorarioGrupoInicioRefrigerio,
		@HorarioGrupoFinRefrigerio,
		@GrupoHorarioID,
		@TrabajadorID,
		@DiaCerrado,
		@MinutosDiferenciaIngreso
	)
END

' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_PerSelTrabajadorLista]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[usp_PerSelTrabajadorLista]
as
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
select 
	TrabajadorID,
	ltrim(rtrim(NombreTrabajador)) + '' '' + 
	ltrim(rtrim(ApellidoPaterno)) + '' '' + 
	ltrim(rtrim(ApellidoMaterno)) as ''NombreTrabajador'' 
from trabajadores
' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_PerSelTrabajadoresApellidoPaterno]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'




--region [dbo].[usp_SelTrabajadores]

------------------------------------------------------------------------------------------------------------------------
-- Generated By:   Sistemas001 using CodeSmith 5.0.0.0
-- Template:       PlantillaProcedimientos.cst
-- Procedure Name: [dbo].[usp_SelTrabajadores]
-- Date Generated: jueves, 28 de mayo de 2009
------------------------------------------------------------------------------------------------------------------------

CREATE PROCEDURE [dbo].[usp_PerSelTrabajadoresApellidoPaterno]
AS

SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED

SELECT DISTINCT
	ltrim(rtrim([ApellidoPaterno]))
FROM
	[dbo].[Trabajadores]
WHERE 
	Estado=1
order by
	ltrim(rtrim([ApellidoPaterno]))
--endregion





' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_PerSelTrabajadoresApellidoMaterno]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'




--region [dbo].[usp_SelTrabajadores]

------------------------------------------------------------------------------------------------------------------------
-- Generated By:   Sistemas001 using CodeSmith 5.0.0.0
-- Template:       PlantillaProcedimientos.cst
-- Procedure Name: [dbo].[usp_SelTrabajadores]
-- Date Generated: jueves, 28 de mayo de 2009
------------------------------------------------------------------------------------------------------------------------

CREATE PROCEDURE [dbo].[usp_PerSelTrabajadoresApellidoMaterno]
AS

SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED

SELECT DISTINCT
	ltrim(rtrim([ApellidoMaterno]))
FROM
	[dbo].[Trabajadores]
WHERE 
	Estado=1
order by
	ltrim(rtrim([ApellidoMaterno]))
--endregion





' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_PerSelTrabajadoresNombre]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'



--region [dbo].[usp_SelTrabajadores]

------------------------------------------------------------------------------------------------------------------------
-- Generated By:   Sistemas001 using CodeSmith 5.0.0.0
-- Template:       PlantillaProcedimientos.cst
-- Procedure Name: [dbo].[usp_SelTrabajadores]
-- Date Generated: jueves, 28 de mayo de 2009
------------------------------------------------------------------------------------------------------------------------

CREATE PROCEDURE [dbo].[usp_PerSelTrabajadoresNombre]
AS

SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED

SELECT DISTINCT
	[NombreTrabajador]
FROM
	[dbo].[Trabajadores]
WHERE 
	Estado=1
order by
	[NombreTrabajador]
--endregion




' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_RodSelTrabajadoresAll]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'---
    
CREATE  PROCEDURE [dbo].[usp_RodSelTrabajadoresAll]    
AS    
SET NOCOUNT ON    
SET TRANSACTION ISOLATION LEVEL READ COMMITTED    
    
SELECT    
 [TrabajadorId],    
 [NombreTrabajador],    
 [ApellidoPaterno],    
 [ApellidoMaterno],    
 [HorarioNocturno],    
 [TieneOtrosIngresosQuinta],    
 [Sindicalizado],    
 [AfiliadoEPS],    
 [RentaQuintaExonerada],    
 [SituacionEspecial],    
 [NumeroDocumentoIdentidad],    
 [RegimenLaboral],    
 [Discapacidad],    
 [FechaInscripcionRegimen],    
 [CUSSP],    
 [AreaId],    
 [SCTRSalud],    
 [SCTRPension],    
 [RegimenAlternativoAcumulativoAtipico],    
 [JornadaMaxima],    
 [GrupoHorarioID],    
 [PeriodoRemuneracionID],    
 [EPSID],    
 [TrabajadorSituacionID],    
 [TipoPagoID],    
 [TipoDocumentoIdentidadID],    
 [TipoTrabajadorID],    
 [NivelEducativoID],    
 [OcupacionID],    
 [RegimenPensionarioID],    
 [TipoContratoID],    
 [Estado],    
 (LTRIM(RTRIM(ApellidoPaterno))+'' ''+LTRIM(RTRIM(ApellidoMaterno))+ '' '' +LTRIM(RTRIM(NombreTrabajador))) AS NombreCompleto    
FROM    
 [dbo].[Trabajadores] 

' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_SelTrabajadoresAll]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'


--region [dbo].[usp_SelTrabajadoresAll]

------------------------------------------------------------------------------------------------------------------------
-- Generated By:   Sistemas001 using CodeSmith 5.0.0.0
-- Template:       PlantillaProcedimientos.cst
-- Procedure Name: [dbo].[usp_SelTrabajadoresAll]
-- Date Generated: jueves, 28 de mayo de 2009
------------------------------------------------------------------------------------------------------------------------

CREATE PROCEDURE [dbo].[usp_SelTrabajadoresAll]
AS

SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED

SELECT
	[TrabajadorId],
	[NombreTrabajador],
	[ApellidoPaterno],
	[ApellidoMaterno],
	[HorarioNocturno],
	[HorasExtra],
	[TieneOtrosIngresosQuinta],
	[Sindicalizado],
	[AfiliadoEPS],
	[RentaQuintaExonerada],
	[SituacionEspecial],
	[NumeroDocumentoIdentidad],
	[RegimenLaboral],
	[Discapacidad],
	[FechaInscripcionRegimen],
	[CUSSP],
	[AreaId],
	[SCTRSalud],
	[SCTRPension],
	[RegimenAlternativoAcumulativoAtipico],
	[JornadaMaxima],
	[GrupoHorarioID],
	[PeriodoRemuneracionID],
	[EPSID],
	[TrabajadorSituacionID],
	[TipoPagoID],
	[TipoDocumentoIdentidadID],
	[TipoTrabajadorID],
	[NivelEducativoID],
	[OcupacionID],
	[RegimenPensionarioID],
	[TipoContratoID],
	[Estado],
	[Codigo],
	[Imagen]
FROM
	[dbo].[Trabajadores]

--endregion



' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_PerSelTrabajador_NombreCompleto]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[usp_PerSelTrabajador_NombreCompleto]
@TrabajadorId	int
as
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
select 
	ltrim(rtrim(NombreTrabajador)) + '' '' + 
	ltrim(rtrim(ApellidoPaterno)) + '' '' + 
	ltrim(rtrim(ApellidoMaterno)) as ''NombreTrabajador'' 
from trabajadores
where TrabajadorId=@TrabajadorId' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_RodBuscarGrupoHorarioenTrabajador]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'
------------------------------------------------------------------------------------------------

  
CREATE PROCEDURE [dbo].[usp_RodBuscarGrupoHorarioenTrabajador]  
@GrupoHorarioId int  
AS  
SELECT       
  distinct(grupohorarioid)  
FROM      
  Trabajadores   
where GrupoHorarioId = @GrupoHorarioId  
' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_RodActivarUsuario]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[usp_RodActivarUsuario]
@usuarioID int,
@Estado int
AS
UPDATE 
		dbo.Usuarios
SET
		Estado = @Estado
WHERE
		UsuarioID = @usuarioID

' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_RodBuscarNombreUsuario]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[usp_RodBuscarNombreUsuario]    
@NombreUsuario NVARCHAR(50)    
AS    
SELECT    
  NombreUsuario     
FROM    
  Usuarios    
WHERE    
  NombreUsuario = @NombreUsuario   
' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_RodDelUsuarios]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'

-----------------------------------------


      
CREATE PROCEDURE [dbo].[usp_RodDelUsuarios]      
@UsuarioID int,  
@Estado int  
AS      
      
UPDATE  
  dbo.Usuarios  
SET   
  Estado = @Estado  
WHERE  
  UsuarioID = @UsuarioID

' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_PerSelUsuarios]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'



--region [dbo].[usp_SelUsuarios]

------------------------------------------------------------------------------------------------------------------------
-- Generated By:   Sistemas001 using CodeSmith 5.0.0.0
-- Template:       PlantillaProcedimientos.cst
-- Procedure Name: [dbo].[usp_SelUsuarios]
-- Date Generated: mi?rcoles, 13 de mayo de 2009
------------------------------------------------------------------------------------------------------------------------

CREATE PROCEDURE [dbo].[usp_PerSelUsuarios]
	@NombreUsuario nvarchar(50),
	@Clave		   nvarchar(50)
AS

SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED

SELECT
	[UsuarioID],
	[NombreUsuario],
	[Clave],
	[AreaId],
	[TransaccionUsuarioId],
	[actualizatipocambio],
	[modificatipocambiocancelacion],
	[acceso],
	[apruebaSolicitudes],
	[estado],
	[cargoId],
	[CodigoCentralTelefonica],
	[AutorizaPedidos],
	[ListoPedidos],
	[ModificaFechaLiquidacion],
	[caja],
	[TopePorcentageTarifa],
	[EntregaEncargo],
	[InformeVentas],
	[ActualizaCanjes],
	[PlanillaVoucherID],
	[CierreDiaAuditoria],
	[VerAlertas],
	[ReaperturaMesaBloqueada],
	[AutorizaCredito],
	[AutorizaCambiaEstadoFueraServicio],
	[AutorizaCambiaEstadoLimpieza],
	[ModificaFechaEmisionDocumento],
	[AutorizaEliminaFormaPago],
	[CambioProducto],
	[ModificaNumeroDocumento],
	[ModificaPreciosTarifas],
	[ActivaDocumentoAnulado],
	[Nomenclatura],
	[AnulaDocumento],
	[AnulaComanda],
	[AnulaRecibo],
	[AnulaReservaEvento],
	[AnulaReservaAlojamiento],
	[AutorizaConciliar],
	[AutorizaPaidOutConImpuestos],
	[ProductosVenta],
	[CheckIn],
	[MaestroArticulos],
	[ActualizaSGC],
	[ConfirmaEventos],
	[CerrarVoucher],
	[TentativoEventos],
	[CambiaMovimientoEmpresa],
	[ModificaUnidad],
	[AnulaPedidos],
	[AnulaSalidas],
	[CambiaPuntoVentaSalida],
	[TransferenciaRecibos],
	[EntregaPedidosCualquierArea],
	[CargoEgresosPaxSeRetiro],
	[TransfiereConsumos],
	[CierreTemporalPedidosInventarios],
	[ModificaAgregaProductos],
	[CambiaResponsableEmpresa],
	[CorreoDocumentoAnulado],
	[CorreoReciboAnulado],
	[CorreoFormaPagoAnulado],
	[AsignaTarifas],
	[AnulaDocumentoDiaCerrado],
	[AnulaDocumentoConNotaCredito],
	[LiberarHabitacionAntesdelaSalida],
	[DiasVenceClave],
	[DiaVencimientoClave],
	[VerLlamadasEntrantes],
	[VerLlamadasSalientes],
	[VerLlamadasEntreAnexos],
	[EliminaProductoComanda],
	[PermiteVerTodasLasLlamadas],
	[CierreMensualTelefonia],
	[ResponsableID],
	[RegistroRetenciones],
	[TrabajadorId],
	[IngresoManual]
FROM
	[dbo].[Usuarios]
WHERE
	[NombreUsuario] = @NombreUsuario AND
	[Clave] = @Clave

--endregion




' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_RodSelUsuarioClave]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'
------------------------------------------------------------------------------------------------------------------------------------------------------------

CREATE PROCEDURE [dbo].[usp_RodSelUsuarioClave]  
@TrabajadorId int  
AS  
SELECT   
  [NombreUsuario],    
  [Clave]  
FROM  
  [dbo].[Usuarios]  
WHERE  
  [TrabajadorId] = @TrabajadorId
' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_PerSelUsuariosMenus_MenuPadres]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'
CREATE PROCEDURE [dbo].[usp_PerSelUsuariosMenus_MenuPadres]
@UsuarioID	int
AS

SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED

SELECT
	[UsuariosMenu].[UsuarioMenuID],
	[UsuariosMenu].[UsuarioID],
	[UsuariosMenu].[MenuID]	
FROM
	[dbo].[UsuariosMenu] INNER JOIN [dbo].[Menues] on 
						[UsuariosMenu].[MenuID]=[Menues].[MenuID]
WHERE
	[UsuariosMenu].[UsuarioID]=@UsuarioID AND
	[Menues].[MenuPadreID] is null
' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_SelMarcasAll]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'
--region [dbo].[usp_SelMarcasAll]

------------------------------------------------------------------------------------------------------------------------
-- Generated By:   Sistemas001 using CodeSmith 5.0.0.0
-- Template:       PlantillaProcedimientos.cst
-- Procedure Name: [dbo].[usp_SelMarcasAll]
-- Date Generated: viernes, 22 de mayo de 2009
------------------------------------------------------------------------------------------------------------------------

CREATE PROCEDURE [dbo].[usp_SelMarcasAll]
AS

SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED

SELECT
	[MarcaID],
	[Nombre]
FROM
	[dbo].[Marca]

--endregion

' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_PerSelTrabajadoresAll]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'




CREATE PROCEDURE [dbo].[usp_PerSelTrabajadoresAll]
AS

SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED

SELECT
	T.[TrabajadorId] as ''TrabajadorID'',
	T.[Codigo] as ''Codigo'',
	dbo.FN_NOMBRECOMPLETO_TRABAJADOR(T.TrabajadorID) as ''Trabajador'',
	G.[Nombre] as ''Grupo Horario'',
	A.[NombreArea] as ''Area'',
	case(T.[HorasExtra])
		when 0 then ''No''
		when 1 then ''Si''
		else ''''
	end as ''Horas Extra''
FROM
	[dbo].[Trabajadores] T
LEFT JOIN Areas A ON T.AreaId=A.AreaId
LEFT JOIN GruposHorarios G ON T.GrupoHorarioID=G.GrupoHorarioID
where T.Estado=1
--endregion







' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_PerSelTrabajadorIngresosAll]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'

CREATE PROCEDURE [dbo].[usp_PerSelTrabajadorIngresosAll]
as
select distinct 
		TI.TrabajadorIngresoID,
		T.Codigo,
		dbo.FN_NOMBRECOMPLETO_TRABAJADOR(TI.TrabajadorID) as ''Trabajador'',		
		case(TI.Dias) 
			when 1 then ''Lunes''
			when 2 then ''Martes''
			when 3 then ''Miercoles''
			when 4 then ''Jueves''
			when 5 then ''Viernes''
			when 6 then ''Sabado''
			else ''Domingo''
		end as ''Dia'',
		TI.HoraIngreso as ''Ingreso'',
		TI.HorarioGrupoHoraIngreso as ''Ing. Prog.'',
		dbo.FN_MINUTOS_A_HORA(TI.MinutosDiferenciaIngreso) as ''Dif. Ing.'',
		TI.HoraSalida as ''Salida'',
		TI.HorarioGrupoHoraSalida as ''Sal. Prog.'',	
		dbo.FN_MINUTOS_A_HORA(TI.MinutosDiferenciaSalida) as ''Dif. Sal.'',	
		G.Nombre as ''G. Horario'',
		dbo.FN_MINUTOS_A_HORA(TI.MinutosReales) as ''H.T. Reales'',	
		dbo.FN_MINUTOS_A_HORA(TI.MinutosRemunerados) as ''H.T. Remuneradas'',
		dbo.FN_MINUTOS_A_HORA(TI.MinutosProgramados) as ''H.T. Programadas'',
		Case(A.Estado)
			when 0 then ''Pendiente Ingreso''
			when 1 then ''Autorizado Ingreso''
			when 2 then ''Rechazado Ingreso''
			when 3 then ''Pendiente Salida''
			when 4 then ''Autorizado Salida''
			when 5 then ''Rechazado Salida''
			when 6 then ''Aceptado Falta''
			else ''No necesita Autorizacion''
		end as ''Autorizacion'',		
		TI.HoraRefrigerioInicio as ''I. Refrig'',
		TI.HoraRefrigerioFin as ''F. Refrig'',
		AR.NombreArea as ''Area''
from	TrabajadorIngresos TI
		left join GruposHorarios G on G.GrupoHorarioID=TI.GrupoHorarioID
		left join Trabajadores T on T.TrabajadorID=TI.TrabajadorID
		left join Autorizaciones A on A.TrabajadorIngresoID=TI.TrabajadorIngresoID
		left join Areas AR on AR.AreaID=T.AreaID









' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[USP_UsuarioMovimientoCrea2]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'
CREATE     PROCEDURE [dbo].[USP_UsuarioMovimientoCrea2]
@UsuarioID				Int, 
@Movimiento				Text, 
@UsuarioIdAutorizado	Int ,
@IPEquipo				nVarChar(50), 
@UsuarioActualEquipo	nVarChar(50), 
@NombreEquipo			nVarChar(50),
@TablaMovimientoID		nVarChar(20), 
@RegistroMovimiento		nVarChar(20),
@MovimientoUltimo		text
AS
  Begin
  Begin Transaction
		Declare @RegistroID nVarChar(20)
        Exec USP_GeneraID "USUARIOSMOVIMIENTO",@RegistroID Output 
		If @@Error <> 0
           begin
              Rollback Transaction
              Return
           end 	

        INSERT INTO UsuariosMovimiento(
			UsuarioMovimientoID,
			UsuarioID,
			Dia,
			Movimiento,
			UsuarioIdAutorizado,
			IPEquipo,
			UsuarioActualEquipo,
			NombreEquipo,
			TablaMovimientoID,
			RegistroMovimiento,
			MovimientoUltimo)
         VALUES(
			@RegistroID,
			@UsuarioID,
			Getdate(),
			@Movimiento,
			@UsuarioIdAutorizado,
			@IPEquipo,
			@UsuarioActualEquipo,
			@NombreEquipo,
			@TablaMovimientoID,
			@RegistroMovimiento,
			@MovimientoUltimo)

        If @@Error <> 0
	      begin
	         Rollback Transaction
	         Return
	      end

   If @@Error = 0 
     Commit Transaction
   Else
     Rollback Transaction        
  End' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_RodInsUpdAutorizaciones]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'  
CREATE PROCEDURE [dbo].[usp_RodInsUpdAutorizaciones]          
 @AutorizacionID char(20),          
 --@TrabajadorIngresoID char(20),          
 @UsuarioID int,          
 @Fecha datetime,          
 @Hora datetime,          
 @Motivo text,          
 @Estado int,        
 @Remunerada int,     
 @FechaAutorizacion datetime,     
 @Movimiento text,         
 @UsuarioAutorizaID int,         
 @IPEquipo nvarchar(50),         
 @UsuarioActualEquipo nvarchar(50),         
 @NombreEquipo nvarchar(50),           
 @MovimientoUltimo text        
AS    
BEGIN TRANSACTION        
          
IF EXISTS(SELECT [AutorizacionID] FROM [dbo].[Autorizaciones] WHERE [AutorizacionID] = @AutorizacionID)          
BEGIN          
 UPDATE [dbo].[Autorizaciones] SET          
  --[TrabajadorIngresoID] = @TrabajadorIngresoID,          
  [UsuarioID] = @UsuarioID,          
  [Fecha] = @Fecha,          
  [Hora] = @Hora,          
  [Motivo] = @Motivo,          
  [Estado] = @Estado,      
  [Remunerada] = @Remunerada,    
  [FechaAutorizacion] = @FechaAutorizacion    
 WHERE          
  [AutorizacionID] = @AutorizacionID          
 IF @@ERROR <> 0        
 BEGIN        
  ROLLBACK TRANSACTION        
  RETURN        
 END         
 Exec USP_UsuarioMovimientoCrea2 @UsuarioID, @Movimiento, @UsuarioID, @IPEquipo, @UsuarioActualEquipo, @NombreEquipo, 78, @AutorizacionID, @MovimientoUltimo        
    If @@Error <> 0        
    begin        
     Rollback Transaction        
  Return        
 end        
END          
ELSE          
BEGIN         
EXEC USP_GeneraID ''Autorizaciones'',@AutorizacionID Output         
 If @@Error <> 0        
    BEGIN        
       ROLLBACK TRANSACTION        
       RETURN        
    END         
 INSERT INTO [dbo].[Autorizaciones] (          
  [AutorizacionID],          
  --[TrabajadorIngresoID],          
  [UsuarioID],          
  [Fecha],          
  [Hora],          
  [Motivo],          
  [Estado],      
  [Remunerada],    
  [FechaAutorizacion]          
 ) VALUES (          
  @AutorizacionID,          
 -- @TrabajadorIngresoID,          
  @UsuarioID,          
  @Fecha,          
  @Hora,          
  @Motivo,          
  @Estado,      
  @Remunerada,          
  @FechaAutorizacion    
 )          
 If @@Error <> 0        
    BEGIN        
       ROLLBACK TRANSACTION        
       RETURN        
    END        
 Exec USP_UsuarioMovimientoCrea2 @UsuarioID, @Movimiento, @UsuarioID, @IPEquipo, @UsuarioActualEquipo, @NombreEquipo, 75, @AutorizacionID, @MovimientoUltimo        
    If @@Error <> 0        
    begin        
     Rollback Transaction        
  Return        
 end        
END        
IF @@Error = 0         
     Commit Transaction        
ELSE        
     Rollback Transaction 

' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_RodInsHorariosDias]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'    

------------------------------------------------------------------------------------------------------------------------      

------------------------------------------------------------------------------------------------------------------------      
  
          
CREATE PROCEDURE [dbo].[usp_RodInsHorariosDias]            
 @HoraInicio datetime,            
 @HoraFinal datetime,            
 @HoraInicioRefrigerio datetime,            
 @HoraFinalRefrigerio datetime,            
 @DiaDeSemana int,            
 @HorasDiarias real,            
 @MinutosDiarios int,            
 @GrupoHorarioID int,       
 @Nocturno int,    
 @UsuarioID int,           
 @Movimiento text,           
 @UsuarioAutorizaID int,           
 @IPEquipo nvarchar(50),           
 @UsuarioActualEquipo nvarchar(50),           
 @NombreEquipo nvarchar(50),             
 @MovimientoUltimo text           
AS          
BEGIN             
  DECLARE @HorarioDiaIDGenerado int            
    EXEC USP_GeneraID ''HorariosDia'', @HorarioDiaIDGenerado output            
--    if(@HorarioDiaIDGenerado<100)            
--    set @HorarioDiaIDGenerado = @HorarioDiaIDGenerado -10            
--    else if(@HorarioDiaIDGenerado<1000)            
--       set @HorarioDiaIDGenerado = @HorarioDiaIDGenerado -100            
--     else if(@HorarioDiaIDGenerado<10000)            
--        set @HorarioDiaIDGenerado = @HorarioDiaIDGenerado -1000            
            
 If @@Error <> 0            
  BEGIN            
  ROLLBACK TRANSACTION            
  RETURN            
    END             
INSERT INTO [dbo].[HorariosDia] (            
 [HoraInicio],            
 [HoraFinal],            
 [HoraInicioRefrigerio],            
 [HoraFinalRefrigerio],            
 [DiaDeSemana],            
 [HorasDiarias],            
 [MinutosDiarios],            
 [GrupoHorarioID],    
 [Nocturno],         
 [HorarioDiaID]        
 ) VALUES (            
 @HoraInicio,            
 @HoraFinal,            
 @HoraInicioRefrigerio,            
 @HoraFinalRefrigerio,            
 @DiaDeSemana,            
 @HorasDiarias,            
 @MinutosDiarios,            
 @GrupoHorarioID,    
 @Nocturno,        
 @HorarioDiaIDGenerado           
 )            
END            
 SELECT @HorarioDiaIDGenerado            
 If @@Error <> 0            
    BEGIN            
       ROLLBACK TRANSACTION            
       RETURN            
    END            
 Exec USP_UsuarioMovimientoCrea2 @UsuarioID, @Movimiento, @UsuarioID, @IPEquipo, @UsuarioActualEquipo, @NombreEquipo, 79, @HorarioDiaIDGenerado, @MovimientoUltimo            
 If @@Error <> 0            
  begin            
  Rollback Transaction            
  Return            
 end   
' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_PerInsUpdTrabajadores]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'
CREATE PROCEDURE [dbo].[usp_PerInsUpdTrabajadores]
	@TrabajadorId int,
	@NombreTrabajador nvarchar(120),
	@ApellidoPaterno char(50),
	@ApellidoMaterno char(50),
	@HorarioNocturno tinyint,
	@HorasExtra tinyint,
	@TieneOtrosIngresosQuinta tinyint,
	@Sindicalizado tinyint,
	@AfiliadoEPS tinyint,
	@RentaQuintaExonerada tinyint,
	@SituacionEspecial tinyint,
	@NumeroDocumentoIdentidad varchar(50),
	@RegimenLaboral tinyint,
	@Discapacidad tinyint,
	@FechaInscripcionRegimen datetime,
	@CUSSP char(12),
	@AreaId int,
	@SCTRSalud tinyint,
	@SCTRPension tinyint,
	@RegimenAlternativoAcumulativoAtipico tinyint,
	@JornadaMaxima tinyint,
	@GrupoHorarioID int,
	@PeriodoRemuneracionID int,
	@EPSID int,
	@TrabajadorSituacionID int,
	@TipoPagoID int,
	@TipoDocumentoIdentidadID int,
	@TipoTrabajadorID int,
	@NivelEducativoID char(20),
	@OcupacionID int,
	@RegimenPensionarioID int,
	@TipoContratoID int,
	@Estado tinyint,
	@Codigo varchar(50),
	@Imagen image,
	@UsuarioID int, 
	@Movimiento text, 
	@UsuarioAutorizaID int, 
	@IPEquipo nvarchar(50), 
	@UsuarioActualEquipo nvarchar(50), 
	@NombreEquipo nvarchar(50), 	 
	@MovimientoUltimo text
AS

BEGIN TRANSACTION
IF EXISTS(SELECT [TrabajadorId] FROM [dbo].[Trabajadores] WHERE [TrabajadorId] = @TrabajadorId)
BEGIN
	UPDATE [dbo].[Trabajadores] SET
		[NombreTrabajador] = @NombreTrabajador,
		[ApellidoPaterno] = @ApellidoPaterno,
		[ApellidoMaterno] = @ApellidoMaterno,
		[HorarioNocturno] = @HorarioNocturno,
		[HorasExtra] = @HorasExtra,
		[TieneOtrosIngresosQuinta] = @TieneOtrosIngresosQuinta,
		[Sindicalizado] = @Sindicalizado,
		[AfiliadoEPS] = @AfiliadoEPS,
		[RentaQuintaExonerada] = @RentaQuintaExonerada,
		[SituacionEspecial] = @SituacionEspecial,
		[NumeroDocumentoIdentidad] = @NumeroDocumentoIdentidad,
		[RegimenLaboral] = @RegimenLaboral,
		[Discapacidad] = @Discapacidad,
		[FechaInscripcionRegimen] = @FechaInscripcionRegimen,
		[CUSSP] = @CUSSP,
		[AreaId] = @AreaId,
		[SCTRSalud] = @SCTRSalud,
		[SCTRPension] = @SCTRPension,
		[RegimenAlternativoAcumulativoAtipico] = @RegimenAlternativoAcumulativoAtipico,
		[JornadaMaxima] = @JornadaMaxima,
		[GrupoHorarioID] = @GrupoHorarioID,
		[PeriodoRemuneracionID] = @PeriodoRemuneracionID,
		[EPSID] = @EPSID,
		[TrabajadorSituacionID] = @TrabajadorSituacionID,
		[TipoPagoID] = @TipoPagoID,
		[TipoDocumentoIdentidadID] = @TipoDocumentoIdentidadID,
		[TipoTrabajadorID] = @TipoTrabajadorID,
		[NivelEducativoID] = @NivelEducativoID,
		[OcupacionID] = @OcupacionID,
		[RegimenPensionarioID] = @RegimenPensionarioID,
		[TipoContratoID] = @TipoContratoID,
		[Estado] = @Estado,
		[Codigo] = @Codigo,
		[Imagen] = @Imagen
	WHERE
		[TrabajadorId] = @TrabajadorId
	IF @@ERROR <> 0
	BEGIN
		ROLLBACK TRANSACTION
		RETURN
	END
	Exec USP_UsuarioMovimientoCrea2 @UsuarioID, @Movimiento, @UsuarioID, @IPEquipo, @UsuarioActualEquipo, @NombreEquipo, 200, @TrabajadorID, @MovimientoUltimo
    If @@Error <> 0
    begin
	    Rollback Transaction
		Return
	end
END
ELSE
BEGIN
	EXEC USP_GeneraID "Trabajadores",@TrabajadorId Output 
	If @@Error <> 0
    BEGIN
       ROLLBACK TRANSACTION
       RETURN
    END
	INSERT INTO [dbo].[Trabajadores] (
		[TrabajadorId],
		[NombreTrabajador],
		[ApellidoPaterno],
		[ApellidoMaterno],
		[HorarioNocturno],
		[HorasExtra],
		[TieneOtrosIngresosQuinta],
		[Sindicalizado],
		[AfiliadoEPS],
		[RentaQuintaExonerada],
		[SituacionEspecial],
		[NumeroDocumentoIdentidad],
		[RegimenLaboral],
		[Discapacidad],
		[FechaInscripcionRegimen],
		[CUSSP],
		[AreaId],
		[SCTRSalud],
		[SCTRPension],
		[RegimenAlternativoAcumulativoAtipico],
		[JornadaMaxima],
		[GrupoHorarioID],
		[PeriodoRemuneracionID],
		[EPSID],
		[TrabajadorSituacionID],
		[TipoPagoID],
		[TipoDocumentoIdentidadID],
		[TipoTrabajadorID],
		[NivelEducativoID],
		[OcupacionID],
		[RegimenPensionarioID],
		[TipoContratoID],
		[Estado],
		[Codigo],
		[Imagen]
	) VALUES (
		@TrabajadorId,
		@NombreTrabajador,
		@ApellidoPaterno,
		@ApellidoMaterno,
		@HorarioNocturno,
		@HorasExtra,
		@TieneOtrosIngresosQuinta,
		@Sindicalizado,
		@AfiliadoEPS,
		@RentaQuintaExonerada,
		@SituacionEspecial,
		@NumeroDocumentoIdentidad,
		@RegimenLaboral,
		@Discapacidad,
		@FechaInscripcionRegimen,
		@CUSSP,
		@AreaId,
		@SCTRSalud,
		@SCTRPension,
		@RegimenAlternativoAcumulativoAtipico,
		@JornadaMaxima,
		@GrupoHorarioID,
		@PeriodoRemuneracionID,
		@EPSID,
		@TrabajadorSituacionID,
		@TipoPagoID,
		@TipoDocumentoIdentidadID,
		@TipoTrabajadorID,
		@NivelEducativoID,
		@OcupacionID,
		@RegimenPensionarioID,
		@TipoContratoID,
		@Estado,
		@Codigo,
		@Imagen
	)
	If @@Error <> 0
    BEGIN
       ROLLBACK TRANSACTION
       RETURN
    END
	Exec USP_UsuarioMovimientoCrea2 @UsuarioID, @Movimiento, @UsuarioID, @IPEquipo, @UsuarioActualEquipo, @NombreEquipo, 200, @TrabajadorID, @MovimientoUltimo
    If @@Error <> 0
    begin
	    Rollback Transaction
		Return
	end
END
IF @@Error = 0 
     Commit Transaction
ELSE
     Rollback Transaction    

--endregion





' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_InsUpdMarcas]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'


--region [dbo].[usp_InsUpdMarcas]

------------------------------------------------------------------------------------------------------------------------
-- Generated By:   Sistemas001 using CodeSmith 5.0.0.0
-- Template:       PlantillaProcedimientos.cst
-- Procedure Name: [dbo].[usp_InsUpdMarcas]
-- Date Generated: miércoles, 20 de mayo de 2009
------------------------------------------------------------------------------------------------------------------------

CREATE PROCEDURE [dbo].[usp_InsUpdMarcas]
--	@MarcaID int,
--	@Nombre varchar(50)
--AS
--
--SET NOCOUNT ON
--
--IF EXISTS(SELECT [MarcaID] FROM [dbo].[Marca] WHERE [MarcaID] = @MarcaID)
--BEGIN
--	UPDATE [dbo].[Marca] SET
--		[Nombre] = @Nombre
--	WHERE
--		[MarcaID] = @MarcaID
--END
--ELSE
--BEGIN
--	INSERT INTO [dbo].[Marca] (
--		[MarcaID],
--		[Nombre]
--	) VALUES (
--		@MarcaID,
--		@Nombre
--	)
--END
--
----endregion
--
--


	@MarcaID int,
@nombre varchar(50),
	@UsuarioID int, 
	@Movimiento text, 
	@UsuarioAutorizaID int, 
	@IPEquipo nvarchar(50), 
	@UsuarioActualEquipo nvarchar(50), 
	@NombreEquipo nvarchar(50), 	 
	@MovimientoUltimo text
AS
BEGIN TRANSACTION
IF EXISTS(SELECT [Nombre] FROM [dbo].[Marca] WHERE [MarcaID] = @MarcaID)
BEGIN	
	UPDATE [dbo].[Marca] SET
		[Nombre] = @Nombre
	WHERE
		[MarcaID] = @MarcaID
	IF @@ERROR <> 0
	BEGIN
		ROLLBACK TRANSACTION
		RETURN
	END	
	Exec USP_UsuarioMovimientoCrea2 @UsuarioID, @Movimiento, @UsuarioID, @IPEquipo, @UsuarioActualEquipo, @NombreEquipo, 210, @MarcaID, @MovimientoUltimo
    If @@Error <> 0
    begin
	    Rollback Transaction
		Return
	end
END

ELSE
begin
	declare @Ultimo int


	EXEC USP_GeneraID "Marca",@Ultimo Output 
	If @@Error <> 0
    BEGIN
       ROLLBACK TRANSACTION
       RETURN
    END
	INSERT INTO [dbo].[Marca] (
		[MarcaID],
		[Nombre]
		
	) VALUES (
		@Ultimo,
		@Nombre
	)
	If @@Error <> 0
    BEGIN
       ROLLBACK TRANSACTION
       RETURN
    END
	Exec USP_UsuarioMovimientoCrea2 @UsuarioID, @Movimiento, @UsuarioID, @IPEquipo, @UsuarioActualEquipo, @NombreEquipo, 75, @Ultimo, @MovimientoUltimo
    If @@Error <> 0
    begin
	    Rollback Transaction
		Return
	end
END
IF @@Error = 0 
     Commit Transaction
ELSE
     Rollback Transaction        
' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_RodInsUpdUsuarios]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'
    
               
CREATE PROCEDURE [dbo].[usp_RodInsUpdUsuarios]                
 @UsuarioID int,                
 @NombreUsuario nvarchar(50),                
 @Clave nvarchar(50),              
 @TrabajadorID int,            
 @PerfilID int,          
 @AreaId int,        
 @IngresoManual int,
 @Estado int,    
        
 @UsuarioIDLog int,             
 @Movimiento text,             
 @UsuarioAutorizaID int,             
 @IPEquipo nvarchar(50),             
 @UsuarioActualEquipo nvarchar(50),             
 @NombreEquipo nvarchar(50),               
 @MovimientoUltimo text           
AS            
BEGIN TRANSACTION                
IF EXISTS(SELECT [UsuarioID] FROM [dbo].[Usuarios] WHERE [UsuarioID] = @UsuarioID)                
BEGIN                
 UPDATE [dbo].[Usuarios] SET                
  [NombreUsuario] = @NombreUsuario,                
  [Clave] = @Clave,            
  [PerfilID] = @PerfilID,        
  [AreaId] = @AreaId,    
  [IngresoManual] = @IngresoManual,
  [Estado] = @Estado        
 WHERE                
  [UsuarioID] = @UsuarioID                
 IF @@ERROR <> 0            
 BEGIN            
  ROLLBACK TRANSACTION            
 RETURN            
 END             
 Exec USP_UsuarioMovimientoCrea2 @UsuarioIDLog, @Movimiento, @UsuarioID, @IPEquipo, @UsuarioActualEquipo, @NombreEquipo, 205, @UsuarioID, @MovimientoUltimo            
    If @@Error <> 0            
  begin            
  Rollback Transaction            
 Return            
 end            
END                
ELSE                
BEGIN                
    DECLARE @Ultimo int              
 EXEC USP_GeneraID "Usuarios",@Ultimo Output               
 If @@Error <> 0              
    BEGIN              
       ROLLBACK TRANSACTION              
    RETURN              
    END              
 INSERT INTO [dbo].[Usuarios] (                
  [UsuarioID],                
  [NombreUsuario],                
  [Clave],              
  [TrabajadorID],            
  [PerfilID],      
  [AreaId],    
  [IngresoManual],
  [Estado]
)              
VALUES (                
  @Ultimo,                
  @NombreUsuario,                
  @Clave,              
  @TrabajadorID,            
  @PerfilID,      
  @AreaId,    
  @IngresoManual,
  @Estado
)              
If @@Error <> 0            
    BEGIN            
       ROLLBACK TRANSACTION            
       RETURN            
    END            
 Exec USP_UsuarioMovimientoCrea2 @UsuarioIDLog, @Movimiento, @UsuarioID, @IPEquipo, @UsuarioActualEquipo, @NombreEquipo, 205, @Ultimo, @MovimientoUltimo            
    If @@Error <> 0            
   begin            
  Rollback Transaction            
  Return            
   end            
END            
IF @@Error = 0             
     Commit Transaction            
ELSE            
     Rollback Transaction             
          
--endregion   ' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_RodUpdHorariosDias]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'------------------------------------------------------------------------------------------------------------------------      

------------------------------------------------------------------------------------------------------------------------      
  
        
        
CREATE PROCEDURE [dbo].[usp_RodUpdHorariosDias]          
 @HorarioDiaID int,          
 @HoraInicio datetime,          
 @HoraFinal datetime,          
 @HoraInicioRefrigerio datetime,          
 @HoraFinalRefrigerio datetime,          
 @DiaDeSemana int,          
 @HorasDiarias real,          
 @MinutosDiarios int,          
 @GrupoHorarioID int,        
 @Nocturno int,    
 @UsuarioID int,         
 @Movimiento text,         
 @UsuarioAutorizaID int,         
 @IPEquipo nvarchar(50),         
 @UsuarioActualEquipo nvarchar(50),         
 @NombreEquipo nvarchar(50),           
 @MovimientoUltimo text        
AS        
SET NOCOUNT ON          
          
UPDATE [dbo].[HorariosDia] SET          
 [HoraInicio] = @HoraInicio,          
 [HoraFinal] = @HoraFinal,          
 [HoraInicioRefrigerio] = @HoraInicioRefrigerio,          
 [HoraFinalRefrigerio] = @HoraFinalRefrigerio,          
 [DiaDeSemana] = @DiaDeSemana,          
 [HorasDiarias] = @HorasDiarias,          
 [MinutosDiarios] = @MinutosDiarios,          
 [GrupoHorarioID] = @GrupoHorarioID,    
 [Nocturno] = @Nocturno       
WHERE          
 [HorarioDiaID] = @HorarioDiaID          
          
 IF @@ERROR <> 0        
  BEGIN        
   ROLLBACK TRANSACTION        
  RETURN        
 END         
Exec USP_UsuarioMovimientoCrea2 @UsuarioID, @Movimiento, @UsuarioID, @IPEquipo, @UsuarioActualEquipo, @NombreEquipo, 75, @HorarioDiaID, @MovimientoUltimo        
    If @@Error <> 0        
    begin        
     Rollback Transaction        
  Return        
 end   

' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_RodUpdMinutosRemunerados]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'
CREATE PROCEDURE [dbo].[usp_RodUpdMinutosRemunerados]  
@TrabajadorIngresoID char(20),  
@MinutosRemunerados int,
@UsuarioID int,                
@Movimiento text,                 
@UsuarioAutorizaID int,                 
@IPEquipo nvarchar(50),                 
@UsuarioActualEquipo nvarchar(50),                 
@NombreEquipo nvarchar(50),                   
@MovimientoUltimo text                
AS        

UPDATE  
		dbo.TrabajadorIngresos  
SET  
		MinutosRemunerados=@MinutosRemunerados
WHERE  
		TrabajadorIngresoID=@TrabajadorIngresoID  
  
If @@Error <> 0                
	BEGIN                
		ROLLBACK TRANSACTION                
		RETURN                
    END                
Exec USP_UsuarioMovimientoCrea2 @UsuarioID, @Movimiento, @UsuarioID, @IPEquipo, @UsuarioActualEquipo, @NombreEquipo, 79, @TrabajadorIngresoID, @MovimientoUltimo                
    If @@Error <> 0                
	BEGIN                
		Rollback Transaction                
		Return                
	END     ' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_RodIngresaGruposHorarios]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'------------------------------------------------------------------------------------------------


  
  
------------------------------------------------------------------------------------------------------------------------      
  
      
CREATE PROCEDURE [dbo].[usp_RodIngresaGruposHorarios]              
--@GrupoHorarioID int output,              
@Nombre varchar(50),              
@Estado varchar(50),                
@SinAutorizacion int,           
@EstablecimientoId int,      
@Tolerancia int,        
@UsuarioID int,              
@Movimiento text,               
@UsuarioAutorizaID int,               
@IPEquipo nvarchar(50),               
@UsuarioActualEquipo nvarchar(50),               
@NombreEquipo nvarchar(50),                 
@MovimientoUltimo text              
AS      
BEGIN              
  DECLARE @var varchar(10)              
  DECLARE @GrupoHorarioIDGenerado int              
    EXEC USP_GeneraID ''GruposHorarios'', @GrupoHorarioIDGenerado output              
--    if(@GrupoHorarioIDGenerado<100)              
--    set @GrupoHorarioIDGenerado = @GrupoHorarioIDGenerado -10              
--    else if(@GrupoHorarioIDGenerado<1000)              
--       set @GrupoHorarioIDGenerado = @GrupoHorarioIDGenerado -100              
--     else if(@GrupoHorarioIDGenerado<10000)              
--        set @GrupoHorarioIDGenerado = @GrupoHorarioIDGenerado -1000              
                
    If @@Error <> 0              
    BEGIN              
     ROLLBACK TRANSACTION              
     RETURN              
    END               
    INSERT INTO GruposHorarios              
    (GrupoHorarioID,      
      Nombre,       
   Estado,       
   SinAutorizacion,       
   EstablecimientoId,       
   Tolerancia)              
  VALUES              
    (@GrupoHorarioIDGenerado,       
  @Nombre,       
  @Estado,        
  @SinAutorizacion,       
  @EstablecimientoId,       
  @Tolerancia)              
 END              
  SELECT @GrupoHorarioIDGenerado              
 If @@Error <> 0              
    BEGIN              
       ROLLBACK TRANSACTION              
       RETURN              
    END              
 Exec USP_UsuarioMovimientoCrea2 @UsuarioID, @Movimiento, @UsuarioID, @IPEquipo, @UsuarioActualEquipo, @NombreEquipo, 79, @GrupoHorarioIDGenerado, @MovimientoUltimo              
    If @@Error <> 0              
    begin              
     Rollback Transaction              
  Return              
 end   
' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_RodUpdGruposHorarios]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'

------------------------------------------------------------------------------------------------------------------------      
  
      
CREATE PROCEDURE [dbo].[usp_RodUpdGruposHorarios]                
 @GrupoHorarioID int,                
 @Nombre varchar(50),                
 @Estado varchar(50) ,                    
 @SinAutorizacion int,      
 @Tolerancia int,      
 @UsuarioID int,                
 @Movimiento text,                 
 @UsuarioAutorizaID int,                 
 @IPEquipo nvarchar(50),                 
 @UsuarioActualEquipo nvarchar(50),                 
 @NombreEquipo nvarchar(50),                   
 @MovimientoUltimo text                
AS      
SET NOCOUNT ON                
                
UPDATE [dbo].[GruposHorarios] SET                
 [Nombre] = @Nombre,                
 [Estado] = @Estado,                 
 [SinAutorizacion] = @SinAutorizacion,      
 [Tolerancia] = @Tolerancia      
WHERE                
 [GrupoHorarioID] = @GrupoHorarioID                
                
IF @@ERROR <> 0              
 BEGIN              
  ROLLBACK TRANSACTION              
  RETURN              
 END               
 Exec USP_UsuarioMovimientoCrea2 @UsuarioID, @Movimiento, @UsuarioID, @IPEquipo, @UsuarioActualEquipo, @NombreEquipo, 78, @GrupoHorarioID, @MovimientoUltimo              
    If @@Error <> 0              
    begin              
     Rollback Transaction              
  Return              
 end              

' 
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_PerInsUpdFeriados]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'

CREATE PROCEDURE [dbo].[usp_PerInsUpdFeriados]
	@FeriadoID int,
	@Fecha datetime,
	@FechaCreada datetime,
	@Motivo varchar(50),
	@Estado int,
	@UsuarioID int, 
	@Movimiento text, 
	@UsuarioAutorizaID int, 
	@IPEquipo nvarchar(50), 
	@UsuarioActualEquipo nvarchar(50), 
	@NombreEquipo nvarchar(50), 	 
	@MovimientoUltimo text
AS
BEGIN TRANSACTION
IF EXISTS(SELECT [FeriadoID] FROM [dbo].[Feriados] WHERE [FeriadoID] = @FeriadoID)
BEGIN	
	UPDATE [dbo].[Feriados] SET
		[Fecha] = @Fecha,		
		[UsuarioID] = @UsuarioID,
		[Motivo] = @Motivo,
		[Estado] = @Estado
	WHERE
		[FeriadoID] = @FeriadoID
	IF @@ERROR <> 0
	BEGIN
		ROLLBACK TRANSACTION
		RETURN
	END	
	Exec USP_UsuarioMovimientoCrea2 @UsuarioID, @Movimiento, @UsuarioID, @IPEquipo, @UsuarioActualEquipo, @NombreEquipo, 75, @FeriadoID, @MovimientoUltimo
    If @@Error <> 0
    begin
	    Rollback Transaction
		Return
	end
END

ELSE
BEGIN
	EXEC USP_GeneraID "Feriados",@FeriadoID Output 
	If @@Error <> 0
    BEGIN
       ROLLBACK TRANSACTION
       RETURN
    END
	INSERT INTO [dbo].[Feriados] (
		[FeriadoID],
		[Fecha],
		[FechaCreada],
		[UsuarioID],
		[Motivo],
		[Estado]
	) VALUES (
		@FeriadoID,
		@Fecha,
		@FechaCreada,
		@UsuarioID,
		@Motivo,
		@Estado
	)
	If @@Error <> 0
    BEGIN
       ROLLBACK TRANSACTION
       RETURN
    END
	Exec USP_UsuarioMovimientoCrea2 @UsuarioID, @Movimiento, @UsuarioID, @IPEquipo, @UsuarioActualEquipo, @NombreEquipo, 75, @FeriadoID, @MovimientoUltimo
    If @@Error <> 0
    begin
	    Rollback Transaction
		Return
	end
END
IF @@Error = 0 
     Commit Transaction
ELSE
     Rollback Transaction        


' 
END
