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 ".
00194 "where jrn_def_type='".$p_type."';");
00195 $l_line=pg_fetch_array($Ret,0);
00196 return $l_line[0];
00197
00198 }
00213 function ShowMenuJrnUser($p_dossier,$p_type,$p_jrn,$p_extra="")
00214 {
00215 include_once ("debug.php");
00216 include_once("constant.php");
00217 include_once("class_user.php");
00218 echo_debug('user_menu.php',__LINE__,"U_SHOWMENUJRNUSER PTYPE=$p_type");
00219
00220 echo '<TABLE><TR>';
00221 include_once("postgres.php");
00222
00223
00224 $Cn=DbConnect($p_dossier);
00225
00226 $User=new cl_user($Cn);
00227 $User->Check();
00228 if ( $User->Admin() ==0) {
00229 $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,
00230 jrn_deb_max_line,jrn_cred_max_line
00231 from jrn_def join jrn_type on jrn_def_type=jrn_type_id
00232 join user_sec_jrn on uj_jrn_id=jrn_def_id
00233 where
00234 uj_login='".$User->id."'
00235 and uj_priv !='X'
00236 and jrn_def_type='$p_type' order by jrn_Def_id
00237 ");
00238 } else {
00239 $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,
00240 jrn_type_id,jrn_desc,'W' as uj_priv
00241 from jrn_def join jrn_type on jrn_def_type=jrn_type_id where
00242 jrn_def_type='$p_type' order by jrn_Def_id");
00243
00244 }
00245 $Max=pg_NumRows($Ret);
00246 include_once("check_priv.php");
00247
00248 for ($i=0;$i<$Max;$i++) {
00249 $l_line=pg_fetch_array($Ret,$i);
00250
00251 if ( $User->Admin() == 0 ){
00252 $right=CheckJrn($p_dossier,$_SESSION['g_user'],$l_line['jrn_def_id']);
00253 }else {
00254 $right=3;
00255 }
00256
00257 if ( $right > 0 ) {
00258
00259 echo_debug('user_menu.php',__LINE__,"p_jrn = $p_jrn ");
00260 if ( $l_line['jrn_def_id'] != $p_jrn ) {
00261 $href=basename($_SERVER["SCRIPT_NAME"]);
00262 $add="";
00263
00264
00265 if ( $href=="commercial.php" )
00266 {
00267 $add='&p_action='.$_REQUEST['p_action'];
00268 }
00269 echo '<TD class="cell">';
00270 printf ('<A class="mtitle" HREF="%s?jrn_type=%s&p_jrn=%s%s">%s</A></TD>',
00271 $href,
00272 $l_line['jrn_def_type'],
00273 $l_line['jrn_def_id'],
00274 $add,
00275 $l_line['jrn_def_name']
00276 );
00277 } else
00278 {
00279 echo '<TD class="selectedcell">'. $l_line['jrn_def_name'].'</TD>';
00280 }
00281 }
00282 }
00283 if ( $p_extra !="" ) echo $p_extra;
00284 echo '</TR>';
00285 echo "</TABLE>";
00286
00287
00288 }
00300 function ShowMenuJrn($p_cn,$p_jrn_type,$p_jrn)
00301 {
00302
00303 $Res=ExecSql($p_cn,"select ja_name,ja_url,ja_action,ja_desc from jrn_action where ja_jrn_type='$p_jrn_type'
00304 order by ja_id");
00305 $num=pg_NumRows($Res);
00306 if ($num==0) return "";
00307
00308 $ret="<TABLE>";
00309 $access_key_list = array();
00310 for ($i=0;$i<$num;$i++) {
00311 $action=pg_fetch_array($Res,$i);
00312 $access_key=get_quick_key($action['ja_name'],$access_key_list);
00313 $lib=str_replace($access_key,'<u>'.$access_key.'</u>',$action['ja_name']);
00314
00315 $ret.=sprintf('<TR><TD class="cell"><A class="mtitle" accesskey="%s" title="%s" '.
00316 'HREF="%s?%s&p_jrn=%s&jrn_type=%s">%s</A></td></tR>',
00317 $access_key,
00318 $action['ja_desc'],
00319 $action['ja_url'],
00320 $action['ja_action'],
00321 $p_jrn,
00322 $_REQUEST['jrn_type'],
00323 $lib);
00324
00325 }
00326 $ret.='</TABLE>';
00327 return $ret;
00328
00329 }
00330
00342 function get_quick_key($title,&$access_key_list)
00343 {
00344 $quick = $title[0];
00345 if(array_key_exists($quick, $access_key_list))
00346 {
00347 echo_debug(" key exists: " . $quick);
00348 return get_quick_key(substr($title, 1), $access_key_list);
00349 } else
00350 {
00351 echo_debug(" new key: " . $quick);
00352 }
00353 $access_key_list[$quick] = $quick;
00354
00355 return $quick;
00356 }
00357
00372 function u_ShowMenuRecherche($p_cn,$p_jrn,$p_sessid,$p_array=null)
00373 {
00374 echo_debug('user_menu.php',__LINE__,"u_ShowMenuRecherche($p_cn,$p_array)");
00375 if ( $p_array != null ) {
00376 foreach ( $p_array as $key=> $element) {
00377 ${"p_$key"}=$element;
00378 echo_debug('user_menu.php',__LINE__,"p_$key =$element;");
00379 }
00380 }
00381
00382
00383
00384
00385 $opt='<OPTION VALUE="="> =';
00386 $opt.='<OPTION VALUE="<="> <=';
00387 $opt.='<OPTION VALUE="<"> <';
00388 $opt.='<OPTION VALUE=">"> >';
00389 $opt.='<OPTION VALUE=">="> >=';
00390 if ( ! isset ($p_date_start)) $p_date_start="";
00391 if ( ! isset ($p_date_end)) $p_date_end="";
00392 if ( ! isset ($p_mont_sel))$p_mont_sel="";
00393 if ( ! isset ($p_s_comment))$p_s_comment="";
00394 if ( ! isset ($p_s_montant)) $p_s_montant="";
00395 if ( ! isset ($p_s_internal)) $p_s_internal="";
00396 if ( ! isset ($p_poste)) $p_poste="";
00397 if ( ! isset ($p_qcode)) $p_qcode="";
00398
00399
00400 if ( $p_mont_sel != "" ) $opt.='<OPTION value="'.$p_mont_sel.'" SELECTED> '.$p_mont_sel;
00401 $r="";
00402
00403
00404
00405 $r.=JS_SEARCH_POSTE;
00406 $r.=JS_SEARCH_CARD;
00407 $r.= "<B>Recherche</B>";
00408 $r.= '<FORM ACTION="recherche.php" METHOD="GET">';
00409 $r.="<table><tr><TD>";
00410 $r.= '<TABLE>';
00411 $r.= "<TR>";
00412 $r.= '<TD COLSPAN="3"> Date compris entre</TD> ';
00413 $r.= "</TR> <TR>";
00414 $r.= '<TD> <INPUT TYPE="TEXT" NAME="date_start" SIZE="10" VALUE="'.$p_date_start.'"></TD>';
00415 $r.= '<TD> <INPUT TYPE="TEXT" NAME="date_end" size="10" Value="'.$p_date_end.'"></TD>';
00416 $r.= '</TD><TD>';
00417 $r.= "</TR> <TR>";
00418 $r.= "<TD> Montant ";
00419 $r.= ' <SELECT NAME="mont_sel">'.$opt.' </SELECT></TD><TD>';
00420 $r.= ' <INPUT TYPE="TEXT" NAME="s_montant" SIZE="10" VALUE="'.$p_s_montant.'"></TD>';
00421 $r.= "</TR><TR>";
00422 $r.="<TD> Internal code</td>";
00423 $r.='<TD><input type="text" name="s_internal" value="'.$p_s_internal.'"></td>';
00424
00425 $r.="</TD></TR></TABLE></td><TD><table>";
00426
00427 $r.= "</TR>";
00428 $r.= "<TR>";
00429 $W=new widget("js_search_poste");
00430 $W->label="Numéro de poste";
00431 $W->name="poste";
00432 $W->value=$p_poste;
00433 $r.="<TR>".$W->IOValue();
00434 $r.= "</TR>";
00435 $r.= "<TR>";
00436
00437 $A=new widget('js_search_only');
00438 $A->name='qcode';
00439 $A->value=$p_qcode;
00440 $A->extra="";
00441 $A->table=1;
00442
00443
00444
00445 $A->label="Quick Code";
00446 $A->extra='all';
00447
00448
00449 $sp= new widget("span");
00450 $sp->table=0;
00451 $r.=$A->IOValue().'</TD>'.$sp->IOValue("qcode_label");
00452 $r.= "</TR>";
00453 echo_debug('user_menu.php',__LINE__,"<TD>".$A->IOValue().'</TD><TD>'.$sp->IOValue("p_qcode_label")."</TD>");
00454
00455 $r.= '<TD colspan="3"> Le commentaire contient </TD>';
00456 $r.= "</TR><TR>";
00457 $r.= '<TD COLSPAN="3"> <INPUT TYPE="TEXT" NAME="s_comment" VALUE="'.$p_s_comment.'"></TD>';
00458 $r.= "</TR><TR>";
00459 $r.= '<TD COLSPAN="3"><INPUT TYPE="SUBMIT" VALUE="Recherche" NAME="viewsearch"></TD>';
00460 $r.= "</TR>";
00461 $r.= "</TABLE>";
00462 $r.="</TR></TABLE>";
00463 $r.= "</FORM>";
00464
00465
00466 return $r;
00467
00468 }
00477 function ShowMenuAdvanced($default="") {
00478
00479 $left_menu=ShowItem(array(
00480
00481 array('jrn_update.php','Journaux'),
00482 array('user_advanced.php?p_action=periode','Periode'),
00483 array('central.php','Centralise'),
00484 array('pcmn_update.php?p_start=1','Plan Comptable'),
00485 array('stock.php','Stock'),
00486 array('form.php','Rapport'),
00487 array('import.php','Import Banque'),
00488 array('ecrit_ouv.php','Ecriture ouverture')
00489
00490 ),
00491 'H',"cell","mtitle",$default);
00492 $r='<div class="u_subtmenu">'.$left_menu."</div>";
00493 return $r;
00494 }
00503 function ShowJrn($p_menu="")
00504 {
00505
00506 $p_array=array(
00507 array("user_jrn.php?jrn_type=NONE" ,"Grand Livre"),
00508 array("user_jrn.php?jrn_type=VEN" ,"Entrée"),
00509 array("user_jrn.php?jrn_type=ACH","Dépense"),
00510 array("user_jrn.php?jrn_type=FIN","Financier"),
00511 array("user_jrn.php?jrn_type=OD","Op. Diverses")
00512 );
00513 $result=ShowItem($p_array,'H',"cell","mtitle",$p_menu);
00514 return $result;
00515 }
00516
00527 function ShowMenuFiche($p_dossier)
00528 {
00529 $cn=DbConnect($p_dossier);
00530 echo '<div class="lmenu">';
00531 echo '<TABLE>';
00534 echo '<TR><TD colspan="3" class="mtitle">
00535 <A class="mtitle" HREF="fiche.php?action=add_modele&fiche=modele">Creation</A></TD></TR>';
00536 $Res=ExecSql($cn,"select fd_id,fd_label from fiche_def order by fd_label");
00537 $Max=pg_NumRows($Res);
00538 for ( $i=0; $i < $Max;$i++) {
00539 $l_line=pg_fetch_array($Res,$i);
00540 printf('<TR><TD class="cell">%s</TD><TD class="mshort"><A class="mtitle" HREF="fiche.php?action=vue&fiche=%d">Voir</A>
00541 </TD>
00542 <TD class="mshort"><A class="mtitle" HREF="fiche.php?action=modifier&fiche=%d">Modifier</A></TD>
00543 </TR>',
00544 $l_line['fd_label'],
00545 $l_line['fd_id'],
00546 $l_line['fd_id']);
00547 }
00548 echo "</TABLE>";
00549 echo '</div>';
00550 }
00552
00553
00554
00555
00556
00557 function MenuAdmin()
00558 {
00559 $item=array (array("admin_repo.php?action=user_mgt","Utilisateurs"),
00560 array("admin_repo.php?action=dossier_mgt","Dossiers"),
00561 array("admin_repo.php?action=modele_mgt","Modèles"),
00562 array("login.php","Accueil"),
00563 array("logout.php","Logout")
00564 );
00565
00566 $menu=ShowItem($item,'H');
00567 return $menu;
00568 }
00577 function ShowMenuDocument()
00578 {
00579 $base="parametre.php?p_action=document&sa=";
00580 $sub_menu=ShowItem(
00581 array(array($base."add_document","Ajout"))
00582 ,'V',"cell","mtitle");
00583 return $sub_menu;
00584
00585 }
00597 function ShowMenuParam($p_action="")
00598 {
00599 $sub_menu=ShowItem(array(
00600
00601 array('parametre.php?p_action=company','Sociétés'),
00602 array('parametre.php?p_action=devise','Devises'),
00603 array('parametre.php?p_action=tva','Tva'),
00604 array('parametre.php?p_action=poste','Poste Comptable'),
00605 array('parametre.php?p_action=fiche','Fiche'),
00606 array('user_sec.php','Sécurité'),
00607 array('parametre.php?p_action=document','Document'),
00608 array('commercial.php?dos='.$_SESSION['g_dossier'],"Gestion"),
00609 array('user_compta.php?dos='.$_SESSION['g_dossier'],"Comptabilité"),
00610
00611 array('login.php','Accueil',"Accueil"),
00612 array('logout.php','logout',"Sortie")
00613 ),
00614 'H',"mtitle","mtitle",$p_action,' width="100%"');
00615 return $sub_menu;
00616
00617 }
00630 function MenuJrn($p_dossier)
00631 {
00632 echo '<TABLE>';
00633 echo '<TR><TD class="mtitle"><A class="mtitle" HREF="jrn_add.php">Création </A></TD></TR>';
00634 include_once("postgres.php");
00635 $Cn=DbConnect($p_dossier);
00636 $Ret=ExecSql($Cn,"select jrn_def_id,jrn_def_name,
00637 jrn_def_class_deb,jrn_def_class_cred,jrn_type_id,jrn_desc
00638 from jrn_def join jrn_type on jrn_def_type=jrn_type_id");
00639 $Max=pg_NumRows($Ret);
00640 for ($i=0;$i<$Max;$i++) {
00641 $l_line=pg_fetch_array($Ret,$i);
00642 printf ('<TR><TD class="mtitle"><A class="mtitle" HREF="jrn_detail.php?p_jrn=%s">%s</A></TD></TR>',
00643 $l_line['jrn_def_id'],$l_line['jrn_def_name']);
00644
00645 }
00646 echo "</TABLE>";
00647 }
00660 function ShowMenuPcmn($p_start=1)
00661 {
00662 echo '<TABLE>';
00663 echo '<TR><TD class="mtitle"><A class="mtitle" HREF="pcmn_update.php?p_start=1">1 Immobilisé </A></TD></TR>';
00664 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>';
00665 echo '<TR><TD class="mtitle"><A class="mtitle" HREF="pcmn_update.php?p_start=3">3 Stock et commande</A></TD></TR>';
00666 echo '<TR><TD class="mtitle"><A class="mtitle" HREF="pcmn_update.php?p_start=4">4 Compte tiers</A></TD></TR>';
00667 echo '<TR><TD class="mtitle"><A class="mtitle" HREF="pcmn_update.php?p_start=5">5 Actif</A></TD></TR>';
00668 echo '<TR><TD class="mtitle"><A class="mtitle" HREF="pcmn_update.php?p_start=6">6 Charges</A></TD></TR>';
00669 echo '<TR><TD class="mtitle"><A class="mtitle" HREF="pcmn_update.php?p_start=7">7 Produits</A></TD></TR>';
00670 echo "</TABLE>";
00671 }
00683 function ShowMenuComptaForm($p_dossier) {
00684 $cn=DbConnect($p_dossier);
00685 echo '<div class="lmenu">';
00686 echo '<TABLE>';
00687 echo '<TR><TD class="mtitle"><A class="mtitle" HREF="form.php?action=add">Ajout</A></TD></TR>';
00688 $Ret=ExecSql($cn,"select fr_id, fr_label
00689 from formdef order by fr_label");
00690 $Max=pg_NumRows($Ret);
00691 for ($i=0;$i<$Max;$i++) {
00692 $l_line=pg_fetch_array($Ret,$i);
00693 printf ('<TR><TD class="mtitle"><A class="mtitle" HREF="form.php?action=view&fr_id=%s">%s</A></TD></TR>',
00694 $l_line['fr_id'],$l_line['fr_label']);
00695
00696 }
00697 echo "</TABLE>";
00698 echo '</div>';
00699 }
00700
00706 function ShowMenuImport(){
00707 echo '<TABLE>';
00708 echo '<TR><TD class="mtitle"><A class="mtitle" HREF="import.php?action=import">Importer CSV</A></TD></TR>';
00709 echo '<TR><TD class="mtitle"><A class="mtitle" HREF="import.php?action=verif">Verif CSV</A></TD></TR>';
00710 echo '<TR><TD class="mtitle"><A class="mtitle" HREF="import.php?action=transfer">Transfert CSV</A></TD></TR>';
00711
00712 echo "</TABLE>";
00713 }
00714
00715 ?>