phpcompta-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Phpcompta-dev] r4326 - in phpcompta/trunk: dev/manage-code/create-file


From: phpcompta-dev
Subject: [Phpcompta-dev] r4326 - in phpcompta/trunk: dev/manage-code/create-file html html/js include include/template sql
Date: Thu, 10 Nov 2011 16:49:59 +0100 (CET)

Author: danydb
Date: 2011-11-10 16:49:57 +0100 (Thu, 10 Nov 2011)
New Revision: 4326

Added:
   phpcompta/trunk/html/style-epad.css
   phpcompta/trunk/include/class_profile_menu.php
   phpcompta/trunk/include/class_profile_menu_sql.php
   phpcompta/trunk/include/detail_menu.inc.php
   phpcompta/trunk/include/show_profile.inc.php
   phpcompta/trunk/include/template/add_menu.php
   phpcompta/trunk/include/template/plugin_detail.php
   phpcompta/trunk/include/template/profile.php
   phpcompta/trunk/include/template/profile_menu.php
   phpcompta/trunk/sql/change_account_repo.sql
   phpcompta/trunk/sql/style-epad.sql
   phpcompta/trunk/sql/tmp_pcmn_ins.sql
Modified:
   phpcompta/trunk/dev/manage-code/create-file/create_phpclass.py
   phpcompta/trunk/html/ajax_misc.php
   phpcompta/trunk/html/do.php
   phpcompta/trunk/html/js/anc_script.js
   phpcompta/trunk/html/js/scripts.js
   phpcompta/trunk/html/style-color.css
   phpcompta/trunk/html/style-light.css
   phpcompta/trunk/html/style-print.css
   phpcompta/trunk/html/style.css
   phpcompta/trunk/include/ac_common.php
   phpcompta/trunk/include/anc_od.inc.php
   phpcompta/trunk/include/anc_pa.inc.php
   phpcompta/trunk/include/cfgledger.inc.php
   phpcompta/trunk/include/class_acc_ledger_fin.php
   phpcompta/trunk/include/class_extension.php
   phpcompta/trunk/include/class_html_input.php
   phpcompta/trunk/include/class_menu_ref_sql.php
   phpcompta/trunk/include/class_user.php
   phpcompta/trunk/include/contact.inc.php
   phpcompta/trunk/include/fiche.inc.php
   phpcompta/trunk/include/menu.inc.php
   phpcompta/trunk/include/operation_ods_new.inc.php
   phpcompta/trunk/include/param_pcmn.inc.php
   phpcompta/trunk/include/profile.inc.php
   phpcompta/trunk/include/report.inc.php
   phpcompta/trunk/include/stock.inc.php
   phpcompta/trunk/sql/backup-new-object.sh
   phpcompta/trunk/sql/object-6.0.sql
   phpcompta/trunk/sql/upgrade.sql
Log:
0000390         r?\195?\169?\195?\169criture de include/extension.inc.php
0000424         Plugin trait?\195?\169 comme des modules ou des menus
0000240         S?\195?\169curit?\195?\169 par profile
0000438         Modularit?\195?\169 : avoir les ?\195?\169crans pour 
g?\195?\169rer les menus, profiles et les liaisons
0000435         Form direct action : am?\195?\169liorer apparence

Modified: phpcompta/trunk/dev/manage-code/create-file/create_phpclass.py
===================================================================
--- phpcompta/trunk/dev/manage-code/create-file/create_phpclass.py      
2011-11-10 12:58:09 UTC (rev 4325)
+++ phpcompta/trunk/dev/manage-code/create-file/create_phpclass.py      
2011-11-10 15:49:57 UTC (rev 4326)
@@ -22,6 +22,7 @@
                -f input file containing the structure
                -c create the code for a child class
                -v create the code for a view (so only load and seek)
+               -n the PK is not serial
     The input file contains :
     first  line class name : mother class separator : (optionnal)
     second line table name
@@ -31,7 +32,7 @@
     """
 def main():
     try:
-        
opts,args=getopt.getopt(sys.argv[1:],'cf:hv',['child','file','help','view'])
+        
opts,args=getopt.getopt(sys.argv[1:],'cf:hv',['child','file','help','view','pk-not-serial'])
     except getopt.GetOptError, err:
         print str(err)
         help()
@@ -47,6 +48,8 @@
             child=True
         elif option in ('-v','--view'):
             view=True
+        elif option in ('-n','--pk-not-serial'):
+           nopk=True
     if filein=='' :
         help()
         sys.exit(-2)
@@ -451,7 +454,7 @@
      $oobj=new @class_name@ ($this->cn);
      $array=Database::fetch_array($p_ret,$idx);
      foreach ($array as $idx=>$value) { $oobj->$idx=$value; }
-     $aobj[]=clone $oobj;
+     $aobj=clone $oobj;
 
      return $aobj;
    }

Modified: phpcompta/trunk/html/ajax_misc.php
===================================================================
--- phpcompta/trunk/html/ajax_misc.php  2011-11-10 12:58:09 UTC (rev 4325)
+++ phpcompta/trunk/html/ajax_misc.php  2011-11-10 15:49:57 UTC (rev 4326)
@@ -1,4 +1,5 @@
 <?php
+
 /*
  *   This file is part of PhpCompta.
  *
@@ -15,12 +16,12 @@
  *   You should have received a copy of the GNU General Public License
  *   along with PhpCompta; if not, write to the Free Software
  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-*/
+ */
 /* $Revision$ */
 
 // Copyright Author Dany De Bontridder address@hidden
 
-/*!\file
+/* !\file
  * \brief this file respond to an ajax request
  * The parameters are
  * - gDossier
@@ -29,9 +30,9 @@
  * dsp_tva fill a ipopup with a choice of possible VAT
  *     - if code is set then fill the field code
  *     - if compute is set then add event to call clean_tva and compute_ledger
address@hidden Acc_Ledger_Sold::input
-* Part 2
-* dl : display form to modify, add and delete lettering for a given operation
+  @see Acc_Ledger_Sold::input
+ * Part 2
+ * dl : display form to modify, add and delete lettering for a given operation
  *
  */
 require_once('class_database.php');
@@ -41,54 +42,54 @@
 require_once('ac_common.php');
 require_once ('class_user.php');
 
-$var=array('gDossier','op');
-$cont=0;
+$var = array('gDossier', 'op');
+$cont = 0;
 /*  check if mandatory parameters are given */
 foreach ($var as $v)
 {
-    if ( ! isset ($_REQUEST [$v] ) )
-    {
-        echo "$v is not set ";
-        $cont=1;
-    }
+       if (!isset($_REQUEST [$v]))
+       {
+               echo "$v is not set ";
+               $cont = 1;
+       }
 }
-if ( $cont != 0 ) exit();
-extract($_REQUEST );
+if ($cont != 0)
+       exit();
+extract($_REQUEST);
 set_language();
 
-$cn=new Database($gDossier);
-$user=new User($cn);
+$cn = new Database($gDossier);
+$user = new User($cn);
 $user->check(true);
-$user->check_dossier($gDossier,true);
-$html=var_export($_REQUEST,true);
-switch($op)
+$user->check_dossier($gDossier, true);
+$html = var_export($_REQUEST, true);
+switch ($op)
 {
        case "remove_anc":
                if ($user->check_action(CAOD))
-               $cn->exec_sql("delete from operation_analytique where 
oa_group=$1",array($_GET['oa']));
+                       $cn->exec_sql("delete from operation_analytique where 
oa_group=$1", array($_GET['oa']));
                break;
-case "rm_stock":
-  require_once('constant.security.php');
-  if ( $user->check_action(GESTOCK) == 0 )
-    {
-      exit();
-    }
-  $cn->exec_sql('delete from stock_goods where sg_id=$1',
-               array($s_id));
-  $html=escape_xml($s_id);
-  header('Content-type: text/xml; charset=UTF-8');
-  printf('{"d_id":"%s"}',$s_id);
-  exit();
-  break;
-    //--------------------------------------------------
-    // get the last date of a ledger
-case 'lastdate':
-    require_once('class_acc_ledger_fin.php');
-    $ledger=new Acc_Ledger_Fin($cn,$_GET['p_jrn']);
-    $html=$ledger->get_last_date();
-    $html=escape_xml($html);
-    header('Content-type: text/xml; charset=UTF-8');
-    echo <<<EOF
+       case "rm_stock":
+               require_once('constant.security.php');
+               if ($user->check_action(GESTOCK) == 0)
+               {
+                       exit();
+               }
+               $cn->exec_sql('delete from stock_goods where sg_id=$1', 
array($s_id));
+               $html = escape_xml($s_id);
+               header('Content-type: text/xml; charset=UTF-8');
+               printf('{"d_id":"%s"}', $s_id);
+               exit();
+               break;
+       //--------------------------------------------------
+       // get the last date of a ledger
+       case 'lastdate':
+               require_once('class_acc_ledger_fin.php');
+               $ledger = new Acc_Ledger_Fin($cn, $_GET['p_jrn']);
+               $html = $ledger->get_last_date();
+               $html = escape_xml($html);
+               header('Content-type: text/xml; charset=UTF-8');
+               echo <<<EOF
 <?xml version="1.0" encoding="UTF-8"?>
 <data>
 <code>e_date</code>
@@ -96,159 +97,158 @@
 </data>
 EOF;
 
-    break;
-case 'bkname':
-    require_once('class_acc_ledger_fin.php');
-    $ledger=new Acc_Ledger_Fin($cn,$_GET['p_jrn']);
-    $html=$ledger->get_bank_name();
-    $html=escape_xml($html);
-    header('Content-type: text/xml; charset=UTF-8');
-    echo <<<EOF
+               break;
+       case 'bkname':
+               require_once('class_acc_ledger_fin.php');
+               $ledger = new Acc_Ledger_Fin($cn, $_GET['p_jrn']);
+               $html = $ledger->get_bank_name();
+               $html = escape_xml($html);
+               header('Content-type: text/xml; charset=UTF-8');
+               echo <<<EOF
 <?xml version="1.0" encoding="UTF-8"?>
 <data>
 <code>bkname</code>
 <value>$html</value>
 </data>
 EOF;
-    break;
-    // display new calendar
-case 'cal':
-        require_once('class_calendar.php');
-    /* others report */
-    $cal=new Calendar();
-    $cal->set_periode($per);
+               break;
+       // display new calendar
+       case 'cal':
+               require_once('class_calendar.php');
+               /* others report */
+               $cal = new Calendar();
+               $cal->set_periode($per);
 
-    $html="";
-    $html=$cal->display();
-    $html=escape_xml($html);
-    header('Content-type: text/xml; charset=UTF-8');
-    echo <<<EOF
+               $html = "";
+               $html = $cal->display();
+               $html = escape_xml($html);
+               header('Content-type: text/xml; charset=UTF-8');
+               echo <<<EOF
 <?xml version="1.0" encoding="UTF-8"?>
 <data>
 <code>$html</code>
 </data>
 EOF;
-    break;
-    /* remove a cat of document */
-case 'rem_cat_doc':
-        require_once('class_document_type.php');
-    // if user can not return error message
-    if(     $user->check_action(PARCATDOC)==0 )
-    {
-        $html="nok";
-        header('Content-type: text/xml; charset=UTF-8');
-        echo <<<EOF
+               break;
+       /* remove a cat of document */
+       case 'rem_cat_doc':
+               require_once('class_document_type.php');
+               // if user can not return error message
+               if ($user->check_action(PARCATDOC) == 0)
+               {
+                       $html = "nok";
+                       header('Content-type: text/xml; charset=UTF-8');
+                       echo <<<EOF
 <?xml version="1.0" encoding="UTF-8"?>
 <data>
 <dtid>$html</dtid>
 </data>
 EOF;
-        return;
-    }
-    // remove the cat if no action
-    $count_md=$cn->get_value('select count(*) from document_modele where 
md_type=$1',array($dt_id));
-    $count_a=$cn->get_value('select count(*) from action_gestion where 
ag_type=$1',array($dt_id));
+                       return;
+               }
+               // remove the cat if no action
+               $count_md = $cn->get_value('select count(*) from 
document_modele where md_type=$1', array($dt_id));
+               $count_a = $cn->get_value('select count(*) from action_gestion 
where ag_type=$1', array($dt_id));
 
-    if ( $count_md != 0 || $count_a != 0 )
-    {
-        $html="nok";
-        header('Content-type: text/xml; charset=UTF-8');
-        echo <<<EOF
+               if ($count_md != 0 || $count_a != 0)
+               {
+                       $html = "nok";
+                       header('Content-type: text/xml; charset=UTF-8');
+                       echo <<<EOF
 <?xml version="1.0" encoding="UTF-8"?>
 <data>
 <dtid>$html</dtid>
 </data>
 EOF;
-        exit;
-    }
-    $cn->exec_sql('delete from document_type where dt_id=$1',array($dt_id));
-    $html=$dt_id;
-    header('Content-type: text/xml; charset=UTF-8');
-    echo <<<EOF
+                       exit;
+               }
+               $cn->exec_sql('delete from document_type where dt_id=$1', 
array($dt_id));
+               $html = $dt_id;
+               header('Content-type: text/xml; charset=UTF-8');
+               echo <<<EOF
 <?xml version="1.0" encoding="UTF-8"?>
                                  <data>
                                  <dtid>$html</dtid>
                                  </data>
 EOF;
-    return;
-    break;
-case 'dsp_tva':
-  $cn=new Database($gDossier);
-    $Res=$cn->exec_sql("select * from tva_rate order by tva_rate desc");
-    $Max=Database::num_row($Res);
-    $r="";
-    $r=HtmlInput::anchor_close('tva_select');
-    $r.=h2info('Choississez la TVA ');
-    $r.='<div >';
-    $r.= '<TABLE style="padding-left:10%;padding-right:10%;width:80%">';
-    $r.=th('');
-    $r.=th(_('code'));
-    $r.=th(_('Taux'));
-    $r.=th(_('Symbole'));
-    $r.=th(_('Explication'));
+               return;
+               break;
+       case 'dsp_tva':
+               $cn = new Database($gDossier);
+               $Res = $cn->exec_sql("select * from tva_rate order by tva_rate 
desc");
+               $Max = Database::num_row($Res);
+               $r = "";
+               $r = HtmlInput::anchor_close('tva_select');
+               $r.=h2info('Choississez la TVA ');
+               $r.='<div >';
+               $r.= '<TABLE 
style="padding-left:10%;padding-right:10%;width:80%">';
+               $r.=th('');
+               $r.=th(_('code'));
+               $r.=th(_('Taux'));
+               $r.=th(_('Symbole'));
+               $r.=th(_('Explication'));
 
-    for ($i=0;$i<$Max;$i++)
-    {
-        $row=Database::fetch_array($Res,$i);
-        if ( ! isset($compute))
-        {
-            if ( ! isset($code) )
-            {
-                
$script="onclick=\"$('$ctl').value='".$row['tva_id']."';removeDiv('tva_select');\"";
-            }
-            else
-            {
-                
$script="onclick=\"$('$ctl').value='".$row['tva_id']."';set_value('$code','".$row['tva_label']."');removeDiv('tva_select');\"";
-            }
-        }
-        else
-        {
-            if ( ! isset($code) )
-            {
-                
$script="onclick=\"$('$ctl').value='".$row['tva_id']."';removeDiv('tva_select');clean_tva('$compute');compute_ledger('$compute');\"";
-            }
-            else
-            {
-                
$script="onclick=\"$('$ctl').value='".$row['tva_id']."';set_value('$code','".$row['tva_label']."');removeDiv('tva_select');clean_tva('$compute');compute_ledger('$compute');\"";
-            }
+               for ($i = 0; $i < $Max; $i++)
+               {
+                       $row = Database::fetch_array($Res, $i);
+                       if (!isset($compute))
+                       {
+                               if (!isset($code))
+                               {
+                                       $script = "onclick=\"$('$ctl').value='" 
. $row['tva_id'] . "';removeDiv('tva_select');\"";
+                               }
+                               else
+                               {
+                                       $script = "onclick=\"$('$ctl').value='" 
. $row['tva_id'] . "';set_value('$code','" . $row['tva_label'] . 
"');removeDiv('tva_select');\"";
+                               }
+                       }
+                       else
+                       {
+                               if (!isset($code))
+                               {
+                                       $script = "onclick=\"$('$ctl').value='" 
. $row['tva_id'] . 
"';removeDiv('tva_select');clean_tva('$compute');compute_ledger('$compute');\"";
+                               }
+                               else
+                               {
+                                       $script = "onclick=\"$('$ctl').value='" 
. $row['tva_id'] . "';set_value('$code','" . $row['tva_label'] . 
"');removeDiv('tva_select');clean_tva('$compute');compute_ledger('$compute');\"";
+                               }
+                       }
+                       $set = '<INPUT TYPE="BUTTON" class="button" 
Value="select" ' . $script . '>';
+                       $r.='<tr>';
+                       $r.=td($set);
+                       $r.=td($row['tva_id']);
+                       $r.=td($row['tva_rate']);
+                       $r.=td($row['tva_label']);
+                       $r.=td($row['tva_comment']);
+                       $r.='</tr>';
+               }
+               $r.='</TABLE>';
+               $r.='</div>';
+               $html = escape_xml($r);
 
-        }
-        $set= '<INPUT TYPE="BUTTON" class="button" Value="select" 
'.$script.'>';
-        $r.='<tr>';
-        $r.=td($set);
-        $r.=td($row['tva_id']);
-        $r.=td($row['tva_rate']);
-        $r.=td($row['tva_label']);
-        $r.=td($row['tva_comment']);
-        $r.='</tr>';
-    }
-    $r.='</TABLE>';
-    $r.='</div>';
-    $html=escape_xml($r);
-
-    header('Content-type: text/xml; charset=UTF-8');
-    echo <<<EOF
+               header('Content-type: text/xml; charset=UTF-8');
+               echo <<<EOF
 <?xml version="1.0" encoding="UTF-8"?>
 <data>
 <code>$html</code>
 <popup>$popup</popup>
 </data>
 EOF;
-    break;
-case 'label_tva':
-        $cn=new Database($gDossier);
-    if ( isNumber($id) == 0 )
-        $value = _('tva inconnue');
-    else
-    {
-        $Res=$cn->get_array("select * from tva_rate where tva_id = 
$1",array($id));
-        if ( count($Res) == 0 )
-            $value=_('tva inconnue');
-        else
-            $value=$Res[0]['tva_label'];
-    }
-    header('Content-type: text/xml; charset=UTF-8');
-echo <<<EOF
+               break;
+       case 'label_tva':
+               $cn = new Database($gDossier);
+               if (isNumber($id) == 0)
+                       $value = _('tva inconnue');
+               else
+               {
+                       $Res = $cn->get_array("select * from tva_rate where 
tva_id = $1", array($id));
+                       if (count($Res) == 0)
+                               $value = _('tva inconnue');
+                       else
+                               $value = $Res[0]['tva_label'];
+               }
+               header('Content-type: text/xml; charset=UTF-8');
+               echo <<<EOF
 <?xml version="1.0" encoding="UTF-8"?>
 <data>
 <code>$code</code>
@@ -256,227 +256,269 @@
 </data>
 EOF;
 
-    break;
-    /**
-     *display the lettering
-     */
-case 'dl':
-        require_once('class_lettering.php');
-    $exercice=$user->get_exercice();
-    $periode=new Periode($cn);
-    list($first_per,$last_per)=$periode->get_limit($exercice);
+               break;
+       /**
+        * display the lettering
+        */
+       case 'dl':
+               require_once('class_lettering.php');
+               $exercice = $user->get_exercice();
+               $periode = new Periode($cn);
+               list($first_per, $last_per) = $periode->get_limit($exercice);
 
-    $ret=new IButton('return');
-    $ret->label=_('Retour');
-    $ret->javascript="$('detail').hide();$('list').show();$('search').show();";
+               $ret = new IButton('return');
+               $ret->label = _('Retour');
+               $ret->javascript = 
"$('detail').hide();$('list').show();$('search').show();";
 
-    // retrieve info for the given j_id (date, amount,side and comment)
-    $sql="select j_date,to_char(j_date,'DD.MM.YYYY') as 
j_date_fmt,J_POSTE,j_qcode,jr_id,
+               // retrieve info for the given j_id (date, amount,side and 
comment)
+               $sql = "select j_date,to_char(j_date,'DD.MM.YYYY') as 
j_date_fmt,J_POSTE,j_qcode,jr_id,
          jr_comment,j_montant, j_debit,jr_internal from jrnx join jrn on 
(j_grpt=jr_grpt_id)
          where j_id=$1";
-    $arow=$cn->get_array($sql,array($j_id));
-    $row=$arow[0];
-    $r='';
-    $r.='<fieldset><legend>'._('Lettrage').'</legend>';
-    $r.='Poste '.$row['j_poste'].'  '.$row['j_qcode'].'<br>';
+               $arow = $cn->get_array($sql, array($j_id));
+               $row = $arow[0];
+               $r = '';
+               $r.='<fieldset><legend>' . _('Lettrage') . '</legend>';
+               $r.='Poste ' . $row['j_poste'] . '  ' . $row['j_qcode'] . 
'<br>';
 
-    $detail="<A class=\"detail\" style=\"display:inline\" 
HREF=\"javascript:modifyOperation('".$row['jr_id']."',".$gDossier.")\" > 
".$row['jr_internal']."</A>";
+               $detail = "<A class=\"detail\" style=\"display:inline\" 
HREF=\"javascript:modifyOperation('" . $row['jr_id'] . "'," . $gDossier . ")\" 
> " . $row['jr_internal'] . "</A>";
 
-    $r.='Date : '.$row['j_date_fmt'].' ref :'.$detail.' <br>  ';
-    $r.=h($row['jr_comment'])." montant: ".($row['j_montant'])." 
".(($row['j_debit']=='t')?'D':'C');
-    $r.='</fieldset>';
-    $r.='<div id="filtre" style="float:left;display:block">';
-    $r.='<form method="get" id="search_form" 
onsubmit="search_letter(this);return false">';
-    $r.='<div style="float:left;">';
-    // needed hidden var
-    $r.=dossier::hidden();
-    if ( isset($_REQUEST['ac']))       
$r.=HtmlInput::hidden('ac',$_REQUEST['ac']);
-    if ( isset($_REQUEST['sa']))       
$r.=HtmlInput::hidden('sa',$_REQUEST['sa']);
-    if ( isset($_REQUEST['acc']))       
$r.=HtmlInput::hidden('acc',$_REQUEST['acc']);
-    $r.=HtmlInput::hidden('j_id',$j_id);
-    $r.=HtmlInput::hidden('op',$op);
-    $r.=HtmlInput::hidden('ot',$ot);
+               $r.='Date : ' . $row['j_date_fmt'] . ' ref :' . $detail . ' 
<br>  ';
+               $r.=h($row['jr_comment']) . " montant: " . ($row['j_montant']) 
. " " . (($row['j_debit'] == 't') ? 'D' : 'C');
+               $r.='</fieldset>';
+               $r.='<div id="filtre" style="float:left;display:block">';
+               $r.='<form method="get" id="search_form" 
onsubmit="search_letter(this);return false">';
+               $r.='<div style="float:left;">';
+               // needed hidden var
+               $r.=dossier::hidden();
+               if (isset($_REQUEST['ac']))
+                       $r.=HtmlInput::hidden('ac', $_REQUEST['ac']);
+               if (isset($_REQUEST['sa']))
+                       $r.=HtmlInput::hidden('sa', $_REQUEST['sa']);
+               if (isset($_REQUEST['acc']))
+                       $r.=HtmlInput::hidden('acc', $_REQUEST['acc']);
+               $r.=HtmlInput::hidden('j_id', $j_id);
+               $r.=HtmlInput::hidden('op', $op);
+               $r.=HtmlInput::hidden('ot', $ot);
 
-    $r.='<table>';
-    //min amount
-    $line=td(_('Montant min. '));
-    $min=new INum('min_amount');
-    $min->value=(isset($min_amount))?$min_amount:$row['j_montant'];
-    $min_amount=(isset($min_amount))?$min_amount:$row['j_montant'];
+               $r.='<table>';
+               //min amount
+               $line = td(_('Montant min. '));
+               $min = new INum('min_amount');
+               $min->value = (isset($min_amount)) ? $min_amount : 
$row['j_montant'];
+               $min_amount = (isset($min_amount)) ? $min_amount : 
$row['j_montant'];
 
-    $line.=td($min->input());
-    // max amount
-    $line.=td(_('Montant max. '));
-    $max=new INum('max_amount');
-    $max->value=(isset($max_amount))?$max_amount:$row['j_montant'];
-    $max_amount=(isset($max_amount))?$max_amount:$row['j_montant'];
-    $line.=td($max->input());
-    $r.=tr($line);
+               $line.=td($min->input());
+               // max amount
+               $line.=td(_('Montant max. '));
+               $max = new INum('max_amount');
+               $max->value = (isset($max_amount)) ? $max_amount : 
$row['j_montant'];
+               $max_amount = (isset($max_amount)) ? $max_amount : 
$row['j_montant'];
+               $line.=td($max->input());
+               $r.=tr($line);
 
-    // start date
-    $start=new IDate('search_start');
-    $start->value=(isset($search_start))?$search_start:$first_per->first_day();
+               // start date
+               $start = new IDate('search_start');
+               $start->value = (isset($search_start)) ? $search_start : 
$first_per->first_day();
 
 
-    $line=td('Date Debut').td($start->input());
-    // end date
-    $end=new IDate('search_end');
-    $end->value=(isset($search_end))?$search_end:$last_per->last_day();
-    $line.=td('Date Fin').td($end->input());
-    $r.=tr($line);
-    // Side
-    $line=td('Debit / Credit');
-    $iside=new ISelect('side');
-    $iside->value=array(
-                      array('label'=>_('Debit'),'value'=>0),
-                      array('label'=>_('Credit'),'value'=>1),
-                      array('label'=>_('Les 2'),'value'=>3)
-                  );
-    /**
-     *
-     * if $side is not then
-     * - if jl_id exist and is > 0 show by default all the operation (=3)
-     * - if jl_id does not exist or is < 0 then show by default the opposite
-     *  side
-     */
-    if ( ! isset ($side ))
-    {
-        // find the jl_id of the j_id
-        $jl_id=$cn->get_value('select 
comptaproc.get_letter_jnt($1)',array($j_id));
-        if ($jl_id == null )
-        {
-            // get the other side
-            $iside->selected=(isset($side))?$side:(($row['j_debit']=='t')?1:0);
-            $side=(isset($side))?$side:(($row['j_debit']=='t')?1:0);
-        }
-        else
-        {
-            // show everything
-            $iside->selected=3;
-            $side=3;
-        }
-    }
-    else
-    {
-        $iside->selected=$side;
-    }
+               $line = td('Date Debut') . td($start->input());
+               // end date
+               $end = new IDate('search_end');
+               $end->value = (isset($search_end)) ? $search_end : 
$last_per->last_day();
+               $line.=td('Date Fin') . td($end->input());
+               $r.=tr($line);
+               // Side
+               $line = td('Debit / Credit');
+               $iside = new ISelect('side');
+               $iside->value = array(
+                       array('label' => _('Debit'), 'value' => 0),
+                       array('label' => _('Credit'), 'value' => 1),
+                       array('label' => _('Les 2'), 'value' => 3)
+               );
+               /**
+                *
+                * if $side is not then
+                * - if jl_id exist and is > 0 show by default all the 
operation (=3)
+                * - if jl_id does not exist or is < 0 then show by default the 
opposite
+                *  side
+                */
+               if (!isset($side))
+               {
+                       // find the jl_id of the j_id
+                       $jl_id = $cn->get_value('select 
comptaproc.get_letter_jnt($1)', array($j_id));
+                       if ($jl_id == null)
+                       {
+                               // get the other side
+                               $iside->selected = (isset($side)) ? $side : 
(($row['j_debit'] == 't') ? 1 : 0);
+                               $side = (isset($side)) ? $side : 
(($row['j_debit'] == 't') ? 1 : 0);
+                       }
+                       else
+                       {
+                               // show everything
+                               $iside->selected = 3;
+                               $side = 3;
+                       }
+               }
+               else
+               {
+                       $iside->selected = $side;
+               }
 
-    $r.=tr($line.td($iside->input()));
-    $r.='</table>';
-    $r.='</div>';
-    $r.='<div style="float:left;padding-left:100">';
-    $r.=HtmlInput::submit('search','Rechercher');
-    $r.='</div>';
-    $r.='</form>';
-    $r.='</div>';
+               $r.=tr($line . td($iside->input()));
+               $r.='</table>';
+               $r.='</div>';
+               $r.='<div style="float:left;padding-left:100">';
+               $r.=HtmlInput::submit('search', 'Rechercher');
+               $r.='</div>';
+               $r.='</form>';
+               $r.='</div>';
 
-    $form='<div id="result" style="float:top;clear:both">';
+               $form = '<div id="result" style="float:top;clear:both">';
 
-    $form.='<FORM id="letter_form" METHOD="post">';
-    $form.=dossier::hidden();
-    if ( isset($_REQUEST['p_action']))       
$form.=HtmlInput::hidden('p_action',$_REQUEST['p_action']);
-    if ( isset($_REQUEST['sa']))       
$form.=HtmlInput::hidden('sa',$_REQUEST['sa']);
-    if ( isset($_REQUEST['acc']))       
$form.=HtmlInput::hidden('acc',$_REQUEST['acc']);
-    if ( isset($_REQUEST['sc']))       
$form.=HtmlInput::hidden('sc',$_REQUEST['sc']);
-    if ( isset($_REQUEST['sb']))       
$form.=HtmlInput::hidden('sb',$_REQUEST['sb']);
-    if ( isset($_REQUEST['f_id']))       
$form.=HtmlInput::hidden('f_id',$_REQUEST['f_id']);
-    /*  check if date are valid */
-    if ( (isset($search_end) && isDate($search_end) == null) ||
-            (isset($search_start) && isDate ($search_start) == null))
-    {
-        ob_start();
-        alert(_('Date malformée, désolé'));
-        $html=ob_get_contents();
-        ob_clean();
+               $form.='<FORM id="letter_form" METHOD="post">';
+               $form.=dossier::hidden();
+               if (isset($_REQUEST['p_action']))
+                       $form.=HtmlInput::hidden('p_action', 
$_REQUEST['p_action']);
+               if (isset($_REQUEST['sa']))
+                       $form.=HtmlInput::hidden('sa', $_REQUEST['sa']);
+               if (isset($_REQUEST['acc']))
+                       $form.=HtmlInput::hidden('acc', $_REQUEST['acc']);
+               if (isset($_REQUEST['sc']))
+                       $form.=HtmlInput::hidden('sc', $_REQUEST['sc']);
+               if (isset($_REQUEST['sb']))
+                       $form.=HtmlInput::hidden('sb', $_REQUEST['sb']);
+               if (isset($_REQUEST['f_id']))
+                       $form.=HtmlInput::hidden('f_id', $_REQUEST['f_id']);
+               /*  check if date are valid */
+               if ((isset($search_end) && isDate($search_end) == null) ||
+                               (isset($search_start) && isDate($search_start) 
== null))
+               {
+                       ob_start();
+                       alert(_('Date malformée, désolé'));
+                       $html = ob_get_contents();
+                       ob_clean();
 
-        $html=escape_xml($html);
+                       $html = escape_xml($html);
 
-        header('Content-type: text/xml; charset=UTF-8');
-        echo <<<EOF
+                       header('Content-type: text/xml; charset=UTF-8');
+                       echo <<<EOF
 <?xml version="1.0" encoding="UTF-8"?>
 <data>
 <code>detail</code>
 <value>$html</value>
 </data>
 EOF;
-        exit();
-    }
+                       exit();
+               }
 
-    // display a list of operation from the other side + box button
-    if ( $ot == 'account')
-    {
-        $obj=new Lettering_Account($cn,$row['j_poste']);
-        if ( isset($search_start))      $obj->start=$search_start;
-        if ( isset ($search_end)) $obj->end=$search_end;
-        if ( isset ($max_amount)) $obj->fil_amount_max=$max_amount;
-        if ( isset ($min_amount)) $obj->fil_amount_min=$min_amount;
-        if ( isset ($side)) $obj->fil_deb=$side;
+               // display a list of operation from the other side + box button
+               if ($ot == 'account')
+               {
+                       $obj = new Lettering_Account($cn, $row['j_poste']);
+                       if (isset($search_start))
+                               $obj->start = $search_start;
+                       if (isset($search_end))
+                               $obj->end = $search_end;
+                       if (isset($max_amount))
+                               $obj->fil_amount_max = $max_amount;
+                       if (isset($min_amount))
+                               $obj->fil_amount_min = $min_amount;
+                       if (isset($side))
+                               $obj->fil_deb = $side;
 
-        $form.=$obj->show_letter($j_id);
-    }
-    else if ($ot=='card')
-    {
-        $obj=new Lettering_Card($cn,$row['j_qcode']);
-        if ( isset($search_start))      $obj->start=$search_start;
-        if ( isset ($search_end)) $obj->end=$search_end;
-        if ( isset ($max_amount)) $obj->fil_amount_max=$max_amount;
-        if ( isset ($min_amount)) $obj->fil_amount_min=$min_amount;
-        if ( isset ($side)) $obj->fil_deb=$side;
-        $form.=$obj->show_letter($j_id);
-    }
-    else
-    {
-        $form.='Mauvais type objet';
-    }
+                       $form.=$obj->show_letter($j_id);
+               }
+               else if ($ot == 'card')
+               {
+                       $obj = new Lettering_Card($cn, $row['j_qcode']);
+                       if (isset($search_start))
+                               $obj->start = $search_start;
+                       if (isset($search_end))
+                               $obj->end = $search_end;
+                       if (isset($max_amount))
+                               $obj->fil_amount_max = $max_amount;
+                       if (isset($min_amount))
+                               $obj->fil_amount_min = $min_amount;
+                       if (isset($side))
+                               $obj->fil_deb = $side;
+                       $form.=$obj->show_letter($j_id);
+               }
+               else
+               {
+                       $form.='Mauvais type objet';
+               }
 
-    $form.=HtmlInput::submit('record',_('Sauver')).$ret->input();
-    $form.='</FORM>';
-    $form.='</div>';
-    $html=$r.$form;
-    //       echo $html;exit;
-    $html=escape_xml($html);
+               $form.=HtmlInput::submit('record', _('Sauver')) . $ret->input();
+               $form.='</FORM>';
+               $form.='</div>';
+               $html = $r . $form;
+               //       echo $html;exit;
+               $html = escape_xml($html);
 
-    header('Content-type: text/xml; charset=UTF-8');
-echo <<<EOF
+               header('Content-type: text/xml; charset=UTF-8');
+               echo <<<EOF
 <?xml version="1.0" encoding="UTF-8"?>
 <data>
 <code>detail</code>
 <value>$html</value>
 </data>
 EOF;
-    break;
-case 'mod_doc':
-  require_once('modify_mod_document.inc.php');
-  break;
-case 'input_per':
-  require_once('modify_periode.inc.php');
-  break;
-case 'save_per':
-  require_once('modify_periode.inc.php');
-  break;
-case 'mod_predf':
-  require_once('modify_predf_op.php');
-  break;
-case 'save_predf':
-  require_once('save_predf_op.php');
-  break;
-case 'search_op':
-       /*put_global(array
-                               (array('key'=>'ac','value'=>'JSSEARCH')),
-                               (array('key'=>'ledger_type','value'=>'ALL'))
-                          );*/
-       ob_start();
-       require_once 'search.inc.php';
-       $content=ob_get_contents();
-       ob_clean();
-       $html=escape_xml($content);
-       header('Content-type: text/xml; charset=UTF-8');
-       echo <<<EOF
-<?xml version="1.0" encoding="UTF-8"?>
-<data>
-<ctl>$ctl</ctl>
-<code>$html</code>
-</data>
-EOF;
-       break;
+               break;
+       case 'mod_doc':
+               require_once('modify_mod_document.inc.php');
+               break;
+       case 'input_per':
+               require_once('modify_periode.inc.php');
+               break;
+       case 'save_per':
+               require_once('modify_periode.inc.php');
+               break;
+       case 'mod_predf':
+               require_once('modify_predf_op.php');
+               break;
+       case 'save_predf':
+               require_once('save_predf_op.php');
+               break;
+       case 'search_op':
+               /* put_global(array
+                 (array('key'=>'ac','value'=>'JSSEARCH')),
+                 (array('key'=>'ledger_type','value'=>'ALL'))
+                 ); */
+               require_once 'search.inc.php';
+               break;
+       case 'display_profile':
+               require_once("show_profile.inc.php");
+               break;
+       case 'det_menu':
+               require_once("detail_menu.inc.php");
+               break;
+       case 'add_menu':
+               require_once 'template/add_menu.php';
+               break;
+       case 'add_plugin':
+               $me_code=new IText('me_code');
+               $me_file=new IText('me_file');
+               $me_menu=new IText('me_menu');
+               $me_description=new IText("me_description");
+               $me_parameter=new IText("me_parameter");
+               $new=true;
+               require_once 'template/plugin_detail.php';
+               break;
+       case 'mod_plugin':
+               $m=$cn->get_array("select 
me_code,me_file,me_menu,me_description,me_parameter
+                       from menu_ref where me_code=$1",array($me_code));
+               if ( empty($m))
+               {
+                       echo HtmlInput::title_box("Ce plugin n'existe pas ", 
$ctl);
+                       echo "<p>Il y a une erreur, ce plugin n'existe pas";
+                       exit;
+               }
+               $me_code=new IText('me_code',$m[0] ['me_code']);
+               $me_file=new IText('me_file',$m[0] ['me_file']);
+               $me_menu=new IText('me_menu',$m[0] ['me_menu']);
+               $me_description=new IText("me_description",$m[0] 
['me_description']);
+               $me_parameter=new IText("me_parameter",$m[0] ['me_parameter']);
+               $new=false;
+               require_once 'template/plugin_detail.php';
+               break;
 }

Modified: phpcompta/trunk/html/do.php
===================================================================
--- phpcompta/trunk/html/do.php 2011-11-10 12:58:09 UTC (rev 4325)
+++ phpcompta/trunk/html/do.php 2011-11-10 15:49:57 UTC (rev 4326)
@@ -29,6 +29,8 @@
 require_once('user_common.php');
 require_once('ac_common.php');
 require_once 'function_javascript.php';
+require_once 'constant.security.php';
+
 if (isset ($_POST["style_user"])){$_SESSION['g_theme']=$_POST['style_user'];}
 
 html_page_start($_SESSION['g_theme']);
@@ -119,12 +121,12 @@
 {
     $all = explode('/', $_REQUEST['ac']);
     $module_selected = $all[0];
-
+       $g_user->audit();
 // Show module and highligt selected one
     show_module($module_selected);
     for ($i = 0; $i != count($all); $i++)
     {   // show the menu
-       show_menu($all, $i);
+               show_menu($all, $i);
     }
 }
 elseif (isset($_REQUEST['plugin_code']))

Modified: phpcompta/trunk/html/js/anc_script.js
===================================================================
--- phpcompta/trunk/html/js/anc_script.js       2011-11-10 12:58:09 UTC (rev 
4325)
+++ phpcompta/trunk/html/js/anc_script.js       2011-11-10 15:49:57 UTC (rev 
4326)
@@ -103,6 +103,8 @@
                var tot_table=compute_total_table(p_table,p_seq);
                var remain = tot_line-tot_table;
                remain=Math.round(remain *100)/100;
+               var popup_table=p_table.toString();
+               p_table=popup_table.replace("popup","");
                $('remain'+p_table).innerHTML=remain;
                if (remain == 0)
                        {$('remain'+p_table).style.color="green"}

Modified: phpcompta/trunk/html/js/scripts.js
===================================================================
--- phpcompta/trunk/html/js/scripts.js  2011-11-10 12:58:09 UTC (rev 4325)
+++ phpcompta/trunk/html/js/scripts.js  2011-11-10 15:49:57 UTC (rev 4326)
@@ -736,7 +736,7 @@
 */
 function hide_ledger_choice()
 {
-    g('div_jrn').style.visibility='hidden';
+    if ($('div_jrn')) g('div_jrn').style.visibility='hidden';
        if ($('div_jrnsearch_op')) $('div_jrnsearch_op').style.display='none';
 }
 /**
@@ -957,9 +957,8 @@
 {
     try{
 
-       if ( $('wait_box')){
-                       removeDiv('wait_box');
-                       }
+       remove_waiting_box();
+
        var answer=req.responseXML;
        var a=answer.getElementsByTagName('ctl');
        var html=answer.getElementsByTagName('code');
@@ -986,10 +985,7 @@
 function mod_predf_op(dossier_id,od_id)
 {
     var target="mod_predf_op";
-    if ( $(target))
-    {
        removeDiv(target);
-    }
     var sx=posY;
     var sy=posX;
     var str_style="top:"+sx+";left:"+sy;
@@ -1032,23 +1028,16 @@
 function search_reconcile(dossier,ctl_concern,amount_id,ledger)
 {
        var dossier=g('gDossier').value;
-       if ( amount_id == undefined ) { amount_id=0; }
-         var target="search_op";
-    if ( $(target))
-    {
+       if ( amount_id == undefined )
+               {amount_id=0;}
+       else if ($(amount_id))
+               {
+                       if ($(amount_id).value) {amount_id=$(amount_id).value;}
+                       else if ($(amount_id).innerHTML) 
{amount_id=$(amount_id).innerHTML;}
+               }
+       var target="search_op";
        removeDiv(target);
-    }
-    var sx=77;
-    var sy=99;
-       if ( window.scrollY)
-        {
-            sx=window.scrollY+40;
-        }
-        else
-        {
-            sx=document.body.scrollTop+40;
-        }
-    var str_style="top:"+sx+";left:"+sy;
+       var str_style=fixed_position(77, 99)
 
     var div={id:target, 
cssclass:'inner_box',style:str_style,html:loading(),drag:1};
 
@@ -1056,7 +1045,7 @@
        var target={gDossier:dossier,
                                ctlc:ctl_concern,
                                op:'search_op',
-                               ctl:'search_op',
+                               ctl:target,
                                ac:'JSSEARCH',
                                amount_id:amount_id,
                                ledger:ledger};
@@ -1068,7 +1057,11 @@
                                      method:'get',
                                      parameters:qs,
                                      onFailure:null,
-                                     onSuccess:fill_box
+                                     onSuccess:function (req){
+                                                 remove_waiting_box();
+                                                 
$('search_op').innerHTML=req.responseText;
+                                                 
req.responseText.evalScripts();
+                                         }
                                  }
                                );
 }
@@ -1088,13 +1081,18 @@
                                      method:'get',
                                      parameters:qs,
                                      onFailure:null,
-                                     onSuccess:fill_box
+                                     onSuccess:function (req){
+                                                 remove_waiting_box();
+                                                 
$('search_op').innerHTML=req.responseText;
+                                                 
req.responseText.evalScripts();
+                                         }
                                  }
                                );
 }
 
 function set_reconcile(obj)
  {
+
         try
        {
                var ctlc=obj.elements['ctlc'];
@@ -1109,7 +1107,7 @@
                                {
                                        var str_name=elmt.name;
                                        var 
nValue=str_name.replace("jr_concerned","");
-                                       if ( $(ctlc.value).value != '') {       
$(ctlc.value).value+=',';}
+                                       if ( $(ctlc.value).value != '') 
{$(ctlc.value).value+=',';}
                                        $(ctlc.value).value+=nValue;
                                }
                        }
@@ -1120,4 +1118,147 @@
        {
                alert(e.message)
        }
- }
\ No newline at end of file
+ }
+function remove_waiting_box()
+{
+                       removeDiv('wait_box');
+}
+function get_profile_detail(gDossier,profile_id)
+{
+       waiting_box();
+       var 
qs="op=display_profile&gDossier="+gDossier+"&p_id="+profile_id+"&ctl=detail_profile";
+       var action=new Ajax.Request ( 'ajax_misc.php',
+                                 {
+                                     method:'get',
+                                     parameters:qs,
+                                     onFailure:null,
+                                     onSuccess:function(req){
+                                                 remove_waiting_box();
+                                                 
$('detail_profile').innerHTML=req.responseText;
+                                                 
req.responseText.evalScripts();
+                                                 $('detail_profile').show();
+                                         }
+                                 }
+                               );
+}
+function get_profile_detail_success(xml)
+{
+       remove_waiting_box();
+
+}
+/**
+ * @brief compute the string to position a div in a fixed way
+ * @return string
+ */
+function fixed_position(p_sx,p_sy)
+{
+       var sx=p_sx;
+       var sy=calcy(p_sy);
+
+    var str_style="top:"+sy+";left:"+sx+"position:absolute";
+       return str_style;
+
+}
+function calcy(p_sy)
+{
+       var sy=p_sy;
+       if ( window.scrollY)
+        {
+            sy=window.scrollY+p_sy;
+        }
+        else
+        {
+            sy=document.body.scrollTop+p_sy;
+        }
+       return sy;
+
+}
+function mod_menu(gdossier,pm_id)
+{
+       waiting_box();
+       removeDiv('divdm'+pm_id);
+       var 
qs="op=det_menu&gDossier="+gdossier+"&pm_id="+pm_id+"&ctl=divdm"+pm_id;
+       var pos=fixed_position(250,150);
+       var action=new Ajax.Request ( 'ajax_misc.php',
+                                 {
+                                     method:'get',
+                                     parameters:qs,
+                                     onFailure:null,
+                                     onSuccess:function(req){
+                                                 try{
+                                                         remove_waiting_box();
+                                                         
add_div({id:"divdm"+pm_id,drag:1,cssclass:"inner_box",style:pos});
+                                                         
$('divdm'+pm_id).innerHTML=req.responseText;
+                                                 } catch(e){alert(e.message);}
+                                         }
+                                 }
+                               );
+}
+function add_menu(obj)
+{
+       pdossier=obj.dossier;
+       p_id=obj.p_id
+       waiting_box();
+       removeDiv('divdm'+p_id);
+       var qs="op=add_menu&gDossier="+pdossier+"&p_id="+p_id+"&ctl=divdm"+p_id;
+       var pos=fixed_position(250,150);
+       var action=new Ajax.Request ( 'ajax_misc.php',
+                                 {
+                                     method:'get',
+                                     parameters:qs,
+                                     onFailure:null,
+                                     onSuccess:function(req){
+                                                 try{
+                                                         remove_waiting_box();
+                                                         
add_div({id:"divdm"+p_id,drag:1,cssclass:"inner_box",style:pos});
+                                                         
$('divdm'+p_id).innerHTML=req.responseText;
+                                                 } catch(e){alert(e.message);}
+                                         }
+                                 }
+                               );
+}
+function add_plugin(p_dossier)
+{
+       waiting_box();
+       removeDiv('divplugin');
+       var qs="op=add_plugin&gDossier="+p_dossier+"&ctl=divplugin";
+
+       var action=new Ajax.Request ( 'ajax_misc.php',
+                                 {
+                                     method:'get',
+                                     parameters:qs,
+                                     onFailure:null,
+                                     onSuccess:function(req){
+                                                 try{
+                                                         remove_waiting_box();
+                                                         var 
pos=fixed_position(250,150)+";width:30%";;
+                                                       
add_div({id:"divplugin",drag:1,cssclass:"inner_box",style:pos});
+                                                         
$('divplugin').innerHTML=req.responseText;
+                                                 } catch(e){alert(e.message);}
+                                         }
+                                 }
+                               );
+}
+function mod_plugin(p_dossier,me_code)
+{
+       waiting_box();
+       removeDiv('divplugin');
+       var 
qs="op=mod_plugin&gDossier="+p_dossier+"&ctl=divplugin&me_code="+me_code;
+
+       var action=new Ajax.Request ( 'ajax_misc.php',
+                                 {
+                                     method:'get',
+                                     parameters:qs,
+                                     onFailure:null,
+                                     onSuccess:function(req){
+                                                 try{
+                                                         remove_waiting_box();
+                                                         var 
pos=fixed_position(250,150)+";width:30%";
+                                                         
add_div({id:"divplugin",drag:1,cssclass:"inner_box",style:pos});
+                                                         
$('divplugin').innerHTML=req.responseText;
+
+                                                 } catch(e){alert(e.message);}
+                                         }
+                                 }
+                               );
+}
\ No newline at end of file

Modified: phpcompta/trunk/html/style-color.css
===================================================================
--- phpcompta/trunk/html/style-color.css        2011-11-10 12:58:09 UTC (rev 
4325)
+++ phpcompta/trunk/html/style-color.css        2011-11-10 15:49:57 UTC (rev 
4326)
@@ -63,7 +63,7 @@
     padding:0px;
     margin:0px;
 }
-u_redcontent h2.info {
+redcontent h2.info {
     background:#879ed4;
     color:white;
     font-size:14pt;
@@ -177,7 +177,7 @@
     border-width:1px;
 
 }
-div.u_redcontent{       
+div.redcontent{         
 
     float:left;         
     padding-top:7px;
@@ -404,7 +404,7 @@
     display:inline;
     padding:1em 1em;
 }
-div.u_redcontent a {
+div.redcontent a {
     font-family:helvetica,arial,sans-serif;
     text-decoration: none;
     display: block;
@@ -412,7 +412,7 @@
 
 }
 
-div.u_redcontent a:hover {
+div.redcontent a:hover {
     font-family:helvetica,arial,sans-serif;
     color: white;
     background-color: rgb(93, 144, 205);
@@ -439,7 +439,7 @@
 
 }
 
-div.u_redcontent a.mtitle {
+div.redcontent a.mtitle {
     text-decoration:none;
     display:inline;
 
@@ -448,7 +448,7 @@
 
 }
 
-div.u_redcontent a.mtitle:hover {
+div.redcontent a.mtitle:hover {
     text-decoration:none;
     display:inline;
     color:white;
@@ -474,7 +474,7 @@
 
 
 }
-div.u_redcontent input.text {
+div.redcontent input.text {
     font-family:helvetica,arial,sans-serif;
     font-weight:normal;
     border-color:336699;
@@ -495,13 +495,13 @@
 
 
 
-div.u_redcontent input:focus {
+div.redcontent input:focus {
     background-color:orange;
 }
 div.content input:focus {
     background-color:orange;
 }
-div.u_redcontent textarea:focus {
+div.redcontent textarea:focus {
     background-color: orange;
 }
 .document {

Added: phpcompta/trunk/html/style-epad.css
===================================================================
--- phpcompta/trunk/html/style-epad.css                         (rev 0)
+++ phpcompta/trunk/html/style-epad.css 2011-11-10 15:49:57 UTC (rev 4326)
@@ -0,0 +1,1038 @@
+/* <style type="text/css"> */
+
+BODY {
+  background-color:#EDF3FF;
+ font-size:14;
+  font-family:helvetica,sans-serif;
+  padding: 0px 10px 0px 10px ;
+  margin:0;
+}
+.notice {
+               color:red;
+        font-style: italic;
+        }
+
+table.result  ,table.resultfooter {
+  color:blue;
+  /* border:blue solid 1px; */
+  width:100%;
+   border-spacing:  0px;
+   border-collapse:collapse;
+   
+}
+table.resultfooter tfoot {
+       font-size:110%;
+       font-weight: bold;
+       
+       
+}
+table.result th { 
+  font-weight:bold;
+  font-family:helvetica,sans-serif;
+ border-bottom:2px solid blue; 
+ border-top:0;
+ 
+  color:#25238F;
+  text-align: left;
+            // background-color:#EDF3FF;
+             
+             font-style: italic;
+             
+}
+
+h2 {
+  font-family:helvetica,sans-serif;
+  font-size:14px;
+  color:grey;
+}
+div.info {
+       background:#879ed4;
+       color:white;
+       font-size:120%;
+  text-align:center;
+}
+
+content h2.info {
+       background:#879ed4;
+  color:black;
+  font-size:14pt;
+  text-align:center;
+  padding:0px;
+  margin:0px;
+}
+redcontent h2.info {
+  background:#879ed4;
+  color:white;
+  font-size:14pt;
+  text-align:center;
+  padding:0px;
+  margin:0px;
+}
+h2.info {
+  background-color:#879ED4;
+       color:white;
+       font-size:14px;
+  text-align:center;
+  padding:0px;
+  margin:0px;
+  border:1px solid grey;
+  
+}
+
+h3.info {
+  background:#879ed4;
+  color:white;
+  font-size:14px;
+  text-align:center;
+}
+
+h2.info2 {
+  color:blue;
+  font-size:14px;
+  text-align:center;
+
+}
+
+
+h2.error {
+       background:red;
+       color:white;
+       font-size:14px;
+}
+
+h1.title {
+       color: blue;
+       font-size:25px;
+}
+
+div.u_tmenu {
+  margin-top:0px;
+  width:100%;  
+ /* background-color:#879ED4; */
+  
+  
+}
+div.u_subtmenu {
+  background-color:white       ;
+  float:left;
+  clear:both;
+  left:10px;
+
+}
+div.u_tmenu div.u_tool {
+          float:left;
+          
+}
+div.u_tool {
+       float:left;
+       width:  100%;
+       }
+div.u_tool div.name {
+       float:left;
+       margin-left:10px;
+}
+div.u_tool div.acces_direct{
+       float:right;
+       margin-right:10px;
+       text-align:right;
+       
+}
+
+div.u_subt2menu {
+background-color:lightgrey;
+  left:1%;     
+
+}
+div.lmenu {
+        float:left;
+        clear:left;
+       font-size:14px;
+
+}
+div.lextmenu {
+
+       float:left;
+       font-family:helvetica,sans-serif;
+       font-size:14px;
+
+}
+div.searchmenu {
+  left:30px;
+  width:95px;
+  top:100px;
+  position:absolute;
+
+}
+
+div.recherche_form{
+       width:700px;
+       font-size:14px;
+       font-family:helvetica,sans-serif;
+  border-style:outset;
+  border-width:1px;
+
+}
+div.redcontent{         
+   
+         float:left;    
+        padding-top:7px;
+        padding-left:8px;
+         font-size:9px;         
+         font-family:helvetica,sans-serif;      
+        width:75%;
+
+}
+div.content{    
+
+         float:left;    
+               padding-top:7px;
+         width:100%;            
+         font-family:helvetica,sans-serif;     
+         clear:both;
+          
+
+}
+div.content30{          
+        
+         float:left;    
+        padding-top:7px;
+         width:35%;      
+         font-family:helvetica,sans-serif;      
+
+}
+div.no span{
+       position:static;
+       font-family:helvetica,sans-serif;       
+       font-weight:bold;
+       color:red;      
+       
+}
+
+table.document {
+   color:blue;
+   width:100%;
+   border-spacing:  0px;
+   border-collapse:collapse;
+
+}
+table.document th{
+  font-weight:bold;
+  font-family:helvetica,sans-serif;
+  border-bottom:2px solid blue;
+  border-top:0;
+  color:#25238F;
+  text-align: left;
+  background-color:#EDF3FF;
+  font-style: italic;
+}
+.error {
+width:60%;
+margin-left:20%;
+text-align: center;
+
+color:white;  
+background-color:red;
+font-weight: bolder;
+font-size:120%;
+}
+
+table.mtitle {
+       border:0;
+       text-align:center
+}
+td.mshort { 
+  height:15px;
+  width:60px;
+  text-align:center;
+  border:  1px solid;
+  color:#5D90CD ;
+  background-color:#DDE6FF;
+}
+td.mtitle {
+       text-align:center;
+       width:95px;
+        height :30px; 
+       font-size:10px;
+    background-color:#DDE6FF;
+    border:1px solid #99B1DF;
+}
+td.msubtitle {
+       text-align:center;
+       height:20px;
+       font-size:10px;
+    background-color:#DDE6FF;
+}
+span.mtitle {
+       color:gray;
+       background-color:blue;
+       font-size:10px;
+       border-style:groove
+}
+span.odd { 
+  background-color:#ECF3FF;
+  display:block;
+ }
+span.even { 
+  background-color:#DDE6FF;
+  display:block;
+ }
+
+tr.odd {
+       background-color:#DDE6FF;
+       font-size:10px;
+}
+tr {
+       font-size:10px;
+}
+td.odd{
+       background-color:#DDE6FF ;
+       font-size:10px;
+}
+td.even{
+       border:0px;
+       font-size:10px;
+}
+td.cell{
+           height:32px;
+            padding: 1px;
+}
+td.selectedcell{
+       border-style:inset;
+        border-color:blue;
+       border-width:1pt ;
+       font-size:10px;
+        background:#5D90CD ;
+        color:white;
+        text-align:center;
+            width:120px;
+}
+a.mtitle {
+  font-size:10px;
+  text-decoration:none;
+  display:inline;
+ color: blue;
+       
+}
+a.mtitle:hover {
+  font-size:10px;
+  text-decoration:none;
+  display:inline;
+  
+ color: darkblue;
+background-color:#5D90CD;
+       
+}
+td.selectedcell a.mtitle {
+ font-size:1em;
+ text-decoration:none;
+ display:block;
+ color:white;
+}
+a.dossier {
+  font-size:10px;
+  text-decoration:none;
+  display:block;
+   color: #202267;
+       
+}
+tr.odd:hover td
+{
+  text-decoration:none;
+  background-color: #a9d6e4;
+  color:white;
+}
+tr.even:hover td 
+{
+  text-decoration:none;
+  background-color: #a9d6e4;
+  color:white;
+}
+td.mtitle:hover,td.mtitle:hover a
+{
+  background-color:#a9d6e4;
+  color:white;
+}
+td.msubtitle:hover,td.msubtitle:hover a
+{
+  background-color:#a9d6e4;
+  color:white;
+}
+a.cell {
+  text-decoration:none;
+  display:block;
+  color:blue;
+  background-color:white;
+  font-size:12px;
+}
+
+a.cell:hover {
+  font-size:12px;
+  color:white;
+  background-color:#5D90CD;
+  text-decoration:none;
+  display:block;
+       }
+
+
+a.one:link {
+       text-decoration:none;
+       color:#3010FF
+}
+a.one:visited {
+       text-decoration:none;
+       color:#3010FF
+       }
+
+a.one:active {
+       background: #0000FF;
+       }
+
+a.one:hover {
+           text-decoration:underline;
+       background:#3010FF;
+       color:#FFFFFF;
+       }
+
+
+a.detail
+{
+  font-size:9px;
+  font-family:helvetica,sans-serif;
+    text-decoration: none;
+    display: block;
+    color: blue;
+}
+
+a.detail:hover   
+{
+  font-size:12px;
+  font-family:helvetica,sans-serif;
+    color: white;
+    background-color: rgb(93, 144, 205);
+    text-decoration: none;
+    display: block;
+}
+
+li.menuv,ol.menuv {
+        display:inline;
+        padding:1em 1em;
+}
+div.redcontent a {
+  font-family:helvetica,sans-serif;
+  text-decoration: none;
+  display: block;
+  color: blue;
+
+}
+
+div.redcontent a:hover {
+  font-family:helvetica,sans-serif;
+    color: white;
+    background-color: rgb(93, 144, 205);
+    text-decoration: none;
+    display: block;
+
+}
+div.content a {
+  font-family:helvetica,sans-serif;
+  text-decoration: none;
+  display: block;
+  color: blue;
+padding: 1px ;
+       
+}
+
+
+div.content a:hover {
+  font-family:helvetica,sans-serif;
+    color: white;
+    background-color: rgb(93, 144, 205);
+    text-decoration: none;
+    display: block;
+
+}
+
+div.redcontent a.mtitle {
+  text-decoration:none;
+  display:inline;
+
+  
+  color:black;
+
+}
+
+div.redcontent a.mtitle:hover {
+  text-decoration:none;
+  display:inline;
+  color:white;
+  background-color:darkblue;
+
+
+}
+div.content a.mtitle {
+  font-size:10px;
+  text-decoration:none;
+  display:inline;
+  color:blue;
+    
+
+
+}
+
+div.content a.mtitle:hover {
+  text-decoration:none;
+  display:inline;
+  background-color:darkblue;
+  color:white;
+ 
+
+}
+div.redcontent input.text {
+   font-family:helvetica,sans-serif;
+  font-weight:normal;
+  border-color:336699;
+  border-style:solid;
+  background-color:orange;  
+  border-width:1px;
+  color:blue; 
+}
+div.content input.text {
+   font-family:helvetica,sans-serif;
+  font-weight:normal;
+  border-color:336699;
+  border-style:solid;
+  border-width:1px;
+  background-color:orange;
+  color:blue; 
+}
+
+
+
+div.redcontent input:focus {
+  background-color:orange;
+}
+div.content input:focus {
+  background-color:orange;
+}
+div.redcontent textarea:focus {
+background-color: orange;
+}
+.document {
+color: #1a207d;
+border-collapse:collapse;
+}
+a.document{
+  font-size:12px;
+  text-decoration:none;
+  display:block;
+}
+a.document:hover {
+  text-decoration:none;
+  display:block;
+
+
+}
+.input_text {
+          border:groove 1px blue;
+       margin:1px;
+}
+legend {
+font-weight: bold;
+font-style: italic;
+font-size: 120% ;
+       
+}
+fieldset fieldset legend { 
+        font-size:110%;
+        color:grey;
+        }      
+select {
+border: 1px solid blue;
+margin:2px;
+background-color:white;
+
+
+}
+
+
+
+.infobulle {
+          position:absolute;
+          border:1px solid black;
+          background-color:yellow;
+          top:0;left:0;
+          visibility:hidden;
+          z-index:2;
+          width:25em;
+       
+}
+
+span.action {
+       height:3em;
+       
+}
+td.num {
+       text-align:right;
+}
+tr.priority1 {
+       background-color:red;
+       }
+span.action a.action {
+  border:2px outset ;
+  padding-left: 3px;
+  padding-right:3px;
+  text-decoration:none;
+  font-size:14px;
+  
+  display:inline;
+  color:black;
+  background-color:lightgrey;
+}
+
+span.action a.action:hover {
+  text-decoration:none;
+  display:inline;
+  background-color:lightblue;
+  color:black;
+}
+div.popup_back{
+       position:absolute;
+       top:0px;
+       left:0px;
+       opacity:0.6;
+       width:100%;
+       height:100%;
+       z-index:1;
+       /*background-color:lightgrey;*/
+       
+       display:none;   
+}
+
+div.popup_border_title {
+       position:absolute;
+       top:20%;
+       left:10%;
+       width:60%;
+       height:80%;
+       /*background:lightgrey;*/
+       z-index:10;
+       /*border:dotted 1px black;*/
+       border: 2px outset #201e87;
+       background-color:#879ED4;
+       font-size: 110% ;
+       font-family: helvetica,sans-serif;
+       font-style: italic;
+       font-weight: bolder;
+       text-align:center;
+       /*border-bottom: 2px solid #201e87;*/   
+       color: white;
+       display:none;
+       /*opacity:1;
+       filter:alpha(opacity=100);*/
+       
+       }
+div.popup_border_notitle {
+       position:absolute;
+       top:20%;
+       left:20%;
+       width:60%;
+       height:80% ; 
+       /*background:lightgrey;*/
+       z-index:10;
+       /*border:dotted 1px black;*/
+       border: 3px outset #201e87;
+       background-color: #879ED4;
+       font-family: helvetica,sans-serif;
+       font-style: italic;
+       font-weight: bolder;
+       text-align:center;
+       display:none;
+       color: white;
+       /*opacity:0.7;
+       filter:alpha(opacity=70);
+       */
+       }
+
+div.popup_content {
+       position:absolute;
+       top:16;
+       bottom:0;
+       left:0;
+       right:0;
+       width:100%;
+       height:96%;
+       overflow: auto;
+       background-color:#DFE7FF;       
+       font-size:12px ;
+       font-family: helvetica,sans-serif;
+       font-style: normal;
+       font-weight: normal;
+       color: black;
+       text-align: left;
+       display:none;
+       z-index:10;
+       /*opacity:1;
+       filter:alpha(opacity=100);*/
+}
+div.autocomplete {
+  position:relative;
+  background-color:white;
+  border:1px solid #888;
+  margin:0;
+  padding:0;
+  text-align:left;
+  font-size:12px;
+  
+}
+div.autocomplete em {
+       color:blue;
+       font-weight:bold;
+}
+div.autocomplete ul {
+  list-style-type:none;
+  background-color:white;
+  border:1px solid #888;
+  width:375px;
+  margin:0;
+  padding:0;
+}
+div.autocomplete ul li.selected { background-color: lightblue;}
+
+div.autocomplete ul li {
+  list-style-type:none;
+  display:block;
+  margin:0;
+  padding:0px;
+  /*height:32px;*/
+  cursor:pointer;
+}
+span.informal{ font-size:12; }
+
+ul.select_table  {
+       /*padding:5px;*/
+       overflow:hidden;
+       }
+ul.select_table a{
+       width:100%;
+       display:block;
+       background-color:inherit;
+       color: black;
+       text-decoration:none;
+       }
+ul.select_table a:hover{
+       background-color:white;
+       color:black;
+       /*text-decoration:underline;*/
+       }
+ul.select_table li {
+       display:table-row;
+       list-style-type: none;
+       }
+ul.select_table li span {
+       display:table-cell;
+       width:25em;
+       margin: 0px;
+       padding:  0px;
+}
+       
+div.pc_calendar{
+               border:1px groove grey;
+               float:left;
+               
+               }
+div.pc_calendar table {
+       text-align:center;
+               
+}
+div.pc_calendar tr{
+       height:40;
+       
+       
+}
+div.pc_calendar td{
+       width:10em;
+}
+
+div.pc_calendar td.weekend {
+       background-color:#cce0e6;
+       
+}
+div.pc_calendar td.workday{
+       background-color:inherit;
+       
+       
+}
+div.pc_calendar span.day{
+       font-weight: bold;
+       display:block;
+       
+}
+div.pc_calendar span.event{
+       font-weight: bolder;
+       
+}
+span.todo  {
+       text-align: left;
+       background-color:yellow;
+       
+}
+input[disabled], textarea[disabled], option[disabled], optgroup[disabled], 
select[disabled] {
+-moz-user-focus:ignore;
+-moz-user-input:disabled;
+background-color:lightgrey;
+color:black;
+cursor:inherit;
+}
+
+.button {
+       font-size:10;
+       color:white;
+       font-weight: bold;
+       
+       text-decoration:none;
+       font-family: helvetica,sans-serif;
+       background-image: url("image/bg-submit2.gif");
+       background-repeat: repeat-x;
+       background-position: left;
+       
+       border-style:  outset ;
+       border-color:  blue ;
+       border-width:0;
+       padding:2 4 2 4;
+       cursor:pointer;
+       margin:1 2 1 2;
+       -moz-border-radius:2 2;
+       
+}
+.button:hover {
+       cursor:pointer;
+       background-color:white;
+       border-style:  inset ;
+       color:blue;
+       margin:1 2 1 2;
+       }
+       td.tool {
+       border: solid 1px gray;
+       
+       }
+div.topmenu {
+       float:left;
+       width:100%;
+       
+}
+
+h2.dossier {
+       color:darkblue;
+       font-style: italic;
+       
+font-size:20px;
+margin:0;
+padding:0;
+text-align:center;
+}
+a#anchorbutton {
+       font-size:10;
+       color:white;
+       font-weight: bold;
+       
+       text-decoration:none;
+       font-family: helvetica,sans-serif;
+       background-image: url("image/bg-submit3.gif");
+       background-repeat: repeat-x;
+       background-position: left;
+       
+       border-style:  outset ;
+       border-color:  blue ;
+       border-width:1;
+       padding:2 4 2 4;
+       cursor:pointer;
+       margin:1 2 1 2;
+       -moz-border-radius:2 2;
+       
+}
+a#anchorbutton:hover {
+       cursor:pointer;
+       background-color:white;
+       border-style:  inset ;
+       color:blue;
+       margin:1 2 1 2;
+       }
+/* </style> */
+div.add_todo_list { 
+                    border:1px solid blue;
+                    display:none;
+                    background-color:#BFD0FF;
+                    padding:3;
+                    position:absolute;
+                    text-align:left;
+                    line-height:3em;
+                    z-index:1}
+div.welcome {
+
+}
+div.gest_name {
+       float:right;
+       margin-right:150;
+       margin-top:15
+}
+h2.gest_name {
+       border-left: 5px solid  #403a8d;
+       border-bottom:1px solid  #b4bbc2;
+               border-top:1px solid  #b4bbc2;
+               border-right:1px solid  #b4bbc2;
+       padding: 5px;
+}
+div.op_detail_frame  {
+  background-color:#e4e7ed; 
+  height:100%; width:100%;
+  
+  
+}
+div.inner_box  {
+  background-color:#e4e7ed;
+ font-size:10;
+  font-family:helvetica,sans-serif;
+  padding:0;
+  margin:0;
+  overflow:hidden;
+  z-index:3;
+  
+position:absolute;
+left:10%;
+
+
+border:1px solid darkblue;     
+
+}
+div.op_detail_title {
+       background-color:grey;
+/*     width:500;*/
+       
+       
+}
+div#div_jrn{ 
+              position:absolute;
+              border:1px solid black;
+               top:15%;left:100;
+              visibility:hidden;
+              z-index:2;
+              width:50em;
+                     background-color:#EDF3FF;
+                     
+}
+ div#div_cat{ 
+              position:absolute;
+              border:1px solid black;
+               top:15%;left:100;
+              visibility:hidden;
+              z-index:2;
+              width:50em;
+             background-color:#EDF3FF;
+                     
+}
+ 
+div.divinfo
+{  
color:red;text-align:right;display:block;width:30em;height:13;font-weight:bold}
+
+div#search_form
+{ 
+              position:absolute;
+              border:1px solid black;
+              top:15%;left:100;
+              margin-left:25%
+              z-index:2;
+              width:50%;
+              display:none;
+             background-color:#e4e7ed;
+}
+
+table.result td 
+{
+       padding-left:5px;
+       padding-right:5px;
+}
+table.info_op
+{
+       font-size:18;
+       margin-right:30%;
+       width:20%;
+       
+}
+table.info_op tr
+{
+font-size:14;
+background:white;
+}
+h2#jrn_name
+{
+       margin-right:30%;
+       float: right;
+       
+}
+tr.footer{
+       font-size:14;
+       font-style: italic;
+       font-weight: bold;
+       
+}
+span.remain {
+       font-weight: bold;
+       color:black;
+       }
+       
+div#jrn_name_div
+{
+       float: right;
+       margin-right:150;
+       
+       
+}
+#predef_form {
+       margin-left:20%;
+       width:60%;
+       
+}
+#direct
+{
+       display:inline;
+       float:right;
+       
+       
+}
+.direct 
+{
+               font-size:10px;
+          border:groove 1px #000000;
+       margin:1px;
+}
+div#wait_box
+{
+  background-color:#F1E6E6;
+ font-size:10;
+  font-family:helvetica,arial,sans-serif;
+  padding:0;
+  margin:0;
+  overflow:hidden;
+  z-index:10;
+  
+position:absolute;
+left:30%;
+top:30%;
+
+
+border:1px solid darkblue;     
+
+}
+#wait_box h2
+{
+color:black;
+text-align:center;
+}
+div#div_jrnsearch_op{ 
+              
+              border:1px solid black;
+              display:none;
+              width:50em;
+                     background-color:#EDF3FF;
+                     
+}
\ No newline at end of file

Modified: phpcompta/trunk/html/style-light.css
===================================================================
--- phpcompta/trunk/html/style-light.css        2011-11-10 12:58:09 UTC (rev 
4325)
+++ phpcompta/trunk/html/style-light.css        2011-11-10 15:49:57 UTC (rev 
4326)
@@ -3,6 +3,7 @@
 BODY {
   background-color:#EDF3FF;
  font-size:10;
+ color:blue;
   font-family:helvetica,arial,sans-serif;
   padding: 0px 10px 0px 10px ;
   margin:0;
@@ -18,24 +19,24 @@
   width:100%;
    border-spacing:  0px;
    border-collapse:collapse;
-   
+
 }
 table.resultfooter tfoot {
        font-size:110%;
        font-weight: bold;
-       
-       
+
+
 }
-table.result th { 
+table.result th {
   font-weight:bold;
   font-family:helvetica,arial,sans-serif;
- border-bottom:1px solid black; 
+ border-bottom:1px solid black;
  border-top:0;
- 
+
   color:#25238F;
   text-align: left;
   font-style: italic;
-             
+
 }
 
 h2 {
@@ -58,7 +59,7 @@
   padding:0px;
   margin:0px;
 }
-u_redcontent h2.info {
+redcontent h2.info {
   background:#879ed4;
   color:white;
   font-size:14pt;
@@ -74,7 +75,7 @@
   padding:0px;
   margin:0px;
   border:1px solid grey;
-  
+
 }
 
 h3.info {
@@ -105,10 +106,10 @@
 
 div.u_tmenu {
   margin-top:0px;
-  width:100%;  
+  width:100%;
  /* background-color:#879ED4; */
-  
-  
+
+
 }
 div.u_subtmenu {
   background-color:white       ;
@@ -119,12 +120,12 @@
 }
 div.u_tmenu div.u_tool {
           float:left;
-          
+
 }
 div.u_tool {
        float:left;
        width:  100%;
-       
+
        }
 div.u_tool div.name {
        float:left;
@@ -134,12 +135,12 @@
        float:right;
        margin-right:10px;
        text-align:right;
-       
+
 }
 
 div.u_subt2menu {
 background-color:lightgrey;
-  left:1%;     
+  left:1%;
 
 }
 div.lmenu {
@@ -170,38 +171,38 @@
   border-width:1px;
 
 }
-div.u_redcontent{               
-         float:left;    
+div.redcontent{
+         float:left;
         padding-top:7px;
         padding-left:8px;
-         font-size:9px;         
-         font-family:helvetica,arial,sans-serif;        
+         font-size:9px;
+         font-family:helvetica,arial,sans-serif;
         width:75%;
 
 }
-div.content{    
-         float:left;    
+div.content{
+         float:left;
                padding-top:7px;
-         width:96%;             
-         font-family:helvetica,arial,sans-serif;       
+         width:96%;
+         font-family:helvetica,arial,sans-serif;
          clear:both;
          margin-left:2%;
-         
 
+
 }
-div.content30{          
-         float:left;    
+div.content30{
+         float:left;
         padding-top:7px;
-         width:35%;      
-         font-family:helvetica,arial,sans-serif;        
+         width:35%;
+         font-family:helvetica,arial,sans-serif;
 
 }
 div.no span{
        position:static;
-       font-family:helvetica,arial,sans-serif; 
+       font-family:helvetica,arial,sans-serif;
        font-weight:bold;
-       color:red;      
-       
+       color:red;
+
 }
 
 table.document {
@@ -224,7 +225,7 @@
 .error {
 width:60%;
 margin-left:20%;
-color:white;  
+color:white;
 background-color:red;
 text-align: center;
 font-weight: bolder;
@@ -235,7 +236,7 @@
        border:0;
        text-align:center
 }
-td.mshort { 
+td.mshort {
   height:15px;
   width:60px;
   text-align:center;
@@ -246,7 +247,7 @@
 td.mtitle {
        text-align:center;
        width:95px;
-        height :30px; 
+        height :30px;
        font-size:10px;
     background-color:#DDE6FF;
     border:1px solid #99B1DF;
@@ -263,11 +264,11 @@
        font-size:10px;
        border-style:groove
 }
-span.odd { 
+span.odd {
   background-color:#ECF3FF;
   display:block;
  }
-span.even { 
+span.even {
   background-color:#DDE6FF;
   display:block;
  }
@@ -275,7 +276,7 @@
 tr.odd {
        background-color:#DDE6FF;
        font-size:10px;
-  border-width:0px;            
+  border-width:0px;
 }
 tr {
        font-size:10px;
@@ -308,16 +309,16 @@
   text-decoration:none;
   display:inline;
  color: #0000ff;
-       
+
 }
 a.mtitle:hover {
   font-size:10px;
   text-decoration:none;
   display:inline;
-  
+
  color: darkblue;
 background-color:#5D90CD;
-       
+
 }
 td.selectedcell a.mtitle {
  font-size:1em;
@@ -330,7 +331,7 @@
   text-decoration:none;
   display:block;
    color: #202267;
-       
+
 }
 tr.odd:hover td
 {
@@ -338,7 +339,7 @@
   background-color: #a9d6e4;
   color:white;
 }
-tr.even:hover td 
+tr.even:hover td
 {
   text-decoration:none;
   background-color: #a9d6e4;
@@ -400,7 +401,7 @@
     color: #0000ff;
 }
 
-a.detail:hover   
+a.detail:hover
 {
   font-size:9px;
   font-family:helvetica,arial,sans-serif;
@@ -414,7 +415,7 @@
         display:inline;
         padding:1em 1em;
 }
-div.u_redcontent a {
+div.redcontent a {
   font-family:helvetica,arial,sans-serif;
   text-decoration: none;
   display: block;
@@ -422,7 +423,7 @@
 
 }
 
-div.u_redcontent a:hover {
+div.redcontent a:hover {
   font-family:helvetica,arial,sans-serif;
     color: white;
     background-color: rgb(93, 144, 205);
@@ -436,7 +437,7 @@
   display: block;
   color: #0000ff;
 padding: 1px ;
-       
+
 }
 
 
@@ -449,16 +450,16 @@
 
 }
 
-div.u_redcontent a.mtitle {
+div.redcontent a.mtitle {
   text-decoration:none;
   display:inline;
 
-  
+
   color:black;
 
 }
 
-div.u_redcontent a.mtitle:hover {
+div.redcontent a.mtitle:hover {
   text-decoration:none;
   display:inline;
   color:white;
@@ -471,9 +472,9 @@
   text-decoration:none;
   display:inline;
   color:#0000ff;
-    
 
 
+
 }
 
 div.content a.mtitle:hover {
@@ -481,17 +482,17 @@
   display:inline;
   background-color:darkblue;
   color:white;
- 
 
+
 }
-div.u_redcontent input.text {
+div.redcontent input.text {
    font-family:helvetica,arial,sans-serif;
   font-weight:normal;
   border-color:336699;
   border-style:solid;
-  background-color:orange;  
+  background-color:orange;
   border-width:1px;
-  color:#0000ff; 
+  color:#0000ff;
 }
 div.content input.text {
    font-family:helvetica,arial,sans-serif;
@@ -500,18 +501,18 @@
   border-style:solid;
   border-width:1px;
   background-color:orange;
-  color:#0000ff; 
+  color:#0000ff;
 }
 
 
 
-div.u_redcontent input:focus {
+div.redcontent input:focus {
   background-color:orange;
 }
 div.content input:focus {
   background-color:orange;
 }
-div.u_redcontent textarea:focus {
+div.redcontent textarea:focus {
 background-color: orange;
 }
 .document {
@@ -533,16 +534,19 @@
           border:groove 1px #0000ff;
        margin:1px;
 }
+.input_text:hover {
+       background-color: yellow;
+}
 legend {
 font-weight: bold;
 font-style: italic;
 font-size: 120% ;
-       
+
 }
-fieldset fieldset legend { 
+fieldset fieldset legend {
         font-size:110%;
         color:grey;
-        }      
+        }
 select {
 border: 1px solid #0000ff;
 margin:2px;
@@ -561,12 +565,12 @@
           visibility:hidden;
           z-index:2;
           width:25em;
-       
+
 }
 
 span.action {
        height:3em;
-       
+
 }
 td.num {
        text-align:right;
@@ -580,7 +584,7 @@
   padding-right:3px;
   text-decoration:none;
   font-size:14px;
-  
+
   display:inline;
   color:black;
   background-color:lightgrey;
@@ -602,7 +606,7 @@
        z-index:1;
        /*background-color:lightgrey;*/
        /*background-color: rgba(203, 203,203, 0.2);*/
-       display:none;   
+       display:none;
 }
 
 div.popup_border_title {
@@ -610,7 +614,7 @@
        top:20%;
        left:10%;
        width:60%;
-       height:80%; 
+       height:80%;
        /*background:lightgrey;*/
        z-index:10;
        /*border:dotted 1px black;*/
@@ -621,19 +625,19 @@
        font-style: italic;
        font-weight: bolder;
        text-align:center;
-       /*border-bottom: 2px solid #201e87;*/   
+       /*border-bottom: 2px solid #201e87;*/
        color: white;
        display:none;
        /*opacity:1;
        filter:alpha(opacity=100);*/
-       
+
        }
 div.popup_border_notitle {
        position:absolute;
        top:20%;
        left:20%;
        width:60%;
-       height:80% ; 
+       height:80% ;
        /*background:lightgrey;*/
        z-index:10;
        /*border:dotted 1px black;*/
@@ -657,9 +661,9 @@
        left:0;
        right:0;
        width:100%;
-       height:96%; 
+       height:96%;
        overflow: auto;
-  background-color:#e4e7ed;    
+  background-color:#e4e7ed;
        font-size:10px ;
        font-family: helvetica,arial,sans-serif;
        font-style: normal;
@@ -678,11 +682,11 @@
   padding:0;
   text-align:left;
   font-size:12px;
-  
+
 }
 span.informal {
     font-size:12px;
-    
+
  }
 div.autocomplete em {
        color:#0000ff;
@@ -706,7 +710,7 @@
   padding:0px;
   /*height:32px;*/
   border:1px dotted  #e6e6fa;
-  
+
   cursor:pointer;
 }
 
@@ -736,20 +740,20 @@
        margin: 0px;
        padding:  0px;
 }
-       
+
 div.pc_calendar{
                border:1px groove grey;
                float:left;
-               
+
                }
 div.pc_calendar table {
        text-align:center;
-               
+
 }
 div.pc_calendar tr{
        height:40;
-       
-       
+
+
 }
 div.pc_calendar td{
        width:10em;
@@ -757,26 +761,26 @@
 
 div.pc_calendar td.weekend {
        background-color:#cce0e6;
-       
+
 }
 div.pc_calendar td.workday{
        background-color:inherit;
-       
-       
+
+
 }
 div.pc_calendar span.day{
        font-weight: bold;
        display:block;
-       
+
 }
 div.pc_calendar span.event{
        font-weight: bolder;
-       
+
 }
 span.todo  {
        text-align: left;
        background-color:yellow;
-       
+
 }
 input[disabled], textarea[disabled], option[disabled], optgroup[disabled], 
select[disabled] {
 -moz-user-focus:ignore;
@@ -786,17 +790,17 @@
 cursor:inherit;
 }
 
-.button {
+.button , a.button,div.content a.button {
        font-size:10;
        color:white;
        font-weight: bold;
-       
+
        text-decoration:none;
        font-family: helvetica,arial,sans-serif;
        background-image: url("image/bg-submit3.gif");
        background-repeat: repeat-x;
        background-position: left;
-       
+
        border-style:  outset ;
        border-color:  #0000ff ;
        border-width:0;
@@ -804,9 +808,9 @@
        cursor:pointer;
        margin:1 2 1 2;
        -moz-border-radius:2 2;
-       
+
 }
-.button:hover {
+.button:hover, a.button:hover,div.content a.button:hover  {
        cursor:pointer;
        background-color:white;
        border-style:  inset ;
@@ -815,18 +819,18 @@
        }
        td.tool {
        border: solid 1px gray;
-       
+
        }
 div.topmenu {
        float:left;
        width:100%;
-       
+
 }
 
 h2.dossier {
        color:darkblue;
        font-style: italic;
-       
+
 font-size:20px;
 margin:0;
 padding:0;
@@ -836,13 +840,13 @@
        font-size:10;
        color:white;
        font-weight: bold;
-       
+
        text-decoration:none;
        font-family: helvetica,arial,sans-serif;
        background-image: url("image/bg-submit3.gif");
        background-repeat: repeat-x;
        background-position: left;
-       
+
        border-style:  outset ;
        border-color:  #0000ff ;
        border-width:1;
@@ -850,18 +854,18 @@
        cursor:pointer;
        margin:1 2 1 2;
        -moz-border-radius:2 2;
-       
+
 }
 a#anchorbutton:hover {
        cursor:pointer;
        background-color:white;
        border-style:  inset ;
        color:#0000ff;
-       
+
        margin:1 2 1 2;
        }
 /* </style> */
-div.add_todo_list { 
+div.add_todo_list {
                     border:1px solid #0000ff;
                     display:none;
                     background-color:#BFD0FF;
@@ -886,10 +890,10 @@
        padding: 5px;
 }
 div.op_detail_frame  {
-  background-color:#e4e7ed; 
+  background-color:#e4e7ed;
   height:100%; width:100%;
-  
-  
+
+
 }
 div.inner_box  {
   background-color:#e4e7ed;
@@ -899,21 +903,21 @@
   margin:0;
   overflow:hidden;
   z-index:3;
-  
+
 position:absolute;
 left:10%;
 
 
-border:1px solid darkblue;     
+border:1px solid darkblue;
 
 }
 div.op_detail_title {
        background-color:grey;
 /*     width:500;*/
-       
-       
+
+
 }
-div#div_jrn{ 
+div#div_jrn{
               position:absolute;
               border:1px solid black;
                top:15%;left:100;
@@ -921,9 +925,9 @@
               z-index:2;
               width:50em;
                      background-color:#EDF3FF;
-                     
+
 }
- div#div_cat{ 
+ div#div_cat{
               position:absolute;
               border:1px solid black;
                top:15%;left:100;
@@ -931,15 +935,15 @@
               z-index:2;
               width:50em;
              background-color:#EDF3FF;
-                     
+
 }
- 
+
 div.divinfo
 {  
color:red;text-align:right;display:block;width:30em;height:13;font-weight:bold}
 
 
 div#search_form
-{ 
+{
               position:absolute;
               border:1px solid black;
               top:15%;left:100;
@@ -949,7 +953,7 @@
               display:none;
              background-color:#e4e7ed;
 }
-table.result td 
+table.result td
 {
        padding-left:5px;
        padding-right:5px;
@@ -959,7 +963,7 @@
        margin-left: 30%;
        margin-right: 30%;
        width:20%;
-       
+
 }
 table.info_op tr
 {
@@ -971,7 +975,7 @@
 {
        padding:0 ;
        margin:0;
-       
+
        float:right;
        font-size:18;
        display: inline;
@@ -981,7 +985,7 @@
        font-size:14;
        font-style: italic;
        font-weight: bold;
-       
+
 }
 span.remain {
        font-weight: bold;
@@ -991,22 +995,22 @@
 {
        float: right;
        margin-right:150;
-       
-       
+
+
 }
 #predef_form {
        margin-left:20%;
        width:60%;
-       
+
 }
 #direct
 {
        display:inline;
        float:right;
-       
-       
+
+
 }
-.direct 
+.direct
 {
                font-size:6px;
           border:groove 1px #33378d;
@@ -1022,13 +1026,13 @@
   margin:0;
   overflow:hidden;
   z-index:10;
-  
+
 position:absolute;
 left:30%;
 top:30%;
 
 
-border:1px solid darkblue;     
+border:1px solid darkblue;
 
 }
 #wait_box h2
@@ -1036,11 +1040,14 @@
 color:black;
 text-align:center;
 }
-div#div_jrnsearch_op{ 
-              
+div#div_jrnsearch_op{
+
               border:1px solid black;
               display:none;
               width:50em;
                      background-color:#EDF3FF;
-                     
-}
\ No newline at end of file
+
+}
+ul {
+       padding-left: 100px;
+}

Modified: phpcompta/trunk/html/style-print.css
===================================================================
--- phpcompta/trunk/html/style-print.css        2011-11-10 12:58:09 UTC (rev 
4325)
+++ phpcompta/trunk/html/style-print.css        2011-11-10 15:49:57 UTC (rev 
4326)
@@ -97,7 +97,7 @@
        font-family:sans-serif;
 
 }
-div.u_redcontent{       
+div.redcontent{         
        font-size:7pt;
        font-family:sans-serif;
 }

Modified: phpcompta/trunk/html/style.css
===================================================================
--- phpcompta/trunk/html/style.css      2011-11-10 12:58:09 UTC (rev 4325)
+++ phpcompta/trunk/html/style.css      2011-11-10 15:49:57 UTC (rev 4326)
@@ -6,6 +6,7 @@
   font-family:helvetica,sans-serif;
   padding: 0px 10px 0px 10px ;
   margin:0;
+  color:blue;
 }
 .notice {
                color:red;
@@ -18,26 +19,26 @@
   width:100%;
    border-spacing:  0px;
    border-collapse:collapse;
-   
+
 }
 table.resultfooter tfoot {
        font-size:110%;
        font-weight: bold;
-       
-       
+
+
 }
-table.result th { 
+table.result th {
   font-weight:bold;
   font-family:helvetica,sans-serif;
- border-bottom:2px solid blue; 
+ border-bottom:2px solid blue;
  border-top:0;
- 
+
   color:#25238F;
   text-align: left;
             // background-color:#EDF3FF;
-             
+
              font-style: italic;
-             
+
 }
 
 h2 {
@@ -60,7 +61,7 @@
   padding:0px;
   margin:0px;
 }
-u_redcontent h2.info {
+redcontent h2.info {
   background:#879ed4;
   color:white;
   font-size:14pt;
@@ -76,7 +77,7 @@
   padding:0px;
   margin:0px;
   border:1px solid grey;
-  
+
 }
 
 h3.info {
@@ -107,10 +108,10 @@
 
 div.u_tmenu {
   margin-top:0px;
-  width:100%;  
+  width:100%;
  /* background-color:#879ED4; */
-  
-  
+
+
 }
 div.u_subtmenu {
   background-color:white       ;
@@ -121,7 +122,7 @@
 }
 div.u_tmenu div.u_tool {
           float:left;
-          
+
 }
 div.u_tool {
        float:left;
@@ -135,12 +136,12 @@
        float:right;
        margin-right:10px;
        text-align:right;
-       
+
 }
 
 div.u_subt2menu {
 background-color:lightgrey;
-  left:1%;     
+  left:1%;
 
 }
 div.lmenu {
@@ -172,40 +173,40 @@
   border-width:1px;
 
 }
-div.u_redcontent{       
-   
-         float:left;    
+div.redcontent{
+
+         float:left;
         padding-top:7px;
         padding-left:8px;
-         font-size:9px;         
-         font-family:helvetica,sans-serif;      
+         font-size:9px;
+         font-family:helvetica,sans-serif;
         width:75%;
 
 }
-div.content{    
+div.content{
 
-         float:left;    
+         float:left;
                padding-top:7px;
-         width:100%;            
-         font-family:helvetica,sans-serif;     
+         width:100%;
+         font-family:helvetica,sans-serif;
          clear:both;
-          
 
+
 }
-div.content30{          
-        
-         float:left;    
+div.content30{
+
+         float:left;
         padding-top:7px;
-         width:35%;      
-         font-family:helvetica,sans-serif;      
+         width:35%;
+         font-family:helvetica,sans-serif;
 
 }
 div.no span{
        position:static;
-       font-family:helvetica,sans-serif;       
+       font-family:helvetica,sans-serif;
        font-weight:bold;
-       color:red;      
-       
+       color:red;
+
 }
 
 table.document {
@@ -230,7 +231,7 @@
 margin-left:20%;
 text-align: center;
 
-color:white;  
+color:white;
 background-color:red;
 font-weight: bolder;
 font-size:120%;
@@ -240,7 +241,7 @@
        border:0;
        text-align:center
 }
-td.mshort { 
+td.mshort {
   height:15px;
   width:60px;
   text-align:center;
@@ -251,7 +252,7 @@
 td.mtitle {
        text-align:center;
        width:95px;
-        height :30px; 
+        height :30px;
        font-size:10px;
     background-color:#DDE6FF;
     border:1px solid #99B1DF;
@@ -268,11 +269,11 @@
        font-size:10px;
        border-style:groove
 }
-span.odd { 
+span.odd {
   background-color:#ECF3FF;
   display:block;
  }
-span.even { 
+span.even {
   background-color:#DDE6FF;
   display:block;
  }
@@ -311,16 +312,16 @@
   text-decoration:none;
   display:inline;
  color: blue;
-       
+
 }
 a.mtitle:hover {
   font-size:10px;
   text-decoration:none;
   display:inline;
-  
+
  color: darkblue;
 background-color:#5D90CD;
-       
+
 }
 td.selectedcell a.mtitle {
  font-size:1em;
@@ -333,7 +334,7 @@
   text-decoration:none;
   display:block;
    color: #202267;
-       
+
 }
 tr.odd:hover td
 {
@@ -341,7 +342,7 @@
   background-color: #a9d6e4;
   color:white;
 }
-tr.even:hover td 
+tr.even:hover td
 {
   text-decoration:none;
   background-color: #a9d6e4;
@@ -403,7 +404,7 @@
     color: blue;
 }
 
-a.detail:hover   
+a.detail:hover
 {
   font-size:9px;
   font-family:helvetica,sans-serif;
@@ -417,7 +418,7 @@
         display:inline;
         padding:1em 1em;
 }
-div.u_redcontent a {
+div.redcontent a {
   font-family:helvetica,sans-serif;
   text-decoration: none;
   display: block;
@@ -425,7 +426,7 @@
 
 }
 
-div.u_redcontent a:hover {
+div.redcontent a:hover {
   font-family:helvetica,sans-serif;
     color: white;
     background-color: rgb(93, 144, 205);
@@ -439,7 +440,7 @@
   display: block;
   color: blue;
 padding: 1px ;
-       
+
 }
 
 
@@ -452,16 +453,16 @@
 
 }
 
-div.u_redcontent a.mtitle {
+div.redcontent a.mtitle {
   text-decoration:none;
   display:inline;
 
-  
+
   color:black;
 
 }
 
-div.u_redcontent a.mtitle:hover {
+div.redcontent a.mtitle:hover {
   text-decoration:none;
   display:inline;
   color:white;
@@ -474,9 +475,9 @@
   text-decoration:none;
   display:inline;
   color:blue;
-    
 
 
+
 }
 
 div.content a.mtitle:hover {
@@ -484,17 +485,17 @@
   display:inline;
   background-color:darkblue;
   color:white;
- 
 
+
 }
-div.u_redcontent input.text {
+div.redcontent input.text {
    font-family:helvetica,sans-serif;
   font-weight:normal;
   border-color:336699;
   border-style:solid;
-  background-color:orange;  
+  background-color:orange;
   border-width:1px;
-  color:blue; 
+  color:blue;
 }
 div.content input.text {
    font-family:helvetica,sans-serif;
@@ -503,18 +504,18 @@
   border-style:solid;
   border-width:1px;
   background-color:orange;
-  color:blue; 
+  color:blue;
 }
 
 
 
-div.u_redcontent input:focus {
+div.redcontent input:focus {
   background-color:orange;
 }
 div.content input:focus {
   background-color:orange;
 }
-div.u_redcontent textarea:focus {
+div.redcontent textarea:focus {
 background-color: orange;
 }
 .document {
@@ -536,16 +537,21 @@
           border:groove 1px blue;
        margin:1px;
 }
+.input_text:hover {
+       border:groove 1px blue;
+       margin:1px;
+       background-color: orange;
+}
 legend {
 font-weight: bold;
 font-style: italic;
 font-size: 120% ;
-       
+
 }
-fieldset fieldset legend { 
+fieldset fieldset legend {
         font-size:110%;
         color:grey;
-        }      
+        }
 select {
 border: 1px solid blue;
 margin:2px;
@@ -564,12 +570,12 @@
           visibility:hidden;
           z-index:2;
           width:25em;
-       
+
 }
 
 span.action {
        height:3em;
-       
+
 }
 td.num {
        text-align:right;
@@ -583,7 +589,7 @@
   padding-right:3px;
   text-decoration:none;
   font-size:14px;
-  
+
   display:inline;
   color:black;
   background-color:lightgrey;
@@ -604,8 +610,8 @@
        height:100%;
        z-index:1;
        /*background-color:lightgrey;*/
-       
-       display:none;   
+
+       display:none;
 }
 
 div.popup_border_title {
@@ -624,19 +630,19 @@
        font-style: italic;
        font-weight: bolder;
        text-align:center;
-       /*border-bottom: 2px solid #201e87;*/   
+       /*border-bottom: 2px solid #201e87;*/
        color: white;
        display:none;
        /*opacity:1;
        filter:alpha(opacity=100);*/
-       
+
        }
 div.popup_border_notitle {
        position:absolute;
        top:20%;
        left:20%;
        width:60%;
-       height:80% ; 
+       height:80% ;
        /*background:lightgrey;*/
        z-index:10;
        /*border:dotted 1px black;*/
@@ -662,7 +668,7 @@
        width:100%;
        height:96%;
        overflow: auto;
-       background-color:#DFE7FF;       
+       background-color:#DFE7FF;
        font-size:10px ;
        font-family: helvetica,sans-serif;
        font-style: normal;
@@ -682,7 +688,7 @@
   padding:0;
   text-align:left;
   font-size:12px;
-  
+
 }
 div.autocomplete em {
        color:blue;
@@ -734,20 +740,20 @@
        margin: 0px;
        padding:  0px;
 }
-       
+
 div.pc_calendar{
                border:1px groove grey;
                float:left;
-               
+
                }
 div.pc_calendar table {
        text-align:center;
-               
+
 }
 div.pc_calendar tr{
        height:40;
-       
-       
+
+
 }
 div.pc_calendar td{
        width:10em;
@@ -755,26 +761,26 @@
 
 div.pc_calendar td.weekend {
        background-color:#cce0e6;
-       
+
 }
 div.pc_calendar td.workday{
        background-color:inherit;
-       
-       
+
+
 }
 div.pc_calendar span.day{
        font-weight: bold;
        display:block;
-       
+
 }
 div.pc_calendar span.event{
        font-weight: bolder;
-       
+
 }
 span.todo  {
        text-align: left;
        background-color:yellow;
-       
+
 }
 input[disabled], textarea[disabled], option[disabled], optgroup[disabled], 
select[disabled] {
 -moz-user-focus:ignore;
@@ -784,17 +790,17 @@
 cursor:inherit;
 }
 
-.button {
+.button, a.button,div.content a.button {
        font-size:10;
        color:white;
        font-weight: bold;
-       
+
        text-decoration:none;
        font-family: helvetica,sans-serif;
        background-image: url("image/bg-submit2.gif");
        background-repeat: repeat-x;
        background-position: left;
-       
+
        border-style:  outset ;
        border-color:  blue ;
        border-width:0;
@@ -802,9 +808,9 @@
        cursor:pointer;
        margin:1 2 1 2;
        -moz-border-radius:2 2;
-       
+
 }
-.button:hover {
+.button:hover,a.button:hover,div.content a.button:hover  {
        cursor:pointer;
        background-color:white;
        border-style:  inset ;
@@ -813,18 +819,18 @@
        }
        td.tool {
        border: solid 1px gray;
-       
+
        }
 div.topmenu {
        float:left;
        width:100%;
-       
+
 }
 
 h2.dossier {
        color:darkblue;
        font-style: italic;
-       
+
 font-size:20px;
 margin:0;
 padding:0;
@@ -834,13 +840,13 @@
        font-size:10;
        color:white;
        font-weight: bold;
-       
+
        text-decoration:none;
        font-family: helvetica,sans-serif;
        background-image: url("image/bg-submit3.gif");
        background-repeat: repeat-x;
        background-position: left;
-       
+
        border-style:  outset ;
        border-color:  blue ;
        border-width:1;
@@ -848,7 +854,7 @@
        cursor:pointer;
        margin:1 2 1 2;
        -moz-border-radius:2 2;
-       
+
 }
 a#anchorbutton:hover {
        cursor:pointer;
@@ -858,7 +864,7 @@
        margin:1 2 1 2;
        }
 /* </style> */
-div.add_todo_list { 
+div.add_todo_list {
                     border:1px solid blue;
                     display:none;
                     background-color:#BFD0FF;
@@ -883,10 +889,10 @@
        padding: 5px;
 }
 div.op_detail_frame  {
-  background-color:#e4e7ed; 
+  background-color:#e4e7ed;
   height:100%; width:100%;
-  
-  
+
+
 }
 div.inner_box  {
   background-color:#e4e7ed;
@@ -896,21 +902,21 @@
   margin:0;
   overflow:hidden;
   z-index:3;
-  
+
 position:absolute;
 left:10%;
 
 
-border:1px solid darkblue;     
+border:1px solid darkblue;
 
 }
 div.op_detail_title {
        background-color:grey;
 /*     width:500;*/
-       
-       
+
+
 }
-div#div_jrn{ 
+div#div_jrn{
               position:absolute;
               border:1px solid black;
                top:15%;left:100;
@@ -918,9 +924,9 @@
               z-index:2;
               width:50em;
                      background-color:#EDF3FF;
-                     
+
 }
- div#div_cat{ 
+ div#div_cat{
               position:absolute;
               border:1px solid black;
                top:15%;left:100;
@@ -928,14 +934,14 @@
               z-index:2;
               width:50em;
              background-color:#EDF3FF;
-                     
+
 }
- 
+
 div.divinfo
 {  
color:red;text-align:right;display:block;width:30em;height:13;font-weight:bold}
 
 div#search_form
-{ 
+{
               position:absolute;
               border:1px solid black;
               top:15%;left:100;
@@ -946,7 +952,7 @@
              background-color:#e4e7ed;
 }
 
-table.result td 
+table.result td
 {
        padding-left:5px;
        padding-right:5px;
@@ -956,7 +962,7 @@
        font-size:18;
        margin-right:30%;
        width:20%;
-       
+
 }
 table.info_op tr
 {
@@ -967,39 +973,39 @@
 {
        margin-right:30%;
        float: right;
-       
+
 }
 tr.footer{
        font-size:14;
        font-style: italic;
        font-weight: bold;
-       
+
 }
 span.remain {
        font-weight: bold;
        color:black;
        }
-       
+
 div#jrn_name_div
 {
        float: right;
        margin-right:150;
-       
-       
+
+
 }
 #predef_form {
        margin-left:20%;
        width:60%;
-       
+
 }
 #direct
 {
        display:inline;
        float:right;
-       
-       
+
+
 }
-.direct 
+.direct
 {
                font-size:6px;
           border:groove 1px #000000;
@@ -1014,13 +1020,13 @@
   margin:0;
   overflow:hidden;
   z-index:10;
-  
+
 position:absolute;
 left:30%;
 top:30%;
 
 
-border:1px solid darkblue;     
+border:1px solid darkblue;
 
 }
 #wait_box h2
@@ -1028,11 +1034,29 @@
 color:black;
 text-align:center;
 }
-div#div_jrnsearch_op{ 
-              
+div#div_jrnsearch_op{
+
               border:1px solid black;
               display:none;
               width:50em;
                      background-color:#EDF3FF;
-                     
+
+}
+ul {
+       padding-left: 110px;
+}
+a.line,div.content a.line
+{
+font-size:110%;
+  text-decoration:underline;
+  display:inline;
+ color: #0000ff;
+}
+a.line:hover,div_content a.line
+{
+font-size:110%;
+  text-decoration:underline;
+  display:inline;
+  color: #0000ff;
+     background-color: rgb(93, 144, 205);
 }
\ No newline at end of file

Modified: phpcompta/trunk/include/ac_common.php
===================================================================
--- phpcompta/trunk/include/ac_common.php       2011-11-10 12:58:09 UTC (rev 
4325)
+++ phpcompta/trunk/include/ac_common.php       2011-11-10 15:49:57 UTC (rev 
4326)
@@ -384,7 +384,7 @@
     }
     else
     {
-       echo '<div class="u_redcontent">';
+       echo '<div class="redcontent">';
        echo '<h2 class="error">' . _(' Cette action ne vous est pas autorisée 
Contactez votre responsable') . '</h2>';
        echo '</div>';
     }
@@ -754,7 +754,7 @@
                echo '</div>';
                echo '</div>';
                echo '<div class="content">';
-               echo_warning("Module inexistant [$selected");
+               echo_warning("Module inexistant [$selected ] ");
                echo '</div>';
                exit();
        }
@@ -857,10 +857,13 @@
         */
                $file = $cn->get_array("select 
me_file,me_parameter,me_javascript,me_type
                from menu_ref
+               join profile_menu using (me_code)
+               join profile_user using (p_id)
                where
                me_code=$1 and
+               user_name=$2 and
                (me_file is not null or trim(me_file) <>'' or
-               me_javascript is not null or trim (me_javascript) <> '')", 
array($module[$idx]));
+               me_javascript is not null or trim (me_javascript) <> '')", 
array($module[$idx],$g_user->login));
 
                if (count($file)==0)
                {

Modified: phpcompta/trunk/include/anc_od.inc.php
===================================================================
--- phpcompta/trunk/include/anc_od.inc.php      2011-11-10 12:58:09 UTC (rev 
4325)
+++ phpcompta/trunk/include/anc_od.inc.php      2011-11-10 15:49:57 UTC (rev 
4326)
@@ -80,7 +80,7 @@
     $a=new Anc_Operation($cn);
 
     echo '
-    <div class="u_redcontent"  style="margin-left:12%">
+    <div class="redcontent"  style="margin-left:12%">
     <form method= "get">
     ';
 
@@ -108,7 +108,7 @@
     echo $w->input();
     echo 'P&eacute;riode  '.HtmlInput::submit('gl_submit','Valider').'</form>';
 
-    echo '<div class="u_redcontent"  style="margin-left:12%">';
+    echo '<div class="redcontent"  style="margin-left:12%">';
     echo $a->html_table($current);
     echo '</div>';
     exit();
@@ -118,7 +118,7 @@
     // record the operation and exit
     // and exit
     //-----------------------------
-    echo '<div class="u_redcontent" style="margin-left:12%">'.
+    echo '<div class="redcontent" style="margin-left:12%">'.
     _('Opération sauvée');
     $a=new Anc_Group_Operation($cn);
 
@@ -138,7 +138,7 @@
 
     $wSubmit=new IHidden("p_action","ca_od");
     $wSubmit->table=0;
-    echo '<div class="u_redcontent"  style="margin-left:12%">';
+    echo '<div class="redcontent"  style="margin-left:12%">';
     echo '<form method="post">';
     echo dossier::hidden();
     echo $wSubmit->input();
@@ -157,4 +157,4 @@
 }
 
 ?>
-<div class="u_redcontent">
+<div class="redcontent">

Modified: phpcompta/trunk/include/anc_pa.inc.php
===================================================================
--- phpcompta/trunk/include/anc_pa.inc.php      2011-11-10 12:58:09 UTC (rev 
4325)
+++ phpcompta/trunk/include/anc_pa.inc.php      2011-11-10 15:49:57 UTC (rev 
4326)
@@ -31,7 +31,7 @@
 $str_dossier=Dossier::get();
 //---------------------------------------------------------------------------
 // action
-// Compute the u_redcontent div
+// Compute the redcontent div
 //---------------------------------------------------------------------------
 if ( isset($_REQUEST['sa']))
 {
@@ -43,7 +43,7 @@
         $new=new Anc_Plan($cn);
         if ( $new->isAppend() == true)
         {
-            $ret.= '<div class="u_redcontent">';
+            $ret.= '<div class="redcontent">';
             $ret.= '<h2 class="info">Nouveau plan</h2>';
             $ret.= '<form method="post">';
             $ret.=dossier::hidden();
@@ -55,7 +55,7 @@
         }
         else
         {
-            $ret.= '<div class="u_redcontent">'.
+            $ret.= '<div class="redcontent">'.
                    '<h2 class="info">'.
                    "Maximum de plan analytique est atteint".
                    "</h2></div>";
@@ -89,7 +89,7 @@
 
         $new->get();
 
-        $ret.= '<div class="u_redcontent">';
+        $ret.= '<div class="redcontent">';
         $ret.= '<h2 class="info">Mise &agrave; jour</h2>';
         $ret.= '<form method="post">';
         $ret.=dossier::hidden();
@@ -109,7 +109,7 @@
         $new->name=$_POST['pa_name'];
         $new->description=$_POST['pa_description'];
         $new->update();
-        $ret='<div class="u_redcontent">';
+        $ret='<div class="redcontent">';
         $ret.='<h2 class="info">Mis &agrave; jour</h2>';
         $ret.="</div>";
     }
@@ -119,7 +119,7 @@
         $po=new Anc_Account($cn);
         $po->pa_id=$_REQUEST['pa_id'];
         $wSa=HtmlInput::hidden("sa","po_write");
-        $ret.='<div class="u_redcontent">';
+        $ret.='<div class="redcontent">';
         $ret.='<form method="post">';
         $ret.=dossier::hidden();
         $ret.=$po->form();
@@ -151,7 +151,7 @@
     {
         $po=new Anc_Account($cn,$_GET['po_id']);
         $po->get_by_id();
-        $ret.='<div class="u_redcontent">';
+        $ret.='<div class="redcontent">';
         $ret.='<form method="post">';
         $ret.=dossier::hidden();
 
@@ -188,7 +188,7 @@
         $new=new Anc_Plan($cn,$_REQUEST['pa_id']);
         $new->get();
         $array=$new->get_poste_analytique(" order by po_name");
-        $ret.='<div class="u_redcontent">';
+        $ret.='<div class="redcontent">';
         $ret.='<table style="width:100%;border:solid blue 2px 
;border-style:outset;">';
         $ret.="<tr>";
         $ret.="<th> Nom </td>";
@@ -289,7 +289,7 @@
     echo '</div>';
 }
 //---------------------------------------------------------------------------
-// show the u_redcontent part
+// show the redcontent part
 //
 //
 //---------------------------------------------------------------------------

Modified: phpcompta/trunk/include/cfgledger.inc.php
===================================================================
--- phpcompta/trunk/include/cfgledger.inc.php   2011-11-10 12:58:09 UTC (rev 
4325)
+++ phpcompta/trunk/include/cfgledger.inc.php   2011-11-10 15:49:57 UTC (rev 
4326)
@@ -116,7 +116,7 @@
                try
                {
                        $ledger->id=$_REQUEST['p_jrn'];
-                       echo '<div class="u_redcontent">';
+                       echo '<div class="redcontent">';
                        echo '<form method="POST">';
                        echo $ledger->display_ledger();
                        echo '<INPUT TYPE="SUBMIT" class="button" VALUE="Sauve" 
name="update">
@@ -131,7 +131,7 @@
                }
                break;
        case 'add': /* Add a new ledger */
-               echo '<div class="u_redcontent">';
+               echo '<div class="redcontent">';
                echo '<FORM METHOD="POST">';
                $ledger->input_new();
                echo HtmlInput::submit('add','Sauver');

Modified: phpcompta/trunk/include/class_acc_ledger_fin.php
===================================================================
--- phpcompta/trunk/include/class_acc_ledger_fin.php    2011-11-10 12:58:09 UTC 
(rev 4325)
+++ phpcompta/trunk/include/class_acc_ledger_fin.php    2011-11-10 15:49:57 UTC 
(rev 4326)
@@ -363,9 +363,9 @@
                                 ;
             $wConcerned=new IConcerned("e_concerned".$i,${"e_concerned".$i});
             $wConcerned->setReadOnly($pview_only);
-            $wConcerned->extra=0;
+            $wConcerned->amount_id="e_other".$i."_amount";
 
-            $wConcerned->extra2='paid';
+            $wConcerned->paid='paid';
             $array[$i]['concerned']=$wConcerned->input();
         }
 

Modified: phpcompta/trunk/include/class_extension.php
===================================================================
--- phpcompta/trunk/include/class_extension.php 2011-11-10 12:58:09 UTC (rev 
4325)
+++ phpcompta/trunk/include/class_extension.php 2011-11-10 15:49:57 UTC (rev 
4326)
@@ -47,31 +47,11 @@
     {
         // Verify that the elt we want to add is correct
         if (trim($this->me_code)=="") throw new Exception('Le code ne peut pas 
être vide');
-        if (trim($this->me_name)=="") throw new Exception('Le nom ne peut pas 
être vide');
+        if (trim($this->me_menu)=="") throw new Exception('Le nom ne peut pas 
être vide');
         if (trim($this->me_file)=="") throw new Exception('Chemin incorrect');
         if 
(file_exists('..'.DIRECTORY_SEPARATOR.'include'.DIRECTORY_SEPARATOR.'ext'.DIRECTORY_SEPARATOR.$this->me_file)
 == false)
             throw new Exception ('Extension non trouvée, le chemin est-il 
correct?');
     }
-    /*!\brief transform an array into a valid object
-     *\param $array with the value
-     *\verbatim
-    code => ''
-    desc =>''
-    enable=>''
-    file=>''
-    actif=>''
-    ex_id=>''
-    \endverbatim
-     *\see ajax_extension.php
-     */
-    function fromArray($p_array)
-    {
-        $this->me_menu=$p_array['name'];
-        $this->me_code=$p_array['code'];
-        $this->me_desc=$p_array['desc'];
-        $this->me_file=$p_array['file'];
-               $this->me_type='PL';
-    }
     /address@hidden search a extension, the what is the column (extends_code */
     function search($p_what)
     {
@@ -119,5 +99,61 @@
             exit();
         }
     }
+       function insert_plugin()
+       {
+               try
+               {
+                       $this->cn->start();
+                       $this->verify();
+                       // check if duplicate
+                       $this->me_code = strtoupper($this->me_code);
+                       $count = $this->cn->get_value("select count(*) from 
menu_ref where me_code=$1", array($this->me_code));
+                       if ($count != 0)
+                               throw new Exception("Doublon");
+                       $this->me_type = 'PL';
+                       $this->insert();
+                       /**
+                        * insert into default profile
+                        */
+                       $this->cn->exec_sql("insert into 
profile_menu(me_code,me_code_dep,p_type_display,p_id)
+                                       values 
($1,$2,$3,$4)",array($this->me_code,'EXTENSION','S',1));
+                       $this->cn->commit();
+               }
+               catch (Exception $exc)
+               {
+                       echo alert($exc->getMessage());
+                       echo $exc->getTraceAsString();
+               }
+       }
+       function update_plugin()
+       {
+               try
+               {
+                       $this->cn->start();
+                       $this->verify();
+                       $this->me_type = 'PL';
+                       $this->update();
+                       $this->cn->commit();
+               }
+               catch (Exception $exc)
+               {
+                       echo alert($exc->getMessage());
+                       echo $exc->getTraceAsString();
+               }
+       }
+       function remove_plugin()
+       {
+               try
+               {
+                       $this->cn->start();
+                       $this->delete();
+                       $this->cn->commit();
+               }
+               catch (Exception $exc)
+               {
+                       echo alert($exc->getMessage());
+                       echo $exc->getTraceAsString();
+               }
+       }
 }
 

Modified: phpcompta/trunk/include/class_html_input.php
===================================================================
--- phpcompta/trunk/include/class_html_input.php        2011-11-10 12:58:09 UTC 
(rev 4325)
+++ phpcompta/trunk/include/class_html_input.php        2011-11-10 15:49:57 UTC 
(rev 4326)
@@ -88,7 +88,7 @@
     }
     function setReadOnly($p_read)
     {
-        $this->readonly=$p_read;
+        $this->readOnly=$p_read;
     }
     /*!\brief set the extra javascript property for the INPUT field
      *\param $p_name name of the parameter
@@ -589,4 +589,10 @@
        }
       return $array[$ind];
     }
+       static function title_box($name,$div)
+       {
+               $r=HtmlInput::anchor_close($div);
+               $r.=h2info($name);
+               return $r;
+       }
 }
\ No newline at end of file

Modified: phpcompta/trunk/include/class_menu_ref_sql.php
===================================================================
--- phpcompta/trunk/include/class_menu_ref_sql.php      2011-11-10 12:58:09 UTC 
(rev 4325)
+++ phpcompta/trunk/include/class_menu_ref_sql.php      2011-11-10 15:49:57 UTC 
(rev 4326)
@@ -5,10 +5,6 @@
  * @brief Manage the table public.menu_ref
  *
  *
-  Example
-  @code
-
-  @endcode
  */
 require_once('class_database.php');
 require_once('ac_common.php');

Added: phpcompta/trunk/include/class_profile_menu.php
===================================================================
--- phpcompta/trunk/include/class_profile_menu.php                              
(rev 0)
+++ phpcompta/trunk/include/class_profile_menu.php      2011-11-10 15:49:57 UTC 
(rev 4326)
@@ -0,0 +1,212 @@
+<?php
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+require_once 'class_profile_menu_sql.php';
+
+/**
+ * Manage the menu of a profile
+ *
+ * @author dany
+ */
+class Profile_Menu
+{
+
+       function __construct($p_cn)
+       {
+               $this->cn = $p_cn;
+       }
+
+       function sub_menu($resource, $p_id)
+       {
+               if (Database::num_row($resource) != 0)
+               {
+                       $gDossier = dossier::id();
+                       echo '<ul style="list-style-type:none">';
+                       for ($e = 0; $e < Database::num_row($resource); $e++)
+                       {
+                               $menu = Database::fetch_array($resource, $e);
+                               $me_code = $menu['me_code'];
+
+                               $me_code_dep = $menu['me_code_dep'];
+
+                               $mp_type = $menu['p_type_display'];
+
+                               $me_menu = $menu['me_menu'];
+                               $me_desc = $menu['me_description'];
+                               $js = sprintf(
+                                               '<a class="line" 
href="javascript:void(0)" onclick="mod_menu(\'%s\',\'%s\')">%s</A>', $gDossier, 
$menu['pm_id'], $me_code);
+                               ?>
+                               <li>
+                                       <?= $me_menu?>
+                                       ( <?= $js?> )
+                                       <?= $me_desc?>
+                                       <?
+                                       $ret2 = $this->cn->exec_sql("
+                                                                       SELECT 
pm_id,
+                                                                               
pm.me_code,
+                                                                               
me_code_dep,
+                                                                               
p_id,
+                                                                               
p_order,
+                                                                               
p_type_display,
+                                                                               
pm_default,
+                                                                               
pm_desc,
+                                                                               
me_menu,
+                                                                               
me_description
+                                                                               
FROM profile_menu as pm
+                                                                               
        join profile_menu_type on (p_type_display=pm_type)
+                                                                               
        join menu_ref as mr on (mr.me_code=pm.me_code)
+                                                                               
where
+                                                                               
p_id=$1 and me_code_dep=$2
+                                                                               
order by p_order asc
+                                                       ", array($p_id, 
$me_code));
+                                       $this->sub_menu($ret2, $p_id);
+                                       echo "</li>";
+                               } //end loop e
+                               echo '</ul>';
+                       } // end if
+               }
+
+               /**
+                * Show a table with all the menu and the type
+                * @param type $p_id profile.p_id
+                */
+               function listing_profile($p_id)
+               {
+                       $array = $this->cn->get_array("
+                       SELECT pm_id,
+                                       pm.me_code,
+                                       me_code_dep,
+                                       p_id,
+                                       p_order,
+                                       p_type_display,
+                                       pm_default,
+                                       pm_desc,
+                                       me_menu,
+                                       me_description
+                       FROM profile_menu as pm join profile_menu_type on 
(p_type_display=pm_type)
+                       join menu_ref as mr on (mr.me_code=pm.me_code)
+                       where
+                       p_id=$1 and p_type_display='M'
+                       order by p_order asc
+                       ", array($p_id));
+                       if (count($array) == 0)
+                       {
+                               // if not module show only menu
+                               $ret = $this->cn->exec_sql("
+                                                                               
SELECT pm_id,
+                                                                               
pm.me_code,
+                                                                               
me_code_dep,
+                                                                               
p_id,
+                                                                               
p_order,
+                                                                               
p_type_display,
+                                                                               
pm_default,
+                                                                               
pm_desc,
+                                                                               
me_menu,
+                                                                               
me_description
+                                                                               
FROM profile_menu as pm
+                                                                               
        join profile_menu_type on (p_type_display=pm_type)
+                                                                               
        join menu_ref as mr on (mr.me_code=pm.me_code)
+                                       where
+                                       p_id=$1 and p_type_display='E'
+                                       order by p_order asc
+                                                       ", array($p_id));
+                               echo '<ul style="list-style-type:none">';
+
+                               $this->sub_menu($ret, $p_id);
+                               // $this->listing_profile($p_id,$ret, 
$array[$i]['me_code']);
+
+                               echo "</li>";
+                               echo '</ul>';
+                       }
+                       else
+                       {
+                               $this->cn->prepare("menu", "
+                               SELECT pm_id,
+                                                                               
pm.me_code,
+                                                                               
me_code_dep,
+                                                                               
p_id,
+                                                                               
p_order,
+                                                                               
p_type_display,
+                                                                               
pm_default,
+                                                                               
pm_desc,
+                                                                               
me_menu,
+                                                                               
me_description
+                                                                               
FROM profile_menu as pm
+                                                                               
        join profile_menu_type on (p_type_display=pm_type)
+                                                                               
        join menu_ref as mr on (mr.me_code=pm.me_code)
+                                       where
+                                       p_id=$1 and me_code_dep=$2 and 
p_type_display in ('E','S')
+                                       order by p_order asc
+                                                       ");
+                               echo '<ul style="list-style-type:none">';
+                               // Menu by module
+                               $gDossier = Dossier::id();
+                               for ($i = 0; $i < count($array); $i++)
+                               {
+                                       $js = sprintf('<a class="line" 
style="display:inline;text-decoration:underline"
+                                               href="javascript:void(0)" 
onclick="mod_menu(\'%s\',\'%s\')">%s</A>', $gDossier, $array[$i]['pm_id'], 
$array[$i]['me_code']);
+                                       echo "<li>" . $array[$i]['me_menu'] . " 
(" . $js . ")" . $array[$i]['me_description'];
+
+                                       $ret = $this->cn->execute("menu", 
array($p_id, $array[$i]['me_code']));
+                                       $this->sub_menu($ret, $p_id);
+
+                                       echo "</li>";
+                               }// end loop i
+                               echo '</ul>';
+                               //*******************************************
+                               // show also menu without a module
+                               //*******************************************
+                               $ret = $this->cn->exec_sql("
+                                                                               
SELECT pm_id,
+                                                                               
pm.me_code,
+                                                                               
me_code_dep,
+                                                                               
p_id,
+                                                                               
p_order,
+                                                                               
p_type_display,
+                                                                               
pm_default,
+                                                                               
pm_desc,
+                                                                               
me_menu,
+                                                                               
me_description
+                                                                               
FROM profile_menu as pm
+                                                                               
        join profile_menu_type on (p_type_display=pm_type)
+                                                                               
        join menu_ref as mr on (mr.me_code=pm.me_code)
+                                       where
+                                       p_id=$1 and p_type_display='E' and 
me_code_dep is null
+                                       order by p_order asc
+                                                       ", array($p_id));
+
+                               $this->sub_menu($ret, $p_id);
+                       }
+               }
+
+               function printing($p_id)
+               {
+                       $ret = $this->cn->exec_sql("
+                               SELECT pm_id,
+                                                                               
pm.me_code,
+                                                                               
me_code_dep,
+                                                                               
p_id,
+                                                                               
p_order,
+                                                                               
p_type_display,
+                                                                               
pm_default,
+                                                                               
pm_desc,
+                                                                               
me_menu,
+                                                                               
me_description
+                                                                               
FROM profile_menu as pm
+                                                                               
        join profile_menu_type on (p_type_display=pm_type)
+                                                                               
        join menu_ref as mr on (mr.me_code=pm.me_code)
+                                       where
+                                       p_id=$1 and me_type='PR'
+                                       order by p_order asc
+                                                       ", array($p_id));
+                       // Menu by module
+                       $gDossier = Dossier::id();
+                       $this->sub_menu($ret, $p_id);
+               }
+
+       }
+
+       //end class
+       ?>
\ No newline at end of file

Added: phpcompta/trunk/include/class_profile_menu_sql.php
===================================================================
--- phpcompta/trunk/include/class_profile_menu_sql.php                          
(rev 0)
+++ phpcompta/trunk/include/class_profile_menu_sql.php  2011-11-10 15:49:57 UTC 
(rev 4326)
@@ -0,0 +1,268 @@
+<?php
+/**
+ address@hidden
+ address@hidden Manage the table public.profile_menu
+ *
+ *
+Example
address@hidden
+
address@hidden
+ */
+require_once('class_database.php');
+require_once('ac_common.php');
+
+
+/**
+ address@hidden Manage the table public.profile_menu
+*/
+class Profile_Menu_sql  
+{
+  /* example private 
$variable=array("easy_name"=>column_name,"email"=>"column_name_email","val3"=>0);
 */
+  
+  protected $variable=array("pm_id"=>"pm_id","me_code"=>"me_code"
+,"me_code_dep"=>"me_code_dep"
+,"p_id"=>"p_id"
+,"p_order"=>"p_order"
+,"p_type_display"=>"p_type_display"
+,"pm_default"=>"pm_default"
+);
+  function __construct ( & $p_cn,$p_id=-1) {
+        $this->cn=$p_cn;
+        $this->pm_id=$p_id;
+        
+        if ( $p_id == -1 ) {
+        /* Initialize an empty object */
+            foreach ($this->variable as $key=>$value) $this->$value=null;
+            $this->pm_id=$p_id;
+        } else {
+         /* load it */
+
+         $this->load();
+      }
+  }
+  public function get_parameter($p_string) {
+    if ( array_key_exists($p_string,$this->variable) ) {
+      $idx=$this->variable[$p_string];
+      return $this->$idx;
+    }
+    else 
+      throw new Exception (__FILE__.":".__LINE__.$p_string.'Erreur attribut 
inexistant');
+  }
+  public function set_parameter($p_string,$p_value) {
+    if ( array_key_exists($p_string,$this->variable) ) {
+      $idx=$this->variable[$p_string];
+      $this->$idx=$p_value;
+    }
+    else 
+      throw new Exception (__FILE__.":".__LINE__.$p_string.'Erreur attribut 
inexistant');
+  }
+  public function get_info() {    return var_export($this,true);  }
+  public function verify() {
+    // Verify that the elt we want to add is correct
+    /* verify only the datatype */
+     if ( trim($this->me_code) == '') $this->me_code=null;
+ if ( trim($this->me_code_dep) == '') $this->me_code_dep=null;
+ if ( trim($this->p_id) == '') $this->p_id=null;
+if ( $this->p_id!== null && settype($this->p_id,'float') == false )
+             throw new Exception('DATATYPE p_id $this->p_id non numerique');
+ if ( trim($this->p_order) == '') $this->p_order=null;
+if ( $this->p_order!== null && settype($this->p_order,'float') == false )
+             throw new Exception('DATATYPE p_order $this->p_order non 
numerique');
+ if ( trim($this->p_type_display) == '') $this->p_type_display=null;
+ if ( trim($this->pm_default) == '') $this->pm_default=null;
+if ( $this->pm_default!== null && settype($this->pm_default,'float') == false )
+             throw new Exception('DATATYPE pm_default $this->pm_default non 
numerique');
+
+    
+  }
+  public function save() {
+  /* please adapt */
+    if (  $this->pm_id == -1 ) 
+      $this->insert();
+    else
+      $this->update();
+  }
+  /**
+   address@hidden retrieve array of object thanks a condition
+   address@hidden $cond condition (where clause) (optional by default all the 
rows are fetched)
+   * you can use this parameter for the order or subselect
+   address@hidden $p_array array for the SQL stmt
+   address@hidden Database::exec_sql get_object  Database::num_row
+   address@hidden the return value of exec_sql
+   */
+   public function seek($cond='',$p_array=null) 
+   {
+     $sql="select * from public.profile_menu  $cond";
+     $aobj=array();
+     $ret= $this->cn->exec_sql($sql,$p_array);
+     return $ret;
+   }
+   /**
+    *get_seek return the next object, the return of the query must have all 
the column
+    * of the object
+    address@hidden $p_ret is the return value of an exec_sql
+    address@hidden $idx is the index
+    address@hidden seek
+    address@hidden object 
+    */
+   public function get_object($p_ret,$idx)
+    {
+     // map each row in a object
+     $oobj=new Profile_Menu_sql ($this->cn);
+     $array=Database::fetch_array($p_ret,$idx);
+     foreach ($array as $idx=>$value) { $oobj->$idx=$value; }
+     return $oobj;
+   }
+  public function insert() {
+    if ( $this->verify() != 0 ) return;
+      if( $this->pm_id==-1 ){
+    /*  please adapt */
+    $sql="insert into public.profile_menu(me_code
+,me_code_dep
+,p_id
+,p_order
+,p_type_display
+,pm_default
+) values ($1
+,$2
+,$3
+,$4
+,$5
+,$6
+) returning pm_id";
+    
+    $this->pm_id=$this->cn->get_value(
+                $sql,
+                array( $this->me_code
+,$this->me_code_dep
+,$this->p_id
+,$this->p_order
+,$this->p_type_display
+,$this->pm_default
+)
+                );
+          } else {
+              $sql="insert into public.profile_menu(me_code
+,me_code_dep
+,p_id
+,p_order
+,p_type_display
+,pm_default
+,pm_id) values ($1
+,$2
+,$3
+,$4
+,$5
+,$6
+,$7
+) returning pm_id";
+    
+    $this->pm_id=$this->cn->get_value(
+                $sql,
+                array( $this->me_code
+,$this->me_code_dep
+,$this->p_id
+,$this->p_order
+,$this->p_type_display
+,$this->pm_default
+,$this->pm_id)
+                );
+
+          }
+   
+  }
+
+  public function update() {
+    if ( $this->verify() != 0 ) return;
+    /*   please adapt */
+    $sql=" update public.profile_menu set me_code = $1
+,me_code_dep = $2
+,p_id = $3
+,p_order = $4
+,p_type_display = $5
+,pm_default = $6
+ where pm_id= $7";
+    $res=$this->cn->exec_sql(
+                $sql,
+                array($this->me_code
+,$this->me_code_dep
+,$this->p_id
+,$this->p_order
+,$this->p_type_display
+,$this->pm_default
+,$this->pm_id)
+                );
+                
+  }
+/**
+ address@hidden load a object
+ address@hidden 0 on success -1 the object is not found
+ */
+  public function load() {
+
+   $sql="select me_code
+,me_code_dep
+,p_id
+,p_order
+,p_type_display
+,pm_default
+ from public.profile_menu where pm_id=$1"; 
+    /* please adapt */
+    $res=$this->cn->get_array(
+                $sql,
+                array($this->pm_id)
+                );
+                
+    if ( count($res) == 0 ) {
+          /* Initialize an empty object */
+          foreach ($this->variable as $key=>$value) $this->$key='';
+
+          return -1;
+          }
+    foreach ($res[0] as $idx=>$value) { $this->$idx=$value; }
+    return 0;
+  }
+
+  public function delete() {
+    $sql="delete from public.profile_menu where pm_id=$1"; 
+    $res=$this->cn->exec_sql($sql,array($this->pm_id));
+  }
+  /**
+   * Unit test for the class
+   */  
+  static function test_me() {
+      $cn=new Database(25);
+$cn->start();
+    echo h2info('Test object vide');
+    $obj=new Profile_Menu_sql($cn);
+    var_dump($obj);
+
+    echo h2info('Test object NON vide');
+    $obj->set_parameter('j_id',3);
+    $obj->load();
+    var_dump($obj);
+
+    echo h2info('Update');
+    $obj->set_parameter('j_qcode','NOUVEAU CODE');
+    $obj->save();
+    $obj->load();
+    var_dump($obj);
+
+    echo h2info('Insert');
+    $obj->set_parameter('j_id',0);
+    $obj->save();
+    $obj->load();
+    var_dump($obj);
+
+    echo h2info('Delete');
+    $obj->delete();
+    echo (($obj->load()==0)?'Trouve':'non trouve');
+    var_dump($obj);
+$cn->rollback();
+
+  }
+  
+}
+// Profile_Menu_sql::test_me();
+?>

Modified: phpcompta/trunk/include/class_user.php
===================================================================
--- phpcompta/trunk/include/class_user.php      2011-11-10 12:58:09 UTC (rev 
4325)
+++ phpcompta/trunk/include/class_user.php      2011-11-10 15:49:57 UTC (rev 
4326)
@@ -680,7 +680,7 @@
                        }
                        else
                        {
-                               echo '<div class="u_redcontent">';
+                               echo '<div class="redcontent">';
                                echo '<h2 class="error"> Cette action ne vous 
est pas autorisée Contactez votre responsable</h2>';
                                echo '</div>';
                        }
@@ -726,7 +726,7 @@
                        }
                        else
                        {
-                               echo '<div class="u_redcontent">';
+                               echo '<div class="redcontent">';
                                echo '<h2 class="error"> Cette action ne vous 
est pas autorisée Contactez votre responsable</h2>';
                                echo '</div>';
                        }
@@ -964,6 +964,16 @@
                }
                return $array;
        }
+       function audit()
+       {
+               global $audit;
+               $cn = new Database();
+               $sql = "insert into audit_connect 
(ac_user,ac_ip,ac_module,ac_url,ac_state) values ($1,$2,$3,$4,$5)";
+               if ($audit)
+               {
+                               $cn->exec_sql($sql, array($_SESSION['g_user'], 
$_SERVER["REMOTE_ADDR"], $_REQUEST['ac'], $_SERVER['REQUEST_URI'], 'AUDIT'));
+               }
+       }
 
 }
 

Modified: phpcompta/trunk/include/contact.inc.php
===================================================================
--- phpcompta/trunk/include/contact.inc.php     2011-11-10 12:58:09 UTC (rev 
4325)
+++ phpcompta/trunk/include/contact.inc.php     2011-11-10 15:49:57 UTC (rev 
4326)
@@ -92,7 +92,7 @@
 {
     $retour_action=HtmlInput::button_anchor('Retour', 
"commercial.php?p_action=contact&$str_dossier");
 
-    echo '<div class="u_redcontent">';
+    echo '<div class="redcontent">';
 
     echo $retour_action;
     $c=new contact($cn);
@@ -191,7 +191,7 @@
         $contact->company=$qcode;
     }
     echo $retour;
-    echo '<div class="u_redcontent">';
+    echo '<div class="redcontent">';
     echo $contact->Summary($search);
     echo '</div>';
     echo $retour;
@@ -203,7 +203,7 @@
 if ( $sub_action == 'detail' )
 {
     $f_id=$_REQUEST['f_id'];
-    echo '<div class="u_redcontent">';
+    echo '<div class="redcontent">';
     $contact=new contact($cn,$f_id);
     echo $retour;
     echo '<form action="'.$_SERVER['REQUEST_URI'].'" method="post">';

Added: phpcompta/trunk/include/detail_menu.inc.php
===================================================================
--- phpcompta/trunk/include/detail_menu.inc.php                         (rev 0)
+++ phpcompta/trunk/include/detail_menu.inc.php 2011-11-10 15:49:57 UTC (rev 
4326)
@@ -0,0 +1,103 @@
+<?php
+
+/*
+ *   This file is part of PhpCompta.
+ *
+ *   PhpCompta is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   PhpCompta is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with PhpCompta; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+/* $Revision$ */
+
+// Copyright Author Dany De Bontridder address@hidden
+
+/**
+ * @file
+ * @brief
+ *
+ */
+// retrieve data
+$profile=$cn->get_value("select p_id from profile_menu where 
pm_id=$1",array($pm_id));
+$a_value=$cn->make_array("select me_code,me_code||' '||me_menu||' 
'||coalesce(me_description,'') from menu_ref",0);
+$a_value_null=$cn->make_array("select me_code,me_code||' '||me_menu||' 
'||coalesce(me_description,'') from menu_ref
+       where
+       me_code in (select me_code from profile_menu where p_id=$profile and 
p_type_display<>'P' and pm_id <> $pm_id)
+               UNION ALL
+               select me_code,me_code||' '||me_menu||' 
'||coalesce(me_description,'') from menu_ref
+       where
+               me_code='EXTENSION'",1);
+$a_type=$cn->make_array("select pm_type,pm_desc from profile_menu_type",1);
+
+$array=$cn->get_array("select 
p_id,pm_id,me_code,me_code_dep,p_order,p_type_display,pm_default
+       from profile_menu
+       where pm_id=$1",array($pm_id));
+if ( empty($array)) {
+               alert("Code invalide");
+               exit();
+}
+
+
+echo HtmlInput::title_box($array[0]['me_code'],'divdm'.$pm_id);
+
+$me_code=new ISelect('me_code');
+$me_code->value=$a_value;
+$me_code->selected=$array[0]['me_code'];
+
+$me_code_dep=new ISelect('me_code_dep');
+$me_code_dep->value=$a_value_null;
+$me_code_dep->selected=$array[0]['me_code_dep'];
+
+$p_order=new Inum('p_order',$array[0]['p_order']);
+$pm_default=new ICheckBox('pm_default','1');
+$pm_default->set_check($array[0]['pm_default']);
+
+?>
+<form method="POST">
+       <?=HtmlInput::hidden('pm_id',$array[0]['pm_id'])?>
+       <?=HtmlInput::hidden('p_id',$array[0]['p_id'])?>
+<table>
+<tr>
+       <td>Code</td>
+       <td><?=$me_code->input()?></td>
+</tr>
+<?
+if ($array[0]['p_type_display']!='P'):
+?>
+<tr>
+       <td>Dépendant de </td>
+       <td><?=$me_code_dep->input()?></td>
+</tr>
+
+<tr>
+       <td>Ordre d'apparition</td>
+       <td><?=$p_order->input()?></td>
+</tr>
+<tr>
+       <td>Menu par défaut</td>
+       <td><?=$pm_default->input()?></td>
+</tr>
+<? endif;?>
+</table>
+       <p>
+Cochez cette case si vous souhaitez effacer ce menu ainsi que ceux qui en 
dépendent
+<?
+$delete=new ICheckBox('delete',"1");
+echo $delete->input();
+?>
+</p>
+<?
+echo HtmlInput::submit('mod',"Valider");
+echo '</form>';
+
+
+?>

Modified: phpcompta/trunk/include/fiche.inc.php
===================================================================
--- phpcompta/trunk/include/fiche.inc.php       2011-11-10 12:58:09 UTC (rev 
4325)
+++ phpcompta/trunk/include/fiche.inc.php       2011-11-10 15:49:57 UTC (rev 
4326)
@@ -156,7 +156,7 @@
 {
     $g_user->can_request(FIC);
 
-    $r= '<DIV class="u_redcontent" style="width:auto">';
+    $r= '<DIV class="redcontent" style="width:auto">';
     if ( $write ==0)
         $r.= "<h2 class=\"error\"> Pas d'accès </h2>";
     else
@@ -180,7 +180,7 @@
     $g_user->can_request(FICCAT);
     $fiche_def=new Fiche_Def($cn,$_REQUEST['fd_id']);
     $fiche_def->save_order($_POST);
-    $r= '<DIV class="u_redcontent" style="width:auto">';
+    $r= '<DIV class="redcontent" style="width:auto">';
     if ( $write ==0)
         $r.= "<h2 class=\"error\"> Pas d'accès </h2>";
     else
@@ -198,7 +198,7 @@
 if ( isset ($_POST['remove_line'])   )
 {
     $g_user->can_request(FICCAT);
-    $r= '<DIV class="u_redcontent" style="width:auto">';
+    $r= '<DIV class="redcontent" style="width:auto">';
     if ( $write ==0)
         $r.= "<h2 class=\"error\"> Pas d'accès </h2>";
     else
@@ -221,7 +221,7 @@
 if ( isset ($_POST["change_name"] )   )
 {
     $g_user->can_request(FICCAT);
-    $r= '<DIV class="u_redcontent" style="width:auto">';
+    $r= '<DIV class="redcontent" style="width:auto">';
     if ( $write ==0)
         $r.= "<h2 class=\"error\"> "._("Pas d'accès")." </h2>";
     else
@@ -253,7 +253,7 @@
     {
         $g_user->can_request(FICADD);
 
-        echo '<DIV class="u_redcontent" style="width:auto">';
+        echo '<DIV class="redcontent" style="width:auto">';
         $fiche_def=new Fiche_Def($cn,$_GET['fiche']);
         $fiche_def->myList();
 
@@ -265,7 +265,7 @@
     // Display the detail of a card
     if ($action== "detail" )
     {
-        echo '<DIV class="u_redcontent" style="width:auto">';
+        echo '<DIV class="redcontent" style="width:auto">';
         $t=false;
         if ( $g_user->check_action(FICADD)==0)
         {
@@ -325,7 +325,7 @@
     if ($action == "add_modele" )
     {
         $g_user->can_request(FICCAT);
-        echo '<DIV class="u_redcontent" style="width:auto">';
+        echo '<DIV class="redcontent" style="width:auto">';
         echo '<form method="post">';
        echo HtmlInput::hidden('ac',$_REQUEST['ac']);
         $oFiche_Def=new Fiche_Def($cn);
@@ -343,7 +343,7 @@
     if ($action == "modifier" )
     {
         $g_user->can_request(FICCAT);
-        echo '<DIV class="u_redcontent" style="width:auto">';
+        echo '<DIV class="redcontent" style="width:auto">';
         $fiche_def=new Fiche_Def($cn,$_GET['fiche']);
 
         echo ShowFicheDefInput($fiche_def);
@@ -354,7 +354,7 @@
     // Search a card
     if ( $action == "search" )
     {
-        echo '<DIV class="u_redcontent" style="float:top;width:auto;">';
+        echo '<DIV class="redcontent" style="float:top;width:auto;">';
         ShowRecherche();
         $sql="select distinct f_id,fd_id from fiche join fiche_detail using 
(f_id)
                  where
@@ -377,7 +377,7 @@
         }
         else
         {
-            echo '<DIV class="u_redcontent" style="width:auto">';
+            echo '<DIV class="redcontent" style="width:auto">';
             echo "Aucun résultat trouvé";
 
         }
@@ -392,7 +392,7 @@
 {
     $g_user->can_request(FICADD);
 
-    echo '<DIV class="u_redcontent" style="width:auto">';
+    echo '<DIV class="redcontent" style="width:auto">';
     if ( $write ==0)
         echo "<h2 class=\"error\"> Pas d'accès </h2>";
     else
@@ -423,7 +423,7 @@
 {
     $g_user->can_request(FIC);
     ShowRecherche();
-    echo '<DIV class="u_redcontent">';
+    echo '<DIV class="redcontent">';
     if ( $write ==0)
         echo "<h2 class=\"error\"> Pas d'accès </h2>";
     else
@@ -444,13 +444,13 @@
     $g_user->can_request(FICADD);
     if ( $write ==0)
     {
-        echo '<DIV class="u_redcontent">';
+        echo '<DIV class="redcontent">';
         echo "<h2 class=\"error\"> Pas d'accès </h2>";
     }
     else
     {
         ShowRecherche();
-        echo '<DIV class="u_redcontent">';
+        echo '<DIV class="redcontent">';
         $fiche=new Fiche($cn);
         $fiche->Save($_REQUEST['fiche']);
         $fiche_def=new Fiche_Def($cn,$_GET['fiche']);
@@ -466,7 +466,7 @@
 if ( isset ($_POST["update_fiche"])  )
 {
     $g_user->can_request(FIC);
-    echo '<DIV class="u_redcontent">';
+    echo '<DIV class="redcontent">';
     if ( $write ==0)
         echo "<h2 class=\"error\"> Pas d'accès </h2>";
     else
@@ -489,7 +489,7 @@
 // Move a card to a new category
 if ( isset($_POST['move']))
 {
-    echo '<DIV class="u_redcontent">';
+    echo '<DIV class="redcontent">';
     $fiche=new Fiche($cn,$_POST['f_id']);
     $fiche->move_to($_POST['move_to']);
     $fiche_def=new Fiche_Def($cn,$_GET['fiche']);

Modified: phpcompta/trunk/include/menu.inc.php
===================================================================
--- phpcompta/trunk/include/menu.inc.php        2011-11-10 12:58:09 UTC (rev 
4325)
+++ phpcompta/trunk/include/menu.inc.php        2011-11-10 15:49:57 UTC (rev 
4326)
@@ -29,15 +29,45 @@
  */
 require_once 'class_menu_ref_sql.php';
 require_once 'class_sort_table.php';
+require_once 'class_extension.php';
+
+
 echo '<div class="content">';
 /**
  * if post save then we save a new one
  */
-
+if ( isset($_POST['save_plugin']))
+{
+       extract($_POST);
+       $plugin=new Extension($cn);
+       $plugin->me_code=$me_code;
+       $plugin->me_menu=$me_menu;
+       $plugin->me_file=$me_file;
+       $plugin->me_description=$me_description;
+       $plugin->me_parameter='plugin_code='.$me_code;
+       $plugin->insert_plugin();
+}
 /**
  * if post update then we update
  */
-
+if (isset($_POST['mod_plugin']))
+{
+       extract ($_POST);
+       $plugin=new Extension($cn);
+       $plugin->me_code=$me_code;
+       $plugin->me_menu=$me_menu;
+       $plugin->me_file=$me_file;
+       $plugin->me_description=$me_description;
+       $plugin->me_parameter='plugin_code='.$me_code;
+       if ( !isset ($delete_pl))
+       {
+               $plugin->update_plugin();
+       }
+       else
+       {
+               $plugin->remove_plugin();
+       }
+}
 /**
  * if delete then delete
  */
@@ -70,7 +100,11 @@
        <li> PR pour les impressions </li>
        <li> PL pour les plugins</li>
        <li> SP pour des valeurs spéciales</li>
+       </ul>
+
        </p>';
+$gDossier=Dossier::id();
+echo HtmlInput::button("Add_plugin", "Ajout d'un plugin", 
"onclick=add_plugin($gDossier)");
 echo '<table class="result">';
 echo '<tr>';
 echo '<th>'.$table->get_header(0).'</th>';
@@ -85,8 +119,17 @@
 for ($i=0;$i<Database::num_row($ret);$i++)
 {
        $row=$menu->get_object($ret, $i);
+       $js=$row->me_code;
+       switch ($row->me_type)
+       {
+               case 'PL':
+                       $js=sprintf('<A class="line" href="javascript:void(0)"  
onclick="mod_plugin(\'%s\',\'%s\')">%s</A>',
+                                       $gDossier,$row->me_code,$row->me_code);
+                       break;
+
+       }
        echo '<tr>';
-       echo td($row->me_code);
+       echo td($js);
        echo td($row->me_menu);
        echo td($row->me_description);
        echo td($row->me_url);

Modified: phpcompta/trunk/include/operation_ods_new.inc.php
===================================================================
--- phpcompta/trunk/include/operation_ods_new.inc.php   2011-11-10 12:58:09 UTC 
(rev 4325)
+++ phpcompta/trunk/include/operation_ods_new.inc.php   2011-11-10 15:49:57 UTC 
(rev 4326)
@@ -91,14 +91,16 @@
 
 echo HtmlInput::submit('summary', _('Sauvez'));
 
+echo '<div style="position:absolute;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>';
 echo '</table>';
+echo '</div>';
 
 $iconcerned=new IConcerned('jrn_concerned');
-$iconcerned->extra=0;
+$iconcerned->amount_id="totalDeb";
 echo "Opération rapprochée : ".$iconcerned->input();
 echo '</form>';
 

Modified: phpcompta/trunk/include/param_pcmn.inc.php
===================================================================
--- phpcompta/trunk/include/param_pcmn.inc.php  2011-11-10 12:58:09 UTC (rev 
4325)
+++ phpcompta/trunk/include/param_pcmn.inc.php  2011-11-10 15:49:57 UTC (rev 
4326)
@@ -89,7 +89,7 @@
 echo '<div class="lmenu">';
 menu_acc_plan($_SESSION['g_start']);
 echo '</div>';
-echo '<DIV CLASS="u_redcontent">';
+echo '<DIV CLASS="redcontent">';
 /* Analyse ce qui est demandé */
 /* Effacement d'une ligne */
 if (isset ($_GET['action']))

Modified: phpcompta/trunk/include/profile.inc.php
===================================================================
--- phpcompta/trunk/include/profile.inc.php     2011-11-10 12:58:09 UTC (rev 
4325)
+++ phpcompta/trunk/include/profile.inc.php     2011-11-10 15:49:57 UTC (rev 
4326)
@@ -18,44 +18,264 @@
  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 /* $Revision$ */
-
 // Copyright Author Dany De Bontridder address@hidden
 require_once 'class_profile_sql.php';
 global $cn;
-echo '<div class="content">';
-$table=new Sort_Table();
-$url=$_SERVER['REQUEST_URI'];
 
-$table->add('Nom',$url,"order by p_name asc","order by p_name desc","na","nd");
-$table->add('Description',$url,"order by p_desc asc","order by p_desc 
desc","da","dd");
-$table->add('Calculatrice visible',$url,"order by with_calc asc","order by 
with_calc desc","ca","cd");
-$table->add('Form Direct visible',$url,"order by with_direct_form asc","order 
by with_direct_form desc","fa","fd");
+//**********************************************
+// Save_name
+// *********************************************
 
-$ord=(isset($_REQUEST['ord']))?$_REQUEST['ord']:'na';
+if ( isset($_POST['save_name']))
+{
 
-$order=$table->get_sql_order($ord);
+       extract ($_POST);
+       try{
+                       if (strlen(trim($p_name))==0) throw new Exception("Nom 
ne peut être vide");
+                       if (isNumber($p_id)==0) throw new Exception("profile 
Invalide");
+                       $wc=(isset($with_calc))?1:0;
+                       $wd=(isset($with_direct_form))?1:0;
+                       $p_desc=(strlen(trim($p_desc))==0)?null:trim($p_desc);
+               if ($p_id != -1)
+               {
+                       $cn->exec_sql("update profile set p_name=$1,p_desc=$2,
+                                       with_calc=$3, with_direct_form=$4 where 
p_id=$5",array($p_name,
+                                               $p_desc,$wc,$wd,$p_id));
+               }
+               else
+               {
+                       $p_id=$cn->get_value ("insert into profile (p_name,
+                               p_desc,with_calc,with_direct_form) values
+                               ($1,$2,$3,$4) returning p_id",array(
+                                       $p_name,$p_desc,$wc,$wd
+                               ));
+               }
+       }
+       catch (Exception $e)
+       {
+               alert($e->getMessage());
+       }
 
-$menu=new Profile_sql($cn);
-$ret=$menu->seek($order);
+}
+//************************************
+// Clone
+//************************************
+if ( isset($_POST['clone']))
+{
+       extract ($_POST);
+       try
+       {
+               $cn->start();
+               $new_id=$cn->get_value("insert into 
profile(p_name,p_desc,with_calc,
+                       with_direct_form)
+                       select 'copie de '||p_name,p_desc,with_calc,
+                       with_direct_form from profile where p_id=$1 returning 
p_id",array($p_id));
+               $cn->exec_sql("
+                               insert into profile_menu 
(p_id,me_code,me_code_dep,p_order,p_type_display,pm_default)
+                               select 
$1,me_code,me_code_dep,p_order,p_type_display,pm_default from profile_menu
+                               where p_id=$2
+                       ",array($new_id,$p_id));
+               $cn->commit();
+
+       }
+       catch (Exception $exc)
+       {
+               echo $exc->getTraceAsString();
+               $cn->rollback();
+       }
+
+}
+//************************************
+// Delete
+//************************************
+if ( isset($_POST['delete_profil']))
+{
+       extract ($_POST);
+       try
+       {
+               $cn->start();
+               if ( $p_id==1 ) { throw new Exception('On ne peut effacer le 
profil par défaut');}
+               $new_id=$cn->get_value("delete from profile
+                       where p_id=$1 ",array($p_id));
+               $cn->commit();
+       }
+       catch (Exception $exc)
+       {
+               echo alert($exc->getMessage());;
+               $cn->rollback();
+       }
+
+}
+//************************************
+// Modify the menu or delete it
+//************************************
+if (isset($_POST['mod']))
+{
+       extract($_POST);
+       if (isset($delete))
+       {
+               try
+               {
+                       $cn->start();
+                       $me_code_dep=$cn->get_value("select me_code from 
profile_menu where
+                               pm_id=$1",array($pm_id));
+                       $cn->exec_sql("delete from profile_menu where pm_id in
+                               (select pm_id from profile_menu where 
me_code_dep=$1 and p_id=$2)",
+                                       array($me_code_dep,$p_id));
+                       $cn->exec_sql("delete from profile_menu where pm_id=$1",
+                                       array($pm_id));
+                       $cn->commit();
+               }
+               catch (Exception $exc)
+               {
+                       echo $exc->getMessage();
+                       $cn->rollback();
+               }
+               }
+       else
+               try
+               {
+               /**
+                        * Printing cannot be a menu and do not depend of 
anything
+                        */
+                       $menu_type = $cn->get_value("select me_type from 
menu_ref
+                       where me_code=$1", array($me_code));
+
+                       if ($menu_type == 'PR')
+                       {
+                               $p_type = 'P';
+                               $me_code_dep = -1;
+                       }
+
+                       $cn->start();
+                       $me_code_dep = ($me_code_dep == -1) ? null : 
$me_code_dep;
+                       $pm_default = (isset($pm_default)) ? 1 : 0;
+                       $p_order = (strlen(trim($p_order)) == 0) ? "0" : 
$p_order;
+                       if ($pm_default == 1)
+                       {
+                               $cn->exec_sql("update profile_menu set 
pm_default=0
+                               where p_id=(select p_id from profile_menu
+                                                               where
+                                                               pm_id=$1)", 
array($pm_id));
+                       }
+                       $cn->exec_sql("update profile_menu set 
me_code=$1,me_code_dep=$2,p_order=$3,pm_default=$4
+                       where pm_id=$5", array($me_code, $me_code_dep, 
$p_order, $pm_default, $pm_id));
+                       $cn->commit();
+               }
+               catch (Exception $e)
+               {
+                       $cn->rollback();
+                       alert($e->getMessage());
+               }
+}
+
+//****************************************************
+// Add a menu, module, submenu,plugin...
+//****************************************************
+if ( isset ($_POST['add_menu']))
+{
+       extract ($_POST);
+       try
+       {
+               $cn->start();
+
+               /**
+                * Printing cannot be a menu and do not depend of anything
+                */
+               $menu_type=$cn->get_value("select me_type from menu_ref
+                       where me_code=$1",array($me_code));
+
+               if ($menu_type=='PR')
+               {
+                       $p_type='P';
+                       $me_code_dep=-1;
+               }
+
+               // Module never depends of anything
+               if ($p_type=='M')
+               {
+                       $me_code_dep=-1;
+               }
+               /**
+                * Check for infinite loop
+                */
+               $inf=$cn->get_value("select count(*) from profile_menu
+                       where p_id=$1 and me_code_dep=$2 and me_code=$3",
+                               array($p_id,$me_code,$me_code_dep));
+               if ( $inf > 0 )                 throw new Exception("Boucle 
infinie");
+                       /**
+                * if me_code_dep == -1, it means it is null
+                */
+               $me_code_dep=($me_code_dep==-1)?null:$me_code_dep;
+
+               $pm_default=(isset($pm_default))?1:0;
+               $cn->exec_sql("
+                               insert into profile_menu 
(me_code,me_code_dep,p_id,p_order,pm_default,p_type_display)
+                               values ($1,$2,$3,$4,$5,$6)
+                               
",array($me_code,$me_code_dep,$p_id,$p_order,$pm_default,$p_type));
+
+               $cn->commit();
+
+       }
+       catch (Exception $exc)
+       {
+               echo $exc->getTraceAsString();
+               alert($exc->getMessage());
+       }
+
+
+}
+
+echo '<div id="list_profile" class="content">';
+$table = new Sort_Table();
+$url = $_SERVER['REQUEST_URI'];
+
+$table->add('Nom', $url, "order by p_name asc", "order by p_name desc", "na", 
"nd");
+$table->add('Description', $url, "order by p_desc asc", "order by p_desc 
desc", "da", "dd");
+$table->add('Calculatrice visible', $url, "order by with_calc asc", "order by 
with_calc desc", "ca", "cd");
+$table->add('Form Direct visible', $url, "order by with_direct_form asc", 
"order by with_direct_form desc", "fa", "fd");
+
+$ord = (isset($_REQUEST['ord'])) ? $_REQUEST['ord'] : 'na';
+
+$order = $table->get_sql_order($ord);
+
+$menu = new Profile_sql($cn);
+$ret = $menu->seek($order);
 echo '<table class="result">';
 echo '<tr>';
-echo '<th>'.$table->get_header(0).'</th>';
-echo '<th>'.$table->get_header(1).'</th>';
-echo '<th>'.$table->get_header(2).'</th>';
-echo '<th>'.$table->get_header(3).'</th>';
+echo '<th>' . $table->get_header(0) . '</th>';
+echo '<th>' . $table->get_header(1) . '</th>';
+echo '<th>' . $table->get_header(2) . '</th>';
+echo '<th>' . $table->get_header(3) . '</th>';
 echo '</tr>';
+$gDossier = Dossier::id();
+for ($i = 0; $i < Database::num_row($ret); $i++)
+{
+       $row = $menu->get_object($ret, $i);
 
-for ($i=0;$i<Database::num_row($ret);$i++)
-{
-       $row=$menu->get_object($ret, $i);
+       $js = sprintf('<a href="javascript:void(0)" 
style="text-decoration:underline" 
onclick="get_profile_detail(\'%s\',\'%s\')">', $gDossier, $row->p_id);
        echo '<tr>';
-       echo td($row->p_name);
+       echo "<td>" . $js . $row->p_name . '</a>' . '</td>';
        echo td($row->p_desc);
        echo td($row->with_calc);
        echo td($row->with_direct_form);
        echo '</tr>';
 }
+$js = sprintf('<a href="javascript:void(0)"  class="button" 
onclick="get_profile_detail(\'%s\',\'%s\')">', $gDossier, -1);
+echo '<tr>';
+echo "<td>".$js."Ajouter un profil </td>";
+echo '</tr>';
 echo '</table>';
 echo '</div>';
 
+
+//*******************************************************
+// Show details of the selected profile
+//*******************************************************
+echo '<div id="detail_profile" class="content">';
+if (isset($_POST['p_id']))
+{
+       require_once 'show_profile.inc.php';
+}
+echo '</div>';
 ?>

Modified: phpcompta/trunk/include/report.inc.php
===================================================================
--- phpcompta/trunk/include/report.inc.php      2011-11-10 12:58:09 UTC (rev 
4325)
+++ phpcompta/trunk/include/report.inc.php      2011-11-10 15:49:57 UTC (rev 
4326)
@@ -105,7 +105,7 @@
     if ($action == "add" && ! isset($_REQUEST['fr_id']))
     {
 
-        echo '<DIV class="u_redcontent">';
+        echo '<DIV class="redcontent">';
         echo '<h1>'._('Définition').'</h1>';
         echo '<form method="post" >';
         echo dossier::hidden();
@@ -116,7 +116,7 @@
         echo '</form>';
         echo '<span class="notice">'._("Les lignes vides seront 
effacées").'</span>';
         echo "</DIV>";
-        echo '<DIV class="u_redcontent">';
+        echo '<DIV class="redcontent">';
 
         echo '<form method="post" enctype="multipart/form-data">';
         echo '<h1> Importation</h1>';
@@ -135,7 +135,7 @@
     }
     if ($action=="view"      )
     {
-        echo '<DIV class="u_redcontent">';
+        echo '<DIV class="redcontent">';
         $rap->id=$_REQUEST ['fr_id'];
         echo '<form method="post">';
         $rap->load();

Added: phpcompta/trunk/include/show_profile.inc.php
===================================================================
--- phpcompta/trunk/include/show_profile.inc.php                                
(rev 0)
+++ phpcompta/trunk/include/show_profile.inc.php        2011-11-10 15:49:57 UTC 
(rev 4326)
@@ -0,0 +1,81 @@
+<?php
+
+/*
+ *   This file is part of PhpCompta.
+ *
+ *   PhpCompta is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   PhpCompta is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with PhpCompta; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+/* $Revision$ */
+
+// Copyright Author Dany De Bontridder address@hidden
+
+/**
+ * @file
+ * @brief show the profile detail, included from ajax_misc.php
+ * @see ajax_misc.php scripts.js profile.inc.php
+ *
+ */
+require_once 'class_profile_sql.php';
+require_once 'class_profile_menu.php';
+$profile=new Profile_sql($cn,$p_id);
+$gDossier=Dossier::id();
+$add_one=HtmlInput::button("add", "Ajout 
Menu","onclick=\"add_menu({dossier:$gDossier,p_id:$p_id})\"")
+?>
+<hr>
+<h1>Profile <?=$profile->p_name?></h1>
+
+<?
+$id=HtmlInput::hidden('p_id',$profile->p_id);
+$name=new IText("p_name",$profile->p_name);
+$desc=new IText("p_desc",$profile->p_desc);
+$with_calc=new ICheckBox("with_calc","t");
+$with_calc->set_check($profile->with_calc);
+
+$with_direct_form=new ICheckBox("with_direct_form","t");
+$with_direct_form->set_check($profile->with_direct_form);
+
+echo '<form method="POST" onsubmit="return confirm (\'vous confirmez\')">';
+echo HtmlInput::hidden('p_id',$profile->p_id);
+require_once("template/profile.php");
+echo HtmlInput::submit("save_name","Modifier");
+echo '</form>';
+
+echo '<form method="POST" onsubmit="return confirm (\'vous confirmez\')">';
+
+echo '
+Vous pouvez aussi copier ce profil et puis le corriger';
+
+echo HtmlInput::hidden('p_id',$profile->p_id);
+echo HtmlInput::submit("clone","Copier");
+echo '</form>';
+
+echo '<form method="POST" onsubmit="return confirm (\'vous confirmez\')">';
+
+echo '
+Effacer ce profil';
+
+echo HtmlInput::hidden('p_id',$profile->p_id);
+echo HtmlInput::submit("delete_profil","Effacer ce profil");
+echo '</form>';
+//Menu / Module /plugin in this profile
+echo "<h1> Détail du profile</h1>";
+echo "<h2>Menu</h2>";
+echo $add_one;
+$profile_menu=new Profile_Menu($cn);
+$profile_menu->listing_profile($p_id);
+echo "<h2>Impression</h2>";
+$profile_menu->printing($p_id);
+?>
+<?=$add_one?>

Modified: phpcompta/trunk/include/stock.inc.php
===================================================================
--- phpcompta/trunk/include/stock.inc.php       2011-11-10 12:58:09 UTC (rev 
4325)
+++ phpcompta/trunk/include/stock.inc.php       2011-11-10 15:49:57 UTC (rev 
4326)
@@ -137,7 +137,7 @@
     $b="";
 
 
-    echo '<div class="u_redcontent" style="margin-left:10%">' ;
+    echo '<div class="redcontent" style="margin-left:10%">' ;
     echo $a;
     echo '<div style="float:left;clear:both">';
 
@@ -180,7 +180,7 @@
 
 
 // Show the current stock
-echo '<div class="u_redcontent">';
+echo '<div class="redcontent">';
 echo $r;
 $a=ViewStock($cn,$year);
 if ( $a != null )

Added: phpcompta/trunk/include/template/add_menu.php
===================================================================
--- phpcompta/trunk/include/template/add_menu.php                               
(rev 0)
+++ phpcompta/trunk/include/template/add_menu.php       2011-11-10 15:49:57 UTC 
(rev 4326)
@@ -0,0 +1,86 @@
+<?php
+
+/*
+ *   This file is part of PhpCompta.
+ *
+ *   PhpCompta is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   PhpCompta is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with PhpCompta; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+/* $Revision$ */
+
+// Copyright Author Dany De Bontridder address@hidden
+
+/**
+ * @file
+ * @brief show the form to add a menu
+ */
+$ame_code_dep=$cn->make_array("
+       select me_code,me_code||' '||me_menu||' '||coalesce(me_description,'') 
from
+       menu_ref
+       where
+       me_file is null and me_javascript is null and me_type<>'PR'
+               UNION ALL
+               select me_code,me_code||' '||me_menu||' 
'||coalesce(me_description,'') from menu_ref
+       where
+               me_code='EXTENSION'
+       order by 1
+       ",1);
+$ame_code=$cn->make_array("
+       select me_code,me_code||' '||me_menu||' '||coalesce(me_description,'') 
from
+       menu_ref
+       order by 1
+       ");
+$p_order=new INum("p_order","10");
+$atype=$cn->make_array("select pm_type,pm_desc from profile_menu_type order by 
1");
+
+$me_code=new ISelect('me_code');
+$me_code->value=$ame_code;
+
+$me_code_dep=new ISelect('me_code_dep');
+$me_code_dep->value=$ame_code_dep;
+
+$p_type=new ISelect('p_type');
+$p_type->value=$atype;
+$pm_default=new ICheckBox('pm_default');
+echo HtmlInput::title_box("Nouveau menu", $ctl);
+?>
+<form method="POST">
+       <?=HtmlInput::hidden('p_id',$p_id)?>
+<table>
+<tr>
+       <td>Code</td>
+       <td><?=$me_code->input()?></td>
+</tr>
+<tr>
+       <td>Dépendant de </td>
+       <td><?=$me_code_dep->input()?></td>
+</tr>
+
+<tr>
+       <td>Ordre d'apparition</td>
+       <td><?=$p_order->input()?></td>
+</tr>
+<tr>
+       <td>Menu par défaut</td>
+       <td><?=$pm_default->input()?></td>
+</tr>
+<tr>
+       <td>Type de menu</td>
+       <td><?=$p_type->input()?></td>
+</tr>
+</table>
+<?
+echo HtmlInput::submit('add_menu',"Valider");
+echo '</form>';
+?>

Added: phpcompta/trunk/include/template/plugin_detail.php
===================================================================
--- phpcompta/trunk/include/template/plugin_detail.php                          
(rev 0)
+++ phpcompta/trunk/include/template/plugin_detail.php  2011-11-10 15:49:57 UTC 
(rev 4326)
@@ -0,0 +1,62 @@
+<?php
+
+/*
+ *   This file is part of PhpCompta.
+ *
+ *   PhpCompta is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   PhpCompta is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with PhpCompta; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+/* $Revision$ */
+
+// Copyright Author Dany De Bontridder address@hidden
+
+/**
+ * @file
+ * @brief add, modify or delete plugin
+ *
+ */
+$msg=($new==1)?"Nouvelle extension":"Modification ".$me_menu->value;
+echo HtmlInput::title_box($msg, $ctl);
+?>
+<form method="POST" onsubmit="return confirm('Vous confirmez')">
+<table>
+       <tr>
+               <TD>Label</td>
+               <td><?=$me_menu->input();?></td>
+       </tr>
+       <tr>
+               <TD>Code</td>
+               <td><?=$me_code->input();?></td>
+       </tr>
+       <tr>
+               <TD>Description</td>
+               <td><?=$me_description->input();?></td>
+       </tr>
+       <tr>
+               <TD>Fichier</td>
+               <td><?=$me_file->input();?></td>
+       </tr>
+</table>
+       <?
+       if ($new ==1 )
+       {
+               echo HtmlInput::submit("save_plugin","Ajouter ce plugin");
+       } else {
+               $delete=new ICheckBox('delete_pl');
+               echo "<p>Voulez-vous effacer ce plugin ? 
".$delete->input()."</p>";
+               echo HtmlInput::submit("mod_plugin","Modifier ce plugin");
+
+       }
+       ?>
+</form>
\ No newline at end of file

Added: phpcompta/trunk/include/template/profile.php
===================================================================
--- phpcompta/trunk/include/template/profile.php                                
(rev 0)
+++ phpcompta/trunk/include/template/profile.php        2011-11-10 15:49:57 UTC 
(rev 4326)
@@ -0,0 +1,48 @@
+<?php
+
+/*
+ *   This file is part of PhpCompta.
+ *
+ *   PhpCompta is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   PhpCompta is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with PhpCompta; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+/* $Revision$ */
+
+// Copyright Author Dany De Bontridder address@hidden
+
+/**
+ * @file
+ * @brief show a profile
+ *
+ */
+
+?>
+<table>
+<tr>
+       <td>Nom</td>
+       <td><?=$name->input();?></td>
+</tr>
+<tr>
+       <td>Description</td>
+       <td><?=$desc->input()?></td>
+</tr>
+<tr>
+       <td>Avec Calculatrice</td>
+       <td><?=$with_calc->input()?></td>
+</tr>
+<tr>
+       <td>Avec Direct Form</td>
+       <td><?=$with_direct_form->input()?></td>
+</tr>
+</table>
\ No newline at end of file

Added: phpcompta/trunk/include/template/profile_menu.php
===================================================================
--- phpcompta/trunk/include/template/profile_menu.php                           
(rev 0)
+++ phpcompta/trunk/include/template/profile_menu.php   2011-11-10 15:49:57 UTC 
(rev 4326)
@@ -0,0 +1,30 @@
+<?php
+
+/*
+ *   This file is part of PhpCompta.
+ *
+ *   PhpCompta is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   PhpCompta is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with PhpCompta; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+/* $Revision$ */
+
+// Copyright Author Dany De Bontridder address@hidden
+
+/**
+ * @file
+ * @brief show all the menu and submenu of this profile
+ *
+ */
+
+?>

Modified: phpcompta/trunk/sql/backup-new-object.sh
===================================================================
--- phpcompta/trunk/sql/backup-new-object.sh    2011-11-10 12:58:09 UTC (rev 
4325)
+++ phpcompta/trunk/sql/backup-new-object.sh    2011-11-10 15:49:57 UTC (rev 
4326)
@@ -1 +1 @@
-pg_dump testdossier82 --inserts -t profile -t menu_ref -t profile_menu -t 
profile_user -t v_all_menu > object-6.0.sql
+pg_dump testdossier82 --inserts -t profile -t menu_ref -t profile_menu -t 
profile_user -t profile_menu_type -t v_all_menu > object-6.0.sql

Added: phpcompta/trunk/sql/change_account_repo.sql
===================================================================
--- phpcompta/trunk/sql/change_account_repo.sql                         (rev 0)
+++ phpcompta/trunk/sql/change_account_repo.sql 2011-11-10 15:49:57 UTC (rev 
4326)
@@ -0,0 +1,5 @@
+-- Check: valid_state
+ ALTER TABLE audit_connect DROP CONSTRAINT valid_state;
+
+ALTER TABLE audit_connect
+  ADD CONSTRAINT valid_state CHECK (ac_state = 'FAIL'::text OR ac_state = 
'SUCCESS'::text or ac_state='AUDIT');

Modified: phpcompta/trunk/sql/object-6.0.sql
===================================================================
--- phpcompta/trunk/sql/object-6.0.sql  2011-11-10 12:58:09 UTC (rev 4325)
+++ phpcompta/trunk/sql/object-6.0.sql  2011-11-10 15:49:57 UTC (rev 4326)
@@ -200,10 +200,22 @@
 -- Name: profile_menu_pm_id_seq; Type: SEQUENCE SET; Schema: public; Owner: 
dany
 --
 
-SELECT pg_catalog.setval('profile_menu_pm_id_seq', 172, true);
+SELECT pg_catalog.setval('profile_menu_pm_id_seq', 302, true);
 
 
 --
+-- Name: profile_menu_type; Type: TABLE; Schema: public; Owner: dany; 
Tablespace: 
+--
+
+CREATE TABLE profile_menu_type (
+    pm_type text NOT NULL,
+    pm_desc text
+);
+
+
+ALTER TABLE public.profile_menu_type OWNER TO dany;
+
+--
 -- Name: profile_p_id_seq; Type: SEQUENCE; Schema: public; Owner: dany
 --
 
@@ -228,7 +240,7 @@
 -- Name: profile_p_id_seq; Type: SEQUENCE SET; Schema: public; Owner: dany
 --
 
-SELECT pg_catalog.setval('profile_p_id_seq', 1, true);
+SELECT pg_catalog.setval('profile_p_id_seq', 7, true);
 
 
 --
@@ -328,13 +340,13 @@
 -- Data for Name: menu_ref; Type: TABLE DATA; Schema: public; Owner: dany
 --
 
-INSERT INTO menu_ref VALUES ('MODOP', 'Correction Opération', 
'modop/index.php', NULL, 'Correction d''écritures comptables', 
'plugin_code=MODOP', NULL, 'PL');
 INSERT INTO menu_ref VALUES ('IMPCARD', 'Import Fiche', 
'import_card/index.php', NULL, 'Importation de fiches', 'plugin_code=IMPCARD', 
NULL, 'PL');
 INSERT INTO menu_ref VALUES ('AMORTIS', 'Amortissement', 'amortis/index.php', 
NULL, 'Amortissement', 'plugin_code=AMORTIS', NULL, 'PL');
 INSERT INTO menu_ref VALUES ('TOOLPLAN', 'Import/export plan', 
'tool_pcmn/index.php', NULL, 'Importation /export de plan comptable', 
'plugin_code=TOOLPLAN', NULL, 'PL');
 INSERT INTO menu_ref VALUES ('IMPORTBANK', 'Importation banque', 
'importbank/index.php', NULL, 'Import. fichier CVS de la banque', 
'plugin_code=IMPORTBANK', NULL, 'PL');
 INSERT INTO menu_ref VALUES ('TOOL', 'Outil comptable', 'tools/index.php', 
NULL, 'Outil comptable', 'plugin_code=TOOL', NULL, 'PL');
 INSERT INTO menu_ref VALUES ('TVA', 'Module de TVA', 'tva/index.php', NULL, 
'Cette extension permet de faire les listings et declarations TVA', 
'plugin_code=TVA', NULL, 'PL');
+INSERT INTO menu_ref VALUES ('TEST', 'Cela va marcher', 'amortis/index.php', 
NULL, 'Test description', '0', NULL, 'PL');
 INSERT INTO menu_ref VALUES ('ACH', 'Achat', 'compta_ach.inc.php', NULL, NULL, 
NULL, NULL, 'ME');
 INSERT INTO menu_ref VALUES ('CSV:AncBalGroup', 'Export Balance groupe 
analytique', NULL, NULL, NULL, NULL, NULL, 'PR');
 INSERT INTO menu_ref VALUES ('OTH:Bilan', 'Export Bilan', NULL, NULL, NULL, 
NULL, NULL, 'PR');
@@ -345,6 +357,7 @@
 INSERT INTO menu_ref VALUES ('CFGMENU', 'Config. Menu', 'menu.inc.php', NULL, 
NULL, NULL, NULL, 'ME');
 INSERT INTO menu_ref VALUES ('MODULARITY', 'Menu et profile', NULL, NULL, 
NULL, NULL, NULL, 'ME');
 INSERT INTO menu_ref VALUES ('CFGPROFILE', 'Profile', 'profile.inc.php', NULL, 
NULL, NULL, NULL, 'ME');
+INSERT INTO menu_ref VALUES ('TESTTVA', 'Test TVA', 'tva/index.php', NULL, 
'Test description', 'plugin_code=TESTTVA', NULL, 'PL');
 INSERT INTO menu_ref VALUES ('SEARCH', 'Recherche', NULL, NULL, NULL, NULL, 
'popup_recherche()', 'ME');
 INSERT INTO menu_ref VALUES ('COMPANY', 'Sociétés', 'company.inc.php', NULL, 
'Parametre societe', NULL, NULL, 'ME');
 INSERT INTO menu_ref VALUES ('PERIODE', 'Période', 'periode.inc.php', NULL, 
'Gestion des périodes', NULL, NULL, 'ME');
@@ -442,138 +455,241 @@
 INSERT INTO menu_ref VALUES ('PRINTBAL', 'Balance', 'balance.inc.php', NULL, 
NULL, NULL, NULL, 'ME');
 INSERT INTO menu_ref VALUES ('PRINTCARD', 'Catégorie de Fiches', 
'impress_fiche.inc.php', NULL, NULL, NULL, NULL, 'ME');
 INSERT INTO menu_ref VALUES ('PRINT', 'Impression', NULL, NULL, NULL, NULL, 
NULL, 'ME');
+INSERT INTO menu_ref VALUES ('MODOP', 'Modification d''opérations', 
'modop/index.php', NULL, 'Modification opérations', 'plugin_code=MODOP', NULL, 
'PL');
 
 
 --
 -- Data for Name: profile; Type: TABLE DATA; Schema: public; Owner: dany
 --
 
-INSERT INTO profile VALUES ('Analytique', 2, 'Uniquement comptabilité 
analytique', true, true);
-INSERT INTO profile VALUES ('Vente', 3, 'Uniquement vente', true, true);
-INSERT INTO profile VALUES ('default', 1, 'Profil par défaut', true, true);
+INSERT INTO profile VALUES ('Administrateur', 1, 'Profil par défaut pour les 
adminstrateurs', true, true);
+INSERT INTO profile VALUES ('Utilisateur', 6, 'Profil par défaut pour les 
Utilisateurs', true, true);
 
 
 --
 -- Data for Name: profile_menu; Type: TABLE DATA; Schema: public; Owner: dany
 --
 
-INSERT INTO profile_menu VALUES (51, 'COMPTA', NULL, 3, 1, 'M', NULL);
-INSERT INTO profile_menu VALUES (52, 'VEN', 'COMPTA', 3, 1, 'E', NULL);
-INSERT INTO profile_menu VALUES (54, 'COMPANY', 'PARAM', 1, 1, 'E', NULL);
-INSERT INTO profile_menu VALUES (55, 'PERIODE', 'PARAM', 1, 2, 'E', NULL);
-INSERT INTO profile_menu VALUES (56, 'DIVPARM', 'PARAM', 1, 3, 'E', NULL);
-INSERT INTO profile_menu VALUES (59, 'CFGPAYMENT', 'DIVPARM', 1, 4, 'E', NULL);
-INSERT INTO profile_menu VALUES (60, 'CFGTVA', 'DIVPARM', 1, 5, 'E', NULL);
-INSERT INTO profile_menu VALUES (61, 'CFGACCOUNT', 'DIVPARM', 1, 6, 'E', NULL);
-INSERT INTO profile_menu VALUES (67, 'CFGCATDOC', 'DIVPARM', 1, 8, 'E', NULL);
-INSERT INTO profile_menu VALUES (68, 'CFGATTRIBCARD', 'DIVPARM', 1, 9, 'E', 
NULL);
-INSERT INTO profile_menu VALUES (69, 'CFGPCMN', 'PARAM', 1, 4, 'E', NULL);
-INSERT INTO profile_menu VALUES (70, 'CFGEXTENSION', 'PARAM', 1, 5, 'E', NULL);
-INSERT INTO profile_menu VALUES (71, 'CFGSECURITY', 'PARAM', 1, 6, 'E', NULL);
-INSERT INTO profile_menu VALUES (72, 'PREDOP', 'PARAM', 1, 7, 'E', NULL);
-INSERT INTO profile_menu VALUES (73, 'CFGDOCUMENT', 'PARAM', 1, 8, 'E', NULL);
-INSERT INTO profile_menu VALUES (74, 'CFGLEDGER', 'PARAM', 1, 9, 'E', NULL);
-INSERT INTO profile_menu VALUES (75, 'PLANANC', 'ANC', 1, 1, 'E', NULL);
-INSERT INTO profile_menu VALUES (65, 'CFGCARDCAT', 'DIVPARM', 1, 7, 'E', NULL);
-INSERT INTO profile_menu VALUES (76, 'ANCODS', 'ANC', 1, 2, 'E', NULL);
-INSERT INTO profile_menu VALUES (77, 'ANCGROUP', 'ANC', 1, 3, 'E', NULL);
-INSERT INTO profile_menu VALUES (78, 'ANCIMP', 'ANC', 1, 4, 'E', NULL);
-INSERT INTO profile_menu VALUES (23, 'LETTER', 'COMPTA', 1, 8, 'E', NULL);
-INSERT INTO profile_menu VALUES (24, 'LETTERCARD', 'LETTER', 1, 1, 'E', NULL);
-INSERT INTO profile_menu VALUES (27, 'LETTERACC', 'LETTER', 1, 2, 'E', NULL);
-INSERT INTO profile_menu VALUES (37, 'CUST', 'GESTION', 1, 1, 'E', NULL);
-INSERT INTO profile_menu VALUES (38, 'SUPPL', 'GESTION', 1, 2, 'E', NULL);
-INSERT INTO profile_menu VALUES (39, 'ADM', 'GESTION', 1, 3, 'E', NULL);
-INSERT INTO profile_menu VALUES (36, 'CARD', 'GESTION', 1, 6, 'E', NULL);
-INSERT INTO profile_menu VALUES (40, 'STOCK', 'GESTION', 1, 5, 'E', NULL);
-INSERT INTO profile_menu VALUES (41, 'FORECAST', 'GESTION', 1, 7, 'E', NULL);
-INSERT INTO profile_menu VALUES (42, 'FOLLOW', 'GESTION', 1, 8, 'E', NULL);
-INSERT INTO profile_menu VALUES (29, 'VERIFBIL', 'ADV', 1, 21, 'E', NULL);
-INSERT INTO profile_menu VALUES (30, 'STOCK', 'ADV', 1, 22, 'E', NULL);
-INSERT INTO profile_menu VALUES (31, 'PREDOP', 'ADV', 1, 23, 'E', NULL);
-INSERT INTO profile_menu VALUES (32, 'OPEN', 'ADV', 1, 24, 'E', NULL);
-INSERT INTO profile_menu VALUES (33, 'REPORT', 'ADV', 1, 25, 'E', NULL);
-INSERT INTO profile_menu VALUES (5, 'CARD', 'COMPTA', 1, 7, 'E', NULL);
-INSERT INTO profile_menu VALUES (43, 'HIST', 'COMPTA', 1, 1, 'E', NULL);
-INSERT INTO profile_menu VALUES (94, 'FINSALDO', 'MENUFIN', 1, 3, 'E', NULL);
-INSERT INTO profile_menu VALUES (95, 'FINREC', 'MENUFIN', 1, 4, 'E', NULL);
-INSERT INTO profile_menu VALUES (79, 'PREFERENCE', NULL, 1, 15, 'M', NULL);
-INSERT INTO profile_menu VALUES (28, 'ADV', 'COMPTA', 1, 20, 'E', NULL);
-INSERT INTO profile_menu VALUES (45, 'PARAM', NULL, 1, 20, 'M', NULL);
-INSERT INTO profile_menu VALUES (53, 'ACCESS', NULL, 1, 25, 'M', NULL);
-INSERT INTO profile_menu VALUES (123, 'CSV:histo', NULL, 1, NULL, 'P', NULL);
-INSERT INTO profile_menu VALUES (20, 'LOGOUT', NULL, 1, 30, 'M', NULL);
-INSERT INTO profile_menu VALUES (44, 'DASHBOARD', NULL, 1, 10, 'M', 1);
-INSERT INTO profile_menu VALUES (35, 'PRINT', 'GESTION', 1, 4, 'E', NULL);
-INSERT INTO profile_menu VALUES (156, 'new_line', NULL, 1, 35, 'M', NULL);
-INSERT INTO profile_menu VALUES (124, 'CSV:ledger', NULL, 1, NULL, 'P', NULL);
-INSERT INTO profile_menu VALUES (80, 'PLANANC', 'ANC', 2, 1, 'E', NULL);
-INSERT INTO profile_menu VALUES (125, 'PDF:ledger', NULL, 1, NULL, 'P', NULL);
-INSERT INTO profile_menu VALUES (6, 'PRINT', 'COMPTA', 1, 6, 'E', NULL);
-INSERT INTO profile_menu VALUES (126, 'CSV:postedetail', NULL, 1, NULL, 'P', 
NULL);
-INSERT INTO profile_menu VALUES (1, 'COMPTA', NULL, 1, 40, 'M', 0);
-INSERT INTO profile_menu VALUES (164, 'TVA', 'EXTENSION', 1, NULL, 'S', NULL);
-INSERT INTO profile_menu VALUES (3, 'MENUACH', 'COMPTA', 1, 3, 'E', NULL);
-INSERT INTO profile_menu VALUES (86, 'ACHIMP', 'MENUACH', 1, 2, 'E', NULL);
-INSERT INTO profile_menu VALUES (34, 'GESTION', NULL, 1, 45, 'M', NULL);
-INSERT INTO profile_menu VALUES (18, 'MENUODS', 'COMPTA', 1, 5, 'E', NULL);
-INSERT INTO profile_menu VALUES (88, 'ODS', 'MENUODS', 1, 1, 'E', NULL);
-INSERT INTO profile_menu VALUES (89, 'ODSIMP', 'MENUODS', 1, 2, 'E', NULL);
+INSERT INTO profile_menu VALUES (54, 'COMPANY', 'PARAM', 1, 1, 'E', 0);
+INSERT INTO profile_menu VALUES (173, 'COMPTA', NULL, 1, 40, 'M', NULL);
+INSERT INTO profile_menu VALUES (55, 'PERIODE', 'PARAM', 1, 2, 'E', 0);
+INSERT INTO profile_menu VALUES (56, 'DIVPARM', 'PARAM', 1, 3, 'E', 0);
+INSERT INTO profile_menu VALUES (59, 'CFGPAYMENT', 'DIVPARM', 1, 4, 'E', 0);
+INSERT INTO profile_menu VALUES (60, 'CFGTVA', 'DIVPARM', 1, 5, 'E', 0);
+INSERT INTO profile_menu VALUES (61, 'CFGACCOUNT', 'DIVPARM', 1, 6, 'E', 0);
+INSERT INTO profile_menu VALUES (67, 'CFGCATDOC', 'DIVPARM', 1, 8, 'E', 0);
+INSERT INTO profile_menu VALUES (175, 'COMPTA', NULL, 6, 40, 'M', NULL);
+INSERT INTO profile_menu VALUES (68, 'CFGATTRIBCARD', 'DIVPARM', 1, 9, 'E', 0);
+INSERT INTO profile_menu VALUES (69, 'CFGPCMN', 'PARAM', 1, 4, 'E', 0);
+INSERT INTO profile_menu VALUES (70, 'CFGEXTENSION', 'PARAM', 1, 5, 'E', 0);
+INSERT INTO profile_menu VALUES (178, 'CFGPAYMENT', 'DIVPARM', 6, 4, 'E', 0);
+INSERT INTO profile_menu VALUES (179, 'CFGTVA', 'DIVPARM', 6, 5, 'E', 0);
+INSERT INTO profile_menu VALUES (180, 'CFGACCOUNT', 'DIVPARM', 6, 6, 'E', 0);
+INSERT INTO profile_menu VALUES (181, 'CFGCATDOC', 'DIVPARM', 6, 8, 'E', 0);
+INSERT INTO profile_menu VALUES (71, 'CFGSECURITY', 'PARAM', 1, 6, 'E', 0);
+INSERT INTO profile_menu VALUES (182, 'CFGATTRIBCARD', 'DIVPARM', 6, 9, 'E', 
0);
+INSERT INTO profile_menu VALUES (189, 'PLANANC', 'ANC', 6, 1, 'E', 0);
+INSERT INTO profile_menu VALUES (190, 'CFGCARDCAT', 'DIVPARM', 6, 7, 'E', 0);
+INSERT INTO profile_menu VALUES (191, 'ANCODS', 'ANC', 6, 2, 'E', 0);
+INSERT INTO profile_menu VALUES (192, 'ANCGROUP', 'ANC', 6, 3, 'E', 0);
+INSERT INTO profile_menu VALUES (193, 'ANCIMP', 'ANC', 6, 4, 'E', 0);
+INSERT INTO profile_menu VALUES (194, 'LETTER', 'COMPTA', 6, 8, 'E', 0);
+INSERT INTO profile_menu VALUES (196, 'PREFERENCE', NULL, 6, 15, 'M', 1);
+INSERT INTO profile_menu VALUES (197, 'LETTERCARD', 'LETTER', 6, 1, 'E', 0);
+INSERT INTO profile_menu VALUES (72, 'PREDOP', 'PARAM', 1, 7, 'E', 0);
+INSERT INTO profile_menu VALUES (198, 'LETTERACC', 'LETTER', 6, 2, 'E', 0);
+INSERT INTO profile_menu VALUES (199, 'CUST', 'GESTION', 6, 1, 'E', 0);
+INSERT INTO profile_menu VALUES (200, 'SUPPL', 'GESTION', 6, 2, 'E', 0);
+INSERT INTO profile_menu VALUES (201, 'ADM', 'GESTION', 6, 3, 'E', 0);
+INSERT INTO profile_menu VALUES (202, 'CARD', 'GESTION', 6, 6, 'E', 0);
+INSERT INTO profile_menu VALUES (73, 'CFGDOCUMENT', 'PARAM', 1, 8, 'E', 0);
+INSERT INTO profile_menu VALUES (203, 'STOCK', 'GESTION', 6, 5, 'E', 0);
+INSERT INTO profile_menu VALUES (204, 'FORECAST', 'GESTION', 6, 7, 'E', 0);
+INSERT INTO profile_menu VALUES (205, 'FOLLOW', 'GESTION', 6, 8, 'E', 0);
+INSERT INTO profile_menu VALUES (74, 'CFGLEDGER', 'PARAM', 1, 9, 'E', 0);
+INSERT INTO profile_menu VALUES (206, 'VERIFBIL', 'ADV', 6, 21, 'E', 0);
+INSERT INTO profile_menu VALUES (207, 'STOCK', 'ADV', 6, 22, 'E', 0);
+INSERT INTO profile_menu VALUES (208, 'PREDOP', 'ADV', 6, 23, 'E', 0);
+INSERT INTO profile_menu VALUES (75, 'PLANANC', 'ANC', 1, 1, 'E', 0);
+INSERT INTO profile_menu VALUES (209, 'OPEN', 'ADV', 6, 24, 'E', 0);
+INSERT INTO profile_menu VALUES (65, 'CFGCARDCAT', 'DIVPARM', 1, 7, 'E', 0);
+INSERT INTO profile_menu VALUES (76, 'ANCODS', 'ANC', 1, 2, 'E', 0);
+INSERT INTO profile_menu VALUES (210, 'REPORT', 'ADV', 6, 25, 'E', 0);
+INSERT INTO profile_menu VALUES (211, 'CARD', 'COMPTA', 6, 7, 'E', 0);
+INSERT INTO profile_menu VALUES (77, 'ANCGROUP', 'ANC', 1, 3, 'E', 0);
+INSERT INTO profile_menu VALUES (212, 'HIST', 'COMPTA', 6, 1, 'E', 0);
+INSERT INTO profile_menu VALUES (213, 'FINSALDO', 'MENUFIN', 6, 3, 'E', 0);
+INSERT INTO profile_menu VALUES (214, 'FINREC', 'MENUFIN', 6, 4, 'E', 0);
+INSERT INTO profile_menu VALUES (215, 'ADV', 'COMPTA', 6, 20, 'E', 0);
+INSERT INTO profile_menu VALUES (216, 'ACCESS', NULL, 6, 25, 'M', 0);
+INSERT INTO profile_menu VALUES (217, 'CSV:histo', NULL, 6, NULL, 'P', 0);
+INSERT INTO profile_menu VALUES (78, 'ANCIMP', 'ANC', 1, 4, 'E', 0);
+INSERT INTO profile_menu VALUES (218, 'LOGOUT', NULL, 6, 30, 'M', 0);
+INSERT INTO profile_menu VALUES (219, 'PRINT', 'GESTION', 6, 4, 'E', 0);
+INSERT INTO profile_menu VALUES (220, 'new_line', NULL, 6, 35, 'M', 0);
+INSERT INTO profile_menu VALUES (221, 'CSV:ledger', NULL, 6, NULL, 'P', 0);
+INSERT INTO profile_menu VALUES (222, 'PDF:ledger', NULL, 6, NULL, 'P', 0);
+INSERT INTO profile_menu VALUES (223, 'PRINT', 'COMPTA', 6, 6, 'E', 0);
+INSERT INTO profile_menu VALUES (224, 'CSV:postedetail', NULL, 6, NULL, 'P', 
0);
+INSERT INTO profile_menu VALUES (225, 'TVA', 'EXTENSION', 6, NULL, 'S', 0);
+INSERT INTO profile_menu VALUES (226, 'MENUACH', 'COMPTA', 6, 3, 'E', 0);
+INSERT INTO profile_menu VALUES (227, 'ACHIMP', 'MENUACH', 6, 2, 'E', 0);
+INSERT INTO profile_menu VALUES (228, 'GESTION', NULL, 6, 45, 'M', 0);
+INSERT INTO profile_menu VALUES (229, 'MENUODS', 'COMPTA', 6, 5, 'E', 0);
+INSERT INTO profile_menu VALUES (23, 'LETTER', 'COMPTA', 1, 8, 'E', 0);
+INSERT INTO profile_menu VALUES (45, 'PARAM', NULL, 1, 20, 'M', 0);
+INSERT INTO profile_menu VALUES (230, 'ODS', 'MENUODS', 6, 1, 'E', 0);
+INSERT INTO profile_menu VALUES (231, 'ODSIMP', 'MENUODS', 6, 2, 'E', 0);
+INSERT INTO profile_menu VALUES (232, 'ANC', NULL, 6, 50, 'M', 0);
+INSERT INTO profile_menu VALUES (234, 'VENMENU', 'COMPTA', 6, 2, 'E', 0);
+INSERT INTO profile_menu VALUES (235, 'VEN', 'VENMENU', 6, 1, 'E', 0);
+INSERT INTO profile_menu VALUES (236, 'VENIMP', 'VENMENU', 6, 2, 'E', 0);
+INSERT INTO profile_menu VALUES (237, 'EXTENSION', NULL, 6, 55, 'M', 0);
+INSERT INTO profile_menu VALUES (238, 'FIN', 'MENUFIN', 6, 1, 'E', 0);
+INSERT INTO profile_menu VALUES (239, 'MENUFIN', 'COMPTA', 6, 4, 'E', 0);
+INSERT INTO profile_menu VALUES (240, 'FINIMP', 'MENUFIN', 6, 2, 'E', 0);
+INSERT INTO profile_menu VALUES (241, 'IMPCARD', 'EXTENSION', 6, NULL, 'S', 0);
+INSERT INTO profile_menu VALUES (242, 'AMORTIS', 'EXTENSION', 6, NULL, 'S', 0);
+INSERT INTO profile_menu VALUES (243, 'TOOLPLAN', 'EXTENSION', 6, NULL, 'S', 
0);
+INSERT INTO profile_menu VALUES (244, 'SEARCH', NULL, 6, 60, 'M', 0);
+INSERT INTO profile_menu VALUES (245, 'ACH', 'MENUACH', 6, 1, 'E', 0);
+INSERT INTO profile_menu VALUES (246, 'PRINTJRN', 'IMP', 6, 14, 'E', 0);
+INSERT INTO profile_menu VALUES (247, 'PRINTREC', 'IMP', 6, 9, 'E', 0);
+INSERT INTO profile_menu VALUES (248, 'PRINTPOSTE', 'IMP', 6, 8, 'E', 0);
+INSERT INTO profile_menu VALUES (249, 'PRINTREPORT', 'IMP', 6, 10, 'E', 0);
+INSERT INTO profile_menu VALUES (250, 'PRINTBILAN', 'IMP', 6, 11, 'E', 0);
+INSERT INTO profile_menu VALUES (251, 'PRINTGL', 'IMP', 6, 13, 'E', 0);
+INSERT INTO profile_menu VALUES (252, 'PRINTBAL', 'IMP', 6, 15, 'E', 0);
+INSERT INTO profile_menu VALUES (253, 'PRINTCARD', 'IMP', 6, 12, 'E', 0);
+INSERT INTO profile_menu VALUES (254, 'IMPORTBANK', 'EXTENSION', 6, NULL, 'S', 
0);
+INSERT INTO profile_menu VALUES (255, 'TOOL', 'EXTENSION', 6, NULL, 'S', 0);
+INSERT INTO profile_menu VALUES (256, 'AMORTIS', 'MENUACH', 6, 10, 'E', 0);
+INSERT INTO profile_menu VALUES (258, 'CFGMENU', 'MODULARITY', 6, NULL, 'E', 
0);
+INSERT INTO profile_menu VALUES (259, 'CFGPROFILE', 'MODULARITY', 6, NULL, 
'E', 0);
+INSERT INTO profile_menu VALUES (260, 'PDF:postedetail', NULL, 6, NULL, 'P', 
0);
+INSERT INTO profile_menu VALUES (261, 'CSV:fichedetail', NULL, 6, NULL, 'P', 
0);
+INSERT INTO profile_menu VALUES (262, 'PDF:fichedetail', NULL, 6, NULL, 'P', 
0);
+INSERT INTO profile_menu VALUES (263, 'CSV:fiche_balance', NULL, 6, NULL, 'P', 
0);
+INSERT INTO profile_menu VALUES (264, 'PDF:fiche_balance', NULL, 6, NULL, 'P', 
0);
+INSERT INTO profile_menu VALUES (265, 'CSV:report', NULL, 6, NULL, 'P', 0);
+INSERT INTO profile_menu VALUES (266, 'PDF:report', NULL, 6, NULL, 'P', 0);
+INSERT INTO profile_menu VALUES (267, 'CSV:fiche', NULL, 6, NULL, 'P', 0);
+INSERT INTO profile_menu VALUES (268, 'PDF:fiche', NULL, 6, NULL, 'P', 0);
+INSERT INTO profile_menu VALUES (269, 'CSV:glcompte', NULL, 6, NULL, 'P', 0);
+INSERT INTO profile_menu VALUES (270, 'PDF:glcompte', NULL, 6, NULL, 'P', 0);
+INSERT INTO profile_menu VALUES (271, 'PDF:sec', NULL, 6, NULL, 'P', 0);
+INSERT INTO profile_menu VALUES (272, 'CSV:AncList', NULL, 6, NULL, 'P', 0);
+INSERT INTO profile_menu VALUES (273, 'CSV:AncBalSimple', NULL, 6, NULL, 'P', 
0);
+INSERT INTO profile_menu VALUES (274, 'PDF:AncBalSimple', NULL, 6, NULL, 'P', 
0);
+INSERT INTO profile_menu VALUES (275, 'CSV:AncBalDouble', NULL, 6, NULL, 'P', 
0);
+INSERT INTO profile_menu VALUES (276, 'PDF:AncBalDouble', NULL, 6, NULL, 'P', 
0);
+INSERT INTO profile_menu VALUES (277, 'CSV:balance', NULL, 6, NULL, 'P', 0);
+INSERT INTO profile_menu VALUES (278, 'PDF:balance', NULL, 6, NULL, 'P', 0);
+INSERT INTO profile_menu VALUES (279, 'CSV:AncTable', NULL, 6, NULL, 'P', 0);
+INSERT INTO profile_menu VALUES (280, 'CSV:AncAccList', NULL, 6, NULL, 'P', 0);
+INSERT INTO profile_menu VALUES (281, 'CSV:AncBalGroup', NULL, 6, NULL, 'P', 
0);
+INSERT INTO profile_menu VALUES (282, 'OTH:Bilan', NULL, 6, NULL, 'P', 0);
+INSERT INTO profile_menu VALUES (79, 'PREFERENCE', NULL, 1, 15, 'M', 1);
+INSERT INTO profile_menu VALUES (24, 'LETTERCARD', 'LETTER', 1, 1, 'E', 0);
+INSERT INTO profile_menu VALUES (27, 'LETTERACC', 'LETTER', 1, 2, 'E', 0);
+INSERT INTO profile_menu VALUES (37, 'CUST', 'GESTION', 1, 1, 'E', 0);
+INSERT INTO profile_menu VALUES (38, 'SUPPL', 'GESTION', 1, 2, 'E', 0);
+INSERT INTO profile_menu VALUES (39, 'ADM', 'GESTION', 1, 3, 'E', 0);
+INSERT INTO profile_menu VALUES (36, 'CARD', 'GESTION', 1, 6, 'E', 0);
+INSERT INTO profile_menu VALUES (40, 'STOCK', 'GESTION', 1, 5, 'E', 0);
+INSERT INTO profile_menu VALUES (41, 'FORECAST', 'GESTION', 1, 7, 'E', 0);
+INSERT INTO profile_menu VALUES (42, 'FOLLOW', 'GESTION', 1, 8, 'E', 0);
+INSERT INTO profile_menu VALUES (29, 'VERIFBIL', 'ADV', 1, 21, 'E', 0);
+INSERT INTO profile_menu VALUES (30, 'STOCK', 'ADV', 1, 22, 'E', 0);
+INSERT INTO profile_menu VALUES (31, 'PREDOP', 'ADV', 1, 23, 'E', 0);
+INSERT INTO profile_menu VALUES (32, 'OPEN', 'ADV', 1, 24, 'E', 0);
+INSERT INTO profile_menu VALUES (33, 'REPORT', 'ADV', 1, 25, 'E', 0);
+INSERT INTO profile_menu VALUES (5, 'CARD', 'COMPTA', 1, 7, 'E', 0);
+INSERT INTO profile_menu VALUES (43, 'HIST', 'COMPTA', 1, 1, 'E', 0);
+INSERT INTO profile_menu VALUES (94, 'FINSALDO', 'MENUFIN', 1, 3, 'E', 0);
+INSERT INTO profile_menu VALUES (95, 'FINREC', 'MENUFIN', 1, 4, 'E', 0);
+INSERT INTO profile_menu VALUES (28, 'ADV', 'COMPTA', 1, 20, 'E', 0);
+INSERT INTO profile_menu VALUES (53, 'ACCESS', NULL, 1, 25, 'M', 0);
+INSERT INTO profile_menu VALUES (123, 'CSV:histo', NULL, 1, NULL, 'P', 0);
+INSERT INTO profile_menu VALUES (20, 'LOGOUT', NULL, 1, 30, 'M', 0);
+INSERT INTO profile_menu VALUES (35, 'PRINT', 'GESTION', 1, 4, 'E', 0);
+INSERT INTO profile_menu VALUES (156, 'new_line', NULL, 1, 35, 'M', 0);
+INSERT INTO profile_menu VALUES (124, 'CSV:ledger', NULL, 1, NULL, 'P', 0);
+INSERT INTO profile_menu VALUES (125, 'PDF:ledger', NULL, 1, NULL, 'P', 0);
+INSERT INTO profile_menu VALUES (6, 'PRINT', 'COMPTA', 1, 6, 'E', 0);
+INSERT INTO profile_menu VALUES (126, 'CSV:postedetail', NULL, 1, NULL, 'P', 
0);
+INSERT INTO profile_menu VALUES (164, 'TVA', 'EXTENSION', 1, NULL, 'S', 0);
+INSERT INTO profile_menu VALUES (3, 'MENUACH', 'COMPTA', 1, 3, 'E', 0);
+INSERT INTO profile_menu VALUES (86, 'ACHIMP', 'MENUACH', 1, 2, 'E', 0);
+INSERT INTO profile_menu VALUES (34, 'GESTION', NULL, 1, 45, 'M', 0);
+INSERT INTO profile_menu VALUES (18, 'MENUODS', 'COMPTA', 1, 5, 'E', 0);
+INSERT INTO profile_menu VALUES (88, 'ODS', 'MENUODS', 1, 1, 'E', 0);
+INSERT INTO profile_menu VALUES (89, 'ODSIMP', 'MENUODS', 1, 2, 'E', 0);
 INSERT INTO profile_menu VALUES (2, 'ANC', NULL, 1, 50, 'M', 0);
-INSERT INTO profile_menu VALUES (157, 'AMORTIS', 'MENUACH', 1, 10, 'M', NULL);
-INSERT INTO profile_menu VALUES (158, 'MODOP', 'EXTENSION', 1, NULL, 'S', 
NULL);
-INSERT INTO profile_menu VALUES (4, 'VENMENU', 'COMPTA', 1, 2, 'E', NULL);
-INSERT INTO profile_menu VALUES (90, 'VEN', 'VENMENU', 1, 1, 'E', NULL);
-INSERT INTO profile_menu VALUES (91, 'VENIMP', 'VENMENU', 1, 2, 'E', NULL);
-INSERT INTO profile_menu VALUES (82, 'EXTENSION', NULL, 1, 55, 'M', NULL);
-INSERT INTO profile_menu VALUES (19, 'FIN', 'MENUFIN', 1, 1, 'E', NULL);
-INSERT INTO profile_menu VALUES (92, 'MENUFIN', 'COMPTA', 1, 4, 'E', NULL);
-INSERT INTO profile_menu VALUES (93, 'FINIMP', 'MENUFIN', 1, 2, 'E', NULL);
-INSERT INTO profile_menu VALUES (159, 'IMPCARD', 'EXTENSION', 1, NULL, 'S', 
NULL);
-INSERT INTO profile_menu VALUES (160, 'AMORTIS', 'EXTENSION', 1, NULL, 'S', 
NULL);
-INSERT INTO profile_menu VALUES (161, 'TOOLPLAN', 'EXTENSION', 1, NULL, 'S', 
NULL);
-INSERT INTO profile_menu VALUES (151, 'SEARCH', NULL, 1, 60, 'M', NULL);
-INSERT INTO profile_menu VALUES (85, 'ACH', 'MENUACH', 1, 1, 'E', NULL);
-INSERT INTO profile_menu VALUES (16, 'PRINTJRN', 'IMP', 1, 14, 'E', NULL);
-INSERT INTO profile_menu VALUES (10, 'PRINTREC', 'IMP', 1, 9, 'E', NULL);
-INSERT INTO profile_menu VALUES (9, 'PRINTPOSTE', 'IMP', 1, 8, 'E', NULL);
-INSERT INTO profile_menu VALUES (11, 'PRINTREPORT', 'IMP', 1, 10, 'E', NULL);
-INSERT INTO profile_menu VALUES (13, 'PRINTBILAN', 'IMP', 1, 11, 'E', NULL);
-INSERT INTO profile_menu VALUES (15, 'PRINTGL', 'IMP', 1, 13, 'E', NULL);
-INSERT INTO profile_menu VALUES (17, 'PRINTBAL', 'IMP', 1, 15, 'E', NULL);
-INSERT INTO profile_menu VALUES (14, 'PRINTCARD', 'IMP', 1, 12, 'E', NULL);
-INSERT INTO profile_menu VALUES (162, 'IMPORTBANK', 'EXTENSION', 1, NULL, 'S', 
NULL);
-INSERT INTO profile_menu VALUES (163, 'TOOL', 'EXTENSION', 1, NULL, 'S', NULL);
-INSERT INTO profile_menu VALUES (171, 'CFGMENU', 'MODULARITY', 1, NULL, 'M', 
NULL);
-INSERT INTO profile_menu VALUES (167, 'MODULARITY', 'PARAM', 1, 1, 'M', NULL);
-INSERT INTO profile_menu VALUES (172, 'CFGPROFILE', 'MODULARITY', 1, NULL, 
'M', NULL);
-INSERT INTO profile_menu VALUES (127, 'PDF:postedetail', NULL, 1, NULL, 'P', 
NULL);
-INSERT INTO profile_menu VALUES (50, 'ANC', NULL, 2, 1, 'M', 0);
-INSERT INTO profile_menu VALUES (128, 'CSV:fichedetail', NULL, 1, NULL, 'P', 
NULL);
-INSERT INTO profile_menu VALUES (129, 'PDF:fichedetail', NULL, 1, NULL, 'P', 
NULL);
-INSERT INTO profile_menu VALUES (130, 'CSV:fiche_balance', NULL, 1, NULL, 'P', 
NULL);
-INSERT INTO profile_menu VALUES (131, 'PDF:fiche_balance', NULL, 1, NULL, 'P', 
NULL);
-INSERT INTO profile_menu VALUES (132, 'CSV:report', NULL, 1, NULL, 'P', NULL);
-INSERT INTO profile_menu VALUES (133, 'PDF:report', NULL, 1, NULL, 'P', NULL);
-INSERT INTO profile_menu VALUES (134, 'CSV:fiche', NULL, 1, NULL, 'P', NULL);
-INSERT INTO profile_menu VALUES (135, 'PDF:fiche', NULL, 1, NULL, 'P', NULL);
-INSERT INTO profile_menu VALUES (136, 'CSV:glcompte', NULL, 1, NULL, 'P', 
NULL);
-INSERT INTO profile_menu VALUES (137, 'PDF:glcompte', NULL, 1, NULL, 'P', 
NULL);
-INSERT INTO profile_menu VALUES (138, 'PDF:sec', NULL, 1, NULL, 'P', NULL);
-INSERT INTO profile_menu VALUES (139, 'CSV:AncList', NULL, 1, NULL, 'P', NULL);
-INSERT INTO profile_menu VALUES (140, 'CSV:AncBalSimple', NULL, 1, NULL, 'P', 
NULL);
-INSERT INTO profile_menu VALUES (141, 'PDF:AncBalSimple', NULL, 1, NULL, 'P', 
NULL);
-INSERT INTO profile_menu VALUES (142, 'CSV:AncBalDouble', NULL, 1, NULL, 'P', 
NULL);
-INSERT INTO profile_menu VALUES (143, 'PDF:AncBalDouble', NULL, 1, NULL, 'P', 
NULL);
-INSERT INTO profile_menu VALUES (144, 'CSV:balance', NULL, 1, NULL, 'P', NULL);
-INSERT INTO profile_menu VALUES (145, 'PDF:balance', NULL, 1, NULL, 'P', NULL);
-INSERT INTO profile_menu VALUES (146, 'CSV:AncTable', NULL, 1, NULL, 'P', 
NULL);
-INSERT INTO profile_menu VALUES (147, 'CSV:AncAccList', NULL, 1, NULL, 'P', 
NULL);
-INSERT INTO profile_menu VALUES (148, 'CSV:AncBalGroup', NULL, 1, NULL, 'P', 
NULL);
-INSERT INTO profile_menu VALUES (149, 'OTH:Bilan', NULL, 1, NULL, 'P', NULL);
+INSERT INTO profile_menu VALUES (4, 'VENMENU', 'COMPTA', 1, 2, 'E', 0);
+INSERT INTO profile_menu VALUES (90, 'VEN', 'VENMENU', 1, 1, 'E', 0);
+INSERT INTO profile_menu VALUES (91, 'VENIMP', 'VENMENU', 1, 2, 'E', 0);
+INSERT INTO profile_menu VALUES (82, 'EXTENSION', NULL, 1, 55, 'M', 0);
+INSERT INTO profile_menu VALUES (19, 'FIN', 'MENUFIN', 1, 1, 'E', 0);
+INSERT INTO profile_menu VALUES (92, 'MENUFIN', 'COMPTA', 1, 4, 'E', 0);
+INSERT INTO profile_menu VALUES (93, 'FINIMP', 'MENUFIN', 1, 2, 'E', 0);
+INSERT INTO profile_menu VALUES (159, 'IMPCARD', 'EXTENSION', 1, NULL, 'S', 0);
+INSERT INTO profile_menu VALUES (160, 'AMORTIS', 'EXTENSION', 1, NULL, 'S', 0);
+INSERT INTO profile_menu VALUES (161, 'TOOLPLAN', 'EXTENSION', 1, NULL, 'S', 
0);
+INSERT INTO profile_menu VALUES (151, 'SEARCH', NULL, 1, 60, 'M', 0);
+INSERT INTO profile_menu VALUES (85, 'ACH', 'MENUACH', 1, 1, 'E', 0);
+INSERT INTO profile_menu VALUES (16, 'PRINTJRN', 'IMP', 1, 14, 'E', 0);
+INSERT INTO profile_menu VALUES (10, 'PRINTREC', 'IMP', 1, 9, 'E', 0);
+INSERT INTO profile_menu VALUES (9, 'PRINTPOSTE', 'IMP', 1, 8, 'E', 0);
+INSERT INTO profile_menu VALUES (11, 'PRINTREPORT', 'IMP', 1, 10, 'E', 0);
+INSERT INTO profile_menu VALUES (13, 'PRINTBILAN', 'IMP', 1, 11, 'E', 0);
+INSERT INTO profile_menu VALUES (15, 'PRINTGL', 'IMP', 1, 13, 'E', 0);
+INSERT INTO profile_menu VALUES (17, 'PRINTBAL', 'IMP', 1, 15, 'E', 0);
+INSERT INTO profile_menu VALUES (14, 'PRINTCARD', 'IMP', 1, 12, 'E', 0);
+INSERT INTO profile_menu VALUES (162, 'IMPORTBANK', 'EXTENSION', 1, NULL, 'S', 
0);
+INSERT INTO profile_menu VALUES (163, 'TOOL', 'EXTENSION', 1, NULL, 'S', 0);
+INSERT INTO profile_menu VALUES (157, 'AMORTIS', 'MENUACH', 1, 10, 'E', 0);
+INSERT INTO profile_menu VALUES (167, 'MODULARITY', 'PARAM', 1, 1, 'E', 0);
+INSERT INTO profile_menu VALUES (171, 'CFGMENU', 'MODULARITY', 1, NULL, 'E', 
0);
+INSERT INTO profile_menu VALUES (172, 'CFGPROFILE', 'MODULARITY', 1, NULL, 
'E', 0);
+INSERT INTO profile_menu VALUES (127, 'PDF:postedetail', NULL, 1, NULL, 'P', 
0);
+INSERT INTO profile_menu VALUES (128, 'CSV:fichedetail', NULL, 1, NULL, 'P', 
0);
+INSERT INTO profile_menu VALUES (129, 'PDF:fichedetail', NULL, 1, NULL, 'P', 
0);
+INSERT INTO profile_menu VALUES (130, 'CSV:fiche_balance', NULL, 1, NULL, 'P', 
0);
+INSERT INTO profile_menu VALUES (131, 'PDF:fiche_balance', NULL, 1, NULL, 'P', 
0);
+INSERT INTO profile_menu VALUES (132, 'CSV:report', NULL, 1, NULL, 'P', 0);
+INSERT INTO profile_menu VALUES (133, 'PDF:report', NULL, 1, NULL, 'P', 0);
+INSERT INTO profile_menu VALUES (134, 'CSV:fiche', NULL, 1, NULL, 'P', 0);
+INSERT INTO profile_menu VALUES (135, 'PDF:fiche', NULL, 1, NULL, 'P', 0);
+INSERT INTO profile_menu VALUES (136, 'CSV:glcompte', NULL, 1, NULL, 'P', 0);
+INSERT INTO profile_menu VALUES (137, 'PDF:glcompte', NULL, 1, NULL, 'P', 0);
+INSERT INTO profile_menu VALUES (138, 'PDF:sec', NULL, 1, NULL, 'P', 0);
+INSERT INTO profile_menu VALUES (139, 'CSV:AncList', NULL, 1, NULL, 'P', 0);
+INSERT INTO profile_menu VALUES (140, 'CSV:AncBalSimple', NULL, 1, NULL, 'P', 
0);
+INSERT INTO profile_menu VALUES (141, 'PDF:AncBalSimple', NULL, 1, NULL, 'P', 
0);
+INSERT INTO profile_menu VALUES (142, 'CSV:AncBalDouble', NULL, 1, NULL, 'P', 
0);
+INSERT INTO profile_menu VALUES (143, 'PDF:AncBalDouble', NULL, 1, NULL, 'P', 
0);
+INSERT INTO profile_menu VALUES (144, 'CSV:balance', NULL, 1, NULL, 'P', 0);
+INSERT INTO profile_menu VALUES (145, 'PDF:balance', NULL, 1, NULL, 'P', 0);
+INSERT INTO profile_menu VALUES (146, 'CSV:AncTable', NULL, 1, NULL, 'P', 0);
+INSERT INTO profile_menu VALUES (147, 'CSV:AncAccList', NULL, 1, NULL, 'P', 0);
+INSERT INTO profile_menu VALUES (148, 'CSV:AncBalGroup', NULL, 1, NULL, 'P', 
0);
+INSERT INTO profile_menu VALUES (149, 'OTH:Bilan', NULL, 1, NULL, 'P', 0);
+INSERT INTO profile_menu VALUES (1, 'DASHBOARD', NULL, 1, 10, 'M', 0);
+INSERT INTO profile_menu VALUES (302, 'TESTTVA', 'EXTENSION', 1, NULL, 'S', 
NULL);
 
 
 --
+-- Data for Name: profile_menu_type; Type: TABLE DATA; Schema: public; Owner: 
dany
+--
+
+INSERT INTO profile_menu_type VALUES ('P', 'Impression');
+INSERT INTO profile_menu_type VALUES ('S', 'Extension');
+INSERT INTO profile_menu_type VALUES ('E', 'Menu');
+INSERT INTO profile_menu_type VALUES ('M', 'Module');
+
+
+--
 -- Data for Name: profile_user; Type: TABLE DATA; Schema: public; Owner: dany
 --
 
@@ -597,6 +713,14 @@
 
 
 --
+-- Name: profile_menu_type_pkey; Type: CONSTRAINT; Schema: public; Owner: 
dany; Tablespace: 
+--
+
+ALTER TABLE ONLY profile_menu_type
+    ADD CONSTRAINT profile_menu_type_pkey PRIMARY KEY (pm_type);
+
+
+--
 -- Name: profile_pkey; Type: CONSTRAINT; Schema: public; Owner: dany; 
Tablespace: 
 --
 
@@ -635,6 +759,13 @@
 
 
 --
+-- Name: fki_profile_menu_type_fkey; Type: INDEX; Schema: public; Owner: dany; 
Tablespace: 
+--
+
+CREATE INDEX fki_profile_menu_type_fkey ON profile_menu USING btree 
(p_type_display);
+
+
+--
 -- Name: profile_menu_me_code_fkey; Type: FK CONSTRAINT; Schema: public; 
Owner: dany
 --
 
@@ -647,10 +778,18 @@
 --
 
 ALTER TABLE ONLY profile_menu
-    ADD CONSTRAINT profile_menu_p_id_fkey FOREIGN KEY (p_id) REFERENCES 
profile(p_id);
+    ADD CONSTRAINT profile_menu_p_id_fkey FOREIGN KEY (p_id) REFERENCES 
profile(p_id) ON UPDATE CASCADE ON DELETE CASCADE;
 
 
 --
+-- Name: profile_menu_type_fkey; Type: FK CONSTRAINT; Schema: public; Owner: 
dany
+--
+
+ALTER TABLE ONLY profile_menu
+    ADD CONSTRAINT profile_menu_type_fkey FOREIGN KEY (p_type_display) 
REFERENCES profile_menu_type(pm_type);
+
+
+--
 -- Name: profile_user_p_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: 
dany
 --
 

Added: phpcompta/trunk/sql/style-epad.sql
===================================================================
--- phpcompta/trunk/sql/style-epad.sql                          (rev 0)
+++ phpcompta/trunk/sql/style-epad.sql  2011-11-10 15:49:57 UTC (rev 4326)
@@ -0,0 +1,3 @@
+-- run to the account_repository
+insert into theme values ('EPad','style-epad.css',null);
+

Added: phpcompta/trunk/sql/tmp_pcmn_ins.sql
===================================================================
--- phpcompta/trunk/sql/tmp_pcmn_ins.sql                                (rev 0)
+++ phpcompta/trunk/sql/tmp_pcmn_ins.sql        2011-11-10 15:49:57 UTC (rev 
4326)
@@ -0,0 +1,21 @@
+-- Function: comptaproc.tmp_pcmn_ins()
+
+-- DROP FUNCTION comptaproc.tmp_pcmn_ins();
+
+CREATE OR REPLACE FUNCTION comptaproc.tmp_pcmn_ins()
+  RETURNS trigger AS
+$BODY$
+declare
+   r_record tmp_pcmn%ROWTYPE;
+begin
+r_record := NEW;
+if  length(trim(r_record.pcm_type))=0 or r_record.pcm_type is NULL then 
+   r_record.pcm_type:=find_pcm_type(NEW.pcm_val);
+   return r_record;
+end if;
+return NEW;
+end;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION comptaproc.tmp_pcmn_ins() OWNER TO dany;

Modified: phpcompta/trunk/sql/upgrade.sql
===================================================================
--- phpcompta/trunk/sql/upgrade.sql     2011-11-10 12:58:09 UTC (rev 4325)
+++ phpcompta/trunk/sql/upgrade.sql     2011-11-10 15:49:57 UTC (rev 4326)
@@ -15,8 +15,10 @@
 trigger.tmp_pcmn.sql
 account_add.sql
 object-6.0.sql
+-- for account repository
 epad-style.sql
 extension.sql
-
+-- for account repository
+change_account_repo.sql
 */
 create unique index qcode_idx on fiche_detail (ad_value) where ad_id=23;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]