public static function updateHolidaysForLeavesOnDelete()
 {
     $dbConnection = new DMLFunctions();
     $approved = Leave::LEAVE_STATUS_LEAVE_APPROVED;
     $pendingApproval = Leave::LEAVE_STATUS_LEAVE_PENDING_APPROVAL;
     $taken = Leave::LEAVE_STATUS_LEAVE_TAKEN;
     $holiday = Leave::LEAVE_STATUS_LEAVE_HOLIDAY;
     $lengthFullDay = Leave::LEAVE_LENGTH_FULL_DAY;
     $query = "UPDATE hs_hr_leave SET leave_status = {$pendingApproval}, leave_length_hours = {$lengthFullDay}, " . "leave_length_days = 1, leave_comments = Null " . "WHERE leave_status = {$holiday} AND leave_date > CURDATE() " . "AND leave_date NOT IN(SELECT date FROM hs_hr_holidays ) ";
     $result = $dbConnection->executeQuery($query);
     #$query = "UPDATE hs_hr_leave SET leave_status = $taken, leave_length_hours = $lengthFullDay, " .
     #"leave_length_days = 1, leave_comments = Null " .
     #"WHERE leave_status = $holiday AND leave_date <= CURDATE()" .
     #"AND leave_date NOT IN(SELECT date FROM hs_hr_holidays ) ";
     #$result = $dbConnection -> executeQuery($query);
     Weekends::updateWeekendsForLeaves();
 }
 /**
  * Wrpper to edit holidays
  *
  * @param unknown_type $modifier
  */
 public function editHoliday($modifier = "specific")
 {
     $this->_authenticateViewHoliday();
     switch ($modifier) {
         case "specific":
             $objLeave = $this->getObjLeave();
             $this->getObjLeave()->edit();
             Leave::updateLeavesForDate($objLeave->getDate(), $objLeave->getLength());
             Holidays::updateHolidaysForLeavesOnUpdate($objLeave->getDate(), $objLeave->getLength());
             break;
         case "weekend":
             $this->getObjLeave()->editDay();
             Weekends::updateWeekendsForLeaves();
             break;
     }
 }
 public function testUpdateWeekendsForLeaves()
 {
     Weekends::updateWeekendsForLeaves();
     $dbConnection = new DMLFunctions();
     $query = "SELECT leave_id, leave_status FROM hs_hr_leave ";
     $result = $dbConnection->executeQuery($query);
     $leaves = array();
     while ($row = $dbConnection->dbObject->getArray($result)) {
         $leaves[$row['leave_id']] = $row['leave_status'];
     }
     $this->assertEquals(4, $leaves['10'], 'Invalid status');
     $this->assertEquals(4, $leaves['11'], 'Invalid status');
     $this->assertEquals(3, $leaves['12'], 'Invalid status');
     $this->assertEquals(3, $leaves['13'], 'Invalid status');
 }