From: <rc...@us...> - 2015-12-27 19:59:12
|
Revision: 7427 http://sourceforge.net/p/web-erp/reponame/7427 Author: rchacon Date: 2015-12-27 19:59:10 +0000 (Sun, 27 Dec 2015) Log Message: ----------- On UserGLAccounts.php: Fix script name; add $ViewTopic and $BookMark; improve $SelectedUser validation; improve page_title_text; improve select user; regroup modify access permission code (improve logic); add classes to table elements; transalate database "0" and "1" to human "No" and "Yes"; simplify and tide code; modify prnMsg from multiple part sentence to one part sentence (better to trasnlate when language use a different gramar structrure fron English); add "Print This", "Select A Different User" and "Return" buttons. Add info to ManualGeneralLedger.html. Modified Paths: -------------- trunk/UserGLAccounts.php trunk/doc/Change.log trunk/doc/Manual/ManualGeneralLedger.html Modified: trunk/UserGLAccounts.php =================================================================== --- trunk/UserGLAccounts.php 2015-12-26 10:39:10 UTC (rev 7426) +++ trunk/UserGLAccounts.php 2015-12-27 19:59:10 UTC (rev 7427) @@ -1,262 +1,259 @@ <?php -/* $Id: glaccountusers.php 6806 2013-09-28 05:10:46Z daintree $*/ +/* $Id: UserGLAccounts.php 6806 2013-09-28 05:10:46Z daintree $*/ +/* Maintenance of GL Accounts allowed for a user. */ include('includes/session.inc'); -$Title = _('User Authorised GL Accounts Maintenance'); +$Title = _('User Authorised GL Accounts'); +$ViewTopic = 'GeneralLedger'; +$BookMark = 'UserGLAccounts'; include('includes/header.inc'); -echo '<p class="page_title_text"><img src="' . $RootPath . '/css/' . $Theme . '/images/money_add.png" title="' . _('User Authorised GL Accounts') . '" alt="" />' . ' ' . $Title . '</p>'; +if(isset($_POST['SelectedUser']) and $_POST['SelectedUser']<>'') {//If POST not empty: + $SelectedUser = mb_strtoupper($_POST['SelectedUser']); +} elseif(isset($_GET['SelectedUser']) and $_GET['SelectedUser']<>'') {//If GET not empty: + $SelectedUser = mb_strtoupper($_GET['SelectedUser']); +} else {// Unset empty SelectedUser: + unset($_GET['SelectedUser']); + unset($_POST['SelectedUser']); + unset($SelectedUser); +} -if (isset($_POST['SelectedGLAccount'])) { +if(isset($_POST['SelectedGLAccount'])) { $SelectedGLAccount = mb_strtoupper($_POST['SelectedGLAccount']); -} elseif (isset($_GET['SelectedGLAccount'])) { +} elseif(isset($_GET['SelectedGLAccount'])) { $SelectedGLAccount = mb_strtoupper($_GET['SelectedGLAccount']); } else { $SelectedGLAccount = ''; +/* unset($SelectedGLAccount);*/ } -if (isset($_POST['SelectedUser'])) { - $SelectedUser = mb_strtoupper($_POST['SelectedUser']); -} elseif (isset($_GET['SelectedUser'])) { - $SelectedUser = mb_strtoupper($_GET['SelectedUser']); -} - -if (isset($_POST['Cancel'])) { +if(isset($_GET['Cancel']) or isset($_POST['Cancel'])) { unset($SelectedUser); unset($SelectedGLAccount); } -if (isset($_POST['Process'])) { - if ($_POST['SelectedUser'] == '') { - prnMsg(_('You have not selected any User'), 'error'); - echo '<br />'; - unset($SelectedUser); - unset($_POST['SelectedUser']); - } -} +if(!isset($SelectedUser)) {// If is NOT set a user for GL accounts. + echo '<p class="page_title_text"><img alt="" src="', $RootPath, '/css/', $Theme, + '/images/gl.png" title="',// Icon image. + _('User Authorised GL Accounts'), '" /> ',// Icon title. + _('User Authorised GL Accounts'), '</p>';// Page title. -if (isset($_POST['submit'])) { + /* It could still be the second time the page has been run and a record has been selected for modification - SelectedGLAccount will exist because it was sent with the new call. If its the first time the page has been displayed with no parameters then none of the above are true. These will call the same page again and allow update/input or deletion of the records.*/ - $InputError = 0; - - if ($_POST['SelectedGLAccount'] == '') { - $InputError = 1; - prnMsg(_('You have not selected an GL Account to be authorised for this user'), 'error'); - echo '<br />'; - unset($SelectedUser); + if(isset($_POST['Process'])) { + prnMsg(_('You have not selected any user'), 'error'); } - - if ($InputError != 1) { - - // First check the user is not being duplicated - - $CheckSql = "SELECT count(*) - FROM glaccountusers - WHERE accountcode= '" . $_POST['SelectedGLAccount'] . "' - AND userid = '" . $_POST['SelectedUser'] . "'"; - - $CheckResult = DB_query($CheckSql); - $CheckRow = DB_fetch_row($CheckResult); - - if ($CheckRow[0] > 0) { - $InputError = 1; - prnMsg(_('The GL Account') . ' ' . $_POST['SelectedGLAccount'] . ' ' . _('is already authorised for this user'), 'error'); - } else { - // Add new record on submit - $SQL = "INSERT INTO glaccountusers (accountcode, - userid, - canview, - canupd) - VALUES ('" . $_POST['SelectedGLAccount'] . "', - '" . $_POST['SelectedUser'] . "', - '1', - '1')"; - - $msg = _('User') . ': ' . $_POST['SelectedUser'] . ' ' . _('authority to use the') . ' ' . $_POST['SelectedGLAccount'] . ' ' . _('GL Account has been changed'); - $Result = DB_query($SQL); - prnMsg($msg, 'success'); - unset($_POST['SelectedGLAccount']); - } - } -} elseif (isset($_GET['delete'])) { - $SQL = "DELETE FROM glaccountusers - WHERE accountcode='" . $SelectedGLAccount . "' - AND userid='" . $SelectedUser . "'"; - - $ErrMsg = _('The GL Account user record could not be deleted because'); - $Result = DB_query($SQL, $ErrMsg); - prnMsg(_('User') . ' ' . $SelectedUser . ' ' . _('has had their authority to use the') . ' ' . $SelectedGLAccount . ' ' . _('GL Account removed'), 'success'); - unset($_GET['delete']); -} elseif (isset($_GET['ToggleUpdate'])) { - $SQL = "UPDATE glaccountusers - SET canupd='" . $_GET['ToggleUpdate'] . "' - WHERE accountcode='" . $SelectedGLAccount . "' - AND userid='" . $SelectedUser . "'"; - - $ErrMsg = _('The GL Account user record could not be deleted because'); - $Result = DB_query($SQL, $ErrMsg); - prnMsg(_('User') . ' ' . $SelectedUser . ' ' . _('has had their authority to update') . ' ' . $SelectedGLAccount . ' ' . _('GL Account removed'), 'success'); - unset($_GET['ToggleUpdate']); -} - -if (!isset($SelectedUser)) { - - /* It could still be the second time the page has been run and a record has been selected for modification - SelectedGLAccount will exist because it was sent with the new call. If its the first time the page has been displayed with no parameters - then none of the above are true. These will call the same page again and allow update/input or deletion of the records*/ - echo '<form method="post" action="' . htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES, 'UTF-8') . '">'; - echo '<input type="hidden" name="FormID" value="' . $_SESSION['FormID'] . '" /> - <table class="selection"> + echo '<br />', + '<form action="', htmlspecialchars($_SERVER['PHP_SELF'],ENT_QUOTES,'UTF-8'), '" method="post">', + '<input name="FormID" type="hidden" value="', $_SESSION['FormID'], '" />', + '<table class="selection"> <tr> - <td>' . _('Select User') . ':</td> - <td><select name="SelectedUser">'; - - $Result = DB_query("SELECT userid, - realname - FROM www_users - ORDER BY userid"); - - echo '<option value="">' . _('Not Yet Selected') . '</option>'; + <td>', _('Select User'), ':</td> + <td><select name="SelectedUser" onchange="this.form.submit()">',// Submit when the value of the select is changed. + '<option value="">', _('Not Yet Selected'), '</option>'; + $Result = DB_query(" + SELECT + userid, + realname + FROM www_users + ORDER BY userid"); while ($MyRow = DB_fetch_array($Result)) { - if (isset($SelectedUser) and $MyRow['userid'] == $SelectedUser) { - echo '<option selected="selected" value="'; - } else { - echo '<option value="'; + echo '<option '; + if(isset($SelectedUser) and $MyRow['userid'] == $SelectedUser) { + echo 'selected="selected" '; } - echo $MyRow['userid'] . '">' . $MyRow['userid'] . ' - ' . $MyRow['realname'] . '</option>'; + echo 'value="', $MyRow['userid'], '">', $MyRow['userid'], ' - ', $MyRow['realname'], '</option>'; + }// End while loop. + echo '</select></td> + </tr> + </table>';//Close Select_User table. - } //end while loop - - echo '</select></td></tr>'; - - echo '</table>'; // close main table DB_free_result($Result); - echo '<div class="centre"> - <input type="submit" name="Process" value="' . _('Accept') . '" /> - <input type="submit" name="Cancel" value="' . _('Cancel') . '" /> - </div>'; + echo '<div class="centre noprint">',// Form buttons: + '<button name="Process" type="submit" value="Accept"><img alt="" src="', $RootPath, '/css/', $Theme, + '/images/user.png" /> ', _('Accept'), '</button> '; // "Accept" button. - echo '</form>'; - -} - -//end of ifs and buts! -if (isset($_POST['process']) or isset($SelectedUser)) { - $SQLName = "SELECT realname - FROM www_users - WHERE userid='" . $SelectedUser . "'"; - $Result = DB_query($SQLName); +} else {// If is set a user for GL accounts ($SelectedUser). + $Result = DB_query(" + SELECT realname + FROM www_users + WHERE userid='" . $SelectedUser . "'"); $MyRow = DB_fetch_array($Result); $SelectedUserName = $MyRow['realname']; + echo '<p class="page_title_text"><img alt="" src="', $RootPath, '/css/', $Theme, + '/images/gl.png" title="',// Icon image. + _('User Authorised GL Accounts'), '" /> ',// Icon title. + _('Authorised GL Accounts for'), ' ', $SelectedUserName, '</p>';// Page title. - echo '<div class="centre"><a href="' . htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES, 'UTF-8') . '">' . _('Authorised GL Accounts for') . ' ' . $SelectedUserName . '</a></div> - <form method="post" action="' . htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES, 'UTF-8') . '"> - <input type="hidden" name="FormID" value="' . $_SESSION['FormID'] . '" /> - <input type="hidden" name="SelectedUser" value="' . $SelectedUser . '" />'; +// BEGIN: Needs $SelectedUser, $SelectedGLAccount: + if (isset($_POST['submit'])) { + $InputError = 0; + if ($_POST['SelectedGLAccount'] == '') { + $InputError = 1; + prnMsg(_('You have not selected an GL Account to be authorised for this user'), 'error'); + unset($SelectedGLAccount); + } + if ($InputError != 1) { + // First check the user is not being duplicated + $CheckResult = DB_query(" + SELECT count(*) + FROM glaccountusers + WHERE accountcode= '" . $_POST['SelectedGLAccount'] . "' + AND userid = '" . $SelectedUser . "'"); + $CheckRow = DB_fetch_row($CheckResult); + if ($CheckRow[0] > 0) { + $InputError = 1; + prnMsg(_('The GL Account') . ' ' . $SelectedGLAccount . ' ' . _('is already authorised for this user'), 'error'); + } else { + // Add new record on submit + $SQL = "INSERT INTO glaccountusers (accountcode, + userid, + canview, + canupd) + VALUES ('" . $SelectedGLAccount . "', + '" . $SelectedUser . "', + '1', + '1')"; + $Result = DB_query($SQL); + prnMsg(_('An access permission to a GL account was added') . '. ' . _('User') . ': ' . $SelectedUser . '. ' . _('GL Account') . ': ' . $SelectedGLAccount . '.', 'success'); + unset($_POST['SelectedGLAccount']); + } + } + } elseif(isset($_GET['delete']) or isset($_POST['delete'])) { + $SQL = "DELETE FROM glaccountusers + WHERE accountcode='" . $SelectedGLAccount . "' + AND userid='" . $SelectedUser . "'"; + $ErrMsg = _('The GL Account user record could not be deleted because'); + $Result = DB_query($SQL, $ErrMsg); + prnMsg(_('An access permission to a GL account was removed') . '. ' . _('User') . ': ' . $SelectedUser . '. ' . _('GL Account') . ': ' . $SelectedGLAccount . '.', 'success'); + unset($_GET['delete']); + unset($_POST['delete']); + } elseif(isset($_GET['ToggleUpdate']) or isset($_POST['ToggleUpdate'])) {// Can update (write) GL accounts flag. + if(isset($_GET['ToggleUpdate']) and $_GET['ToggleUpdate']<>'') {//If GET not empty. + $ToggleUpdate = $_GET['ToggleUpdate']; + } elseif(isset($_POST['ToggleUpdate']) and $_POST['ToggleUpdate']<>'') {//If POST not empty. + $ToggleUpdate = $_POST['ToggleUpdate']; + } + $SQL = "UPDATE glaccountusers + SET canupd='" . $ToggleUpdate . "' + WHERE accountcode='" . $SelectedGLAccount . "' + AND userid='" . $SelectedUser . "'"; + $ErrMsg = _('The GL Account user record could not be updated because'); + $Result = DB_query($SQL, $ErrMsg); + prnMsg(_('The access permission to update a GL account was modified') . '. ' . _('User') . ': ' . $SelectedUser . '. ' . _('GL Account') . ': ' . $SelectedGLAccount . '.', 'success'); + unset($_GET['ToggleUpdate']); + unset($_POST['ToggleUpdate']); + } +// END: Needs $SelectedUser, $SelectedGLAccount. - $SQL = "SELECT glaccountusers.accountcode, - canview, - canupd, - chartmaster.accountname - FROM glaccountusers INNER JOIN chartmaster - ON glaccountusers.accountcode=chartmaster.accountcode - WHERE glaccountusers.userid='" . $SelectedUser . "' - ORDER BY chartmaster.accountcode ASC"; + echo '<table class="selection"> + <thead> + <tr> + <th class="text">', _('Code'), '</th> + <th class="text">', _('Name'), '</th> + <th class="centre">', _('View'), '</th> + <th class="centre">', _('Update'), '</th> + <th class="noprint" colspan="2"> </th> + </tr> + </thead><tbody>'; + $Result = DB_query(" + SELECT + glaccountusers.accountcode, + canview, + canupd, + chartmaster.accountname + FROM glaccountusers INNER JOIN chartmaster + ON glaccountusers.accountcode=chartmaster.accountcode + WHERE glaccountusers.userid='" . $SelectedUser . "' + ORDER BY chartmaster.accountcode ASC"); - $Result = DB_query($SQL); - - echo '<table class="selection">'; - echo '<tr> - <th colspan="6"><h3>' . _('Authorised GL Accounts for User') . ': ' . $SelectedUserName . '</h3></th> - </tr>'; - echo '<tr> - <th>' . _('Code') . '</th> - <th>' . _('Name') . '</th> - <th>' . _('View') . '</th> - <th>' . _('Update') . '</th> - </tr>'; - $k = 0; //row colour counter while ($MyRow = DB_fetch_array($Result)) { - if ($k == 1) { + if($k == 1) { echo '<tr class="EvenTableRows">'; $k = 0; } else { echo '<tr class="OddTableRows">'; $k = 1; } + echo '<td class="text">', $MyRow['accountcode'], '</td> + <td class="text">', $MyRow['accountname'], '</td> + <td class="centre">'; + if($MyRow['canview'] == 1) { + echo _('Yes'); + } else { + echo _('No'); + } + echo '</td> + <td class="centre">'; - if ($MyRow['canupd'] == 1) { - $ToggleText = '<td><a href="%s?SelectedGLAccount=%s&ToggleUpdate=0&SelectedUser=' . $SelectedUser . '" onclick="return confirm(\'' . _('Are you sure you wish to remove Update for this GL Account?') . '\');">' . _('Remove Update') . '</a></td>'; + $ScriptName = htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES, 'UTF-8'); + if($MyRow['canupd'] == 1) { + echo _('Yes'), '</td> + <td class="noprint"><a href="', $ScriptName, '?SelectedUser=', $SelectedUser, '&SelectedGLAccount=', $MyRow['accountcode'], '&ToggleUpdate=0" onclick="return confirm(\'', _('Are you sure you wish to remove Update for this GL Account?'), '\');">', _('Remove Update'); } else { - $ToggleText = '<td><a href="%s?SelectedGLAccount=%s&ToggleUpdate=1&SelectedUser=' . $SelectedUser . '" onclick="return confirm(\'' . _('Are you sure you wish to add Update for this GL Account?') . '\');">' . _('Add Update') . '</a></td>'; + echo _('No'), '</td> + <td class="noprint"><a href="', $ScriptName, '?SelectedUser=', $SelectedUser, '&SelectedGLAccount=', $MyRow['accountcode'], '&ToggleUpdate=1" onclick="return confirm(\'', _('Are you sure you wish to add Update for this GL Account?'), '\');">', _('Add Update'); } - - printf('<td>%s</td> - <td>%s</td> - <td>%s</td> - <td>%s</td>' . - $ToggleText . ' - <td><a href="%s?SelectedGLAccount=%s&delete=yes&SelectedUser=' . $SelectedUser . '" onclick="return confirm(\'' . _('Are you sure you wish to un-authorise this GL Account?') . '\');">' . _('Un-authorise') . '</a></td> - </tr>', - $MyRow['accountcode'], - $MyRow['accountname'], - $MyRow['canview'], - $MyRow['canupd'], - htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES, 'UTF-8'), - $MyRow['accountcode'], - htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES, 'UTF-8'), - $MyRow['accountcode']); - } - //END WHILE LIST LOOP - echo '</table>'; - - if (!isset($_GET['delete'])) { - - - echo '<table class="selection">'; //Main table - - echo '<tr> - <td>' . _('Select GL Account') . ':</td> + echo '</a></td> + <td class="noprint"><a href="', $ScriptName, '?SelectedUser=', $SelectedUser, '&SelectedGLAccount=', $MyRow['accountcode'], '&delete=yes" onclick="return confirm(\'', _('Are you sure you wish to un-authorise this GL Account?'), '\');">', _('Un-authorise'), '</a></td> + </tr>'; + }// End while list loop. + echo '</tbody></table>', + '<br />', + '<form action="', htmlspecialchars($_SERVER['PHP_SELF'],ENT_QUOTES,'UTF-8'), '" method="post">', + '<input name="FormID" type="hidden" value="', $_SESSION['FormID'], '" />', + '<input name="SelectedUser" type="hidden" value="', $SelectedUser, '" />', + '<br /> + <table class="selection noprint"> + <tr> + <td>'; + $Result = DB_query(" + SELECT + accountcode, + accountname + FROM chartmaster + WHERE NOT EXISTS (SELECT glaccountusers.accountcode + FROM glaccountusers + WHERE glaccountusers.userid='" . $SelectedUser . "' + AND glaccountusers.accountcode=chartmaster.accountcode) + ORDER BY accountcode"); + if(DB_num_rows($Result)>0) {// If the user does not have access permissions to one or more GL accounts: + echo _('Add access permissions to a GL account'), ':</td> <td><select name="SelectedGLAccount">'; - - $Result = DB_query("SELECT accountcode, - accountname - FROM chartmaster - WHERE NOT EXISTS (SELECT glaccountusers.accountcode - FROM glaccountusers - WHERE glaccountusers.userid='" . $SelectedUser . "' - AND glaccountusers.accountcode=chartmaster.accountcode) - ORDER BY accountcode"); - - if (!isset($_POST['SelectedGLAccount'])) { - echo '<option selected="selected" value="">' . _('Not Yet Selected') . '</option>'; + if(!isset($_POST['SelectedGLAccount'])) { + echo '<option selected="selected" value="">', _('Not Yet Selected'), '</option>'; } while ($MyRow = DB_fetch_array($Result)) { - if (isset($_POST['SelectedGLAccount']) and $MyRow['accountcode'] == $_POST['SelectedGLAccount']) { + if(isset($_POST['SelectedGLAccount']) and $MyRow['accountcode'] == $_POST['SelectedGLAccount']) { echo '<option selected="selected" value="'; } else { echo '<option value="'; } - echo $MyRow['accountcode'] . '">' . $MyRow['accountcode'] .' - '. $MyRow['accountname'] . '</option>'; - - } //end while loop - - echo '</select> - </td> - </tr> - </table>'; // close main table - DB_free_result($Result); - - echo '<div class="centre"> - <input type="submit" name="submit" value="' . _('Accept') . '" /> - <input type="submit" name="Cancel" value="' . _('Cancel') . '" /> - </div> - </form>'; - - } // end if user wish to delete + echo $MyRow['accountcode'], '">', $MyRow['accountcode'], ' - ', $MyRow['accountname'], '</option>'; + } + echo '</select></td> + <td><input type="submit" name="submit" value="Accept" />'; + } else {// If the user has access permissions to all GL accounts: + echo _('User has access permissions to all GL accounts'); + } + echo '</td> + </tr> + </table>'; + DB_free_result($Result); + echo '<br>', // Form buttons: + '<div class="centre noprint">', + '<button onclick="javascript:window.print()" type="button"><img alt="" src="', $RootPath, '/css/', $Theme, + '/images/printer.png" /> ', _('Print This'), '</button>', // "Print This" button. + '<button formaction="UserGLAccounts.php?Cancel" type="submit"><img alt="" src="', $RootPath, '/css/', $Theme, + '/images/user.png" /> ', _('Select A Different User'), '</button>'; // "Select A Different User" button. } +echo '<button formaction="index.php?Application=GL" type="submit"><img alt="" src="', $RootPath, '/css/', $Theme, + '/images/previous.png" /> ', _('Return'), '</button>', // "Return" button. + '</div> + </form>'; include('includes/footer.inc'); ?> Modified: trunk/doc/Change.log =================================================================== --- trunk/doc/Change.log 2015-12-26 10:39:10 UTC (rev 7426) +++ trunk/doc/Change.log 2015-12-27 19:59:10 UTC (rev 7427) @@ -1,5 +1,6 @@ webERP Change Log +27/12/15 RChacon: On UserGLAccounts.php: Fix script name; add $ViewTopic and $BookMark; improve $SelectedUser validation; improve page_title_text; improve select user; regroup modify access permission code (improve logic); add classes to table elements; transalate database "0" and "1" to human "No" and "Yes"; simplify and tide code; modify prnMsg from multiple part sentence to one part sentence (better to trasnlate when language use a different gramar structrure fron English); add "Print This", "Select A Different User" and "Return" buttons. Add info to ManualGeneralLedger.html. 26/12/2015 Exson: Add items not received information on outstanding po inquiry screen in PO_SelectOSPurchOrder.php. 24/12/15 Exson: Add supplier no as a option for supplier transaction inquiry in SupplierTransInquiry.php. 24/12/15 Exson: Add width of printed text to make day to appear in PDFOstdgGRNsPageHeader.inc. Modified: trunk/doc/Manual/ManualGeneralLedger.html =================================================================== --- trunk/doc/Manual/ManualGeneralLedger.html 2015-12-26 10:39:10 UTC (rev 7426) +++ trunk/doc/Manual/ManualGeneralLedger.html 2015-12-27 19:59:10 UTC (rev 7427) @@ -400,3 +400,28 @@ <p>The report will be run as a pdf file for printing, emailing, archiving etc.</P> </li> </ul> + + + +<div class="floatright"><a class="minitext" href="#top">⬆ Top</a></div> +<h2>Maintenance</h2> + +<!--h3><a id="GLAccountUsers">GL Accounts Authorised Users</a></h3> +<p>.</p--> + +<h3><a id="UserGLAccounts">User Authorised GL Accounts</a></h3> +<p>This software has methods to assign permissions or access rights to specific users and groups of users. The system controls the ability of the users to view or make changes to the contents of the GL accounts.</p> +<p>With this script, you can change a specific user access permissions to GL accounts:</p> +<ul> +<li>You can add or remove the read permission for each GL account that grants or denies the ability of a user to view it.</li> +<li>You can add or remove the write permission for each GL account that grants or denies the ability of a user to update it.</li> +</ul> + +<!--h3><a id="BankAccounts.php">Bank Accounts</a></h3> +<p>.</p--> + +<!--h3><a id="BankAccountUsers.php">Bank Account Authorized Users</a></h3> +<p>.</p--> + +<!--h3><a id="UserBankAccounts.php">User Authorized Bank Accounts</a></h3> +<p>.</p--> |