Fix: Gestion des droits sur compte bancaire incomplete. Pas assez de droit pour rapprocher. Melange entre droit de creer/supprimer ecriture bancaire et droit de saisir virement.

This commit is contained in:
Laurent Destailleur 2007-12-14 09:35:15 +00:00
parent 0dba0bf93c
commit 1fdeb753db
7 changed files with 44 additions and 36 deletions

View File

@ -58,7 +58,7 @@ $date_select=isset($_GET["date_select"])?$_GET["date_select"]:$_POST["date_selec
// Cette fonction me semble pas utile. Si on a fait des adhesions alors que module banque
// pas actif c'est qu'on voulait pas d'insertion en banque.
// si on active apres coup, on va pas modifier toutes les adhesions pour avoir une ecriture
// en banque mais on va mettre le solde banque direct a la valeur apres toutes les adhésions.
// en banque mais on va mettre le solde banque direct a la valeur apres toutes les adh<EFBFBD>sions.
$allowinsertbankafter=0;
if (! $user->rights->adherent->cotisation->lire)
@ -70,7 +70,7 @@ if (! $user->rights->adherent->cotisation->lire)
*/
// Insertion de la cotisation dans le compte banquaire
if ($allowinsertbankafter && $user->rights->banque->modifier && $_POST["action"] == '2bank' && $_POST["rowid"] !='')
if ($allowinsertbankafter && $_POST["action"] == '2bank' && $_POST["rowid"] !='')
{
if (defined("ADHERENT_BANK_USE") && $conf->global->ADHERENT_BANK_USE)
{
@ -83,7 +83,7 @@ if ($allowinsertbankafter && $user->rights->banque->modifier && $_POST["action"]
$msg='<div class="error">'.$langs->trans("ErrorFieldRequired",$langs->trans("OperationType")).'</div>';
}
// Créer un tiers + facture et enregistrer son paiement ? -> Non requis avec module compta expert
// Cr<EFBFBD>er un tiers + facture et enregistrer son paiement ? -> Non requis avec module compta expert
// Eventuellement offrir option a la creation adhesion
if (! $msg)
@ -211,7 +211,7 @@ if ($result)
$var=!$var;
if ($allowinsertbankafter && $user->rights->banque->modifier && ! $objp->fk_account && $conf->banque->enabled && $conf->global->ADHERENT_BANK_USE && $objp->cotisation)
if ($allowinsertbankafter && ! $objp->fk_account && $conf->banque->enabled && $conf->global->ADHERENT_BANK_USE && $objp->cotisation)
{
print "<form method=\"post\" action=\"cotisations.php\">";
}
@ -251,7 +251,7 @@ if ($result)
else
{
print "<td>";
if ($allowinsertbankafter && $user->rights->banque->modifier && $objp->cotisation)
if ($allowinsertbankafter && $objp->cotisation)
{
print '<input type="hidden" name="action" value="2bank">';
print '<input type="hidden" name="rowid" value="'.$objp->crowid.'">';
@ -279,7 +279,7 @@ if ($result)
print '<td align="right">'.price($objp->cotisation).'</td>';
print "</tr>";
if ($allowinsertbankafter && $user->rights->banque->modifier && ! $objp->fk_account && $conf->banque->enabled && $conf->global->ADHERENT_BANK_USE && $objp->cotisation)
if ($allowinsertbankafter && ! $objp->fk_account && $conf->banque->enabled && $conf->global->ADHERENT_BANK_USE && $objp->cotisation)
{
print "</form>\n";
}

View File

@ -24,7 +24,7 @@
/**
\file htdocs/compta/bank/ligne.php
\ingroup compta
\brief Page édition d'une écriture bancaire
\brief Page <EFBFBD>dition d'une <EFBFBD>criture bancaire
\version $Revision$
*/
@ -91,7 +91,7 @@ if ($_POST["action"] == "update")
{
$objp = $db->fetch_object($result);
if ($objp->rappro)
die ("Vous ne pouvez pas modifier une écriture déjà rapprochée");
die ("Vous ne pouvez pas modifier une <EFBFBD>criture d<>j<EFBFBD> rapproch<63>e");
}
$db->begin();
@ -100,7 +100,7 @@ if ($_POST["action"] == "update")
$dateop = $_POST["dateoyear"].'-'.$_POST["dateomonth"].'-'.$_POST["dateoday"];
$dateval= $_POST["datevyear"].'-'.$_POST["datevmonth"].'-'.$_POST["datevday"];
$sql = "UPDATE ".MAIN_DB_PREFIX."bank";
$sql.= " SET label='".addslashes($_POST["label"])."',"; // Todo: créer une classe pour séparer les requêtes sql
$sql.= " SET label='".addslashes($_POST["label"])."',"; // Todo: cr<EFBFBD>er une classe pour s<>parer les requ<71>tes sql
if (isset($_POST['amount'])) $sql.=" amount='$amount',";
$sql.= " dateo = '".$dateop."', datev = '".$dateval."',";
$sql.= " fk_account = ".$_POST['accountid'];
@ -218,7 +218,7 @@ if ($result)
// Confirmations
if ($_GET["action"] == 'delete_categ')
{
$html->form_confirm("ligne.php?rowid=".$_GET["rowid"]."&amp;cat1=".$_GET["fk_categ"]."&amp;orig_account=".$orig_account,"Supprimer dans la catégorie","Etes-vous sûr de vouloir supprimer le classement dans la catégorie ?","confirm_delete_categ");
$html->form_confirm("ligne.php?rowid=".$_GET["rowid"]."&amp;cat1=".$_GET["fk_categ"]."&amp;orig_account=".$orig_account,"Supprimer dans la cat<EFBFBD>gorie","Etes-vous s<>r de vouloir supprimer le classement dans la cat<61>gorie ?","confirm_delete_categ");
print '<br>';
}
@ -233,7 +233,7 @@ if ($result)
$links=$acct->get_url($rowid);
// Tableau sur 4 colonne si déja rapproché, sinon sur 5 colonnes
// Tableau sur 4 colonne si d<EFBFBD>ja rapproch<63>, sinon sur 5 colonnes
// Author
print '<tr><td width="20%">'.$langs->trans("Author")."</td>";
@ -266,7 +266,7 @@ if ($result)
// Date ope
print '<tr><td>'.$langs->trans("DateOperation").'</td>';
if (! $objp->rappro && $user->rights->banque->modifier)
if (! $objp->rappro && ($user->rights->banque->modifier || $user->rights->banque->consolidate))
{
print '<td colspan="3">';
$html->select_date($objp->do,'dateo','','','','update');
@ -281,7 +281,7 @@ if ($result)
// Value date
print "<tr><td>".$langs->trans("DateValue")."</td>";
if (! $objp->rappro && $user->rights->banque->modifier)
if (! $objp->rappro && ($user->rights->banque->modifier || $user->rights->banque->consolidate))
{
print '<td colspan="3">';
$html->select_date($objp->dv,'datev','','','','update');
@ -301,13 +301,13 @@ if ($result)
// Description
print "<tr><td>".$langs->trans("Label")."</td>";
if (! $objp->rappro && $user->rights->banque->modifier)
if (! $objp->rappro && ($user->rights->banque->modifier || $user->rights->banque->consolidate))
{
print '<td colspan="3">';
print '<input name="label" class="flat" value="';
if (eregi('^\((.*)\)$',$objp->label,$reg))
{
// Label générique car entre parenthèses. On l'affiche en le traduisant
// Label g<EFBFBD>n<EFBFBD>rique car entre parenth<74>ses. On l'affiche en le traduisant
print $langs->trans($reg[1]);
}
else
@ -323,7 +323,7 @@ if ($result)
print '<td colspan="4">';
if (eregi('^\((.*)\)$',$objp->label,$reg))
{
// Label générique car entre parenthèses. On l'affiche en le traduisant
// Label g<EFBFBD>n<EFBFBD>rique car entre parenth<74>ses. On l'affiche en le traduisant
print $langs->trans($reg[1]);
}
else
@ -411,7 +411,7 @@ if ($result)
// Type paiement
print "<tr><td>".$langs->trans("Type")." / ".$langs->trans("Numero")."</td><td colspan=\"3\">";
if ($user->rights->banque->modifier)
if ($user->rights->banque->modifier || $user->rights->banque->consolidate)
{
print "<form method=\"post\" action=\"ligne.php?rowid=$objp->rowid\">";
print '<input type="hidden" name="action" value="type">';
@ -434,7 +434,7 @@ if ($result)
print "<form method=\"post\" action=\"ligne.php?rowid=$objp->rowid\">";
print '<input type="hidden" name="action" value="banque">';
print "<input type=\"hidden\" name=\"orig_account\" value=\"".$orig_account."\">";
print '<input type="text" class="flat" size="40" name="banque" value="'.(empty($objp->banque) ? '' : stripslashes($objp->banque)).'">';
print '<input type="text" class="flat" size="40" name="banque" value="'.(empty($objp->banque) ? '' : $objp->banque).'">';
print '</td><td align="center"><input type="submit" class="button" value="'.$langs->trans("Update").'">';
print "</form>";
}
@ -446,7 +446,7 @@ if ($result)
// Emetteur
print "<tr><td>".$langs->trans("CheckTransmitter")."</td><td colspan=\"3\">";
if ($user->rights->banque->modifier)
if ($user->rights->banque->modifier || $user->rights->banque->consolidate)
{
print "<form method=\"post\" action=\"ligne.php?rowid=$objp->rowid\">";
print '<input type="hidden" name="action" value="emetteur">';

View File

@ -75,9 +75,9 @@ function llxHeader($head = "")
// Obsolete. Replaced by page Rapport E/S
// $menu->add_submenu(DOL_URL_ROOT."/compta/bank/bilan.php","Bilan",1,$user->rights->banque->lire);
if ($user->rights->banque->modifier)
if ($user->rights->banque->transfer)
{
$menu->add_submenu(DOL_URL_ROOT."/compta/bank/virement.php",$langs->trans("BankTransfers"),1,$user->rights->banque->modifier);
$menu->add_submenu(DOL_URL_ROOT."/compta/bank/virement.php",$langs->trans("BankTransfers"),1,$user->rights->banque->transfer);
}
if ($conf->global->COMPTA_ONLINE_PAYMENT_BPLC)

View File

@ -315,7 +315,7 @@ if ($resql)
print img_edit();
print '</a>&nbsp; ';
if ($objp->do <= mktime() ) {
if ($objp->do <= dolibarr_mktime() ) {
print '<a href="'.DOL_URL_ROOT.'/compta/bank/rappro.php?action=del&amp;rowid='.$objp->rowid.'&amp;account='.$acct->id.'">';
print img_delete();
print '</a>';

View File

@ -22,7 +22,7 @@
/**
\file htdocs/compta/bank/releve.php
\ingroup banque
\brief Page d'affichage d'un relevé
\brief Page d'affichage d'un relev<EFBFBD>
\version $Revision$
*/
@ -67,7 +67,7 @@ llxHeader();
$html = new Form($db);
// Récupère info du compte
// R<EFBFBD>cup<EFBFBD>re info du compte
$acct = new Account($db);
if ($_GET["account"])
{
@ -82,7 +82,7 @@ if ($_GET["ref"])
if (! isset($_GET["num"]))
{
/*
* Vue liste tous relevés confondus
* Vue liste tous relev<EFBFBD>s confondus
*/
$sql = "SELECT distinct(b.num_releve) as numr";
$sql.= " FROM ".MAIN_DB_PREFIX."bank as b";
@ -156,7 +156,7 @@ else
*/
if ($_GET["rel"] == 'prev')
{
// Recherche valeur pour num = numéro relevé précédent
// Recherche valeur pour num = num<EFBFBD>ro relev<65> pr<70>c<EFBFBD>dent
$sql = "SELECT distinct(num_releve) as num";
$sql.= " FROM ".MAIN_DB_PREFIX."bank";
$sql.= " WHERE num_releve < ".$_GET["num"]." AND fk_account = ".$_GET["account"];
@ -176,7 +176,7 @@ else
}
elseif ($_GET["rel"] == 'next')
{
// Recherche valeur pour num = numéro relevé précédent
// Recherche valeur pour num = num<EFBFBD>ro relev<65> pr<70>c<EFBFBD>dent
$sql = "SELECT distinct(num_releve) as num";
$sql.= " FROM ".MAIN_DB_PREFIX."bank";
$sql.= " WHERE num_releve > ".$_GET["num"]." AND fk_account = ".$_GET["account"];
@ -195,7 +195,7 @@ else
}
}
else {
// On veut le relevé num
// On veut le relev<EFBFBD> num
$num=$_GET["num"];
}
$ve=$_GET["ve"];
@ -222,7 +222,7 @@ else
print '<td>&nbsp;</td>';
print "</tr>\n";
// Calcul du solde de départ du relev
// Calcul du solde de d<EFBFBD>part du relev
$sql = "SELECT sum(amount) as amount FROM ".MAIN_DB_PREFIX."bank";
$sql.= " WHERE num_releve < ".$num." AND fk_account = ".$acct->id;
$resql=$db->query($sql);
@ -233,7 +233,7 @@ else
$db->free($resql);
}
// Recherche les écritures pour le relev
// Recherche les <EFBFBD>critures pour le relev
$sql = "SELECT b.rowid,".$db->pdate("b.dateo")." as do,".$db->pdate("b.datev")." as dv, b.amount, b.label, b.rappro, b.num_releve, b.num_chq, b.fk_type";
$sql .= " FROM ".MAIN_DB_PREFIX."bank as b";
$sql .= " WHERE num_releve='".$num."'";
@ -251,7 +251,7 @@ else
$numrows = $db->num_rows($result);
$i = 0;
// Ligne Solde début releve
// Ligne Solde d<EFBFBD>but releve
print "<tr><td colspan=\"4\"><a href=\"releve.php?num=$num&amp;ve=1&amp;rel=$rel&amp;account=".$acct->id."\">&nbsp;</a></td>";
print "<td align=\"right\" colspan=\"2\"><b>".$langs->trans("InitialBankBalance")." :</b></td><td align=\"right\"><b>".price($total)."</b></td><td>&nbsp;</td></tr>\n";
@ -281,7 +281,7 @@ else
// Libelle
print '<td valign="center"><a href="'.DOL_URL_ROOT.'/compta/bank/ligne.php?rowid='.$objp->rowid.'&amp;account='.$acct->id.'">';
$reg=array();
eregi('\((.+)\)',$objp->label,$reg); // Si texte entouré de parenthèe on tente recherche de traduction
eregi('\((.+)\)',$objp->label,$reg); // Si texte entour<EFBFBD> de parenth<74>e on tente recherche de traduction
if ($reg[1] && $langs->trans($reg[1])!=$reg[1]) print $langs->trans($reg[1]);
else print $objp->label;
print '</a>';
@ -354,7 +354,7 @@ else
}
}
// Catégories
// Cat<EFBFBD>gories
if ($ve)
{
$sql = "SELECT label FROM ".MAIN_DB_PREFIX."bank_categ as ct, ".MAIN_DB_PREFIX."bank_class as cl";
@ -393,7 +393,7 @@ else
print "<td align=\"right\" nowrap=\"nowrap\">".price($total)."</td>\n";
if ($user->rights->banque->modifier)
if ($user->rights->banque->modifier || $user->rights->banque->consolidate)
{
print "<td align=\"center\"><a href=\"ligne.php?rowid=$objp->rowid&amp;account=".$acct->id."\">";
print img_edit();

View File

@ -33,7 +33,7 @@ $langs->load("banks");
$user->getrights('banque');
if (!$user->rights->banque->modifier)
if (! $user->rights->banque->transfer)
accessforbidden();

View File

@ -93,7 +93,7 @@ class modBanque extends DolibarrModules
$r++;
$this->rights[$r][0] = 112; // id de la permission
$this->rights[$r][1] = 'Créer/modifier/supprimer écriture bancaire'; // libelle de la permission
$this->rights[$r][1] = 'Créer/modifier montant/supprimer écriture bancaire'; // libelle de la permission
$this->rights[$r][2] = 'w'; // type de la permission (déprécié à ce jour)
$this->rights[$r][3] = 0; // La permission est-elle une permission par défaut
$this->rights[$r][4] = 'modifier';
@ -119,6 +119,14 @@ class modBanque extends DolibarrModules
$this->rights[$r][3] = 0; // La permission est-elle une permission par défaut
$this->rights[$r][4] = 'export';
$r++;
$this->rights[$r][0] = 116; // id de la permission
$this->rights[$r][1] = 'Virements entre comptes'; // libelle de la permission
$this->rights[$r][2] = 'w'; // type de la permission (déprécié à ce jour)
$this->rights[$r][3] = 0; // La permission est-elle une permission par défaut
$this->rights[$r][4] = 'transfer';
// Exports
//--------