[COLOR=#0000FF]ALTER[/color] [COLOR=#0000FF]PROCEDURE[/color] "micros"[COLOR=#808080].[/color]"sp_ClockOutInEmployee"[COLOR=#808080](IN[/color] @employee_num OBJ_NUM[COLOR=#808080])[/color]
[COLOR=#0000FF]BEGIN[/color]
[COLOR=#0000FF]DECLARE[/color] @emp_seq SEQ_NUM[COLOR=#808080];[/color]
[COLOR=#0000FF]DECLARE[/color] @job_seq SEQ_NUM[COLOR=#808080];[/color]
[COLOR=#0000FF]DECLARE[/color] @tm_clk_status TIME_CLOCK_STATUS[COLOR=#808080];[/color]
[COLOR=#0000FF]DECLARE[/color] @tm_card_num [COLOR=#0000FF]SMALLINT[/color][COLOR=#808080];[/color]
[COLOR=#0000FF]DECLARE[/color] @tm_card_pg_num [COLOR=#0000FF]SMALLINT[/color][COLOR=#808080];[/color]
[COLOR=#0000FF]DECLARE[/color] @tm_card_line_find_line_num [COLOR=#0000FF]SMALLINT[/color][COLOR=#808080];[/color]
[COLOR=#0000FF]DECLARE[/color] @num_clk_in_outs [COLOR=#0000FF]SMALLINT[/color][COLOR=#808080];[/color]
[COLOR=#0000FF]DECLARE[/color] @tm_card_seq SEQ_NUM[COLOR=#808080];[/color]
[COLOR=#0000FF]DECLARE[/color] @tm_clk_sched_seq SEQ_NUM[COLOR=#808080];[/color]
[COLOR=#0000FF]DECLARE[/color] @rvc_seq SEQ_NUM[COLOR=#808080];[/color]
[COLOR=#0000FF]DECLARE[/color] @clk_in_status [COLOR=#0000FF]CHAR[/color][COLOR=#808080]([/color]1[COLOR=#808080]);[/color]
[COLOR=#0000FF]DECLARE[/color] @NOW [COLOR=#0000FF]TIMESTAMP[/color][COLOR=#808080];[/color]
[COLOR=#0000FF]DECLARE[/color] @NOWINUCT [COLOR=#0000FF]TIMESTAMP[/color][COLOR=#808080];[/color]
[COLOR=#0000FF]DECLARE[/color] @original_nowinuct [COLOR=#0000FF]TIMESTAMP[/color][COLOR=#808080];[/color]
[COLOR=#808080]//[/color][COLOR=#008000]---------------------------------------------------------------------------------[/color]
[COLOR=#808080]//[/color][COLOR=#0000FF]get[/color] info [COLOR=#0000FF]from[/color] emp_status
[COLOR=#0000FF]SELECT[/color] stat[COLOR=#808080].[/color]emp_seq[COLOR=#808080],[/color]
stat[COLOR=#808080].[/color]tm_clk_status[COLOR=#808080],[/color]
stat[COLOR=#808080].[/color]tm_card_line_find_line_num[COLOR=#808080],[/color]
stat[COLOR=#808080].[/color]num_clk_in_outs
[COLOR=#0000FF]INTO[/color] @emp_seq[COLOR=#808080],[/color]
@tm_clk_status[COLOR=#808080],[/color]
@tm_card_line_find_line_num[COLOR=#808080],[/color]
@num_clk_in_outs
[COLOR=#0000FF]FROM[/color] micros[COLOR=#808080].[/color]emp_status stat[COLOR=#808080],[/color]
micros[COLOR=#808080].[/color]emp_def def
[COLOR=#0000FF]WHERE[/color] def[COLOR=#808080].[/color]obj_num [COLOR=#808080]=[/color] @employee_num
[COLOR=#808080]AND[/color] def[COLOR=#808080].[/color]emp_seq [COLOR=#808080]=[/color] stat[COLOR=#808080].[/color]emp_seq[COLOR=#808080];[/color]
[COLOR=#808080]//[/color]SCR 21658 Do [COLOR=#808080]not[/color] clock [COLOR=#0000FF]out[/color] [COLOR=#808080]/[/color] [COLOR=#808080]in[/color] emps [COLOR=#0000FF]on[/color] [COLOR=#0000FF]break[/color]
[COLOR=#0000FF]IF[/color] @tm_clk_status [COLOR=#808080]IN[/color][COLOR=#0000FF] [/color][COLOR=#808080]([/color][COLOR=#FF0000]'P'[/color][COLOR=#808080],[/color][COLOR=#FF0000]'B'[/color][COLOR=#808080],[/color][COLOR=#FF0000]'O'[/color][COLOR=#808080])[/color] [COLOR=#0000FF]THEN[/color]
[COLOR=#0000FF]MESSAGE[/color] [COLOR=#FF0000]'Employee '[/color] [COLOR=#808080]||[/color] @employee_num [COLOR=#808080]||[/color] [COLOR=#FF0000]' is already clocked out!'[/color][COLOR=#808080];[/color]
[COLOR=#0000FF]RETURN[/color][COLOR=#808080];[/color]
[COLOR=#0000FF]END[/color] [COLOR=#0000FF]IF[/color][COLOR=#808080];[/color]
SAVEPOINT s_Savepoint[COLOR=#808080];[/color]
[COLOR=#808080]//[/color]Clock [COLOR=#0000FF]out[/color] employee
[COLOR=#0000FF]CALL[/color] micros[COLOR=#808080].[/color]sp_ClockOutEmployee[COLOR=#808080]([/color]@employee_num[COLOR=#808080]);[/color]
[COLOR=#808080]//[/color]Clock back [COLOR=#808080]IN[/color]
[COLOR=#808080]//[/color][COLOR=#0000FF]get[/color] employee [COLOR=#0000FF]time[/color] [COLOR=#0000FF]card[/color] info
[COLOR=#0000FF]SELECT[/color] t1[COLOR=#808080].[/color]tm_card_seq[COLOR=#808080],[/color]
t1[COLOR=#808080].[/color]rvc_seq[COLOR=#808080],[/color]
t1[COLOR=#808080].[/color]job_seq[COLOR=#808080],[/color]
t1[COLOR=#808080].[/color]tm_clk_sched_seq
[COLOR=#0000FF]INTO[/color] @tm_card_seq[COLOR=#808080],[/color]
@rvc_seq[COLOR=#808080],[/color]
@job_seq[COLOR=#808080],[/color]
@tm_clk_sched_seq
[COLOR=#0000FF]FROM[/color] micros[COLOR=#808080].[/color]time_card_dtl t1
[COLOR=#0000FF]WHERE[/color] t1[COLOR=#808080].[/color]emp_seq [COLOR=#808080]=[/color] @emp_seq
[COLOR=#808080]AND[/color] t1[COLOR=#808080].[/color]tm_card_seq [COLOR=#808080]=[/color][COLOR=#0000FF] [/color][COLOR=#808080]([/color][COLOR=#0000FF]SELECT[/color] [COLOR=#FF00FF]MAX[/color][COLOR=#808080]([/color]t2[COLOR=#808080].[/color]tm_card_seq[COLOR=#808080])[/color]
[COLOR=#0000FF]FROM[/color] micros[COLOR=#808080].[/color]time_card_dtl t2
[COLOR=#0000FF]WHERE[/color] t1[COLOR=#808080].[/color]emp_seq [COLOR=#808080]=[/color] t2[COLOR=#808080].[/color]emp_seq[COLOR=#808080]);[/color]
[COLOR=#0000FF]SET[/color] @NOWINUCT [COLOR=#808080]=[/color] NowInUCT[COLOR=#808080]();[/color]
[COLOR=#0000FF]SET[/color] @NOWINUCT [COLOR=#808080]=[/color] seconds[COLOR=#808080]([/color][COLOR=#0000FF]date[/color][COLOR=#808080]([/color]NowInUCT[COLOR=#808080]()),(([/color][COLOR=#FF00FF]hour[/color][COLOR=#808080]([/color]NowInUCT[COLOR=#808080]())*[/color]3600[COLOR=#808080]+[/color][COLOR=#FF00FF]minute[/color][COLOR=#808080]([/color]NowInUCT[COLOR=#808080]())*[/color]60[COLOR=#808080]+[/color][COLOR=#FF00FF]second[/color][COLOR=#808080]([/color]NowInUCT[COLOR=#808080]()))/[/color]36[COLOR=#808080])*[/color]36[COLOR=#808080]);[/color]
[COLOR=#0000FF]SET[/color] @NOW [COLOR=#808080]=[/color] UCTtoLocal[COLOR=#808080]([/color]@NOWINUCT[COLOR=#808080]);[/color]
[COLOR=#0000FF]INSERT[/color] [COLOR=#0000FF]INTO[/color] micros[COLOR=#808080].[/color]time_card_dtl[COLOR=#0000FF] [/color][COLOR=#808080]([/color]
emp_seq[COLOR=#808080],[/color]
tm_card_seq[COLOR=#808080],[/color]
rvc_seq[COLOR=#808080],[/color]
tm_clk_sched_seq[COLOR=#808080],[/color]
job_seq[COLOR=#808080],[/color]
clk_in_date_tm[COLOR=#808080],[/color]
clk_in_gmt_date_tm[COLOR=#808080],[/color]
clk_in_status[COLOR=#808080])[/color]
[COLOR=#0000FF]VALUES [/color][COLOR=#808080]([/color]
@emp_seq[COLOR=#808080],[/color]
@tm_card_seq [COLOR=#808080]+[/color] 1[COLOR=#808080],[/color]
@rvc_seq[COLOR=#808080],[/color]
@tm_clk_sched_seq[COLOR=#808080],[/color]
@job_seq[COLOR=#808080],[/color]
@NOW[COLOR=#808080],[/color]
@NOWINUCT[COLOR=#808080],[/color]
[COLOR=#FF0000]'M'[/color][COLOR=#808080]);[/color]
[COLOR=#808080]//[/color]calc [COLOR=#0000FF]next[/color] nums [COLOR=#0000FF]for[/color] emp_status [COLOR=#0000FF]table[/color]
[COLOR=#0000FF]IF[/color] @tm_card_line_find_line_num [COLOR=#808080]<[/color] 98 [COLOR=#0000FF]THEN[/color]
[COLOR=#0000FF]SET[/color] @tm_card_line_find_line_num [COLOR=#808080]=[/color] @tm_card_line_find_line_num [COLOR=#808080]+[/color] 2[COLOR=#808080];[/color]
[COLOR=#0000FF]END[/color] [COLOR=#0000FF]IF[/color][COLOR=#808080];[/color]
[COLOR=#0000FF]IF[/color] @num_clk_in_outs [COLOR=#808080]<[/color] 999 [COLOR=#0000FF]THEN[/color]
[COLOR=#0000FF]SET[/color] @num_clk_in_outs [COLOR=#808080]=[/color] @num_clk_in_outs [COLOR=#808080]+[/color] 1[COLOR=#808080];[/color]
[COLOR=#0000FF]END[/color] [COLOR=#0000FF]IF[/color][COLOR=#808080];[/color]
[COLOR=#808080]//[/color][COLOR=#FF00FF]Update[/color] the employee [COLOR=#0000FF]status[/color] [COLOR=#0000FF]table[/color][COLOR=#808080].[/color]
[COLOR=#FF00FF]UPDATE[/color] micros[COLOR=#808080].[/color]emp_status
[COLOR=#0000FF]SET[/color] tm_card_line_find_line_num [COLOR=#808080]=[/color] @tm_card_line_find_line_num[COLOR=#808080],[/color]
num_clk_in_outs [COLOR=#808080]=[/color] @num_clk_in_outs[COLOR=#808080],[/color]
tm_clk_status [COLOR=#808080]=[/color] [COLOR=#FF0000]'I'[/color]
[COLOR=#0000FF]WHERE[/color] emp_seq [COLOR=#808080]=[/color] @emp_seq[COLOR=#808080];[/color]
[COLOR=#808080]//[/color][COLOR=#008000]---------------------------------------------------------------------------------[/color]
EXCEPTION
[COLOR=#0000FF]WHEN[/color] OTHERS [COLOR=#0000FF]THEN[/color]
[COLOR=#0000FF]ROLLBACK[/color] [COLOR=#0000FF]TO[/color] SAVEPOINT s_Savepoint[COLOR=#808080];[/color]
RESIGNAL[COLOR=#808080];[/color]
[COLOR=#0000FF]END[/color]