function beforePDFCreation($parameters, &$object, &$action, $hookmanager)
 {
     if ($object->element == 'facture') {
         if (isset($object->thirdparty)) {
             $societe =& $object->thirdparty;
         } else {
             dol_include_once('/societe/class/societe.class.php');
             $societe = new Societe($db);
             $societe->fetch($object->socid);
         }
         if (!empty($societe->id)) {
             global $db, $conf;
             if (!empty($societe->array_options['options_fk_soc_factor']) && $societe->array_options['options_factor_suivi'] == 1) {
                 define('INC_FROM_DOLIBARR', true);
                 dol_include_once('/factor/config.php');
                 dol_include_once('/factor/class/factor.class.php');
                 $PDOdb = new TPDOdb();
                 $factor = new TFactor();
                 $factor->loadBy($PDOdb, $societe->array_options['options_fk_soc_factor'], 'fk_soc');
                 if (!empty($factor->mention)) {
                     if (strpos($object->note_public, $factor->mention) === false) {
                         $object->note_public = $factor->mention . (!empty($object->note_public) ? "\n\n" . $object->note_public : '');
                         $r = $object->update_note($object->note_public, '_public');
                     }
                 }
             }
         }
     }
 }
 static function getBankFromSoc(&$PDOdb, $fk_soc)
 {
     $factor = new TFactor();
     if ($factor->loadBy($PDOdb, $fk_soc, 'fk_soc', false)) {
         return $factor->fk_bank_account;
     } else {
         return 0;
     }
 }
<?php

/*
 * Script créant et vérifiant que les champs requis s'ajoutent bien
 */
if (!defined('INC_FROM_DOLIBARR')) {
    define('INC_FROM_CRON_SCRIPT', true);
    require '../config.php';
}
dol_include_once('/factor/class/factor.class.php');
$PDOdb = new TPDOdb();
$o = new TFactor($db);
$o->init_db_by_vars($PDOdb);
$result = restrictedArea($user, 'facture', $id, '');
$diroutputpdf = $conf->facture->dir_output . '/unpaid/temp';
if (!$user->rights->societe->client->voir || $socid) {
    $diroutputpdf .= '/private/' . $user->id;
}
// If user has no permission to see all, output dir is specific to user
if (!empty($factor_depot_classify)) {
    $TFactorDepot = GETPOST('toGenerate');
    //var_dump($TFactorDepot);
    if (!empty($TFactorDepot)) {
        foreach ($TFactorDepot as $facref) {
            $f = new Facture($db);
            $f->fetch(0, $facref);
            $f->array_options['options_factor_depot'] = 1;
            $f->insertExtraFields();
            TFactor::addEvent($facid, $f->ref);
        }
    }
    setEventMessage('BillsClassifyDeposed');
}
/*
 * Action
 */
if ($action == "builddoc" && $user->rights->facture->lire && !GETPOST('button_search') && !empty($builddoc_generatebutton)) {
    if (is_array($_POST['toGenerate'])) {
        $arrayofinclusion = array();
        foreach ($_POST['toGenerate'] as $tmppdf) {
            $arrayofinclusion[] = preg_quote($tmppdf . '.pdf', '/');
        }
        $factures = dol_dir_list($conf->facture->dir_output, 'all', 1, implode('|', $arrayofinclusion), '\\.meta$|\\.png', 'date', SORT_DESC);
        // liste les fichiers
 public function setFkAccountIfIsFactor(&$object)
 {
     global $db;
     if (!isset($object->thirdparty)) {
         $object->fetch_thirdparty();
     }
     if (empty($object->thirdparty->id)) {
         return false;
     }
     if (!empty($object->thirdparty->array_options['options_fk_soc_factor']) && $object->thirdparty->array_options['options_factor_suivi'] == 1) {
         if (!defined('INC_FROM_DOLIBARR')) {
             define('INC_FROM_DOLIBARR', true);
         }
         dol_include_once('/factor/config.php');
         dol_include_once('/factor/class/factor.class.php');
         $PDOdb = new TPDOdb();
         $factor = new TFactor();
         $factor->loadBy($PDOdb, $object->thirdparty->array_options['options_fk_soc_factor'], 'fk_soc');
         if (!empty($factor->mention) && !empty($factor->fk_bank_account)) {
             if (strpos($object->note_public, $factor->mention) === false) {
                 $note = $factor->mention . (!empty($facture->note_public) ? "\n\n" . $facture->note_public : '');
                 if ($this->checkCanUpdateNote($object)) {
                     $object->update_note($note, '_public');
                 }
                 $object->setBankAccount($factor->fk_bank_account);
             }
         }
     }
 }
$head = factorAdminPrepareHead();
dol_fiche_head($head, 'settings', $langs->trans("Module104905Name"), 0, "factor@factor");
$form = new Form($db);
$TFactor = TFactor::getAll($PDOdb);
// Setup page goes here
$formCore = new TFormCore('auto', 'form1', 'post');
echo $formCore->hidden('action', 'save');
$var = false;
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
print '<td>' . $langs->trans("Supplier/BankAccount") . '</td>' . "\n";
print '<td>' . $langs->trans("Mention") . '</td>' . "\n";
print '<td>&nbsp;</td>' . "\n";
print '</tr>';
foreach ($TFactor as $idFactor) {
    $factor = new TFactor();
    $factor->load($PDOdb, $idFactor);
    // Example with a yes / no select
    $var = !$var;
    print '<tr ' . $bc[$var] . '>';
    ob_start();
    $form->select_comptes($factor->fk_bank_account, 'TFactor[' . $factor->getId() . '][fk_bank_account]');
    $selectBank = ob_get_clean();
    echo '<td>' . $form->select_thirdparty_list($factor->fk_soc, 'TFactor[' . $factor->getId() . '][fk_soc]', 'fournisseur=1') . '<br />' . $selectBank . '</td>';
    // supplier
    if (!empty($conf->fckeditor->enabled)) {
        $editor = new DolEditor('TFactor[' . $factor->getId() . '][mention]', $factor->mention, '', 200);
        echo '<td>' . $editor->Create(1) . '<td>';
    } else {
        echo '<td>' . $formCore->zonetexte('', 'TFactor[' . $factor->getId() . '][mention]', $factor->mention, 80, 5) . '</td>';
    }