Exemple #1
0
 public function getLRLastNoticeDate($lrCreated)
 {
     $lastContactDate = clone $lrCreated;
     date_add($lastContactDate, date_interval_create_from_date_string('5 days'));
     $weekendDays = Utils::countWeekendDays($lrCreated->getTimeStamp(), $lastContactDate->getTimeStamp());
     date_add($lastContactDate, date_interval_create_from_date_string($weekendDays . ' days'));
     return $lastContactDate->format('Y-m-d');
 }
 /**
  * Count the number of leave days
  *
  * @param DateTime $startDate
  * @param DateTime $endDate
  * @return integer
  */
 public function countLeaveDays($startDate, $endDate)
 {
     $start = $startDate->getTimestamp();
     $end = $endDate->getTimestamp();
     $administrativeLeavesCount = 0;
     $administrativeLeaves = $this->entityManager->getRepository('OpitOpitHrmLeaveBundle:LeaveDate')->getAdminLeavesInDateRange($startDate, $endDate);
     // Count administrative leaves
     foreach ($administrativeLeaves as $date) {
         if ($date['holidayDate']->format('D') != 'Sat' && $date['holidayDate']->format('D') != 'Sun') {
             $administrativeLeavesCount++;
         }
     }
     // Count administrative working days
     $administrativeWorkingDays = $this->entityManager->getRepository('OpitOpitHrmLeaveBundle:LeaveDate')->countLWDBWDateRange($startDate, $endDate, true);
     // Count total days
     $totalDays = $endDate->diff($startDate)->format("%a") + 1;
     // Count total weekend days
     $totalWeekendDays = Utils::countWeekendDays($start, $end);
     // Count total leave days
     $totalLeaveDays = $totalDays - $totalWeekendDays - $administrativeLeavesCount + $administrativeWorkingDays;
     return $totalLeaveDays;
 }