function doActions($parameters, &$object, &$action, $hookmanager)
    {
        global $langs, $db, $user;
        define('INC_FROM_DOLIBARR', true);
        dol_include_once("/propalehistory/config.php");
        dol_include_once("/comm/propal/class/propal.class.php");
        dol_include_once('/propalehistory/class/propaleHist.class.php');
        if (isset($_REQUEST['mesg'])) {
            setEventMessage($_REQUEST['mesg']);
        }
        $ATMdb = new TPDOdb();
        if ($_REQUEST['action'] == 'delete') {
            global $db;
            $sql = "DELETE FROM " . MAIN_DB_PREFIX . "propale_history";
            $sql .= " WHERE fk_propale = " . $_REQUEST['id'];
            $resql = $db->query($sql);
        }
        if (isset($_REQUEST['actionATM'])) {
            $actionATM = $_REQUEST['actionATM'];
        } else {
            $actionATM = '';
        }
        if ($actionATM == 'viewVersion') {
            $version = new TPropaleHist();
            $version->load($ATMdb, $_REQUEST['idVersion']);
            $propal = $version->getObject();
            //pre($propal,true);
            $object = new PropalHist($db, $object->socid);
            foreach ($propal as $k => $v) {
                $object->{$k} = $v;
            }
            foreach ($object->lines as &$line) {
                $line->description = $line->desc;
                $line->db = $db;
                //$line->fetch_optionals();
            }
            //pre($object,true);
            $object->id = $_REQUEST['id'];
            $object->db = $db;
        } elseif ($actionATM == 'createVersion') {
            TPropaleHist::archiverPropale($ATMdb, $object);
        } elseif ($actionATM == 'restaurer') {
            TPropaleHist::restaurerPropale($ATMdb, $object);
        } elseif ($actionATM == 'supprimer') {
            $version = new TPropaleHist();
            $version->load($ATMdb, $_REQUEST['idVersion']);
            $version->delete($ATMdb);
            ?>
				<script language="javascript">
					document.location.href="<?php 
            echo $_SERVER['PHP_SELF'];
            ?>
?id=<?php 
            echo $_REQUEST['id'];
            ?>
&mesg=<?php 
            echo $langs->transnoentities('HistoryVersionSuccessfullDelete');
            ?>
";
				</script>
			<?php 
        }
    }
 static function restaurerPropale(&$ATMdb, &$object)
 {
     global $db, $user, $langs;
     $versionPropale = new TPropaleHist();
     $versionPropale->load($ATMdb, $_REQUEST['idVersion']);
     $propale = $versionPropale->getObject();
     $propale->statut = 0;
     $object->statut = 0;
     foreach ($object->lines as $line) {
         $object->deleteline($line->rowid) . "<br />";
     }
     foreach ($propale->lines as $line) {
         $object->addline($line->desc, $line->subprice, $line->qty, $line->tva_tx, $line->localtax1_tx, $line->localtax2_tx, $line->fk_product, $line->remise_percent, 'HT', $line->subprice, $line->info_bits, $line->product_type, $line->rang, $line->special_code, $line->fk_parent_line, $line->fk_fournprice, $line->pa_ht, $line->label, $line->date_start, $line->date_end, $line->array_options);
     }
     $object->set_draft($user);
     // Pour pouvoir modifier les dates, le statut doit être à 0
     $object->set_availability($user, $propale->availability_id);
     $object->set_date($user, $propale->date);
     $object->set_date_livraison($user, $propale->date_livraison);
     $object->set_echeance($user, $propale->fin_validite);
     $object->set_ref_client($user, $propale->ref_client);
     $object->set_demand_reason($user, $propale->demand_reason_id);
     $object->setPaymentMethods($propale->mode_reglement_id);
     $object->setPaymentTerms($propale->cond_reglement_id);
     $object->valid($user);
     header('Location: ' . $_SERVER['PHP_SELF'] . '?id=' . $_REQUEST['id'] . '&mesg=' . $langs->transnoentities('HistoryVersionSuccessfullRestored'));
 }