Script Tabla PagoHoraExtra
https://drive.google.com/open?id=0B7Ct7K_LTJvSM0QzWjh2bkVRbkk
Procedimiento Almacenado
-- =============================================
-- Author: Daniel
-- Create date: 26/10/2016
-- Description: Cálculo
de Horas Extras
-- =============================================
ALTER PROCEDURE paCalcHoras
--
Add the parameters for the stored procedure here
@Anio int = 2016,
@Mes int
= 12
AS
BEGIN
--
SET NOCOUNT ON added to prevent extra result sets from
--
interfering with SELECT statements.
SET
NOCOUNT ON;
-- INSERTE LINEAS DE CODIGO
DECLARE @Contador INT; -- DECLARAR VARIABLE
SET @Contador = 0; -- ASIGNAR VALOR
-- CUENTA LAS FILAS DE LA TABLA
SELECT @Contador = COUNT(*)
FROM HorasExtras
WHERE YEAR(HorasExtras.Fecha) = @Anio
AND MONTH(HorasExtras.Fecha) = @Mes;
--
ESTRUCTURA DECISION
IF (@Contador = 0)
BEGIN
SELECT 'NO EXISTEN HORAS
EXTRAS: ',
@Mes, '/', @Anio;
END
ELSE
BEGIN
-- ANTES DE REALIZAR EL INSERT VALIDAR
-- QUE NO HAYAN DATOS PARA ESA FECHA
SET @Contador = 0;
SELECT @Contador = COUNT(*)
FROM PagoHoraExtra
WHERE Anio = @Anio
AND Mes = @Mes;
-- SI @Contador > 0 entonces SI HAY DATOS
IF(@Contador>0)
BEGIN
SELECT 'Período YA FUE
Calculado: ',
@Mes, '/', @Anio;
END
ELSE
BEGIN
INSERT INTO
PagoHoraExtra
(CodEmpleado,
HorasTotales,
Anio, Mes, MontoPagado)
SELECT CodigoEmpleado AS
CodEmpleado,
SUM(Cantidad) AS HorasTotales,
YEAR(Fecha) AS Anio,
MONTH(Fecha) AS Mes,
SUM(Cantidad) * 11.70 AS MontoPagado
FROM HorasExtras
WHERE YEAR(Fecha) = @Anio
AND MONTH(Fecha) = @Mes
GROUP BY
CodigoEmpleado,
YEAR(Fecha), MONTH(Fecha);
END -- IF(@Contador > 0)
END -- IF (@Contador=0)
SELECT
@Anio, @Mes
END -- BEGIN PROC
GO
No hay comentarios.:
Publicar un comentario