22if (!defined(
'NOTOKENRENEWAL')) {
23 define(
'NOTOKENRENEWAL',
'1');
25if (!defined(
'NOREQUIREHTML')) {
26 define(
'NOREQUIREHTML',
'1');
28if (!defined(
'NOREQUIREAJAX')) {
29 define(
'NOREQUIREAJAX',
'1');
31if (!defined(
'NOREQUIRESOC')) {
32 define(
'NOREQUIRESOC',
'1');
35if (!defined(
'NOREQUIREMENU')) {
36 define(
'NOREQUIREMENU',
'1');
38if (!defined(
"NOLOGIN")) {
39 define(
"NOLOGIN",
'1');
41if (!defined(
'NOBROWSERNOTIF')) {
42 define(
'NOBROWSERNOTIF',
'1');
45require
'../../main.inc.php';
46require_once DOL_DOCUMENT_ROOT.
'/core/lib/date.lib.php';
50$action =
GETPOST(
'action',
'aZ09');
52$datetocheckbooking =
GETPOSTINT(
'datetocheck');
76if ($action ==
'verifyavailability') {
80 $response[
"code"] =
"MISSING_ID";
81 $response[
"message"] =
"Missing parameter id";
82 header(
'HTTP/1.0 400 Bad Request');
83 echo json_encode($response);
86 if (empty($datetocheckbooking)) {
88 $response[
"code"] =
"MISSING_DATE_AVAILABILITY";
89 $response[
"message"] =
"Missing parameter datetocheck";
90 header(
'HTTP/1.0 400 Bad Request');
91 echo json_encode($response);
98 $availabilitytab = array();
99 $sql =
"SELECT ba.rowid as id, ba.duration, ba.startHour, ba.endHour, ba.start, ba.end";
100 $sql .=
" FROM ".MAIN_DB_PREFIX.
"bookcal_availabilities as ba";
101 $sql .=
" WHERE ba.fk_bookcal_calendar = ".((int) $id);
102 $sql .=
" AND ba.status = 1";
103 $resql = $db->query($sql);
105 $num = $db->num_rows($resql);
108 $obj = $db->fetch_object($resql);
109 $starttime = $db->jdate($obj->start);
110 $endtime = $db->jdate($obj->end);
111 $offsetmin = $obj->duration % 60;
112 if ($offsetmin == 0) {
115 $startHourstring = $obj->startHour;
116 $endHourstring = $obj->endHour;
117 if ($startHourstring <= 0) {
118 $startHourstring = 0;
120 if ($endHourstring >= 24) {
123 $offsethour = round($obj->duration / 60);
125 if ($datetocheckbooking >= $starttime && $datetocheckbooking <= $endtime) {
126 for ($hour=$startHourstring; $hour < $endHourstring; $hour+= $offsethour) {
127 for ($min=0; $min < 60; $min += $offsetmin) {
131 $hourstring =
"0".$hourstring;
134 $minstring =
"0".$minstring;
136 $response[
"availability"][$hourstring.
":".$minstring] = intval($obj->duration);
143 $response[
"code"] =
"SUCCESS";
145 $response[
"code"] =
"ERROR";
154 $sql =
"SELECT b.datep, b.id";
155 $sql .=
" FROM ".MAIN_DB_PREFIX.
"actioncomm as b";
156 $sql .=
" WHERE b.datep >= '".$db->idate($datetocheckbooking).
"'";
157 $sql .=
" AND b.datep < '".$db->idate($datetocheckbooking_end).
"'";
158 $sql .=
" AND b.code = 'AC_RDV'";
159 $sql .=
" AND b.status = 0";
160 $sql .=
" AND b.fk_bookcal_calendar = ".((int) $id);
161 $resql = $db->query($sql);
163 $num = $db->num_rows($resql);
166 $obj = $db->fetch_object($resql);
167 $datebooking = $db->jdate($obj->datep);
169 $hourstring = $datebookingarray[
"hours"];
170 $minstring = $datebookingarray[
"minutes"];
171 if ($hourstring < 10) {
172 $hourstring =
"0".$hourstring;
174 if ($minstring < 10) {
175 $minstring =
"0".$minstring;
177 $response[
"availability"][$hourstring.
":".$minstring] *= -1;
187echo json_encode($result);
$id
Support class for third parties, contacts, members, users or resources.
dol_time_plus_duree($time, $duration_value, $duration_unit, $ruleforendofmonth=0)
Add a delay to a date.
GETPOSTINT($paramname, $method=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
dol_getdate($timestamp, $fast=false, $forcetimezone='')
Return an array with locale date info.
if(!defined( 'NOREQUIREMENU')) if(!empty(GETPOST('seteventmessages', 'alpha'))) if(!function_exists("llxHeader")) top_httphead($contenttype='text/html', $forcenocache=0)
Show HTTP header.