Current File : /home/inlingua/www/dwarka/icentex/general_leave/leaveleft_ajax.php
<?php
session_start();
$notshowerror=1;
$leaveDaysAllow=21;

// Include the database connection details
require('../dbConnection.php');

// Include the table handler class
require('../dbHandler.class.php');

// Init and connect to database
$dbObject = new dbHandler();
$dbObject->connect();

$queryL="select leavedaysin20102011,leavedaysin20112012,leavedaysin20122013,leavedaysin20132014,leavedaysin20142015,leavedaysin20152016,leavedaysin20162017,leavedaysin20172018 from timesheet_user where recNo='".$_SESSION[id]."'";
$resultL=mysqli_query($conn,$queryL);
$numL=mysqli_fetch_array($resultL);

 $leavedaysin20102011=$numL['leavedaysin20102011'];
 $leavedaysin20112012=$numL['leavedaysin20112012'];
 $leavedaysin20122013=$numL['leavedaysin20122013'];
 $leavedaysin20132014=$numL['leavedaysin20132014'];
 $leavedaysin20142015=$numL['leavedaysin20142015'];
 $leavedaysin20152016=$numL['leavedaysin20152016'];
 $leavedaysin20162017=$numL['leavedaysin20162017'];
 $leavedaysin20172018=$numL['leavedaysin20172018'];
 
$fromdate=$_GET['fromdate'];
$todate= $_GET['todate'];

$fromdate1=explode("-",$fromdate);
$todate1=explode("-",$todate);

$fM=$fromdate1[1];
$fY=$fromdate1[0];

$tM=$todate1[1];
$tY=$todate1[0];



$fromDate = $fromdate;
$toDate = $todate;

$dateMonthYearArr = array();
$fromDateTS = strtotime($fromDate);
$toDateTS = strtotime($toDate);

for ($currentDateTS = $fromDateTS; $currentDateTS <= $toDateTS; $currentDateTS += (60 * 60 * 24)) {
// use date() and $currentDateTS to format the dates in between
$currentDateStr = date("Y-m-d",$currentDateTS);
$dateMonthYearArr[] = $currentDateStr;
//print $currentDateStr.�<br />�;
}
//////////////check the leave date/if this date is already applied or not/////////////////////////////////////////////////

foreach($dateMonthYearArr as $val)
{
$str.="(fromDate<='".$val."' AND toDate>='".$val."') || ";

}

 $str1=substr($str, 0, -4); ;
//echo "djdjjdjd \n";

 $query="SELECT *
FROM `leaves`
WHERE (".$str1.") AND timesheet_user_id='".$_SESSION[id]."' AND ( status='waiting' OR status='approved')";
$result=mysqli_query($conn,$query);
$numcount=mysqli_num_rows($result);
if($numcount>0)
{
echo"You have already applied(either approved or waiting) leave on these dates ";
$notshowerror=0;
}
else
{

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////
////////////////////////////
if(in_array("".$fY."-03-31",$dateMonthYearArr) && in_array("".$tY."-04-01",$dateMonthYearArr))
{
$fYP=$fY-1;
$finYff="".$fYP."-04-01";
$finYft="".$fY."-03-31";

$fYN=$fY+1;
$finYsf="".$fY."-04-01";
$finYst="".$fYN."-03-31";
$fYPDateTS=strtotime($finYft);
$fypDateDiff=$fYPDateTS-$fromDateTS;
$fypNoofdays=$fypDateDiff/(60 * 60 * 24)+1;

 $fyNnofodays=count($dateMonthYearArr)-$fypNoofdays;
}
else
{
$fyNnofodays=count($dateMonthYearArr);
if($fY==$tY)
{
if($fM >3)
{
$fYN=$fY+1;
$finYff="".$fY."-04-01";
$finYft="".$fYN."-03-31";
}
else
{
$fYN=$fY-1;
$finYff="".$fYN."-04-01";
$finYft="".$fY."-03-31";
}

}
else
{
$finYff="".$fY."-04-01";
$finYft="".$tY."-03-31";
}
}


if($finYff=="2010-04-01" && $finYft=="2011-03-31" && $finYsf=="" && $finYst=="")
{
$leaveDaysf=$leavedaysin20102011;
}
else if($finYff=="2010-04-01" && $finYft=="2011-03-31" && $finYsf=="2011-04-01" || $finYst=="2012-03-31")
{
$leaveDaysf=$leavedaysin20102011;
$leaveDayss=$leavedaysin20112012;
}
else if($finYff=="2011-04-01" && $finYft=="2012-03-31")
{
$leaveDaysf=$leavedaysin20112012;
$leaveDayss=$leavedaysin20122013;
}
else if($finYff=="2012-04-01" && $finYft=="2013-03-31")
{
 $leaveDaysf=$leavedaysin20122013;
 $leaveDayss=$leavedaysin20132014;
}
else if($finYff=="2013-04-01" && $finYft=="2014-03-31")
{
$leaveDaysf=$leavedaysin20132014;
$leaveDayss=$leavedaysin20142015;
}
else if($finYff=="2014-04-01" && $finYft=="2015-03-31")
{
$leaveDaysf=$leavedaysin20142015;
$leaveDayss=$leavedaysin20152016;
}
else if($finYff=="2015-04-01" && $finYft=="2016-03-31")
{
	
$leaveDaysf=$leavedaysin20152016;
$leaveDayss=$leavedaysin20162017;
}
else if($finYff=="2016-04-01" && $finYft=="2017-03-31")
{ 	
$leaveDaysf=$leavedaysin20162017;
$leaveDayss=$leavedaysin20172018; 
}
else if($finYff=="2017-04-01" && $finYft=="2018-03-31")
{ 	
$leaveDaysf=$leavedaysin20172018;
$leaveDayss=$leaveDaysAllow; 
}
else
{
$leaveDaysf=$leaveDaysAllow;
$leaveDayss=$leaveDaysAllow;
}

if($finYsf=="" || $finYst=="")
{
    $r=returnLeaveDays($finYff,$finYft);
    $tot=count($r); 
    //$pre_leave =mktime($r[0]);
   // $leave_curr = date("m",strtotime($r[0]));
    $currmonth =  date('m');
     if($currmonth>3)
     {
       $remaning =(12-($currmonth-3)); 
     }
     else
     {
       $remaning =(3-$currmonth);   
     }
     
    if($remaning!=0)
    {
         $limit = round(((($leaveDaysf)-($tot))/$remaning));
         if($limit<$fyNnofodays)
         {
           echo"You can apply maximum ".$limit." Leave Only. For extra leave apply unpaid leave separately";
           $notshowerror=0; 
         }
    }

    if($tot+$fyNnofodays>$leaveDaysf)
    {
        $left=$leaveDaysf-$tot;
        //print_r($leaveDaysf);exit;
        echo"You are applying for ".$fyNnofodays." days.You are left with ".$left." days of leave.You can maximum apply for ".$leaveDaysf." days leave in financial year(".$finYff." to ".$finYft.").\n Leaves Taken:".$tot." \n Leaves Available:".$left."";
        $notshowerror=0; 
    }
}
else
{
$r=returnLeaveDays($finYff,$finYft);
$r1=returnLeaveDays($finYsf,$finYst);

$tot=count($r);
$tot1=count($r1);

if($tot+$fypNoofdays>$leaveDaysf)
{
	
$left=$leaveDaysf-$tot;
echo"You are applying for ".$fyNnofodays." days.You are left with ".$left." days of leave.You can maximum apply for ".$leaveDaysf." days leave in  financial year(".$finYff." to ".$finYft.").\n Leaves Taken:".$tot." \n Leaves Available:".$left."";
$notshowerror=0;
}
else if($tot1+$fyNnofodays>$leaveDayss)
{
$left=$leaveDayss-$tot1;
echo"You are applying for ".$fyNnofodays." days.You are left with ".$left." days of leave.You can maximum apply for ".$leaveDayss." days leave in financial year(".$finYsf." to ".$finYst.").\n Leaves Taken:".$tot1." \n Leaves Available:".$left."";
$notshowerror=0;
}


}





//returnLeaveDays("".$fY."-03-31","".$tY."-04-01");

/*$fromD="2010-03-06";
$toDate="2010-04-01";

function odd($var)
{
$fromD=$fromD;
   $toDate= $toDate;
	// returns whether the input integer is odd
    //return($var >"2010-03-06" && $var <"2010-04-01" );
	
	return($var >$fromD && $var <$toDate);
}

function even($var)
{
    // returns whether the input integer is even
    return(!($var & 1));
}

$array1 = array("a"=>"2010-03-01", "b"=>"2010-03-06", "c"=>"2010-03-09", "d"=>"2010-03-10", "e"=>"2010-04-01");

echo "Odd :\n";
//print_r(array_filter($array1, function ($element) use ($my_value) { return ($element != $my_value); } ));
//$filtered_array = array_filter($array1, function ($element) use ($my_value) { return ($element != $my_value); } ); 

*/
}
if($notshowerror==1) echo $notshowerror;

function returnLeaveDays($fromD,$toD)
{

 $query="SELECT * 
FROM  `leaves_non_teach` 
WHERE ((
 `fromDate` 
BETWEEN  '".$fromD."'
AND  '".$toD."'
) || (  `toDate` 
BETWEEN  '".$fromD."'
AND  '".$toD."')) AND timesheet_user_id='".$_SESSION['id']."' AND status='approved'
    AND type='paid'
";




$result=mysqli_query($conn,$query);

$alldateArray = array();

while($num =mysqli_fetch_array($result))
{
$a1=$num['date_str'];
$a2=explode("#",$a1);
$alldateArray=array_merge($alldateArray,$a2);
//$alldateArray[]=
}

//print_r($alldateArray);
global $FROMDA;
global $TODA;
 $FROMDA=$fromD;
 $TODA=$toD;



return array_filter($alldateArray, "removeDates");

}
function removeDates($var)
{
global $FROMDA;
global $TODA;
    // returns whether the input integer is odd
    return($var >=$FROMDA && $var <=$TODA );
}


?>

<?php 
//$array = array (1, 3, 3, 5, 6); 
//$my_value = 3; 
//$filtered_array = array_filter($array, function ($element) use ($my_value) { return ($element != $my_value); } ); 
//print_r($filtered_array); 
?>