function prevCodeAchievement(&$PDOdb, &$user)
 {
     if (empty($this->prev_code)) {
         return true;
     }
     $TCode = explode(',', $this->prev_code);
     foreach ($TCode as $code) {
         $prevTest = new TDolidacticiel();
         $prevTest->loadBy($PDOdb, $code, 'code', true);
         if (!$prevTest->getUserAchievement($user->id)) {
             return false;
         }
     }
     return true;
 }
$d->save($PDOdb);
$code = 'PC1';
$d = new TDolidacticiel();
$d->loadBy($PDOdb, $code, 'code');
$d->set_values(array('mainmenu' => 'commercial', 'code' => $code, 'prev_code' => 'P6', 'title' => $langs->trans('title' . $code), 'description' => $langs->trans('description' . $code), 'action' => 'PROPAL_CREATE', 'cond' => '$object->socid == self::getStaticId($PDOdb, "societe", "nom", "Ciel & Terre")', 'level' => 0, 'rights' => '$user->rights->propal->creer', 'mainmenutips' => 'a#mainmenua_commercial', 'tips' => 'a.vsmenu[href*="/comm/propal.php?action=create&leftmenu=propals"]', 'module_name' => 'propale'));
$d->save($PDOdb);
$code = 'PC2';
$d = new TDolidacticiel();
$d->loadBy($PDOdb, $code, 'code');
$d->set_values(array('mainmenu' => 'commercial', 'code' => $code, 'prev_code' => 'PC1', 'title' => $langs->trans('title' . $code), 'description' => $langs->trans('description' . $code), 'action' => 'LINEPROPAL_INSERT', 'cond' => '$object->product_type == 0 && $object->price === price2num(199.90)', 'level' => 0, 'rights' => '$user->rights->propal->creer', 'mainmenutips' => 'a#mainmenua_commercial', 'tips' => 'label[for=prod_entry_mode_free]', 'module_name' => 'propale'));
$d->save($PDOdb);
$code = 'U1';
$d = new TDolidacticiel();
$d->loadBy($PDOdb, $code, 'code');
$d->set_values(array('mainmenu' => 'home', 'code' => $code, 'prev_code' => 'P2', 'title' => $langs->trans('title' . $code), 'description' => $langs->trans('description' . $code), 'action' => 'USER_CREATE', 'cond' => '$object->lastname === "Dupont"', 'level' => 0, 'rights' => '$user->rights->user->user->creer', 'mainmenutips' => 'a#mainmenua_home', 'tips' => 'a.vmenu[href*="/user/home.php?leftmenu=users"]', 'module_name' => 'user'));
$d->save($PDOdb);
$code = 'PJ1';
$d = new TDolidacticiel();
$d->loadBy($PDOdb, $code, 'code');
$d->set_values(array('mainmenu' => 'project', 'code' => $code, 'prev_code' => '', 'title' => $langs->trans('title' . $code), 'description' => $langs->trans('description' . $code), 'action' => 'PROJECT_CREATE', 'cond' => '', 'level' => 0, 'rights' => '$user->rights->projet->creer', 'mainmenutips' => 'a#mainmenua_project', 'tips' => 'a.vsmenu[href*="/projet/card.php?leftmenu=projects&action=create"]', 'module_name' => 'projet'));
$d->save($PDOdb);
$code = 'INV1';
$d = new TDolidacticiel();
$d->loadBy($PDOdb, $code, 'code');
$d->set_values(array('mainmenu' => 'products', 'code' => $code, 'prev_code' => 'P1', 'title' => $langs->trans('title' . $code), 'description' => $langs->trans('description' . $code), 'action' => 'TINVENTORY_CREATE', 'cond' => '$object->title === "' . $langs->trans('DolidacticielTitleInventoryForTest') . '" && $conf->stock->enabled', 'level' => 0, 'rights' => '$user->rights->inventory->create', 'mainmenutips' => 'a#mainmenua_products', 'tips' => 'a.vsmenu[href*="/inventory/inventory.php?action=create"]', 'from_atm' => 1, 'module_name' => 'inventory'));
$d->save($PDOdb);
$code = 'INV2';
$d = new TDolidacticiel();
$d->loadBy($PDOdb, $code, 'code');
$d->set_values(array('mainmenu' => 'products', 'code' => $code, 'prev_code' => 'INV1', 'title' => $langs->trans('title' . $code), 'description' => $langs->trans('description' . $code), 'action' => 'TINVENTORY_UPDATE', 'cond' => '$object->title === "' . $langs->trans('DolidacticielTitleInventoryForTest') . '" && count($object->TInventorydet) > 0', 'level' => 0, 'rights' => '$user->rights->inventory->write && $conf->stock->enabled', 'mainmenutips' => 'a#mainmenua_products', 'tips' => 'a.vsmenu[href*="/inventory/inventory.php?action=list"]', 'from_atm' => 1, 'module_name' => 'inventory'));
$d->save($PDOdb);