$op->set('ledger', $ledger->id);
$op->set('ledger_type', "ODS");
$op->set('direct', 't');
$url = http_build_query(array('action' => 'use_opd', 'p_jrn_predef' => $ledger->id, 'ac' => $_REQUEST['ac'], 'gDossier' => dossier::id()));
echo $op->form_get('do.php?' . $url);
echo '</div>';
echo '<div id="jrn_name_div">';
echo '<h2 id="jrn_name" style="display:inline">' . $ledger->get_name() . '</h2>';
echo '</div>';
// Show the predef operation
// Don't forget the p_jrn
$p_post = $_POST;
if (isset($_GET['action']) && !isset($_POST['correct'])) {
    if ($_GET['action'] == 'use_opd') {
        // get data from predef. operation
        $op = new Pre_op_advanced($cn);
        $p_post = null;
        if (isset($_REQUEST['pre_def']) && $_REQUEST['pre_def'] != '') {
            $op->set_od_id($_REQUEST['pre_def']);
            $p_post = $op->compute_array();
        }
    }
}
$p_msg = isset($p_msg) ? $p_msg : "";
print '<p class="notice">' . $p_msg . '</p>';
echo '<form method="post"  class="print">';
echo dossier::hidden();
echo HtmlInput::request_to_hidden(array('ac'));
echo $ledger->input($p_post);
echo '<div style="position:absolute;width:40%;right:20px">';
echo '<table class="info_op">' . '<tr>' . td(_('Débit')) . '<td id="totalDeb"></td>' . td(_('Crédit')) . ' <td id="totalCred"></td>' . td(_('Difference')) . ' <td id="totalDiff"></td>';
 /**
  * @brief this function is intended to test this class
  */
 static function test_me($pCase = '')
 {
     if ($pCase == '') {
         echo Acc_Reconciliation::$javascript;
         html_page_start();
         $cn = new Database(dossier::id());
         $_SESSION['g_user'] = '******';
         $_SESSION['g_pass'] = '******';
         $id = isset($_REQUEST['p_jrn']) ? $_REQUEST['p_jrn'] : -1;
         $a = new Acc_Ledger($cn, $id);
         $a->with_concerned = true;
         // Vide
         echo '<FORM method="post">';
         echo $a->select_ledger()->input();
         echo HtmlInput::submit('go', 'Test it');
         echo '</form>';
         if (isset($_POST['go'])) {
             echo "Ok ";
             echo '<form method="post">';
             echo $a->show_form();
             echo HtmlInput::submit('post_id', 'Try me');
             echo '</form>';
             // Show the predef operation
             // Don't forget the p_jrn
             echo '<form>';
             echo dossier::hidden();
             echo '<input type="hidden" value="' . $id . '" name="p_jrn">';
             $op = new Pre_operation($cn);
             $op->p_jrn = $id;
             $op->od_direct = 't';
             if ($op->count() != 0) {
                 echo HtmlInput::submit('use_opd', 'Utilisez une opération pr&eacute;d&eacute;finie', "", "smallbutton");
                 echo $op->show_button();
             }
             echo '</form>';
             exit('test_me');
         }
         if (isset($_POST['post_id'])) {
             echo '<form method="post">';
             echo $a->show_form($_POST, 1);
             echo HtmlInput::button('add', 'Ajout d\'une ligne', 'onClick="quick_writing_add_row()"');
             echo HtmlInput::submit('save_it', _("Sauver"));
             echo '</form>';
             exit('test_me');
         }
         if (isset($_POST['save_it'])) {
             print 'saving';
             $array = $_POST;
             $array['save_opd'] = 1;
             try {
                 $a->save($array);
             } catch (Exception $e) {
                 alert($e->getMessage());
                 echo '<form method="post">';
                 echo $a->show_form($_POST);
                 echo HtmlInput::submit('post_id', 'Try me');
                 echo '</form>';
             }
             return;
         }
         // The GET at the end because automatically repost when you don't
         // specify the url in the METHOD field
         if (isset($_GET['use_opd'])) {
             $op = new Pre_op_advanced($cn);
             $op->set_od_id($_REQUEST['pre_def']);
             //$op->p_jrn=$id;
             $p_post = $op->compute_array();
             echo '<FORM method="post">';
             echo $a->show_form($p_post);
             echo HtmlInput::submit('post_id', 'Use predefined operation');
             echo '</form>';
             return;
         }
     }
     // if case = ''
     ///////////////////////////////////////////////////////////////////////////
     // search
     if ($pCase == 'search') {
         html_page_start();
         $cn = new Database(dossier::id());
         $ledger = new Acc_Ledger($cn, 0);
         $_SESSION['g_user'] = '******';
         $_SESSION['g_pass'] = '******';
         echo $ledger->search_form('ALL');
     }
     ///////////////////////////////////////////////////////////////////////////
     // reverse
     // Give yourself the var and check in your tables
     ///////////////////////////////////////////////////////////////////////////
     if ($pCase == 'reverse') {
         $cn = new Database(dossier::id());
         $jr_internal = 'OD-01-272';
         try {
             $cn->start();
             $jrn_def_id = $cn->get_value('select jr_def_id from jrn where jr_internal=$1', array($jr_internal));
             $ledger = new Acc_Ledger($cn, $jrn_def_id);
             $ledger->jr_id = $cn->get_value('select jr_id from jrn where jr_internal=$1', array($jr_internal));
             echo "Ouvrez le fichier " . __FILE__ . " à la ligne " . __LINE__ . " pour changer jr_internal et vérifier le résultat de l'extourne";
             $ledger->reverse('01.07.2010');
         } catch (Exception $e) {
             $cn->rollback();
             var_dump($e);
         }
         $cn->commit();
     }
 }