'capture' => true, // Charge immediatly
// Save a stripe payment was done in realy life so later we will be able to force a commit on recorded payments
$pdf->SetFont('', '', $default_font_size - 1); // On repositionne la police par defaut
// Conversion du PDF en image png si fichier png non existant
// Save a stripe payment was done in realy life so later we will be able to force a commit on recorded payments
// To make a Stripe SEPA payment request, we must have the payment mode source already saved into societe_rib and retreived with ->sepaStripe
// If old value crypted in database is same than submited new value, it means we don't change it, so we don't update.
//break; // No break for sortfield and sortorder so we can cumulate fields (is it realy usefull ?)
$errmsg = 'Failed to retreive paymentintent or charge from id';
$minifile = getImageFileNameForSize($fileinfo['basename'], '_mini'); // For new thumbs using same ext (in lower case howerver) than original
$more .= '
'; // 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...
} elseif ($links[$key]['type'] == 'banktransfert') { // transfert between 1 local account and another local account
* 'foreignkey'=>'tablename.field' if the field is a foreign key (it is recommanded to name the field fk_...).
* @param array $menu_array_before Table of menu entries to show before entries of menu handler. This param is deprectaed and must be provided to ''.
* @param string $head Optionnal head lines
* Ouput html header of a page. It calls also top_httphead()
$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 = autodetect by default
$msgishtml = -1; // Unknow by default
$paht_ret = $paht;
$paramfortooltipimg = ($extracss ? ' class="' . $extracss . '"' : '') . ($extrastyle ? ' style="' . $extrastyle . '"' : ''); // Attribut to put on td text tag
$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
$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->MultiCell(190, 5, $outputlangs->transnoentities("Informations"), '', 'L');*/
$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->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)');
$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)');
$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)');
$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
// $new_array_options will be used for direct update, so must contains formated data for the UPDATE.
// $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
// Action according to the choosed sending method
// Add entry into bank accoun
// Add personnal information
// Adding may convert the original string into a HTML string. Sowe have to first
// Adding a RSS feed into a sitemap should nto be required. The RSS contains pages that are already included into
// 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
// Delivery date planed
// 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 googleoauth_login has been set (by google_oauthcallback after a successfull OAUTH2 request on openid scope
// 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 create mode, force separator group to not be collapsable
// 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.
// 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
// Retained warranty : usualy use on construction industry
// 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 Add a link "Show more..." for all ohter informations.
// TODO Use a cahe on user
// 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
// We use invoice date $line->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).
// employee informations
// 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
// reload page to retrieve customer informations
// reload page to retrieve supplier informations
// 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)
//Another call for easy debugg
//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
//We use invoice date $line->doc_date not $date_ecriture which is the transfert date
//XXX: Should be done just befor commit no ?
//but the note is saved, so just add a notification will be enought
//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 $langs->trans("Desription").' : ';
//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
The selectForForms is called with parameter $objectfield defined, so tha app can retreive the filter inside the ajax component instead of being provided as parameters. The
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 or not valid, connexion refused');
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)."::setVATReverseCharge 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() {
let hours = hour.getHours().toString().padStart(2, "0"); // Formater pour obtenir deux chiffres
let mins = hour.getMinutes().toString().padStart(2, "0"); // Formater pour obtenir deux chiffres
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->assertEquals('text text', $decodedstring, 'Function did not sanitize correclty with test 4a');
$this->assertEquals('text text', $decodedstring, 'Function did not sanitize correclty with test 4b');
$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] = 0; // La permission est-elle une permission par defaut
$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.
$this->tva_intra = getDolGlobalString('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)'),
'type_mouvement' =>array('type'=>'smallint(6)', 'label'=>'Type mouvement', 'enabled'=>1, 'visible'=>-1, 'position'=>45),
/* 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 a where here keeping only the citeria on $tabletouse
// 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
// Check that the redirect_uri that wil be used is same than url of current domain
// Classif "paid partialy"
// Clean paramater $typeofdata
// Clear all fields out of interrest
// 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
// Date delivery planed
// 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 a string that is already HTML (contains HTML tags) but badly formated
// For a string that is already HTML (contains HTML tags) with special tags but badly formated
// For backward compatiblity, we detect file stored into an old path
// For each file build select list with PDF extention
// For exemple if element is project
// 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 on smartphone or optmized for small screen
// 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 extrafields if not allready done
// Load extrafiels if not allready does
// Load librairies to check BAN
// 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
// Parameteres execution
// 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
//If no task avaiblable, redirec to to add confirm
//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
//fetch informations needs on this mode
//http_response_code(500); // If we use 500, message is not ouput with some command line tools
//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
//sinon on remplace les choix de l'utilisateur par une ligne de checkbox pour saisie
//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("The user login has a validity between [".$user->datestartvalidity." and ".$user->dateendvalidity."], curren date is ".dol_now());
dol_syslog("Warning: Function form_constantes is calle with parameter strictw3c = 0, this is deprecated. Value must be 2 now.", LOG_DEBUG);
dol_syslog("line.php update bank line to set the new bank receipt nuber", 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
http_response_code(202); // If we use 202, this is not really an error message, but this allow to ouput message on command line tools
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 (!getDolGlobalString('PDF_BANK_HIDE_NUMBER_SHOW_ONLY_BICIBAN')) { // Note that some countries still need bank number, BIC/IBAN not enougth for them
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 ($lines[$i]->fk_task_parent == $parent || $level < 0) { // if $level = -1, we dont' use sublevel recursion, we show all lines
if ($objectfield) { // We must retreive the objectdesc from the field or extrafield
if ($this->label == 'Annulation mouvement ID'.$this->id) {
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;
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Lable")), null, 'errors');
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 { // We decrease agressiveness
} else { // old method. deprecated because ot can't retrieve type
} elseif (!empty($this->childtables)) { // If object has childs linked with a foreign key field, we check all child tables.
} 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 (0=Internet, 1=Api...)
* @param string $method method of transmision to bank
* @param string $method method of transmision to bank (0=Internet, 1=Api...)
* @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 int Return integer < 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
* Classify the reception as invoiced (used for exemple by trigger when WORKFLOW_RECEPTION_CLASSIFY_BILLED_INVOICE is on)
* Classify the shipping as invoiced (used for exemple by trigger when WORKFLOW_SHIPPING_CLASSIFY_BILLED_INVOICE is on)
* 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
* Load the array of extrafields defintion $this->attributes
* 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)
* - string (categories ids seprated by comma)
* - 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.
* 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.
* Si vendeur non assujeti a TVA, TVA par defaut=0. Fin de regle.
* Sinon la TVA proposee par defaut=0. Fin de regle.
* 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 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 HTML to show the search and clear seach button
* 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 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 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 array $params array of additionals parameters
* @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 de l'objet ligne de commande en base
* 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
* Retrieve informations about internal contacts
* 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 $fk_product_stock id product_stock for objet
* @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 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 $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 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 $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 $type_categ Category type ('customer', 'supplier', 'website_page', ...) definied into const class Categorie type
* @param string $search_component_params_hidden String with $search_component_params criterias
* @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 $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 int $id id du paiement dont il faut afficher les infos
* @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 $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 (commonly $object->table_element)
* @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 Object $objecttmp Object to knwo the table to scan for combo.
* @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 bool $multiple add [] in the name of element and add 'multiple' attribut
* @param bool $multiple add [] in the name of element and add 'multiple' attribut
* @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 bool $multiple add [] in the name of element and add 'multiple' attribut (not working with ajax_autocompleter)
* @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 $socid Id ot third party or 0 for all or -1 for empty list
* @param int $socid Id ot third party or 0 for all
* @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 $properties Restrict the data returned to theses properties. Ignored if empty. Comma separated list of properties names
* @param string $properties Restrict the data returned to theses properties. Ignored if empty. Comma separated list of properties names
* @param string $str Original string to encode and optionaly truncate
* @param string $page Url of page to call if confirmation is OK. Can contains parameters (param 'action' and 'confirm' will be reformated)
* @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, or a select combo). Use '' to use same than $value
* @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 $properties Restrict the data returned to theses properties. Ignored if empty. Comma separated list of properties names
* @param string $properties Restrict the data returned to theses properties. Ignored if empty. Comma separated list of properties names
* @param string $properties Restrict the data returned to theses properties. Ignored if empty. Comma separated list of properties names
* @param string $properties Restrict the data returned to theses properties. Ignored if empty. Comma separated list of properties names
* @param string $properties Restrict the data returned to theses properties. Ignored if empty. Comma separated list of properties names
* @param string $properties Restrict the data returned to theses properties. Ignored if empty. Comma separated list of properties names
* @param string $_path Path to the sendmail execuable
* @param string $key Authentification key
* @param string $selected Id remise fixe pre-selectionnee
* @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 int Return integer <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 array box dependancies
* @var boolean $standard_conforming_string Set this to true if postgres accept only standard encoding of sting using '' and not \'
* @var int Postion
* @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 int availabilty ID
* @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 availabilty code
* @var string availabilty label
* @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 to shwo the combo select to chose a type of field (varchar, int, email, ...)
* 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
* Note: To complete search with a particular filter on select, you can set $object->next_prev_filter set to define SQL criterias.
* 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 Currency 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 categories having choosed type
* 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.
* Serivce expiration unit
* The string return is not formated (translated with transnoentitiesnoconv).
* This can be changed for 2byte characers sets
* This method takes a list of given addresses, via an array or a COMMA delimted string, and inserts them into a highly
* 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
* reverse mouvement for object by updating infos
* 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
# Add cach performance directives
# Log directoves
# Log directoves
$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
$alwaysuncheckedmodules = array('dav', 'dynamicprices', 'incoterm', 'loan', 'multicurrency', 'paybox', 'paypal', 'stripe', 'google', 'printing', 'scanner', 'socialnetworks', '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
$ldaprecords = $ldap->getRecords('*', getDolGlobalString('LDAP_MEMBER_DN'), getDolGlobalString('LDAP_KEY_MEMBERS'), $required_fields, 'member'); // Fiter on 'member' filter param
$ldaprecords = $ldap->getRecords('*', getDolGlobalString('LDAP_USER_DN'), getDolGlobalString('LDAP_KEY_USERS'), $required_fields, 'user'); // Fiter on 'user' filter param
$mege = imap_fetchbody($mbox, $jk, $fpos);
$mege = imap_fetchbody($mbox, $jk, $fpos, FT_UID);
$object->status = $object->fk_statut; // for backwad compatibility
$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
// Build filter to diplay only concerned lines
// 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
// Donwload file
// 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
// None. Beeing connected is enough.
// 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
// Properties to store project informations
// Replace HTML coments
// 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
// add properties and declare them in consturctor
// buil format asciidoc for urls in table
// but in some situations that is required (update legal informations for example)
// 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
// rewrite dictionnary if
// 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.
// verify informations entred
//' 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 invoice has been converted and the conversion has been used, we dont have remain to pay on invoice
//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
//search and get all permssion in stirng
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 '