1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
|
--NUEVOS RESULTADOS DEL CURSOR
declarar
@w_RetCode internacional,
@w_RetStatus internacional,
@w_RetMsg varchar (255),
fecha y hora @r_PrevWorkDay,
fecha y hora @r_NextWorkDay,
carbón de leña del @w_EmployeeID (6),
@w_EmployeeCode internacional,
fecha y hora @w_NPDDay,
fecha y hora del @p_BeginDate,
fecha y hora del @p_EndDate
seleccionar el @w_RetCode = 0
seleccionar el @p_BeginDate = “08/01/10”
seleccionar el @p_EndDate = “08/10/10”
DECLARAR
fecha y hora del @TMP_BeginDate,
fecha y hora del @TMP_EndDate
FIJAR el @TMP_BeginDate = DATEADD (semana, -3, el @p_BeginDate)
FIJAR el @TMP_EndDate = DATEADD (semana, +3, el @p_EndDate)
DECLARAR LA TABLA del @TSD (CNT [la internacional] NO NULO,
[EMPLOYEECODE] [internacional] NO ANULAR,
[ADMINISTRATIONDATE] [fecha y hora] FALTA DE INFORMACIÓN,
[DAILYPATTERNCODE] [internacional] FALTA DE INFORMACIÓN,
[STANDARDMINSINDAILYPATTERN] [smallint] FALTA DE INFORMACIÓN,
[STANDARDMINUTESACHIEVED] [smallint] NO FALTA DE INFORMACIÓN)
INSERTAR EN @TSD
SELECCIONAR CNT
, EMPLOYEECODE
, ADMINISTRATIONDATE
, DAILYPATTERNCODE
, STANDARDMINSINDAILYPATTERN
, STANDARDMINUTESACHIEVED
De dbo.TIMESUMMARYDAY
DONDE DAILYPATTERNCODE = 68206 Y
ADMINISTRATIONDATE ENTRE EL @TMP_BEGINDATE Y EL @TMP_ENDDATE
CANCELACIÓN DEL @TSD
DONDE (STANDARDMINSINDAILYPATTERN = 0 Y STANDARDMINUTESACHIEVED <> 0)
DECLARAR LA TABLA DEL @EMP (
[EmployeeId] [varchar] (15) NO ANULAR,
[EmployeeCode] [internacional] FALTA DE INFORMACIÓN,
[Apellido] [varchar] (40) ANULAN,
[Nombres] [varchar] (40) ANULAN,
[Equipo] [varchar] (16) ANULAN,
[Centro] [varchar] (5) FALTA DE INFORMACIÓN)
PARTE MOVIBLE EN @EMP
SELECCIONAR EmployeeId
, EmployeeCode
, Apellido
, Nombres
, Centro
, Equipo
De dbo.xPLT_EmpInfo
DONDE active > 0
DECLARAR EL CURSOR del emp_cur para
SELECCIONAR
eiv.EmployeeID,
tsd.EMPLOYEECODE,
tsd.ADMINISTRATIONDATE
De eiv del @EMP
interno ensamblar el @TSD tsd
en eiv.EmployeeCode = tsd.EmployeeCode
DONDE
tsd.ADMINISTRATIONDATE entre el @p_BeginDate y el @p_EndDate y
tsd.STANDARDMINSINDAILYPATTERN = 0
CREAR LA TABLA #TMP9001
(
Carbón de leña de EmployeeID (6),
Fecha y hora de NPDDay,
Fecha y hora de PrevWorkDayAbs,
Fecha y hora de NextWorkDayAbs
)
abrir el emp_cur
traer después de emp_cur en el @w_EmployeeID, @w_EmployeeCode, @w_NPDDay
si @@fetch_status <> 0
end_ret indicado -- ningunos datos de calificación al proceso
mientras que @@fetch_status = 0
comenzar -- lazo del cursor
-- determinar los días anteriores y próximos del trabajo
@w_RetStatus del exec = @w_EmployeeId de dbo.xPLT_PrevNextWorkDay, @w_NPDDay, 0, salida @r_PrevWorkDay, salida @r_NextWorkDay
si @w_RetStatus <> 0
comenzar
seleccionar el @w_RetMsg = “xPLT_WTAAbsenceSpanNPD: llamar a fall xPLT_PrevNextWorkDay con el código de retorno: ” + convertido (carbón de leña (1), @w_RetStatus)
raiserror (“%s”, 18.1, @w_RetMsg)
seleccionar el @w_RetCode = 1
end_ret indicado
extremo
-- probar para la ausencia de los días enteros en los días anteriores y próximos del trabajo
si
(
selecto
cuenta (*)
de
@TSD tsd
donde
tsd.EMPLOYEECODE = @w_EmployeeCode y
(tsd.ADMINISTRATIONDATE = @r_PrevWorkDay o tsd.ADMINISTRATIONDATE = @r_NextWorkDay) y
tsd.STANDARDMINSINDAILYPATTERN > 0 y
tsd.STANDARDMINUTESACHIEVED = 0
) = 2
comenzar
insertar en #tmp9001 (EmployeeID, NPDDay, PrevWorkDayAbs, NextWorkDayAbs)
valores (@w_EmployeeID, @w_NPDDay, @r_PrevWorkDay, @r_NextWorkDay)
extremo
traer después de emp_cur en el @w_EmployeeID, @w_EmployeeCode, @w_NPDDay
extremo -- lazo del cursor
-- resultset de vuelta
selecto
t1.*,
eiv. Apellido,
eiv. Nombres,
eiv. Centro,
eiv. Equipo
de
T1 #tmp9001
interno ensamblar el eiv de dbo.xPLT_EmpInfo_Vw
en t1.EmployeeID = eiv.EmployeeID COMPAGINAN Latin1_General_CI_AS
orden cerca
t1.EmployeeID,
t1.NPDDay
--seleccionar * de T1 #tmp9001
end_ret:
emp_cur cercano
desasignar el emp_cur
caer la tabla #tmp9001
--volver el @w_RetCode
seleccionar el @w_RetCode
IR
|