From: Roland Häder Date: Fri, 29 Aug 2008 22:50:49 +0000 (+0000) Subject: Editing of bank packages added (updating records not finished!) X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=148d3a3e1641e350a708cc71e194349a09a8285f;p=mailer.git Editing of bank packages added (updating records not finished!) --- diff --git a/.gitattributes b/.gitattributes index 0641101c99..78726980ab 100644 --- a/.gitattributes +++ b/.gitattributes @@ -807,6 +807,8 @@ templates/de/html/admin/admin_del_transfer_row.tpl -text templates/de/html/admin/admin_del_user.tpl -text templates/de/html/admin/admin_edit_admins.tpl -text templates/de/html/admin/admin_edit_admins_row.tpl -text +templates/de/html/admin/admin_edit_bank_packages.tpl -text +templates/de/html/admin/admin_edit_bank_packages_row.tpl -text templates/de/html/admin/admin_edit_cats.tpl -text templates/de/html/admin/admin_edit_cats_row.tpl -text templates/de/html/admin/admin_edit_email.tpl -text diff --git a/inc/db/lib-mysql3.php b/inc/db/lib-mysql3.php index 6bb648c436..c35c234b1d 100644 --- a/inc/db/lib-mysql3.php +++ b/inc/db/lib-mysql3.php @@ -61,7 +61,7 @@ function SQL_QUERY($sql_string, $F, $L) { // // Debugging stuff... // - $fp = @fopen(PATH."debug.log", 'a') or mxchange_die("Cannot write debug.log!"); + $fp = @fopen(PATH."inc/cache/debug.log", 'a') or mxchange_die("Cannot write debug.log!"); if (!isset($OK)) { // Write first entry fwrite($fp, "Module=".$GLOBALS['module']."\n"); diff --git a/inc/extensions/ext-bank.php b/inc/extensions/ext-bank.php index 6eed145160..982a00ef17 100644 --- a/inc/extensions/ext-bank.php +++ b/inc/extensions/ext-bank.php @@ -53,24 +53,24 @@ case "register": // Do stuff when installtion is running (modules.php?module=adm // SQL commands to run $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_bank_accounts"; $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_bank_accounts ( -id bigint(20) not null auto_increment, -uid bigint(20) not null default '0', -account_created bigint(20) not null default '0', -account_locked bigint(20) not null default '0', -locked_reason tinytext, -status enum('NEW', 'ACTIVE', 'LOCKED') not null default 'NEW', -account_balance double(20,5) not null default '0.00000', -output_mode enum('LOGIN', 'EMAIL', 'DISABLED'), -pin varchar(50) not null default '', -tan_mode enum('NORMAL', 'INDEXED'), -tan_list_status enum('PENDING', 'ACTIVE', 'INVALID', 'LOCKED') not null default 'PENDING', -tan_key varchar(50) not null default '', -month_transfered bigint(20) not null default '0', -last_tan varchar(5) not null default '00000', -last_tan_stamp bigint(20) not null default '0', -last_tan_purpose tinytext, -account_type enum('CHECK', 'SAVING') not null default 'CHECK', -overdraft_credit double(20,5) not null default '0.00000', +id BIGINT(20) NOT NULL AUTO_INCREMENT, +uid BIGINT(20) NOT NULL DEFAULT '0', +account_created BIGINT(20) NOT NULL DEFAULT '0', +account_locked BIGINT(20) NOT NULL DEFAULT '0', +locked_reason TINYTEXT, +status ENUM('NEW', 'ACTIVE', 'LOCKED') NOT NULL DEFAULT 'NEW', +account_balance DOUBLE(20,5) NOT NULL DEFAULT '0.00000', +output_mode ENUM('LOGIN', 'EMAIL', 'DISABLED'), +pin VARCHAR(50) NOT NULL DEFAULT '', +tan_mode ENUM('NORMAL', 'INDEXED'), +tan_list_status ENUM('PENDING', 'ACTIVE', 'INVALID', 'LOCKED') NOT NULL DEFAULT 'PENDING', +tan_key VARCHAR(50) NOT NULL DEFAULT '', +month_transfered BIGINT(20) NOT NULL DEFAULT '0', +last_tan VARCHAR(5) NOT NULL DEFAULT '00000', +last_tan_stamp BIGINT(20) NOT NULL DEFAULT '0', +last_tan_purpose TINYTEXT, +account_type ENUM('CHECK', 'SAVING') NOT NULL DEFAULT 'CHECK', +overdraft_credit DOUBLE(20,5) NOT NULL DEFAULT '0.00000', PRIMARY KEY (id), UNIQUE KEY (pin), INDEX `uid_type` (uid, account_type), @@ -80,35 +80,35 @@ INDEX (last_tan_stamp) ) TYPE=MyISAM"; $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_bank_transfers"; $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_bank_transfers ( -id bigint(20) not null auto_increment, -to_account_id bigint(20) not null default '0', -from_account_id bigint(20) not null default '0', -points_amount double(20,5) not null default '0.00000', -day_bookkeeping char(4) not null default '0000', -day_available char(4) not null default '0000', -transfer_purpose tinytext, +id BIGINT(20) NOT NULL AUTO_INCREMENT, +to_account_id BIGINT(20) NOT NULL DEFAULT '0', +from_account_id BIGINT(20) NOT NULL DEFAULT '0', +points_amount DOUBLE(20,5) NOT NULL DEFAULT '0.00000', +day_bookkeeping char(4) NOT NULL DEFAULT '0000', +day_available char(4) NOT NULL DEFAULT '0000', +transfer_purpose TINYTEXT, PRIMARY KEY (id), INDEX (to_account_id, from_account_id), INDEX (day_bookkeeping, day_available) ) TYPE=MyISAM"; $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_bank_packages"; $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_bank_packages ( -id bigint(20) not null auto_increment, -title varchar(255) not null default '', -description tinytext, -account_fee double(20,5) not null default '0.00000', -free_transfers int(7) not null default '0', -transfer_fee double(20,5) not null default '0.00000', -available varchar(8) not null default '19700101', -output_system_mode enum('LOGIN', 'EMAIL', 'DISABLED'), -package_active enum('Y', 'N') not null default 'N', -free_months_no_fee tinyint(3) not null default '0', -interest_plus float(7,5) not null default '0.00000', -interest_minus float(7,5) not null default '0.00000', -first_payment double(20,5) not null default '0.00000', -free_account_income double(20,5) not null default '0.00000', -free_account_stuff tinytext null, -tan_lock tinyint(3) not null default '0', +id BIGINT(20) NOT NULL AUTO_INCREMENT, +title VARCHAR(255) NOT NULL DEFAULT '', +description TINYTEXT, +account_fee DOUBLE(20,5) NOT NULL DEFAULT '0.00000', +free_transfers int(7) NOT NULL DEFAULT '0', +transfer_fee DOUBLE(20,5) NOT NULL DEFAULT '0.00000', +available TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, +output_system_mode ENUM('LOGIN', 'EMAIL', 'DISABLED'), +package_active ENUM('Y', 'N') NOT NULL DEFAULT 'N', +free_months_no_fee TINYINT(3) NOT NULL DEFAULT '0', +interest_plus float(7,5) NOT NULL DEFAULT '0.00000', +interest_minus float(7,5) NOT NULL DEFAULT '0.00000', +first_payment DOUBLE(20,5) NOT NULL DEFAULT '0.00000', +free_account_income DOUBLE(20,5) NOT NULL DEFAULT '0.00000', +free_account_stuff TINYTEXT null, +tan_lock TINYINT(3) NOT NULL DEFAULT '0', PRIMARY KEY (id) ) TYPE=MyISAM"; // free_account_stuff will be a list of columns of the table _bank_packages @@ -117,11 +117,11 @@ PRIMARY KEY (id) // should be fine. More than one entry and not DISABLED ;) are not supported. $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_bank_tanlist"; $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_bank_tanlist ( -id bigint(20) not null auto_increment, -idx tinyint(3) not null default '0', -account_id bigint(20) not null default '0', -tan varchar(50) not null default '', -used enum('Y', 'N') not null default 'N', +id BIGINT(20) NOT NULL AUTO_INCREMENT, +idx TINYINT(3) NOT NULL DEFAULT '0', +account_id BIGINT(20) NOT NULL DEFAULT '0', +tan VARCHAR(50) NOT NULL DEFAULT '', +used ENUM('Y', 'N') NOT NULL DEFAULT 'N', PRIMARY KEY (id), UNIQUE (account_id, tan) ) TYPE=MyISAM"; diff --git a/inc/functions.php b/inc/functions.php index 25ae3c78fc..38b4f58b63 100644 --- a/inc/functions.php +++ b/inc/functions.php @@ -1797,7 +1797,7 @@ function MXCHANGE_OPEN ($script) { } // END - if // Was the request successfull? - if ((!ereg("200 OK", $response[0])) || (empty($response[0]))) { + if ((!eregi("200 OK", $response[0])) || (empty($response[0]))) { // Not found / access forbidden $response = array("", "", ""); } // END - if diff --git a/inc/language/bank_de.php b/inc/language/bank_de.php index f21123b725..281ae6d933 100644 --- a/inc/language/bank_de.php +++ b/inc/language/bank_de.php @@ -50,8 +50,11 @@ define('ADMIN_BANK_PACKAGE_INTEREST_MINUS', "Zinssatz für Soll"); define('ADMIN_BANK_PACKAGE_FIRST_PAYMENT', "Höhe der ersten Einzahlung"); define('ADMIN_BANK_PACKAGE_FREE_ACCOUNT_INCOME', "Höhe der monatlichen Einnahmen, um Konto kostenlos zu erhalten"); define('ADMIN_BANK_PACKAGE_FREE_ACCOUNT_STUFF', "Freitext für Dinge, die kostenlos sein werden."); -define('ADMIN_BANK_PACKAGE_TAN_LOCK', "Anzahl Versuche richtige TAN einzugeben, bis TAN-Liste gesperrt wird."); +define('ADMIN_BANK_PACKAGE_TAN_LOCK', "Anzahl Versuche richtige (i)TAN einzugeben, bis (i)TAN-Liste gesperrt wird."); define('ADMIN_BANK_PACKAGE_ACTIVE', "Ist dieses Angebotspaket vom Mitglied einsehbar, also aktiviert?"); +define('ADMIN_BANK_PACKAGE_TRANSFER_FEE', "Gebühr für Überweisung"); +define('ADMIN_BANK_PACKAGE_EDIT_TAN_LOCK', "Anzahl Versuche bis (i)TAN-Liste gesperrt ist."); +define('ADMIN_BANK_PACKAGE_EDIT_ACTIVE', "Aktiviert/Erwerbbar"); define('ADMIN_ADD_BANK_PACKAGE', "Angebotspaket einstellen"); define('ADMIN_BANK_FOOTER_NOTE', "Bitte beachten Sie, dass keine Mail zu den Mitgliedern unterwegs ist. Seien Sie bei Titel, Beschreibung und Freitext kreativ und schreiben Sie aussagekräftige Texte!"); define('ADMIN_BANK_NO_PACKAGES_FOUND', "Keine Angebotspakete zum Auflisten gefunden!"); @@ -67,6 +70,8 @@ define('ADMIN_STATUS_CHANGED_2', " von "); define('ADMIN_STATUS_CHANGED_3', " Einträgen geändert."); define('ADMIN_DELETE_BANK_PACKAGES', "Angebotspakete entgültig entfernen"); define('ADMIN_DELETE_BANK_PACKAGES_NOTES', "Hinweis: Wenn Sie die aufgelisteten Angebotspakete entgültig löschen, kann eventuell Ihre Bank nicht korrekt funktionieren, da eventuell einige Mitglieder dieses Paket ausgewählt haben. Bitte schauen Sie unter Konten auflisten vorher nach!"); +define('ADMIN_EDIT_BANK_PACKAGES', "Angebotspakete ändern"); +define('ADMIN_EDIT_BANK_PACKAGES_NOTES', "Hinweis: Derzeit keine Tipps für diese Aktion."); // Output modes define('BANK_OUTPUT_MODE_LOGIN', "Nur im Mitgliedsbereich"); diff --git a/inc/language/de.php b/inc/language/de.php index ad0650adb7..e8e314d039 100644 --- a/inc/language/de.php +++ b/inc/language/de.php @@ -1117,6 +1117,7 @@ define('ADMIN_CONFIG_PROXY_HOST', "Hostname oder IP-Nummer:"); define('ADMIN_CONFIG_PROXY_PORT', "Port-Nummer (z.B. 8085):"); define('ADMIN_CONFIG_PROXY_USERNAME', "Benuztername (falls vorhanden):"); define('ADMIN_CONFIG_PROXY_PASSWORD', "Passwort (falls vorhanden):"); +define('EDIT_ENTRIES', "Einträge ändern"); // ?> diff --git a/inc/modules/admin/admin-inc.php b/inc/modules/admin/admin-inc.php index a56c7a10f1..f147c1a77b 100644 --- a/inc/modules/admin/admin-inc.php +++ b/inc/modules/admin/admin-inc.php @@ -793,9 +793,10 @@ function ADMIN_DELETE_ENTRIES_CONFIRM ($IDs, $table, $row, $columns = array(), $ // "Walk" through all entries and count them if ($deleteNow) { // Delete them + die("DELETE!"); } else { // List for confirmation - foreach ($IDs as $id=>$selected) { + foreach ($IDs as $id => $selected) { // Secure ID number $id = bigintval($id); @@ -837,6 +838,59 @@ function ADMIN_DELETE_ENTRIES_CONFIRM ($IDs, $table, $row, $columns = array(), $ } } } +// Edit rows by given ID numbers +function ADMIN_EDIT_ENTRIES_CONFIRM ($IDs, $table, $row, $columns = array(), $filterFunctions = array(), $editNow=false, $idRow="id") { + global $_CONFIG; + $OUT = ""; $SW = 2; + if ((is_array($IDs)) && (count($IDs) > 0)) { + // "Walk" through all entries and count them + if ($editNow) { + // Delete them + die("EDIT!"); + } else { + // List for confirmation + foreach ($IDs as $id => $selected) { + // Secure ID number + $id = bigintval($id); + + // Will always be 1 ;-) + if ($selected == 1) { + // Get result from a given column array and table name + $result = SQL_RESULT_FROM_ARRAY($table, $columns, $idRow, $id); + + // Is there one entry? + if (SQL_NUMROWS($result) == 1) { + // Load all data + $content = SQL_FETCHARRAY($result); + + // Filter all data + foreach ($content as $key=>$value) { + // Is a filter function set? + $idx = array_search($key, $columns, true); + if (!empty($filterFunctions[$idx])) { + // Then call it! + $content[$key] = call_user_func($filterFunctions[$idx], $value); + } + } + + // Add color switching + $content['sw'] = $SW; + + // Then list it again... + $OUT .= LOAD_TEMPLATE("admin_edit_".$table."_row", true, $content); + $SW = 3 - $SW; + } + + // Free the result + SQL_FREERESULT($result); + } + } + + // Load master template + LOAD_TEMPLATE("admin_edit_".$table."", false, $OUT); + } + } +} // Checks proxy settins by fetching check-updates2.php from www.mxchange.org function ADMIN_TEST_PROXY_SETTINGS ($settingsArray) { global $_CONFIG; @@ -850,7 +904,7 @@ function ADMIN_TEST_PROXY_SETTINGS ($settingsArray) { $content = MXCHANGE_OPEN("check-updates2.php"); // Is the first line with "200 OK"? - $valid = ereg("200 OK", $content[0]); + $valid = eregi("200 OK", $content[0]); // Return result return $valid; diff --git a/inc/modules/admin/what-list_bank_package.php b/inc/modules/admin/what-list_bank_package.php index c4105ef928..4f8ce1d7a3 100644 --- a/inc/modules/admin/what-list_bank_package.php +++ b/inc/modules/admin/what-list_bank_package.php @@ -35,7 +35,7 @@ if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!is_admin())) { $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php"; require($INC); -} +} // END - if // Add description as navigation point ADD_DESCR("admin", basename(__FILE__)); @@ -47,6 +47,19 @@ if ((isset($_POST['id'])) && (is_array($_POST['id'])) && (count($_POST['id']) > if (isset($_POST['change'])) { // Change permissions ADMIN_CHANGE_ACTIVATION_STATUS($_POST['id'], "bank_packages", "package_active"); + } elseif (isset($_POST['edit'])) { + // Delete entries (with confirmation) + ADMIN_EDIT_ENTRIES_CONFIRM( + $_POST['id'], + "bank_packages", + "package_active", + array("id", "title", "description", "account_fee", "free_transfers", "transfer_fee", "output_system_mode", "package_active", "free_months_no_fee", "interest_plus", "interest_minus", "first_payment", "free_account_income", "free_account_stuff", "tan_lock"), + array("bigintval", "", "", "TRANSLATE_COMMA", "bigintval", "TRANSLATE_COMMA", "", "", "bigintval", "TRANSLATE_COMMA", "TRANSLATE_COMMA", "TRANSLATE_COMMA", "TRANSLATE_COMMA", "", "bigintval") + ); + $show = false; + } elseif (isset($_POST['do_edit'])) { + // Delete entries (with confirmation) + ADMIN_EDIT_ENTRIES_CONFIRM($_POST['id'], "bank_packages", "package_active", array(), array(), true); } elseif (isset($_POST['delete'])) { // Delete entries (with confirmation) ADMIN_DELETE_ENTRIES_CONFIRM($_POST['id'], "bank_packages", "package_active", array("id", "title", "description", "account_fee"), array("bigintval", "", "", "TRANSLATE_COMMA")); @@ -55,7 +68,7 @@ if ((isset($_POST['id'])) && (is_array($_POST['id'])) && (count($_POST['id']) > // Delete entries (with confirmation) ADMIN_DELETE_ENTRIES_CONFIRM($_POST['id'], "bank_packages", "package_active", array(), array(), true); } -} +} // END - if // Skip showing old entries? if (!$show) return; @@ -80,7 +93,7 @@ if (SQL_NUMROWS($result) > 0) { // Load row template $OUT .= LOAD_TEMPLATE("admin_list_bank_package_row", true, $content); $SW = 3 - $SW; - } + } // END - while // Prepare row(s) for output to template define('__BANK_PACKAGE_ROWS', $OUT); diff --git a/inc/modules/admin/what-updates.php b/inc/modules/admin/what-updates.php index a2d5dbc462..c273061574 100644 --- a/inc/modules/admin/what-updates.php +++ b/inc/modules/admin/what-updates.php @@ -51,7 +51,7 @@ if (empty($response[0]) && empty($response[1]) && empty($response[2])) { $response = array("", "", ""); } else { // Analyse header for response code - if (ereg("200 OK", $response[0])) { + if (eregi("200 OK", $response[0])) { // Found, kill header $pos = 0; foreach($response as $k => $v) { diff --git a/inc/mysql-manager.php b/inc/mysql-manager.php index 757c19a1fc..b13ac029d3 100644 --- a/inc/mysql-manager.php +++ b/inc/mysql-manager.php @@ -1295,23 +1295,18 @@ function GET_ADMIN_HASH($login) return $ret; } // -function GET_ADMIN_LOGIN($aid) -{ +function GET_ADMIN_LOGIN($aid) { global $cacheArray; $ret = "***"; - if (!empty($cacheArray['admins']['login']['aid'])) - { + if (!empty($cacheArray['admins']['login']['aid'])) { // Check cache if (!empty($cacheArray['admins']['login'][$aid])) $ret = $cacheArray['admins']['login'][$aid]; if (empty($ret)) $ret = "***"; - } - else - { + } else { // Load from database $result = SQL_QUERY_ESC("SELECT login FROM "._MYSQL_PREFIX."_admins WHERE id=%d LIMIT 1", array(bigintval($aid)), __FILE__, __LINE__); - if (SQL_NUMROWS($result) == 1) - { + if (SQL_NUMROWS($result) == 1) { // Fetch data list($ret) = SQL_FETCHROW($result); } @@ -1322,25 +1317,19 @@ function GET_ADMIN_LOGIN($aid) return $ret; } // -function ADD_OPTION_LINES($table, $id, $name, $default="",$special="",$where="") -{ +function ADD_OPTION_LINES($table, $id, $name, $default="",$special="",$where="") { $ret = ""; - if ($table == "/ARRAY/") - { + if ($table == "/ARRAY/") { // Selection from array - if (is_array($id) && is_array($name) && sizeof($id) == sizeof($name)) - { + if (is_array($id) && is_array($name) && sizeof($id) == sizeof($name)) { // Both are arrays - foreach ($id as $idx=>$value) - { + foreach ($id as $idx=>$value) { $ret .= "\n"; } } + // Return - hopefully - the requested data return $ret; } diff --git a/templates/de/html/admin/admin_del_bank_packages.tpl b/templates/de/html/admin/admin_del_bank_packages.tpl index 824ac5c207..300c80a341 100644 --- a/templates/de/html/admin/admin_del_bank_packages.tpl +++ b/templates/de/html/admin/admin_del_bank_packages.tpl @@ -1,24 +1,20 @@ -
- + +
- + $content - +
{--ADMIN_DELETE_BANK_PACKAGES--}:
{--ID_SELECT--}{--ID_SELECT--} {--ADMIN_LIST_BANK_PACKAGES_TITLE--}: {--ADMIN_LIST_BANK_PACKAGES_DESCR--}: {--ADMIN_LIST_BANK_PACKAGES_ACCOUNT_FEE--}
diff --git a/templates/de/html/admin/admin_del_bank_packages_row.tpl b/templates/de/html/admin/admin_del_bank_packages_row.tpl index 0563b3a26d..46ff45d661 100644 --- a/templates/de/html/admin/admin_del_bank_packages_row.tpl +++ b/templates/de/html/admin/admin_del_bank_packages_row.tpl @@ -1,13 +1,17 @@ - + + - $content[id] + + $content[id] - $content[title] + $content[title] + - $content[description] + $content[description] + - $content[account_fee] {!POINTS!} + $content[account_fee] {!POINTS!} + diff --git a/templates/de/html/admin/admin_edit_bank_packages.tpl b/templates/de/html/admin/admin_edit_bank_packages.tpl new file mode 100644 index 0000000000..1400485db0 --- /dev/null +++ b/templates/de/html/admin/admin_edit_bank_packages.tpl @@ -0,0 +1,18 @@ +
+ + + + + $content + + + +
+ {--ADMIN_EDIT_BANK_PACKAGES--}: +
+
+ +
{--ADMIN_EDIT_BANK_PACKAGES_NOTES--}
diff --git a/templates/de/html/admin/admin_edit_bank_packages_row.tpl b/templates/de/html/admin/admin_edit_bank_packages_row.tpl new file mode 100644 index 0000000000..f57a4e47f7 --- /dev/null +++ b/templates/de/html/admin/admin_edit_bank_packages_row.tpl @@ -0,0 +1,69 @@ + + + {--ADMIN_BANK_PACKAGE_TITLE--}:
+ + + + {--ADMIN_BANK_PACKAGE_DESCRIPTION--}:
+ + + + {--ADMIN_BANK_PACKAGE_ACCOUNT_FEE--}:
+ {!POINTS!} + + + + + {--ADMIN_BANK_PACKAGE_FREE_TRANSFERS--}:
+ + + + {--ADMIN_BANK_PACKAGE_TRANSFER_FEE--}:
+ {!POINTS!} + + + {--ADMIN_BANK_PACKAGE_OUTPUT_MODE--}:
+[output_system_mode] => EMAIL + + + + + {--ADMIN_BANK_PACKAGE_EDIT_ACTIVE--}:
+[package_active] => Y + + + {--ADMIN_BANK_PACKAGE_FREE_TRANSFERS--}:
+ + + + {--ADMIN_BANK_PACKAGE_INTEREST_PLUS--}:
+ % + + + + + {--ADMIN_BANK_PACKAGE_INTEREST_MINUS--}:
+ % + + + {--ADMIN_BANK_PACKAGE_FIRST_PAYMENT--}:
+ + + + {--ADMIN_BANK_PACKAGE_FREE_ACCOUNT_INCOME--}:
+ {!POINTS!} + + + + + {--ADMIN_BANK_PACKAGE_FREE_ACCOUNT_STUFF--}:
+ + + + {--ADMIN_BANK_PACKAGE_EDIT_TAN_LOCK--}:
+ + + + + +