diff --git a/htdocs/api/class/api.class.php b/htdocs/api/class/api.class.php index 0e90591ddea..88e268bbc6c 100644 --- a/htdocs/api/class/api.class.php +++ b/htdocs/api/class/api.class.php @@ -57,7 +57,20 @@ class DolibarrApi Defaults::$cacheDirectory = $cachedir; $this->db = $db; - $production_mode = (!getDolGlobalString('API_PRODUCTION_MODE') ? false : true); + + $production_mode = (getDolGlobalString('API_PRODUCTION_MODE') ? true : false); + + if ($production_mode) { + // Create the directory Defaults::$cacheDirectory if it does not exist. If dir does not exist, using production_mode generates an error 500. + include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + if (!dol_is_dir(Defaults::$cacheDirectory)) { + dol_mkdir(Defaults::$cacheDirectory, DOL_DATA_ROOT); + } + if (getDolGlobalString('MAIN_API_DEBUG')) { + dol_syslog("Debug API construct::cacheDirectory=".Defaults::$cacheDirectory, LOG_DEBUG, 0, '_api'); + } + } + $this->r = new Restler($production_mode, $refreshCache); $urlwithouturlroot = preg_replace('/'.preg_quote(DOL_URL_ROOT, '/').'$/i', '', trim($dolibarr_main_url_root)); diff --git a/htdocs/core/modules/facture/doc/pdf_crabe.modules.php b/htdocs/core/modules/facture/doc/pdf_crabe.modules.php index 7174ea922ad..59138400053 100644 --- a/htdocs/core/modules/facture/doc/pdf_crabe.modules.php +++ b/htdocs/core/modules/facture/doc/pdf_crabe.modules.php @@ -379,6 +379,19 @@ class pdf_crabe extends ModelePDFFactures $this->atleastonediscount++; } + // determine category of operation + $is_deposit = false; + if (preg_match('/^\((.*)\)$/', $object->lines[$i]->desc, $reg)) { + if ($reg[1] == 'DEPOSIT') { + $is_deposit = true; + } + } + // If DEPOSIT, this line is completely ignored for calculations. + if ($is_deposit) { + continue; + } + + // determine category of operation if ($categoryOfOperation < 2) { $lineProductType = $object->lines[$i]->product_type; diff --git a/htdocs/core/modules/facture/doc/pdf_sponge.modules.php b/htdocs/core/modules/facture/doc/pdf_sponge.modules.php index 45eeebff9f5..d62ad0c7e71 100644 --- a/htdocs/core/modules/facture/doc/pdf_sponge.modules.php +++ b/htdocs/core/modules/facture/doc/pdf_sponge.modules.php @@ -404,6 +404,19 @@ class pdf_sponge extends ModelePDFFactures $this->atleastonediscount++; } + // Do not take into account lines of the type “deposit.” + $is_deposit = false; + if (preg_match('/^\((.*)\)$/', $object->lines[$i]->desc, $reg)) { + if ($reg[1] == 'DEPOSIT') { + $is_deposit = true; + } + } + // If DEPOSIT, this line is completely ignored for calculations. + if ($is_deposit) { + continue; + } + + // determine category of operation if ($categoryOfOperation < 2) { $lineProductType = $object->lines[$i]->product_type; diff --git a/htdocs/product/stats/bom.php b/htdocs/product/stats/bom.php index 06fd8d17a41..1f4a8255ae8 100644 --- a/htdocs/product/stats/bom.php +++ b/htdocs/product/stats/bom.php @@ -230,7 +230,7 @@ if ($id > 0 || !empty($ref)) { $bomtmp->ref = $objp->ref; $product = new Product($db); if (!empty($objp->fk_product)) { - if (!array_key_exists($product->id, $product_cache)) { + if (!array_key_exists($objp->fk_product, $product_cache)) { $resultFetch = $product->fetch($objp->fk_product); if ($resultFetch < 0) { setEventMessages($product->error, $product->errors, 'errors');