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>";
00043 $result.='<TR>';
00044 if ( $p_admin == 1 ) {
00045 $result.="<TD><A class=\"mtitle\" HREF=\"admin_repo.php\"> Administration : </A></TD>";
00046 }
00047 $result.='<TD><A HREF="logout.php" CLASS="mtitle">: 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 u_ShowMenu($p_admin,$p_check = 1,$p_item="")
00133 {
00134
00135 include_once("postgres.php");
00136 echo '<div class="mtitle">';
00137 echo "<TABLE align=center cellspadding=0><TR>";
00138 if ( $p_admin !=0 ) {
00139
00140 echo '<TD class="mtitle"><A class="mtitle" HREF=admin_repo.php>Administrator Menu</A></TD>';
00141 }
00142
00143 if (strlen ( $p_item ) != 0 ) {
00144 echo '<TD class="mtitle">'.$p_item.'</A></TD>';
00145 }
00146
00147 echo ' <TD class="mtitle"> <A class="mtitle" HREF="user_pref.php">Préférence</A></TD>';
00148
00149 echo "<TD class=\"mtitle\">";
00150 html_button_logout();
00151 echo "</TD>";
00152 echo "</TR></TABLE>";
00153 echo "</div>";
00154 }
00166 function ShowMenuCompta($p_dossier,$p_high="")
00167 {
00168 include_once("postgres.php");
00169
00170
00171 $default=basename($_SERVER['SCRIPT_NAME']);
00172 switch ($default) {
00173 case "user_jrn.php":
00174 $default.="?show";
00175 break;
00176 case "recherche.php":
00177 $default.="?p_dossier=$p_dossier";
00178 break;
00179 case "fiche.php":
00180 $default.="?p_dossier=$p_dossier";
00181 break;
00182 }
00183 if ( $p_high !== "" ) $default=$p_high;
00184
00185 echo_debug('user_menu.php',__LINE__,'defaut is '.$default);
00186
00187 $p_array=array(array("user_jrn.php?show","Journaux","Les journaux permettent d'encoder toutes les opérations"),
00188 array("recherche.php?p_dossier=$p_dossier","Recherche","Pour retrouver une opération"),
00189 array("fiche.php?p_dossier=$p_dossier","Fiche","Ajouter, modifier ou effacer des fiches"),
00190 array("user_impress.php","Impression","Impression"),
00191 array("user_advanced.php","Avancé","Opérations délicates"),
00192
00193 array('user_pref.php','Preference',"Préférence de l'utilisateur"),
00194 array('parametre.php?dos='.$_SESSION['g_dossier'],"Paramètre"),
00195 array('commercial.php?dos='.$_SESSION['g_dossier'],"Gestion"),
00196 array('login.php','Accueil',"Accueil"),
00197 array('logout.php','logout',"Sortie")
00198 );
00199
00200 $result=ShowItem($p_array,'H',"mtitle","mtitle",$default,' width="100%"');
00201
00202 $r="<H2 class=\"info\">Comptabilité ".$_SESSION['g_name']." </H2>";
00203 $r.=$result;
00204 return $r;
00205
00206
00207
00208
00209 }
00220 function GetFirstJrnIdForJrnType($p_dossier,$p_type)
00221 {
00222 include_once("postgres.php");
00223
00224
00225 $Cn=DbConnect($p_dossier);
00226
00227 $Ret=ExecSql($Cn,"select min(jrn_def_id) from jrn_def where jrn_def_type='".$p_type."';");
00228 $l_line=pg_fetch_array($Ret,0);
00229 return $l_line[0];
00230
00231 }
00246 function ShowMenuJrnUser($p_dossier,$p_type,$p_jrn,$p_extra="")
00247 {
00248 include_once ("debug.php");
00249 include_once("constant.php");
00250 include_once("class_user.php");
00251 echo_debug('user_menu.php',__LINE__,"U_SHOWMENUJRNUSER PTYPE=$p_type");
00252
00253 echo '<TABLE><TR>';
00254 include_once("postgres.php");
00255
00256
00257 $Cn=DbConnect($p_dossier);
00258
00259 $User=new cl_user($Cn);
00260 $User->Check();
00261 if ( $User->Admin() ==0) {
00262 $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,
00263 jrn_deb_max_line,jrn_cred_max_line
00264 from jrn_def join jrn_type on jrn_def_type=jrn_type_id
00265 join user_sec_jrn on uj_jrn_id=jrn_def_id
00266 where
00267 uj_login='".$User->id."'
00268 and uj_priv !='X'
00269 and jrn_def_type='$p_type'
00270 ");
00271 } else {
00272 $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,
00273 jrn_type_id,jrn_desc,'W' as uj_priv
00274 from jrn_def join jrn_type on jrn_def_type=jrn_type_id where
00275 jrn_def_type='$p_type'");
00276
00277 }
00278 $Max=pg_NumRows($Ret);
00279 include_once("check_priv.php");
00280
00281 for ($i=0;$i<$Max;$i++) {
00282 $l_line=pg_fetch_array($Ret,$i);
00283
00284 if ( $User->Admin() == 0 ){
00285 $right=CheckJrn($p_dossier,$_SESSION['g_user'],$l_line['jrn_def_id']);
00286 }else {
00287 $right=3;
00288 }
00289
00290 if ( $right > 0 ) {
00291
00292 echo_debug('user_menu.php',__LINE__,"p_jrn = $p_jrn ");
00293 if ( $l_line['jrn_def_id'] != $p_jrn ) {
00294 $href=$_SERVER["SCRIPT_NAME"];
00295 $add="";
00296
00297
00298 if ( $href=="/commercial.php" )
00299 {
00300 $add="&p_action=facture";
00301 }
00302 echo '<TD class="cell">';
00303 printf ('<A class="mtitle" HREF="%s?jrn_type=%s&p_jrn=%s%s">%s</A></TD>',
00304 $href,
00305 $l_line['jrn_def_type'],
00306 $l_line['jrn_def_id'],
00307 $add,
00308 $l_line['jrn_def_name']
00309 );
00310 } else
00311 {
00312 echo '<TD class="selectedcell">'. $l_line['jrn_def_name'].'</TD>';
00313 }
00314 }
00315 }
00316 if ( $p_extra !="" ) echo $p_extra;
00317 echo '</TR>';
00318 echo "</TABLE>";
00319
00320
00321 }
00333 function ShowMenuJrn($p_cn,$p_jrn_type,$p_jrn)
00334 {
00335
00336 $Res=ExecSql($p_cn,"select ja_name,ja_url,ja_action,ja_desc from jrn_action where ja_jrn_type='$p_jrn_type'
00337 order by ja_id");
00338 $num=pg_NumRows($Res);
00339 if ($num==0) return "";
00340
00341 $ret="<TABLE>";
00342 $access_key_list = array();
00343 for ($i=0;$i<$num;$i++) {
00344 $action=pg_fetch_array($Res,$i);
00345 $access_key=get_quick_key($action['ja_name'],$access_key_list);
00346 $lib=str_replace($access_key,'<u>'.$access_key.'</u>',$action['ja_name']);
00347
00348 $ret.=sprintf('<TR><TD class="cell"><A class="mtitle" accesskey="%s" title="%s" '.
00349 'HREF="%s?%s&p_jrn=%s&jrn_type=%s">%s</A></td></tR>',
00350 $access_key,
00351 $action['ja_desc'],
00352 $action['ja_url'],
00353 $action['ja_action'],
00354 $p_jrn,
00355 $_REQUEST['jrn_type'],
00356 $lib);
00357
00358 }
00359 $ret.='</TABLE>';
00360 return $ret;
00361
00362 }
00363
00375 function get_quick_key($title,&$access_key_list)
00376 {
00377 $quick = $title[0];
00378 if(array_key_exists($quick, $access_key_list))
00379 {
00380 echo_debug(" key exists: " . $quick);
00381 return get_quick_key(substr($title, 1), $access_key_list);
00382 } else
00383 {
00384 echo_debug(" new key: " . $quick);
00385 }
00386 $access_key_list[$quick] = $quick;
00387
00388 return $quick;
00389 }
00390
00405 function u_ShowMenuRecherche($p_cn,$p_jrn,$p_sessid,$p_array=null)
00406 {
00407 echo_debug('user_menu.php',__LINE__,"u_ShowMenuRecherche($p_cn,$p_array)");
00408 if ( $p_array != null ) {
00409 foreach ( $p_array as $key=> $element) {
00410 ${"p_$key"}=$element;
00411 echo_debug('user_menu.php',__LINE__,"p_$key =$element;");
00412 }
00413 }
00414
00415
00416
00417
00418 $opt='<OPTION VALUE="="> =';
00419 $opt.='<OPTION VALUE="<="> <=';
00420 $opt.='<OPTION VALUE="<"> <';
00421 $opt.='<OPTION VALUE=">"> >';
00422 $opt.='<OPTION VALUE=">="> >=';
00423 if ( ! isset ($p_date_start)) $p_date_start="";
00424 if ( ! isset ($p_date_end)) $p_date_end="";
00425 if ( ! isset ($p_mont_sel))$p_mont_sel="";
00426 if ( ! isset ($p_s_comment))$p_s_comment="";
00427 if ( ! isset ($p_s_montant)) $p_s_montant="";
00428 if ( ! isset ($p_s_internal)) $p_s_internal="";
00429 if ( ! isset ($p_poste)) $p_poste="";
00430 if ( ! isset ($p_qcode)) $p_qcode="";
00431
00432
00433 if ( $p_mont_sel != "" ) $opt.='<OPTION value="'.$p_mont_sel.'" SELECTED> '.$p_mont_sel;
00434 $r="";
00435
00436
00437
00438 $r.=JS_SEARCH_POSTE;
00439 $r.= "<B>Recherche</B>";
00440 $r.= '<FORM ACTION="recherche.php" METHOD="GET">';
00441 $r.="<table><tr><TD>";
00442 $r.= '<TABLE>';
00443 $r.= "<TR>";
00444 $r.= '<TD COLSPAN="3"> Date compris entre</TD> ';
00445 $r.= "</TR> <TR>";
00446 $r.= '<TD> <INPUT TYPE="TEXT" NAME="date_start" SIZE="10" VALUE="'.$p_date_start.'"></TD>';
00447 $r.= '<TD> <INPUT TYPE="TEXT" NAME="date_end" size="10" Value="'.$p_date_end.'"></TD>';
00448 $r.= '</TD><TD>';
00449 $r.= "</TR> <TR>";
00450 $r.= "<TD> Montant ";
00451 $r.= ' <SELECT NAME="mont_sel">'.$opt.' </SELECT></TD><TD>';
00452 $r.= ' <INPUT TYPE="TEXT" NAME="s_montant" SIZE="10" VALUE="'.$p_s_montant.'"></TD>';
00453 $r.= "</TR><TR>";
00454 $r.="<TD> Internal code</td>";
00455 $r.='<TD><input type="text" name="s_internal" value="'.$p_s_internal.'"></td>';
00456
00457 $r.="</TD></TR></TABLE></td><TD><table>";
00458
00459 $r.= "</TR>";
00460 $r.= "<TR>";
00461 $W=new widget("js_search_poste");
00462 $W->label="Numéro de poste";
00463 $W->name="poste";
00464 $W->value=$p_poste;
00465 $r.="<TR>".$W->IOValue();
00466 $r.= "</TR>";
00467 $r.= "<TR>";
00468 $A=new widget("TEXT");
00469 $A->label="Quick Code";
00470 $A->name="qcode";
00471 $A->value=$p_qcode;
00472 $r.="<TD> Quick Code</TD><TD>".$A->IOValue()."</TD>";
00473 $r.= "</TR>";
00474
00475
00476 $r.= '<TD colspan="3"> Le commentaire contient </TD>';
00477 $r.= "</TR><TR>";
00478 $r.= '<TD COLSPAN="3"> <INPUT TYPE="TEXT" NAME="s_comment" VALUE="'.$p_s_comment.'"></TD>';
00479 $r.= "</TR><TR>";
00480 $r.= '<TD COLSPAN="3"><INPUT TYPE="SUBMIT" VALUE="Recherche" NAME="viewsearch"></TD>';
00481 $r.= "</TR>";
00482 $r.= "</TABLE>";
00483 $r.="</TR></TABLE>";
00484 $r.= "</FORM>";
00485
00486
00487 return $r;
00488
00489 }
00498 function ShowMenuAdvanced($default="") {
00499
00500 $left_menu=ShowItem(array(
00501
00502 array('jrn_update.php','Journaux'),
00503 array('user_advanced.php?p_action=periode','Periode'),
00504 array('central.php','Centralise'),
00505 array('pcmn_update.php?p_start=1','Plan Comptable'),
00506 array('stock.php','Stock'),
00507 array('form.php','Rapport'),
00508 array('import.php','Import Banque'),
00509 array('ecrit_ouv.php','Ecriture ouverture')
00510
00511 ),
00512 'H',"cell","mtitle",$default);
00513 $r='<div class="u_subtmenu">'.$left_menu."</div>";
00514 return $r;
00515 }
00524 function ShowJrn($p_menu="")
00525 {
00526
00527 $p_array=array(
00528 array("user_jrn.php?jrn_type=NONE" ,"Grand Livre"),
00529 array("user_jrn.php?jrn_type=VEN" ,"Entrée"),
00530 array("user_jrn.php?jrn_type=ACH","Dépense"),
00531 array("user_jrn.php?jrn_type=FIN","Financier"),
00532 array("user_jrn.php?jrn_type=OD","Op. Diverses")
00533 );
00534 $result=ShowItem($p_array,'H',"cell","mtitle",$p_menu);
00535 return $result;
00536 }
00537
00548 function ShowMenuFiche($p_dossier)
00549 {
00550 $cn=DbConnect($p_dossier);
00551 echo '<div class="lmenu">';
00552 echo '<TABLE>';
00555 echo '<TR><TD colspan="3" class="mtitle">
00556 <A class="mtitle" HREF="fiche.php?action=add_modele&fiche=modele">Creation</A></TD></TR>';
00557 $Res=ExecSql($cn,"select fd_id,fd_label from fiche_def order by fd_label");
00558 $Max=pg_NumRows($Res);
00559 for ( $i=0; $i < $Max;$i++) {
00560 $l_line=pg_fetch_array($Res,$i);
00561 printf('<TR><TD class="cell">%s</TD><TD class="mshort"><A class="mtitle" HREF="fiche.php?action=vue&fiche=%d">Voir</A>
00562 </TD>
00563 <TD class="mshort"><A class="mtitle" HREF="fiche.php?action=modifier&fiche=%d">Modifier</A></TD>
00564 </TR>',
00565 $l_line['fd_label'],
00566 $l_line['fd_id'],
00567 $l_line['fd_id']);
00568 }
00569 echo "</TABLE>";
00570 echo '</div>';
00571 }
00573
00574
00575
00576
00577
00578 function MenuAdmin()
00579 {
00580 $item=array (array("admin_repo.php?action=user_mgt","Utilisateurs"),
00581 array("admin_repo.php?action=dossier_mgt","Dossiers"),
00582 array("admin_repo.php?action=modele_mgt","Modèles"),
00583 array("login.php","Accueil"),
00584 array("logout.php","Logout")
00585 );
00586
00587 $menu=ShowItem($item,'H');
00588 return $menu;
00589 }
00598 function ShowMenuDocument()
00599 {
00600 $base="parametre.php?p_action=document&sa=";
00601 $sub_menu=ShowItem(
00602 array(array($base."add_document","Ajout"))
00603 ,'V',"cell","mtitle");
00604 return $sub_menu;
00605
00606 }
00618 function ShowMenuParam($p_action="")
00619 {
00620 $sub_menu=ShowItem(array(
00621
00622 array('parametre.php?p_action=company','Sociétés'),
00623 array('parametre.php?p_action=devise','Devises'),
00624 array('parametre.php?p_action=tva','Tva'),
00625 array('parametre.php?p_action=poste','Poste Comptable'),
00626 array('parametre.php?p_action=fiche','Fiche'),
00627 array('user_sec.php','Sécurité'),
00628 array('parametre.php?p_action=document','Document'),
00629 array('commercial.php?dos='.$_SESSION['g_dossier'],"Gestion"),
00630 array('user_compta.php?dos='.$_SESSION['g_dossier'],"Comptabilité"),
00631
00632 array('login.php','Accueil',"Accueil"),
00633 array('logout.php','logout',"Sortie")
00634 ),
00635 'H',"mtitle","mtitle",$p_action,' width="100%"');
00636 return $sub_menu;
00637
00638 }
00651 function MenuJrn($p_dossier)
00652 {
00653 echo '<TABLE>';
00654 echo '<TR><TD class="mtitle"><A class="mtitle" HREF="jrn_add.php">Création </A></TD></TR>';
00655 include_once("postgres.php");
00656 $Cn=DbConnect($p_dossier);
00657 $Ret=ExecSql($Cn,"select jrn_def_id,jrn_def_name,
00658 jrn_def_class_deb,jrn_def_class_cred,jrn_type_id,jrn_desc
00659 from jrn_def join jrn_type on jrn_def_type=jrn_type_id");
00660 $Max=pg_NumRows($Ret);
00661 for ($i=0;$i<$Max;$i++) {
00662 $l_line=pg_fetch_array($Ret,$i);
00663 printf ('<TR><TD class="mtitle"><A class="mtitle" HREF="jrn_detail.php?p_jrn=%s">%s</A></TD></TR>',
00664 $l_line['jrn_def_id'],$l_line['jrn_def_name']);
00665
00666 }
00667 echo "</TABLE>";
00668 }
00681 function ShowMenuPcmn($p_start=1)
00682 {
00683 echo '<TABLE>';
00684 echo '<TR><TD class="mtitle"><A class="mtitle" HREF="pcmn_update.php?p_start=1">1 Immobilisé </A></TD></TR>';
00685 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>';
00686 echo '<TR><TD class="mtitle"><A class="mtitle" HREF="pcmn_update.php?p_start=3">3 Stock et commande</A></TD></TR>';
00687 echo '<TR><TD class="mtitle"><A class="mtitle" HREF="pcmn_update.php?p_start=4">4 Compte tiers</A></TD></TR>';
00688 echo '<TR><TD class="mtitle"><A class="mtitle" HREF="pcmn_update.php?p_start=5">5 Actif</A></TD></TR>';
00689 echo '<TR><TD class="mtitle"><A class="mtitle" HREF="pcmn_update.php?p_start=6">6 Charges</A></TD></TR>';
00690 echo '<TR><TD class="mtitle"><A class="mtitle" HREF="pcmn_update.php?p_start=7">7 Produits</A></TD></TR>';
00691 echo "</TABLE>";
00692 }
00704 function ShowMenuComptaForm($p_dossier) {
00705 $cn=DbConnect($p_dossier);
00706 echo '<div class="lmenu">';
00707 echo '<TABLE>';
00708 echo '<TR><TD class="mtitle"><A class="mtitle" HREF="form.php?action=add">Ajout</A></TD></TR>';
00709 $Ret=ExecSql($cn,"select fr_id, fr_label
00710 from formdef order by fr_label");
00711 $Max=pg_NumRows($Ret);
00712 for ($i=0;$i<$Max;$i++) {
00713 $l_line=pg_fetch_array($Ret,$i);
00714 printf ('<TR><TD class="mtitle"><A class="mtitle" HREF="form.php?action=view&fr_id=%s">%s</A></TD></TR>',
00715 $l_line['fr_id'],$l_line['fr_label']);
00716
00717 }
00718 echo "</TABLE>";
00719 echo '</div>';
00720 }
00721
00727 function ShowMenuImport(){
00728 echo '<TABLE>';
00729 echo '<TR><TD class="mtitle"><A class="mtitle" HREF="import.php?action=import">Importer CSV</A></TD></TR>';
00730 echo '<TR><TD class="mtitle"><A class="mtitle" HREF="import.php?action=verif">Verif CSV</A></TD></TR>';
00731 echo '<TR><TD class="mtitle"><A class="mtitle" HREF="import.php?action=transfer">Transfert CSV</A></TD></TR>';
00732
00733 echo "</TABLE>";
00734 }
00735
00736 ?>