martes, 26 de junio de 2018

Generar Tabla de Calendarios y Calendarios x Empleado



Estimados,

En esta ocasión les dejare este pequeño ejemplo como yo realice un calendario y calendario empleado por temas de rrhh.

Slds



declare @Fecha datetime = '01/12/2018'

 declare @ini datetime
declare @fin datetime

--primer dia del mes
SELECT  @ini =  DATEADD(mm, DATEDIFF(mm,0,@Fecha ), 0)

--ultimo dia del mes
SELECT @fin  = dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,@Fecha  )+1, 0));


 declare @begdate as datetime
declare @enddate as datetime
declare @diff as int

declare @T_Fecha Table
(
Periodo varchar(10),
Annio int  ,
Mes int  ,
Fecha datetime ,
Feriado bit
)

set @begdate = (select cast( @ini as datetime)  )
set @enddate = (select cast(@fin as datetime)  )
set @diff = datediff(day, @begdate ,@enddate)

while (@begdate <= @enddate) --insertar el registro hasta que fecha inicio y fin sean iguales
begin
     --insert into @T_Fecha  values( ( cast( year(@begdate) as varchar)+ '-' + RIGHT( '00' + cast( month(@begdate) AS varchar), 2)  ) , year(@begdate), month(@begdate),  @begdate , 0)
insert into Calendario values( ( cast( year(@begdate) as varchar)+ '-' + RIGHT( '00' + cast( month(@begdate) AS varchar), 2)  ) , year(@begdate), month(@begdate),  @begdate , 0)
set @begdate = dateadd(day,1,@begdate) --vamos incrementando los días
end

select distinct Periodo from Calendario 

select distinct idpersonal  , Periodo from dbo.personal
left join Calendario on Calendario.Periodo=Calendario.Periodo

insert into   EmpleadoCalendario
select distinct idpersonal  , Periodo from dbo.personal
left join Calendario on Calendario.Periodo=Calendario.Periodo

select * from EmpleadoCalendario where idempleado = 3

martes, 19 de junio de 2018

Limpiar Formulario desde C# ASP.NET - Nuevo

Para limpiar un formulario desde un boton "Nuevo", podemos realizarlos con este pequeño codigo, esto incluye asi tengamos querystrings en nuestros formularios.



Response.Redirect(Request.RawUrl.Replace(Request.Url.Query, ""));




Slds