Rewrote some parts:
[mailer.git] / inc / extensions / ext-bank.php
index 34ebec57293d9df42965ddfd2d3fcff5e3368d77..c92bddc9a132d5e2139cf7201abea245aff7655b 100644 (file)
@@ -16,8 +16,8 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
- * For more information visit: http://www.mxchange.org                  *
+ * Copyright (c) 2009 - 2013 by Mailer Developer Team                   *
+ * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * it under the terms of the GNU General Public License as published by *
@@ -41,24 +41,24 @@ if (!defined('__SECURITY')) {
 } // END - if
 
 // Version number
-setThisExtensionVersion('0.0');
+setThisExtensionVersion('0.0.0');
 
-// Version history array (add more with , '0.1.0' and so on)
-setExtensionVersionHistory(array('0.0'));
+// Version history array (add more with , '0.0.1' and so on)
+setExtensionVersionHistory(array('0.0.0'));
 
 // This extension is in development (non-productive)
-enableExtensionProductive(false);
+enableExtensionProductive(FALSE);
 
 switch (getExtensionMode()) {
-       case 'register': // Do stuff when installation is running (modules.php?module=admin is called)
+       case 'setup': // Do stuff when installation is running
                // SQL commands to run
                addDropTableSql('bank_accounts');
-               addCreateTableSql('bank_accounts', "(
+               addCreateTableSql('bank_accounts', "
 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
 `userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
 `account_created` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
 `account_locked` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
-`locked_reason` TINYTEXT,
+`locked_reason` TINYTEXT NOT NULL,
 `status` ENUM('NEW','ACTIVE','LOCKED') NOT NULL DEFAULT 'NEW',
 `account_balance` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000,
 `output_mode` ENUM('LOGIN','EMAIL','DISABLED'),
@@ -69,34 +69,36 @@ switch (getExtensionMode()) {
 `month_transfered` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
 `last_tan` VARCHAR(5) NOT NULL DEFAULT '00000',
 `last_tan_stamp` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
-`last_tan_purpose` TINYTEXT,
+`last_tan_purpose` TINYTEXT NOT NULL,
 `account_type` ENUM('CHECK','SAVING') NOT NULL DEFAULT 'CHECK',
 `overdraft_credit` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000,
 PRIMARY KEY (`id`),
-UNIQUE KEY (`pin`),
+UNIQUE INDEX (`pin`),
 INDEX `userid_type` (`userid`, `account_type`),
 INDEX (`account_created`),
 INDEX (`account_locked`),
-INDEX (`last_tan_stamp`)
-) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'User bank accounts data'");
+INDEX (`last_tan_stamp`)",
+                       'User bank accounts data');
+
                addDropTableSql('bank_transfers');
-               addCreateTableSql('bank_transfers', "(
+               addCreateTableSql('bank_transfers', "
 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
 `to_account_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
 `from_account_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
 `points_amount` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000,
 `day_bookkeeping` CHAR(4) NOT NULL DEFAULT '0000',
 `day_available` CHAR(4) NOT NULL DEFAULT '0000',
-`transfer_purpose` TINYTEXT,
+`transfer_purpose` TINYTEXT NOT NULL,
 PRIMARY KEY (`id`),
 INDEX (`to_account_id`, `from_account_id`),
-INDEX (`day_bookkeeping`, `day_available`)
-) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Bank user->user transfers'");
+INDEX (`day_bookkeeping`, `day_available`)",
+                       'Bank user->user transfers');
+
                addDropTableSql('bank_packages');
-               addCreateTableSql('bank_packages', "(
+               addCreateTableSql('bank_packages', "
 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
 `title` VARCHAR(255) NOT NULL DEFAULT '',
-`description` TINYTEXT,
+`description` TINYTEXT NOT NULL,
 `account_fee` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000,
 `free_transfers` INT(7) UNSIGNED NOT NULL DEFAULT 0,
 `transfer_fee` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000,
@@ -110,22 +112,23 @@ INDEX (`day_bookkeeping`, `day_available`)
 `free_account_income` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000,
 `free_account_stuff` TINYTEXT null,
 `tan_lock` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0,
-PRIMARY KEY (`id`)
-) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Bank account packages'");
+PRIMARY KEY (`id`)",
+                       'Bank account packages');
+
                // Free_account_stuff will be a list of columns of the table _bank_packages
                // what the member shall get for the specified income. output_system_mode
                // must be extended with the mode you get for free: output_system_mode:LOGIN
                // should be fine. More than one entry and not DISABLED ;) are not supported.
                addDropTableSql('bank_tanlist');
-               addCreateTableSql('bank_tanlist', "(
+               addCreateTableSql('bank_tanlist', "
 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
 `idx` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0,
 `account_id` BIGINT(20) UNSIGNED 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`)
-) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Bank TAN lists per user'");
+UNIQUE INDEX (`account_id`, `tan`)",
+                       'Bank TAN lists per user');
 
                // Admin menu queries
                addAdminMenuSql('bank', NULL, 'Bank-Accounts', 'Verwalten Sie hier alle Bank-Accounts Ihrer Mitglieder, sowie Angebotspakete und Überweisungen.', 6);
@@ -138,20 +141,20 @@ UNIQUE (`account_id`, `tan`)
                addAdminMenuSql('bank', 'list_bank_account', 'Konten auflisten', 'Auflistung aller Konto oder eines auswählbaren Mitglieds.', 7);
                addAdminMenuSql('bank', 'edit_bank_account', 'Konto ändern', 'Ändern Sie hier bestehende Konten, z.B. den Dispositionskredit usw. PINs und TANs sind hier nicht änderbar! Bestätigungsmails sind optional versendbar.', 8);
                addAdminMenuSql('bank', 'lock_bank_account', 'Konto ent-/sperren', 'Sperren Sie hier Konten bei Bedarf. Auch das Freischalten ist hier möglich. Eine Benachrichtigung per Mail wird dann an das Mitglied ausgesendet.', 9);
-               addAdminMenuSql('bank', 'del_bank_account', 'Konto löschen', 'Löschen von Konten mit Bestätigungsmail. Wenn Sie ein Mitglieder-Account löschen, so müssen Sie derzeit seine angelegten Konten auch löschen!', 10);
+               addAdminMenuSql('bank', 'del_bank_account', 'Konto löschen', 'Löschen von Konten mit Bestätigungsmail. Wenn Sie ein Mitgliedaccount löschen, so müssen Sie derzeit seine angelegten Konten auch löschen!', 10);
                addAdminMenuSql('bank', 'send_bank_tanlist', 'TAN-Liste aussenden', 'Listet zuerst Anfragen von Mitgliedern auf, die eine neue (i)TAN-Liste benötigen, anschliessend kann die Liste dann ausgesendet werden.', 11);
                addAdminMenuSql('bank', 'lock_bank_tanlist', 'TAN-Liste ent-/sperren', 'Bestehende TAN-Listen können auf Kundenwunsch hin gesperrt und wieder entsperrt werden. Dies passiert auch, wenn der Kunde x-mal (siehe Angebotspakete) eine verkehrte TAN eingegeben hat. Einzelne TANs sind nicht ent-/sperrbar.', 12);
                addAdminMenuSql('bank', 'list_bank_trans', 'Überweisungen auflisten', 'Nach Auswahl eines Mitgliedes und einem Konto (benötgt JavaScript!) können Sie seitenweise die Überweisungen durchschauen.', 13);
 
                // Member menu
-               addMemberMenuSql('bank', NULL, 'Bank-Account', 'N', 'Y', 3);
-               addMemberMenuSql('bank', 'bank_infos', 'Angebotspakete', 'N', 'Y', 1);
-               addMemberMenuSql('bank', 'bank_create', 'Konto anlegen', 'N', 'Y', 2);
-               addMemberMenuSql('bank', 'bank_deposit', 'Auf Konto einzahlen', 'N', 'Y', 3);
-               addMemberMenuSql('bank', 'bank_withdraw', 'Vom Konto abheben', 'N', 'Y', 4);
-               addMemberMenuSql('bank', 'bank_output', 'Kontoauszug', 'N', 'Y', 5);
-               addMemberMenuSql('bank', 'bank_change', 'Paket wechseln', 'N', 'Y', 6);
-               addMemberMenuSql('bank', 'bank_remove', 'Konto Kündigen', 'N', 'Y', 7);
+               addMemberMenuSql('bank', NULL, 'Bank-Account', 3);
+               addMemberMenuSql('bank', 'bank_infos', 'Angebotspakete', 1);
+               addMemberMenuSql('bank', 'bank_create', 'Konto anlegen', 2);
+               addMemberMenuSql('bank', 'bank_deposit', 'Auf Konto einzahlen', 3);
+               addMemberMenuSql('bank', 'bank_withdraw', 'Vom Konto abheben', 4);
+               addMemberMenuSql('bank', 'bank_output', 'Kontoauszug', 5);
+               addMemberMenuSql('bank', 'bank_change', 'Paket wechseln', 6);
+               addMemberMenuSql('bank', 'bank_remove', 'Konto Kündigen', 7);
                break;
 
        case 'remove': // Do stuff when removing extension
@@ -166,12 +169,12 @@ UNIQUE (`account_id`, `tan`)
 
        case 'activate': // Do stuff when admin activates this extension
                // SQL commands to run
-               addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='Y', `locked`='N' WHERE `action`='bank' LIMIT 8");
+               addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='Y',`locked`='N' WHERE `action`='bank' LIMIT 8");
                break;
 
        case 'deactivate': // Do stuff when admin deactivates this extension
                // SQL commands to run
-               addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='N', `locked`='Y' WHERE `action`='bank' LIMIT 8");
+               addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='N',`locked`='Y' WHERE `action`='bank' LIMIT 8");
                break;
 
        case 'update': // Update an extension
@@ -195,7 +198,7 @@ UNIQUE (`account_id`, `tan`)
                break;
 
        default: // Unknown extension mode
-               logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));
+               reportBug(__FILE__, __LINE__, sprintf('Unknown extension mode %s in extension %s detected.', getExtensionMode(), getCurrentExtensionName()));
                break;
 } // END - switch