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; }