ramkumar Posted April 4, 2006 Share Posted April 4, 2006 Hi Guys, i m doing leave management application... Leave Conditions:i m split 12 months into 3/3/3/3 months i.e four quarter... in each quarter have only 6 days.... i m having three tables 1)Employee_details 2)Leave Details 3)Status i have a problem in admin side...*Admin enter and he see the leave table contains employee_id,no.of.days,Reason,from_date,to_date,status...*Admin do only two process whether he Accept or Reject the leave....*if he reject then i change the employee status of employee to 2 and display rejected employees.*if he accept then then find,in which quarter the employee apply leave and sanctioned.... problem:if i accept continuously for same employee then leave will sanctioned and the value in status table(6) will be reduced to zero and go beyond to minus value...?how i check this type of conditions....?This is my Accept.php code:[code]<?php include_once("app.ini.php"); $smarty = getSmarty(); $result['emp_id'] = $_REQUEST['eid']; $result['leave_id'] = $_REQUEST['id_l']; $result['start_date'] = $_REQUEST['leavefrom']; $today=date("Y-n-j"); $sql_query="SELECT d_date_of_joining FROM `employee_details` WHERE id_eid = ".stripslashes($result['emp_id']); $res=mysql_query($sql_query); while($line = mysql_fetch_assoc($res)){ $result['doj'] = $line['d_date_of_joining']; } function dateDiff($dformat, $endDate, $beginDate) { $date_parts1=explode($dformat, $beginDate); $date_parts2=explode($dformat, $endDate); $start_date=gregoriantojd($date_parts1[1], $date_parts1[2], $date_parts1[0]); $end_date=gregoriantojd($date_parts2[1], $date_parts2[2], $date_parts2[0]); return ($end_date - $start_date); } $different = dateDiff("-",$result['start_date'],$result['doj']); $result['exp'] = $different; $result['total_days'] = $result['exp'] % 365; /******************First Quarter****************************/ if($result['total_days'] < 91) { global $smarty; $smarty->assign('quarter',"First Quarter"); $query1 = "SELECT i_sta_first_quarter from status where id_eid = ".$result['emp_id']; $result1 = mysql_query($query1); while ($line1 = mysql_fetch_assoc($result1)){ $a1 =$line1; } $result['available_days'] = $a1['i_sta_first_quarter']; $sql1 = "SELECT i_leave_days FROM LeaveDetails WHERE id_leave =".$result['leave_id']; $result1 = mysql_query($sql1); while ($line1 = mysql_fetch_assoc($result1)){ $a11 =$line1; } $result['needed'] = $a11['i_leave_days']; $result['remaining_days'] = $result['available_days'] - $result['needed']; $lde1 = "UPDATE LeaveDetails SET i_status = 1 where id_leave = ".$result['leave_id']; mysql_query($lde1); $qua1 ="UPDATE status SET i_sta_first_quarter =".$result['remaining_days']." WHERE id_eid =".$result['emp_id']; mysql_query($qua1); $first = "SELECT i_sta_first_quarter FROM status WHERE id_eid = ".$result['emp_id']; mysql_query($first); $first = "SELECT i_sta_frist_quarter FROM `status` WHERE id_eid = ".$result['emp_id']; mysql_query($first); /*if(i_sta_first_quarter == 0) { $smarty->assign('first','You are not allowed to take leave in First Quarter'); $smarty->display('accept_display.tpl.html'); } if($result['total_days'] > 365){ $quarter1 = "UPDATE `status` SET i_sta_first_quarter = 6 WHERE id_eid = ".$result['emp_id']; mysql_query($quarter1); }*/} //********SECOND QUARTER******************************************// else if($result['total_days'] > 91 && $result['total_days'] < 182){ $smarty->assign('quarter',"Second Quarter"); $qcheck2="SELECT i_sta_first_quarter from status where id_eid = ".$result['emp_id']; $qcheckresult2=mysql_query($qcheck2); while($qcheckresult2fetch=mysql_fetch_assoc($qcheckresult2)) { $a3=$qcheckresult2fetch; } $a4 = $result['available_days']; if($a4 > 0) { $sql2update="UPDATE status SET i_sta_first_quarter=0,i_sta_second_quarter =i_sta_second_quarter + ".$a4." WHERE id_eid =".$result['emp_id']; mysql_query($sql2update); } $query2 = "SELECT i_sta_second_quarter from status where id_eid = ".$result['emp_id']; $result2 = mysql_query($query2); while ($line2 = mysql_fetch_assoc($result2)) { $a2 =$line2; } $result['available_days'] = $a2['i_sta_second_quarter']; $sql2 = "SELECT i_leave_days FROM LeaveDetails WHERE id_leave =".$result['leave_id']; $result2 = mysql_query($sql2); while ($line2 = mysql_fetch_assoc($result2)) { $a12 =$line2; } $result['needed'] = $a12['i_leave_days']; $result['remaining_days'] = $result['available_days'] - $result['needed']; $lde2 = "UPDATE LeaveDetails SET i_status = 1 where id_leave = ".$result['leave_id']; mysql_query($lde2); $qua2 ="UPDATE status SET i_sta_second_quarter =".$result['remaining_days']." WHERE id_eid =".$result['emp_id']; mysql_query($qua2);} //*****************THIRD QUARTER***************************************// else if($result['total_days'] >= 182 && $result['total_days'] <=273) { $smarty->assign('quarter',"Third Quarter"); $qcheck3="SELECT i_sta_first_quarter,i_sta_second_quarter from status where id_eid = ".$result['emp_id']; $qcheckresult3=mysql_query($qcheck3); while($qcheckresult3fetch=mysql_fetch_assoc($qcheckresult3)) { $a3=$qcheckresult3fetch; } $a4 = $result['available_days']; $a5 = $result['available_days']; if($a4>0 || $a5>0) { echo "<br>"; $a6 = $a4 + $a5; $sql3update="UPDATE status SET i_sta_first_quarter=0,i_sta_second_quarter=0,i_sta_third_quarter =i_sta_third_quarter +".$a6." WHERE id_eid =".$result['emp_id']; mysql_query($sql3update); } $query3 = "SELECT i_sta_third_quarter from status where id_eid = ".$result['emp_id']; $result3 = mysql_query($query3); while ($line3 = mysql_fetch_assoc($result3)) { $a3 =$line3; } $result['available_days'] = $a3['i_sta_third_quarter']; $sql3 = "SELECT i_leave_days FROM LeaveDetails WHERE id_leave =".$result['leave_id']; $result3 = mysql_query($sql3); while ($line3 = mysql_fetch_assoc($result3)) { $a13 =$line3; } $result['needed'] = $a13['i_leave_days']; $result['remaining_days'] = $result['available_days'] - $result['needed']; $lde3 = "UPDATE LeaveDetails SET i_status = 1 where id_leave = ".$result['leave_id']; mysql_query($lde3); $qua3 ="UPDATE status SET i_sta_third_quarter =".$result['remaining_days']." WHERE id_eid =".$eid; mysql_query($qua3); } //****************Fourth Quarter******************************************// else { $smarty->assign('quarter',"Fourth Quarter"); $qcheck4="SELECT i_sta_first_quarter,i_sta_second_quarter,i_sta_third_quarter from status where id_eid = ".$result['emp_id']; $qcheckresult4=mysql_query($qcheck4); while($qcheckresult4fetch=mysql_fetch_assoc($qcheckresult4)) { $a3=$qcheckresult4fetch; } $a4 = $result['available_days']; $a5 = $result['available_days']; $a6 = $result['available_days']; if($a4 > 0 || $a5 > 0) { $a7 = $a4+$a5+$a6; $sql3update="UPDATE status SET i_sta_first_quarter=0,i_sta_second_quarter=0,i_sta_third_quarter=0, i_sta_fourth_quarter = i_sta_fourth_quarter +".$a7." WHERE id_eid =".$result['emp_id']; mysql_query($sql3update); } $query4 = "SELECT i_sta_fourth_quarter from status where id_eid = ".$result['emp_id']; $result4 = mysql_query($query4); while ($line4 = mysql_fetch_assoc($result4)) { $a4 =$line4; } $result['available_days'] = $a4['i_sta_fourth_quarter']; $sql4 = "SELECT i_leave_days FROM LeaveDetails WHERE id_leave =".$result['leave_id']; $result4 = mysql_query($sql4); while ($line4 = mysql_fetch_assoc($result4)) { $a14 =$line4; } $result['needed'] = $a14['i_leave_days']; $result['remaining_days'] = $result['available_days'] - $result['needed']; $lde4 = "UPDATE LeaveDetails SET i_status = 1 where id_leave = ".$result['leave_id']; mysql_query($lde4); $qua4 ="UPDATE status SET i_sta_fourth_quarter =".$result['remaining_days']." WHERE id_eid =".$result['emp_id']; mysql_query($qua4); }/************************************List Leave Details*************************/ $sql = "SELECT * FROM `LeaveDetails`"; $result['employee_list'] = getrows($sql,$err); $smarty->assign('sm',$result); $smarty->display("accept_display.tpl.html");?>[/code]byRaokyram Link to comment https://forums.phpfreaks.com/topic/6563-solve-my-leave-application-problem/ Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.