'; // You can use div-table-responsive-no-min if you dont need reserved height for your table
+ print '
'; // You can use div-table-responsive-no-min if you dont need reserved height for your table
+ print '
'; // Button include dynamic contant
+ return $this->trigger(9, "an unexpected error occured");
+ } // don't wast resourses if we don't need them...
+ * 'foreignkey'=>'tablename.field' if the field is a foreign key (it is recommanded to name the field fk_...).
+ $action = ''; // Do not show form post if there was at least one successfull sent
+ $action = 'transfert';
+ $alreadyfound = array($id=>1); // We init array of found object to start of tree, so if we found it later (should not happened), we stop immediatly
+ $api_key = $_SERVER['HTTP_DOLAPIKEY']; // With header method (recommanded)
+ $attachs = $_SESSION['listofnames-'.$object->trackid];
+ $buyingprice = price2num(GETPOST('buying_price'.$predef) != '' ? GETPOST('buying_price'.$predef) : ''); // If buying_price is '0', we muste keep this value
+ $canconvert = 1; // we can convert credit note into discount if credit note is not payed back and not already converted and amount of payment is 0 (see real condition into condition used to show button converttoreduc)
+ $canconvert = 1; // we can convert deposit into discount if deposit is payed (completely, partially or not at all) and not already converted (see real condition into condition used to show button converttoreduc)
+ $childs = array();
+ $childs[] = array_combine($keys, $values);
+ $curent = !empty($conf->global->{$thisTypeConfName}) ? $conf->global->{$thisTypeConfName}:$conf->global->FACTURE_ADDON_PDF;
+ $ensemblereponses = $obj->reponses;
+ $event->datep = dol_mktime(0, 0, 0, $datearray['mon'], $datearray['mday'], $year, true); // For full day events, date are also GMT but they wont but converted during output
+ $ext = 'version='.GETPOST('version', 'int'); // usefull to force no cache on css/js
+ $filles = array();
+ $filterabsolutediscount = "fk_facture_source IS NULL"; // If we want deposit to be substracted to payments only and not to total of final invoice
+ $filterabsolutediscount = "fk_invoice_supplier_source IS NULL"; // If we want deposit to be substracted to payments only and not to total of final invoice
+ $filtercreditnote = "fk_facture_source IS NOT NULL"; // If we want deposit to be substracted to payments only and not to total of final invoice
+ $filtercreditnote = "fk_invoice_supplier_source IS NOT NULL"; // If we want deposit to be substracted to payments only and not to total of final invoice
+ $invoicestatic->statut = $obj->fk_statut; // For backward comaptibility
+ $jsListType .= (!empty($jsListType) ? ',' : '').'"'.$type.'":"'.$curent.'"';
+ $level = 0; // if $level = -1, we dont' use sublevel recursion, we show all lines
+ $line->pa_ht = $line->pa_ht; // we choosed to have buy/cost price always positive, so no revert of sign here
+ $msgishtml = -1; // Unknow by default
+ $paht_ret = $paht;
+ $paramfortooltipimg = ($extracss ? ' class="'.$extracss.'"' : '').($extrastyle ? ' style="'.$extrastyle.'"' : ''); // Attribut to put on td text tag
+ $paramfortooltiptd = ($extracss ? ' class="'.$extracss.'"' : '').($extrastyle ? ' style="'.$extrastyle.'"' : ''); // Attribut to put on td text tag
+ $pdf->MultiCell($this->posxdiscount - $this->posxunit, 2, $outputlangs->transnoentities("Label Mouvement"), '', 'C');
+ $pdf->SetXY($this->getColumnContentXStart($colKey), $curY); // Set curent position
+ $result -= $amountToBreakdown; // And canceled substraction has been replaced by breakdown
+ $result = $ldap->add($dn, $info, $user); // Wil fail if already exists
+ $result = $line->insert(0, 1); // When creating credit note with same lines than source, we must ignore error if discount alreayd linked
+ $serie[$i] = "";
+ $serie[$i] = "var d" . $i . " = [];\n";
+ $showfield = 1; // By defaut
+ $sql .= " AND f.fk_statut = 2"; // payed Not that some corrupted data may contains f.fk_statut = 1 AND f.paye = 1 (it means payed too but should not happend. If yes, reopen and reclassify billed)
+ $sql .= " AND f.fk_statut = 3"; // abandonned
+ $sql .= " WHERE c.entity IN (".getEntity('commande').")"; // Dont't use entity if you use rowid
+ $sql .= " WHERE fk_facture_source = ".((int) $this->fk_facture_source); // Delete all lines of same serie
+ $sql .= " WHERE fk_invoice_supplier_source = ".((int) $this->fk_invoice_supplier_source); // Delete all lines of same serie
+ $sql .= " WHERE p.entity IN (0,".getEntity('partnership').")"; // Dont't use entity if you use rowid
+ $sql .= '(SELECT MAX(fs.rowid)'; // This select returns several ID becasue of the group by later
+ $sql = 'INSERT INTO '.MAIN_DB_PREFIX.'opensurvey_user_studs (nom, id_sondage, reponses)';
+ $sql = 'INSERT INTO '.MAIN_DB_PREFIX.'opensurvey_user_studs (nom, id_sondage, reponses, date_creation)';
+ $sql = 'INSERT INTO '.MAIN_DB_PREFIX.'opensurvey_user_studs (nom, id_sondage, reponses, ip, date_creation)';
+ $sql = 'SELECT s.reponses';
+ $sql2 .= " SET reponses = '".$db->escape($newcar)."'";
+ $this->category->childs = array();
+ $this->emetteur->country_code = substr($langs->defaultlang, -2); // Par defaut, si n'etait pas defini
+ $this->error = 'update_note was called on objet with property table_element not defined';
+ $this->modelpdf = $modelpdf; // For bakward compatibility
+ $this->output .= ' Send email successfuly to '.$nbok.' members';
+ $this->product->sousprods = $childs;
+ $this->tpl['yn_assujtva'] = $form->selectyesno('assujtva_value', $this->tpl['tva_assuj'], 1); // Assujeti par defaut en creation
+ $title = preg_replace("/([[:alnum:]])\?([[:alnum:]])/", "\\1'\\2", $title); // Gere probleme des apostrophes mal codee/decodee par utf8
+ $title = preg_replace("/^\s+/", "", $title); // Supprime espaces de debut
+ $trans_colour = imagecolorallocate($imgTarget, 255, 255, 255); // On procede autrement pour le format GIF
+ $trans_colour = imagecolorallocate($imgThumb, 255, 255, 255); // On procede autrement pour le format GIF
+ $txtforsticker = "%PHOTO%"; // Photo will be barcode image, %BARCODE% posible when using TCPDF generator
+ $values = array(); // Array with horizontal y values (specific values of a serie) for each abscisse x
+ $values = array(); // Array with horizontal y values (specific values of a serie) for each abscisse x (with x=0,1,2,...)
+ $valuetoshow = ucfirst($fieldlist[$field]); // By defaut
+ $valuetoshow = ucfirst($fieldlist[$field]); // Par defaut
+ $valuetoshow = ucfirst($value); // Par defaut
+ $ways = $c->print_all_ways(' >> ', 'none', 0, 1); // $ways[0] = "ccc2 >> ccc2a >> ccc2a1" with html formated text
+ 'sr.type' => "Type ban is defaut",
+ /* Disabled because bcc must remain by defintion not visible
+ // $_POST contains fk_commandefourndet_X_Y where Y is num of product line and X is number of splitted line
+ // $opt['filter[id]'] contais list of product id that are result of search
+ // 1 - Association des utilisateurs du groupe LDAP au groupe Dolibarr
+ // 2 - Suppression des utilisateurs du groupe Dolibarr qui ne sont plus dans le groupe LDAP
+ // A redirect is added if API call successfull
+ // Action according to choosed sending method
+ // Add personnal information
+ // Adding may convert the original string into a HTML string. Sowe have to first
+ // Amount payed
+ // Atom support many links per containging element.
+ // Aucun model par defaut.
+ // Batch number managment
+ // Bloc to update dates of service (month by month only if previously filled and similare to start and end of month)
+ // By default, electronic transfert from bank to bank
+ // CNAT
+ // Calculating a theorical value
+ // Check if the page we are translation of is alreayd a translation of a source page. if yes, we will use source id instead
+ // Check unicity for serial numbered equipments once all movement were done.
+ // Chercher un contact existant avec cette adresse email
+ // Color of earch arc
+ // Defaut
+ // Discard check of mandatory fiedls for other fields
+ // Documents are stored above the web pages root to prevent being downloaded without authentification
+ // Dont't use entity if you use rowid
+ // Dynamic max line heigh calculation
+ // Editer une facture deja validee, sans paiement effectue et pas exporte en compta
+ // Exemple : ALTER TABLE llx_adherent ADD CONSTRAINT adherent_fk_soc FOREIGN KEY (fk_soc) REFERENCES llx_societe (rowid)
+ // Exemple, now $urltograbdirwithoutslash is https://www.dolimed.com/screenshots
+ // Fonctions de conversion non presente dans ce PHP
+ // Fonctions of conversion not available in this PHP
+ // For invoice, we don't want to have a reference line on document. Image we are using recuring invoice, we will have a line longer than document width.
+ // Gestion des groupes
+ // Gestion des utilisateurs associés au groupe
+ // Groupes
+ // If a bank account is prodived and we ask to use it as creditor, we use the bank address
+ // If not abandonned
+ // If stock decrease is on invoice validation, the theorical stock continue to
+ // If there is a nown BOM, we force the type of MO to the type of BOM
+ // If this is the requestor or has read/write rights
+ // If value contains the unique code of vat line (new recommanded method), we use it to find npr and local taxes
+ // Informations for expense report (dates and users workflow)
+ // Keep invoices that are not situation invoices or that are the last in serie if it is a situation invoice
+ // Les contraintes indesirables ont un nom qui commence par 0_ ou se termine par ibfk_999
+ // Limit and truncate with "…" the displayed text lenght, 0 = disabled
+ // Message must be formated and translated to be used with javascript directly
+ // Microsoft is a service that does not need state to be stored as second paramater of requestAccessToken
+ // Note: We accept disabled account as parent account so we can build a hierarchy and use only childs
+ // Note: We are here only if $conf->global->MAIN_AGENDA_ACTIONAUTO_action is on (tested at begining of this function).
+ // Nouveau système du comon object renvoi des rowid et non un id linéaire de 1 à n
+ // On nettoie le header pour qu'il ne se termine pas par un retour chariot.
+ // On parcourt donc une liste d'objets en tant qu'objet unique
+ // On selectionne les users qui ne sont pas deja dans le groupe
+ // On verifie l'emplacement du modele
+ // On verifie si aucun paiement n'a ete effectue
+ // On verifie si la balise prefix est utilisee
+ // On verifie si la facture a des paiements
+ // Option to reload page to retrieve customer informations. Note, this clear other input
+ // Parameteres execution
+ // Programm next run
+ // Replace espacing \' by ''.
+ // Replace protected special codes with matching number of _ as wild card caracter
+ // Select des informations du projet
+ // Set default encryption to yes, generate a salt and set default encryption algorythm (but only if there is no user yet into database)
+ // Show var initialized by include fo paypal lib at begin of this file
+ // Si il y a eu echec de connexion, $this->db n'est pas valide pour mysqli_error.
+ // Si il y a eu echec de connexion, $this->db n'est pas valide pour sqlite_error.
+ // Si il y a eu echec de connexion, $this->db n'est pas valide.
+ // Si on a demande supression d'un droit en particulier, on recupere
+ // Si on a selectionne une demande a copier, on realise la copie
+ // So we wil know the payment that have generated the bank transaction
+ // Sort array by date ASC to calucalte balance
+ // Succes
+ // TODO : revoir la gestion des groupes (ou script de sync groupes)
+ // TODO A virer quand sera gere par l'appelant
+ // TODO We can't, we dont' have full path of file, only last_main_doc and ->element, so we must first rebuild full path $destfull
+ // TODO We show localtax from $object, but this properties may not be correct. Only value $object->default_vat_code is guaranted.
+ // TODO mettre dans une classe propre au pays
+ // Tableau des parametres complementaires du post
+ // The entity on the table usergroup_user should be useless and should never be used because it is alreay into gr and r.
+ // This is when PHP session is ran outside a web server, like from Linux command line (Not always defined, but usefull if OS defined it).
+ // This need a lot of time, that's why enabling alternative dir like "custom" dir is not recommanded
+ // Update hourly rate of this time spent entry, but only if it was not set initialy
+ // We choosed to have line->pa_ht always positive in database, so we guess the correct sign
+ // We dont have printers so return blank array
+ // We keep it with value ForceBuyingPriceIfNull = 2 for retroactive effect but results are unpredicable.
+ // We must filter on assignement table
+ // We need to keep the 10 lastest number of invoice doc_ref not the beginning part that is the unusefull almost same part
+ // We use invoice date $data->doc_date not $date_ecriture which is the transfert date
+ // add substition variable for ticket
+ // add variables subtitutions ticket
+ // count the orders to ship in theorical stock when some are already removed by invoice validation.
+ // de ceux du produit par defaut (par exemple si pays different entre vendeur et acheteur).
+ // et on met la quantité de la ligne dans la limite du "budget" indiqué par dispatch.qty
+ // if "frequency" is empty or = 0, the reccurence is disabled
+ // mise a jour des reponses utilisateurs dans la base
+ // note: i don't think this is actually neccessary
+ // of the amount and currency retreived from the POST.
+ // on verifie si l'objet est utilisé
+ // only if socid not filled else it's allready done upper
+ // procédure de remplacement de la table pour ajouter la contrainte
+ // save curent cell padding
+ // si le curseur est un booleen on retourne la valeur 0
+ // this conf is actually hidden, by default we use 10% for "be carefull or warning"
+ //Add hook to filter on user (for exemple on usergroup define in custom modules)
+ //Calcultate new task end date with difference between origin proj end date and origin task end date
+ //Calcultate new task start date with difference between old proj start date and origin task start date
+ //Calcultate new task start date with difference between origin proj start date and origin task start date
+ //Chek special NIF
+ //Origin project strat date
+ //Stock mouvement
+ //We use invoice date $data->doc_date not $date_ecriture which is the transfert date
+ //XXX: Should be done just befor commit no ?
+ //if ($user->socid > 0) $socid = $user->socid; // For external user, no check is done on company because readability is managed by public status of project and assignement.
+ //print "connexion de type=".$conf->db->type." sur host=".$conf->db->host." port=".$conf->db->port." user=".$conf->db->user." name=".$conf->db->name;
+ //si le sujet n'est pas celui qui a été effacé alors on concatene
+ //si on voit une erreur, le fond de la case est rouge
+ console.log("Load desciption into text area : "+description);
+ continue; // We discard parametes starting with ?
+ dol_print_error('', get_class($this)."::load_previous_next_ref was called on objet with property table_element not defined");
+ dol_syslog("Can't remove thirdparty with id ".$id.". There is ".$objectisused." childs", LOG_WARNING);
+ dol_syslog("Failed to read image using Imagick (Try to install package 'apt-get install php-imagick ghostscript' and check there is no policy to disable ".$ext." convertion in /etc/ImageMagick*/policy.xml): ".$e->getMessage(), LOG_WARNING);
+ dol_syslog("Fichier invalide",LOG_WARNING);
+ dol_syslog("RejetPrelevement::_send_email Userid invalide");
+ dol_syslog('User not found, connexion refused');
+ dol_syslog(get_class($this) . "::validate action abandonned: already validated", LOG_WARNING);
+ dol_syslog(get_class($this). '::setFrequencyAndUnit was called on objet with params frequency defined but unit not defined', LOG_ERR);
+ dol_syslog(get_class($this). '::setFrequencyAndUnit was called on objet with property table_element not defined', LOG_ERR);
+ dol_syslog(get_class($this)."::accept action abandonned: already acceptd", LOG_WARNING);
+ dol_syslog(get_class($this)."::add successfull", LOG_DEBUG);
+ dol_syslog(get_class($this)."::add_attribute successfull", LOG_DEBUG);
+ dol_syslog(get_class($this)."::deleteAttribute successfull", LOG_DEBUG);
+ dol_syslog(get_class($this)."::line_order was called on objet with property fk_element not defined", LOG_ERR);
+ dol_syslog(get_class($this)."::line_order was called on objet with property table_element_line not defined", LOG_ERR);
+ dol_syslog(get_class($this)."::modify successfull", LOG_DEBUG);
+ dol_syslog(get_class($this)."::rename successfull", LOG_DEBUG);
+ dol_syslog(get_class($this)."::setAutoValidate was called on objet with property table_element not defined", LOG_ERR);
+ dol_syslog(get_class($this)."::setBankAccount was called on objet with property table_element not defined", LOG_ERR);
+ dol_syslog(get_class($this)."::setContract was called on objet with property table_element not defined", LOG_ERR);
+ dol_syslog(get_class($this)."::setDocModel was called on objet with property table_element not defined", LOG_ERR);
+ dol_syslog(get_class($this)."::setFrequencyAndUnit was called on objet with params frequency defined but unit not defined", LOG_ERR);
+ dol_syslog(get_class($this)."::setFrequencyAndUnit was called on objet with property table_element not defined", LOG_ERR);
+ dol_syslog(get_class($this)."::setGeneratePdf was called on objet with property table_element not defined", LOG_ERR);
+ dol_syslog(get_class($this)."::setMaxPeriod was called on objet with property table_element not defined", LOG_ERR);
+ dol_syslog(get_class($this)."::setModelPdf was called on objet with property table_element not defined", LOG_ERR);
+ dol_syslog(get_class($this)."::setNextDate was called on objet with property table_element not defined", LOG_ERR);
+ dol_syslog(get_class($this)."::setProject was called on objet with property table_element not defined", LOG_ERR);
+ dol_syslog(get_class($this)."::setShippingMethod was called on objet with property table_element not defined", LOG_ERR);
+ dol_syslog(get_class($this)."::setWarehouse was called on objet with property table_element not defined", LOG_ERR);
+ dol_syslog(get_class($this)."::updateAttribute successfull", LOG_DEBUG);
+ dol_syslog(get_class($this)."::update_note was called on objet with property table_element not defined", LOG_ERR);
+ dol_syslog(get_class($this)."::update_ref_ext was called on objet with property table_element not defined", LOG_ERR);
+ dol_syslog(get_class($this)."::valid action abandonned: already validated", LOG_WARNING);
+ dol_syslog(get_class($this)."::validate action abandonned: already validated", LOG_WARNING);
+ dol_syslog(get_class($this).'::setAutoValidate was called on objet with property table_element not defined', LOG_ERR);
+ dol_syslog(get_class($this).'::setGeneratePdf was called on objet with property table_element not defined', LOG_ERR);
+ dol_syslog(get_class($this).'::setMaxPeriod was called on objet with property table_element not defined', LOG_ERR);
+ dol_syslog(get_class($this).'::setModelPdf was called on objet with property table_element not defined', LOG_ERR);
+ dol_syslog(get_class($this).'::setNextDate was called on objet with property table_element not defined', LOG_ERR);
+ for ($i = 0; $i < $nbseries; $i++) { // Loop on each serie
+ foreach ($criterias as $criteriafamilykey => $criteriafamilyval) {
+ foreach ($legends as $val) { // Loop on each serie
+ header("Location: ".$_SERVER["PHP_SELF"].'?id='.$id.($backtopage ? '&backtopage='.urlencode($backtopage) : '')); // To avoid pb whith back
+ idata++; //Next data everytime
+ if (!empty($_facrec->frequency)) { // Invoice are created on same thirdparty than template when there is a recurrence, but not necessarly when there is no recurrence.
+ if ($attachs && strpos($action, 'SENTBYMAIL')) {
+ if ($user->hasRight('stock', 'mouvement', 'lire')) {
+ if ($value) { // If we have -1 here, pb is into insert, not into ouptut (fix insert instead of changing code here to compensate)
+ if (empty($objimport->array_import_convertvalue[0][$tmpcode])) { // If source file does not need convertion
+ jQuery("#mouvement").change(function() {
+ preg_match('/\((.+)\)/i', $objp->label, $reg); // Si texte entoure de parenthese on tente recherche de traduction
+ print " - Error cant find payment mode for ".$condpayment."\n";
+ print "Expedition inexistante ou acces refuse";
+ print "\n\n";
+ print ''."\n";
+ print ''.$langs->trans("TransferStock").'';
+ print ''; // Explicit link, usefull for nojs interfaces
+ print '
', $decodedstring, 'Function did not sanitize correclty with test 2');
+ $this->assertEquals('a : b " c \' d ' e é', $decodedstring, 'Function did not sanitize correclty');
+ $this->assertEquals('a : b " c \' d \' e é', $decodedstring, 'Function did not sanitize correclty');
+ $this->assertEquals('afile', $result);
+ $this->assertEquals('eée', $decodedstring, 'Function did not sanitize correclty with test 1');
+ $this->assertTrue($result, 'move of directory with directory whitout rename needed in directory');
+ $this->assertTrue($result, 'move of directory with file whitout rename needed in directory');
+ $this->const[$r][2] = "DOL_DATA_ROOT/doctemplates/stocks/mouvements";
+ $this->const[$r][3] = "Mot de passe Admin des liste mailman";
+ $this->description = "A tool for developper adding a debug bar in your browser.";
+ $this->description = "Ajout de files d'informations RSS dans les ecrans Dolibarr";
+ $this->description = "Gestion des projets";
+ $this->object->address = GETPOST("adresse");
+ $this->posxdesc = $this->marge_gauche + 1; // For module retrocompatibility support durring PDF transition: TODO remove this at the end
+ $this->posxdesc = $this->marge_gauche + 1; // used for notes ans other stuff
+ $this->rights[$r][1] = 'Exporter les commande fournisseurs, attributs';
+ $this->rights[$r][1] = 'Exporter les factures fournisseurs, attributs et reglements';
+ $this->rights[$r][3] = 0; // La permission est-elle une permission par defaut
+ $this->rights[$r][3] = 1; // La permission est-elle une permission par defaut
+ $this->rights[1][1] = 'Lire ses notes de frais et deplacements et celles de sa hierarchy';
+ $this->rights[1][3] = 1; // La permission est-elle une permission par defaut
+ $this->rights[2][3] = 0; // La permission est-elle une permission par defaut
+ $this->rights[3][1] = 'Lire mouvements de stocks';
+ $this->rights[4][1] = 'Creer/modifier mouvements de stocks';
+ $this->rights[4][3] = 0; // La permission est-elle une permission par defaut
+ $this->signature_line = dol_hash($keyforsignature, '5'); // Not really usefull
+ $this->tva_intra = empty($conf->global->MAIN_INFO_TVAINTRA) ? '' : $conf->global->MAIN_INFO_TVAINTRA; // VAT number, not necessarly INTRA.
+ $valuetoshow = ucfirst($fieldlist[$field]); // Par defaut
+ 'filles' => array('name'=>'filles', 'type'=>'tns:FillesArray')
+ 'fk_statut' =>array('type'=>'smallint(6)', 'label'=>'Status', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'position'=>1000, 'arrayofkeyval'=>array(0=>'Draft', 1=>'Validated', 2=>'Paid', 3=>'Abandonned')),
+ 'qty_regulated' => array('type'=>'double', 'label'=>'QtyDelta', 'visible'=>1, 'enabled'=>1, 'position'=>34, 'index'=>1, 'help'=>'Qty aadded or removed (filled once movements are validated)'),
+ /* Definition de la date limite */
+ /* Liste des taches et role sur les projets ou taches */
+ /* width: ...px; If I use with, there is trouble on size of flex boxes solved with min + (max that is a little bit higer than min) */
+ /*if (getDolGlobalInt('PRODUCT_USE_OLD_PATH_FOR_PHOTO')) // For backward compatiblity, we scan also old dirs
+ // $boxidactivatedforuser will be array of boxes choosed by user
+ // $options is array with filter criterias
+ // $placeid is the invoice id (it differs from place) and is defined if the place is set and the ref of invoice is '(PROV-POS'.$_SESSION["takeposterminal"].'-'.$place.')', so the fetch at begining of page works.
+ // $this->rights[$r][1] Libelle par defaut si traduction de cle "PermissionXXX" non trouvee (XXX = Id permission)
+ // $this->rights[$r][3] 1=Permis par defaut, 0=Non permis par defaut
+ // 'member' to add a tab in fundation member view
+ // 'member' to add a tab in fundation member view
+ // - If not set, we accept ot have amount defined as parameter (for backward compatibility).
+ // Action according to choosed sending method
+ // Add code to open url using the popup. Add also hidden field to retreive the returned variables
+ // Add infor from $object->xxx where xxx has been loaded by fetch_origin() of shipment
+ // Add the count of record only for the main/first level object. Parents are necessarly unique for each record.
+ // Alow external links to svg ?
+ // Amount keys formated in a currency
+ // Build file for Other Countries with unknow format
+ // Build filter to diplay only concerned lines
+ // By default, electronic transfert from bank to bank
+ // CHANGE THIS: Optionnal
+ // Chargement de labels et data_xxx pour tableau 4 Mouvements
+ // Chargement librairie pour acces fonction controle RIB
+ // Check if field was submited to be edited
+ // Check paramaters
+ // Classif "paid partialy"
+ // Clean paramater $typeofdata
+ // Concatenation des differents codes.
+ // Confirm cancelation
+ // Confirm deleteion
+ // Connexion ldap
+ // Convert MySQL syntax to PostgresSQL syntax
+ // Create with status validated immediatly
+ // Creation de la classe d'import du model Import_XXX
+ // Creation objet
+ // Delivery date planed
+ // Dependancies
+ // Don't log Luracast Restler Explorer recources calls
+ // Essai connexion serveur
+ // Event into a serie
+ // Exclude unsubscribed email adresses
+ // Files missings
+ // First, we get the max value (reponse immediate car champ indexe)
+ // For backward compatiblity, we detect file stored into an old path
+ // For each file build select list with PDF extention
+ // For external user, no check is done on company because readability is managed by public status of project and assignement.
+ // For external user, no check is done on company permission because readability is managed by public status of project and assignement.
+ // Forced filter on socid is similar to forced filter on project. TODO Use project assignement to allow to not use filter on project
+ // Github is a service that does not need state to be stored as second paramater of requestAccessToken
+ // Hooks on successfull login
+ // How the date for data are formated (format used bu jsgantt)
+ // How the date for data are formated (format used by dol_print_date)
+ // If lib not found in language file, we get label from cache/databse
+ // If option choosed, we create invoice
+ // If resultset not provided, we take the last used by connexion
+ // If stock increment is done on reception (recommanded choice)
+ // If stock increment is done on sending (recommanded choice)
+ // If value contains the unique code of vat line (new recommanded method), we use it to find npr and local taxes
+ // Initialisation objet actioncomm
+ // Initialise parametres
+ // Insert into bank account directlty (if option choosed for) + link to llx_subscription if option is 'bankdirect'
+ // Keep the orginal
+ // Limite acces si droits non corrects
+ // Links beetween objects are stored in this table
+ // Load extrafiels if not allready does
+ // Log the init of hook but only for hooks thare are declared to be managed
+ // Loop on each line keword was found into file.
+ // Mis a jour contact
+ // More informations
+ // Multiplication de chaque groupe par les coef du tableau
+ // Nettoyage parametres
+ // No check is done on company permission because readability is managed by public status of project and assignement.
+ // Now complete $this->newmenu->list to add entries found into $tabMenu that are childs of mainmenu=$menutopid, using the fk_menu link that is int (old method)
+ // On definit fin de ligne
+ // On recherche les formes juridiques actives des pays actifs
+ // On recherche les groupes
+ // On remplace les eventuelles lettres par des chiffres.
+ // On va boucler sur chaque ligne du document d'origine pour completer objet reception
+ // On verifie signe facture
+ // Only record into stock tables wil be disabled by this (the rest like writing into lot table or movement of subproucts are done)
+ // Option to reload page to retrieve customer informations.
+ // Ordre SQL ne necessitant pas de connexion a une base (exemple: CREATE DATABASE)
+ // Ouput page under the Dolibarr top menu
+ // Permet de commencer l'impression de l'etiquette desiree dans le cas ou la page a deja servie
+ // Permettre l'exclusion de groupes
+ // Permettre l'inclusion de groupes
+ // Positionne parametres
+ // Positionning
+ // Refresh / Reload web site (for non javascript browers)
+ // Remove '<' into remainging, so remove non closing html tags like '1, "s.nom"=>2); // Mut be fields found into declaration of dataset
+ //$signature_line = dol_hash($keyforsignature, '5'); // Not really usefull
+ //Add hook to filter on user (for exemple on usergroup define in custom modules)
+ //If dispach process running we add the number of item to dispatch into the head
+ //If invoice has been converted and the conversion has been used, we dont have remain to pay on invoice
+ //In some case $object is not instanciate (for paiement on custom object) We need to deal with payment
+ //Iterate over each expression splitted by $separator_chr
+ //Label mouvement
+ //Lot/serie Product
+ //We should use dol_now function not time however this is wrong date to transfert in accounting
+ //check if tag type submited exists into Tag Map categorie class
+ //decoding the respose
+ //postion of Key
+ //prevents agains infinite loop when we can't create root folder
+ //print "L'EAN se compose de 8 caracteres, 7 chiffres plus une cle de controle. ";
+ //print $rouge.$vert.$bleu;
+ //sinon on remplace les choix de l'utilisateur par une ligne de checkbox pour recuperer de nouvelles valeurs
+ //var_dump($serie);
+ console.log("Cancel check_events() with dolnotif_nb_test_for_page="+dolnotif_nb_test_for_page+". Check is useless because javascript Notification.permission is "+Notification.permission+" (blocked manualy or web site is not https).");
+ console.log("Change montly amount echeance="+echeance+" idcap="+idcap+" capital="+capital);
+ dol_syslog("Warning: Function form_constantes is calle with parameter strictw3c = 0, this is deprecated. Value must be 2 now.", LOG_DEBUG);
+ dol_syslog(get_class($this)."::getCustomerAccount Try to find the first system customer id for ".$site." of thirdparty id=".$id." (exemple: cus_.... for stripe)", LOG_DEBUG);
+ dol_syslog(get_class($this)."::setCategoriesCommon Oject Id:".$this->id.' type_categ:'.$type_categ.' nb tag add:'.count($categories), LOG_DEBUG);
+ foreach ($allways as $way) {
+ foreach ($arrayofcriterias as $criterias) {
+ foreach ($parent as $key => $value) { // key=label, value is array of childs
+ header("Location: ".$_SERVER["PHP_SELF"].'?id='.$id); // To avoid pb whith back
+ if (!$login || (in_array('ldap', $authmode) && empty($passwordtotest))) { // With LDAP we refused empty password because some LDAP are "opened" for anonymous access so connexion is a success.
+ if (!empty($this->phone)) { // If a phone of thirdparty is defined, we add it ot mobile of contacts
+ if (!is_array($this->userassigned) && !empty($this->userassigned)) { // For backward compatibility when userassigned was an int instead fo array
+ if ($lines[$i]->fk_parent == $parent || $level < 0) { // if $level = -1, we dont' use sublevel recursion, we show all lines
+ if ($user->hasRight('stock', 'mouvement', 'creer')) {
+ if (GETPOST('import_name')) { // If we have submited a form, we take value used fot the update try
+ if (dol_strlen($phone) == 10) {// fixe 6 chiffres +352_AA_BB_CC
+ if (empty($conf->global->PDF_BANK_HIDE_NUMBER_SHOW_ONLY_BICIBAN)) { // Note that some countries still need bank number, BIC/IBAN not enougth for them
+ if (empty($res)) $this->db->query('INSERT INTO '.MAIN_DB_PREFIX.'c_type_contact(rowid, element, source, code, libelle, active, module, position) VALUES('.((int) $nextid).', "StockTransfer", "external", "STDEST", "Contact destinataire transfert de stocks", 1, NULL, 0)');
+ if (empty($res)) $this->db->query('INSERT INTO '.MAIN_DB_PREFIX.'c_type_contact(rowid, element, source, code, libelle, active, module, position) VALUES('.((int) $nextid).', "StockTransfer", "external", "STFROM", "Contact expéditeur transfert de stocks", 1, NULL, 0)');
+ if (empty($res)) $this->db->query('INSERT INTO '.MAIN_DB_PREFIX.'c_type_contact(rowid, element, source, code, libelle, active, module, position) VALUES('.((int) $nextid).', "StockTransfer", "internal", "STRESP", "Responsable du transfert de stocks", 1, NULL, 0)');
+ if (empty($tabtp[$obj->rowid]) && !empty($tabmoreinfo[$obj->rowid]['withdraw'])) { // If we dont find 'company' link because it is an old 'withdraw' record
+ if (getDolGlobalInt('PRODUCT_USE_OLD_PATH_FOR_PHOTO')) { // For backward compatiblity, we scan also old dirs
+ jQuery("#tva_tx").click(function() { /* somtimes field is a text, sometimes a combo */
+ jQuery("#tva_tx").keyup(function() { /* somtimes field is a text, sometimes a combo */
+ preg_match('/\((.+)\)/i', $objp->label, $reg); // Si texte entoure de parenthese on tente recherche de traduction
+ print "(currenlty not available)";
+ print "Expedition inexistante ou acces refuse";
+ print $form->selectyesno('assujtva_value', GETPOSTISSET('assujtva_value') ?GETPOST('assujtva_value', 'int') : 1, 1); // Assujeti par defaut en creation
+ print $langs->trans("SFTP (FTP as a subsytem of SSH)").': '.yn($conf->global->FTP_CONNECT_WITH_SFTP).' ';
+ print '
'; // You can use div-table-responsive-no-min if you dont need reserved height for your table
+ print '
'; // You can use div-table-responsive-no-min if you dont need reserved height for your table
+ print '
'; // You can use div-table-responsive-no-min if you dont need reserved height for your table
+ print '
%
';
+ print '
'.$langs->trans("Time").' '.$j.'
'."\n";
+ print '
'."\n";
+ print 'This website or feature is currently temporarly not available or failed after a technical error.
This may be due to a maintenance operation. Current status of operation ('.dol_print_date(dol_now(), 'dayhourrfc').') are on next line...
'."\n";
+ return $childs;
+ return $objet->compteur;
+ unset($object->supplierprices); // Mut use another API to get them
+ while ($i < $nblot) { // Loop on each serie
+ } else // We decrease agressiveness
+ } else { // If thirdparty unkown, output the waiting account
+ } else { // old method. deprecated because ot can't retrieve type
+ } elseif (!empty($this->fk_element) && !empty($this->childtables)) { // If object has childs linked with a foreign key field, we check all child tables.
+ } elseif (dol_strlen($phone) == 11) {// fixe 7 chiffres +352_AA_BB_CC_D
+ } elseif (dol_strlen($phone) == 12) {// fixe 8 chiffres +352_AA_BB_CC_DD
+ echo Only one line remainging into file $fic, we delete it;
+ // TODO Check the lineid $lineid is a line of ojbect
+ * fullname = nom avec chemin complet du user
+ * fullpath = chemin complet compose des id: "_grandparentid_parentid_id"
+ * @param DoliDB $db Handler acces base
+ * @param Societe $soc Objet societe
+ * Functiun to exlude (set adherent.status to -2) a member
+ * Renvoi si un code est pris ou non (par autre tiers)
+ * @param mixed $gm 'gmt'=Input informations are GMT values, 'tzserver'=Local to server TZ
+ * 'Fiche LDAP' qui affiche champ lisibles par defaut.
+ * (Status validated or abandonned for a reason 'other') + not payed + no payment at all + not already replaced
+ * (validated + payment on process) or classified (payed completely or payed partiely) + not already replaced + not already a credit note
+ * @param User $user Handler du user connecte
+ * @param User $user Objet user that make creation
+ * @param int $info_bits Miscellaneous informations
+ * @param int $closepaidinvoices 1=Also close payed invoices to paid, 0=Do nothing more
+ * @param int $closepaidcontrib 1=Also close payed contributions to paid, 0=Do nothing more
+ * @param integer $alreadypaid 0=No payment already done, >0=Some payments were already done (we recommand to put here amount payed if you have it, -1 otherwise)
+ * @param string $pass Mot de passe
+ * @param Adherent $object Member object. Old usage: Array of record informations (array('textleft'=>,'textheader'=>, ...'id'=>,'photo'=>)
+ * @param DoliDB $db Handler acces base
+ * @param DoliDB $db Handler acces base de donnees
+ * @param DoliDB $db Handler acces data base
+ * @param Product $product Objet product
+ * @param Societe $thirdparty Objet third-party
+ * @param Translate $outputlangs Objet langs
+ * @param Translate $outputlangs Objet langs
+ * @param Translate $outputlangs Objet langs
+ * @param Translate $outputlangs objet lang a utiliser pour traduction
+ * @param User $user Objet user that modify
+ * @param User $user Objet user that create
+ * @param User $user Objet user that modify
+ * @param User $user Objet user making update
+ * @param User $user Objet user qui valide
+ * @param User $user Objet user qui demande la creation
+ * @param array $arrayofrecords Array of record informations (array('textleft'=>,'textheader'=>, ..., 'id'=>,'photo'=>)
+ * @param array $extra_values Any aditional values for expression
+ * @param array $extra_values Any aditional values for expression
+ * @param int $socid Id ot third party or 0 for all or -1 for empty list
+ * @param int $id Id du paiement dont il faut afficher les infos
+ * @param mixed $gm 'gmt'=Input informations are GMT values, 'tzserver'=Local to server TZ
+ * @param string $method method of transmision to bank
+ * @param string $dolibarr_main_db_pass Mot de passe user a creer
+ * @param string $field_desc Tableau associatif de description du champ a inserer[nom du parametre][valeur du parametre]
+ * @param string $resko resultat si test non egal
+ * @param string $resok resultat si test egal
+ * @param User $user Objet user
+ * @param User $user Objet user making change
+ * @param User $user Objet user that modify
+ * @param User $user Objet utilisateur qui modifie
+ * @param User $user Objet utilisateur qui modifie
+ * @param int $info_bits Miscellaneous informations
+ * @param string $get_params Parametres added to url
+ * @param string $get_params Parametres added to url
+ * @param int $idremise Id de la remise fixe
+ * @param bool $multiple add [] in the name of element and add 'multiple' attribut
+ * @param string $close_code Code indicates whether the class has paid in full while payment is incomplete. Not implementd yet.
+ * @param string $close_code Code renseigne si on classe a payee completement alors que paiement incomplet (cas escompte par exemple)
+ * @param string $close_note Comment informs if the class has been paid while payment is incomplete. Not implementd yet.
+ * @param string $close_note Commentaire renseigne si on classe a payee alors que paiement incomplet (cas escompte par exemple)
+ * @return array Tableau info des attributs
+ * @return int < 0 if KO (infinit loop), >= 0 if OK
+ * @return array Tableau des informations des champs de la table
+ * @return string Error code (Exemples: DB_ERROR_TABLE_ALREADY_EXISTS, DB_ERROR_RECORD_ALREADY_EXISTS...)
+ * @return int 0 en cas de succes
+ * @return boolean false if conflit, true if ok
+ * Charge indicateurs this->nb de tableau de bord
+ * Charge indicateurs this->nb pour le tableau de bord
+ * Charge les informations d'ordre info dans l'objet commande
+ * Charge les informations d'ordre info dans l'objet facture
+ * Connexion to server
+ * Define properties fullpath, fullrelativename, fulllabel of a directory of array this->cats and all its childs.
+ * For category id_categ and its childs available in this->cats, define property fullpath and fulllabel.
+ * For user id_user and its childs available in this->users, define property fullpath and fullname.
+ * Function to build PDF on disk, then output on HTTP strem.
+ * Informations of vat payment object
+ * Init array $this->hooks with instantiated action controlers.
+ * Initialise tableau info (tableau des attributs LDAP)
+ * Les parametres sont deja cense etre juste et avec valeurs finales a l'appel
+ * Libere le dernier resultset utilise sur cette connexion
+ * Renvoie la description par defaut du modele de numerotation
+ * Renvoie un exemple de numerotation
+ * Retourne chaine DN complete dans l'annuaire LDAP pour l'objet
+ * Return HTML to show the search and clear seach button
+ * Return array of log objects (with criterias)
+ * Set withdrawal to transmited status
+ * TODO Remplacer les appels a cette fonction par generation objet Ligne
+ * TODO Replace calls to this function by generation objet Ligne
+ * This create an opened connexion to a database server and eventually to a database
+ * Upate ProductFournisseur
+ * Update the link betwen localtax payment and the line into llx_bank
+ * car conflit majuscule-minuscule. A n'utiliser que pour les pages
+ * get available output_modes for tcpdf class wth its translated description
+ * mise en forme du nom complet
+ * mise en forme du nom formate
+ * Les parametres sont deja cense etre juste et avec valeurs finales a l'appel
+ * @param Product $product contain informations to update
+ * @param bool $multiple add [] in the name of element and add 'multiple' attribut (not working with ajax_autocompleter)
+ * @param bool $multiple add [] in the name of element and add 'multiple' attribut
+ * @param int $info_bits Miscellaneous informations
+ * @param User $user Objet user that close
+ * @param bool $multiple add [] in the name of element and add 'multiple' attribut (not working with ajax_autocompleter)
+ * @return resource|int 1 if cancelation is ok or transaction not open, 0 if error
+ * Charge les informations d'ordre info dans l'objet entrepot
+ * Class line Contructor
+ * Renvoi la description par defaut du modele de numerotation
+ * Return list of all child users id in herarchy (all sublevels).
+ * Total of the VAT payed
+ * VAT payed
+ * set no_email attribut to 1 or 0
+ * For exemple jean;joe;jim%%;!jimo;!jima%> will target all jean, joe, start with jim but not jimo and not everythnig taht start by jima
+ * Si (vendeur et acheteur dans Communaute europeenne) et bien vendu = moyen de transports neuf (auto, bateau, avion), TVA par defaut=0 (La TVA doit etre paye par l'acheteur au centre d'impots de son pays et non au vendeur). Fin de regle.
+ * Si le (pays vendeur = pays acheteur) alors la TVA par defaut=TVA du produit vendu. Fin de regle.
+ * Sinon la TVA proposee par defaut=0. Fin de regle.
+ * Si vendeur non assujeti a TVA, TVA par defaut=0. Fin de regle.
+ * - string (categories ids seprated by comma)
+ * All types can also return some values into an array ->results that will be finaly merged into this->resArray for caller.
+ * fulllabel = nom avec chemin complet de la categorie
+ * fullpath = chemin complet compose des id
+ * @param User $user Objet user
+ * @param User $user Objet user
+ * @param User $user Objet user
+ * @param User $user Objet user
+ * @param User $user Objet user making change
+ * @param User $user Objet user
+ * @param string $vatrate VAT rate (may contain the vat code too). Exemple: '1.23', '1.23 (ABC)', ...
+ * Build the conditionnal string from filter the query
+ * Charge indicateurs this->nb de tableau de bord
+ * Charge indicateurs this->nb pour le tableau de bord
+ * Update informations into database
+ * @param string $page Url of page to call if confirmation is OK. Can contains parameters (param 'action' and 'confirm' will be reformated)
+ * $this->code_client = -1 and $this->code_fournisseur = -1 means automatic assignement.
+ * @param DoliDB $db Handler acces base de donnees
+ * @param int $mode 0=Close solved, 1=Close abandonned
+ * @param int $isencrypted 0 ou 1 si il faut crypter le mot de passe en base (0 par defaut)
+ * @param int $socid Id third pary
+ * @param DoliDB $db Handler acces base de donnees
+ * @param int $id id du paiement dont il faut afficher les infos
+ * @return integer erreur <0, si ok renvoi le nbre de droits par defaut positionnes
+ * Connexion to server
+ * Constructor de la classe
+ * Note: To complete search with a particular filter on select, you can set $object->next_prev_filter set to define SQL criterias.
+ * Remove tag payed on TVA
+ * Remove tag payed on social contribution
+ * Renvoi si un compte peut etre supprimer ou non (sans mouvements)
+ * Retourne la liste deroulante des differents etats d'une note de frais.
+ * Retourne la liste deroulante des formes juridiques tous pays confondus ou pour un pays donne.
+ * Return combo list of differents status of a proposal
+ * Return incoterms informations
+ * Return incoterms informations for pdf display
+ * Return list of categories having choosed type
+ * Tag TVA as payed completely
+ * Tag social contribution as payed completely
+ * @param Conf $conf Objet conf
+ * @param Translate $langs Objet lang
+ * @param User $user Objet user
+ * @param object $object Objet concerned. Some context information may also be provided into array property object->context.
+ * Charge indicateurs this->nb de tableau de bord
+ * Retourne la liste deroulante des regions actives dont le pays est actif
+ * 'foreignkey'=>'tablename.field' if the field is a foreign key (it is recommanded to name the field fk_...).
+ * @param Translate $outputlangs objet lang a utiliser pour traduction
+ * @param User $user Objet user that make creation
+ * @param int $disablestockchangeforsubproduct Disable stock change for sub-products of kit (usefull only if product is a subproduct)
+ * @param string $criteria Use %% as magic caracters. For exemple to find all item like jean, joe, jim, you can input j%%, you can also use ; as separator for value,
+ * @param string $filter SQL filter on users. This parameter must not come from user intput.
+ * @param string $pass Mot de passe
+ * @param int $disablecrop Disable crop feature on images (-1 = auto, prefer to set it explicitely to 0 or 1)
+ * @param DoliDB $db Handler acces base
+ * @param Product $product Objet product
+ * @param Translate $outputlangs Objet lang to use for translation
+ * @param Translate $outputlangs objet lang a utiliser pour traduction
+ * @param User $user Objet user that update
+ * @param User $user Objet User who activate contract
+ * @param User $user Objet User who close contract
+ * @param User $user Objet user qui valide
+ * @param User $user Objet user doing creation
+ * @param User $user Objet du user qui cree
+ * @param array $excludelinksto Do not show links of this type, for exemple array('order') or array('supplier_order'). null or array() if no exclusion.
+ * @param array $restrictlinksto Restrict links to some elements, for exemple array('order') or array('supplier_order'). null or array() if no restriction.
+ * @param array $arrayofrecords Array of record informations (array('textleft'=>,'textheader'=>, ..., 'id'=>,'photo'=>)
+ * @param bool $multiple add [] in the name of element and add 'multiple' attribut
+ * @param float $curY curent Y position
+ * @param int $fk_product_stock id product_stock for objet
+ * @param int $fk_product_stock id product_stock for objet
+ * @param int $fk_socpeople Id of thirdparty contact (if source = 'external') or id of user (if souce = 'internal') to link
+ * @param int $idprof 1,2,3,4 (Exemple: 1=siren,2=siret,3=naf,4=rcs/rm)
+ * @param int $lowmemorydump 1=Use the low memory method. If $lowmemorydump is set, it means we want to make the compression using an external pipe instead retreiving the content of the dump in PHP memory array $output_arr and then print it into the PHP pipe open with xopen().
+ * @param int $maxlength Max number of charaters into label. If negative, use the ref as label.
+ * @param int $no_email 1=Do not send mailing, 0=Ok to recieve mailling
+ * @param int $socid Id ot third party or 0 for all
+ * @param int $categorie Category id (optionnal)
+ * @param string $list Visibilty ('0'=never visible, '1'=visible on list+forms, '2'=list only, '3'=form only or 'eval string')
+ * @param string $list Visibily
+ * @param string $elemtype Type of element we show ('category', ...). Will execute a formating function on it. To use in readonly mode if js component support HTML formatting.
+ * @param string $label Descripton
+ * @param string $modele force le modele a utiliser ('' par defaut)
+ * @param string $table Nmae of table filter ('xxx%')
+ * @param string $errors_to erros to
+ * @param string $list Visiblity
+ * @param string $resko resultat si test non egal
+ * @param string $resok resultat si test egal
+ * @param string $selected Id remise fixe pre-selectionnee
+ * @param User $user Objet utilisateur qui met a jour le don
+ * @param User $user Objet du user qui cree
+ * @param User $user Objet user
+ * @param int $info_bits Miscellaneous informations on line
+ * @param int $socid Id third pary
+ * @param Translate $outputlangs objet lang a utiliser pour traduction
+ * @param User $excluser Objet user to exclude
+ * @param int $showcode 1=Add language code into label at begining, 2=Add language code into label at end
+ * @param integer $alreadypaid 0=No payment already done, >0=Some payments were already done (we recommand to put here amount payed if you have it, 1 otherwise)
+ * @param int $fk_cat Category of the vehicule used
+ * @param DoliDB $db Handler acces base de donnees
+ * @param Object $object Objet livraison
+ * @param Societe $soc Objet societe
+ * @param array $tabMenu Array to store new entries found (in most cases, it's empty, but may be alreay filled)
+ * @param array $extra_values Any aditional values for expression
+ * @param bool $multiple add [] in the name of element and add 'multiple' attribut
+ * @param double $alreadypaid 0=No payment already done, >0=Some payments were already done (we recommand to put here amount paid if you have it, 1 otherwise)
+ * @param double $alreadypaid 0=No payment already done, >0=Some payments were already done (we recommand to put here amount payed if you have it, 1 otherwise)
+ * @param int $closepaidinvoices 1=Also close payed invoices to paid, 0=Do nothing more
+ * @param integer $alreadypaid 0=No payment already done, >0=Some payments were already done (we recommand to put here amount paid if you have it, 1 otherwise)
+ * @param integer $searchalt Search also alernate language file
+ * @param string $filter Optionnal filters criteras (example: 's.rowid <> x')
+ * @param array $params array of additionals parameters
+ * @param int $showform Show form tags and submit button (recommanded is to use with value 0)
+ * @return string chaine formate SQL
+ * @return bool True if disconnect successfull, false otherwise
+ * @return boolean True if disconnect successfull, false otherwise
+ * @return array array('opened'=>Amount including tax that remains to pay, 'total_ht'=>Total amount without tax of all objects paid or not, 'total_ttc'=>Total amunt including tax of all object paid or not)
+ * @return string If OK return clear password, 0 if no change (warning, you may retreive 1 instead of 0 even if password was same), < 0 if error
+ * Charge dans l'objet group, la liste des permissions auquels le groupe a droit
+ * Charge les informations d'ordre info dans l'objet commande
+ * Charge les informations d'ordre info dans l'objet contrat
+ * Charge les informations d'ordre info dans l'objet facture
+ * Charge les informations sur le contact, depuis la base
+ * Charge un objet group avec toutes ses caracteristiques (except ->members array)
+ * Clean fields (triming)
+ * Close database connexion
+ * Create a document onto disk accordign to template module.
+ * Delete object in database. If fk_facture_source is defined, we delete all familiy with same fk_facture_source. If not, only with id is removed
+ * Deplace fichier uploade sous le nom $file dans le repertoire sdir
+ * Fonction appelee lors d'une nouvelle connexion
+ * Fonction qui dit si cet utilisateur est un redacteur existant dans spip
+ * Function to build PDF on disk, then output on HTTP strem.
+ * Les parametres sont deja cense etre juste et avec valeurs finales a l'appel
+ * Mise a jour en base de la date de derniere connexion d'un utilisateur
+ * On compare juste manuellement si la database choisie est bien celle activee par la connexion
+ * Renvoi la description par defaut du modele de numerotation
+ * Renvoi si un code est pris ou non (par autre tiers)
+ * Renvoi si un code respecte la syntaxe
+ * Retourne la version traduite du texte passe en parametre complete du code pays
+ * Return a HTML link to the user card (with optionaly the picto)
+ * Return a link (with optionaly the picto)
+ * Return a link to the a lot card (with optionaly the picto)
+ * Return a link to the object card (with optionaly the picto)
+ * Return a link to the object card (with optionaly the picto).
+ * Return a link to the user card (with optionaly the picto)
+ * Return an array formated for showing graphs
+ * Return childs of product $id
+ * Return clickable link of login (eventualy with picto)
+ * Return combo list of differents status of a orders
+ * Returns if a profid sould be verified to be unique
+ * Show 2 HTML widget to input a date or combo list for day, month, years and optionaly hours and minutes.
+ * Show a HTML widget to input a date or combo list for day, month, years and optionaly hours and minutes.
+ * Show top header of page. This include the logo, ref and address blocs
+ * This create an opened connexion to a database server and eventually to a database
+ * WARNING: This method change temporarly context $conf->entity to be in correct context for each recurring invoice found.
+ * When initHooks function is called, with initHooks(list_of_contexts), an array $this->hooks is defined with instance of controler
+ * \brief Compute the cost of the kilometers expense based on the number of kilometers and the vehicule category
+ * or partialy (if close_code filled) + appel trigger BILL_PAYED => this->fk_statut=2, this->paye stay 0
+ * pour l'instant on ne definit pas les unites dans la base
+ * $this->${field} should be a clean and string value (so date are formated for SQL insert).
+ * (validated + payment on process) or classified (paid completely or paid partialy) + not already replaced + not already a credit note
+ * - $_aryEmail[org] = orignal string
+ * - 'sockets' [0] - conect via network to SMTP server
+ * - 'sockets' [0] - conect via network to SMTP server - default
+ * - La semaine 1 de toute annee est celle qui contient le 4 janvier ou que la semaine 1 de toute annee est celle qui contient le 1er jeudi de janvier.
+ * - Then data_xxx.sql (usualy provided by external modules only)
+ * - Then update_xxx.sql (usualy provided by external modules only)
+ * @deprecated yes this setTypeFromTypeString came deprecated because it exists only for manage setup convertion
+ * @param int $info_bits Miscellaneous informations of line
+ * @param Societe $objsoc Objet societe
+ * @param User $user Objet user
+ * @param User $user Objet User
+ * @param User $user Objet user
+ * @param array $arrayofcriterias Array of available search criterias. Example: array($object->element => $object->fields, 'otherfamily' => otherarrayoffields, ...)
+ * @param array $search_component_params Array of selected search criterias
+ * @param bool $gm 1=Input informations are GMT values, otherwise local to server TZ
+ * @param int $disabledoutputofmessages Clear all messages stored into session without diplaying them
+ * @param int $lineid Id of production line to filter childs
+ * @param int $noescapecommand 1=Do not escape command. Warning: Using this parameter needs you alreay have sanitized the $command parameter. If not, it will lead to security vulnerability.
+ * @param int $showpointvalue 1=Show value for each point, as tooltip or inline (default), 0=Hide value, 2=Show values for each serie on same point
+ * @param int $update_main_doc_field Update field main_doc fied into the table of object.
+ * @param integer $mode 0=Use path to find record, 1=Use src_object_xxx fields (Mode 1 is recommanded for new objects)
+ * @param integer $selected defaut selected
+ * @param string $search_component_params_hidden String with $search_component_params criterias
+ * @param string $sortorder Sort order, separated by comma. Example: 'ASC,DESC'. Note: If the quantity fo sortorder values is lower than sortfield, we used the last value for missing values.
+ * @param string $editvalue When in edit mode, use this value as $value instead of value (for example, you can provide here a formated price instead of numeric value). Use '' to use same than $value
+ * @param string $filter additionnal filter on project (statut, ref, ...)
+ * @param string $images_dir Location of where to store physicaly images files. For example $dolibarr_main_data_root.'/medias'
+ * @param Contact $contact Contact Obejct
+ * @param Object $objecttmp Object to knwo the table to scan for combo.
+ * @param User $user User wich display
+ * @param array $type Array with type for each serie. Example: array('type1', 'type2', ...) where type can be:
+ * @param int $no_email 1=Do not send mailing, 0=Ok to recieve mailling
+ * @param object $line_ext Objet with full information of line. $line_ext->detail_batch must be an array of ExpeditionLineBatch
+ * @param string $uploaded_file Uploade file
+ * @param string $label Label (Example: 'Leave', 'Manual update', 'Leave request cancelation'...)
+ * @param string $uploaded_file Uploade file
+ * @param string $head Optionnal head lines
+ * @param string $type_categ Category type ('customer', 'supplier', 'website_page', ...) definied into const class Categorie type
+ * @param User $user Objet User who close contract
+ * @param int $rowid Id of third party to load (Use 0 to get a specimen record, use null to use other search criterias)
+ * @param string $dolibarr_main_db_pass Mot de passe user a creer
+ * @param string $field_desc Tableau associatif de description du champ a inserer[nom du parametre][valeur du parametre]
+ * @param Facture $invoice Objet facture
+ * @param User $user Objet User who activate contract
+ * @param array $info content informations of field
+ * @param boolean $confirmnow false=default, true=try to confirm immediatly after create (if conditions are ok)
+ * @param double $alreadypaid 0=No payment already done, >0=Some payments were already done (we recommand to put here amount payed if you have it, 1 otherwise)
+ * @param int $fk_socpeople Id of thirdparty contact (if source = 'external') or id of user (if souce = 'internal') to link
+ * @param int $default_font_size default siez of font
+ * @param string $alias String of alias of table for fields. For example 't'. It is recommended to use '' and set alias into fields defintion.
+ * @param string $ref Reference of object (This will define subdir automatically and store submited file into it)
+ * @param string $resko resultat si test non egal
+ * @param string $resok resultat si test egal
+ * @param int $disablestockchangeforsubproduct Disable stock change for sub-products of kit (usefull only if product is a subproduct)
+ * @param int $disablestockchangeforsubproduct Disable stock change for sub-products of kit (usefull only if product is a subproduct)
+ * @param int $nbmax Number maxium of photos (0=no maximum)
+ * @param int $id Id of product to search childs of
+ * @param string $extrafieldsobjectkey The key to use to store retreived data (for example $object->table_element)
+ * @param string $moreparam To add more parametes on html input tag
+ * @param string $moreparam To add more parametes on html input tag
+ * @param Translate $outputlangs objet lang a utiliser pour traduction
+ * @param array $dict Array of dictionnary for translation
+ * @param array $array_receiver Array of receiver. exemple array('name' => 'John Doe', 'email' => 'john@doe.com', etc...)
+ * @param int $mode O for create, R for regenerate (Look always 0 ment toujours 0 within the framework of XML exchanges according to documentation)
+ * @param int $i Rank from which we want to create skilldets (level $i to HRM_MAXRANK wil be created)
+ * @param int $month Specifig month - Can be empty
+ * @param int $year Specifig year - Can be empty
+ * @param int $_type Interger value representing Mail Transport Type
+ * @param string $str Original string to encode and optionaly truncate
+ * @param string $output_format (html/opton (for option html only)/array (to return options arrays
+ * @param string $page Page name (website id must also be filled if this parameter is used). Exemple 'myaliaspage' or 'fr/myaliaspage'
+ * @param string $_path Path to the sendmail execuable
+ * @param string $key Authentification key
+ * @return string Id connexion
+ * @return int 1 if transaction successfuly opened or already opened, 0 if error
+ * @return string Formated value
+ * @return string Error code (Exemples: DB_ERROR_TABLE_ALREADY_EXISTS, DB_ERROR_RECORD_ALREADY_EXISTS...)
+ * @return float|string Total amout of discount
+ * @return int <0 if KO, number of equipments found if OK
+ * @return string Javacript code to manage dependency
+ * @return string Error code (Exemples: DB_ERROR_TABLE_ALREADY_EXISTS, DB_ERROR_RECORD_ALREADY_EXISTS...)
+ * @return array Array with inforation on table
+ * @return boolean True if disconnect successfull, false otherwise
+ * @return int 1 if transaction successfuly opened or already opened, 0 if error
+ * @return int 1 if transaction successfuly opened or already opened, 0 if error
+ * @return int 1 if cancelation ok or transaction not open, 0 if error
+ * @return string Id connexion
+ * @return array Aray of resources
+ * @return boolean True if mandatory_period setted to 1
+ * @return int Minimum recommanded price that is higher price among all suppliers * PRODUCT_MINIMUM_RECOMMENDED_PRICE
+ * @return string Customer ref formated
+ * @return string Supplier ref formated
+ * @var array Childs
+ * @var array Contents informations. Usually created at runtime by loadBox().
+ * @var array Custom family informations
+ * @var array Header informations. Usually created at runtime by loadBox().
+ * @var int Date for cancelation
+ * @var int ID for cancelation
+ * @var int -1=Unkown duration
+ * @var int Amount can be choosen by the visitor during subscription (0 or 1)
+ * @var int Code modifiable si il est invalide
+ * @var int Subsription required (0 or 1)
+ * @var integer|string Date delivery planed
+ * @var string The name of constant to use to scan ODT files (Exemple: 'COMMANDE_ADDON_PDF_ODT_PATH')
+ * @var string Hash to identify ticket publically
+ * @var string ref custome
+ * Active Directory ne supporte pas les connexions anonymes
+ * Attention ce module est utilise par defaut si aucun module n'a
+ * Boundary String for MIME seperation
+ * CAN BE A CRON TASK. In such a case, paramerts come from the schedule job setup field 'Parameters'
+ * Charge indicateurs this->nb pour le tableau de bord
+ * Close database connexion
+ * Connexion to server
+ * Constructes and returns message header
+ * Correct an uncomplete html string
+ * Creditor Identifier CI. Some banks use different ICS for direct debit and bank tranfer
+ * Criterias used to build request are defined into the constructor of parent class into xxx/class/xxxstats.class.php
+ * DN des groupes
+ * Dont add LIMIT to your query, it will be added by this method
+ * Empty function to prevent errors on call of this function must be overload if usefull
+ * Exemple of POST query :
+ * Exemple: { "socid": 2, "date": 1595196000, "type": 0, "lines": [{ "fk_product": 2, "qty": 1 }] }
+ * Flag to 1 if we must clean ambiguous charaters for the autogeneration of password (List of ambiguous char is in $this->Ambi)
+ * Function to know all custom groupd from an accounting account
+ * Function used to return childs of Mo
+ * If paid completelly, this->close_code will be null
+ * Inserts all informations into database.
+ * Libere le dernier resultset utilise sur cette connexion
+ * Load all informations of accountancy document
+ * Method exists only for manage setup convertion
+ * Method used to test module builder convertion to this form usage
+ * Method was used to test module builder convertion to this form usage.
+ * Mot de passe de l'administrateur
+ * Multi-diminsional array containg addresses the message will
+ * Optionaly with $selected_warehouse_id parameter user can get stock of specific warehouse
+ * Parse criteria to return a SQL qury formated
+ * Path to the sendmail execuable
+ * Permet le chargement d'une fonction personnalisee dans le moteur de base de donnees.
+ * Put in array _translatedFiles[$file], line of a new tranlated pair
+ * Recommanded solution is to recreate a new payment intent each time we need one (old one will be automatically closed after a delay),
+ * Renvoi la description par defaut du modele de numerotation
+ * Retrieve informations about external contacts
+ * Retrieve informations about internal contacts
+ * Retrieve number of equipments for a product lot/serial
+ * Return Unix time from ical date time fomrat (YYYYMMDD[T]HHMMSS[Z] or YYYYMMDD[T]HHMMSS)
+ * Return an array with Agenda Events informations
+ * Return an array with Expense Report informations
+ * Return an array with MO informations
+ * Return an array with bom informations
+ * Return an array with candidature informations
+ * Return an array with category informations
+ * Return an array with commercial proposal informations
+ * Return an array with contact informations
+ * Return an array with contract informations
+ * Return an array with donation informations
+ * Return an array with group informations
+ * Return an array with hook informations
+ * Return an array with invoice informations
+ * Return an array with jobposition informations
+ * Return an array with knowledgerecord informations
+ * Return an array with member informations
+ * Return an array with member type informations
+ * Return an array with myobject informations
+ * Return an array with order informations
+ * Return an array with partnership informations
+ * Return an array with project informations
+ * Return an array with proposal informations
+ * Return an array with reception informations
+ * Return an array with shipment informations
+ * Return an array with stock movement informations
+ * Return an array with subscription informations
+ * Return an array with supplier proposal informations
+ * Return an array with task informations
+ * Return an array with thirdparty informations
+ * Return an array with ticket informations
+ * Return an array with warehouse informations
+ * Return and array with all instanciated first level children users of current user
+ * Return connexion ID
+ * Return direct childs id of a category into an array
+ * Return list of auxilary accounts. Cumulate list from customers, suppliers and users.
+ * Return list of product formated for output
+ * Return the addtional SQL JOIN query for filtering a list by a category
+ * Return the addtional SQL SELECT query for filtering a list by a category
+ * Return verion of data file
+ * Returns the partial diff for the specificed sequences, in reverse order.
+ * The string return is not formated (translated with transnoentitiesnoconv).
+ * This can be changed for 2byte characers sets
+ * Udpate the percent value of a event with the given id
+ * Unsuscribe all : 1 = contact has globaly unsubscribe of all mass emailings
+ * and restore it into another database with different id wihtout comprimising checksums
+ * be carefull with this method use it only with some limit of results to avoid performences loss.
+ * build RECIPIENT List, all addresses who will recieve this message
+ * ete definit dans la configuration
+ * or a COMMA delimted string, and inserts them into a highly
+ * reload conf value from databases is an aliase of loadValueFromConf
+ * statique et publique. Le nombre de parametres est determine automatiquement.
+ * the tagret is useful with hooks : that allow externals modules to add setup items on good place
+ * the underlaying array is destroyed and reconstructed.
+ * to define the UNIX file system path to the sendmail execuable
+ If an error occured, show the resulting errors
+ # ---------------------------- mot de passe admin mysql
+ $IBS_RETOUR = "montant:M;ref:R;auto:A;trans:T"; // Format des parametres du get de validation en reponse (url a definir sous paybox)
+ $alwaysuncheckedmodules = array('dav', 'dynamicprices', 'incoterm', 'loan', 'multicurrency', 'paybox', 'paypal', 'stripe', 'google', 'printing', 'scanner', 'skype', 'website'); // Module we dont want by default
+ $amount = (is_numeric($amount) ? $amount : 0); // Check if amount is numeric, for example, an error occured when amount value = o (letter) instead 0 (number)
+ $controle = $tableau[$report][10];
+ $data = getDecodeValue($mege, $type);
+ $daytoparse = dol_mktime(0, 0, 0, $month, $day, $year); // this are value submited after submit of action 'submitdateselect'
+ $ensemblereponses = $obj->reponses;
+ $fils = 0;
+ $i1 = 0; // count the nb of and criteria added (all fields / criterias)
+ $intial = 0;
+ $ldaprecords = $ldap->getRecords('*', $conf->global->LDAP_MEMBER_DN, $conf->global->LDAP_KEY_MEMBERS, $required_fields, 'member'); // Fiter on 'member' filter param
+ $ldaprecords = $ldap->getRecords('*', $conf->global->LDAP_USER_DN, $conf->global->LDAP_KEY_USERS, $required_fields, 'user'); // Fiter on 'user' filter param
+ $mege = imap_fetchbody($mbox, $jk, $fpos);
+ $opensurveysondage->mail_admin = $_SESSION['adresse'];
+ $pdf->SetXY($savx, $savy);
+ $savy = $pdf->getY();
+ $showfield = 1; // By defaut
+ $somethingshown = $formactions->showactions($object, 'mouvement', 0, 1, '', $MAXEVENT, '', $morehtmlcenter); // Show all action for product
+ $sql .= " SET reponses = '".$db->escape($nouveauchoix)."'";
+ $sql = "UPDATE ".MAIN_DB_PREFIX."ecm_directories set cachenbofdoc = -1 WHERE cachenbofdoc < 0"; // If pb into cahce counting, we set to value -1 = "unknown"
+ $tmpday = -date("w", dol_mktime(12, 0, 0, $month, 1, $year, 'gmt')) + 2; // date('w') is 0 fo sunday
+ $valuetoshow = ucfirst($fieldlist[$field]); // By defaut
+ /* intput, input[type=text], */
+ /* width: 168px; If I use with, there is trouble on size of flex boxes solved with min+max that is a little bit higer than min */
+ /** Renvoi la description par defaut du modele de numerotation
+ /** @var string Authentification key */
+ // -> 7=Canceled/Never received -> (reopen) 3=Process runing
+ // 0=Draft -> 1=Validated -> 2=Approved -> 3=Process runing -> 4=Received partially -> 5=Received totally -> (reopen) 4=Received partially
+ // -> 7=Canceled/Never received -> (reopen) 3=Process runing
+ // (usefull to sort holidays, sick days or similar on the top)
+ // Add LEFT JOIN for all parent tables mentionned into the Group by
+ // Add LEFT JOIN for all parent tables mentionned into the Xaxis
+ // Add LEFT JOIN for all parent tables mentionned into the Yaxis
+ // Add format informations and link to download example
+ // Affichage de la liste des projets de la semaine
+ // Bit 1: 0 ligne normale - 1 si ligne de remise fixe
+ // By default use tls decied by PHP.
+ // Cas des parametres TAX_MODE_SELL/BUY_SERVICE/PRODUCT
+ // Chargement de la classe
+ // Chargement de labels et data_xxx pour tableau 4 Mouvements
+ // Chars '--' can be used into filename to inject special paramaters like --use-compress-program to make command with file as parameter making remote execution of command
+ // Compare version with last install database version (upgrades never occured)
+ // Confirm cancelation
+ // Confirm deleteion
+ // Confirmation desactivation
+ // Confirmation du classement abandonne
+ // Contacts of task, disabled because available by default jsut after
+ // Create MO with Childs
+ // Create classe to use for import
+ // Create or edit a varian
+ // Create temporary encryption key if nedded
+ // Date appoval
+ // Date delivery planed
+ // Definition des parametres vente produit pour paybox
+ // Definition, nettoyage parametres
+ // Delivery date planed
+ // Edition des varibales globales
+ // FIX for compatibity habitual tabs
+ // Fixe les dimensions de la vignette
+ // Fixed by Matelli (see http://matelli.fr/showcases/patchs-dolibarr/fix-cleaning-url.html)
+ // For example to avoid to have substition done when object is generic and not yet defined.
+ // Force parametres en chaine
+ // Get the main request informaiton.
+ // Hauteur par defaut d'une ligne
+ // If there is a translation, we can send immediatly the label
+ // If we are here, this means authentication was successfull.
+ // Initialisation objet cactioncomm
+ // Initialize array of search criterias
+ // Link for delivery fields ref and date. Does not duplicate the line because we should always have ony 1 link or 0 per shipment
+ // List of fiels for action=list
+ // Nunber of files
+ // On remet cette lecture de permission ici car nécessaire d'avoir le nouveau statut de l'objet après toute action exécutée dessus (après incrémentation par exemple, le bouton supprimer doit disparaître)
+ // Parameteres execution
+ // Payment informations
+ // Payments not linked to an invoice. Should not happend. For debug only.
+ // Peut valoir un nombre ou liste de nombre separes par virgules
+ // Replace protected special codes with matching number of _ as wild card caracter
+ // Search parent to set task_parent_alternate_id (requird by ganttchart)
+ // Set also dependencies between use taks and bill time
+ // Show autofill date for recuring invoices
+ // Show image to selecte between date survey or other survey
+ // Si (vendeur dans Communaute europeene et acheteur hors Communaute europeenne et acheteur particulier) alors TVA par defaut=TVA du produit vendu. Fin de regle
+ // Si (vendeur et acheteur dans Communaute europeenne) et (acheteur = entreprise) alors TVA par defaut=0. Fin de regle
+ // Si (vendeur et acheteur dans Communaute europeenne) et (acheteur = particulier) alors TVA par defaut=TVA du produit vendu. Fin de regle
+ // Si (vendeur et acheteur dans Communaute europeenne) et (bien vendu = moyen de transports neuf comme auto, bateau, avion) alors TVA par defaut=0 (La TVA doit etre paye par l'acheteur au centre d'impots de son pays et non au vendeur). Fin de regle.
+ // Si le (pays vendeur = pays acheteur) alors la TVA par defaut=TVA du produit vendu. Fin de regle.
+ // Sinon la TVA proposee par defaut=0. Fin de regle.
+ // Subscription informations
+ // Tableau des parametres complementaires du post
+ // The feature to define the numbering module of lot or serial is no enabled bcause it is not used anywhere in Dolibarr code: You can set it
+ // Update ressource
+ // Verification parametres
+ // Warning: Do not set default value into property defintion. it must stay null.
+ // We keep it with value ForceBuyingPriceIfNull = 2 for retroactive effect but results are unpredicable.
+ // We open a list of transaction of a dedicated account and no page was set by defaut
+ // When a dictionnary is commented
+ // for gravatar use get_avatar_from_service('gravatar', md5 hash email@adress, size-in-px )
+ // on transfert les données de l'un vers l'autre
+ // si le filtrage est parametre pour l'export ou pas
+ // start and end date that change with time andd that may be different that the period of reference for price.
+ //' If an error occured, show the resulting errors
+ //' If the API call succeded, then redirect the buyer to PayPal to begin to authorize payment.
+ //' of the authorization, incuding any shipping information of the
+ //'__PERSONALIZED__' => 'TESTPersonalized' // Hiden because not used yet
+ //'options_attr2'=>'Attr2 balbal' //Extra field exemple where field code is attr2
+ //,'options_attr1'=>'Attr1 balbal', //Extra field exemple where field code is attr1
+ //If no task avaiblable, redirec to to add confirm
+ //TODO : Note and docuement
+ //console.log("amount before="+amount+" rouding="+rounding)
+ //if ($val['notnull'] > 0) $rightpart .= ' fieldrequired'; // No fieldrequired inthe view output
+
+ Une ligne represente un element : data[$x]
+ accessforbidden('Not enought permissions');
+ const CLOSECODE_ABANDONED = 'abandon'; // Abandonned - other
+ const CLOSECODE_BADDEBT = 'badcustomer'; // Abandonned remain - bad customer
+ const CLOSECODE_BANKCHARGE = 'bankcharge'; // Abandonned remain - bank charge
+ const CLOSECODE_DISCOUNTVAT = 'discount_vat'; // Abandonned remain - escompte
+ const CLOSECODE_OTHER = 'other'; // Abandonned remain - other
+ const TRIGGER_PREFIX = ''; // to be overriden in child class implementations, i.e. 'BILL', 'TASK', 'PROPAL', etc.
+ display: inline-block; /* this will be modifiy on the fly by the copy-paste js code in lib_foot.js.php to have copy feature working */
+ dol_syslog("complete_dictionary_with_modules Search external modules to complete the list of dictionnary tables", LOG_DEBUG, 1);
+ dol_syslog("getURLContent response size=".strlen($response)); // This may contains binary data, so we dont output it
+ dolibarr_del_const($db, 'SYSLOG_HANDLERS', -1); // To be sure ther is not a setup into another entity
+ echo $line->disable_stock_change ? yn($line->disable_stock_change) : ''; // Yes, it is a quantity, not a price, but we just want the formating role of function price
+ global $conf, $db, $hookmanager, $langs, $mysoc, $user, $website, $websitepage, $weblangs, $pagelangs; // Very important. Required to have var available when running inluded containers.
+ global $conf, $db, $hookmanager, $langs, $mysoc, $user, $website, $websitepage, $weblangs; // Very important. Required to have var available when running inluded containers.
+ httponly_accessforbidden('Module Memebership no enabled');
+ if ($action == "transfert") {
+ if ($fils == 0) {
+ if ($fk_pa > 0 && empty($paht)) {
+ if (empty($shmkeys[$memoryid])) { // No room reserved for thid memoryid, no way to use cache
+ if (getDolGlobalInt('PRODUCT_USE_OLD_PATH_FOR_PHOTO')) { // For backward compatiblity, we scan also old dirs
+ min-height: 26px !important; /* We cant use height because it's a div and it should be higher if content is more. but min-height doe not work either for div */
+ min-height: 26px !important; /* We cant use height because it's a div and it should be higher if content is more. but min-height does not work either for div */
+ padding: .19em .35em; /* more than 0.19 generate a change into heigth of lines */
+ print "Load joomla news and create them into Dolibarr database (if they don't alreay exist).\n";
+ print '
'; // You can use div-table-responsive-no-min if you dont need reserved height for your table
+ print '
'; // You can use div-table-responsive-no-min if you dont need reserved height for your table
+ print '
The recommanded value for MAIN_SECURITY_HASH_ALGO is now \'password_hash\' but setting it now will make ALL existing passwords of all users not valid, so update is not possible. ';
+ print '';
+ print '