00001 <?
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00025
00026
00027
00037 function u_ShowDossier($p_user,$p_admin)
00038 {
00039 $p_array=GetAvailableFolder($p_user,$p_admin);
00040 if ( $p_array == 0 ) return " * Aucun dossier *";
00041 $result="";
00042 $result.="<table border=\"0\">";
00043 $result.='<TR>';
00044 if ( $p_admin == 1 ) {
00045 $result.="<TD class=\"mtitle\" ><A class=\"mtitle\" HREF=\"admin_repo.php\"> Administration </A></TD>";
00046 }
00047 $result.='<TD class="mtitle" ><A class="mtitle" HREF="logout.php" > Sortir</a></TD>';
00048 $result.="</TR>";
00049 $result.="</table>";
00050 $result.="<TABLE>";
00051 for ($i=0;$i<sizeof($p_array);$i++) {
00052 $id=$p_array[$i]['dos_id'];
00053 $name= $p_array[$i]['dos_name'];
00054 $desc=$p_array[$i]['dos_description'];
00055 if ( $i%2 == 0)
00056 $tr="odd";
00057 else $tr="even";
00058
00059 $result.="<TR class=\"$tr\"><TD class=\"$tr\">";
00060 $result.=$id." <B>$name</B>";
00061 $result.="</TD><TD class=\"$tr\">";
00062 $result.=$desc;
00063 $result.="</TD><TD class=\"mtitle\">";
00064 $result.="<A class=\"mtitle\" HREF=\"user_compta.php?dos=$id\">Comptabilité</A>";
00065 $result.="</TD>";
00066 $result.="<TD class=\"mtitle\">";
00067 $result.="<A class=\"mtitle\" HREF=\"commercial.php?dos=$id\">Gestion</A>";
00068 $result.="</TD>";
00069 $result.="<TD class=\"mtitle\">";
00070 $result.="<A class=\"mtitle\" HREF=\"parametre.php?dos=$id\">Paramètres</A>";
00071 $result.="</TD>";
00072
00073 $result.="</TR>";
00074 }
00075 $result.="</TABLE>";
00076 return $result;
00077 }
00090 function GetAvailableFolder($p_user,$p_admin)
00091 {
00092 $filter="";
00093 if ($p_admin==0) {
00094
00095
00096 $sql="select distinct dos_id,dos_name,dos_description from ac_users
00097 natural join jnt_use_dos
00098 natural join ac_dossier
00099 join priv_user on ( priv_jnt=jnt_id)
00100 where use_active=1
00101 and use_login='$p_user'
00102 and priv_priv != 'NO' ";
00103
00104 } else {
00105 $sql="select distinct dos_id,dos_name,dos_description from ac_users
00106 natural join jnt_use_dos
00107 natural join ac_dossier
00108 where use_active=1 ";
00109 }
00110 include_once("postgres.php");
00111 $cn=DbConnect();
00112 $Res=ExecSql($cn,$sql);
00113 $max=pg_numRows($Res);
00114 if ( $max == 0 ) return 0;
00115
00116 for ($i=0;$i<$max;$i++) {
00117 $array[]=pg_fetch_array($Res,$i);
00118 }
00119 return $array;
00120 }
00132 function ShowMenuCompta($p_dossier,$p_high="")
00133 {
00134 include_once("postgres.php");
00135
00136
00137 $default=basename($_SERVER['SCRIPT_NAME']);
00138 switch ($default) {
00139 case "user_jrn.php":
00140 $default.="?show";
00141 break;
00142 case "recherche.php":
00143 $default.="?p_dossier=$p_dossier";
00144 break;
00145 case "fiche.php":
00146 $default.="?p_dossier=$p_dossier";
00147 break;
00148 }
00149 if ( $p_high !== "" ) $default=$p_high;
00150
00151 echo_debug('user_menu.php',__LINE__,'defaut is '.$default);
00152
00153 $p_array=array(array("user_jrn.php?show","Journaux","Les journaux permettent d'encoder toutes les opérations"),
00154 array("recherche.php?p_dossier=$p_dossier","Recherche","Pour retrouver une opération"),
00155 array("fiche.php?p_dossier=$p_dossier","Fiche","Ajouter, modifier ou effacer des fiches"),
00156 array("user_impress.php","Impression","Impression"),
00157 array("user_advanced.php","Avancé","Opérations délicates"),
00158
00159 array('user_pref.php','Preference',"Préférence de l'utilisateur"),
00160 array('parametre.php?dos='.$_SESSION['g_dossier'],"Paramètre"),
00161 array('commercial.php?dos='.$_SESSION['g_dossier'],"Gestion"),
00162 array('login.php','Accueil',"Accueil"),
00163 array('logout.php','logout',"Sortie")
00164 );
00165
00166 $result=ShowItem($p_array,'H',"mtitle","mtitle",$default,' width="100%"');
00167
00168 $r="<H2 class=\"info\">Comptabilité ".$_SESSION['g_name']." </H2>";
00169 $r.=$result;
00170 return $r;
00171
00172
00173
00174
00175 }
00186 function GetFirstJrnIdForJrnType($p_dossier,$p_type)
00187 {
00188 include_once("postgres.php");
00189
00190
00191 $Cn=DbConnect($p_dossier);
00192
00193 $Ret=ExecSql($Cn,"select min(jrn_def_id) from jrn_def where jrn_def_type='".$p_type."';");
00194 $l_line=pg_fetch_array($Ret,0);
00195 return $l_line[0];
00196
00197 }
00212 function ShowMenuJrnUser($p_dossier,$p_type,$p_jrn,$p_extra="")
00213 {
00214 include_once ("debug.php");
00215 include_once("constant.php");
00216 include_once("class_user.php");
00217 echo_debug('user_menu.php',__LINE__,"U_SHOWMENUJRNUSER PTYPE=$p_type");
00218
00219 echo '<TABLE><TR>';
00220 include_once("postgres.php");
00221
00222
00223 $Cn=DbConnect($p_dossier);
00224
00225 $User=new cl_user($Cn);
00226 $User->Check();
00227 if ( $User->Admin() ==0) {
00228 $Ret=ExecSql($Cn,"select jrn_def_id,jrn_def_type,jrn_def_name,jrn_def_class_deb,jrn_def_class_cred,jrn_type_id,jrn_desc,uj_priv,
00229 jrn_deb_max_line,jrn_cred_max_line
00230 from jrn_def join jrn_type on jrn_def_type=jrn_type_id
00231 join user_sec_jrn on uj_jrn_id=jrn_def_id
00232 where
00233 uj_login='".$User->id."'
00234 and uj_priv !='X'
00235 and jrn_def_type='$p_type' order by jrn_Def_id
00236 ");
00237 } else {
00238 $Ret=ExecSql($Cn,"select jrn_def_id,jrn_def_type,jrn_def_name,jrn_def_class_deb,jrn_def_class_cred,jrn_deb_max_line,jrn_cred_max_line,
00239 jrn_type_id,jrn_desc,'W' as uj_priv
00240 from jrn_def join jrn_type on jrn_def_type=jrn_type_id where
00241 jrn_def_type='$p_type' order by jrn_Def_id");
00242
00243 }
00244 $Max=pg_NumRows($Ret);
00245 include_once("check_priv.php");
00246
00247 for ($i=0;$i<$Max;$i++) {
00248 $l_line=pg_fetch_array($Ret,$i);
00249
00250 if ( $User->Admin() == 0 ){
00251 $right=CheckJrn($p_dossier,$_SESSION['g_user'],$l_line['jrn_def_id']);
00252 }else {
00253 $right=3;
00254 }
00255
00256 if ( $right > 0 ) {
00257
00258 echo_debug('user_menu.php',__LINE__,"p_jrn = $p_jrn ");
00259 if ( $l_line['jrn_def_id'] != $p_jrn ) {
00260 $href=$_SERVER["SCRIPT_NAME"];
00261 $add="";
00262
00263
00264 if ( $href=="/commercial.php" )
00265 {
00266 $add='&p_action='.$_REQUEST['p_action'];
00267 }
00268 echo '<TD class="cell">';
00269 printf ('<A class="mtitle" HREF="%s?jrn_type=%s&p_jrn=%s%s">%s</A></TD>',
00270 $href,
00271 $l_line['jrn_def_type'],
00272 $l_line['jrn_def_id'],
00273 $add,
00274 $l_line['jrn_def_name']
00275 );
00276 } else
00277 {
00278 echo '<TD class="selectedcell">'. $l_line['jrn_def_name'].'</TD>';
00279 }
00280 }
00281 }
00282 if ( $p_extra !="" ) echo $p_extra;
00283 echo '</TR>';
00284 echo "</TABLE>";
00285
00286
00287 }
00299 function ShowMenuJrn($p_cn,$p_jrn_type,$p_jrn)
00300 {
00301
00302 $Res=ExecSql($p_cn,"select ja_name,ja_url,ja_action,ja_desc from jrn_action where ja_jrn_type='$p_jrn_type'
00303 order by ja_id");
00304 $num=pg_NumRows($Res);
00305 if ($num==0) return "";
00306
00307 $ret="<TABLE>";
00308 $access_key_list = array();
00309 for ($i=0;$i<$num;$i++) {
00310 $action=pg_fetch_array($Res,$i);
00311 $access_key=get_quick_key($action['ja_name'],$access_key_list);
00312 $lib=str_replace($access_key,'<u>'.$access_key.'</u>',$action['ja_name']);
00313
00314 $ret.=sprintf('<TR><TD class="cell"><A class="mtitle" accesskey="%s" title="%s" '.
00315 'HREF="%s?%s&p_jrn=%s&jrn_type=%s">%s</A></td></tR>',
00316 $access_key,
00317 $action['ja_desc'],
00318 $action['ja_url'],
00319 $action['ja_action'],
00320 $p_jrn,
00321 $_REQUEST['jrn_type'],
00322 $lib);
00323
00324 }
00325 $ret.='</TABLE>';
00326 return $ret;
00327
00328 }
00329
00341 function get_quick_key($title,&$access_key_list)
00342 {
00343 $quick = $title[0];
00344 if(array_key_exists($quick, $access_key_list))
00345 {
00346 echo_debug(" key exists: " . $quick);
00347 return get_quick_key(substr($title, 1), $access_key_list);
00348 } else
00349 {
00350 echo_debug(" new key: " . $quick);
00351 }
00352 $access_key_list[$quick] = $quick;
00353
00354 return $quick;
00355 }
00356
00371 function u_ShowMenuRecherche($p_cn,$p_jrn,$p_sessid,$p_array=null)
00372 {
00373 echo_debug('user_menu.php',__LINE__,"u_ShowMenuRecherche($p_cn,$p_array)");
00374 if ( $p_array != null ) {
00375 foreach ( $p_array as $key=> $element) {
00376 ${"p_$key"}=$element;
00377 echo_debug('user_menu.php',__LINE__,"p_$key =$element;");
00378 }
00379 }
00380
00381
00382
00383
00384 $opt='<OPTION VALUE="="> =';
00385 $opt.='<OPTION VALUE="<="> <=';
00386 $opt.='<OPTION VALUE="<"> <';
00387 $opt.='<OPTION VALUE=">"> >';
00388 $opt.='<OPTION VALUE=">="> >=';
00389 if ( ! isset ($p_date_start)) $p_date_start="";
00390 if ( ! isset ($p_date_end)) $p_date_end="";
00391 if ( ! isset ($p_mont_sel))$p_mont_sel="";
00392 if ( ! isset ($p_s_comment))$p_s_comment="";
00393 if ( ! isset ($p_s_montant)) $p_s_montant="";
00394 if ( ! isset ($p_s_internal)) $p_s_internal="";
00395 if ( ! isset ($p_poste)) $p_poste="";
00396 if ( ! isset ($p_qcode)) $p_qcode="";
00397
00398
00399 if ( $p_mont_sel != "" ) $opt.='<OPTION value="'.$p_mont_sel.'" SELECTED> '.$p_mont_sel;
00400 $r="";
00401
00402
00403
00404 $r.=JS_SEARCH_POSTE;
00405 $r.=JS_SEARCH_CARD;
00406 $r.= "<B>Recherche</B>";
00407 $r.= '<FORM ACTION="recherche.php" METHOD="GET">';
00408 $r.="<table><tr><TD>";
00409 $r.= '<TABLE>';
00410 $r.= "<TR>";
00411 $r.= '<TD COLSPAN="3"> Date compris entre</TD> ';
00412 $r.= "</TR> <TR>";
00413 $r.= '<TD> <INPUT TYPE="TEXT" NAME="date_start" SIZE="10" VALUE="'.$p_date_start.'"></TD>';
00414 $r.= '<TD> <INPUT TYPE="TEXT" NAME="date_end" size="10" Value="'.$p_date_end.'"></TD>';
00415 $r.= '</TD><TD>';
00416 $r.= "</TR> <TR>";
00417 $r.= "<TD> Montant ";
00418 $r.= ' <SELECT NAME="mont_sel">'.$opt.' </SELECT></TD><TD>';
00419 $r.= ' <INPUT TYPE="TEXT" NAME="s_montant" SIZE="10" VALUE="'.$p_s_montant.'"></TD>';
00420 $r.= "</TR><TR>";
00421 $r.="<TD> Internal code</td>";
00422 $r.='<TD><input type="text" name="s_internal" value="'.$p_s_internal.'"></td>';
00423
00424 $r.="</TD></TR></TABLE></td><TD><table>";
00425
00426 $r.= "</TR>";
00427 $r.= "<TR>";
00428 $W=new widget("js_search_poste");
00429 $W->label="Numéro de poste";
00430 $W->name="poste";
00431 $W->value=$p_poste;
00432 $r.="<TR>".$W->IOValue();
00433 $r.= "</TR>";
00434 $r.= "<TR>";
00435
00436 $A=new widget('js_search_only');
00437 $A->name='qcode';
00438 $A->value=$p_qcode;
00439 $A->extra="";
00440 $A->table=1;
00441
00442
00443
00444 $A->label="Quick Code";
00445 $A->extra='all';
00446
00447
00448 $sp= new widget("span");
00449 $sp->table=0;
00450 $r.=$A->IOValue().'</TD>'.$sp->IOValue("qcode_label");
00451 $r.= "</TR>";
00452 echo_debug('user_menu.php',__LINE__,"<TD>".$A->IOValue().'</TD><TD>'.$sp->IOValue("p_qcode_label")."</TD>");
00453
00454 $r.= '<TD colspan="3"> Le commentaire contient </TD>';
00455 $r.= "</TR><TR>";
00456 $r.= '<TD COLSPAN="3"> <INPUT TYPE="TEXT" NAME="s_comment" VALUE="'.$p_s_comment.'"></TD>';
00457 $r.= "</TR><TR>";
00458 $r.= '<TD COLSPAN="3"><INPUT TYPE="SUBMIT" VALUE="Recherche" NAME="viewsearch"></TD>';
00459 $r.= "</TR>";
00460 $r.= "</TABLE>";
00461 $r.="</TR></TABLE>";
00462 $r.= "</FORM>";
00463
00464
00465 return $r;
00466
00467 }
00476 function ShowMenuAdvanced($default="") {
00477
00478 $left_menu=ShowItem(array(
00479
00480 array('jrn_update.php','Journaux'),
00481 array('user_advanced.php?p_action=periode','Periode'),
00482 array('central.php','Centralise'),
00483 array('pcmn_update.php?p_start=1','Plan Comptable'),
00484 array('stock.php','Stock'),
00485 array('form.php','Rapport'),
00486 array('import.php','Import Banque'),
00487 array('ecrit_ouv.php','Ecriture ouverture')
00488
00489 ),
00490 'H',"cell","mtitle",$default);
00491 $r='<div class="u_subtmenu">'.$left_menu."</div>";
00492 return $r;
00493 }
00502 function ShowJrn($p_menu="")
00503 {
00504
00505 $p_array=array(
00506 array("user_jrn.php?jrn_type=NONE" ,"Grand Livre"),
00507 array("user_jrn.php?jrn_type=VEN" ,"Entrée"),
00508 array("user_jrn.php?jrn_type=ACH","Dépense"),
00509 array("user_jrn.php?jrn_type=FIN","Financier"),
00510 array("user_jrn.php?jrn_type=OD","Op. Diverses")
00511 );
00512 $result=ShowItem($p_array,'H',"cell","mtitle",$p_menu);
00513 return $result;
00514 }
00515
00526 function ShowMenuFiche($p_dossier)
00527 {
00528 $cn=DbConnect($p_dossier);
00529 echo '<div class="lmenu">';
00530 echo '<TABLE>';
00533 echo '<TR><TD colspan="3" class="mtitle">
00534 <A class="mtitle" HREF="fiche.php?action=add_modele&fiche=modele">Creation</A></TD></TR>';
00535 $Res=ExecSql($cn,"select fd_id,fd_label from fiche_def order by fd_label");
00536 $Max=pg_NumRows($Res);
00537 for ( $i=0; $i < $Max;$i++) {
00538 $l_line=pg_fetch_array($Res,$i);
00539 printf('<TR><TD class="cell">%s</TD><TD class="mshort"><A class="mtitle" HREF="fiche.php?action=vue&fiche=%d">Voir</A>
00540 </TD>
00541 <TD class="mshort"><A class="mtitle" HREF="fiche.php?action=modifier&fiche=%d">Modifier</A></TD>
00542 </TR>',
00543 $l_line['fd_label'],
00544 $l_line['fd_id'],
00545 $l_line['fd_id']);
00546 }
00547 echo "</TABLE>";
00548 echo '</div>';
00549 }
00551
00552
00553
00554
00555
00556 function MenuAdmin()
00557 {
00558 $item=array (array("admin_repo.php?action=user_mgt","Utilisateurs"),
00559 array("admin_repo.php?action=dossier_mgt","Dossiers"),
00560 array("admin_repo.php?action=modele_mgt","Modèles"),
00561 array("login.php","Accueil"),
00562 array("logout.php","Logout")
00563 );
00564
00565 $menu=ShowItem($item,'H');
00566 return $menu;
00567 }
00576 function ShowMenuDocument()
00577 {
00578 $base="parametre.php?p_action=document&sa=";
00579 $sub_menu=ShowItem(
00580 array(array($base."add_document","Ajout"))
00581 ,'V',"cell","mtitle");
00582 return $sub_menu;
00583
00584 }
00596 function ShowMenuParam($p_action="")
00597 {
00598 $sub_menu=ShowItem(array(
00599
00600 array('parametre.php?p_action=company','Sociétés'),
00601 array('parametre.php?p_action=devise','Devises'),
00602 array('parametre.php?p_action=tva','Tva'),
00603 array('parametre.php?p_action=poste','Poste Comptable'),
00604 array('parametre.php?p_action=fiche','Fiche'),
00605 array('user_sec.php','Sécurité'),
00606 array('parametre.php?p_action=document','Document'),
00607 array('commercial.php?dos='.$_SESSION['g_dossier'],"Gestion"),
00608 array('user_compta.php?dos='.$_SESSION['g_dossier'],"Comptabilité"),
00609
00610 array('login.php','Accueil',"Accueil"),
00611 array('logout.php','logout',"Sortie")
00612 ),
00613 'H',"mtitle","mtitle",$p_action,' width="100%"');
00614 return $sub_menu;
00615
00616 }
00629 function MenuJrn($p_dossier)
00630 {
00631 echo '<TABLE>';
00632 echo '<TR><TD class="mtitle"><A class="mtitle" HREF="jrn_add.php">Création </A></TD></TR>';
00633 include_once("postgres.php");
00634 $Cn=DbConnect($p_dossier);
00635 $Ret=ExecSql($Cn,"select jrn_def_id,jrn_def_name,
00636 jrn_def_class_deb,jrn_def_class_cred,jrn_type_id,jrn_desc
00637 from jrn_def join jrn_type on jrn_def_type=jrn_type_id");
00638 $Max=pg_NumRows($Ret);
00639 for ($i=0;$i<$Max;$i++) {
00640 $l_line=pg_fetch_array($Ret,$i);
00641 printf ('<TR><TD class="mtitle"><A class="mtitle" HREF="jrn_detail.php?p_jrn=%s">%s</A></TD></TR>',
00642 $l_line['jrn_def_id'],$l_line['jrn_def_name']);
00643
00644 }
00645 echo "</TABLE>";
00646 }
00659 function ShowMenuPcmn($p_start=1)
00660 {
00661 echo '<TABLE>';
00662 echo '<TR><TD class="mtitle"><A class="mtitle" HREF="pcmn_update.php?p_start=1">1 Immobilisé </A></TD></TR>';
00663 echo '<TR><TD class="mtitle"><A class="mtitle" HREF="pcmn_update.php?p_start=2">2 Actif a un an au plus</A></TD></TR>';
00664 echo '<TR><TD class="mtitle"><A class="mtitle" HREF="pcmn_update.php?p_start=3">3 Stock et commande</A></TD></TR>';
00665 echo '<TR><TD class="mtitle"><A class="mtitle" HREF="pcmn_update.php?p_start=4">4 Compte tiers</A></TD></TR>';
00666 echo '<TR><TD class="mtitle"><A class="mtitle" HREF="pcmn_update.php?p_start=5">5 Actif</A></TD></TR>';
00667 echo '<TR><TD class="mtitle"><A class="mtitle" HREF="pcmn_update.php?p_start=6">6 Charges</A></TD></TR>';
00668 echo '<TR><TD class="mtitle"><A class="mtitle" HREF="pcmn_update.php?p_start=7">7 Produits</A></TD></TR>';
00669 echo "</TABLE>";
00670 }
00682 function ShowMenuComptaForm($p_dossier) {
00683 $cn=DbConnect($p_dossier);
00684 echo '<div class="lmenu">';
00685 echo '<TABLE>';
00686 echo '<TR><TD class="mtitle"><A class="mtitle" HREF="form.php?action=add">Ajout</A></TD></TR>';
00687 $Ret=ExecSql($cn,"select fr_id, fr_label
00688 from formdef order by fr_label");
00689 $Max=pg_NumRows($Ret);
00690 for ($i=0;$i<$Max;$i++) {
00691 $l_line=pg_fetch_array($Ret,$i);
00692 printf ('<TR><TD class="mtitle"><A class="mtitle" HREF="form.php?action=view&fr_id=%s">%s</A></TD></TR>',
00693 $l_line['fr_id'],$l_line['fr_label']);
00694
00695 }
00696 echo "</TABLE>";
00697 echo '</div>';
00698 }
00699
00705 function ShowMenuImport(){
00706 echo '<TABLE>';
00707 echo '<TR><TD class="mtitle"><A class="mtitle" HREF="import.php?action=import">Importer CSV</A></TD></TR>';
00708 echo '<TR><TD class="mtitle"><A class="mtitle" HREF="import.php?action=verif">Verif CSV</A></TD></TR>';
00709 echo '<TR><TD class="mtitle"><A class="mtitle" HREF="import.php?action=transfer">Transfert CSV</A></TD></TR>';
00710
00711 echo "</TABLE>";
00712 }
00713
00714 ?>