public function process(Vtiger_Request $request) { global $log; $log->debug("Entering Settings_PublicHoliday_Configuration_View::process() method ..."); $currentUser = Users_Record_Model::getCurrentUserModel(); $moduleName = $request->getModule(); $viewer = $this->getViewer($request); $date = $request->get('date'); if (!$date) { $date = array(date('Y-m-d', mktime(0, 0, 0, date('m'), 1, date('Y'))), date('Y-m-d', mktime(23, 59, 59, date('m') + 1, 0, date('Y')))); } $holidays = Settings_PublicHoliday_Module_Model::getHolidays($date); $viewer->assign('DATE', implode(" - ", $date)); $viewer->assign('THREE_YEARS_BACK', $minus3Years); $viewer->assign('HOLIDAYS', $holidays); $viewer->assign('CURRENTUSER', $currentUser); $viewer->assign('QUALIFIED_MODULE', $request->getModule(false)); echo $viewer->view('Configuration.tpl', $request->getModule(false), true); $log->debug("Exiting Settings_PublicHoliday_Configuration_View::process() method ..."); }
public function getDays($startDate, $endDate) { $holidayDays = Settings_PublicHoliday_Module_Model::getHolidays([$startDate, $endDate]); $notWorkingDaysType = Settings_Calendar_Module_Model::getNotWorkingDays(); $begin = strtotime($startDate); $end = strtotime($endDate); $workDays = 0; if ($begin > $end) { return 0; } else { $days = 0; $weekends = 0; while ($begin <= $end) { $days++; $whatDay = date("N", $begin); $day = date('Y-m-d', $begin); $isWorkDay = TRUE; $isHolidayNotInWeekend = TRUE; foreach ($holidayDays as $key => $value) { if ($day == $value['date']) { $isWorkDay = FALSE; if ($whatDay > 5) { $isHolidayNotInWeekend = FALSE; } unset($holidayDays[$key]); } } foreach ($notWorkingDaysType as $key => $value) { if ($whatDay == $value) { $isWorkDay = FALSE; } } if ($isWorkDay) { $workDays++; } if ($whatDay > 5 && !$isWorkDay && $notWorkingDaysType) { $weekends++; } $begin += 86400; } $workingDays = $days - $weekends; $result = ['workDays' => $workDays, 'weekends' => $weekends, 'days' => $days]; return $result; } }