diff --git a/htdocs/core/actions_linkedfiles.inc.php b/htdocs/core/actions_linkedfiles.inc.php
index 2915e3358f2..671d7942779 100644
--- a/htdocs/core/actions_linkedfiles.inc.php
+++ b/htdocs/core/actions_linkedfiles.inc.php
@@ -94,6 +94,7 @@ if (GETPOST('sendit', 'alpha') && getDolGlobalString('MAIN_UPLOAD_DOC') && !empt
$generatethumbs = 0;
}
$allowoverwrite = (GETPOSTINT('overwritefile') ? 1 : 0);
+ $forceFullTextIndexation = (!empty($forceFullTextIndexation) ? $forceFullTextIndexation : '');
if (!empty($upload_dirold) && getDolGlobalInt('PRODUCT_USE_OLD_PATH_FOR_PHOTO')) {
$result = dol_add_file_process($upload_dirold, $allowoverwrite, 1, 'userfile', GETPOST('savingdocmask', 'alpha'), null, '', $generatethumbs, $object, empty($forceFullTextIndexation) ? 0 : $forceFullTextIndexation);
diff --git a/htdocs/core/class/html.formfile.class.php b/htdocs/core/class/html.formfile.class.php
index b0ba2564640..8d58b942329 100644
--- a/htdocs/core/class/html.formfile.class.php
+++ b/htdocs/core/class/html.formfile.class.php
@@ -1318,10 +1318,11 @@ class FormFile
// Define relative path used to store the file
if (empty($relativepath)) {
$relativepath = (!empty($object->ref) ? dol_sanitizeFileName($object->ref) : '').'/';
- if (!empty($object->element) && $object->element == 'invoice_supplier') {
+ if (!empty($object->element) && $object->element == "societe" && !empty($object->id)) {
+ $relativepath = ($object->id).'/';
+ } elseif (!empty($object->element) && $object->element == 'invoice_supplier') {
$relativepath = get_exdir($object->id, 2, 0, 0, $object, 'invoice_supplier').$relativepath; // TODO Call using a defined value for $relativepath
- }
- if (!empty($object->element) && $object->element == 'project_task') {
+ } elseif (!empty($object->element) && $object->element == 'project_task') {
$relativepath = 'Call_not_supported_._Call_function_using_a_defined_relative_path_.';
}
}
@@ -1600,7 +1601,6 @@ class FormFile
}
//print $file['path'].'/'.$smallfile.'
';
-
$urlforhref = getAdvancedPreviewUrl($modulepart, $relativepath.$fileinfo['filename'].'.'.strtolower($fileinfo['extension']), 1, '&entity='.(empty($object->entity) ? $conf->entity : $object->entity));
if (empty($urlforhref)) {
$urlforhref = DOL_URL_ROOT.'/viewimage.php?modulepart='.urlencode($modulepart).'&entity='.(empty($object->entity) ? $conf->entity : $object->entity).'&file='.urlencode($relativepath.$fileinfo['filename'].'.'.strtolower($fileinfo['extension']));
diff --git a/htdocs/core/lib/files.lib.php b/htdocs/core/lib/files.lib.php
index 897c914ae94..3cb44ee8b31 100644
--- a/htdocs/core/lib/files.lib.php
+++ b/htdocs/core/lib/files.lib.php
@@ -1998,12 +1998,12 @@ function dol_init_file_process($pathtoscan = '', $trackid = '')
* @param string $trackid Track id (used to prefix name of session vars to avoid conflict, when $updatesessionordb is 0)
* @param int<0,1> $generatethumbs 1=Generate also thumbs for uploaded image files
* @param ?Object $object Object used to set the fields src_object_type and src_object_id.
- * @param string $forceFullTestIndexation '1'=Force full text storage in database even if global option not set (consume a high level of data)
+ * @param string $forceFullTextIndexation '1'=Force full text storage in database even if global option not set (consume a high level of data)
* @param int $mode 0=Default mode use to move a file from default system upload dir to $upload_dir. 1=Mode to move an uploaded file from $keyforsourcefile into $upload_dir.
* @return int Return integer <=0 if KO, nb of success if OK (>0)
* @see dol_remove_file_process(), FileUpload::handleFileUpload()
*/
-function dol_add_file_process($upload_dir, $allowoverwrite = 0, $updatesessionordb = 0, $keyforsourcefile = 'addedfile', $savingdocmask = '', $link = null, $trackid = '', $generatethumbs = 1, $object = null, $forceFullTestIndexation = '', $mode = 0)
+function dol_add_file_process($upload_dir, $allowoverwrite = 0, $updatesessionordb = 0, $keyforsourcefile = 'addedfile', $savingdocmask = '', $link = null, $trackid = '', $generatethumbs = 1, $object = null, $forceFullTextIndexation = '', $mode = 0)
{
global $db, $user, $conf, $langs;
@@ -2146,7 +2146,7 @@ function dol_add_file_process($upload_dir, $allowoverwrite = 0, $updatesessionor
deleteFilesIntoDatabaseIndex($upload_dir, basename($destfile).($resupload == 2 ? '.noexe' : ''), '');
}
- $result = addFileIntoDatabaseIndex($upload_dir, basename($destfile).($resupload == 2 ? '.noexe' : ''), $TFile['name'][$i], 'uploaded', $sharefile, $object);
+ $result = addFileIntoDatabaseIndex($upload_dir, basename($destfile).($resupload == 2 ? '.noexe' : ''), $TFile['name'][$i], 'uploaded', $sharefile, $object, $forceFullTextIndexation);
if ($result < 0) {
if ($allowoverwrite) {
// Do not show error message. We can have an error due to DB_ERROR_RECORD_ALREADY_EXISTS
diff --git a/htdocs/webservices/server_invoice.php b/htdocs/webservices/server_invoice.php
index feedd7a4518..b23ef74ff1e 100644
--- a/htdocs/webservices/server_invoice.php
+++ b/htdocs/webservices/server_invoice.php
@@ -553,7 +553,7 @@ function getInvoicesForThirdParty($authentication, $idthirdparty)
* Create an invoice
*
* @param array{login:string,password:string,entity:?int,dolibarrkey:string} $authentication Array of authentication information
- * @param array{id:string,ref:string,ref_ext:string,thirdparty_id:int,fk_user_author:string,fk_user_valid:string,date:string,date_due:string,date_creation:string,date_validation:string,date_modification:string,payment_mode_id:string,type:int,total_net:float,total_vat:float,total:float,note_private:string,note_public:string,status:int,close_code:string,close_note:string,project_id:string,lines?:array{id:string,type:int,desc:string,vat_rate:float,qty:float,unitprice:float,total_net:float,total_vat:float,total:float,date_start:string,date_end:string,product_id:int,product_ref:string,product_label:string,product_desc:string}} $invoice Invoice
+ * @param array{id:string,ref:string,ref_ext:string,thirdparty_id:int,fk_user_author:string,fk_user_valid:string,date:string,date_due:string,date_creation:string,date_validation:string,date_modification:string,payment_mode_id:string,type:int,total_net:float,total_vat:float,total:float,note_private:string,note_public:string,status:int,close_code:string,close_note:string,project_id:string,lines?:array} $invoice Invoice
* @return array{result:array{result_code:string,result_label:string}} Array result
*/
function createInvoice($authentication, $invoice)
@@ -617,9 +617,9 @@ function createInvoice($authentication, $invoice)
foreach ($arrayoflines as $line) {
// $key can be 'line' or '0','1',...
$newline = new FactureLigne($db);
- $newline->product_type = $line['type'];
+ $newline->product_type = (int) $line['type'];
$newline->desc = $line['desc'];
- $newline->fk_product = $line['product_id'];
+ $newline->fk_product = (int) $line['product_id'];
$newline->tva_tx = isset($line['vat_rate']) ? $line['vat_rate'] : 0;
$newline->qty = $line['qty'];
$newline->subprice = isset($line['unitprice']) ? $line['unitprice'] : null;
diff --git a/htdocs/webservices/server_order.php b/htdocs/webservices/server_order.php
index 61db098da58..59eb4c9d939 100644
--- a/htdocs/webservices/server_order.php
+++ b/htdocs/webservices/server_order.php
@@ -674,7 +674,7 @@ function getOrdersForThirdParty($authentication, $idthirdparty)
* Create order
*
* @param array{login:string,password:string,entity:?int,dolibarrkey:string} $authentication Array of authentication information
- * @param array{id:string,ref:string,ref_client:string,ref_ext:string,thirdparty_id:int,status:int,billed:string,total_net:float,total_vat:float,total_localtax1:float,total_localtax2:float,total:float,date:string,date_creation:string,date_validation:string,date_modification:string,source:string,note_private:string,note_public:string,project_id:string,mode_reglement_id:string,mode_reglement_code:string,mode_reglement:string,cond_reglement_id:string,cond_reglement_code:string,cond_reglement:string,cond_reglement_doc:string,date_livraison:int,demand_reason_id:string,lines:array{lines:array}} $order Order info
+ * @param array{id:string,ref:string,ref_client:string,ref_ext:string,thirdparty_id:int,status:int,billed:string,total_net:float,total_vat:float,total_localtax1:float,total_localtax2:float,total:float,date:string,date_creation:string,date_validation:string,date_modification:string,source:string,note_private:string,note_public:string,project_id:string,mode_reglement_id:string,mode_reglement_code:string,mode_reglement:string,cond_reglement_id:string,cond_reglement_code:string,cond_reglement:string,cond_reglement_doc:string,date_livraison:int,demand_reason_id:string,lines:array} $order Order info
* @return array{result:array{result_code:string,result_label:string}} Array result
*/
function createOrder($authentication, $order)