Updated copyright year.
[mailer.git] / inc / extensions / ext-bank.php
index b3ac7785524d16e32c3c0fd3fedb5d010bf2be55..3559e7ab9a3677421d1c5a0eea32a613e5842658 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 - 2016 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,48 +112,49 @@ 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);
-               addAdminMenuSql('bank','add_bank_package','Angebotspaket hinzufügen','Neues Angebotspaket erstellen.', 1);
-               addAdminMenuSql('bank','list_bank_package','Angebotspakete auflisten','Listet alle erstellten Angebotspakete auf.', 2);
-               addAdminMenuSql('bank','edit_bank_package','Angebotspaket ändern','Nach Auswahl eines Angebotspaketes können Sie dieses hier verändern. Bitte beachten Sie, dass Ihre Mitglieder keine Mail dabei erhalten!', 3);
-               addAdminMenuSql('bank','lock_bank_package','Angebotspaket ent-/sperren','Nehmen Sie Angebotspakete zur temporären Überarbeitung zuvor heraus, dann können Sie in Ruhe drüber nachdenken und Berechnungen anstellen. Freigabe ist hier auch möglich.', 4);
-               addAdminMenuSql('bank','del_bank_package','Angebotspaket löschen','Nach Auswahl eines Angebotspaketes können Sie mit abschliessender Bestätigung Angebotspakete ganz löschen. Bitte beachten Sie, dass dies nur möglich ist, wenn auch alle Accounts dieses nicht mehr nutzen!', 5);
-               addAdminMenuSql('bank','add_bank_account','Konto anlegen','Legen Sie hier Konten für die Mitglieder an (falls Ihre Mitglieder nicht zurecht kommen).', 6);
-               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','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);
+               addAdminMenuSql('bank', NULL, 'Bank-Accounts', 'Verwalten Sie hier alle Bank-Accounts Ihrer Mitglieder, sowie Angebotspakete und Überweisungen.', 6);
+               addAdminMenuSql('bank', 'add_bank_package', 'Angebotspaket hinzufügen', 'Neues Angebotspaket erstellen.', 1);
+               addAdminMenuSql('bank', 'list_bank_package', 'Angebotspakete auflisten', 'Listet alle erstellten Angebotspakete auf.', 2);
+               addAdminMenuSql('bank', 'edit_bank_package', 'Angebotspaket ändern', 'Nach Auswahl eines Angebotspaketes können Sie dieses hier verändern. Bitte beachten Sie, dass Ihre Mitglieder keine Mail dabei erhalten!', 3);
+               addAdminMenuSql('bank', 'lock_bank_package', 'Angebotspaket ent-/sperren', 'Nehmen Sie Angebotspakete zur temporären Überarbeitung zuvor heraus, dann können Sie in Ruhe drüber nachdenken und Berechnungen anstellen. Freigabe ist hier auch möglich.', 4);
+               addAdminMenuSql('bank', 'del_bank_package', 'Angebotspaket löschen', 'Nach Auswahl eines Angebotspaketes können Sie mit abschliessender Bestätigung Angebotspakete ganz löschen. Bitte beachten Sie, dass dies nur möglich ist, wenn auch alle Accounts dieses nicht mehr nutzen!', 5);
+               addAdminMenuSql('bank', 'add_bank_account', 'Konto anlegen', 'Legen Sie hier Konten für die Mitglieder an (falls Ihre Mitglieder nicht zurecht kommen).', 6);
+               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 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