diff --git a/dev/manage-code/create-file/create_phpclass.py b/dev/manage-code/create-file/create_phpclass.py index cd89ec1e5..6507d5003 100755 --- a/dev/manage-code/create-file/create_phpclass.py +++ b/dev/manage-code/create-file/create_phpclass.py @@ -22,6 +22,7 @@ def help(): -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 help(): """ 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 @@ def main(): 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 @@ class @class_name@ $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; } diff --git a/html/ajax_misc.php b/html/ajax_misc.php index 88a378712..293829c8e 100644 --- a/html/ajax_misc.php +++ b/html/ajax_misc.php @@ -1,4 +1,5 @@ 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 <<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 << e_date @@ -96,159 +97,158 @@ case 'lastdate': 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 <<get_bank_name(); + $html = escape_xml($html); + header('Content-type: text/xml; charset=UTF-8'); + echo << bkname $html 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 <<display(); + $html = escape_xml($html); + header('Content-type: text/xml; charset=UTF-8'); + echo << $html 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 <<check_action(PARCATDOC) == 0) + { + $html = "nok"; + header('Content-type: text/xml; charset=UTF-8'); + echo << $html 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 << $html 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 <<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 << $html 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.='
'; - $r.= ''; - $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.='
'; + $r.= '
'; + $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 = ''; + $r.=''; + $r.=td($set); + $r.=td($row['tva_id']); + $r.=td($row['tva_rate']); + $r.=td($row['tva_label']); + $r.=td($row['tva_comment']); + $r.=''; + } + $r.='
'; + $r.='
'; + $html = escape_xml($r); - } - $set= ''; - $r.=''; - $r.=td($set); - $r.=td($row['tva_id']); - $r.=td($row['tva_rate']); - $r.=td($row['tva_label']); - $r.=td($row['tva_comment']); - $r.=''; - } - $r.=''; - $r.=''; - $html=escape_xml($r); - - header('Content-type: text/xml; charset=UTF-8'); - echo << $html $popup 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 <<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 << $code @@ -256,227 +256,269 @@ echo << 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.='
'._('Lettrage').''; - $r.='Poste '.$row['j_poste'].' '.$row['j_qcode'].'
'; + $arow = $cn->get_array($sql, array($j_id)); + $row = $arow[0]; + $r = ''; + $r.='
' . _('Lettrage') . ''; + $r.='Poste ' . $row['j_poste'] . ' ' . $row['j_qcode'] . '
'; - $detail=" ".$row['jr_internal'].""; + $detail = " " . $row['jr_internal'] . ""; - $r.='Date : '.$row['j_date_fmt'].' ref :'.$detail.'
'; - $r.=h($row['jr_comment'])." montant: ".($row['j_montant'])." ".(($row['j_debit']=='t')?'D':'C'); - $r.='
'; - $r.='
'; - $r.='
'; - $r.='
'; - // 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 . '
'; + $r.=h($row['jr_comment']) . " montant: " . ($row['j_montant']) . " " . (($row['j_debit'] == 't') ? 'D' : 'C'); + $r.='
'; + $r.='
'; + $r.=''; + $r.='
'; + // 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.=''; - //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.='
'; + //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.='
'; - $r.='
'; - $r.='
'; - $r.=HtmlInput::submit('search','Rechercher'); - $r.='
'; - $r.=''; - $r.='
'; + $r.=tr($line . td($iside->input())); + $r.=''; + $r.=''; + $r.='
'; + $r.=HtmlInput::submit('search', 'Rechercher'); + $r.='
'; + $r.=''; + $r.=''; - $form='
'; + $form = '
'; - $form.='
'; - $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.=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 << detail $html 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.='
'; - $html=$r.$form; - // echo $html;exit; - $html=escape_xml($html); + $form.=HtmlInput::submit('record', _('Sauver')) . $ret->input(); + $form.=''; + $form.='
'; + $html = $r . $form; + // echo $html;exit; + $html = escape_xml($html); - header('Content-type: text/xml; charset=UTF-8'); -echo << detail $html 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 << - -$ctl -$html - -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 "

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; } diff --git a/html/do.php b/html/do.php index 17d6e9ce7..31dcb95d5 100644 --- a/html/do.php +++ b/html/do.php @@ -29,6 +29,8 @@ require_once ('class_dossier.php'); 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 @@ if (isset($_REQUEST['ac'])) { $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'])) diff --git a/html/js/anc_script.js b/html/js/anc_script.js index 935e4bd2b..6d8b480f1 100644 --- a/html/js/anc_script.js +++ b/html/js/anc_script.js @@ -103,6 +103,8 @@ function anc_refresh_remain(p_table,p_seq) 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"} diff --git a/html/js/scripts.js b/html/js/scripts.js index 36bd24501..d9c2acd56 100644 --- a/html/js/scripts.js +++ b/html/js/scripts.js @@ -736,7 +736,7 @@ function show_ledger_choice() */ 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 @@ function fill_box(req) { 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 fill_box(req) 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 save_predf_op(obj) 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 @@ function search_reconcile(dossier,ctl_concern,amount_id,ledger) 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 @@ function search_reconcile(dossier,ctl_concern,amount_id,ledger) 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 @@ function search_operation(obj) 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 @@ function set_reconcile(obj) { 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 @@ function set_reconcile(obj) { 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 diff --git a/html/style-color.css b/html/style-color.css index fc2b5a6a3..96f10ccc0 100644 --- a/html/style-color.css +++ b/html/style-color.css @@ -63,7 +63,7 @@ content h2.info { padding:0px; margin:0px; } -u_redcontent h2.info { +redcontent h2.info { background:#879ed4; color:white; font-size:14pt; @@ -177,7 +177,7 @@ div.recherche_form{ border-width:1px; } -div.u_redcontent{ +div.redcontent{ float:left; padding-top:7px; @@ -404,7 +404,7 @@ li.menuv,ol.menuv { 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 { } -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.content a:hover { } -div.u_redcontent a.mtitle { +div.redcontent a.mtitle { text-decoration:none; display:inline; @@ -448,7 +448,7 @@ div.u_redcontent a.mtitle { } -div.u_redcontent a.mtitle:hover { +div.redcontent a.mtitle:hover { text-decoration:none; display:inline; color:white; @@ -474,7 +474,7 @@ div.content a.mtitle:hover { } -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.content input.text { -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 { diff --git a/html/style-epad.css b/html/style-epad.css new file mode 100644 index 000000000..57054f48a --- /dev/null +++ b/html/style-epad.css @@ -0,0 +1,1038 @@ +/* */ +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 diff --git a/html/style-light.css b/html/style-light.css index 977bd44cd..fed7b7925 100644 --- a/html/style-light.css +++ b/html/style-light.css @@ -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 @@ table.result ,table.resultfooter { 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 @@ content h2.info { padding:0px; margin:0px; } -u_redcontent h2.info { +redcontent h2.info { background:#879ed4; color:white; font-size:14pt; @@ -74,7 +75,7 @@ h2.info { padding:0px; margin:0px; border:1px solid grey; - + } h3.info { @@ -105,10 +106,10 @@ h1.title { 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_subtmenu { } 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 @@ div.u_tool div.acces_direct{ float:right; margin-right:10px; text-align:right; - + } div.u_subt2menu { background-color:lightgrey; - left:1%; + left:1%; } div.lmenu { @@ -170,38 +171,38 @@ div.recherche_form{ 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 @@ table.document th{ .error { width:60%; margin-left:20%; -color:white; +color:white; background-color:red; text-align: center; font-weight: bolder; @@ -235,7 +236,7 @@ table.mtitle { border:0; text-align:center } -td.mshort { +td.mshort { height:15px; width:60px; text-align:center; @@ -246,7 +247,7 @@ td.mshort { 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 @@ span.mtitle { 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 @@ span.even { tr.odd { background-color:#DDE6FF; font-size:10px; - border-width:0px; + border-width:0px; } tr { font-size:10px; @@ -308,16 +309,16 @@ a.mtitle { 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 @@ a.dossier { text-decoration:none; display:block; color: #202267; - + } tr.odd:hover td { @@ -338,7 +339,7 @@ tr.odd:hover td background-color: #a9d6e4; color:white; } -tr.even:hover td +tr.even:hover td { text-decoration:none; background-color: #a9d6e4; @@ -400,7 +401,7 @@ a.detail color: #0000ff; } -a.detail:hover +a.detail:hover { font-size:9px; font-family:helvetica,arial,sans-serif; @@ -414,7 +415,7 @@ li.menuv,ol.menuv { 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 { } -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 @@ div.content a { display: block; color: #0000ff; padding: 1px ; - + } @@ -449,16 +450,16 @@ div.content a:hover { } -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,7 +472,7 @@ div.content a.mtitle { text-decoration:none; display:inline; color:#0000ff; - + } @@ -481,17 +482,17 @@ div.content a.mtitle:hover { 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 @@ div.content input.text { 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 @@ a.document:hover { 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 @@ background-color:white; visibility:hidden; z-index:2; width:25em; - + } span.action { height:3em; - + } td.num { text-align:right; @@ -580,7 +584,7 @@ span.action a.action { padding-right:3px; text-decoration:none; font-size:14px; - + display:inline; color:black; background-color:lightgrey; @@ -602,7 +606,7 @@ height: 150%; 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 @@ div.popup_border_title { top:20%; left:10%; width:60%; - height:80%; + height:80%; /*background:lightgrey;*/ z-index:10; /*border:dotted 1px black;*/ @@ -621,19 +625,19 @@ div.popup_border_title { 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 @@ div.popup_content { 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 @@ div.autocomplete { padding:0; text-align:left; font-size:12px; - + } span.informal { font-size:12px; - + } div.autocomplete em { color:#0000ff; @@ -706,7 +710,7 @@ div.autocomplete ul li { padding:0px; /*height:32px;*/ border:1px dotted #e6e6fa; - + cursor:pointer; } @@ -736,20 +740,20 @@ ul.select_table li span { 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{ 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 @@ color:black; 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:inherit; 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 @@ cursor:inherit; } 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 @@ a#anchorbutton { 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 @@ a#anchorbutton { 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; } /* */ -div.add_todo_list { +div.add_todo_list { border:1px solid #0000ff; display:none; background-color:#BFD0FF; @@ -886,10 +890,10 @@ h2.gest_name { 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 @@ div.inner_box { 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 @@ div#div_jrn{ 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 @@ div#div_jrn{ 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 @@ div#search_form display:none; background-color:#e4e7ed; } -table.result td +table.result td { padding-left:5px; padding-right:5px; @@ -959,7 +963,7 @@ table.info_op margin-left: 30%; margin-right: 30%; width:20%; - + } table.info_op tr { @@ -971,7 +975,7 @@ h2#jrn_name { padding:0 ; margin:0; - + float:right; font-size:18; display: inline; @@ -981,7 +985,7 @@ tr.footer{ font-size:14; font-style: italic; font-weight: bold; - + } span.remain { font-weight: bold; @@ -991,22 +995,22 @@ 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 #33378d; @@ -1022,13 +1026,13 @@ div#wait_box 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 @@ border:1px solid darkblue; 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; +} diff --git a/html/style-print.css b/html/style-print.css index fc69170f8..786f93f65 100644 --- a/html/style-print.css +++ b/html/style-print.css @@ -97,7 +97,7 @@ div.redcontent{ font-family:sans-serif; } -div.u_redcontent{ +div.redcontent{ font-size:7pt; font-family:sans-serif; } diff --git a/html/style.css b/html/style.css index a39fba376..5d2ccedec 100644 --- a/html/style.css +++ b/html/style.css @@ -6,6 +6,7 @@ BODY { font-family:helvetica,sans-serif; padding: 0px 10px 0px 10px ; margin:0; + color:blue; } .notice { color:red; @@ -18,26 +19,26 @@ table.result ,table.resultfooter { 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 @@ content h2.info { padding:0px; margin:0px; } -u_redcontent h2.info { +redcontent h2.info { background:#879ed4; color:white; font-size:14pt; @@ -76,7 +77,7 @@ h2.info { padding:0px; margin:0px; border:1px solid grey; - + } h3.info { @@ -107,10 +108,10 @@ h1.title { 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_subtmenu { } div.u_tmenu div.u_tool { float:left; - + } div.u_tool { float:left; @@ -135,12 +136,12 @@ div.u_tool div.acces_direct{ float:right; margin-right:10px; text-align:right; - + } div.u_subt2menu { background-color:lightgrey; - left:1%; + left:1%; } div.lmenu { @@ -172,40 +173,40 @@ div.recherche_form{ 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 @@ width:60%; margin-left:20%; text-align: center; -color:white; +color:white; background-color:red; font-weight: bolder; font-size:120%; @@ -240,7 +241,7 @@ table.mtitle { border:0; text-align:center } -td.mshort { +td.mshort { height:15px; width:60px; text-align:center; @@ -251,7 +252,7 @@ td.mshort { 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 @@ span.mtitle { 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 @@ a.mtitle { 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 @@ a.dossier { text-decoration:none; display:block; color: #202267; - + } tr.odd:hover td { @@ -341,7 +342,7 @@ tr.odd:hover td background-color: #a9d6e4; color:white; } -tr.even:hover td +tr.even:hover td { text-decoration:none; background-color: #a9d6e4; @@ -403,7 +404,7 @@ a.detail color: blue; } -a.detail:hover +a.detail:hover { font-size:9px; font-family:helvetica,sans-serif; @@ -417,7 +418,7 @@ li.menuv,ol.menuv { 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 { } -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 @@ div.content a { display: block; color: blue; padding: 1px ; - + } @@ -452,16 +453,16 @@ div.content a:hover { } -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,7 +475,7 @@ div.content a.mtitle { text-decoration:none; display:inline; color:blue; - + } @@ -484,17 +485,17 @@ div.content a.mtitle:hover { 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 @@ div.content input.text { 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 @@ a.document:hover { 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 @@ background-color:white; visibility:hidden; z-index:2; width:25em; - + } span.action { height:3em; - + } td.num { text-align:right; @@ -583,7 +589,7 @@ span.action a.action { padding-right:3px; text-decoration:none; font-size:14px; - + display:inline; color:black; background-color:lightgrey; @@ -604,8 +610,8 @@ div.popup_back{ height:100%; z-index:1; /*background-color:lightgrey;*/ - - display:none; + + display:none; } div.popup_border_title { @@ -624,19 +630,19 @@ div.popup_border_title { 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 @@ div.popup_content { 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 @@ div.autocomplete { padding:0; text-align:left; font-size:12px; - + } div.autocomplete em { color:blue; @@ -734,20 +740,20 @@ ul.select_table li span { 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{ 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 @@ color:black; 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:inherit; 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 @@ cursor:inherit; } 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 @@ 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; @@ -848,7 +854,7 @@ a#anchorbutton { cursor:pointer; margin:1 2 1 2; -moz-border-radius:2 2; - + } a#anchorbutton:hover { cursor:pointer; @@ -858,7 +864,7 @@ a#anchorbutton:hover { margin:1 2 1 2; } /* */ -div.add_todo_list { +div.add_todo_list { border:1px solid blue; display:none; background-color:#BFD0FF; @@ -883,10 +889,10 @@ h2.gest_name { 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 @@ div.inner_box { 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 @@ div#div_jrn{ 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 @@ div#div_jrn{ 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 @@ div#search_form background-color:#e4e7ed; } -table.result td +table.result td { padding-left:5px; padding-right:5px; @@ -956,7 +962,7 @@ table.info_op font-size:18; margin-right:30%; width:20%; - + } table.info_op tr { @@ -967,39 +973,39 @@ 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 +.direct { font-size:6px; border:groove 1px #000000; @@ -1014,13 +1020,13 @@ div#wait_box 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 @@ border:1px solid darkblue; 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 diff --git a/include/ac_common.php b/include/ac_common.php index f808a3bf6..be8aa20d0 100644 --- a/include/ac_common.php +++ b/include/ac_common.php @@ -384,7 +384,7 @@ function NoAccess($js=1) } else { - echo '

'; + echo '
'; echo '

' . _(' Cette action ne vous est pas autorisée Contactez votre responsable') . '

'; echo '
'; } @@ -754,7 +754,7 @@ function show_module($selected) echo '
'; echo ''; echo '
'; - echo_warning("Module inexistant [$selected"); + echo_warning("Module inexistant [$selected ] "); echo '
'; exit(); } @@ -857,10 +857,13 @@ function show_menu($module, $idx) */ $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) { diff --git a/include/anc_od.inc.php b/include/anc_od.inc.php index a415367db..5f4b5e7ea 100644 --- a/include/anc_od.inc.php +++ b/include/anc_od.inc.php @@ -80,7 +80,7 @@ if ( isset($_GET['see'])) $a=new Anc_Operation($cn); echo ' -
+
'; @@ -108,7 +108,7 @@ if ( isset($_GET['see'])) echo $w->input(); echo 'Période '.HtmlInput::submit('gl_submit','Valider').'
'; - echo '
'; + echo '
'; echo $a->html_table($current); echo '
'; exit(); @@ -118,7 +118,7 @@ if ( isset($_POST['save'])) // record the operation and exit // and exit //----------------------------- - echo '
'. + echo '
'. _('Opération sauvée'); $a=new Anc_Group_Operation($cn); @@ -138,7 +138,7 @@ if ( isset($_GET['new'])) $wSubmit=new IHidden("p_action","ca_od"); $wSubmit->table=0; - echo '
'; + echo '
'; echo '
'; echo dossier::hidden(); echo $wSubmit->input(); @@ -157,4 +157,4 @@ if ( isset($_GET['new'])) } ?> -
+
diff --git a/include/anc_pa.inc.php b/include/anc_pa.inc.php index 96b180d66..77d5335f4 100644 --- a/include/anc_pa.inc.php +++ b/include/anc_pa.inc.php @@ -31,7 +31,7 @@ $ret=""; $str_dossier=Dossier::get(); //--------------------------------------------------------------------------- // action -// Compute the u_redcontent div +// Compute the redcontent div //--------------------------------------------------------------------------- if ( isset($_REQUEST['sa'])) { @@ -43,7 +43,7 @@ if ( isset($_REQUEST['sa'])) $new=new Anc_Plan($cn); if ( $new->isAppend() == true) { - $ret.= '
'; + $ret.= '
'; $ret.= '

Nouveau plan

'; $ret.= ''; $ret.=dossier::hidden(); @@ -55,7 +55,7 @@ if ( isset($_REQUEST['sa'])) } else { - $ret.= '
'. + $ret.= '
'. '

'. "Maximum de plan analytique est atteint". "

"; @@ -89,7 +89,7 @@ if ( isset($_REQUEST['sa'])) $new->get(); - $ret.= '
'; + $ret.= '
'; $ret.= '

Mise à jour

'; $ret.= ''; $ret.=dossier::hidden(); @@ -109,7 +109,7 @@ if ( isset($_REQUEST['sa'])) $new->name=$_POST['pa_name']; $new->description=$_POST['pa_description']; $new->update(); - $ret='
'; + $ret='
'; $ret.='

Mis à jour

'; $ret.="
"; } @@ -119,7 +119,7 @@ if ( isset($_REQUEST['sa'])) $po=new Anc_Account($cn); $po->pa_id=$_REQUEST['pa_id']; $wSa=HtmlInput::hidden("sa","po_write"); - $ret.='
'; + $ret.='
'; $ret.=''; $ret.=dossier::hidden(); $ret.=$po->form(); @@ -151,7 +151,7 @@ if ( isset($_REQUEST['sa'])) { $po=new Anc_Account($cn,$_GET['po_id']); $po->get_by_id(); - $ret.='
'; + $ret.='
'; $ret.=''; $ret.=dossier::hidden(); @@ -188,7 +188,7 @@ if ( isset($_REQUEST['sa'])) $new=new Anc_Plan($cn,$_REQUEST['pa_id']); $new->get(); $array=$new->get_poste_analytique(" order by po_name"); - $ret.='
'; + $ret.='
'; $ret.=''; $ret.=""; $ret.="
Nom "; @@ -289,7 +289,7 @@ else echo ''; } //--------------------------------------------------------------------------- -// show the u_redcontent part +// show the redcontent part // // //--------------------------------------------------------------------------- diff --git a/include/cfgledger.inc.php b/include/cfgledger.inc.php index 134d54c1f..ece48eedf 100644 --- a/include/cfgledger.inc.php +++ b/include/cfgledger.inc.php @@ -116,7 +116,7 @@ switch ($sa) try { $ledger->id=$_REQUEST['p_jrn']; - echo '
'; + echo '
'; echo ''; echo $ledger->display_ledger(); echo ' @@ -131,7 +131,7 @@ switch ($sa) } break; case 'add': /* Add a new ledger */ - echo '
'; + echo '
'; echo ''; $ledger->input_new(); echo HtmlInput::submit('add','Sauver'); diff --git a/include/class_acc_ledger_fin.php b/include/class_acc_ledger_fin.php index 789d79f9a..ba56c292e 100644 --- a/include/class_acc_ledger_fin.php +++ b/include/class_acc_ledger_fin.php @@ -363,9 +363,9 @@ class Acc_Ledger_Fin extends Acc_Ledger ; $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(); } diff --git a/include/class_extension.php b/include/class_extension.php index 101dd3a3f..19882d3f3 100644 --- a/include/class_extension.php +++ b/include/class_extension.php @@ -47,31 +47,11 @@ class Extension extends Menu_Ref_sql { // 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'; - } /*!@brief search a extension, the what is the column (extends_code */ function search($p_what) { @@ -119,5 +99,61 @@ class Extension extends Menu_Ref_sql 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(); + } + } } diff --git a/include/class_html_input.php b/include/class_html_input.php index 9a7bfe167..b7559618d 100755 --- a/include/class_html_input.php +++ b/include/class_html_input.php @@ -88,7 +88,7 @@ class HtmlInput } 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 @@ class HtmlInput } 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 diff --git a/include/class_menu_ref_sql.php b/include/class_menu_ref_sql.php index ea72075f6..63f0cb02a 100644 --- a/include/class_menu_ref_sql.php +++ b/include/class_menu_ref_sql.php @@ -5,10 +5,6 @@ * @brief Manage the table public.menu_ref * * - Example - @code - - @endcode */ require_once('class_database.php'); require_once('ac_common.php'); diff --git a/include/class_profile_menu.php b/include/class_profile_menu.php new file mode 100644 index 000000000..5077c8302 --- /dev/null +++ b/include/class_profile_menu.php @@ -0,0 +1,212 @@ +cn = $p_cn; + } + + function sub_menu($resource, $p_id) + { + if (Database::num_row($resource) != 0) + { + $gDossier = dossier::id(); + echo '
    '; + 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( + '%s', $gDossier, $menu['pm_id'], $me_code); + ?> +
  • + + ( ) + + 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 "
  • "; + } //end loop e + echo '
'; + } // 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 '
    '; + + $this->sub_menu($ret, $p_id); + // $this->listing_profile($p_id,$ret, $array[$i]['me_code']); + + echo ""; + echo '
'; + } + 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 '
    '; + // Menu by module + $gDossier = Dossier::id(); + for ($i = 0; $i < count($array); $i++) + { + $js = sprintf('%s', $gDossier, $array[$i]['pm_id'], $array[$i]['me_code']); + echo "
  • " . $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 "
  • "; + }// end loop i + echo '
'; + //******************************************* + // 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 diff --git a/include/class_profile_menu_sql.php b/include/class_profile_menu_sql.php new file mode 100644 index 000000000..0f1584863 --- /dev/null +++ b/include/class_profile_menu_sql.php @@ -0,0 +1,268 @@ +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(); + } + /** + *@brief retrieve array of object thanks a condition + *@param $cond condition (where clause) (optional by default all the rows are fetched) + * you can use this parameter for the order or subselect + *@param $p_array array for the SQL stmt + *@see Database::exec_sql get_object Database::num_row + *@return 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 + *@param $p_ret is the return value of an exec_sql + *@param $idx is the index + *@see seek + *@return 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) + ); + + } +/** + *@brief load a object + *@return 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(); +?> diff --git a/include/class_user.php b/include/class_user.php index 0dd3fc9a1..4ec543c9d 100644 --- a/include/class_user.php +++ b/include/class_user.php @@ -680,7 +680,7 @@ class User } else { - echo '
'; + echo '
'; echo '

Cette action ne vous est pas autorisée Contactez votre responsable

'; echo '
'; } @@ -726,7 +726,7 @@ class User } else { - echo '
'; + echo '
'; echo '

Cette action ne vous est pas autorisée Contactez votre responsable

'; echo '
'; } @@ -964,6 +964,16 @@ class User } 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')); + } + } } diff --git a/include/contact.inc.php b/include/contact.inc.php index 87059eef6..68029b600 100644 --- a/include/contact.inc.php +++ b/include/contact.inc.php @@ -92,7 +92,7 @@ if ( $sub_action=="blank") { $retour_action=HtmlInput::button_anchor('Retour', "commercial.php?p_action=contact&$str_dossier"); - echo '
'; + echo '
'; echo $retour_action; $c=new contact($cn); @@ -191,7 +191,7 @@ if ( $sub_action == "list" ) $contact->company=$qcode; } echo $retour; - echo '
'; + echo '
'; echo $contact->Summary($search); echo '
'; echo $retour; @@ -203,7 +203,7 @@ if ( $sub_action == "list" ) if ( $sub_action == 'detail' ) { $f_id=$_REQUEST['f_id']; - echo '
'; + echo '
'; $contact=new contact($cn,$f_id); echo $retour; echo ''; diff --git a/include/detail_menu.inc.php b/include/detail_menu.inc.php new file mode 100644 index 000000000..cd5379ad9 --- /dev/null +++ b/include/detail_menu.inc.php @@ -0,0 +1,103 @@ +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']); + +?> + + + + + + + + + + + + + + + + + + + + + + + +
Codeinput()?>
Dépendant de input()?>
Ordre d'apparitioninput()?>
Menu par défautinput()?>
+

+Cochez cette case si vous souhaitez effacer ce menu ainsi que ceux qui en dépendent +input(); +?> +

+'; + + +?> diff --git a/include/fiche.inc.php b/include/fiche.inc.php index 690c6e2da..7a1e0a3d8 100644 --- a/include/fiche.inc.php +++ b/include/fiche.inc.php @@ -156,7 +156,7 @@ if ( isset ($_POST["add_line"]) ) { $g_user->can_request(FIC); - $r= '
'; + $r= '
'; if ( $write ==0) $r.= "

Pas d'accès

"; else @@ -180,7 +180,7 @@ if ( isset($_POST['save_line'])) $g_user->can_request(FICCAT); $fiche_def=new Fiche_Def($cn,$_REQUEST['fd_id']); $fiche_def->save_order($_POST); - $r= '
'; + $r= '
'; if ( $write ==0) $r.= "

Pas d'accès

"; else @@ -198,7 +198,7 @@ if ( isset($_POST['save_line'])) if ( isset ($_POST['remove_line']) ) { $g_user->can_request(FICCAT); - $r= '
'; + $r= '
'; if ( $write ==0) $r.= "

Pas d'accès

"; else @@ -221,7 +221,7 @@ if ( isset ($_POST['remove_line']) ) if ( isset ($_POST["change_name"] ) ) { $g_user->can_request(FICCAT); - $r= '
'; + $r= '
'; if ( $write ==0) $r.= "

"._("Pas d'accès")."

"; else @@ -253,7 +253,7 @@ if ( isset ( $_GET["action"]) ) { $g_user->can_request(FICADD); - echo '
'; + echo '
'; $fiche_def=new Fiche_Def($cn,$_GET['fiche']); $fiche_def->myList(); @@ -265,7 +265,7 @@ if ( isset ( $_GET["action"]) ) // Display the detail of a card if ($action== "detail" ) { - echo '
'; + echo '
'; $t=false; if ( $g_user->check_action(FICADD)==0) { @@ -325,7 +325,7 @@ if ( isset ( $_GET["action"]) ) if ($action == "add_modele" ) { $g_user->can_request(FICCAT); - echo '
'; + echo '
'; echo ''; echo HtmlInput::hidden('ac',$_REQUEST['ac']); $oFiche_Def=new Fiche_Def($cn); @@ -343,7 +343,7 @@ if ( isset ( $_GET["action"]) ) if ($action == "modifier" ) { $g_user->can_request(FICCAT); - echo '
'; + echo '
'; $fiche_def=new Fiche_Def($cn,$_GET['fiche']); echo ShowFicheDefInput($fiche_def); @@ -354,7 +354,7 @@ if ( isset ( $_GET["action"]) ) // Search a card if ( $action == "search" ) { - echo '
'; + echo '
'; ShowRecherche(); $sql="select distinct f_id,fd_id from fiche join fiche_detail using (f_id) where @@ -377,7 +377,7 @@ if ( isset ( $_GET["action"]) ) } else { - echo '
'; + echo '
'; echo "Aucun résultat trouvé"; } @@ -392,7 +392,7 @@ if ( isset ($_POST["fiche"]) && isset ($_POST["add"] ) ) { $g_user->can_request(FICADD); - echo '
'; + echo '
'; if ( $write ==0) echo "

Pas d'accès

"; else @@ -423,7 +423,7 @@ if (isset($_POST['delete']) ) { $g_user->can_request(FIC); ShowRecherche(); - echo '
'; + echo '
'; if ( $write ==0) echo "

Pas d'accès

"; else @@ -444,13 +444,13 @@ if ( isset ($_POST["add_fiche"]) ) $g_user->can_request(FICADD); if ( $write ==0) { - echo '
'; + echo '
'; echo "

Pas d'accès

"; } else { ShowRecherche(); - echo '
'; + echo '
'; $fiche=new Fiche($cn); $fiche->Save($_REQUEST['fiche']); $fiche_def=new Fiche_Def($cn,$_GET['fiche']); @@ -466,7 +466,7 @@ if ( isset ($_POST["add_fiche"]) ) if ( isset ($_POST["update_fiche"]) ) { $g_user->can_request(FIC); - echo '
'; + echo '
'; if ( $write ==0) echo "

Pas d'accès

"; else @@ -489,7 +489,7 @@ if ( isset ($_POST["update_fiche"]) ) // Move a card to a new category if ( isset($_POST['move'])) { - echo '
'; + echo '
'; $fiche=new Fiche($cn,$_POST['f_id']); $fiche->move_to($_POST['move_to']); $fiche_def=new Fiche_Def($cn,$_GET['fiche']); diff --git a/include/menu.inc.php b/include/menu.inc.php index d87906c00..5559403ac 100644 --- a/include/menu.inc.php +++ b/include/menu.inc.php @@ -29,15 +29,45 @@ */ require_once 'class_menu_ref_sql.php'; require_once 'class_sort_table.php'; +require_once 'class_extension.php'; + + echo '
'; /** * 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 @@ echo '

le type vaut :

  • PR pour les impressions
  • PL pour les plugins
  • SP pour des valeurs spéciales
  • + +

    '; +$gDossier=Dossier::id(); +echo HtmlInput::button("Add_plugin", "Ajout d'un plugin", "onclick=add_plugin($gDossier)"); echo ''; echo ''; echo ''; @@ -85,8 +119,17 @@ echo ''; for ($i=0;$iget_object($ret, $i); + $js=$row->me_code; + switch ($row->me_type) + { + case 'PL': + $js=sprintf('%s', + $gDossier,$row->me_code,$row->me_code); + break; + + } echo ''; - echo td($row->me_code); + echo td($js); echo td($row->me_menu); echo td($row->me_description); echo td($row->me_url); diff --git a/include/operation_ods_new.inc.php b/include/operation_ods_new.inc.php index f1d7f99c4..346990fa8 100644 --- a/include/operation_ods_new.inc.php +++ b/include/operation_ods_new.inc.php @@ -91,14 +91,16 @@ echo HtmlInput::button('add', _('Ajout d\'une ligne'), 'onClick="quick_writing_a echo HtmlInput::submit('summary', _('Sauvez')); +echo '
    '; echo '
    '.$table->get_header(0).'
    '. ''.td(_('Débit')) . '' . td(_('Crédit')) . ' ' . td(_('Difference')) . ' '; echo '
    '; +echo '
    '; $iconcerned=new IConcerned('jrn_concerned'); -$iconcerned->extra=0; +$iconcerned->amount_id="totalDeb"; echo "Opération rapprochée : ".$iconcerned->input(); echo ''; diff --git a/include/param_pcmn.inc.php b/include/param_pcmn.inc.php index 9c84fabc5..35192049c 100644 --- a/include/param_pcmn.inc.php +++ b/include/param_pcmn.inc.php @@ -89,7 +89,7 @@ echo '
    '; echo ''; -echo '
    '; +echo '
    '; /* Analyse ce qui est demandé */ /* Effacement d'une ligne */ if (isset ($_GET['action'])) diff --git a/include/profile.inc.php b/include/profile.inc.php index 0c406366d..045454165 100644 --- a/include/profile.inc.php +++ b/include/profile.inc.php @@ -18,44 +18,264 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* $Revision$ */ - // Copyright Author Dany De Bontridder ddebontridder@yahoo.fr require_once 'class_profile_sql.php'; global $cn; -echo '
    '; -$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 '
    '; +$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 ''; echo ''; -echo ''; -echo ''; -echo ''; -echo ''; +echo ''; +echo ''; +echo ''; +echo ''; echo ''; - -for ($i=0;$iget_object($ret, $i); + $row = $menu->get_object($ret, $i); + + $js = sprintf('', $gDossier, $row->p_id); echo ''; - echo td($row->p_name); + echo "'; echo td($row->p_desc); echo td($row->with_calc); echo td($row->with_direct_form); echo ''; } +$js = sprintf('', $gDossier, -1); +echo ''; +echo ""; +echo ''; echo '
    '.$table->get_header(0).''.$table->get_header(1).''.$table->get_header(2).''.$table->get_header(3).'' . $table->get_header(0) . '' . $table->get_header(1) . '' . $table->get_header(2) . '' . $table->get_header(3) . '
    " . $js . $row->p_name . '' . '
    ".$js."Ajouter un profil
    '; echo '
    '; + +//******************************************************* +// Show details of the selected profile +//******************************************************* +echo '
    '; +if (isset($_POST['p_id'])) +{ + require_once 'show_profile.inc.php'; +} +echo '
    '; ?> diff --git a/include/report.inc.php b/include/report.inc.php index 719ef5b80..23bc3ca19 100644 --- a/include/report.inc.php +++ b/include/report.inc.php @@ -105,7 +105,7 @@ if ( isset ($_REQUEST["action"]) ) if ($action == "add" && ! isset($_REQUEST['fr_id'])) { - echo '
    '; + echo '
    '; echo '

    '._('Définition').'

    '; echo '
    '; echo dossier::hidden(); @@ -116,7 +116,7 @@ if ( isset ($_REQUEST["action"]) ) echo '
    '; echo ''._("Les lignes vides seront effacées").''; echo "
    "; - echo '
    '; + echo '
    '; echo '
    '; echo '

    Importation

    '; @@ -135,7 +135,7 @@ if ( isset ($_REQUEST["action"]) ) } if ($action=="view" ) { - echo '
    '; + echo '
    '; $rap->id=$_REQUEST ['fr_id']; echo ''; $rap->load(); diff --git a/include/show_profile.inc.php b/include/show_profile.inc.php new file mode 100644 index 000000000..3bf9a3d9d --- /dev/null +++ b/include/show_profile.inc.php @@ -0,0 +1,81 @@ + +
    +

    Profile p_name?>

    + +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 ''; +echo HtmlInput::hidden('p_id',$profile->p_id); +require_once("template/profile.php"); +echo HtmlInput::submit("save_name","Modifier"); +echo ''; + +echo '
    '; + +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 '
    '; + +echo '
    '; + +echo ' +Effacer ce profil'; + +echo HtmlInput::hidden('p_id',$profile->p_id); +echo HtmlInput::submit("delete_profil","Effacer ce profil"); +echo '
    '; +//Menu / Module /plugin in this profile +echo "

    Détail du profile

    "; +echo "

    Menu

    "; +echo $add_one; +$profile_menu=new Profile_Menu($cn); +$profile_menu->listing_profile($p_id); +echo "

    Impression

    "; +$profile_menu->printing($p_id); +?> + diff --git a/include/stock.inc.php b/include/stock.inc.php index fb1a9a798..ac74dedf3 100644 --- a/include/stock.inc.php +++ b/include/stock.inc.php @@ -137,7 +137,7 @@ if ( $action == 'detail' ) $b=""; - echo '
    ' ; + echo '
    ' ; echo $a; echo '
    '; @@ -180,7 +180,7 @@ for ( $i = 0; $i < Database::num_row($Res);$i++) // Show the current stock -echo '
    '; +echo '
    '; echo $r; $a=ViewStock($cn,$year); if ( $a != null ) diff --git a/include/template/add_menu.php b/include/template/add_menu.php new file mode 100644 index 000000000..d79cd3519 --- /dev/null +++ b/include/template/add_menu.php @@ -0,0 +1,86 @@ +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); +?> +
    + + + + + + + + + + + + + + + + + + + + + + + +
    Codeinput()?>
    Dépendant de input()?>
    Ordre d'apparitioninput()?>
    Menu par défautinput()?>
    Type de menuinput()?>
    +'; +?> diff --git a/include/template/plugin_detail.php b/include/template/plugin_detail.php new file mode 100644 index 000000000..54a212118 --- /dev/null +++ b/include/template/plugin_detail.php @@ -0,0 +1,62 @@ +value; +echo HtmlInput::title_box($msg, $ctl); +?> + + + + + + + + + + + + + + + + + + +
    Labelinput();?>
    Codeinput();?>
    Descriptioninput();?>
    Fichierinput();?>
    + Voulez-vous effacer ce plugin ? ".$delete->input()."

    "; + echo HtmlInput::submit("mod_plugin","Modifier ce plugin"); + + } + ?> +
    \ No newline at end of file diff --git a/include/template/profile.php b/include/template/profile.php new file mode 100644 index 000000000..b3e42324f --- /dev/null +++ b/include/template/profile.php @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + +
    Nominput();?>
    Descriptioninput()?>
    Avec Calculatriceinput()?>
    Avec Direct Forminput()?>
    \ No newline at end of file diff --git a/include/template/profile_menu.php b/include/template/profile_menu.php new file mode 100644 index 000000000..5cf3d2d41 --- /dev/null +++ b/include/template/profile_menu.php @@ -0,0 +1,30 @@ + diff --git a/sql/backup-new-object.sh b/sql/backup-new-object.sh index 24b6ada5e..b8ccd776f 100755 --- a/sql/backup-new-object.sh +++ b/sql/backup-new-object.sh @@ -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 diff --git a/sql/change_account_repo.sql b/sql/change_account_repo.sql new file mode 100644 index 000000000..8961ded5e --- /dev/null +++ b/sql/change_account_repo.sql @@ -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'); diff --git a/sql/object-6.0.sql b/sql/object-6.0.sql index 779830403..14e5827af 100644 --- a/sql/object-6.0.sql +++ b/sql/object-6.0.sql @@ -200,9 +200,21 @@ ALTER SEQUENCE profile_menu_pm_id_seq OWNED BY profile_menu.pm_id; -- 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 @@ ALTER SEQUENCE profile_p_id_seq OWNED BY profile.p_id; -- 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 @@ ALTER TABLE profile_user ALTER COLUMN pu_id SET DEFAULT nextval('profile_user_pu -- 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 ('CSV:fichedetail', 'Export Fiche détail', NULL, NU 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,135 +455,238 @@ INSERT INTO menu_ref VALUES ('PRINTGL', 'Grand Livre', 'impress_gl_comptes.inc.p 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'); -- @@ -596,6 +712,14 @@ ALTER TABLE ONLY profile_menu ADD CONSTRAINT profile_menu_pkey PRIMARY KEY (pm_id); +-- +-- 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: -- @@ -634,6 +758,13 @@ CREATE INDEX fki_profile_menu_me_code ON profile_menu USING btree (me_code); CREATE INDEX fki_profile_menu_profile ON profile_menu USING btree (p_id); +-- +-- 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,7 +778,15 @@ ALTER TABLE ONLY profile_menu -- 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); -- diff --git a/sql/style-epad.sql b/sql/style-epad.sql new file mode 100644 index 000000000..38475b14b --- /dev/null +++ b/sql/style-epad.sql @@ -0,0 +1,3 @@ +-- run to the account_repository +insert into theme values ('EPad','style-epad.css',null); + diff --git a/sql/tmp_pcmn_ins.sql b/sql/tmp_pcmn_ins.sql new file mode 100644 index 000000000..3df5f1cce --- /dev/null +++ b/sql/tmp_pcmn_ins.sql @@ -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; diff --git a/sql/upgrade.sql b/sql/upgrade.sql index 5d3312a01..657f5b143 100644 --- a/sql/upgrade.sql +++ b/sql/upgrade.sql @@ -15,8 +15,10 @@ tmp_pcmn_ins.sql 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;