|
@@ -602,13 +602,17 @@ class BBus extends DolibarrApi
|
|
|
$basicServices[] = $row->basic_service;
|
|
$basicServices[] = $row->basic_service;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- $sqlBasicServicesTable = "SELECT basic_service_id, ref FROM llx_bbus_basicServices ORDER BY basic_service_id ASC";
|
|
|
|
|
|
|
+ $sqlBasicServicesTable = "SELECT basic_service_id, ref, is_event FROM llx_bbus_basicServices ORDER BY basic_service_id ASC";
|
|
|
$resultBasicServicesObj = $db->query($sqlBasicServicesTable);
|
|
$resultBasicServicesObj = $db->query($sqlBasicServicesTable);
|
|
|
if ($db->num_rows($resultBasicServicesObj) > 0) {
|
|
if ($db->num_rows($resultBasicServicesObj) > 0) {
|
|
|
while ($bsrow = $db->fetch_object($resultBasicServicesObj)) {
|
|
while ($bsrow = $db->fetch_object($resultBasicServicesObj)) {
|
|
|
foreach ($basicServices as $item) {
|
|
foreach ($basicServices as $item) {
|
|
|
if ($bsrow->basic_service_id == $item && $item != 2) {
|
|
if ($bsrow->basic_service_id == $item && $item != 2) {
|
|
|
- $permissionArray[$item] = $bsrow->ref;
|
|
|
|
|
|
|
+ if ($bsrow->is_event == '1' && $this->isAvailablePlaces($item)) {
|
|
|
|
|
+ $permissionArray[$item] = $bsrow->ref;
|
|
|
|
|
+ } elseif ($bsrow->is_event != '1') {
|
|
|
|
|
+ $permissionArray[$item] = $bsrow->ref;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -618,6 +622,64 @@ class BBus extends DolibarrApi
|
|
|
return $permissionArray;
|
|
return $permissionArray;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ private function isAvailablePlaces($item)
|
|
|
|
|
+ {
|
|
|
|
|
+ global $conf;
|
|
|
|
|
+ $available = false;
|
|
|
|
|
+ $server_host = $this->getServerHost($item);
|
|
|
|
|
+ $sqlProducts = "SELECT fk_object, basic_service FROM llx_product_extrafields WHERE basic_service = '{$item}'";
|
|
|
|
|
+ $resultProducts = $this->db->query($sqlProducts);
|
|
|
|
|
+ if ($this->db->num_rows($resultProducts) > 0) {
|
|
|
|
|
+ while ($prodductsRow = $this->db->fetch_object($resultProducts)) {
|
|
|
|
|
+ $productsArray[$prodductsRow->fk_object] = $prodductsRow->basic_service;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (!empty($productsArray)) {
|
|
|
|
|
+ foreach ($productsArray as $key => $value) {
|
|
|
|
|
+ if ($server_host == $conf->global->LOCAL_SERVER_HOST) {
|
|
|
|
|
+ $availableResult = $this->localCheckAvailablePlacesForCheckPermission($key);
|
|
|
|
|
+ } elseif ($server_host == $conf->global->CURL_SERVER_HOST) {
|
|
|
|
|
+ $postFields = '{"product_id":"' . $key . '"}';
|
|
|
|
|
+ $availableResult = $this->curlRunner('bbus/localCheckAvailablePlacesForCheckPermission', $postFields, 'POST', false);
|
|
|
|
|
+ }
|
|
|
|
|
+ if ($availableResult == 1) {
|
|
|
|
|
+ $available = true;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ };
|
|
|
|
|
+ return $available;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * localCheckAvailablePlacesForCheckPermission
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param int $product_id Product rowid
|
|
|
|
|
+ *
|
|
|
|
|
+ * @return array|mixed Data without useless information
|
|
|
|
|
+ *
|
|
|
|
|
+ * @url POST localCheckAvailablePlacesForCheckPermission
|
|
|
|
|
+ *
|
|
|
|
|
+ * @throws RestException 401
|
|
|
|
|
+ * @throws RestException 403
|
|
|
|
|
+ * @throws RestException 404
|
|
|
|
|
+ */
|
|
|
|
|
+ public function localCheckAvailablePlacesForCheckPermission($product_id)
|
|
|
|
|
+ {
|
|
|
|
|
+ $sql = "SELECT
|
|
|
|
|
+ ac.id
|
|
|
|
|
+ FROM llx_actioncomm as ac
|
|
|
|
|
+ LEFT JOIN llx_actioncomm_extrafields as ace ON ace.fk_object = ac.id
|
|
|
|
|
+ INNER JOIN llx_eventwizard_eventdetails as ed ON ac.fk_element = ed.rowid
|
|
|
|
|
+ INNER JOIN llx_eventwizard_eventproduct as ep ON ep.fk_eventdetails = ac.fk_element
|
|
|
|
|
+ WHERE ac.code = 'AC_EVENT'
|
|
|
|
|
+ AND ep.fk_product = {$product_id}
|
|
|
|
|
+ AND ac.datep > NOW()
|
|
|
|
|
+ ORDER BY ac.datep ASC";
|
|
|
|
|
+ $result = $this->db->query($sql);
|
|
|
|
|
+ return $this->db->num_rows($result) > 0 ? 1 : 0;
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* Create naplo for userlogout
|
|
* Create naplo for userlogout
|
|
|
*
|
|
*
|