Version Notes
-
Download this release
Release Info
Developer | Rouven Alexander Rieker |
Extension | DebitPayment |
Version | 0.5.3 |
Comparing to | |
See all releases |
Code changes from version 0.5.1 to 0.5.3
- app/code/community/Mage/Debit/Block/Account/Data.php +14 -23
- app/code/community/Mage/Debit/Block/Adminhtml/Order.php +71 -0
- app/code/community/Mage/Debit/Block/Adminhtml/Order/Grid.php +136 -0
- app/code/community/Mage/Debit/Block/Form.php +20 -32
- app/code/community/Mage/Debit/Block/Info.php +15 -24
- app/code/community/Mage/Debit/Helper/Adminhtml.php +105 -0
- app/code/community/Mage/Debit/Helper/Data.php +21 -32
- app/code/community/Mage/Debit/Model/Debit.php +21 -32
- app/code/community/Mage/Debit/Model/Entity/Customer/Attribute/Backend/Encrypted.php +10 -16
- app/code/community/Mage/Debit/Model/Mysql4/Orders.php +44 -0
- app/code/community/Mage/Debit/Model/Mysql4/Orders/Collection.php +44 -0
- app/code/community/Mage/Debit/Model/Observer.php +21 -26
- app/code/community/Mage/Debit/Model/Orders.php +44 -0
- app/code/community/Mage/Debit/Model/System/Config/Source/Customer/Group.php +8 -7
- app/code/community/Mage/Debit/controllers/AccountController.php +12 -16
- app/code/community/Mage/Debit/controllers/Adminhtml/OrderController.php +226 -0
- app/code/community/Mage/Debit/controllers/AjaxController.php +7 -9
- app/code/community/Mage/Debit/etc/adminhtml.xml +55 -0
- app/code/community/Mage/Debit/etc/bankleitzahlen.csv +123 -160
- app/code/community/Mage/Debit/etc/config.xml +43 -20
- app/code/community/Mage/Debit/etc/system.xml +54 -6
- app/code/community/Mage/Debit/sql/debit_setup/mysql4-install-0.4.0.php +20 -20
- app/code/community/Mage/Debit/sql/debit_setup/mysql4-upgrade-0.3.0-0.4.0.php +116 -0
- app/code/community/Mage/Debit/sql/debit_setup/mysql4-upgrade-0.4.9-0.5.0.php +6 -6
- app/code/community/Mage/Debit/sql/debit_setup/mysql4-upgrade-0.5.0-0.5.1.php +6 -6
- app/code/community/Mage/Debit/sql/debit_setup/mysql4-upgrade-0.5.1-0.5.2.php +60 -0
- app/design/adminhtml/default/default/layout/debit.xml +8 -0
- app/design/adminhtml/default/default/template/debit/debit.phtml +1 -1
- app/design/adminhtml/default/default/template/debit/form.phtml +1 -1
- app/design/adminhtml/default/default/template/debit/info.phtml +1 -1
- app/design/frontend/base/default/layout/debit.xml +7 -7
- app/design/frontend/base/default/template/debit/account/data.phtml +1 -1
- app/design/frontend/base/default/template/debit/form.phtml +1 -1
- app/design/frontend/base/default/template/debit/info.phtml +1 -1
- app/etc/modules/Mage_Debit.xml +5 -5
- app/locale/de_DE/Mage_Debit.csv +23 -4
- app/locale/en_US/Mage_Debit.csv +22 -3
- js/mage/debit/blzcheck.js +1 -1
- lib/DTA/DTA.php +1202 -0
- lib/DTA/DTABase.php +699 -0
- lib/DTA/DTAZV.php +843 -0
- package.xml +8 -52
app/code/community/Mage/Debit/Block/Account/Data.php
CHANGED
@@ -3,9 +3,9 @@
|
|
3 |
* This file is part of the Mage_Debit module.
|
4 |
*
|
5 |
* PHP version 5
|
6 |
-
*
|
7 |
* NOTICE OF LICENSE
|
8 |
-
*
|
9 |
* This source file is subject to the Open Software License (OSL 3.0)
|
10 |
* that is bundled with this package in the file LICENSE.txt.
|
11 |
* It is also available through the world-wide-web at this URL:
|
@@ -17,18 +17,18 @@
|
|
17 |
* @category Mage
|
18 |
* @package Mage_Debit
|
19 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
20 |
-
* @copyright
|
21 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
22 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
23 |
* @link http://www.magentocommerce.com/extension/676/
|
24 |
*/
|
25 |
/**
|
26 |
* Debit Form Block for customer account page
|
27 |
-
*
|
28 |
* @category Mage
|
29 |
* @package Mage_Debit
|
30 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
31 |
-
* @copyright
|
32 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
33 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
34 |
* @link http://www.magentocommerce.com/extension/676/
|
@@ -37,10 +37,8 @@ class Mage_Debit_Block_Account_Data
|
|
37 |
extends Mage_Customer_Block_Account_Dashboard
|
38 |
{
|
39 |
/**
|
40 |
-
* getBankName
|
41 |
-
*
|
42 |
* Returns the bank name
|
43 |
-
*
|
44 |
* @return string Bankname
|
45 |
*/
|
46 |
public function getBankName()
|
@@ -53,14 +51,13 @@ class Mage_Debit_Block_Account_Data
|
|
53 |
if ($bankName == null) {
|
54 |
$bankName = $this->__('not available');
|
55 |
}
|
|
|
56 |
return $bankName;
|
57 |
}
|
58 |
|
59 |
/**
|
60 |
-
* getAccountBLZ
|
61 |
-
*
|
62 |
* Returns the account blz of the specific account
|
63 |
-
*
|
64 |
* @return string BLZ
|
65 |
*/
|
66 |
public function getAccountBLZ()
|
@@ -69,10 +66,8 @@ class Mage_Debit_Block_Account_Data
|
|
69 |
}
|
70 |
|
71 |
/**
|
72 |
-
* getAccountName
|
73 |
-
*
|
74 |
* Returns the account owner name of the specific account
|
75 |
-
*
|
76 |
* @return string Name
|
77 |
*/
|
78 |
public function getAccountName()
|
@@ -81,10 +76,8 @@ class Mage_Debit_Block_Account_Data
|
|
81 |
}
|
82 |
|
83 |
/**
|
84 |
-
* getAccountNumber
|
85 |
-
*
|
86 |
* Returns the number of the specific account
|
87 |
-
*
|
88 |
* @return string Account Number
|
89 |
*/
|
90 |
public function getAccountNumber()
|
@@ -93,13 +86,10 @@ class Mage_Debit_Block_Account_Data
|
|
93 |
}
|
94 |
|
95 |
/**
|
96 |
-
* _getAccountData
|
97 |
-
*
|
98 |
* Returns the specific value of the requested field from the
|
99 |
* customer model.
|
100 |
-
*
|
101 |
-
* @param
|
102 |
-
*
|
103 |
* @return string Data
|
104 |
*/
|
105 |
protected function _getAccountData($field)
|
@@ -114,6 +104,7 @@ class Mage_Debit_Block_Account_Data
|
|
114 |
if ($field != 'debit_payment_acount_name' && !is_numeric($data)) {
|
115 |
return '';
|
116 |
}
|
|
|
117 |
return $this->htmlEscape($data);
|
118 |
}
|
119 |
-
}
|
3 |
* This file is part of the Mage_Debit module.
|
4 |
*
|
5 |
* PHP version 5
|
6 |
+
*
|
7 |
* NOTICE OF LICENSE
|
8 |
+
*
|
9 |
* This source file is subject to the Open Software License (OSL 3.0)
|
10 |
* that is bundled with this package in the file LICENSE.txt.
|
11 |
* It is also available through the world-wide-web at this URL:
|
17 |
* @category Mage
|
18 |
* @package Mage_Debit
|
19 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
20 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
21 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
22 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
23 |
* @link http://www.magentocommerce.com/extension/676/
|
24 |
*/
|
25 |
/**
|
26 |
* Debit Form Block for customer account page
|
27 |
+
*
|
28 |
* @category Mage
|
29 |
* @package Mage_Debit
|
30 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
31 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
32 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
33 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
34 |
* @link http://www.magentocommerce.com/extension/676/
|
37 |
extends Mage_Customer_Block_Account_Dashboard
|
38 |
{
|
39 |
/**
|
|
|
|
|
40 |
* Returns the bank name
|
41 |
+
*
|
42 |
* @return string Bankname
|
43 |
*/
|
44 |
public function getBankName()
|
51 |
if ($bankName == null) {
|
52 |
$bankName = $this->__('not available');
|
53 |
}
|
54 |
+
|
55 |
return $bankName;
|
56 |
}
|
57 |
|
58 |
/**
|
|
|
|
|
59 |
* Returns the account blz of the specific account
|
60 |
+
*
|
61 |
* @return string BLZ
|
62 |
*/
|
63 |
public function getAccountBLZ()
|
66 |
}
|
67 |
|
68 |
/**
|
|
|
|
|
69 |
* Returns the account owner name of the specific account
|
70 |
+
*
|
71 |
* @return string Name
|
72 |
*/
|
73 |
public function getAccountName()
|
76 |
}
|
77 |
|
78 |
/**
|
|
|
|
|
79 |
* Returns the number of the specific account
|
80 |
+
*
|
81 |
* @return string Account Number
|
82 |
*/
|
83 |
public function getAccountNumber()
|
86 |
}
|
87 |
|
88 |
/**
|
|
|
|
|
89 |
* Returns the specific value of the requested field from the
|
90 |
* customer model.
|
91 |
+
*
|
92 |
+
* @param string $field Attribute to get
|
|
|
93 |
* @return string Data
|
94 |
*/
|
95 |
protected function _getAccountData($field)
|
104 |
if ($field != 'debit_payment_acount_name' && !is_numeric($data)) {
|
105 |
return '';
|
106 |
}
|
107 |
+
|
108 |
return $this->htmlEscape($data);
|
109 |
}
|
110 |
+
}
|
app/code/community/Mage/Debit/Block/Adminhtml/Order.php
ADDED
@@ -0,0 +1,71 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* This file is part of the Mage_Debit module.
|
4 |
+
*
|
5 |
+
* PHP version 5
|
6 |
+
*
|
7 |
+
* NOTICE OF LICENSE
|
8 |
+
*
|
9 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
10 |
+
* that is bundled with this package in the file LICENSE.txt.
|
11 |
+
* It is also available through the world-wide-web at this URL:
|
12 |
+
* http://opensource.org/licenses/osl-3.0.php
|
13 |
+
* If you did not receive a copy of the license and are unable to
|
14 |
+
* obtain it through the world-wide-web, please send an email
|
15 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
16 |
+
*
|
17 |
+
* @category Mage
|
18 |
+
* @package Mage_Debit
|
19 |
+
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
20 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
21 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
22 |
+
* @link http://www.magentocommerce.com/extension/676/
|
23 |
+
*/
|
24 |
+
/**
|
25 |
+
* Backend View for Order Export list
|
26 |
+
*
|
27 |
+
* @category Mage
|
28 |
+
* @package Mage_Debit
|
29 |
+
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
30 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
31 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
32 |
+
* @link http://www.magentocommerce.com/extension/676/
|
33 |
+
*/
|
34 |
+
class Mage_Debit_Block_Adminhtml_Order extends Mage_Adminhtml_Block_Widget_Grid_Container
|
35 |
+
{
|
36 |
+
/**
|
37 |
+
* Class constructor
|
38 |
+
*
|
39 |
+
* @return void
|
40 |
+
*/
|
41 |
+
public function __construct()
|
42 |
+
{
|
43 |
+
$this->_controller = 'adminhtml_order';
|
44 |
+
$this->_blockGroup = 'debit';
|
45 |
+
$this->_headerText = Mage::helper('debit')->__('Debit Payment Orders');
|
46 |
+
parent::__construct();
|
47 |
+
$this->_removeButton('add');
|
48 |
+
|
49 |
+
if (Mage::helper('debit/adminhtml')->hasExportRequirements()) {
|
50 |
+
$this->_addButton('sync', array(
|
51 |
+
'label' => Mage::helper('debit')->__('Sync Orders'),
|
52 |
+
'onclick' => 'setLocation(\'' . $this->getUrl('*/*/sync') .'\')',
|
53 |
+
'class' => 'add',
|
54 |
+
));
|
55 |
+
$this->_addButton('export_dtaus', array(
|
56 |
+
'label' => Mage::helper('debit')->__('Export as DTAUS'),
|
57 |
+
'onclick' => 'setLocation(\'' . $this->getUrl('*/*/exportdtaus') .'\')',
|
58 |
+
'class' => '',
|
59 |
+
));
|
60 |
+
$this->_addButton('export_csv', array(
|
61 |
+
'label' => Mage::helper('debit')->__('Export as CSV'),
|
62 |
+
'onclick' => 'setLocation(\'' . $this->getUrl('*/*/exportcsv') .'\')',
|
63 |
+
'class' => '',
|
64 |
+
));
|
65 |
+
} else {
|
66 |
+
Mage::getSingleton('adminhtml/session')->addError(
|
67 |
+
Mage::helper('debit')->__('Please enter bankaccount credentials of the store owner in the system configuration. Otherwise you will not be able to generate a valid export file.')
|
68 |
+
);
|
69 |
+
}
|
70 |
+
}
|
71 |
+
}
|
app/code/community/Mage/Debit/Block/Adminhtml/Order/Grid.php
ADDED
@@ -0,0 +1,136 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* This file is part of the Mage_Debit module.
|
4 |
+
*
|
5 |
+
* PHP version 5
|
6 |
+
*
|
7 |
+
* NOTICE OF LICENSE
|
8 |
+
*
|
9 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
10 |
+
* that is bundled with this package in the file LICENSE.txt.
|
11 |
+
* It is also available through the world-wide-web at this URL:
|
12 |
+
* http://opensource.org/licenses/osl-3.0.php
|
13 |
+
* If you did not receive a copy of the license and are unable to
|
14 |
+
* obtain it through the world-wide-web, please send an email
|
15 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
16 |
+
*
|
17 |
+
* @category Mage
|
18 |
+
* @package Mage_Debit
|
19 |
+
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
20 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
21 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
22 |
+
* @link http://www.magentocommerce.com/extension/676/
|
23 |
+
*/
|
24 |
+
/**
|
25 |
+
* Order Export Grid
|
26 |
+
*
|
27 |
+
* @category Mage
|
28 |
+
* @package Mage_Debit
|
29 |
+
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
30 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
31 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
32 |
+
* @link http://www.magentocommerce.com/extension/676/
|
33 |
+
*/
|
34 |
+
class Mage_Debit_Block_Adminhtml_Order_Grid extends Mage_Adminhtml_Block_Widget_Grid
|
35 |
+
{
|
36 |
+
/**
|
37 |
+
* Class Constructor
|
38 |
+
*
|
39 |
+
* @return void
|
40 |
+
*/
|
41 |
+
public function __construct()
|
42 |
+
{
|
43 |
+
parent::__construct();
|
44 |
+
$this->setId('debitpayment_order_grid');
|
45 |
+
$this->setDefaultSort('increment_id');
|
46 |
+
$this->setDefaultDir('DESC');
|
47 |
+
$this->setSaveParametersInSession(true);
|
48 |
+
}
|
49 |
+
|
50 |
+
/**
|
51 |
+
* (non-PHPdoc)
|
52 |
+
* @see Mage_Adminhtml_Block_Widget_Grid::_prepareCollection()
|
53 |
+
*/
|
54 |
+
protected function _prepareCollection()
|
55 |
+
{
|
56 |
+
$collection = Mage::getModel('debit/orders')->getCollection();
|
57 |
+
$this->setCollection($collection);
|
58 |
+
|
59 |
+
return parent::_prepareCollection();
|
60 |
+
}
|
61 |
+
|
62 |
+
/**
|
63 |
+
* (non-PHPdoc)
|
64 |
+
* @see Mage_Adminhtml_Block_Widget_Grid::_prepareColumns()
|
65 |
+
*/
|
66 |
+
protected function _prepareColumns()
|
67 |
+
{
|
68 |
+
$this->addColumn(
|
69 |
+
'increment_id',
|
70 |
+
array(
|
71 |
+
'header' => $this->_getHelper()->__('Order #'),
|
72 |
+
'width' => '90px',
|
73 |
+
'index' => 'increment_id'
|
74 |
+
)
|
75 |
+
);
|
76 |
+
$this->addColumn(
|
77 |
+
'created_at',
|
78 |
+
array(
|
79 |
+
'header' => $this->_getHelper()->__('Purchased On'),
|
80 |
+
'index' => 'created_at',
|
81 |
+
'type' => 'datetime',
|
82 |
+
'width' => '100px',
|
83 |
+
)
|
84 |
+
);
|
85 |
+
$this->addColumn(
|
86 |
+
'billing_name',
|
87 |
+
array(
|
88 |
+
'header' => $this->_getHelper()->__('Bill to Name'),
|
89 |
+
'index' => 'billing_name',
|
90 |
+
)
|
91 |
+
);
|
92 |
+
$this->addColumn(
|
93 |
+
'grand_total',
|
94 |
+
array(
|
95 |
+
'header' => $this->_getHelper()->__('Grand Total'),
|
96 |
+
'index' => 'grand_total',
|
97 |
+
'type' => 'currency',
|
98 |
+
'currency' => 'order_currency_code',
|
99 |
+
)
|
100 |
+
);
|
101 |
+
$this->addColumn(
|
102 |
+
'status',
|
103 |
+
array(
|
104 |
+
'header' => $this->_getHelper()->__('Status'),
|
105 |
+
'index' => 'status',
|
106 |
+
'type' => 'options',
|
107 |
+
'width' => '150px',
|
108 |
+
'options' => array(
|
109 |
+
0 => $this->_getHelper()->__('Not exported'),
|
110 |
+
1 => $this->_getHelper()->__('Exported')
|
111 |
+
),
|
112 |
+
)
|
113 |
+
);
|
114 |
+
|
115 |
+
return parent::_prepareColumns();
|
116 |
+
}
|
117 |
+
|
118 |
+
/**
|
119 |
+
* (non-PHPdoc)
|
120 |
+
* @see Mage_Adminhtml_Block_Widget_Grid::getRowUrl()
|
121 |
+
*/
|
122 |
+
public function getRowUrl($row)
|
123 |
+
{
|
124 |
+
return false;
|
125 |
+
}
|
126 |
+
|
127 |
+
/**
|
128 |
+
* Retrieve the helper class
|
129 |
+
*
|
130 |
+
* @return Mage_Debit_Helper_Adminhtml Helper
|
131 |
+
*/
|
132 |
+
protected function _getHelper()
|
133 |
+
{
|
134 |
+
return Mage::helper('debit/adminhtml');
|
135 |
+
}
|
136 |
+
}
|
app/code/community/Mage/Debit/Block/Form.php
CHANGED
@@ -3,9 +3,9 @@
|
|
3 |
* This file is part of the Mage_Debit module.
|
4 |
*
|
5 |
* PHP version 5
|
6 |
-
*
|
7 |
* NOTICE OF LICENSE
|
8 |
-
*
|
9 |
* This source file is subject to the Open Software License (OSL 3.0)
|
10 |
* that is bundled with this package in the file LICENSE.txt.
|
11 |
* It is also available through the world-wide-web at this URL:
|
@@ -17,18 +17,18 @@
|
|
17 |
* @category Mage
|
18 |
* @package Mage_Debit
|
19 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
20 |
-
* @copyright
|
21 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
22 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
23 |
* @link http://www.magentocommerce.com/extension/676/
|
24 |
*/
|
25 |
/**
|
26 |
* Debit Form Block
|
27 |
-
*
|
28 |
* @category Mage
|
29 |
* @package Mage_Debit
|
30 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
31 |
-
* @copyright
|
32 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
33 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
34 |
* @link http://www.magentocommerce.com/extension/676/
|
@@ -36,10 +36,8 @@
|
|
36 |
class Mage_Debit_Block_Form extends Mage_Payment_Block_Form
|
37 |
{
|
38 |
/**
|
39 |
-
* _construct
|
40 |
-
*
|
41 |
* Construct payment form block and set template
|
42 |
-
*
|
43 |
* @return void
|
44 |
*/
|
45 |
protected function _construct()
|
@@ -49,10 +47,8 @@ class Mage_Debit_Block_Form extends Mage_Payment_Block_Form
|
|
49 |
}
|
50 |
|
51 |
/**
|
52 |
-
* getBankName
|
53 |
-
*
|
54 |
* Returns the account bankname if applicable from the payment info instance
|
55 |
-
*
|
56 |
* @return string Bankname/Error
|
57 |
*/
|
58 |
public function getBankName()
|
@@ -65,14 +61,13 @@ class Mage_Debit_Block_Form extends Mage_Payment_Block_Form
|
|
65 |
if ($bankName == null) {
|
66 |
$bankName = $this->__('not available');
|
67 |
}
|
|
|
68 |
return $bankName;
|
69 |
}
|
70 |
|
71 |
/**
|
72 |
-
* getAccountBLZ
|
73 |
-
*
|
74 |
* Returns the account blz from the payment info instance
|
75 |
-
*
|
76 |
* @return string BLZ
|
77 |
*/
|
78 |
public function getAccountBLZ()
|
@@ -81,6 +76,7 @@ class Mage_Debit_Block_Form extends Mage_Payment_Block_Form
|
|
81 |
if (!is_numeric($data)) {
|
82 |
$data = Mage::helper('core')->decrypt($data);
|
83 |
}
|
|
|
84 |
return $data;
|
85 |
} elseif ($data = $this->_getAccountData('debit_payment_acount_blz')) {
|
86 |
return $data;
|
@@ -90,10 +86,8 @@ class Mage_Debit_Block_Form extends Mage_Payment_Block_Form
|
|
90 |
}
|
91 |
|
92 |
/**
|
93 |
-
* getAccountName
|
94 |
-
*
|
95 |
* Returns the account name from the payment info instance
|
96 |
-
*
|
97 |
* @return string Name
|
98 |
*/
|
99 |
public function getAccountName()
|
@@ -101,14 +95,13 @@ class Mage_Debit_Block_Form extends Mage_Payment_Block_Form
|
|
101 |
if ($data = $this->getInfoData('cc_owner')) {
|
102 |
return $data;
|
103 |
}
|
|
|
104 |
return $this->_getAccountData('debit_payment_acount_name');
|
105 |
}
|
106 |
|
107 |
/**
|
108 |
-
* getAccountNumber
|
109 |
-
*
|
110 |
* Returns the account number from the payment info instance
|
111 |
-
*
|
112 |
* @return string Number
|
113 |
*/
|
114 |
public function getAccountNumber()
|
@@ -124,13 +117,10 @@ class Mage_Debit_Block_Form extends Mage_Payment_Block_Form
|
|
124 |
}
|
125 |
|
126 |
/**
|
127 |
-
* _getAccountData
|
128 |
-
*
|
129 |
* Returns the specific value of the requested field from the
|
130 |
* customer model.
|
131 |
-
*
|
132 |
-
* @param
|
133 |
-
*
|
134 |
* @return string Data
|
135 |
*/
|
136 |
protected function _getAccountData($field)
|
@@ -142,14 +132,13 @@ class Mage_Debit_Block_Form extends Mage_Payment_Block_Form
|
|
142 |
if (strlen($data) == 0) {
|
143 |
return '';
|
144 |
}
|
|
|
145 |
return $this->htmlEscape($data);
|
146 |
}
|
147 |
|
148 |
/**
|
149 |
-
* getCustomer
|
150 |
-
*
|
151 |
* Returns the current customer
|
152 |
-
*
|
153 |
* @return Mage_Customer_Model_Customer Customer
|
154 |
*/
|
155 |
public function getCustomer()
|
@@ -157,18 +146,17 @@ class Mage_Debit_Block_Form extends Mage_Payment_Block_Form
|
|
157 |
if (Mage::app()->getStore()->isAdmin()) {
|
158 |
return Mage::getSingleton('adminhtml/session_quote')->getCustomer();
|
159 |
}
|
|
|
160 |
return Mage::getSingleton('customer/session')->getCustomer();
|
161 |
}
|
162 |
|
163 |
/**
|
164 |
-
* getCheckoutValidBlz
|
165 |
-
*
|
166 |
* Returns the config setting if checkout is only allowed with a valid BLZ
|
167 |
-
*
|
168 |
* @return boolean true/false
|
169 |
*/
|
170 |
public function getCheckoutValidBlz()
|
171 |
{
|
172 |
return Mage::getStoreConfigFlag('payment/debit/checkout_valid_blz');
|
173 |
}
|
174 |
-
}
|
3 |
* This file is part of the Mage_Debit module.
|
4 |
*
|
5 |
* PHP version 5
|
6 |
+
*
|
7 |
* NOTICE OF LICENSE
|
8 |
+
*
|
9 |
* This source file is subject to the Open Software License (OSL 3.0)
|
10 |
* that is bundled with this package in the file LICENSE.txt.
|
11 |
* It is also available through the world-wide-web at this URL:
|
17 |
* @category Mage
|
18 |
* @package Mage_Debit
|
19 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
20 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
21 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
22 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
23 |
* @link http://www.magentocommerce.com/extension/676/
|
24 |
*/
|
25 |
/**
|
26 |
* Debit Form Block
|
27 |
+
*
|
28 |
* @category Mage
|
29 |
* @package Mage_Debit
|
30 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
31 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
32 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
33 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
34 |
* @link http://www.magentocommerce.com/extension/676/
|
36 |
class Mage_Debit_Block_Form extends Mage_Payment_Block_Form
|
37 |
{
|
38 |
/**
|
|
|
|
|
39 |
* Construct payment form block and set template
|
40 |
+
*
|
41 |
* @return void
|
42 |
*/
|
43 |
protected function _construct()
|
47 |
}
|
48 |
|
49 |
/**
|
|
|
|
|
50 |
* Returns the account bankname if applicable from the payment info instance
|
51 |
+
*
|
52 |
* @return string Bankname/Error
|
53 |
*/
|
54 |
public function getBankName()
|
61 |
if ($bankName == null) {
|
62 |
$bankName = $this->__('not available');
|
63 |
}
|
64 |
+
|
65 |
return $bankName;
|
66 |
}
|
67 |
|
68 |
/**
|
|
|
|
|
69 |
* Returns the account blz from the payment info instance
|
70 |
+
*
|
71 |
* @return string BLZ
|
72 |
*/
|
73 |
public function getAccountBLZ()
|
76 |
if (!is_numeric($data)) {
|
77 |
$data = Mage::helper('core')->decrypt($data);
|
78 |
}
|
79 |
+
|
80 |
return $data;
|
81 |
} elseif ($data = $this->_getAccountData('debit_payment_acount_blz')) {
|
82 |
return $data;
|
86 |
}
|
87 |
|
88 |
/**
|
|
|
|
|
89 |
* Returns the account name from the payment info instance
|
90 |
+
*
|
91 |
* @return string Name
|
92 |
*/
|
93 |
public function getAccountName()
|
95 |
if ($data = $this->getInfoData('cc_owner')) {
|
96 |
return $data;
|
97 |
}
|
98 |
+
|
99 |
return $this->_getAccountData('debit_payment_acount_name');
|
100 |
}
|
101 |
|
102 |
/**
|
|
|
|
|
103 |
* Returns the account number from the payment info instance
|
104 |
+
*
|
105 |
* @return string Number
|
106 |
*/
|
107 |
public function getAccountNumber()
|
117 |
}
|
118 |
|
119 |
/**
|
|
|
|
|
120 |
* Returns the specific value of the requested field from the
|
121 |
* customer model.
|
122 |
+
*
|
123 |
+
* @param string $field Attribute to get
|
|
|
124 |
* @return string Data
|
125 |
*/
|
126 |
protected function _getAccountData($field)
|
132 |
if (strlen($data) == 0) {
|
133 |
return '';
|
134 |
}
|
135 |
+
|
136 |
return $this->htmlEscape($data);
|
137 |
}
|
138 |
|
139 |
/**
|
|
|
|
|
140 |
* Returns the current customer
|
141 |
+
*
|
142 |
* @return Mage_Customer_Model_Customer Customer
|
143 |
*/
|
144 |
public function getCustomer()
|
146 |
if (Mage::app()->getStore()->isAdmin()) {
|
147 |
return Mage::getSingleton('adminhtml/session_quote')->getCustomer();
|
148 |
}
|
149 |
+
|
150 |
return Mage::getSingleton('customer/session')->getCustomer();
|
151 |
}
|
152 |
|
153 |
/**
|
|
|
|
|
154 |
* Returns the config setting if checkout is only allowed with a valid BLZ
|
155 |
+
*
|
156 |
* @return boolean true/false
|
157 |
*/
|
158 |
public function getCheckoutValidBlz()
|
159 |
{
|
160 |
return Mage::getStoreConfigFlag('payment/debit/checkout_valid_blz');
|
161 |
}
|
162 |
+
}
|
app/code/community/Mage/Debit/Block/Info.php
CHANGED
@@ -3,9 +3,9 @@
|
|
3 |
* This file is part of the Mage_Debit module.
|
4 |
*
|
5 |
* PHP version 5
|
6 |
-
*
|
7 |
* NOTICE OF LICENSE
|
8 |
-
*
|
9 |
* This source file is subject to the Open Software License (OSL 3.0)
|
10 |
* that is bundled with this package in the file LICENSE.txt.
|
11 |
* It is also available through the world-wide-web at this URL:
|
@@ -17,18 +17,18 @@
|
|
17 |
* @category Mage
|
18 |
* @package Mage_Debit
|
19 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
20 |
-
* @copyright
|
21 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
22 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
23 |
* @link http://www.magentocommerce.com/extension/676/
|
24 |
*/
|
25 |
/**
|
26 |
* Debit Info Block
|
27 |
-
*
|
28 |
* @category Mage
|
29 |
* @package Mage_Debit
|
30 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
31 |
-
* @copyright
|
32 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
33 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
34 |
* @link http://www.magentocommerce.com/extension/676/
|
@@ -36,10 +36,8 @@
|
|
36 |
class Mage_Debit_Block_Info extends Mage_Payment_Block_Info
|
37 |
{
|
38 |
/**
|
39 |
-
* _construct
|
40 |
-
*
|
41 |
* Construct payment info block and set template
|
42 |
-
*
|
43 |
* @return void
|
44 |
*/
|
45 |
protected function _construct()
|
@@ -49,25 +47,20 @@ class Mage_Debit_Block_Info extends Mage_Payment_Block_Info
|
|
49 |
}
|
50 |
|
51 |
/**
|
52 |
-
* toPdf
|
53 |
-
*
|
54 |
* Sets the template for PDF print-outs
|
55 |
-
*
|
56 |
-
* @returns string Text for PDF
|
57 |
-
*
|
58 |
* @return string Text for PDF print-out
|
59 |
*/
|
60 |
public function toPdf()
|
61 |
{
|
62 |
$this->setTemplate('debit/debit.phtml');
|
|
|
63 |
return $this->toHtml();
|
64 |
}
|
65 |
|
66 |
/**
|
67 |
-
* isEmailContext
|
68 |
-
*
|
69 |
* Checks if we are in the email context
|
70 |
-
*
|
71 |
* @return boolean true/false
|
72 |
*/
|
73 |
public function isEmailContext()
|
@@ -82,7 +75,7 @@ class Mage_Debit_Block_Info extends Mage_Payment_Block_Info
|
|
82 |
return true; // Admin
|
83 |
} else {
|
84 |
return false; // Admin View
|
85 |
-
}
|
86 |
} else {
|
87 |
return true; // Frontend
|
88 |
}
|
@@ -90,23 +83,20 @@ class Mage_Debit_Block_Info extends Mage_Payment_Block_Info
|
|
90 |
}
|
91 |
|
92 |
/**
|
93 |
-
* sendDataInEmail
|
94 |
-
*
|
95 |
* Returns the config setting if bank data should be send in the email
|
96 |
-
*
|
97 |
* @return boolean true/false
|
98 |
*/
|
99 |
public function sendDataInEmail()
|
100 |
{
|
101 |
$method = $this->getMethod()->getCode();
|
|
|
102 |
return Mage::getStoreConfigFlag('payment/'.$method.'/sendmail');
|
103 |
}
|
104 |
|
105 |
/**
|
106 |
-
* getEmailData
|
107 |
-
*
|
108 |
* Returns email data and mask the data if necessary
|
109 |
-
*
|
110 |
* @return array Bank data
|
111 |
*/
|
112 |
public function getEmailData()
|
@@ -127,6 +117,7 @@ class Mage_Debit_Block_Info extends Mage_Payment_Block_Info
|
|
127 |
$data['account_blz'] = $routing;
|
128 |
$data['bank_name'] = '';
|
129 |
}
|
|
|
130 |
return $data;
|
131 |
}
|
132 |
-
}
|
3 |
* This file is part of the Mage_Debit module.
|
4 |
*
|
5 |
* PHP version 5
|
6 |
+
*
|
7 |
* NOTICE OF LICENSE
|
8 |
+
*
|
9 |
* This source file is subject to the Open Software License (OSL 3.0)
|
10 |
* that is bundled with this package in the file LICENSE.txt.
|
11 |
* It is also available through the world-wide-web at this URL:
|
17 |
* @category Mage
|
18 |
* @package Mage_Debit
|
19 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
20 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
21 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
22 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
23 |
* @link http://www.magentocommerce.com/extension/676/
|
24 |
*/
|
25 |
/**
|
26 |
* Debit Info Block
|
27 |
+
*
|
28 |
* @category Mage
|
29 |
* @package Mage_Debit
|
30 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
31 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
32 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
33 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
34 |
* @link http://www.magentocommerce.com/extension/676/
|
36 |
class Mage_Debit_Block_Info extends Mage_Payment_Block_Info
|
37 |
{
|
38 |
/**
|
|
|
|
|
39 |
* Construct payment info block and set template
|
40 |
+
*
|
41 |
* @return void
|
42 |
*/
|
43 |
protected function _construct()
|
47 |
}
|
48 |
|
49 |
/**
|
|
|
|
|
50 |
* Sets the template for PDF print-outs
|
51 |
+
*
|
|
|
|
|
52 |
* @return string Text for PDF print-out
|
53 |
*/
|
54 |
public function toPdf()
|
55 |
{
|
56 |
$this->setTemplate('debit/debit.phtml');
|
57 |
+
|
58 |
return $this->toHtml();
|
59 |
}
|
60 |
|
61 |
/**
|
|
|
|
|
62 |
* Checks if we are in the email context
|
63 |
+
*
|
64 |
* @return boolean true/false
|
65 |
*/
|
66 |
public function isEmailContext()
|
75 |
return true; // Admin
|
76 |
} else {
|
77 |
return false; // Admin View
|
78 |
+
}
|
79 |
} else {
|
80 |
return true; // Frontend
|
81 |
}
|
83 |
}
|
84 |
|
85 |
/**
|
|
|
|
|
86 |
* Returns the config setting if bank data should be send in the email
|
87 |
+
*
|
88 |
* @return boolean true/false
|
89 |
*/
|
90 |
public function sendDataInEmail()
|
91 |
{
|
92 |
$method = $this->getMethod()->getCode();
|
93 |
+
|
94 |
return Mage::getStoreConfigFlag('payment/'.$method.'/sendmail');
|
95 |
}
|
96 |
|
97 |
/**
|
|
|
|
|
98 |
* Returns email data and mask the data if necessary
|
99 |
+
*
|
100 |
* @return array Bank data
|
101 |
*/
|
102 |
public function getEmailData()
|
117 |
$data['account_blz'] = $routing;
|
118 |
$data['bank_name'] = '';
|
119 |
}
|
120 |
+
|
121 |
return $data;
|
122 |
}
|
123 |
+
}
|
app/code/community/Mage/Debit/Helper/Adminhtml.php
ADDED
@@ -0,0 +1,105 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* This file is part of the Mage_Debit module.
|
4 |
+
*
|
5 |
+
* PHP version 5
|
6 |
+
*
|
7 |
+
* NOTICE OF LICENSE
|
8 |
+
*
|
9 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
10 |
+
* that is bundled with this package in the file LICENSE.txt.
|
11 |
+
* It is also available through the world-wide-web at this URL:
|
12 |
+
* http://opensource.org/licenses/osl-3.0.php
|
13 |
+
* If you did not receive a copy of the license and are unable to
|
14 |
+
* obtain it through the world-wide-web, please send an email
|
15 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
16 |
+
*
|
17 |
+
* @category Mage
|
18 |
+
* @package Mage_Debit
|
19 |
+
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
20 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
21 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
22 |
+
* @link http://www.magentocommerce.com/extension/676/
|
23 |
+
*/
|
24 |
+
/**
|
25 |
+
* Helper class for helper functionalities especially in the adminhtml area..
|
26 |
+
*
|
27 |
+
* @category Mage
|
28 |
+
* @package Mage_Debit
|
29 |
+
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
30 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
31 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
32 |
+
* @link http://www.magentocommerce.com/extension/676/
|
33 |
+
*/
|
34 |
+
class Mage_Debit_Helper_Adminhtml extends Mage_Debit_Helper_Data
|
35 |
+
{
|
36 |
+
const XML_PATH_BANKACCOUNT_ACCOUNTOWNER = 'debitpayment/bankaccount/account_owner';
|
37 |
+
const XML_PATH_BANKACCOUNT_ROUTINGNUMBER = 'debitpayment/bankaccount/routing_number';
|
38 |
+
const XML_PATH_BANKACCOUNT_ACCOUNTNUMBER = 'debitpayment/bankaccount/account_number';
|
39 |
+
|
40 |
+
/**
|
41 |
+
* Check if the export requirements are reached for export. Store owner
|
42 |
+
* has to enter his bank account data.
|
43 |
+
*
|
44 |
+
* @return bool
|
45 |
+
*/
|
46 |
+
public function hasExportRequirements()
|
47 |
+
{
|
48 |
+
if (Mage::getStoreConfig(self::XML_PATH_BANKACCOUNT_ACCOUNTOWNER) == ''
|
49 |
+
|| Mage::getStoreConfig(self::XML_PATH_BANKACCOUNT_ROUTINGNUMBER) == ''
|
50 |
+
|| Mage::getStoreConfig(self::XML_PATH_BANKACCOUNT_ACCOUNTNUMBER) == ''
|
51 |
+
) {
|
52 |
+
return false;
|
53 |
+
}
|
54 |
+
|
55 |
+
return true;
|
56 |
+
}
|
57 |
+
|
58 |
+
/**
|
59 |
+
* Retrieve the bank account data of the store owenr as array
|
60 |
+
*
|
61 |
+
* @return array Bank account
|
62 |
+
*/
|
63 |
+
public function getBankAccount()
|
64 |
+
{
|
65 |
+
return array(
|
66 |
+
'name' => Mage::getStoreConfig(self::XML_PATH_BANKACCOUNT_ACCOUNTOWNER),
|
67 |
+
'bank_code' => Mage::getStoreConfig(self::XML_PATH_BANKACCOUNT_ROUTINGNUMBER),
|
68 |
+
'account_number' => Mage::getStoreConfig(self::XML_PATH_BANKACCOUNT_ACCOUNTNUMBER)
|
69 |
+
);
|
70 |
+
}
|
71 |
+
|
72 |
+
/**
|
73 |
+
* Retrieve a list of already synced orders, so that a single order is not
|
74 |
+
* exported multiple times.
|
75 |
+
*
|
76 |
+
* @return array Orders
|
77 |
+
*/
|
78 |
+
public function getSyncedOrders()
|
79 |
+
{
|
80 |
+
$entityIds = array();
|
81 |
+
$collection = Mage::getModel('debit/orders')->getCollection();
|
82 |
+
if ($collection->count() > 0) {
|
83 |
+
foreach ($collection as $item) {
|
84 |
+
$entityIds[] = $item->getData('entity_id');
|
85 |
+
}
|
86 |
+
}
|
87 |
+
|
88 |
+
return $entityIds;
|
89 |
+
}
|
90 |
+
|
91 |
+
/**
|
92 |
+
* Updates the status of an export order item to "exported"..
|
93 |
+
*
|
94 |
+
* @param int $id Export Order ID
|
95 |
+
* @return bool
|
96 |
+
*/
|
97 |
+
public function setStatusAsExported($id)
|
98 |
+
{
|
99 |
+
$model = Mage::getModel('debit/orders')->load($id);
|
100 |
+
$model->setData('status', 1);
|
101 |
+
$model->save();
|
102 |
+
|
103 |
+
return true;
|
104 |
+
}
|
105 |
+
}
|
app/code/community/Mage/Debit/Helper/Data.php
CHANGED
@@ -3,9 +3,9 @@
|
|
3 |
* This file is part of the Mage_Debit module.
|
4 |
*
|
5 |
* PHP version 5
|
6 |
-
*
|
7 |
* NOTICE OF LICENSE
|
8 |
-
*
|
9 |
* This source file is subject to the Open Software License (OSL 3.0)
|
10 |
* that is bundled with this package in the file LICENSE.txt.
|
11 |
* It is also available through the world-wide-web at this URL:
|
@@ -17,18 +17,18 @@
|
|
17 |
* @category Mage
|
18 |
* @package Mage_Debit
|
19 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
20 |
-
* @copyright
|
21 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
22 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
23 |
* @link http://www.magentocommerce.com/extension/676/
|
24 |
*/
|
25 |
/**
|
26 |
* Helper class for different helper functionalities..
|
27 |
-
*
|
28 |
* @category Mage
|
29 |
* @package Mage_Debit
|
30 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
31 |
-
* @copyright
|
32 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
33 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
34 |
* @link http://www.magentocommerce.com/extension/676/
|
@@ -36,12 +36,9 @@
|
|
36 |
class Mage_Debit_Helper_Data extends Mage_Payment_Helper_Data
|
37 |
{
|
38 |
/**
|
39 |
-
* getBankByBlz
|
40 |
-
*
|
41 |
* Returns the bankname by given blz
|
42 |
-
*
|
43 |
-
* @param
|
44 |
-
*
|
45 |
* @return null|string Bank Name
|
46 |
*/
|
47 |
public function getBankByBlz($blz)
|
@@ -52,7 +49,7 @@ class Mage_Debit_Helper_Data extends Mage_Payment_Helper_Data
|
|
52 |
$file = new Varien_Io_File();
|
53 |
$file->open(
|
54 |
array(
|
55 |
-
|
56 |
)
|
57 |
);
|
58 |
$file->streamOpen('bankleitzahlen.csv', 'r');
|
@@ -64,14 +61,13 @@ class Mage_Debit_Helper_Data extends Mage_Payment_Helper_Data
|
|
64 |
} else {
|
65 |
$data = unserialize($data);
|
66 |
}
|
|
|
67 |
return empty($data[$blz]) ? null : $data[$blz];
|
68 |
}
|
69 |
|
70 |
/**
|
71 |
-
* _loadBlzCache
|
72 |
-
*
|
73 |
* Loads the blz data from cache
|
74 |
-
*
|
75 |
* @return mixed|false Cache data
|
76 |
*/
|
77 |
protected function _loadBlzCache()
|
@@ -79,16 +75,14 @@ class Mage_Debit_Helper_Data extends Mage_Payment_Helper_Data
|
|
79 |
if (!Mage::app()->useCache('config')) {
|
80 |
return false;
|
81 |
}
|
|
|
82 |
return Mage::app()->loadCache($this->_getCacheKey());
|
83 |
}
|
84 |
|
85 |
/**
|
86 |
-
* _saveBlzCache
|
87 |
-
*
|
88 |
* Saves the blz data in the cache
|
89 |
-
*
|
90 |
-
* @param
|
91 |
-
*
|
92 |
* @return Mage_Debit_Helper_Data Self.
|
93 |
*/
|
94 |
protected function _saveBlzCache($data)
|
@@ -97,14 +91,13 @@ class Mage_Debit_Helper_Data extends Mage_Payment_Helper_Data
|
|
97 |
return false;
|
98 |
}
|
99 |
Mage::app()->saveCache($data, $this->_getCacheKey(), $this->_getCacheTags(), $this->_getCacheLifetime());
|
|
|
100 |
return $this;
|
101 |
}
|
102 |
|
103 |
/**
|
104 |
-
* _getCacheLifetime
|
105 |
-
*
|
106 |
* Returns the cache lifetime for the blz data.
|
107 |
-
*
|
108 |
* @return int Lifetime
|
109 |
*/
|
110 |
protected function _getCacheLifetime()
|
@@ -113,10 +106,8 @@ class Mage_Debit_Helper_Data extends Mage_Payment_Helper_Data
|
|
113 |
}
|
114 |
|
115 |
/**
|
116 |
-
* _getCacheKey
|
117 |
-
*
|
118 |
* Returns the cache key for the blz data.
|
119 |
-
*
|
120 |
* @return string Cache key
|
121 |
*/
|
122 |
protected function _getCacheKey()
|
@@ -125,10 +116,8 @@ class Mage_Debit_Helper_Data extends Mage_Payment_Helper_Data
|
|
125 |
}
|
126 |
|
127 |
/**
|
128 |
-
* _getCacheTags
|
129 |
-
*
|
130 |
* Returns the CONFIG cache tag
|
131 |
-
*
|
132 |
* @return array Cache tags
|
133 |
*/
|
134 |
protected function _getCacheTags()
|
@@ -138,15 +127,15 @@ class Mage_Debit_Helper_Data extends Mage_Payment_Helper_Data
|
|
138 |
|
139 |
/**
|
140 |
* sanitizeData
|
141 |
-
*
|
142 |
-
* @param
|
143 |
-
*
|
144 |
* @return string The sanitized string
|
145 |
*/
|
146 |
public function sanitizeData($data)
|
147 |
{
|
148 |
$bad = array(' ', '-', '_', '.', ';', '/', '|');
|
149 |
$sanitized = str_replace($bad, '', $data);
|
|
|
150 |
return $sanitized;
|
151 |
}
|
152 |
-
}
|
3 |
* This file is part of the Mage_Debit module.
|
4 |
*
|
5 |
* PHP version 5
|
6 |
+
*
|
7 |
* NOTICE OF LICENSE
|
8 |
+
*
|
9 |
* This source file is subject to the Open Software License (OSL 3.0)
|
10 |
* that is bundled with this package in the file LICENSE.txt.
|
11 |
* It is also available through the world-wide-web at this URL:
|
17 |
* @category Mage
|
18 |
* @package Mage_Debit
|
19 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
20 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
21 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
22 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
23 |
* @link http://www.magentocommerce.com/extension/676/
|
24 |
*/
|
25 |
/**
|
26 |
* Helper class for different helper functionalities..
|
27 |
+
*
|
28 |
* @category Mage
|
29 |
* @package Mage_Debit
|
30 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
31 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
32 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
33 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
34 |
* @link http://www.magentocommerce.com/extension/676/
|
36 |
class Mage_Debit_Helper_Data extends Mage_Payment_Helper_Data
|
37 |
{
|
38 |
/**
|
|
|
|
|
39 |
* Returns the bankname by given blz
|
40 |
+
*
|
41 |
+
* @param string $blz BLZ
|
|
|
42 |
* @return null|string Bank Name
|
43 |
*/
|
44 |
public function getBankByBlz($blz)
|
49 |
$file = new Varien_Io_File();
|
50 |
$file->open(
|
51 |
array(
|
52 |
+
'path' => Mage::getModuleDir('etc', 'Mage_Debit')
|
53 |
)
|
54 |
);
|
55 |
$file->streamOpen('bankleitzahlen.csv', 'r');
|
61 |
} else {
|
62 |
$data = unserialize($data);
|
63 |
}
|
64 |
+
|
65 |
return empty($data[$blz]) ? null : $data[$blz];
|
66 |
}
|
67 |
|
68 |
/**
|
|
|
|
|
69 |
* Loads the blz data from cache
|
70 |
+
*
|
71 |
* @return mixed|false Cache data
|
72 |
*/
|
73 |
protected function _loadBlzCache()
|
75 |
if (!Mage::app()->useCache('config')) {
|
76 |
return false;
|
77 |
}
|
78 |
+
|
79 |
return Mage::app()->loadCache($this->_getCacheKey());
|
80 |
}
|
81 |
|
82 |
/**
|
|
|
|
|
83 |
* Saves the blz data in the cache
|
84 |
+
*
|
85 |
+
* @param array $data Blz data
|
|
|
86 |
* @return Mage_Debit_Helper_Data Self.
|
87 |
*/
|
88 |
protected function _saveBlzCache($data)
|
91 |
return false;
|
92 |
}
|
93 |
Mage::app()->saveCache($data, $this->_getCacheKey(), $this->_getCacheTags(), $this->_getCacheLifetime());
|
94 |
+
|
95 |
return $this;
|
96 |
}
|
97 |
|
98 |
/**
|
|
|
|
|
99 |
* Returns the cache lifetime for the blz data.
|
100 |
+
*
|
101 |
* @return int Lifetime
|
102 |
*/
|
103 |
protected function _getCacheLifetime()
|
106 |
}
|
107 |
|
108 |
/**
|
|
|
|
|
109 |
* Returns the cache key for the blz data.
|
110 |
+
*
|
111 |
* @return string Cache key
|
112 |
*/
|
113 |
protected function _getCacheKey()
|
116 |
}
|
117 |
|
118 |
/**
|
|
|
|
|
119 |
* Returns the CONFIG cache tag
|
120 |
+
*
|
121 |
* @return array Cache tags
|
122 |
*/
|
123 |
protected function _getCacheTags()
|
127 |
|
128 |
/**
|
129 |
* sanitizeData
|
130 |
+
*
|
131 |
+
* @param string $data Data
|
|
|
132 |
* @return string The sanitized string
|
133 |
*/
|
134 |
public function sanitizeData($data)
|
135 |
{
|
136 |
$bad = array(' ', '-', '_', '.', ';', '/', '|');
|
137 |
$sanitized = str_replace($bad, '', $data);
|
138 |
+
|
139 |
return $sanitized;
|
140 |
}
|
141 |
+
}
|
app/code/community/Mage/Debit/Model/Debit.php
CHANGED
@@ -3,9 +3,9 @@
|
|
3 |
* This file is part of the Mage_Debit module.
|
4 |
*
|
5 |
* PHP version 5
|
6 |
-
*
|
7 |
* NOTICE OF LICENSE
|
8 |
-
*
|
9 |
* This source file is subject to the Open Software License (OSL 3.0)
|
10 |
* that is bundled with this package in the file LICENSE.txt.
|
11 |
* It is also available through the world-wide-web at this URL:
|
@@ -17,18 +17,18 @@
|
|
17 |
* @category Mage
|
18 |
* @package Mage_Debit
|
19 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
20 |
-
* @copyright
|
21 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
22 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
23 |
* @link http://www.magentocommerce.com/extension/676/
|
24 |
*/
|
25 |
/**
|
26 |
* Debit Model
|
27 |
-
*
|
28 |
* @category Mage
|
29 |
* @package Mage_Debit
|
30 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
31 |
-
* @copyright
|
32 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
33 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
34 |
* @link http://www.magentocommerce.com/extension/676/
|
@@ -44,25 +44,22 @@ class Mage_Debit_Model_Debit extends Mage_Payment_Model_Method_Abstract
|
|
44 |
|
45 |
/**
|
46 |
* payment form block
|
47 |
-
*
|
48 |
* @var string MODULE/BLOCKNAME
|
49 |
*/
|
50 |
protected $_formBlockType = 'debit/form';
|
51 |
|
52 |
/**
|
53 |
* payment info block
|
54 |
-
*
|
55 |
* @var string MODULE/BLOCKNAME
|
56 |
*/
|
57 |
protected $_infoBlockType = 'debit/info';
|
58 |
|
59 |
/**
|
60 |
-
* assignData
|
61 |
-
*
|
62 |
* Assigns data to the payment info instance
|
63 |
-
*
|
64 |
-
* @param
|
65 |
-
*
|
66 |
* @return Mage_Debit_Model_Debit Self.
|
67 |
*/
|
68 |
public function assignData($data)
|
@@ -104,10 +101,8 @@ class Mage_Debit_Model_Debit extends Mage_Payment_Model_Method_Abstract
|
|
104 |
}
|
105 |
|
106 |
/**
|
107 |
-
* getCustomText
|
108 |
-
*
|
109 |
* Returns the custom text for this payment method
|
110 |
-
*
|
111 |
* @return string Custom text
|
112 |
*/
|
113 |
public function getCustomText()
|
@@ -116,23 +111,20 @@ class Mage_Debit_Model_Debit extends Mage_Payment_Model_Method_Abstract
|
|
116 |
}
|
117 |
|
118 |
/**
|
119 |
-
* getAccountName
|
120 |
-
*
|
121 |
* Returns the account name from the payment info instance
|
122 |
-
*
|
123 |
* @return string Name
|
124 |
*/
|
125 |
public function getAccountName()
|
126 |
{
|
127 |
$info = $this->getInfoInstance();
|
|
|
128 |
return $info->getCcOwner();
|
129 |
}
|
130 |
|
131 |
/**
|
132 |
-
* getAccountNumber
|
133 |
-
*
|
134 |
* Returns the account number from the payment info instance
|
135 |
-
*
|
136 |
* @return string Number
|
137 |
*/
|
138 |
public function getAccountNumber()
|
@@ -145,14 +137,13 @@ class Mage_Debit_Model_Debit extends Mage_Payment_Model_Method_Abstract
|
|
145 |
if (!is_numeric($data)) {
|
146 |
$data = $info->decrypt($data);
|
147 |
}
|
|
|
148 |
return $data;
|
149 |
}
|
150 |
|
151 |
/**
|
152 |
-
* getAccountBLZ
|
153 |
-
*
|
154 |
* Returns the account blz from the payment info instance
|
155 |
-
*
|
156 |
* @return string BLZ
|
157 |
*/
|
158 |
public function getAccountBLZ()
|
@@ -162,14 +153,13 @@ class Mage_Debit_Model_Debit extends Mage_Payment_Model_Method_Abstract
|
|
162 |
if (!is_numeric($data)) {
|
163 |
$data = $info->decrypt($data);
|
164 |
}
|
|
|
165 |
return $data;
|
166 |
}
|
167 |
|
168 |
/**
|
169 |
-
* getAccountBankname
|
170 |
-
*
|
171 |
* Returns the account bankname if applicable from the payment info instance
|
172 |
-
*
|
173 |
* @return string Bankname/Error
|
174 |
*/
|
175 |
public function getAccountBankname()
|
@@ -178,21 +168,20 @@ class Mage_Debit_Model_Debit extends Mage_Payment_Model_Method_Abstract
|
|
178 |
if ($bankName == null) {
|
179 |
$bankName = Mage::helper('debit')->__('not available');
|
180 |
}
|
|
|
181 |
return $bankName;
|
182 |
}
|
183 |
|
184 |
/**
|
185 |
-
* maskString
|
186 |
-
*
|
187 |
* Returns the encrypted data for mail
|
188 |
*
|
189 |
-
* @param
|
190 |
-
*
|
191 |
* @return string Crypted data
|
192 |
*/
|
193 |
public function maskString($data)
|
194 |
{
|
195 |
$crypt = str_repeat('*', strlen($data)-3) . substr($data, -3);
|
|
|
196 |
return $crypt;
|
197 |
}
|
198 |
-
}
|
3 |
* This file is part of the Mage_Debit module.
|
4 |
*
|
5 |
* PHP version 5
|
6 |
+
*
|
7 |
* NOTICE OF LICENSE
|
8 |
+
*
|
9 |
* This source file is subject to the Open Software License (OSL 3.0)
|
10 |
* that is bundled with this package in the file LICENSE.txt.
|
11 |
* It is also available through the world-wide-web at this URL:
|
17 |
* @category Mage
|
18 |
* @package Mage_Debit
|
19 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
20 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
21 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
22 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
23 |
* @link http://www.magentocommerce.com/extension/676/
|
24 |
*/
|
25 |
/**
|
26 |
* Debit Model
|
27 |
+
*
|
28 |
* @category Mage
|
29 |
* @package Mage_Debit
|
30 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
31 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
32 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
33 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
34 |
* @link http://www.magentocommerce.com/extension/676/
|
44 |
|
45 |
/**
|
46 |
* payment form block
|
47 |
+
*
|
48 |
* @var string MODULE/BLOCKNAME
|
49 |
*/
|
50 |
protected $_formBlockType = 'debit/form';
|
51 |
|
52 |
/**
|
53 |
* payment info block
|
54 |
+
*
|
55 |
* @var string MODULE/BLOCKNAME
|
56 |
*/
|
57 |
protected $_infoBlockType = 'debit/info';
|
58 |
|
59 |
/**
|
|
|
|
|
60 |
* Assigns data to the payment info instance
|
61 |
+
*
|
62 |
+
* @param Varien_Object|array $data Payment Data from checkout
|
|
|
63 |
* @return Mage_Debit_Model_Debit Self.
|
64 |
*/
|
65 |
public function assignData($data)
|
101 |
}
|
102 |
|
103 |
/**
|
|
|
|
|
104 |
* Returns the custom text for this payment method
|
105 |
+
*
|
106 |
* @return string Custom text
|
107 |
*/
|
108 |
public function getCustomText()
|
111 |
}
|
112 |
|
113 |
/**
|
|
|
|
|
114 |
* Returns the account name from the payment info instance
|
115 |
+
*
|
116 |
* @return string Name
|
117 |
*/
|
118 |
public function getAccountName()
|
119 |
{
|
120 |
$info = $this->getInfoInstance();
|
121 |
+
|
122 |
return $info->getCcOwner();
|
123 |
}
|
124 |
|
125 |
/**
|
|
|
|
|
126 |
* Returns the account number from the payment info instance
|
127 |
+
*
|
128 |
* @return string Number
|
129 |
*/
|
130 |
public function getAccountNumber()
|
137 |
if (!is_numeric($data)) {
|
138 |
$data = $info->decrypt($data);
|
139 |
}
|
140 |
+
|
141 |
return $data;
|
142 |
}
|
143 |
|
144 |
/**
|
|
|
|
|
145 |
* Returns the account blz from the payment info instance
|
146 |
+
*
|
147 |
* @return string BLZ
|
148 |
*/
|
149 |
public function getAccountBLZ()
|
153 |
if (!is_numeric($data)) {
|
154 |
$data = $info->decrypt($data);
|
155 |
}
|
156 |
+
|
157 |
return $data;
|
158 |
}
|
159 |
|
160 |
/**
|
|
|
|
|
161 |
* Returns the account bankname if applicable from the payment info instance
|
162 |
+
*
|
163 |
* @return string Bankname/Error
|
164 |
*/
|
165 |
public function getAccountBankname()
|
168 |
if ($bankName == null) {
|
169 |
$bankName = Mage::helper('debit')->__('not available');
|
170 |
}
|
171 |
+
|
172 |
return $bankName;
|
173 |
}
|
174 |
|
175 |
/**
|
|
|
|
|
176 |
* Returns the encrypted data for mail
|
177 |
*
|
178 |
+
* @param string $data Data to crypt
|
|
|
179 |
* @return string Crypted data
|
180 |
*/
|
181 |
public function maskString($data)
|
182 |
{
|
183 |
$crypt = str_repeat('*', strlen($data)-3) . substr($data, -3);
|
184 |
+
|
185 |
return $crypt;
|
186 |
}
|
187 |
+
}
|
app/code/community/Mage/Debit/Model/Entity/Customer/Attribute/Backend/Encrypted.php
CHANGED
@@ -3,9 +3,9 @@
|
|
3 |
* This file is part of the Mage_Debit module.
|
4 |
*
|
5 |
* PHP version 5
|
6 |
-
*
|
7 |
* NOTICE OF LICENSE
|
8 |
-
*
|
9 |
* This source file is subject to the Open Software License (OSL 3.0)
|
10 |
* that is bundled with this package in the file LICENSE.txt.
|
11 |
* It is also available through the world-wide-web at this URL:
|
@@ -17,18 +17,18 @@
|
|
17 |
* @category Mage
|
18 |
* @package Mage_Debit
|
19 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
20 |
-
* @copyright
|
21 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
22 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
23 |
* @link http://www.magentocommerce.com/extension/676/
|
24 |
*/
|
25 |
/**
|
26 |
* Customer Attribute Backend Encrypted
|
27 |
-
*
|
28 |
* @category Mage
|
29 |
* @package Mage_Debit
|
30 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
31 |
-
* @copyright
|
32 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
33 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
34 |
* @link http://www.magentocommerce.com/extension/676/
|
@@ -37,12 +37,9 @@ class Mage_Debit_Model_Entity_Customer_Attribute_Backend_Encrypted
|
|
37 |
extends Mage_Eav_Model_Entity_Attribute_Backend_Abstract
|
38 |
{
|
39 |
/**
|
40 |
-
* beforeSave
|
41 |
-
*
|
42 |
* Encrypts the value before saving
|
43 |
-
*
|
44 |
-
* @param
|
45 |
-
*
|
46 |
* @return void
|
47 |
*/
|
48 |
public function beforeSave($object)
|
@@ -54,12 +51,9 @@ class Mage_Debit_Model_Entity_Customer_Attribute_Backend_Encrypted
|
|
54 |
}
|
55 |
|
56 |
/**
|
57 |
-
* afterLoad
|
58 |
-
*
|
59 |
* Decrypts the value after load
|
60 |
-
*
|
61 |
-
* @param
|
62 |
-
*
|
63 |
* @return void
|
64 |
*/
|
65 |
public function afterLoad($object)
|
@@ -69,4 +63,4 @@ class Mage_Debit_Model_Entity_Customer_Attribute_Backend_Encrypted
|
|
69 |
$value = $helper->decrypt($object->getData($attributeName));
|
70 |
$object->setData($attributeName, $value);
|
71 |
}
|
72 |
-
}
|
3 |
* This file is part of the Mage_Debit module.
|
4 |
*
|
5 |
* PHP version 5
|
6 |
+
*
|
7 |
* NOTICE OF LICENSE
|
8 |
+
*
|
9 |
* This source file is subject to the Open Software License (OSL 3.0)
|
10 |
* that is bundled with this package in the file LICENSE.txt.
|
11 |
* It is also available through the world-wide-web at this URL:
|
17 |
* @category Mage
|
18 |
* @package Mage_Debit
|
19 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
20 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
21 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
22 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
23 |
* @link http://www.magentocommerce.com/extension/676/
|
24 |
*/
|
25 |
/**
|
26 |
* Customer Attribute Backend Encrypted
|
27 |
+
*
|
28 |
* @category Mage
|
29 |
* @package Mage_Debit
|
30 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
31 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
32 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
33 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
34 |
* @link http://www.magentocommerce.com/extension/676/
|
37 |
extends Mage_Eav_Model_Entity_Attribute_Backend_Abstract
|
38 |
{
|
39 |
/**
|
|
|
|
|
40 |
* Encrypts the value before saving
|
41 |
+
*
|
42 |
+
* @param <type> $object Object
|
|
|
43 |
* @return void
|
44 |
*/
|
45 |
public function beforeSave($object)
|
51 |
}
|
52 |
|
53 |
/**
|
|
|
|
|
54 |
* Decrypts the value after load
|
55 |
+
*
|
56 |
+
* @param <type> $object Object
|
|
|
57 |
* @return void
|
58 |
*/
|
59 |
public function afterLoad($object)
|
63 |
$value = $helper->decrypt($object->getData($attributeName));
|
64 |
$object->setData($attributeName, $value);
|
65 |
}
|
66 |
+
}
|
app/code/community/Mage/Debit/Model/Mysql4/Orders.php
ADDED
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* This file is part of the Mage_Debit module.
|
4 |
+
*
|
5 |
+
* PHP version 5
|
6 |
+
*
|
7 |
+
* NOTICE OF LICENSE
|
8 |
+
*
|
9 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
10 |
+
* that is bundled with this package in the file LICENSE.txt.
|
11 |
+
* It is also available through the world-wide-web at this URL:
|
12 |
+
* http://opensource.org/licenses/osl-3.0.php
|
13 |
+
* If you did not receive a copy of the license and are unable to
|
14 |
+
* obtain it through the world-wide-web, please send an email
|
15 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
16 |
+
*
|
17 |
+
* @category Mage
|
18 |
+
* @package Mage_Debit
|
19 |
+
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
20 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
21 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
22 |
+
* @link http://www.magentocommerce.com/extension/676/
|
23 |
+
*/
|
24 |
+
/**
|
25 |
+
* Resource Model for Export Orders
|
26 |
+
*
|
27 |
+
* @category Mage
|
28 |
+
* @package Mage_Debit
|
29 |
+
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
30 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
31 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
32 |
+
* @link http://www.magentocommerce.com/extension/676/
|
33 |
+
*/
|
34 |
+
class Mage_Debit_Model_Mysql4_Orders extends Mage_Core_Model_Mysql4_Abstract
|
35 |
+
{
|
36 |
+
/**
|
37 |
+
* (non-PHPdoc)
|
38 |
+
* @see Mage_Core_Model_Resource_Abstract::_construct()
|
39 |
+
*/
|
40 |
+
protected function _construct()
|
41 |
+
{
|
42 |
+
$this->_init('debit/order_grid', 'id');
|
43 |
+
}
|
44 |
+
}
|
app/code/community/Mage/Debit/Model/Mysql4/Orders/Collection.php
ADDED
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* This file is part of the Mage_Debit module.
|
4 |
+
*
|
5 |
+
* PHP version 5
|
6 |
+
*
|
7 |
+
* NOTICE OF LICENSE
|
8 |
+
*
|
9 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
10 |
+
* that is bundled with this package in the file LICENSE.txt.
|
11 |
+
* It is also available through the world-wide-web at this URL:
|
12 |
+
* http://opensource.org/licenses/osl-3.0.php
|
13 |
+
* If you did not receive a copy of the license and are unable to
|
14 |
+
* obtain it through the world-wide-web, please send an email
|
15 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
16 |
+
*
|
17 |
+
* @category Mage
|
18 |
+
* @package Mage_Debit
|
19 |
+
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
20 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
21 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
22 |
+
* @link http://www.magentocommerce.com/extension/676/
|
23 |
+
*/
|
24 |
+
/**
|
25 |
+
* Resource Model Collection for Export Orders
|
26 |
+
*
|
27 |
+
* @category Mage
|
28 |
+
* @package Mage_Debit
|
29 |
+
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
30 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
31 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
32 |
+
* @link http://www.magentocommerce.com/extension/676/
|
33 |
+
*/
|
34 |
+
class Mage_Debit_Model_Mysql4_Orders_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
|
35 |
+
{
|
36 |
+
/**
|
37 |
+
* (non-PHPdoc)
|
38 |
+
* @see Mage_Core_Model_Resource_Db_Collection_Abstract::_construct()
|
39 |
+
*/
|
40 |
+
protected function _construct()
|
41 |
+
{
|
42 |
+
$this->_init('debit/orders');
|
43 |
+
}
|
44 |
+
}
|
app/code/community/Mage/Debit/Model/Observer.php
CHANGED
@@ -3,9 +3,9 @@
|
|
3 |
* This file is part of the Mage_Debit module.
|
4 |
*
|
5 |
* PHP version 5
|
6 |
-
*
|
7 |
* NOTICE OF LICENSE
|
8 |
-
*
|
9 |
* This source file is subject to the Open Software License (OSL 3.0)
|
10 |
* that is bundled with this package in the file LICENSE.txt.
|
11 |
* It is also available through the world-wide-web at this URL:
|
@@ -17,18 +17,18 @@
|
|
17 |
* @category Mage
|
18 |
* @package Mage_Debit
|
19 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
20 |
-
* @copyright
|
21 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
22 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
23 |
* @link http://www.magentocommerce.com/extension/676/
|
24 |
*/
|
25 |
/**
|
26 |
* Observer
|
27 |
-
*
|
28 |
* @category Mage
|
29 |
* @package Mage_Debit
|
30 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
31 |
-
* @copyright
|
32 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
33 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
34 |
* @link http://www.magentocommerce.com/extension/676/
|
@@ -37,15 +37,13 @@ class Mage_Debit_Model_Observer
|
|
37 |
{
|
38 |
/**
|
39 |
* paymentMethodIsActive
|
40 |
-
*
|
41 |
* Checks if DebitPayment is allowed for specific customer groups and if a
|
42 |
-
* registered customer has the required minimum amount of orders to be
|
43 |
* allowed to order via DebitPayment.
|
44 |
-
*
|
45 |
-
*
|
46 |
-
*
|
47 |
-
* @param Varien_Event_Observer $observer Observer
|
48 |
-
*
|
49 |
* @return void
|
50 |
*/
|
51 |
public function paymentMethodIsActive($observer)
|
@@ -66,11 +64,12 @@ class Mage_Debit_Model_Observer
|
|
66 |
if (!Mage::getStoreConfigFlag('payment/debit/specificgroup_all')) {
|
67 |
$customerGroupId = Mage_Customer_Model_Group::NOT_LOGGED_IN_ID;
|
68 |
if ($session->isLoggedIn()) {
|
69 |
-
$customerGroupId = $session->getCustomerGroupId();
|
70 |
}
|
71 |
$allowedGroupIds = explode(',', Mage::getStoreConfig('payment/debit/specificgroup'));
|
72 |
if (!in_array($customerGroupId, $allowedGroupIds)) {
|
73 |
$observer->getEvent()->getResult()->isAvailable = false;
|
|
|
74 |
return;
|
75 |
}
|
76 |
}
|
@@ -81,6 +80,7 @@ class Mage_Debit_Model_Observer
|
|
81 |
$customerId = $session->getCustomerId();
|
82 |
if (is_null($customerId)) { // not logged in
|
83 |
$observer->getEvent()->getResult()->isAvailable = false;
|
|
|
84 |
return;
|
85 |
}
|
86 |
// Load orders and check
|
@@ -97,21 +97,18 @@ class Mage_Debit_Model_Observer
|
|
97 |
->load();
|
98 |
if (count($orders) < $minOrderCount) {
|
99 |
$observer->getEvent()->getResult()->isAvailable = false;
|
|
|
100 |
return;
|
101 |
}
|
102 |
}
|
103 |
}
|
104 |
|
105 |
/**
|
106 |
-
* saveAccountInfo
|
107 |
-
*
|
108 |
* Saves the account data after a successful order in the specific
|
109 |
* customer model.
|
110 |
-
*
|
111 |
-
*
|
112 |
-
*
|
113 |
-
* @param Varien_Event_Observer $observer Observer
|
114 |
-
*
|
115 |
* @return void
|
116 |
*/
|
117 |
public function saveAccountInfo($observer)
|
@@ -134,12 +131,9 @@ class Mage_Debit_Model_Observer
|
|
134 |
}
|
135 |
|
136 |
/**
|
137 |
-
* _getOrderCustoemr
|
138 |
-
*
|
139 |
* Checks the current order and returns the customer model
|
140 |
-
*
|
141 |
-
* @param
|
142 |
-
*
|
143 |
* @return Mage_Customer_Model_Customer|null Customer model or null
|
144 |
*/
|
145 |
public function _getOrderCustomer($order)
|
@@ -154,6 +148,7 @@ class Mage_Debit_Model_Observer
|
|
154 |
return $customer;
|
155 |
}
|
156 |
}
|
|
|
157 |
return null;
|
158 |
}
|
159 |
-
}
|
3 |
* This file is part of the Mage_Debit module.
|
4 |
*
|
5 |
* PHP version 5
|
6 |
+
*
|
7 |
* NOTICE OF LICENSE
|
8 |
+
*
|
9 |
* This source file is subject to the Open Software License (OSL 3.0)
|
10 |
* that is bundled with this package in the file LICENSE.txt.
|
11 |
* It is also available through the world-wide-web at this URL:
|
17 |
* @category Mage
|
18 |
* @package Mage_Debit
|
19 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
20 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
21 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
22 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
23 |
* @link http://www.magentocommerce.com/extension/676/
|
24 |
*/
|
25 |
/**
|
26 |
* Observer
|
27 |
+
*
|
28 |
* @category Mage
|
29 |
* @package Mage_Debit
|
30 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
31 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
32 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
33 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
34 |
* @link http://www.magentocommerce.com/extension/676/
|
37 |
{
|
38 |
/**
|
39 |
* paymentMethodIsActive
|
40 |
+
*
|
41 |
* Checks if DebitPayment is allowed for specific customer groups and if a
|
42 |
+
* registered customer has the required minimum amount of orders to be
|
43 |
* allowed to order via DebitPayment.
|
44 |
+
*
|
45 |
+
* @magentoEvent payment_method_is_active
|
46 |
+
* @param Varien_Event_Observer $observer Observer
|
|
|
|
|
47 |
* @return void
|
48 |
*/
|
49 |
public function paymentMethodIsActive($observer)
|
64 |
if (!Mage::getStoreConfigFlag('payment/debit/specificgroup_all')) {
|
65 |
$customerGroupId = Mage_Customer_Model_Group::NOT_LOGGED_IN_ID;
|
66 |
if ($session->isLoggedIn()) {
|
67 |
+
$customerGroupId = $session->getCustomerGroupId();
|
68 |
}
|
69 |
$allowedGroupIds = explode(',', Mage::getStoreConfig('payment/debit/specificgroup'));
|
70 |
if (!in_array($customerGroupId, $allowedGroupIds)) {
|
71 |
$observer->getEvent()->getResult()->isAvailable = false;
|
72 |
+
|
73 |
return;
|
74 |
}
|
75 |
}
|
80 |
$customerId = $session->getCustomerId();
|
81 |
if (is_null($customerId)) { // not logged in
|
82 |
$observer->getEvent()->getResult()->isAvailable = false;
|
83 |
+
|
84 |
return;
|
85 |
}
|
86 |
// Load orders and check
|
97 |
->load();
|
98 |
if (count($orders) < $minOrderCount) {
|
99 |
$observer->getEvent()->getResult()->isAvailable = false;
|
100 |
+
|
101 |
return;
|
102 |
}
|
103 |
}
|
104 |
}
|
105 |
|
106 |
/**
|
|
|
|
|
107 |
* Saves the account data after a successful order in the specific
|
108 |
* customer model.
|
109 |
+
*
|
110 |
+
* @magentoEvent sales_order_save_after
|
111 |
+
* @param Varien_Event_Observer $observer Observer
|
|
|
|
|
112 |
* @return void
|
113 |
*/
|
114 |
public function saveAccountInfo($observer)
|
131 |
}
|
132 |
|
133 |
/**
|
|
|
|
|
134 |
* Checks the current order and returns the customer model
|
135 |
+
*
|
136 |
+
* @param Mage_Sales_Model_Order $order Current order
|
|
|
137 |
* @return Mage_Customer_Model_Customer|null Customer model or null
|
138 |
*/
|
139 |
public function _getOrderCustomer($order)
|
148 |
return $customer;
|
149 |
}
|
150 |
}
|
151 |
+
|
152 |
return null;
|
153 |
}
|
154 |
+
}
|
app/code/community/Mage/Debit/Model/Orders.php
ADDED
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* This file is part of the Mage_Debit module.
|
4 |
+
*
|
5 |
+
* PHP version 5
|
6 |
+
*
|
7 |
+
* NOTICE OF LICENSE
|
8 |
+
*
|
9 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
10 |
+
* that is bundled with this package in the file LICENSE.txt.
|
11 |
+
* It is also available through the world-wide-web at this URL:
|
12 |
+
* http://opensource.org/licenses/osl-3.0.php
|
13 |
+
* If you did not receive a copy of the license and are unable to
|
14 |
+
* obtain it through the world-wide-web, please send an email
|
15 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
16 |
+
*
|
17 |
+
* @category Mage
|
18 |
+
* @package Mage_Debit
|
19 |
+
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
20 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
21 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
22 |
+
* @link http://www.magentocommerce.com/extension/676/
|
23 |
+
*/
|
24 |
+
/**
|
25 |
+
* Model for Export Orders
|
26 |
+
*
|
27 |
+
* @category Mage
|
28 |
+
* @package Mage_Debit
|
29 |
+
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
30 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
31 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
32 |
+
* @link http://www.magentocommerce.com/extension/676/
|
33 |
+
*/
|
34 |
+
class Mage_Debit_Model_Orders extends Mage_Core_Model_Abstract
|
35 |
+
{
|
36 |
+
/**
|
37 |
+
* (non-PHPdoc)
|
38 |
+
* @see Varien_Object::_construct()
|
39 |
+
*/
|
40 |
+
protected function _construct()
|
41 |
+
{
|
42 |
+
$this->_init('debit/orders');
|
43 |
+
}
|
44 |
+
}
|
app/code/community/Mage/Debit/Model/System/Config/Source/Customer/Group.php
CHANGED
@@ -3,9 +3,9 @@
|
|
3 |
* This file is part of the Mage_Debit module.
|
4 |
*
|
5 |
* PHP version 5
|
6 |
-
*
|
7 |
* NOTICE OF LICENSE
|
8 |
-
*
|
9 |
* This source file is subject to the Open Software License (OSL 3.0)
|
10 |
* that is bundled with this package in the file LICENSE.txt.
|
11 |
* It is also available through the world-wide-web at this URL:
|
@@ -17,31 +17,31 @@
|
|
17 |
* @category Mage
|
18 |
* @package Mage_Debit
|
19 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
20 |
-
* @copyright
|
21 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
22 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
23 |
* @link http://www.magentocommerce.com/extension/676/
|
24 |
*/
|
25 |
/**
|
26 |
* System Config Customer Groups
|
27 |
-
*
|
28 |
* @category Mage
|
29 |
* @package Mage_Debit
|
30 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
31 |
-
* @copyright
|
32 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
33 |
* @link http://www.magentocommerce.com/extension/676/
|
34 |
*/
|
35 |
class Mage_Debit_Model_System_Config_Source_Customer_Group
|
36 |
{
|
37 |
-
/**
|
38 |
* @var array Customer Groups
|
39 |
*/
|
40 |
protected $_options;
|
41 |
|
42 |
/**
|
43 |
* Returns the customer groups as an array for system configuration
|
44 |
-
*
|
45 |
* @return array Customer Groups
|
46 |
*/
|
47 |
public function toOptionArray()
|
@@ -60,6 +60,7 @@ class Mage_Debit_Model_System_Config_Source_Customer_Group
|
|
60 |
)
|
61 |
);
|
62 |
}
|
|
|
63 |
return $this->_options;
|
64 |
}
|
65 |
}
|
3 |
* This file is part of the Mage_Debit module.
|
4 |
*
|
5 |
* PHP version 5
|
6 |
+
*
|
7 |
* NOTICE OF LICENSE
|
8 |
+
*
|
9 |
* This source file is subject to the Open Software License (OSL 3.0)
|
10 |
* that is bundled with this package in the file LICENSE.txt.
|
11 |
* It is also available through the world-wide-web at this URL:
|
17 |
* @category Mage
|
18 |
* @package Mage_Debit
|
19 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
20 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
21 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
22 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
23 |
* @link http://www.magentocommerce.com/extension/676/
|
24 |
*/
|
25 |
/**
|
26 |
* System Config Customer Groups
|
27 |
+
*
|
28 |
* @category Mage
|
29 |
* @package Mage_Debit
|
30 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
31 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
32 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
33 |
* @link http://www.magentocommerce.com/extension/676/
|
34 |
*/
|
35 |
class Mage_Debit_Model_System_Config_Source_Customer_Group
|
36 |
{
|
37 |
+
/**
|
38 |
* @var array Customer Groups
|
39 |
*/
|
40 |
protected $_options;
|
41 |
|
42 |
/**
|
43 |
* Returns the customer groups as an array for system configuration
|
44 |
+
*
|
45 |
* @return array Customer Groups
|
46 |
*/
|
47 |
public function toOptionArray()
|
60 |
)
|
61 |
);
|
62 |
}
|
63 |
+
|
64 |
return $this->_options;
|
65 |
}
|
66 |
}
|
app/code/community/Mage/Debit/controllers/AccountController.php
CHANGED
@@ -3,9 +3,9 @@
|
|
3 |
* This file is part of the Mage_Debit module.
|
4 |
*
|
5 |
* PHP version 5
|
6 |
-
*
|
7 |
* NOTICE OF LICENSE
|
8 |
-
*
|
9 |
* This source file is subject to the Open Software License (OSL 3.0)
|
10 |
* that is bundled with this package in the file LICENSE.txt.
|
11 |
* It is also available through the world-wide-web at this URL:
|
@@ -17,18 +17,18 @@
|
|
17 |
* @category Mage
|
18 |
* @package Mage_Debit
|
19 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
20 |
-
* @copyright
|
21 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
22 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
23 |
* @link http://www.magentocommerce.com/extension/676/
|
24 |
*/
|
25 |
/**
|
26 |
* AccountController
|
27 |
-
*
|
28 |
* @category Mage
|
29 |
* @package Mage_Debit
|
30 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
31 |
-
* @copyright
|
32 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
33 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
34 |
* @link http://www.magentocommerce.com/extension/676/
|
@@ -36,8 +36,6 @@
|
|
36 |
class Mage_Debit_AccountController extends Mage_Core_Controller_Front_Action
|
37 |
{
|
38 |
/**
|
39 |
-
* _getSession
|
40 |
-
*
|
41 |
* Retrieve customer session object
|
42 |
*
|
43 |
* @return Mage_Customer_Model_Session
|
@@ -49,7 +47,7 @@ class Mage_Debit_AccountController extends Mage_Core_Controller_Front_Action
|
|
49 |
|
50 |
/**
|
51 |
* preDispatch
|
52 |
-
*
|
53 |
* @return void
|
54 |
*/
|
55 |
public function preDispatch()
|
@@ -63,7 +61,7 @@ class Mage_Debit_AccountController extends Mage_Core_Controller_Front_Action
|
|
63 |
|
64 |
/**
|
65 |
* editAction
|
66 |
-
*
|
67 |
* @return void
|
68 |
*/
|
69 |
public function editAction()
|
@@ -75,10 +73,9 @@ class Mage_Debit_AccountController extends Mage_Core_Controller_Front_Action
|
|
75 |
|
76 |
/**
|
77 |
* saveAction
|
78 |
-
*
|
79 |
* @throws Mage_Core_Exception
|
80 |
* @throws Exception
|
81 |
-
*
|
82 |
* @return void
|
83 |
*/
|
84 |
public function saveAction()
|
@@ -99,15 +96,14 @@ class Mage_Debit_AccountController extends Mage_Core_Controller_Front_Action
|
|
99 |
$this->_getSession()->setCustomer($customer)
|
100 |
->addSuccess($this->__('Debit account information was successfully saved'));
|
101 |
$this->_redirect('customer/account');
|
|
|
102 |
return;
|
103 |
-
}
|
104 |
-
catch (Mage_Core_Exception $e) {
|
105 |
$this->_getSession()->setCustomerFormData($this->getRequest()->getPost())
|
106 |
->addError($e->getMessage());
|
107 |
-
}
|
108 |
-
catch (Exception $e) {
|
109 |
$this->_getSession()->setCustomerFormData($this->getRequest()->getPost())
|
110 |
->addException($e, $this->__('Can\'t save customer'));
|
111 |
}
|
112 |
}
|
113 |
-
}
|
3 |
* This file is part of the Mage_Debit module.
|
4 |
*
|
5 |
* PHP version 5
|
6 |
+
*
|
7 |
* NOTICE OF LICENSE
|
8 |
+
*
|
9 |
* This source file is subject to the Open Software License (OSL 3.0)
|
10 |
* that is bundled with this package in the file LICENSE.txt.
|
11 |
* It is also available through the world-wide-web at this URL:
|
17 |
* @category Mage
|
18 |
* @package Mage_Debit
|
19 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
20 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
21 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
22 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
23 |
* @link http://www.magentocommerce.com/extension/676/
|
24 |
*/
|
25 |
/**
|
26 |
* AccountController
|
27 |
+
*
|
28 |
* @category Mage
|
29 |
* @package Mage_Debit
|
30 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
31 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
32 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
33 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
34 |
* @link http://www.magentocommerce.com/extension/676/
|
36 |
class Mage_Debit_AccountController extends Mage_Core_Controller_Front_Action
|
37 |
{
|
38 |
/**
|
|
|
|
|
39 |
* Retrieve customer session object
|
40 |
*
|
41 |
* @return Mage_Customer_Model_Session
|
47 |
|
48 |
/**
|
49 |
* preDispatch
|
50 |
+
*
|
51 |
* @return void
|
52 |
*/
|
53 |
public function preDispatch()
|
61 |
|
62 |
/**
|
63 |
* editAction
|
64 |
+
*
|
65 |
* @return void
|
66 |
*/
|
67 |
public function editAction()
|
73 |
|
74 |
/**
|
75 |
* saveAction
|
76 |
+
*
|
77 |
* @throws Mage_Core_Exception
|
78 |
* @throws Exception
|
|
|
79 |
* @return void
|
80 |
*/
|
81 |
public function saveAction()
|
96 |
$this->_getSession()->setCustomer($customer)
|
97 |
->addSuccess($this->__('Debit account information was successfully saved'));
|
98 |
$this->_redirect('customer/account');
|
99 |
+
|
100 |
return;
|
101 |
+
} catch (Mage_Core_Exception $e) {
|
|
|
102 |
$this->_getSession()->setCustomerFormData($this->getRequest()->getPost())
|
103 |
->addError($e->getMessage());
|
104 |
+
} catch (Exception $e) {
|
|
|
105 |
$this->_getSession()->setCustomerFormData($this->getRequest()->getPost())
|
106 |
->addException($e, $this->__('Can\'t save customer'));
|
107 |
}
|
108 |
}
|
109 |
+
}
|
app/code/community/Mage/Debit/controllers/Adminhtml/OrderController.php
ADDED
@@ -0,0 +1,226 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* This file is part of the Mage_Debit module.
|
4 |
+
*
|
5 |
+
* PHP version 5
|
6 |
+
*
|
7 |
+
* NOTICE OF LICENSE
|
8 |
+
*
|
9 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
10 |
+
* that is bundled with this package in the file LICENSE.txt.
|
11 |
+
* It is also available through the world-wide-web at this URL:
|
12 |
+
* http://opensource.org/licenses/osl-3.0.php
|
13 |
+
* If you did not receive a copy of the license and are unable to
|
14 |
+
* obtain it through the world-wide-web, please send an email
|
15 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
16 |
+
*
|
17 |
+
* @category Mage
|
18 |
+
* @package Mage_Debit
|
19 |
+
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
20 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
21 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
22 |
+
* @link http://www.magentocommerce.com/extension/676/
|
23 |
+
*/
|
24 |
+
require_once (Mage::getBaseDir().'/lib/DTA/DTA.php');
|
25 |
+
/**
|
26 |
+
* Export Order Controller
|
27 |
+
*
|
28 |
+
* @category Mage
|
29 |
+
* @package Mage_Debit
|
30 |
+
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
31 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
32 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
33 |
+
* @link http://www.magentocommerce.com/extension/676/
|
34 |
+
*/
|
35 |
+
class Mage_Debit_Adminhtml_OrderController extends Mage_Adminhtml_Controller_Action
|
36 |
+
{
|
37 |
+
/**
|
38 |
+
* Loads the grid layout with the debit payment orders..
|
39 |
+
*
|
40 |
+
* @return void
|
41 |
+
*/
|
42 |
+
public function indexAction()
|
43 |
+
{
|
44 |
+
$this->loadLayout();
|
45 |
+
$this->_setActiveMenu('sales/debitpayment');
|
46 |
+
$this->renderLayout();
|
47 |
+
}
|
48 |
+
|
49 |
+
/**
|
50 |
+
* Fetch all orders with the payment method "Debit Payment" and import them
|
51 |
+
* into the export list (table: debit_order_grid)
|
52 |
+
*
|
53 |
+
* @return void
|
54 |
+
*/
|
55 |
+
public function syncAction()
|
56 |
+
{
|
57 |
+
$syncedOrders = $this->_getDebitHelper()->getSyncedOrders();
|
58 |
+
$syncedOrdersCount = 0;
|
59 |
+
|
60 |
+
// Sync orders
|
61 |
+
$collection = Mage::getResourceModel('sales/order_grid_collection');
|
62 |
+
if (count($syncedOrders) > 0) {
|
63 |
+
$collection->addFieldToFilter('entity_id', array('nin' => $syncedOrders));
|
64 |
+
}
|
65 |
+
$collection->getSelect()->joinLeft('sales_flat_order', 'sales_flat_order.entity_id = main_table.entity_id', array('customer_id'));
|
66 |
+
$collection->getSelect()->joinLeft('sales_flat_order_payment', 'sales_flat_order_payment.parent_id = main_table.entity_id', array('method'));
|
67 |
+
$collection->getSelect()->where('method = ?', 'debit');
|
68 |
+
|
69 |
+
foreach ($collection as $order) {
|
70 |
+
/* @var $order Mage_Sales_Model_Order */
|
71 |
+
|
72 |
+
// Remove some values from the data array
|
73 |
+
$unsetData = array('status', 'base_grand_total', 'base_total_paid', 'total_paid', 'updated_at', 'method', 'shipping_name', 'base_currency_code', 'store_name');
|
74 |
+
foreach ($unsetData as $key) {
|
75 |
+
$order->unsetData($key);
|
76 |
+
}
|
77 |
+
|
78 |
+
/* @var $model Mage_Debit_Model_Orders */
|
79 |
+
$model = Mage::getModel('debit/orders');
|
80 |
+
$model->addData($order->getData());
|
81 |
+
$model->save();
|
82 |
+
|
83 |
+
$syncedOrdersCount++;
|
84 |
+
}
|
85 |
+
|
86 |
+
if ($syncedOrdersCount > 0) {
|
87 |
+
$this->_getSession()->addSuccess(
|
88 |
+
$this->_getDebitHelper()->__('Orders successfully synced for export.')
|
89 |
+
);
|
90 |
+
} else {
|
91 |
+
$this->_getSession()->addError(
|
92 |
+
$this->_getDebitHelper()->__('No orders available for sync.')
|
93 |
+
);
|
94 |
+
}
|
95 |
+
$this->_redirect('*/*');
|
96 |
+
}
|
97 |
+
|
98 |
+
/**
|
99 |
+
* Export the order list as DTA file
|
100 |
+
*
|
101 |
+
* @return void|Mage_Core_Controller_Varien_Action
|
102 |
+
*/
|
103 |
+
public function exportdtausAction()
|
104 |
+
{
|
105 |
+
$collection = $this->_hasOrdersToExport();
|
106 |
+
if (!$collection) {
|
107 |
+
$this->_redirect('*/*');
|
108 |
+
|
109 |
+
return;
|
110 |
+
}
|
111 |
+
|
112 |
+
// Create new object and set store owner bank account data
|
113 |
+
$file = new DTA(DTA_DEBIT);
|
114 |
+
$file->setAccountFileSender($this->_getDebitHelper()->getBankAccount());
|
115 |
+
|
116 |
+
// Add orders
|
117 |
+
foreach ($collection as $order) {
|
118 |
+
/* @var $orderModel Mage_Sales_Model_Order */
|
119 |
+
$orderModel = Mage::getModel('sales/order')->load($order->getData('entity_id'));
|
120 |
+
/* @var $payment Mage_Debit_Model_Debit */
|
121 |
+
$paymentMethod = $orderModel->getPayment()->getMethodInstance();
|
122 |
+
|
123 |
+
$file->addExchange(
|
124 |
+
array(
|
125 |
+
'name' => $paymentMethod->getAccountName(),
|
126 |
+
'bank_code' => $paymentMethod->getAccountBLZ(),
|
127 |
+
'account_number' => $paymentMethod->getAccountNumber(),
|
128 |
+
),
|
129 |
+
round($order->getData('grand_total'), 2),
|
130 |
+
array(
|
131 |
+
'Bestellung Nr. '.$order->getData('increment_id')
|
132 |
+
)
|
133 |
+
);
|
134 |
+
|
135 |
+
$this->_getDebitHelper()->setStatusAsExported($order->getId());
|
136 |
+
}
|
137 |
+
|
138 |
+
return $this->_prepareDownloadResponse('EXPORT'.date('YmdHis'), $file->getFileContent());
|
139 |
+
}
|
140 |
+
|
141 |
+
/**
|
142 |
+
* Export the order list as CSV
|
143 |
+
*
|
144 |
+
* @return void|Mage_Core_Controller_Varien_Action
|
145 |
+
*/
|
146 |
+
public function exportcsvAction()
|
147 |
+
{
|
148 |
+
$collection = $this->_hasOrdersToExport();
|
149 |
+
if (!$collection) {
|
150 |
+
$this->_redirect('*/*');
|
151 |
+
|
152 |
+
return;
|
153 |
+
}
|
154 |
+
|
155 |
+
$fileName = 'EXPORT'.date('YmdHis').'.csv';
|
156 |
+
|
157 |
+
// Open file
|
158 |
+
$io = new Varien_Io_File();
|
159 |
+
$io->open(array('path' => Mage::getBaseDir('var')));
|
160 |
+
$io->streamOpen($fileName);
|
161 |
+
|
162 |
+
// Add headline
|
163 |
+
$row = array(
|
164 |
+
'Kundenname',
|
165 |
+
'BLZ',
|
166 |
+
'Kontonummer',
|
167 |
+
'Betrag',
|
168 |
+
'Verwendungszweck'
|
169 |
+
);
|
170 |
+
$io->streamWriteCsv($row);
|
171 |
+
|
172 |
+
// Add rows
|
173 |
+
foreach ($collection as $order) {
|
174 |
+
/* @var $orderModel Mage_Sales_Model_Order */
|
175 |
+
$orderModel = Mage::getModel('sales/order')->load($order->getData('entity_id'));
|
176 |
+
/* @var $payment Mage_Debit_Model_Debit */
|
177 |
+
$paymentMethod = $orderModel->getPayment()->getMethodInstance();
|
178 |
+
|
179 |
+
$row = array(
|
180 |
+
'name' => $paymentMethod->getAccountName(),
|
181 |
+
'bank_code' => $paymentMethod->getAccountBLZ(),
|
182 |
+
'account_number' => $paymentMethod->getAccountNumber(),
|
183 |
+
'amount' => number_format($order->getData('grand_total'), 2, ',', '.').' '.$order->getData('order_currency_code'),
|
184 |
+
'purpose' => 'Bestellung Nr. '.$order->getData('increment_id')
|
185 |
+
);
|
186 |
+
$io->streamWriteCsv($row);
|
187 |
+
|
188 |
+
$this->_getDebitHelper()->setStatusAsExported($order->getId());
|
189 |
+
}
|
190 |
+
|
191 |
+
// Close file, get file contents and delete temporary file
|
192 |
+
$io->close();
|
193 |
+
$filePath = Mage::getBaseDir('var') . DS . $fileName;
|
194 |
+
$fileContents = file_get_contents($filePath);
|
195 |
+
$io->rm($fileName);
|
196 |
+
|
197 |
+
return $this->_prepareDownloadResponse($fileName, $fileContents);
|
198 |
+
}
|
199 |
+
|
200 |
+
/**
|
201 |
+
* Check if there are orders available for export..
|
202 |
+
*
|
203 |
+
* @return void
|
204 |
+
*/
|
205 |
+
protected function _hasOrdersToExport()
|
206 |
+
{
|
207 |
+
$collection = Mage::getModel('debit/orders')->getCollection()->addFieldToFilter('status', 0);
|
208 |
+
if ($collection->count() == 0) {
|
209 |
+
$this->_getSession()->addError($this->_getDebitHelper()->__('No orders to export.'));
|
210 |
+
|
211 |
+
return false;
|
212 |
+
}
|
213 |
+
|
214 |
+
return $collection;
|
215 |
+
}
|
216 |
+
|
217 |
+
/**
|
218 |
+
* Retrieve the helper class
|
219 |
+
*
|
220 |
+
* @return Mage_Debit_Helper_Adminhtml Helper
|
221 |
+
*/
|
222 |
+
protected function _getDebitHelper()
|
223 |
+
{
|
224 |
+
return Mage::helper('debit/adminhtml');
|
225 |
+
}
|
226 |
+
}
|
app/code/community/Mage/Debit/controllers/AjaxController.php
CHANGED
@@ -3,9 +3,9 @@
|
|
3 |
* This file is part of the Mage_Debit module.
|
4 |
*
|
5 |
* PHP version 5
|
6 |
-
*
|
7 |
* NOTICE OF LICENSE
|
8 |
-
*
|
9 |
* This source file is subject to the Open Software License (OSL 3.0)
|
10 |
* that is bundled with this package in the file LICENSE.txt.
|
11 |
* It is also available through the world-wide-web at this URL:
|
@@ -17,18 +17,18 @@
|
|
17 |
* @category Mage
|
18 |
* @package Mage_Debit
|
19 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
20 |
-
* @copyright
|
21 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
22 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
23 |
* @link http://www.magentocommerce.com/extension/676/
|
24 |
*/
|
25 |
/**
|
26 |
* AjaxController
|
27 |
-
*
|
28 |
* @category Mage
|
29 |
* @package Mage_Debit
|
30 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
31 |
-
* @copyright
|
32 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
33 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
34 |
* @link http://www.magentocommerce.com/extension/676/
|
@@ -36,10 +36,8 @@
|
|
36 |
class Mage_Debit_AjaxController extends Mage_Core_Controller_Front_Action
|
37 |
{
|
38 |
/**
|
39 |
-
* checkblzAction
|
40 |
-
*
|
41 |
* Checks the BLZ if it exists and returns the bankname or an error message
|
42 |
-
*
|
43 |
* @return void
|
44 |
*/
|
45 |
public function checkblzAction()
|
@@ -58,4 +56,4 @@ class Mage_Debit_AjaxController extends Mage_Core_Controller_Front_Action
|
|
58 |
}
|
59 |
$this->getResponse()->setBody(Zend_Json::encode($result));
|
60 |
}
|
61 |
-
}
|
3 |
* This file is part of the Mage_Debit module.
|
4 |
*
|
5 |
* PHP version 5
|
6 |
+
*
|
7 |
* NOTICE OF LICENSE
|
8 |
+
*
|
9 |
* This source file is subject to the Open Software License (OSL 3.0)
|
10 |
* that is bundled with this package in the file LICENSE.txt.
|
11 |
* It is also available through the world-wide-web at this URL:
|
17 |
* @category Mage
|
18 |
* @package Mage_Debit
|
19 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
20 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
21 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
22 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
23 |
* @link http://www.magentocommerce.com/extension/676/
|
24 |
*/
|
25 |
/**
|
26 |
* AjaxController
|
27 |
+
*
|
28 |
* @category Mage
|
29 |
* @package Mage_Debit
|
30 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
31 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
32 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
33 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
34 |
* @link http://www.magentocommerce.com/extension/676/
|
36 |
class Mage_Debit_AjaxController extends Mage_Core_Controller_Front_Action
|
37 |
{
|
38 |
/**
|
|
|
|
|
39 |
* Checks the BLZ if it exists and returns the bankname or an error message
|
40 |
+
*
|
41 |
* @return void
|
42 |
*/
|
43 |
public function checkblzAction()
|
56 |
}
|
57 |
$this->getResponse()->setBody(Zend_Json::encode($result));
|
58 |
}
|
59 |
+
}
|
app/code/community/Mage/Debit/etc/adminhtml.xml
ADDED
@@ -0,0 +1,55 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<!--
|
3 |
+
/**
|
4 |
+
* This file is part of the Mage_Debit module.
|
5 |
+
*
|
6 |
+
* NOTICE OF LICENSE
|
7 |
+
*
|
8 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
9 |
+
* that is bundled with this package in the file LICENSE.txt.
|
10 |
+
* It is also available through the world-wide-web at this URL:
|
11 |
+
* http://opensource.org/licenses/osl-3.0.php
|
12 |
+
* If you did not receive a copy of the license and are unable to
|
13 |
+
* obtain it through the world-wide-web, please send an email
|
14 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
15 |
+
*
|
16 |
+
* @category Mage
|
17 |
+
* @package Mage_Debit
|
18 |
+
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
19 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
20 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
21 |
+
* @link http://www.magentocommerce.com/extension/676/
|
22 |
+
*/
|
23 |
+
-->
|
24 |
+
<config>
|
25 |
+
<menu>
|
26 |
+
<sales>
|
27 |
+
<children>
|
28 |
+
<debitpayment translate="title" module="debit">
|
29 |
+
<title>Debit Payment Orders</title>
|
30 |
+
<action>debit/adminhtml_order</action>
|
31 |
+
<sort_order>11</sort_order>
|
32 |
+
</debitpayment>
|
33 |
+
</children>
|
34 |
+
</sales>
|
35 |
+
</menu>
|
36 |
+
<acl>
|
37 |
+
<resources>
|
38 |
+
<admin>
|
39 |
+
<children>
|
40 |
+
<system>
|
41 |
+
<children>
|
42 |
+
<config>
|
43 |
+
<children>
|
44 |
+
<debitpayment translate="title" module="debit">
|
45 |
+
<title>Debit Payment</title>
|
46 |
+
</debitpayment>
|
47 |
+
</children>
|
48 |
+
</config>
|
49 |
+
</children>
|
50 |
+
</system>
|
51 |
+
</children>
|
52 |
+
</admin>
|
53 |
+
</resources>
|
54 |
+
</acl>
|
55 |
+
</config>
|
app/code/community/Mage/Debit/etc/bankleitzahlen.csv
CHANGED
@@ -14,8 +14,9 @@
|
|
14 |
10030500;Bankhaus Löbbecke Berlin
|
15 |
10030600;North Channel Bank Mainz
|
16 |
10030700;Gries & Heissel Wiesbaden
|
17 |
-
10033300;Santander
|
18 |
10040000;Commerzbank -West- Berlin
|
|
|
19 |
10040048;Commerzbank BER GF-B48
|
20 |
10040060;Commerzbank Gf 160 Berlin
|
21 |
10040061;Commerzbank Gf 161 Berlin
|
@@ -66,9 +67,9 @@
|
|
66 |
10120760;UniCredit exHypo Ndl260 Bln
|
67 |
10120800;VON ESSEN Bank
|
68 |
10120900;readybank
|
69 |
-
10120999;readybank Gf GAA Berlin
|
70 |
10130600;Isbank Berlin
|
71 |
10130800;BIW Bank
|
|
|
72 |
10310600;Tradegate Berlin
|
73 |
12016836;KfW Berlin
|
74 |
12030000;Deutsche Kreditbank Berlin
|
@@ -78,15 +79,16 @@
|
|
78 |
12060000;DZ BANK
|
79 |
12070000;Deutsche Bank Ld Brandenbg
|
80 |
12070024;Deutsche Bank PGK Brandenbg
|
|
|
|
|
81 |
12080000;Commerzbank Fil II Berlin
|
82 |
12090640;apoBank -ZV-Ost- Berlin
|
83 |
12096597;Sparda-Bank Berlin
|
84 |
13000000;BBk Rostock
|
85 |
13010111;SEB Rostock
|
86 |
-
13020780;UniCredit ex-Hypo Rostock
|
87 |
13040000;Commerzbank Rostock
|
88 |
13050000;Ostseesparkasse Rostock
|
89 |
-
13051042;
|
90 |
13061008;Volksbank Wolgast
|
91 |
13061028;Volksbank Raiffeisenbank
|
92 |
13061078;VB u Raiffbk
|
@@ -144,14 +146,13 @@
|
|
144 |
17040000;Commerzbank Frankfurt Oder
|
145 |
17052000;Sparkasse Barnim Eberswalde
|
146 |
17052302;St Spk Schwedt
|
147 |
-
17052472;St Spk Frankfurt Oder
|
148 |
17054040;Spk Märkisch-Oderland
|
149 |
17055050;Sparkasse Oder-Spree
|
150 |
17056060;Spk Uckermark Prenzlau
|
151 |
17062428;Raiff-VB Oder-Spree Beeskow
|
152 |
17080000;Commerzbank Frankfurt, O
|
153 |
17092404;VR Bank Fürstenwalde
|
154 |
-
18000000;BBk Cottbus
|
155 |
18020086;UniCredit Bank-HypoVereinbk
|
156 |
18040000;Commerzbank Cottbus
|
157 |
18050000;Sparkasse Spree-Neiße
|
@@ -162,22 +163,21 @@
|
|
162 |
18080000;Commerzbank Cottbus
|
163 |
18092684;Spreewaldbank Lübben
|
164 |
18092744;Volksbank Spree-Neiße
|
165 |
-
18092794;VR Bank Cottbus -alt-
|
166 |
20000000;BBk Hamburg
|
167 |
20010020;Postbank -Giro- Hamburg
|
168 |
20010111;SEB Hamburg
|
169 |
20010424;Aareal Bank
|
170 |
20020200;SEB Merchant Bank Hamburg
|
171 |
20020500;Jyske Bank Hamburg
|
172 |
-
20020860;UniCredit ex-Hypo Hamburg
|
173 |
20020900;Signal Iduna Bauspar
|
174 |
20030000;UniCredit Bank-HypoVereinbk
|
175 |
-
20030300;
|
176 |
20030400;Marcardbank Hamburg
|
177 |
20030600;Sydbank Hamburg
|
178 |
20030700;Merck Finck & Co Hamburg
|
179 |
20030900;Wölbernbank Hamburg
|
180 |
20040000;Commerzbank Hamburg
|
|
|
181 |
20040040;Commerzbank GF RME, Hamburg
|
182 |
20040048;Commerzbank HBG GF-H48
|
183 |
20040050;Commerzbank GF COC
|
@@ -196,7 +196,7 @@
|
|
196 |
20069125;Kaltenkirchener Bank
|
197 |
20069130;Raiffbk
|
198 |
20069144;Raiffeisenbank Seestermühe
|
199 |
-
20069177;Raiffbk Südstormarn
|
200 |
20069232;Raiffbk Struvenhütten
|
201 |
20069625;Volksbank Gnarrenburg
|
202 |
20069641;Raiffeisenbank Owschlag
|
@@ -234,7 +234,7 @@
|
|
234 |
20090745;EBANK Gf Cash Hamburg
|
235 |
20090900;PSD Bank Nord Hamburg
|
236 |
20110022;Postbank -Spar- Hamburg
|
237 |
-
20110401;
|
238 |
20110700;Tokyo-Mitsubishi UFJ Hambg
|
239 |
20110800;Bank of China Hamburg
|
240 |
20120000;Berenbergbank
|
@@ -249,7 +249,7 @@
|
|
249 |
20130400;GRENKE BANK
|
250 |
20130412;GRENKE BANK Hamburg
|
251 |
20130600;Barclaycard
|
252 |
-
20133300;Santander
|
253 |
20190003;Hamburger Volksbank
|
254 |
20190109;VB Stormarn
|
255 |
20190206;VB Hamburg Ost-West -alt-
|
@@ -257,7 +257,7 @@
|
|
257 |
20190800;MKB Hamburg
|
258 |
20210200;Bank Melli Iran Hamburg
|
259 |
20210300;Bank Saderat Iran Hamburg
|
260 |
-
20220100;
|
261 |
20220400;M.M. Warburg Hyp Hamburg
|
262 |
20230300;Schröderbank Hamburg
|
263 |
20230600;Isbank Hamburg
|
@@ -343,13 +343,12 @@
|
|
343 |
21230086;UniCredit Bk ex VereinWest
|
344 |
21240040;Commerzbank Neumünster
|
345 |
21241540;Commerzbank Bad Bramstedt
|
346 |
-
21250000;St Spk Neumünster -alt-
|
347 |
21261089;Raiffeisenbank Wasbek -alt-
|
348 |
21261227;Raiffbk Kl-Kummerfeld -alt-
|
349 |
21270020;Deutsche Bank Neumünster
|
350 |
21270024;Deutsche Bank PGK Neumünste
|
351 |
21280002;Commerzbank Neumünster
|
352 |
-
21290016;
|
353 |
21340010;Commerzbank Neustadt Holst
|
354 |
21352240;Spk Holstein Eutin
|
355 |
21390008;VR Bk Ostholstein Nord-Plön
|
@@ -363,13 +362,12 @@
|
|
363 |
21463603;VB-Raiffbk i Kr Rendsburg
|
364 |
21464671;Raiffbk Todenbüttel
|
365 |
21480003;Commerzbank Rendsburg
|
366 |
-
21500000;BBk Flensburg
|
367 |
21510600;Sydbank Fil. Flensburg
|
368 |
21520100;Union-Bank Flensburg
|
369 |
21530080;UniCredit Bk ex VereinWest
|
370 |
21540060;Commerzbank Flensburg
|
371 |
21550050;Nord-Ostsee Spk Flensburg
|
372 |
-
21563321;Raiffbk Flensburg -alt-
|
373 |
21565316;Raiffbk Handewitt
|
374 |
21566356;Volks- u Raiffeisenbank
|
375 |
21567360;Raiffbk Kleinjörl -alt-
|
@@ -395,7 +393,7 @@
|
|
395 |
21741825;Commerzbank Westerland
|
396 |
21750000;Nord-Ostsee Spk Schleswig
|
397 |
21751230;Spk Bredstedt
|
398 |
-
21762550;Volksbank
|
399 |
21763542;VR Bank Niebüll
|
400 |
21770011;Deutsche Bank Husum Nordsee
|
401 |
21770024;Deutsche Bank PGK Husum
|
@@ -419,7 +417,6 @@
|
|
419 |
22141428;Commerzbank Pinneberg
|
420 |
22141628;Commerzbank Uetersen
|
421 |
22150000;Spk Elmshorn
|
422 |
-
22151410;Kr Spk Pinneberg -alt-
|
423 |
22151730;St Spk Wedel
|
424 |
22163114;Raiffbk Elbmarsch Heist
|
425 |
22180000;Commerzbank Elmshorn
|
@@ -449,7 +446,7 @@
|
|
449 |
23052750;Kr Spk Herzogtum Lauenburg
|
450 |
23061220;Raiffeisenbank Leezen
|
451 |
23062124;Raiffeisenbank Bargteheide
|
452 |
-
23062807;Volks- u Raiffbk Mölln
|
453 |
23063129;Raiffeisenbank Lauenburg
|
454 |
23064107;Raiffeisenbank Büchen
|
455 |
23070700;Deutsche Bank PGK Lübeck
|
@@ -463,7 +460,7 @@
|
|
463 |
24030000;UniCredit Bk ex VereinWest
|
464 |
24040000;Commerzbank Lüneburg
|
465 |
24050110;Spk Lüneburg
|
466 |
-
24060300;VB
|
467 |
24061392;VB Bleckede-Dahlenbg -alt-
|
468 |
24070024;Deutsche Bank PGK Lüneburg
|
469 |
24070075;Deutsche Bank Lüneburg
|
@@ -510,7 +507,6 @@
|
|
510 |
25069370;VB Vechelde-Wendeburg
|
511 |
25069384;Volksbank Lehre -alt-
|
512 |
25069503;VB Diepholz-Barnstorf
|
513 |
-
25069830;Volksbank Derental -alt-
|
514 |
25070024;Deutsche Bank PGK Hannover
|
515 |
25070066;Deutsche Bank Stadthagen
|
516 |
25070070;Deutsche Bank Hannover
|
@@ -525,13 +521,11 @@
|
|
525 |
25090608;apoBank Hannover
|
526 |
25090900;PSD Bank Hannover
|
527 |
25120510;Bank für Sozialwirtschaft
|
528 |
-
25120960;UniCredit ex-Hypo Hannover
|
529 |
25151270;St Spk Barsinghausen
|
530 |
25151371;Stadtsparkasse Burgdorf
|
531 |
25152375;Kr Spk Fallingbostel
|
532 |
25152490;St Spk Wunstorf
|
533 |
25161322;VB Burgdorf-Celle -alt-
|
534 |
-
25162563;Volksbank Garbsen -alt-
|
535 |
25190001;Hannoversche Volksbank
|
536 |
25190101;Lindener Volksbank -alt-
|
537 |
25191510;Volksbank Lehrte -alt-
|
@@ -588,15 +582,14 @@
|
|
588 |
25841403;Commerzbank Lüchow
|
589 |
25841708;Commerzbank Schneverdingen
|
590 |
25850110;Sparkasse Uelzen Lüchow-Dbg
|
591 |
-
25851335;Spk Uelzen Lüchow-
|
592 |
25851660;Kr Spk Soltau
|
593 |
25861395;Volksbank Dannenberg -alt-
|
594 |
25861990;Volksbank Clenze-Hitzacker
|
595 |
25862292;Volksbank Uelzen-Salzwedel
|
596 |
-
25862393;Volksbank Hitzacker -alt-
|
597 |
25863489;VB Osterbg-Lüchow-Dannenbg
|
598 |
25891483;VB Osterbg-Lüchow-Dannenbg
|
599 |
-
25891636;VB Lüneburger Heide
|
600 |
25900000;BBk Hannover eh Hildesheim
|
601 |
25910111;SEB Hildesheim
|
602 |
25930000;UniCredit Bk ex VereinWest
|
@@ -622,7 +615,7 @@
|
|
622 |
26060184;Bankhaus Hallbaum
|
623 |
26061291;Volksbank Mitte
|
624 |
26061556;Volksbank Adelebsen
|
625 |
-
26062433;
|
626 |
26062575;Raiffeisenbank Rosdorf
|
627 |
26070024;Deutsche Bank PGK Göttingen
|
628 |
26070072;Deutsche Bank Göttingen
|
@@ -661,7 +654,6 @@
|
|
661 |
26565928;VB GMHütte-Hagen-Bissendorf
|
662 |
26566939;VB Osnabrücker Nd
|
663 |
26567943;VR-Bank i.Altkr.Bersenbrück
|
664 |
-
26568924;VB Hilter-Bad Laer -alt-
|
665 |
26570024;Deutsche Bank PGK Osnabrück
|
666 |
26570090;Deutsche Bank Osnabrück
|
667 |
26580070;Commerzbank Osnabrück
|
@@ -781,7 +773,7 @@
|
|
781 |
28066214;VB Wildeshauser Geest
|
782 |
28066620;Spar-u Darlehnskasse
|
783 |
28067068;VB Neuenkirchen-Vörden
|
784 |
-
28067170;
|
785 |
28067257;Volksbank Lastrup
|
786 |
28068218;Raiffbk Butjadingen-Abbehsn
|
787 |
28069052;Raiffbk Strückl.-Idafehn
|
@@ -816,7 +808,6 @@
|
|
816 |
28262254;Volksbank Jever
|
817 |
28262481;Raiffbk Sande-Wangerld alt
|
818 |
28262673;Raiff-VB Varel-Nordenham
|
819 |
-
28262794;Raiff-VB Aurich-Wittm -alt-
|
820 |
28270024;Deutsche Bank PGK Wilhelmsh
|
821 |
28270056;Deutsche Bank Wilhelmshaven
|
822 |
28280012;Commerzbank Wilhelmshaven
|
@@ -832,7 +823,6 @@
|
|
832 |
28450000;Sparkasse Emden
|
833 |
28470024;Deutsche Bank PGK Emden
|
834 |
28470091;Deutsche Bank Emden
|
835 |
-
28490073;Raiff-VB Emden-Pewsum -alt-
|
836 |
28500000;BBk Oldenburg eh Leer
|
837 |
28520009;Oldb Landesbank Leer
|
838 |
28521518;Oldb Landesbank Papenburg
|
@@ -842,7 +832,6 @@
|
|
842 |
28562716;Raiffbk Flachsmeer Westover
|
843 |
28562863;Raiffeisenbank Moormerland
|
844 |
28563749;Raiffeisenbank Moormerland
|
845 |
-
28563865;Ostfriesische VB Leer
|
846 |
28570024;Deutsche Bank PGK Leer
|
847 |
28570092;Deutsche Bank Leer
|
848 |
28590075;Ostfriesische VB Leer
|
@@ -851,7 +840,7 @@
|
|
851 |
29000000;BBk Bremen
|
852 |
29010111;SEB Bremen
|
853 |
29010400;Deutsche Schiffsbank Bremen
|
854 |
-
29020000;
|
855 |
29020100;KBC Bank Bremen
|
856 |
29020200;NF Bank Bremen
|
857 |
29020400;Factoring Bank Bremen
|
@@ -892,7 +881,6 @@
|
|
892 |
29240024;Commerzbank Bremerhaven
|
893 |
29250000;Spk Bremerhaven
|
894 |
29250150;Kr Spk Wesermünde-Hadeln
|
895 |
-
29262646;Spar-u Darlehnskasse
|
896 |
29262722;Volksbank Geeste-Nord
|
897 |
29265747;VB Bremerhaven-Cuxland
|
898 |
29280011;Commerzbank Bremerhaven
|
@@ -907,6 +895,7 @@
|
|
907 |
30020700;Mizuho Corp Bank Düsseldorf
|
908 |
30020900;TARGOBANK Düsseldorf
|
909 |
30022000;NRW.BANK Düsseldorf
|
|
|
910 |
30030100;S Broker Wiesbaden
|
911 |
30030400;FXdirekt Bank Oberhausen
|
912 |
30030500;C&A Bank Düsseldorf
|
@@ -921,7 +910,6 @@
|
|
921 |
30040063;Commerzbank CC Düsseldorf
|
922 |
30050000;WestLB Düsseldorf
|
923 |
30050110;St Spk Düsseldorf
|
924 |
-
30052525;NRW.BANK Düsseldorf
|
925 |
30060010;WGZ Bank Düsseldorf
|
926 |
30060601;apoBank Düsseldorf
|
927 |
30060992;PSD Bank Rhein-Ruhr
|
@@ -963,7 +951,8 @@
|
|
963 |
30160213;VB Düsseldorf Neuss
|
964 |
30220190;UniCredit Bank-HypoVereinbk
|
965 |
30351220;St Spk Haan
|
966 |
-
30520000;RCI Banque
|
|
|
967 |
30530000;Bankhaus Werhahn Neuss
|
968 |
30530500;Bank11 Neuss
|
969 |
30550000;Sparkasse Neuss
|
@@ -1013,6 +1002,7 @@
|
|
1013 |
33010111;SEB Wuppertal
|
1014 |
33020000;akf bank Wuppertal
|
1015 |
33020190;UniCredit Bank-HypoVereinbk
|
|
|
1016 |
33040001;Commerzbank Wuppertal
|
1017 |
33040310;Commerzbank Zw 117
|
1018 |
33050000;St Spk Wuppertal
|
@@ -1043,7 +1033,7 @@
|
|
1043 |
34270024;Deutsche Bank PGK Solingen
|
1044 |
34270094;Deutsche Bank Solingen
|
1045 |
34280032;Commerzbank Solingen
|
1046 |
-
35000000;BBk Duisburg
|
1047 |
35010111;SEB Duisburg
|
1048 |
35020030;National-Bank Duisburg
|
1049 |
35040038;Commerzbank Duisburg
|
@@ -1064,8 +1054,8 @@
|
|
1064 |
35251000;Spk Dinslaken-Voerde-Hünxe
|
1065 |
35261248;Volksbank Dinslaken
|
1066 |
35450000;Sparkasse am Niederrhein
|
1067 |
-
35451460;Spk Neukirchen-Vluyn
|
1068 |
-
35451775;Spk Rheinberg
|
1069 |
35461106;Volksbank Niederrhein
|
1070 |
35600000;BBk Duisburg eh Wesel
|
1071 |
35640064;Commerzbank Wesel
|
@@ -1079,12 +1069,12 @@
|
|
1079 |
36010200;VON ESSEN Bankges Essen
|
1080 |
36010424;Aareal Bank Essen
|
1081 |
36010600;GALLINAT-BANK Essen
|
1082 |
-
36010699;Gallinat - Bank
|
1083 |
36010800;AKBANK N.V. Essen
|
1084 |
36020030;National-Bank Essen
|
1085 |
36020186;UniCredit Bank-HypoVereinbk
|
1086 |
36020700;Hanseatic Bank Essen
|
1087 |
-
36033300;Santander
|
1088 |
36036000;VALBA
|
1089 |
36040039;Commerzbank Essen
|
1090 |
36040060;Commerzbank CC Essen
|
@@ -1138,6 +1128,7 @@
|
|
1138 |
37030200;Oppenheim, Sal - jr & Cie
|
1139 |
37030700;abcbank Köln
|
1140 |
37030800;Isbank Köln
|
|
|
1141 |
37040044;Commerzbank Köln
|
1142 |
37040048;Commerzbank KOE GF-K48
|
1143 |
37040060;Commerzbank CC Köln
|
@@ -1181,7 +1172,7 @@
|
|
1181 |
37069577;Raiffbk Odenthal -alt-
|
1182 |
37069627;Raiffbk Rheinbach Voreifel
|
1183 |
37069639;Rosbacher Raiffeisenbank
|
1184 |
-
37069642;Raiffbk Simmerath
|
1185 |
37069707;Raiffbk Sankt Augustin
|
1186 |
37069720;VR-Bank Nordeifel Schleiden
|
1187 |
37069805;Volksbank Wachtberg
|
@@ -1256,7 +1247,7 @@
|
|
1256 |
38621500;Steyler Bank
|
1257 |
38650000;Kr Spk Siegburg
|
1258 |
38651390;Sparkasse Hennef
|
1259 |
-
39000000;BBk Aachen
|
1260 |
39010111;SEB Aachen
|
1261 |
39020000;Aachener Bauspk Aachen
|
1262 |
39040013;Commerzbank Aachen
|
@@ -1272,7 +1263,6 @@
|
|
1272 |
39160191;Pax-Bank Aachen
|
1273 |
39161490;Volksbank Aachen Süd
|
1274 |
39162980;VR-Bank Würselen
|
1275 |
-
39360097;VB Stolberg-Eschweiler-alt-
|
1276 |
39362254;Raiffeisen-Bank Eschweiler
|
1277 |
39500000;BBk Aachen eh Düren
|
1278 |
39540052;Commerzbank Düren
|
@@ -1288,7 +1278,7 @@
|
|
1288 |
40040028;Commerzbank Münster Westf
|
1289 |
40050000;WestLB Münster
|
1290 |
40050150;Spk Münsterland Ost
|
1291 |
-
|
1292 |
40060000;WGZ Bank Münster
|
1293 |
40060265;DKM Darlehnskasse Münster
|
1294 |
40060300;WL BANK Münster
|
@@ -1305,7 +1295,6 @@
|
|
1305 |
40069408;Volksbank Baumberge
|
1306 |
40069462;Volksbank Sprakel
|
1307 |
40069477;Volksbank Wulfen -alt-
|
1308 |
-
40069545;VB Schönholthausen -alt-
|
1309 |
40069546;Volksbank Senden
|
1310 |
40069600;Volksbank Amelsbüren
|
1311 |
40069601;Volksbank Ascheberg-Herbern
|
@@ -1324,7 +1313,6 @@
|
|
1324 |
40154006;Spk Gronau
|
1325 |
40154476;St Spk Lengerich
|
1326 |
40154530;Sparkasse Westmünsterland
|
1327 |
-
40154680;St Spk Ochtrup -alt-
|
1328 |
40154702;St Spk Stadtlohn
|
1329 |
40160050;Volksbank Münster
|
1330 |
40163123;Volksbank Coesfeld -alt-
|
@@ -1459,7 +1447,6 @@
|
|
1459 |
44080085;Commerzbank ITGK2 Dortmnd
|
1460 |
44089320;Commerzbank ITGK Dortmund
|
1461 |
44090920;PSD Bank Dortmund -alt-
|
1462 |
-
44130000;HKB Bank Frankfurt
|
1463 |
44152370;Sparkasse Lünen
|
1464 |
44152490;Sparkasse Schwerte
|
1465 |
44160014;Dortmunder Volksbank
|
@@ -1477,12 +1464,11 @@
|
|
1477 |
44570024;Deutsche Bank PGK Iserlohn
|
1478 |
44580070;Commerzbank Iserlohn
|
1479 |
44580085;Commerzbank ITGK1 Iserlhn
|
1480 |
-
44750065;Sparkasse Menden
|
1481 |
44760037;Volksbank Menden -alt-
|
1482 |
44761312;Mendener Bank
|
1483 |
44761534;VB im Märkischen Kreis
|
1484 |
45000000;BBk Hagen
|
1485 |
-
45030000;HKB Bank Frankfurt
|
1486 |
45040042;Commerzbank Hagen Westf
|
1487 |
45050001;Sparkasse Hagen
|
1488 |
45051485;St Spk Herdecke
|
@@ -1530,10 +1516,10 @@
|
|
1530 |
46250049;Spk Olpe-Drolshagen-Wenden
|
1531 |
46251590;Spk Finnentrop
|
1532 |
46251630;Spk Attend-Lennest-Kirchhdm
|
1533 |
-
46260023;Volksbank Olpe
|
1534 |
46261306;Volksbank Attendorn -alt-
|
1535 |
46261607;Volksbank Grevenbrück
|
1536 |
-
46261822;
|
1537 |
46262456;Volksbank Bigge-Lenne -alt-
|
1538 |
46400000;BBk Dortmund eh Arnsberg
|
1539 |
46441003;Commerzbank Meschede
|
@@ -1557,23 +1543,21 @@
|
|
1557 |
47260307;Bank für Kirche und Caritas
|
1558 |
47261429;Volksbank Haaren -alt-
|
1559 |
47261603;VB Büren und Salzkotten
|
1560 |
-
47262406;VB Höxter-Beverungen -alt-
|
1561 |
47262626;Volksbank Westenholz
|
1562 |
47262703;VB Delbrück-Hövelhof
|
1563 |
47263472;VB Westerloh-Westerwiehe
|
1564 |
-
47264367;
|
1565 |
47265383;VB Wewelsburg-Ahden
|
1566 |
47267216;Volksbank Borgentreich-alt-
|
1567 |
47270024;Deutsche Bank PGK Paderborn
|
1568 |
47270029;Deutsche Bank Paderborn
|
1569 |
47451235;St Spk Marsberg -alt-
|
1570 |
-
47460028;
|
1571 |
47640051;Commerzbank Detmold
|
1572 |
47650130;Spk Detmold
|
1573 |
47651225;St Spk Blomberg
|
1574 |
47670023;Deutsche Bank Detmold
|
1575 |
47670024;Deutsche Bank PGK Detmold
|
1576 |
-
47690080;Volksbank Detmold -alt-
|
1577 |
47691200;Volksbank Ostlippe
|
1578 |
47800000;BBk Bielefeld eh Gütersloh
|
1579 |
47840065;Commerzbank Gütersloh
|
@@ -1626,12 +1610,12 @@
|
|
1626 |
49051065;Stadtsparkasse Rahden
|
1627 |
49051285;St Spk Bad Oeynhausen
|
1628 |
49051990;St Spk Porta Westfalica
|
1629 |
-
49060127;
|
1630 |
49060392;Volksbank Minden
|
1631 |
49061298;VB Bad Oeynhausen -alt-
|
1632 |
49061470;VB Stemweder Berg -alt-
|
1633 |
49061510;Volksbank Eisbergen -alt-
|
1634 |
-
49063296;Volksbank Petershagen
|
1635 |
49063338;Volksbank Hille -alt-
|
1636 |
49070024;Deutsche Bank PGK Minden
|
1637 |
49070028;Deutsche Bank Minden, Westf
|
@@ -1642,7 +1626,7 @@
|
|
1642 |
49440043;Commerzbank Herford
|
1643 |
49450120;Sparkasse Herford
|
1644 |
49451210;Spk Bad Salzuflen -alt-
|
1645 |
-
49461323;Volksbank Enger-Spenge
|
1646 |
49490070;VB Bad Oeynhausen-Herford
|
1647 |
50000000;BBk Filiale Frankfurt Main
|
1648 |
50010060;Postbank Frankfurt Main
|
@@ -1661,7 +1645,7 @@
|
|
1661 |
50020700;Credit Europe Bank Ffm
|
1662 |
50020800;Intesa Sanpaolo Frankfurt
|
1663 |
50020900;COREALCREDIT BANK
|
1664 |
-
50021000;ING Bank Frankfurt
|
1665 |
50021100;Frankfurter Fondsbank
|
1666 |
50023400;Bank of Beirut Frankfurt
|
1667 |
50030000;Banque PSA Finance
|
@@ -1673,11 +1657,13 @@
|
|
1673 |
50030900;Lehman Brothers Frankfurt
|
1674 |
50031000;Triodos Bank Deutschland
|
1675 |
50031100;Bankhaus Main Frankfurt/M
|
1676 |
-
50033300;Santander
|
1677 |
50040000;Commerzbank Frankfurt Main
|
1678 |
50040033;Commerzbank Gf BRS Ffm
|
|
|
1679 |
50040040;Commerzbank ZRK Frankfurt
|
1680 |
50040048;Commerzbank FFM GF-F48
|
|
|
1681 |
50040051;Commerzbank FFM GM-F A 51
|
1682 |
50040052;Commerzbank Service - BZ
|
1683 |
50040060;Commerzbank Gf 460 Ffm
|
@@ -1685,6 +1671,7 @@
|
|
1685 |
50040062;Commerzbank CC Ffm
|
1686 |
50040063;Commerzbank CC Ffm
|
1687 |
50040075;Commerzbank Gf ZCM Ffm
|
|
|
1688 |
50040099;Commerzbank INT Ffm
|
1689 |
50042500;Commerzbank Frankfurt
|
1690 |
50044444;Commerzbank Vermverw Ffm
|
@@ -1704,7 +1691,6 @@
|
|
1704 |
50069187;Volksbank Egelsbach -alt-
|
1705 |
50069241;Raiffeisenkasse
|
1706 |
50069345;Raiffbk Grävenwiesbach
|
1707 |
-
50069384;Volksbank Heppenheim-Offst
|
1708 |
50069455;Hüttenberger Bk Hüttenberg
|
1709 |
50069464;VB Inheiden-Villingen -alt-
|
1710 |
50069477;Raiffeisenbank Kirtorf
|
@@ -1726,9 +1712,9 @@
|
|
1726 |
50080060;Commerzbank Gf DrKW Ffm
|
1727 |
50080061;Commerzbank Gf DrKWSL Ffm
|
1728 |
50080077;Commerzbk WBSPK, Frankfurt
|
|
|
1729 |
50080080;Commerzbank Bs 80 Ffm
|
1730 |
50080082;Commerzbk Gf AVB Ffm
|
1731 |
-
50080085;Commerzbk CS Frankfurt
|
1732 |
50080086;Commerzbk ITGK Frankfurt
|
1733 |
50080087;Commerzbank ITGK4 FFM
|
1734 |
50080088;Commerzbank ITGK5 FFM
|
@@ -1756,11 +1742,12 @@
|
|
1756 |
50110500;NATIXIS Frankfurt am Main
|
1757 |
50110636;DTC SCB Germany Branch
|
1758 |
50110700;Frankfurter Bankgesellsch
|
1759 |
-
50110800;J.P. Morgan Frankfurt
|
|
|
1760 |
50110900;Bank of America N.A. Mil Bk
|
1761 |
50120000;MainFirst Bank Frankfurt
|
1762 |
50120100;ICICI Bank Frankfurt
|
1763 |
-
50120383;
|
1764 |
50120500;CSD Frankfurt Main
|
1765 |
50120600;Bank of Communications
|
1766 |
50120900;VakifBank Frankfurt
|
@@ -1771,6 +1758,7 @@
|
|
1771 |
50130300;FIRST BANK Frankfurt
|
1772 |
50130400;Merck Finck & Co Frankfurt
|
1773 |
50130600;UBS Deutschland Frankfurt/M
|
|
|
1774 |
50150000;West LB Frankfurt Main
|
1775 |
50190000;Frankfurter Volksbank
|
1776 |
50190300;Volksbank Höchst
|
@@ -1838,12 +1826,14 @@
|
|
1838 |
50210188;SEB TZN MB Frankfurt
|
1839 |
50210189;SEB TZN MB Frankfurt
|
1840 |
50210200;Rabobank Frankfurt Main
|
1841 |
-
|
1842 |
-
|
|
|
1843 |
50210600;equinet Bank, Frankfurt
|
|
|
1844 |
50210900;Citigroup GM Frankfurt
|
1845 |
50220085;UBS Deutschland Frankfurt/M
|
1846 |
-
50220200;
|
1847 |
50220500;Bank of Scotland
|
1848 |
50220900;Hauck & Aufhäuser
|
1849 |
50230000;ABC International Bank Ffm
|
@@ -1869,7 +1859,8 @@
|
|
1869 |
50330300;The Bank of New York Mellon
|
1870 |
50330500;CHAABI BANK FRANKFURT
|
1871 |
50330600;Sepahbank Frankfurt, Main
|
1872 |
-
50330700;Valovis
|
|
|
1873 |
50400000;BBk Zentrale Frankfurt Main
|
1874 |
50510111;SEB Offenbach Main
|
1875 |
50510120;SEB TZN MB
|
@@ -1987,7 +1978,7 @@
|
|
1987 |
50861393;SpDK Zell -alt-
|
1988 |
50861501;Raiffbk Nördliche Bergstr
|
1989 |
50862311;VB Gräfenhausen -alt-
|
1990 |
-
50862408;Ver
|
1991 |
50862703;VB Gersprenztal-Otzberg
|
1992 |
50862835;Raiffeisenbank Schaafheim
|
1993 |
50862903;Volksbank Mainspitze
|
@@ -2008,14 +1999,12 @@
|
|
2008 |
50892500;Groß-Gerauer Volksbank
|
2009 |
50950068;Sparkasse Bensheim
|
2010 |
50951469;Sparkasse Starkenburg
|
2011 |
-
50960101;Volksbank Bergstraße -alt-
|
2012 |
50961206;Raiffeisenbank Bürstadt
|
2013 |
50961312;Raiffbk Groß-Rohrheim
|
2014 |
50961592;Volksbank Weschnitztal
|
2015 |
50961685;Volksbank Überwald-Gorxheim
|
2016 |
50970004;Deutsche Bank Bensheim
|
2017 |
50970024;Deutsche Bank PGK Bensheim
|
2018 |
-
50991400;VB Kreis Bergstraße -alt-
|
2019 |
51000000;BBk Frankfurt eh Wiesbaden
|
2020 |
51010111;SEB Wiesbaden
|
2021 |
51010400;Aareal Bank
|
@@ -2051,12 +2040,13 @@
|
|
2051 |
51210700;NIBC Bank Frankfurt am Main
|
2052 |
51210800;SOGEBANK Frankfurt Main
|
2053 |
51220200;SEB Merchant Banking Ffm
|
|
|
2054 |
51220400;Bank Saderat Iran Frankfurt
|
2055 |
51220700;ZIRAAT BANK
|
2056 |
51220800;Banco do Brasil Frankfurt
|
2057 |
51220900;Morgan Stanley Bank
|
2058 |
51220910;Morgan Stanley Bank
|
2059 |
-
51230100;
|
2060 |
51230400;RBS Deutschland FFM
|
2061 |
51230500;Standard Chartered Bank Ffm
|
2062 |
51230502;ETC SCB Germany Branch
|
@@ -2082,7 +2072,7 @@
|
|
2082 |
51380040;Commerzbank Gießen
|
2083 |
51380085;Commerzbank ITGK1 Gießen
|
2084 |
51390000;VB Mittelhessen
|
2085 |
-
51410111;SEB
|
2086 |
51410600;Merrill Lynch Intl Bank FFM
|
2087 |
51410700;Bank of China Frankfurt
|
2088 |
51410800;OnVista Bank Frankfurt/Main
|
@@ -2090,6 +2080,7 @@
|
|
2090 |
51420300;Bank Julius Bär Frankfurt
|
2091 |
51420600;Svenska Handelsbanken
|
2092 |
51430300;Nordea Bank Finland
|
|
|
2093 |
51430400;Goldman, Sachs Ffm
|
2094 |
51540037;Commerzbank Wetzlar
|
2095 |
51550035;Sparkasse Wetzlar
|
@@ -2114,7 +2105,7 @@
|
|
2114 |
51961515;Spar-u Darlehnskasse
|
2115 |
51961801;Volksbank Feldatal
|
2116 |
51990000;Volksbank Lauterbach-Schl
|
2117 |
-
52000000;BBk Kassel
|
2118 |
52010111;SEB Kassel
|
2119 |
52040021;Commerzbank Kassel
|
2120 |
52050000;Landeskreditkasse Kassel
|
@@ -2132,7 +2123,6 @@
|
|
2132 |
52061303;Raiffbk Borken
|
2133 |
52062200;VR-Bank Chattengau
|
2134 |
52062601;VR-Bank Schwalm-Eder
|
2135 |
-
52062699;Volks-Raiffeisenbank Gf GAA
|
2136 |
52063369;VR-Bank Spangenbg-Morschen
|
2137 |
52063550;Raiffbk
|
2138 |
52064156;Raiffbk Baunatal
|
@@ -2249,7 +2239,6 @@
|
|
2249 |
54540033;Commerzbank Ludwigshafen Rh
|
2250 |
54550010;Sparkasse Vorderpfalz
|
2251 |
54550120;Kreissparkasse Rhein-Pfalz
|
2252 |
-
54560320;VR Bank Ludwigshafen -alt-
|
2253 |
54561310;RV Bank Rhein-Haardt
|
2254 |
54570024;Deutsche Bank PGK Ludwigsha
|
2255 |
54570094;Deutsche Bank Ludwigshafen
|
@@ -2266,14 +2255,13 @@
|
|
2266 |
54690623;apoBank Neustadt, Weinstr
|
2267 |
54691200;VR Bank Mittelhaardt
|
2268 |
54750010;Kr u St Spk Speyer
|
2269 |
-
54751440;St Spk Schifferstadt
|
2270 |
54760900;EKK Speyer
|
2271 |
-
54761411;Raiffbk Schifferstadt
|
2272 |
54790000;VB Kur- und Rheinpfalz
|
2273 |
54820674;UniCredit exHypo Ndl659LanP
|
2274 |
54850010;Spk Südl Weinstr in Landau
|
2275 |
54851440;Spk Kandel Pfalz
|
2276 |
-
54861190;Raiffbk Oberhaardt-Gäu
|
2277 |
54862390;Raiffeisenbank Herxheim
|
2278 |
54862500;VR Bank Südpfalz
|
2279 |
54891300;VR Bank Südl Weinstr
|
@@ -2291,13 +2279,12 @@
|
|
2291 |
55020700;SWK-Bank Bingen
|
2292 |
55030500;GE Capital Bank Mainz
|
2293 |
55030533;GE Capital Direkt
|
2294 |
-
55033300;Santander
|
2295 |
55040022;Commerzbank Mainz
|
2296 |
55040060;Commerzbank CC Mainz
|
2297 |
55040061;Commerzbank CC Mainz
|
2298 |
55050000;ZV LBBW Mainz
|
2299 |
55050120;Sparkasse Mainz
|
2300 |
-
55051260;Kr Spk Alzey-alt-
|
2301 |
55060321;VR-Bank Mainz
|
2302 |
55060417;VR-Bank Mainz
|
2303 |
55060611;Genobank Mainz
|
@@ -2317,19 +2304,16 @@
|
|
2317 |
55150098;Clearingkonto LRP-SI
|
2318 |
55160195;Pax-Bank Mainz
|
2319 |
55190000;Mainzer Volksbank Mainz
|
2320 |
-
55190028;Mainzer Volksbank
|
2321 |
-
55190050;Mainzer Volksbank
|
2322 |
-
55190064;Mainzer Volksbank
|
2323 |
-
55190065;Mainzer Volksbank
|
2324 |
-
55190068;Mainzer Volksbank
|
2325 |
-
55190088;Mainzer Volksbank
|
2326 |
-
55190094;Mainzer Volksbank
|
2327 |
55340041;Commerzbank Worms
|
2328 |
55350010;Sparkasse Worms-Alzey-Ried
|
2329 |
-
55360784;VB Rheindürkheim -alt-
|
2330 |
55361202;Raiffeisenbank Alsh-Gimbsh
|
2331 |
-
55361313;Raiffbk Gundersheim -alt-
|
2332 |
-
55361422;VB Wonnegau Osthofen -alt-
|
2333 |
55362071;Volksbank Bechtheim
|
2334 |
55390000;Volksbank Worms-Wonnegau
|
2335 |
56000000;BBk Mainz eh Bad Kreuznach
|
@@ -2345,7 +2329,6 @@
|
|
2345 |
56090000;VB Rhein-Nahe-Hunsrück
|
2346 |
56240050;Commerzbank Idar-Oberstein
|
2347 |
56250030;Kr Spk Birkenfeld
|
2348 |
-
56261073;VB Kirn-Sobernheim -alt-
|
2349 |
56261735;Raiffeisenbank Nahe
|
2350 |
56270024;Deutsche Bank PGK I-Oberst
|
2351 |
56270044;Deutsche Bank Idar-Oberst
|
@@ -2375,7 +2358,6 @@
|
|
2375 |
57069526;Raiffbk Idarwald -alt-
|
2376 |
57069727;Raiffeisenbank Irrel
|
2377 |
57069806;VR-Bank Hunsrück-Mosel
|
2378 |
-
57069858;Raiffbk Pronsfeld-Waxw-alt-
|
2379 |
57070024;Deutsche Bank PGK Koblenz
|
2380 |
57070045;Deutsche Bank Koblenz
|
2381 |
57080070;Commerzbank Koblenz
|
@@ -2431,7 +2413,7 @@
|
|
2431 |
58761343;Raiffbk Zeller Land
|
2432 |
58771224;Deutsche Bank PGK Bernkast-
|
2433 |
58771242;Deutsche Bank Bernkast-Kues
|
2434 |
-
58790100;Ver VB Cochem
|
2435 |
59000000;BBk Saarbrücken
|
2436 |
59010011;Postbk St. Ingbert Gf FK 11
|
2437 |
59010012;Postbk St. Ingbert Gf FK 12
|
@@ -2532,11 +2514,11 @@
|
|
2532 |
60030100;Bankhaus Bauer, Stuttgart
|
2533 |
60030200;Ellwabank Stuttgart
|
2534 |
60030600;CreditPlus Bank
|
|
|
2535 |
60030700;AKTIVBANK Pforzheim
|
2536 |
60030900;Isbank Stuttgart
|
2537 |
60033000;Wüstenrot Bausparkasse
|
2538 |
60035810;IBM Kreditbank Herrenberg
|
2539 |
-
60038800;Düsseldorfer Hyp. Stuttgart
|
2540 |
60040060;Commerzbank CC Stuttgart
|
2541 |
60040061;Commerzbank CC Stuttgart
|
2542 |
60040071;Commerzbank Stuttgart
|
@@ -2615,7 +2597,7 @@
|
|
2615 |
60069710;Raiffbk Gammesfeld
|
2616 |
60069714;Raiffeisenbank Kocher-Jagst
|
2617 |
60069716;Raiffbk Nattheim -alt-
|
2618 |
-
60069724;Raiffbk Heroldstatt
|
2619 |
60069727;Raiffbk Oberstenfeld
|
2620 |
60069738;VB Freiberg und Umgebung
|
2621 |
60069766;Volks- u Raiffbk Boll -alt-
|
@@ -2661,7 +2643,7 @@
|
|
2661 |
60120200;BHF-BANK Stuttgart
|
2662 |
60120500;Bank für Sozialwirtschaft
|
2663 |
60130100;FFS Bank Stuttgart
|
2664 |
-
60133300;Santander
|
2665 |
60200000;BBk Stuttgart eh Waiblingen
|
2666 |
60220030;BW Bank Waiblingen
|
2667 |
60241074;Commerzbank Backnang
|
@@ -2676,7 +2658,6 @@
|
|
2676 |
60270073;Deutsche Bank Waiblingen
|
2677 |
60290110;Volksbank Rems -alt-
|
2678 |
60291120;Volksbank Backnang
|
2679 |
-
60291410;Volksbank Schorndorf
|
2680 |
60291510;Volksbank Winnenden
|
2681 |
60300000;BBk Stuttgart eh Sindelfing
|
2682 |
60320030;BW Bank Sindelfingen
|
@@ -2811,7 +2792,7 @@
|
|
2811 |
63090100;Volksbank Ulm-Biberach
|
2812 |
63091010;Ehinger Volksbank
|
2813 |
63091200;Volksbank Blaubeuren
|
2814 |
-
63091300;Volksbank
|
2815 |
63220090;UniCredit Bank-HypoVereinbk
|
2816 |
63240016;Commerzbank Heidenheim
|
2817 |
63250030;Kr Spk Heidenheim
|
@@ -2849,7 +2830,7 @@
|
|
2849 |
64240071;Commerzbank Rottweil
|
2850 |
64250040;Kr Spk Rottweil
|
2851 |
64251060;Kr Spk Freudenstadt
|
2852 |
-
64261363;
|
2853 |
64261626;Murgtalbank -alt-
|
2854 |
64261853;VB Nordschwarzwald
|
2855 |
64262408;Volksbank Dornstetten
|
@@ -2889,7 +2870,6 @@
|
|
2889 |
65110200;Int Bkhaus Bodensee
|
2890 |
65120091;UniCredit Bank-HypoVereinbk
|
2891 |
65140072;Commerzbank Friedrichshafen
|
2892 |
-
65150040;Spk -alt-
|
2893 |
65161497;Genossenschaftsbank
|
2894 |
65162832;Raiffbk Oberteuringen
|
2895 |
65180005;Commerzbank Friedrichshfn
|
@@ -2929,18 +2909,17 @@
|
|
2929 |
66020286;UniCredit Bank-HypoVereinbk
|
2930 |
66020500;Bank für Sozialwirtschaft
|
2931 |
66030600;Isbank Karlsruhe
|
2932 |
-
66030610;ISBANK Mannheim
|
2933 |
66040018;Commerzbank Karlsruhe
|
2934 |
66040026;Commerzbank Karlsruhe
|
2935 |
66050000;Landesbank Baden-Württ
|
2936 |
-
66050101;
|
2937 |
-
66051220;Sparkasse Ettlingen
|
2938 |
66060000;DZ BANK
|
2939 |
66060300;Spar- und Kreditbank
|
2940 |
66060800;EKK Karlsruhe
|
2941 |
-
66061059;VB Stutensee Hardt
|
2942 |
66061407;Spar- u Kreditbk Rheinstett
|
2943 |
-
66061724;
|
2944 |
66062138;Spar- u Kreditbank Hardt
|
2945 |
66062366;Raiffbk Hardt-Bruhrain
|
2946 |
66069103;Raiffeisenbank Elztal
|
@@ -2986,7 +2965,7 @@
|
|
2986 |
66420020;BW Bank Offenburg
|
2987 |
66432700;Faißtbank Wolfach
|
2988 |
66440084;Commerzbank Offenburg
|
2989 |
-
66450050;Sparkasse Offenburg
|
2990 |
66451346;Spk Gengenbach
|
2991 |
66451548;Spk Haslach-Zell
|
2992 |
66451862;Spk Hanauerland Kehl
|
@@ -2995,7 +2974,6 @@
|
|
2995 |
66470035;Deutsche Bank Offenburg
|
2996 |
66490000;Volksbank Offenburg
|
2997 |
66491800;Volksbank Bühl
|
2998 |
-
66492300;Renchtalbank Oppenau -alt-
|
2999 |
66492600;VB Appenweier -alt-
|
3000 |
66492700;VB Kinzigtal Wolfach
|
3001 |
66550070;Sparkasse Rastatt-Gernsbach
|
@@ -3025,15 +3003,12 @@
|
|
3025 |
67020020;BW Bank Mannheim
|
3026 |
67020190;UniCredit Bank-HypoVereinbk
|
3027 |
67020259;UniCredit exHypo Ndl681Mnh
|
3028 |
-
67020500;Oyak Anker Bank Mannheim
|
3029 |
67040031;Commerzbank Mannheim
|
3030 |
67040060;Commerzbank CC Mannheim
|
3031 |
67040061;Commerzbank CC Mannheim
|
3032 |
67050000;Landesbank Baden-Württ
|
3033 |
-
67050101;Spk Mannheim
|
3034 |
67050505;Spk Rhein Neckar Nord
|
3035 |
67051203;Spk Hockenheim
|
3036 |
-
67052385;Bez Spk Weinheim
|
3037 |
67060031;Volksbank Ma-Sandhofen
|
3038 |
67070010;Deutsche Bank Mannheim
|
3039 |
67070024;Deutsche Bank PGK Mannheim
|
@@ -3043,7 +3018,6 @@
|
|
3043 |
67089440;Commerzbank ITGK Mannheim
|
3044 |
67090000;VR Bank Rhein-Neckar
|
3045 |
67090617;apoBank Mannheim
|
3046 |
-
67091300;VB Bez Schwetzingen -alt-
|
3047 |
67091500;Volksbank Kurpfalz H+G Bank
|
3048 |
67092300;Volksbank Weinheim
|
3049 |
67210111;SEB Heidelberg
|
@@ -3054,7 +3028,6 @@
|
|
3054 |
67230001;MLP FDL Zw CS
|
3055 |
67240039;Commerzbank Heidelberg
|
3056 |
67250020;Spk Heidelberg
|
3057 |
-
67251918;Sparkasse Sinsheim -alt-
|
3058 |
67261909;Raiffbk Steinsberg -alt-
|
3059 |
67262243;Raiff Privatbk Wiesloch
|
3060 |
67262402;VB Schwarzbachtal -alt-
|
@@ -3074,8 +3047,6 @@
|
|
3074 |
67362560;Volksbank Tauber -alt-
|
3075 |
67390000;VB Main-Tauber
|
3076 |
67450048;Spk Neckartal-Odenwald
|
3077 |
-
67451475;Spk Buchen-Walldürn -alt-
|
3078 |
-
67451680;Spk Osterburken -alt-
|
3079 |
67460041;Volksbank Mosbach
|
3080 |
67461424;Volksbank Franken Buchen
|
3081 |
67461733;Volksbank Kirnau
|
@@ -3135,7 +3106,7 @@
|
|
3135 |
68462427;VB Klettgau-Wutöschingen
|
3136 |
68490000;Volksbank Rhein-Wehra
|
3137 |
68491500;Volksbank Jestetten
|
3138 |
-
68492200;
|
3139 |
69000000;BBk Vill-Schwen eh Konstanz
|
3140 |
69010111;SEB Konstanz
|
3141 |
69020020;BW Bank Konstanz
|
@@ -3169,13 +3140,14 @@
|
|
3169 |
69451070;Spk Donaueschingen -alt-
|
3170 |
69470024;Deutsche Bank PGK Villingen
|
3171 |
69470039;Deutsche Bank Villingen Sch
|
3172 |
-
69490000;
|
3173 |
69491700;Volksbank Triberg
|
3174 |
70000000;BBk München
|
3175 |
70010080;Postbank -Giro- München
|
3176 |
70010111;SEB München
|
3177 |
70010424;Aareal Bank
|
3178 |
70010500;Deutsche Pfandbriefbank
|
|
|
3179 |
70011100;Deutsche Kontor Grünwald
|
3180 |
70011110;Kontor Sofort Bank Grünwald
|
3181 |
70011200;Bank Vontobel Europe
|
@@ -3190,11 +3162,17 @@
|
|
3190 |
70012100;VEM Aktienbank München
|
3191 |
70012200;Bank Sarasin
|
3192 |
70012300;V-Bank München
|
3193 |
-
70012500;HTB München
|
3194 |
70012600;Südt. Sparkasse München
|
3195 |
70013000;Ebase Aschheim
|
3196 |
70013100;Payment Services BV Werther
|
|
|
|
|
3197 |
70013500;Bankhaus Herzogpark München
|
|
|
|
|
|
|
|
|
|
|
3198 |
70020001;UniCredit exHypo Ndl645 M
|
3199 |
70020270;UniCredit Bank-HypoVereinbk
|
3200 |
70020300;Commerz Finanz München
|
@@ -3205,9 +3183,9 @@
|
|
3205 |
70025175;UniCredit Bank-HypoVereinbk
|
3206 |
70030014;Fürst Fugger Privatbk MUC
|
3207 |
70030111;Flessabank München
|
3208 |
-
70030300;Reuschel & Co
|
3209 |
70030400;Merck Finck & Co München
|
3210 |
-
70030800;
|
3211 |
70031000;Bankhaus Sperrer Freising
|
3212 |
70032500;SGKB Deutschland, München
|
3213 |
70033100;Baaderbank Unterschleißheim
|
@@ -3218,15 +3196,15 @@
|
|
3218 |
70040061;Commerzbank Gf 861 München
|
3219 |
70040062;Commerzbank CC München
|
3220 |
70040063;Commerzbank CC München
|
|
|
3221 |
70045050;Commerzbank Service-BZ
|
3222 |
70050000;BayernLB München
|
3223 |
70051003;Sparkasse Freising
|
3224 |
70051540;Sparkasse Dachau
|
3225 |
-
70051805;
|
3226 |
70051995;Spk Erding-Dorfen
|
3227 |
70052060;Spk Landsberg-Dießen
|
3228 |
70053070;Spk Fürstenfeldbruck
|
3229 |
-
70054080;Spk Starnberg -alt-
|
3230 |
70054306;Spk Bad Tölz-Wolfratshausen
|
3231 |
70070010;Deutsche Bank München
|
3232 |
70070024;Deutsche Bank PGK München
|
@@ -3244,7 +3222,7 @@
|
|
3244 |
70090500;Sparda-Bank München
|
3245 |
70090606;apoBank München
|
3246 |
70091500;VB Raiffbk Dachau
|
3247 |
-
70091600;Landsberg-Ammersee
|
3248 |
70091900;VR-Bank Erding
|
3249 |
70093200;VR-Bank Starnberg-Hg-Lbg
|
3250 |
70093400;Vb Raiffbk Ismaning
|
@@ -3260,7 +3238,7 @@
|
|
3260 |
70120900;UniCredit exHypo Ndl BACA
|
3261 |
70130700;Lenz Bank München
|
3262 |
70130800;Merkur Bank München
|
3263 |
-
70133300;Santander
|
3264 |
70150000;St Spk München
|
3265 |
70160000;DZ BANK München
|
3266 |
70160300;Raiffbk München -alt-
|
@@ -3269,7 +3247,6 @@
|
|
3269 |
70169132;Raiffbk Griesstätt-Halfing
|
3270 |
70169165;Raiffbk Chiemgau-Nord-Obing
|
3271 |
70169168;VR-Bank Chiemgau-Süd -alt-
|
3272 |
-
70169179;VB Siegsdorf-Bergen -alt-
|
3273 |
70169186;Raiffbk Pfaffenhofen Glonn
|
3274 |
70169190;Raiffbk Tattenh Großkarol
|
3275 |
70169191;Raiffbk Rupertiwinkel
|
@@ -3316,11 +3293,11 @@
|
|
3316 |
70169575;Raiffeisenbank Türkheim
|
3317 |
70169576;Raiff-Volksbank Tüßling
|
3318 |
70169585;Raiffbk Unterschleißh-H-alt
|
3319 |
-
70169596;Raiffbk Walpertskirchen
|
3320 |
70169598;Raiffbk im Oberland
|
3321 |
70169599;Raiffeisenbank Weil u Umgeb
|
3322 |
70169602;Raiffeisenbank Weilheim
|
3323 |
-
70169605;
|
3324 |
70169614;Freisinger Bank VB-Raiffbk
|
3325 |
70169619;Raiffeisenbank Zorneding
|
3326 |
70169653;Raiffeisenbank Aiglsbach
|
@@ -3334,7 +3311,7 @@
|
|
3334 |
70220800;VVB München
|
3335 |
70220900;Wüstenrot Bausparkasse
|
3336 |
70230600;Isbank München
|
3337 |
-
70250150;
|
3338 |
70300000;BBk München eh Garmisch-Par
|
3339 |
70320090;UniCredit Bank-HypoVereinbk
|
3340 |
70320305;UniCredit exHypo Ndl635 Gar
|
@@ -3355,7 +3332,6 @@
|
|
3355 |
71051010;Kr Spk Altötting-Burgh-alt-
|
3356 |
71052050;Kr Spk Traunstein-Trostberg
|
3357 |
71061009;VR meine Raiffeisenbank
|
3358 |
-
71062194;VR Traunstein -alt-
|
3359 |
71062802;Raiffeisenbank Anger
|
3360 |
71090000;VB RB Oberbayern Südost
|
3361 |
71100000;BBk München eh Rosenheim
|
@@ -3389,14 +3365,14 @@
|
|
3389 |
72021271;UniCredit Bank-HypoVereinbk
|
3390 |
72021876;UniCredit Bank-HypoVereinbk
|
3391 |
72030014;Fürst Fugger Privatbk Augsb
|
3392 |
-
72030227;
|
3393 |
72040046;Commerzbank Augsburg
|
3394 |
72050000;St Spk Augsburg
|
3395 |
72050101;Kr Spk Augsburg
|
3396 |
72051210;St Spk Aichach
|
3397 |
72051840;Spk Günzburg-Krumbach
|
3398 |
72060300;Handels- u Gewbk Augsb-alt-
|
3399 |
-
72062152;VR-Bank
|
3400 |
72069002;Raiffbk Adelzhausen-Sielenb
|
3401 |
72069005;Raiffeisenbank Aindling
|
3402 |
72069034;Raiffeisenbank Bissingen
|
@@ -3416,7 +3392,6 @@
|
|
3416 |
72069139;Rbk Langweid-Achsh-alt-
|
3417 |
72069141;Raiffbk Emersacker-alt-
|
3418 |
72069155;Raiffbk Kissing-Mering
|
3419 |
-
72069168;V Raiffbk Niederraunau-alt-
|
3420 |
72069179;Raiffbk Unteres Zusamtal
|
3421 |
72069181;Raiffeisenbank Offingen
|
3422 |
72069193;Raiffeisenbank Rehling
|
@@ -3426,9 +3401,7 @@
|
|
3426 |
72069263;Raiffeisenbank Wittislingen
|
3427 |
72069274;Raiffbk Augsburger Ld West
|
3428 |
72069308;RVB Wemding
|
3429 |
-
72069325;Raiffeisenbank Möttingen
|
3430 |
72069329;Raiffeisen-Volksbank Ries
|
3431 |
-
72069330;Raiffbk Oberes Kesselt-alt-
|
3432 |
72069736;Raiffbk Iller-Roth-Günz
|
3433 |
72069789;Raiffbk Pfaffenhausen
|
3434 |
72070001;Deutsche Bank Augsburg
|
@@ -3453,7 +3426,7 @@
|
|
3453 |
72169013;Raiffbk Aresing-Hörz-Schilt
|
3454 |
72169080;Raiffbk Aresing-Gerolsbach
|
3455 |
72169111;Raiffbk Hohenwart -alt-
|
3456 |
-
72169218;
|
3457 |
72169246;Raiffbk Schrobenhausener Ld
|
3458 |
72169380;Raiffeisenbank Beilngries
|
3459 |
72169733;Rbk Berg im Gau-L -alt-
|
@@ -3468,7 +3441,7 @@
|
|
3468 |
72180002;Commerzbank Ingolstadt
|
3469 |
72191300;Volksbank Eichstätt
|
3470 |
72191600;Hallertauer Volksbank
|
3471 |
-
72191800;
|
3472 |
72220074;UniCredit Bank-HypoVereinbk
|
3473 |
72223182;UniCredit Bank-HypoVereinbk
|
3474 |
72250000;Sparkasse Nördlingen
|
@@ -3492,7 +3465,6 @@
|
|
3492 |
73191500;Illertisser Bank
|
3493 |
73300000;BBk Augsburg eh Kempten
|
3494 |
73311600;Hypo-Landesbk
|
3495 |
-
73311800;UniCredit Bank Austria
|
3496 |
73320073;UniCredit Bank-HypoVereinbk
|
3497 |
73320442;UniCredit exHypo Ndl669 Kpt
|
3498 |
73321177;UniCredit Bank-HypoVereinbk
|
@@ -3518,7 +3490,7 @@
|
|
3518 |
73369881;Raiffeisenbank Haldenwang
|
3519 |
73369888;Raiffbk Irsee-Pforz.-Rieden
|
3520 |
73369902;Raiffeisenbank Kempten
|
3521 |
-
73369915;Raiffbk Obergermaringen
|
3522 |
73369918;Raiffeisenbank Kirchweihtal
|
3523 |
73369920;Raiffeisenbank Oberallgäu
|
3524 |
73369933;Raiffbk Südliches Ostallgäu
|
@@ -3604,7 +3576,6 @@
|
|
3604 |
74366666;Raiffeisenbank Geisenhausen
|
3605 |
74369068;Raiffbk Hofkirchen-Bayerbch
|
3606 |
74369088;Raiffbk Geiselhöring-Pfabg
|
3607 |
-
74369091;Raiffeisenbank Straubing
|
3608 |
74369130;Raiffeisenbank Parkstetten
|
3609 |
74369146;Raiffbk Rattiszell-Konzell
|
3610 |
74369656;Raiffeisenbank Essenbach
|
@@ -3694,7 +3665,7 @@
|
|
3694 |
76060618;VR Bank Nürnberg
|
3695 |
76061025;Raiffbk Spar+Kreditbk Lauf
|
3696 |
76061482;Raiffeisenbank Hersbruck
|
3697 |
-
76069359;Raiffeisenbank
|
3698 |
76069369;Raiffbk Auerbach-Freihung
|
3699 |
76069372;Raiffbk Bad Windsheim
|
3700 |
76069378;Raiffeisenbank Bechhofen
|
@@ -3778,10 +3749,10 @@
|
|
3778 |
77060100;VR Bank Bamberg
|
3779 |
77061004;Raiffbk Obermain Nord
|
3780 |
77061425;Raiffeisen-Volksbank Ebern
|
3781 |
-
77062014;
|
3782 |
77062139;Raiff-VB Bad Staffelstein
|
3783 |
77063048;Raiffbk Hallstadt -alt-
|
3784 |
-
77065141;
|
3785 |
77069042;Raiffbk Gößweinstein -alt-
|
3786 |
77069044;Raiffbk Küps-Mitwitz-Stockh
|
3787 |
77069051;Raiffbk Heiligenstadt
|
@@ -3798,7 +3769,7 @@
|
|
3798 |
77069782;Raiffeisenbank am Kulm
|
3799 |
77069836;Raiffbk Berg-Bad Steben
|
3800 |
77069868;Raiffeisenbank Oberland
|
3801 |
-
77069870;Raiffbk
|
3802 |
77069879;Raiffbk Oberkotzau -alt-
|
3803 |
77069893;Raiffeisenbank Töpen -alt-
|
3804 |
77069906;Raiffbk Wüstenselbitz
|
@@ -3807,7 +3778,6 @@
|
|
3807 |
77120073;UniCredit Bank-HypoVereinbk
|
3808 |
77140061;Commerzbank Kulmbach
|
3809 |
77150000;Spk Kulmbach-Kronach
|
3810 |
-
77151640;Spk Kronach-Ludwigsst -alt-
|
3811 |
77190000;Kulmbacher Bank
|
3812 |
77300000;BBk Bayreuth
|
3813 |
77320072;UniCredit Bank-HypoVereinbk
|
@@ -3849,7 +3819,7 @@
|
|
3849 |
79032038;Bank Schilling Hammelburg
|
3850 |
79040047;Commerzbank Würzburg
|
3851 |
79050000;Spk Mainfranken Würzburg
|
3852 |
-
79061000;
|
3853 |
79061153;Raiffeisenbank Lohr -alt-
|
3854 |
79062106;Raiffbk Hammelburg
|
3855 |
79063060;Raiffbk Estenfeld-Bergtheim
|
@@ -3860,7 +3830,6 @@
|
|
3860 |
79069001;Raiffbk Volkach-Wiesentheid
|
3861 |
79069010;VR-Bank Schweinfurt
|
3862 |
79069031;Raiffbk Bütthard-Gaukönigsh
|
3863 |
-
79069078;Raiffeisenbank Geiselwind
|
3864 |
79069090;Raiffbk Ulsenheim-Gollh-alt
|
3865 |
79069145;Raiffbk Kreuzw-Hasl -alt-
|
3866 |
79069150;Raiffbk Main-Spessart
|
@@ -3926,10 +3895,8 @@
|
|
3926 |
80040000;Commerzbank Halle
|
3927 |
80050500;Kr Spk Mersebg-Querfurt alt
|
3928 |
80053000;Spk Burgenlandkreis
|
3929 |
-
80053502;Kr Spk Quedlinburg -alt-
|
3930 |
80053552;Kr Spk Sangerhausen -alt-
|
3931 |
80053572;St Spk Dessau
|
3932 |
-
80053612;Kr Spk Bernburg -alt-
|
3933 |
80053622;Kr Spk Köthen -alt-
|
3934 |
80053722;Kr Spk Anhalt-Bitterfeld
|
3935 |
80053762;Saalesparkasse Halle
|
@@ -3953,15 +3920,11 @@
|
|
3953 |
81000000;BBk Magdeburg
|
3954 |
81010111;SEB Magdeburg
|
3955 |
81020500;Bank für Sozialwirtschaft
|
3956 |
-
81020886;UniCredit ex-Hypo Magdeburg
|
3957 |
81040000;Commerzbank Magdeburg
|
3958 |
81050000;KSK ASL-SFT Staßfurt -alt-
|
3959 |
81050555;Kreissparkasse Stendal
|
3960 |
81051000;Bördesparkasse -alt-
|
3961 |
81052000;Harzsparkasse
|
3962 |
-
81053112;Kr Spk Wernigerode -alt-
|
3963 |
-
81053132;Kr Spk Halberstadt -alt-
|
3964 |
-
81053242;Kr Spk Schönebeck -alt-
|
3965 |
81053272;St Spk Magdeburg
|
3966 |
81054000;Sparkasse Jerichower Land
|
3967 |
81055000;Kreissparkasse Börde
|
@@ -4023,8 +3986,7 @@
|
|
4023 |
83094454;Volksbank Saaletal
|
4024 |
83094494;Volksbank Eisenberg
|
4025 |
83094495;EthikBank Zndl Vb Eisenberg
|
4026 |
-
|
4027 |
-
84000000;BBk Meiningen
|
4028 |
84020086;UniCredit Bank-HypoVereinbk
|
4029 |
84020087;UniCredit Bank-HypoVereinbk
|
4030 |
84030111;Flessabank Meiningen
|
@@ -4051,6 +4013,7 @@
|
|
4051 |
85050100;Spk Oberlausitz-Niederschl.
|
4052 |
85050200;Kr Spk Riesa-Großenhain alt
|
4053 |
85050300;Ostsächsische Spk Dresden
|
|
|
4054 |
85055000;Spk Meißen
|
4055 |
85060000;VB Pirna
|
4056 |
85065028;Raiffbk Neustadt Sachs -alt
|
@@ -4079,7 +4042,7 @@
|
|
4079 |
86020500;Bank für Sozialwirtschaft
|
4080 |
86020600;Hanseatic Bank Leipzig
|
4081 |
86020880;UniCredit exHypo Ndl508 Lei
|
4082 |
-
86033300;Santander
|
4083 |
86040000;Commerzbank Leipzig
|
4084 |
86040060;Commerzbank CC Leipzig
|
4085 |
86040061;Commerzbank CC Leipzig
|
@@ -4113,10 +4076,10 @@
|
|
4113 |
87050000;Sparkasse Chemnitz
|
4114 |
87051000;Spk Mittelsachsen
|
4115 |
87052000;Spk Mittelsachsen
|
4116 |
-
87053000;Spk Mittleres
|
4117 |
-
87054000;
|
4118 |
87055000;Sparkasse Zwickau
|
4119 |
-
87056000;Kr Spk Aue-
|
4120 |
87058000;Sparkasse Vogtland
|
4121 |
87065893;VB Erzgebirge -alt-
|
4122 |
87065918;Raiffbk Werdau-Zwickau
|
14 |
10030500;Bankhaus Löbbecke Berlin
|
15 |
10030600;North Channel Bank Mainz
|
16 |
10030700;Gries & Heissel Wiesbaden
|
17 |
+
10033300;Santander Bank Berlin
|
18 |
10040000;Commerzbank -West- Berlin
|
19 |
+
10040010;Commerzbank CC SP, Berlin
|
20 |
10040048;Commerzbank BER GF-B48
|
21 |
10040060;Commerzbank Gf 160 Berlin
|
22 |
10040061;Commerzbank Gf 161 Berlin
|
67 |
10120760;UniCredit exHypo Ndl260 Bln
|
68 |
10120800;VON ESSEN Bank
|
69 |
10120900;readybank
|
|
|
70 |
10130600;Isbank Berlin
|
71 |
10130800;BIW Bank
|
72 |
+
10220600;Sydbank Berlin
|
73 |
10310600;Tradegate Berlin
|
74 |
12016836;KfW Berlin
|
75 |
12030000;Deutsche Kreditbank Berlin
|
79 |
12060000;DZ BANK
|
80 |
12070000;Deutsche Bank Ld Brandenbg
|
81 |
12070024;Deutsche Bank PGK Brandenbg
|
82 |
+
12070070;Deutsche Bank (Gf intern)
|
83 |
+
12070088;Deutsche Bank (Gf intern)
|
84 |
12080000;Commerzbank Fil II Berlin
|
85 |
12090640;apoBank -ZV-Ost- Berlin
|
86 |
12096597;Sparda-Bank Berlin
|
87 |
13000000;BBk Rostock
|
88 |
13010111;SEB Rostock
|
|
|
89 |
13040000;Commerzbank Rostock
|
90 |
13050000;Ostseesparkasse Rostock
|
91 |
+
13051042;Sparkasse Rügen
|
92 |
13061008;Volksbank Wolgast
|
93 |
13061028;Volksbank Raiffeisenbank
|
94 |
13061078;VB u Raiffbk
|
146 |
17040000;Commerzbank Frankfurt Oder
|
147 |
17052000;Sparkasse Barnim Eberswalde
|
148 |
17052302;St Spk Schwedt
|
|
|
149 |
17054040;Spk Märkisch-Oderland
|
150 |
17055050;Sparkasse Oder-Spree
|
151 |
17056060;Spk Uckermark Prenzlau
|
152 |
17062428;Raiff-VB Oder-Spree Beeskow
|
153 |
17080000;Commerzbank Frankfurt, O
|
154 |
17092404;VR Bank Fürstenwalde
|
155 |
+
18000000;BBk Berlin eh Cottbus
|
156 |
18020086;UniCredit Bank-HypoVereinbk
|
157 |
18040000;Commerzbank Cottbus
|
158 |
18050000;Sparkasse Spree-Neiße
|
163 |
18080000;Commerzbank Cottbus
|
164 |
18092684;Spreewaldbank Lübben
|
165 |
18092744;Volksbank Spree-Neiße
|
|
|
166 |
20000000;BBk Hamburg
|
167 |
20010020;Postbank -Giro- Hamburg
|
168 |
20010111;SEB Hamburg
|
169 |
20010424;Aareal Bank
|
170 |
20020200;SEB Merchant Bank Hamburg
|
171 |
20020500;Jyske Bank Hamburg
|
|
|
172 |
20020900;Signal Iduna Bauspar
|
173 |
20030000;UniCredit Bank-HypoVereinbk
|
174 |
+
20030300;DONNER & REUSCHEL
|
175 |
20030400;Marcardbank Hamburg
|
176 |
20030600;Sydbank Hamburg
|
177 |
20030700;Merck Finck & Co Hamburg
|
178 |
20030900;Wölbernbank Hamburg
|
179 |
20040000;Commerzbank Hamburg
|
180 |
+
20040020;Commerzbank CC SP, Hamburg
|
181 |
20040040;Commerzbank GF RME, Hamburg
|
182 |
20040048;Commerzbank HBG GF-H48
|
183 |
20040050;Commerzbank GF COC
|
196 |
20069125;Kaltenkirchener Bank
|
197 |
20069130;Raiffbk
|
198 |
20069144;Raiffeisenbank Seestermühe
|
199 |
+
20069177;Raiffbk Südstormarn Mölln
|
200 |
20069232;Raiffbk Struvenhütten
|
201 |
20069625;Volksbank Gnarrenburg
|
202 |
20069641;Raiffeisenbank Owschlag
|
234 |
20090745;EBANK Gf Cash Hamburg
|
235 |
20090900;PSD Bank Nord Hamburg
|
236 |
20110022;Postbank -Spar- Hamburg
|
237 |
+
20110401;Hypothekenbank Frankfurt
|
238 |
20110700;Tokyo-Mitsubishi UFJ Hambg
|
239 |
20110800;Bank of China Hamburg
|
240 |
20120000;Berenbergbank
|
249 |
20130400;GRENKE BANK
|
250 |
20130412;GRENKE BANK Hamburg
|
251 |
20130600;Barclaycard
|
252 |
+
20133300;Santander Bank Hamburg
|
253 |
20190003;Hamburger Volksbank
|
254 |
20190109;VB Stormarn
|
255 |
20190206;VB Hamburg Ost-West -alt-
|
257 |
20190800;MKB Hamburg
|
258 |
20210200;Bank Melli Iran Hamburg
|
259 |
20210300;Bank Saderat Iran Hamburg
|
260 |
+
20220100;DNB Bank
|
261 |
20220400;M.M. Warburg Hyp Hamburg
|
262 |
20230300;Schröderbank Hamburg
|
263 |
20230600;Isbank Hamburg
|
343 |
21230086;UniCredit Bk ex VereinWest
|
344 |
21240040;Commerzbank Neumünster
|
345 |
21241540;Commerzbank Bad Bramstedt
|
|
|
346 |
21261089;Raiffeisenbank Wasbek -alt-
|
347 |
21261227;Raiffbk Kl-Kummerfeld -alt-
|
348 |
21270020;Deutsche Bank Neumünster
|
349 |
21270024;Deutsche Bank PGK Neumünste
|
350 |
21280002;Commerzbank Neumünster
|
351 |
+
21290016;VR Bank Neumünster
|
352 |
21340010;Commerzbank Neustadt Holst
|
353 |
21352240;Spk Holstein Eutin
|
354 |
21390008;VR Bk Ostholstein Nord-Plön
|
362 |
21463603;VB-Raiffbk i Kr Rendsburg
|
363 |
21464671;Raiffbk Todenbüttel
|
364 |
21480003;Commerzbank Rendsburg
|
365 |
+
21500000;BBk Hamburg eh Flensburg
|
366 |
21510600;Sydbank Fil. Flensburg
|
367 |
21520100;Union-Bank Flensburg
|
368 |
21530080;UniCredit Bk ex VereinWest
|
369 |
21540060;Commerzbank Flensburg
|
370 |
21550050;Nord-Ostsee Spk Flensburg
|
|
|
371 |
21565316;Raiffbk Handewitt
|
372 |
21566356;Volks- u Raiffeisenbank
|
373 |
21567360;Raiffbk Kleinjörl -alt-
|
393 |
21741825;Commerzbank Westerland
|
394 |
21750000;Nord-Ostsee Spk Schleswig
|
395 |
21751230;Spk Bredstedt
|
396 |
+
21762550;Husumer Volksbank
|
397 |
21763542;VR Bank Niebüll
|
398 |
21770011;Deutsche Bank Husum Nordsee
|
399 |
21770024;Deutsche Bank PGK Husum
|
417 |
22141428;Commerzbank Pinneberg
|
418 |
22141628;Commerzbank Uetersen
|
419 |
22150000;Spk Elmshorn
|
|
|
420 |
22151730;St Spk Wedel
|
421 |
22163114;Raiffbk Elbmarsch Heist
|
422 |
22180000;Commerzbank Elmshorn
|
446 |
23052750;Kr Spk Herzogtum Lauenburg
|
447 |
23061220;Raiffeisenbank Leezen
|
448 |
23062124;Raiffeisenbank Bargteheide
|
449 |
+
23062807;Volks- u Raiffbk Mölln -alt
|
450 |
23063129;Raiffeisenbank Lauenburg
|
451 |
23064107;Raiffeisenbank Büchen
|
452 |
23070700;Deutsche Bank PGK Lübeck
|
460 |
24030000;UniCredit Bk ex VereinWest
|
461 |
24040000;Commerzbank Lüneburg
|
462 |
24050110;Spk Lüneburg
|
463 |
+
24060300;VB Lüneburger Heide
|
464 |
24061392;VB Bleckede-Dahlenbg -alt-
|
465 |
24070024;Deutsche Bank PGK Lüneburg
|
466 |
24070075;Deutsche Bank Lüneburg
|
507 |
25069370;VB Vechelde-Wendeburg
|
508 |
25069384;Volksbank Lehre -alt-
|
509 |
25069503;VB Diepholz-Barnstorf
|
|
|
510 |
25070024;Deutsche Bank PGK Hannover
|
511 |
25070066;Deutsche Bank Stadthagen
|
512 |
25070070;Deutsche Bank Hannover
|
521 |
25090608;apoBank Hannover
|
522 |
25090900;PSD Bank Hannover
|
523 |
25120510;Bank für Sozialwirtschaft
|
|
|
524 |
25151270;St Spk Barsinghausen
|
525 |
25151371;Stadtsparkasse Burgdorf
|
526 |
25152375;Kr Spk Fallingbostel
|
527 |
25152490;St Spk Wunstorf
|
528 |
25161322;VB Burgdorf-Celle -alt-
|
|
|
529 |
25190001;Hannoversche Volksbank
|
530 |
25190101;Lindener Volksbank -alt-
|
531 |
25191510;Volksbank Lehrte -alt-
|
582 |
25841403;Commerzbank Lüchow
|
583 |
25841708;Commerzbank Schneverdingen
|
584 |
25850110;Sparkasse Uelzen Lüchow-Dbg
|
585 |
+
25851335;Spk Uelzen Lüchow-Dbg.-alt-
|
586 |
25851660;Kr Spk Soltau
|
587 |
25861395;Volksbank Dannenberg -alt-
|
588 |
25861990;Volksbank Clenze-Hitzacker
|
589 |
25862292;Volksbank Uelzen-Salzwedel
|
|
|
590 |
25863489;VB Osterbg-Lüchow-Dannenbg
|
591 |
25891483;VB Osterbg-Lüchow-Dannenbg
|
592 |
+
25891636;VB Lüneburger Heide -alt-
|
593 |
25900000;BBk Hannover eh Hildesheim
|
594 |
25910111;SEB Hildesheim
|
595 |
25930000;UniCredit Bk ex VereinWest
|
615 |
26060184;Bankhaus Hallbaum
|
616 |
26061291;Volksbank Mitte
|
617 |
26061556;Volksbank Adelebsen
|
618 |
+
26062433;VR-Bank in Südniedersachsen
|
619 |
26062575;Raiffeisenbank Rosdorf
|
620 |
26070024;Deutsche Bank PGK Göttingen
|
621 |
26070072;Deutsche Bank Göttingen
|
654 |
26565928;VB GMHütte-Hagen-Bissendorf
|
655 |
26566939;VB Osnabrücker Nd
|
656 |
26567943;VR-Bank i.Altkr.Bersenbrück
|
|
|
657 |
26570024;Deutsche Bank PGK Osnabrück
|
658 |
26570090;Deutsche Bank Osnabrück
|
659 |
26580070;Commerzbank Osnabrück
|
773 |
28066214;VB Wildeshauser Geest
|
774 |
28066620;Spar-u Darlehnskasse
|
775 |
28067068;VB Neuenkirchen-Vörden
|
776 |
+
28067170;VB Delmenhorst-Schierbrok
|
777 |
28067257;Volksbank Lastrup
|
778 |
28068218;Raiffbk Butjadingen-Abbehsn
|
779 |
28069052;Raiffbk Strückl.-Idafehn
|
808 |
28262254;Volksbank Jever
|
809 |
28262481;Raiffbk Sande-Wangerld alt
|
810 |
28262673;Raiff-VB Varel-Nordenham
|
|
|
811 |
28270024;Deutsche Bank PGK Wilhelmsh
|
812 |
28270056;Deutsche Bank Wilhelmshaven
|
813 |
28280012;Commerzbank Wilhelmshaven
|
823 |
28450000;Sparkasse Emden
|
824 |
28470024;Deutsche Bank PGK Emden
|
825 |
28470091;Deutsche Bank Emden
|
|
|
826 |
28500000;BBk Oldenburg eh Leer
|
827 |
28520009;Oldb Landesbank Leer
|
828 |
28521518;Oldb Landesbank Papenburg
|
832 |
28562716;Raiffbk Flachsmeer Westover
|
833 |
28562863;Raiffeisenbank Moormerland
|
834 |
28563749;Raiffeisenbank Moormerland
|
|
|
835 |
28570024;Deutsche Bank PGK Leer
|
836 |
28570092;Deutsche Bank Leer
|
837 |
28590075;Ostfriesische VB Leer
|
840 |
29000000;BBk Bremen
|
841 |
29010111;SEB Bremen
|
842 |
29010400;Deutsche Schiffsbank Bremen
|
843 |
+
29020000;Bankhaus Neelmeyer Bremen
|
844 |
29020100;KBC Bank Bremen
|
845 |
29020200;NF Bank Bremen
|
846 |
29020400;Factoring Bank Bremen
|
881 |
29240024;Commerzbank Bremerhaven
|
882 |
29250000;Spk Bremerhaven
|
883 |
29250150;Kr Spk Wesermünde-Hadeln
|
|
|
884 |
29262722;Volksbank Geeste-Nord
|
885 |
29265747;VB Bremerhaven-Cuxland
|
886 |
29280011;Commerzbank Bremerhaven
|
895 |
30020700;Mizuho Corp Bank Düsseldorf
|
896 |
30020900;TARGOBANK Düsseldorf
|
897 |
30022000;NRW.BANK Düsseldorf
|
898 |
+
30025500;Portigon Düsseldorf
|
899 |
30030100;S Broker Wiesbaden
|
900 |
30030400;FXdirekt Bank Oberhausen
|
901 |
30030500;C&A Bank Düsseldorf
|
910 |
30040063;Commerzbank CC Düsseldorf
|
911 |
30050000;WestLB Düsseldorf
|
912 |
30050110;St Spk Düsseldorf
|
|
|
913 |
30060010;WGZ Bank Düsseldorf
|
914 |
30060601;apoBank Düsseldorf
|
915 |
30060992;PSD Bank Rhein-Ruhr
|
951 |
30160213;VB Düsseldorf Neuss
|
952 |
30220190;UniCredit Bank-HypoVereinbk
|
953 |
30351220;St Spk Haan
|
954 |
+
30520000;RCI Banque Ndl Deutschland
|
955 |
+
30520037;RCI Banque Direkt
|
956 |
30530000;Bankhaus Werhahn Neuss
|
957 |
30530500;Bank11 Neuss
|
958 |
30550000;Sparkasse Neuss
|
1002 |
33010111;SEB Wuppertal
|
1003 |
33020000;akf bank Wuppertal
|
1004 |
33020190;UniCredit Bank-HypoVereinbk
|
1005 |
+
33030000;GEFA Wuppertal
|
1006 |
33040001;Commerzbank Wuppertal
|
1007 |
33040310;Commerzbank Zw 117
|
1008 |
33050000;St Spk Wuppertal
|
1033 |
34270024;Deutsche Bank PGK Solingen
|
1034 |
34270094;Deutsche Bank Solingen
|
1035 |
34280032;Commerzbank Solingen
|
1036 |
+
35000000;BBk Düsseldorf eh Duisburg
|
1037 |
35010111;SEB Duisburg
|
1038 |
35020030;National-Bank Duisburg
|
1039 |
35040038;Commerzbank Duisburg
|
1054 |
35251000;Spk Dinslaken-Voerde-Hünxe
|
1055 |
35261248;Volksbank Dinslaken
|
1056 |
35450000;Sparkasse am Niederrhein
|
1057 |
+
35451460;Spk Neukirchen-Vluyn -alt-
|
1058 |
+
35451775;Spk Rheinberg -alt-
|
1059 |
35461106;Volksbank Niederrhein
|
1060 |
35600000;BBk Duisburg eh Wesel
|
1061 |
35640064;Commerzbank Wesel
|
1069 |
36010200;VON ESSEN Bankges Essen
|
1070 |
36010424;Aareal Bank Essen
|
1071 |
36010600;GALLINAT-BANK Essen
|
1072 |
+
36010699;Gallinat - Bank Essen
|
1073 |
36010800;AKBANK N.V. Essen
|
1074 |
36020030;National-Bank Essen
|
1075 |
36020186;UniCredit Bank-HypoVereinbk
|
1076 |
36020700;Hanseatic Bank Essen
|
1077 |
+
36033300;Santander Bank Essen
|
1078 |
36036000;VALBA
|
1079 |
36040039;Commerzbank Essen
|
1080 |
36040060;Commerzbank CC Essen
|
1128 |
37030200;Oppenheim, Sal - jr & Cie
|
1129 |
37030700;abcbank Köln
|
1130 |
37030800;Isbank Köln
|
1131 |
+
37040037;Commerzbank CC SP, Köln
|
1132 |
37040044;Commerzbank Köln
|
1133 |
37040048;Commerzbank KOE GF-K48
|
1134 |
37040060;Commerzbank CC Köln
|
1172 |
37069577;Raiffbk Odenthal -alt-
|
1173 |
37069627;Raiffbk Rheinbach Voreifel
|
1174 |
37069639;Rosbacher Raiffeisenbank
|
1175 |
+
37069642;Raiffbk Simmerath
|
1176 |
37069707;Raiffbk Sankt Augustin
|
1177 |
37069720;VR-Bank Nordeifel Schleiden
|
1178 |
37069805;Volksbank Wachtberg
|
1247 |
38621500;Steyler Bank
|
1248 |
38650000;Kr Spk Siegburg
|
1249 |
38651390;Sparkasse Hennef
|
1250 |
+
39000000;BBk Düsseldorf eh Aachen
|
1251 |
39010111;SEB Aachen
|
1252 |
39020000;Aachener Bauspk Aachen
|
1253 |
39040013;Commerzbank Aachen
|
1263 |
39160191;Pax-Bank Aachen
|
1264 |
39161490;Volksbank Aachen Süd
|
1265 |
39162980;VR-Bank Würselen
|
|
|
1266 |
39362254;Raiffeisen-Bank Eschweiler
|
1267 |
39500000;BBk Aachen eh Düren
|
1268 |
39540052;Commerzbank Düren
|
1278 |
40040028;Commerzbank Münster Westf
|
1279 |
40050000;WestLB Münster
|
1280 |
40050150;Spk Münsterland Ost
|
1281 |
+
40055555;LBS West Münster
|
1282 |
40060000;WGZ Bank Münster
|
1283 |
40060265;DKM Darlehnskasse Münster
|
1284 |
40060300;WL BANK Münster
|
1295 |
40069408;Volksbank Baumberge
|
1296 |
40069462;Volksbank Sprakel
|
1297 |
40069477;Volksbank Wulfen -alt-
|
|
|
1298 |
40069546;Volksbank Senden
|
1299 |
40069600;Volksbank Amelsbüren
|
1300 |
40069601;Volksbank Ascheberg-Herbern
|
1313 |
40154006;Spk Gronau
|
1314 |
40154476;St Spk Lengerich
|
1315 |
40154530;Sparkasse Westmünsterland
|
|
|
1316 |
40154702;St Spk Stadtlohn
|
1317 |
40160050;Volksbank Münster
|
1318 |
40163123;Volksbank Coesfeld -alt-
|
1447 |
44080085;Commerzbank ITGK2 Dortmnd
|
1448 |
44089320;Commerzbank ITGK Dortmund
|
1449 |
44090920;PSD Bank Dortmund -alt-
|
|
|
1450 |
44152370;Sparkasse Lünen
|
1451 |
44152490;Sparkasse Schwerte
|
1452 |
44160014;Dortmunder Volksbank
|
1464 |
44570024;Deutsche Bank PGK Iserlohn
|
1465 |
44580070;Commerzbank Iserlohn
|
1466 |
44580085;Commerzbank ITGK1 Iserlhn
|
1467 |
+
44750065;Sparkasse Menden -alt-
|
1468 |
44760037;Volksbank Menden -alt-
|
1469 |
44761312;Mendener Bank
|
1470 |
44761534;VB im Märkischen Kreis
|
1471 |
45000000;BBk Hagen
|
|
|
1472 |
45040042;Commerzbank Hagen Westf
|
1473 |
45050001;Sparkasse Hagen
|
1474 |
45051485;St Spk Herdecke
|
1516 |
46250049;Spk Olpe-Drolshagen-Wenden
|
1517 |
46251590;Spk Finnentrop
|
1518 |
46251630;Spk Attend-Lennest-Kirchhdm
|
1519 |
+
46260023;Volksbank Olpe -alt-
|
1520 |
46261306;Volksbank Attendorn -alt-
|
1521 |
46261607;Volksbank Grevenbrück
|
1522 |
+
46261822;VB Olpe-Wenden-Drolshagen
|
1523 |
46262456;Volksbank Bigge-Lenne -alt-
|
1524 |
46400000;BBk Dortmund eh Arnsberg
|
1525 |
46441003;Commerzbank Meschede
|
1543 |
47260307;Bank für Kirche und Caritas
|
1544 |
47261429;Volksbank Haaren -alt-
|
1545 |
47261603;VB Büren und Salzkotten
|
|
|
1546 |
47262626;Volksbank Westenholz
|
1547 |
47262703;VB Delbrück-Hövelhof
|
1548 |
47263472;VB Westerloh-Westerwiehe
|
1549 |
+
47264367;Vereinigte Volksbank
|
1550 |
47265383;VB Wewelsburg-Ahden
|
1551 |
47267216;Volksbank Borgentreich-alt-
|
1552 |
47270024;Deutsche Bank PGK Paderborn
|
1553 |
47270029;Deutsche Bank Paderborn
|
1554 |
47451235;St Spk Marsberg -alt-
|
1555 |
+
47460028;VB Warburger Land -alt-
|
1556 |
47640051;Commerzbank Detmold
|
1557 |
47650130;Spk Detmold
|
1558 |
47651225;St Spk Blomberg
|
1559 |
47670023;Deutsche Bank Detmold
|
1560 |
47670024;Deutsche Bank PGK Detmold
|
|
|
1561 |
47691200;Volksbank Ostlippe
|
1562 |
47800000;BBk Bielefeld eh Gütersloh
|
1563 |
47840065;Commerzbank Gütersloh
|
1610 |
49051065;Stadtsparkasse Rahden
|
1611 |
49051285;St Spk Bad Oeynhausen
|
1612 |
49051990;St Spk Porta Westfalica
|
1613 |
+
49060127;Volksbank Mindener Land
|
1614 |
49060392;Volksbank Minden
|
1615 |
49061298;VB Bad Oeynhausen -alt-
|
1616 |
49061470;VB Stemweder Berg -alt-
|
1617 |
49061510;Volksbank Eisbergen -alt-
|
1618 |
+
49063296;Volksbank Petershagen -alt-
|
1619 |
49063338;Volksbank Hille -alt-
|
1620 |
49070024;Deutsche Bank PGK Minden
|
1621 |
49070028;Deutsche Bank Minden, Westf
|
1626 |
49440043;Commerzbank Herford
|
1627 |
49450120;Sparkasse Herford
|
1628 |
49451210;Spk Bad Salzuflen -alt-
|
1629 |
+
49461323;Volksbank Enger-Spenge -alt
|
1630 |
49490070;VB Bad Oeynhausen-Herford
|
1631 |
50000000;BBk Filiale Frankfurt Main
|
1632 |
50010060;Postbank Frankfurt Main
|
1645 |
50020700;Credit Europe Bank Ffm
|
1646 |
50020800;Intesa Sanpaolo Frankfurt
|
1647 |
50020900;COREALCREDIT BANK
|
1648 |
+
50021000;ING Bank, Frankfurt
|
1649 |
50021100;Frankfurter Fondsbank
|
1650 |
50023400;Bank of Beirut Frankfurt
|
1651 |
50030000;Banque PSA Finance
|
1657 |
50030900;Lehman Brothers Frankfurt
|
1658 |
50031000;Triodos Bank Deutschland
|
1659 |
50031100;Bankhaus Main Frankfurt/M
|
1660 |
+
50033300;Santander Bank Frankfurt
|
1661 |
50040000;Commerzbank Frankfurt Main
|
1662 |
50040033;Commerzbank Gf BRS Ffm
|
1663 |
+
50040038;Commerzbank MBP, Frankfurt
|
1664 |
50040040;Commerzbank ZRK Frankfurt
|
1665 |
50040048;Commerzbank FFM GF-F48
|
1666 |
+
50040050;Commerzbank CC SP, Ffm
|
1667 |
50040051;Commerzbank FFM GM-F A 51
|
1668 |
50040052;Commerzbank Service - BZ
|
1669 |
50040060;Commerzbank Gf 460 Ffm
|
1671 |
50040062;Commerzbank CC Ffm
|
1672 |
50040063;Commerzbank CC Ffm
|
1673 |
50040075;Commerzbank Gf ZCM Ffm
|
1674 |
+
50040088;Commerzbank INT 1 Ffm
|
1675 |
50040099;Commerzbank INT Ffm
|
1676 |
50042500;Commerzbank Frankfurt
|
1677 |
50044444;Commerzbank Vermverw Ffm
|
1691 |
50069187;Volksbank Egelsbach -alt-
|
1692 |
50069241;Raiffeisenkasse
|
1693 |
50069345;Raiffbk Grävenwiesbach
|
|
|
1694 |
50069455;Hüttenberger Bk Hüttenberg
|
1695 |
50069464;VB Inheiden-Villingen -alt-
|
1696 |
50069477;Raiffeisenbank Kirtorf
|
1712 |
50080060;Commerzbank Gf DrKW Ffm
|
1713 |
50080061;Commerzbank Gf DrKWSL Ffm
|
1714 |
50080077;Commerzbk WBSPK, Frankfurt
|
1715 |
+
50080079;Commerzbank ESOP, Frankfurt
|
1716 |
50080080;Commerzbank Bs 80 Ffm
|
1717 |
50080082;Commerzbk Gf AVB Ffm
|
|
|
1718 |
50080086;Commerzbk ITGK Frankfurt
|
1719 |
50080087;Commerzbank ITGK4 FFM
|
1720 |
50080088;Commerzbank ITGK5 FFM
|
1742 |
50110500;NATIXIS Frankfurt am Main
|
1743 |
50110636;DTC SCB Germany Branch
|
1744 |
50110700;Frankfurter Bankgesellsch
|
1745 |
+
50110800;J.P. Morgan Frankfurt
|
1746 |
+
50110801;J.P. Morgan, IR, Ffm
|
1747 |
50110900;Bank of America N.A. Mil Bk
|
1748 |
50120000;MainFirst Bank Frankfurt
|
1749 |
50120100;ICICI Bank Frankfurt
|
1750 |
+
50120383;Bethmann Bank Frankfurt
|
1751 |
50120500;CSD Frankfurt Main
|
1752 |
50120600;Bank of Communications
|
1753 |
50120900;VakifBank Frankfurt
|
1758 |
50130300;FIRST BANK Frankfurt
|
1759 |
50130400;Merck Finck & Co Frankfurt
|
1760 |
50130600;UBS Deutschland Frankfurt/M
|
1761 |
+
50131000;Vietinbank
|
1762 |
50150000;West LB Frankfurt Main
|
1763 |
50190000;Frankfurter Volksbank
|
1764 |
50190300;Volksbank Höchst
|
1826 |
50210188;SEB TZN MB Frankfurt
|
1827 |
50210189;SEB TZN MB Frankfurt
|
1828 |
50210200;Rabobank Frankfurt Main
|
1829 |
+
50210212;RaboDirect Frankfurt Main
|
1830 |
+
50210300;Hypothekenbank Frankfurt
|
1831 |
+
50210400;Hypothekenbank Frankfurt
|
1832 |
50210600;equinet Bank, Frankfurt
|
1833 |
+
50210800;ProCredit Bank, Frankfurt
|
1834 |
50210900;Citigroup GM Frankfurt
|
1835 |
50220085;UBS Deutschland Frankfurt/M
|
1836 |
+
50220200;Bethmann Bank (LGT Ffm)
|
1837 |
50220500;Bank of Scotland
|
1838 |
50220900;Hauck & Aufhäuser
|
1839 |
50230000;ABC International Bank Ffm
|
1859 |
50330300;The Bank of New York Mellon
|
1860 |
50330500;CHAABI BANK FRANKFURT
|
1861 |
50330600;Sepahbank Frankfurt, Main
|
1862 |
+
50330700;Valovis Bank Neu-Isenburg
|
1863 |
+
50334400;BNY Mellon NL FFM
|
1864 |
50400000;BBk Zentrale Frankfurt Main
|
1865 |
50510111;SEB Offenbach Main
|
1866 |
50510120;SEB TZN MB
|
1978 |
50861393;SpDK Zell -alt-
|
1979 |
50861501;Raiffbk Nördliche Bergstr
|
1980 |
50862311;VB Gräfenhausen -alt-
|
1981 |
+
50862408;Ver VB Griesh-Weiterst -alt
|
1982 |
50862703;VB Gersprenztal-Otzberg
|
1983 |
50862835;Raiffeisenbank Schaafheim
|
1984 |
50862903;Volksbank Mainspitze
|
1999 |
50892500;Groß-Gerauer Volksbank
|
2000 |
50950068;Sparkasse Bensheim
|
2001 |
50951469;Sparkasse Starkenburg
|
|
|
2002 |
50961206;Raiffeisenbank Bürstadt
|
2003 |
50961312;Raiffbk Groß-Rohrheim
|
2004 |
50961592;Volksbank Weschnitztal
|
2005 |
50961685;Volksbank Überwald-Gorxheim
|
2006 |
50970004;Deutsche Bank Bensheim
|
2007 |
50970024;Deutsche Bank PGK Bensheim
|
|
|
2008 |
51000000;BBk Frankfurt eh Wiesbaden
|
2009 |
51010111;SEB Wiesbaden
|
2010 |
51010400;Aareal Bank
|
2040 |
51210700;NIBC Bank Frankfurt am Main
|
2041 |
51210800;SOGEBANK Frankfurt Main
|
2042 |
51220200;SEB Merchant Banking Ffm
|
2043 |
+
51220211;SEB Ffm SAP
|
2044 |
51220400;Bank Saderat Iran Frankfurt
|
2045 |
51220700;ZIRAAT BANK
|
2046 |
51220800;Banco do Brasil Frankfurt
|
2047 |
51220900;Morgan Stanley Bank
|
2048 |
51220910;Morgan Stanley Bank
|
2049 |
+
51230100;Hypothekenbank Frankfurt
|
2050 |
51230400;RBS Deutschland FFM
|
2051 |
51230500;Standard Chartered Bank Ffm
|
2052 |
51230502;ETC SCB Germany Branch
|
2072 |
51380040;Commerzbank Gießen
|
2073 |
51380085;Commerzbank ITGK1 Gießen
|
2074 |
51390000;VB Mittelhessen
|
2075 |
+
51410111;SEB Frankfurt am Main
|
2076 |
51410600;Merrill Lynch Intl Bank FFM
|
2077 |
51410700;Bank of China Frankfurt
|
2078 |
51410800;OnVista Bank Frankfurt/Main
|
2080 |
51420300;Bank Julius Bär Frankfurt
|
2081 |
51420600;Svenska Handelsbanken
|
2082 |
51430300;Nordea Bank Finland
|
2083 |
+
51430321;Nordea Bank Frankfurt
|
2084 |
51430400;Goldman, Sachs Ffm
|
2085 |
51540037;Commerzbank Wetzlar
|
2086 |
51550035;Sparkasse Wetzlar
|
2105 |
51961515;Spar-u Darlehnskasse
|
2106 |
51961801;Volksbank Feldatal
|
2107 |
51990000;Volksbank Lauterbach-Schl
|
2108 |
+
52000000;BBk Frankfurt eh Kassel
|
2109 |
52010111;SEB Kassel
|
2110 |
52040021;Commerzbank Kassel
|
2111 |
52050000;Landeskreditkasse Kassel
|
2123 |
52061303;Raiffbk Borken
|
2124 |
52062200;VR-Bank Chattengau
|
2125 |
52062601;VR-Bank Schwalm-Eder
|
|
|
2126 |
52063369;VR-Bank Spangenbg-Morschen
|
2127 |
52063550;Raiffbk
|
2128 |
52064156;Raiffbk Baunatal
|
2239 |
54540033;Commerzbank Ludwigshafen Rh
|
2240 |
54550010;Sparkasse Vorderpfalz
|
2241 |
54550120;Kreissparkasse Rhein-Pfalz
|
|
|
2242 |
54561310;RV Bank Rhein-Haardt
|
2243 |
54570024;Deutsche Bank PGK Ludwigsha
|
2244 |
54570094;Deutsche Bank Ludwigshafen
|
2255 |
54690623;apoBank Neustadt, Weinstr
|
2256 |
54691200;VR Bank Mittelhaardt
|
2257 |
54750010;Kr u St Spk Speyer
|
|
|
2258 |
54760900;EKK Speyer
|
2259 |
+
54761411;Raiffbk Schifferstadt -alt-
|
2260 |
54790000;VB Kur- und Rheinpfalz
|
2261 |
54820674;UniCredit exHypo Ndl659LanP
|
2262 |
54850010;Spk Südl Weinstr in Landau
|
2263 |
54851440;Spk Kandel Pfalz
|
2264 |
+
54861190;Raiffbk Oberhaardt-Gäu-alt-
|
2265 |
54862390;Raiffeisenbank Herxheim
|
2266 |
54862500;VR Bank Südpfalz
|
2267 |
54891300;VR Bank Südl Weinstr
|
2279 |
55020700;SWK-Bank Bingen
|
2280 |
55030500;GE Capital Bank Mainz
|
2281 |
55030533;GE Capital Direkt
|
2282 |
+
55033300;Santander Bank Mainz
|
2283 |
55040022;Commerzbank Mainz
|
2284 |
55040060;Commerzbank CC Mainz
|
2285 |
55040061;Commerzbank CC Mainz
|
2286 |
55050000;ZV LBBW Mainz
|
2287 |
55050120;Sparkasse Mainz
|
|
|
2288 |
55060321;VR-Bank Mainz
|
2289 |
55060417;VR-Bank Mainz
|
2290 |
55060611;Genobank Mainz
|
2304 |
55150098;Clearingkonto LRP-SI
|
2305 |
55160195;Pax-Bank Mainz
|
2306 |
55190000;Mainzer Volksbank Mainz
|
2307 |
+
55190028;Mainzer Volksbank -alt-
|
2308 |
+
55190050;Mainzer Volksbank -alt-
|
2309 |
+
55190064;Mainzer Volksbank -alt-
|
2310 |
+
55190065;Mainzer Volksbank -alt-
|
2311 |
+
55190068;Mainzer Volksbank -alt-
|
2312 |
+
55190088;Mainzer Volksbank -alt-
|
2313 |
+
55190094;Mainzer Volksbank -alt-
|
2314 |
55340041;Commerzbank Worms
|
2315 |
55350010;Sparkasse Worms-Alzey-Ried
|
|
|
2316 |
55361202;Raiffeisenbank Alsh-Gimbsh
|
|
|
|
|
2317 |
55362071;Volksbank Bechtheim
|
2318 |
55390000;Volksbank Worms-Wonnegau
|
2319 |
56000000;BBk Mainz eh Bad Kreuznach
|
2329 |
56090000;VB Rhein-Nahe-Hunsrück
|
2330 |
56240050;Commerzbank Idar-Oberstein
|
2331 |
56250030;Kr Spk Birkenfeld
|
|
|
2332 |
56261735;Raiffeisenbank Nahe
|
2333 |
56270024;Deutsche Bank PGK I-Oberst
|
2334 |
56270044;Deutsche Bank Idar-Oberst
|
2358 |
57069526;Raiffbk Idarwald -alt-
|
2359 |
57069727;Raiffeisenbank Irrel
|
2360 |
57069806;VR-Bank Hunsrück-Mosel
|
|
|
2361 |
57070024;Deutsche Bank PGK Koblenz
|
2362 |
57070045;Deutsche Bank Koblenz
|
2363 |
57080070;Commerzbank Koblenz
|
2413 |
58761343;Raiffbk Zeller Land
|
2414 |
58771224;Deutsche Bank PGK Bernkast-
|
2415 |
58771242;Deutsche Bank Bernkast-Kues
|
2416 |
+
58790100;Ver VB Cochem -alt-
|
2417 |
59000000;BBk Saarbrücken
|
2418 |
59010011;Postbk St. Ingbert Gf FK 11
|
2419 |
59010012;Postbk St. Ingbert Gf FK 12
|
2514 |
60030100;Bankhaus Bauer, Stuttgart
|
2515 |
60030200;Ellwabank Stuttgart
|
2516 |
60030600;CreditPlus Bank
|
2517 |
+
60030666;CreditPlus Bank
|
2518 |
60030700;AKTIVBANK Pforzheim
|
2519 |
60030900;Isbank Stuttgart
|
2520 |
60033000;Wüstenrot Bausparkasse
|
2521 |
60035810;IBM Kreditbank Herrenberg
|
|
|
2522 |
60040060;Commerzbank CC Stuttgart
|
2523 |
60040061;Commerzbank CC Stuttgart
|
2524 |
60040071;Commerzbank Stuttgart
|
2597 |
60069710;Raiffbk Gammesfeld
|
2598 |
60069714;Raiffeisenbank Kocher-Jagst
|
2599 |
60069716;Raiffbk Nattheim -alt-
|
2600 |
+
60069724;Raiffbk Heroldstatt -alt-
|
2601 |
60069727;Raiffbk Oberstenfeld
|
2602 |
60069738;VB Freiberg und Umgebung
|
2603 |
60069766;Volks- u Raiffbk Boll -alt-
|
2643 |
60120200;BHF-BANK Stuttgart
|
2644 |
60120500;Bank für Sozialwirtschaft
|
2645 |
60130100;FFS Bank Stuttgart
|
2646 |
+
60133300;Santander Bank Stuttgart
|
2647 |
60200000;BBk Stuttgart eh Waiblingen
|
2648 |
60220030;BW Bank Waiblingen
|
2649 |
60241074;Commerzbank Backnang
|
2658 |
60270073;Deutsche Bank Waiblingen
|
2659 |
60290110;Volksbank Rems -alt-
|
2660 |
60291120;Volksbank Backnang
|
|
|
2661 |
60291510;Volksbank Winnenden
|
2662 |
60300000;BBk Stuttgart eh Sindelfing
|
2663 |
60320030;BW Bank Sindelfingen
|
2792 |
63090100;Volksbank Ulm-Biberach
|
2793 |
63091010;Ehinger Volksbank
|
2794 |
63091200;Volksbank Blaubeuren
|
2795 |
+
63091300;Volksbank Laichinger Alb
|
2796 |
63220090;UniCredit Bank-HypoVereinbk
|
2797 |
63240016;Commerzbank Heidenheim
|
2798 |
63250030;Kr Spk Heidenheim
|
2830 |
64240071;Commerzbank Rottweil
|
2831 |
64250040;Kr Spk Rottweil
|
2832 |
64251060;Kr Spk Freudenstadt
|
2833 |
+
64261363;VB Baiersbronn Murgtal
|
2834 |
64261626;Murgtalbank -alt-
|
2835 |
64261853;VB Nordschwarzwald
|
2836 |
64262408;Volksbank Dornstetten
|
2870 |
65110200;Int Bkhaus Bodensee
|
2871 |
65120091;UniCredit Bank-HypoVereinbk
|
2872 |
65140072;Commerzbank Friedrichshafen
|
|
|
2873 |
65161497;Genossenschaftsbank
|
2874 |
65162832;Raiffbk Oberteuringen
|
2875 |
65180005;Commerzbank Friedrichshfn
|
2909 |
66020286;UniCredit Bank-HypoVereinbk
|
2910 |
66020500;Bank für Sozialwirtschaft
|
2911 |
66030600;Isbank Karlsruhe
|
|
|
2912 |
66040018;Commerzbank Karlsruhe
|
2913 |
66040026;Commerzbank Karlsruhe
|
2914 |
66050000;Landesbank Baden-Württ
|
2915 |
+
66050101;Spk Karlsruhe Ettlingen
|
2916 |
+
66051220;Sparkasse Ettlingen -alt-
|
2917 |
66060000;DZ BANK
|
2918 |
66060300;Spar- und Kreditbank
|
2919 |
66060800;EKK Karlsruhe
|
2920 |
+
66061059;VB Stutensee Hardt -alt-
|
2921 |
66061407;Spar- u Kreditbk Rheinstett
|
2922 |
+
66061724;VB Stutensee-Weingarten
|
2923 |
66062138;Spar- u Kreditbank Hardt
|
2924 |
66062366;Raiffbk Hardt-Bruhrain
|
2925 |
66069103;Raiffeisenbank Elztal
|
2965 |
66420020;BW Bank Offenburg
|
2966 |
66432700;Faißtbank Wolfach
|
2967 |
66440084;Commerzbank Offenburg
|
2968 |
+
66450050;Sparkasse Offenburg/Ortenau
|
2969 |
66451346;Spk Gengenbach
|
2970 |
66451548;Spk Haslach-Zell
|
2971 |
66451862;Spk Hanauerland Kehl
|
2974 |
66470035;Deutsche Bank Offenburg
|
2975 |
66490000;Volksbank Offenburg
|
2976 |
66491800;Volksbank Bühl
|
|
|
2977 |
66492600;VB Appenweier -alt-
|
2978 |
66492700;VB Kinzigtal Wolfach
|
2979 |
66550070;Sparkasse Rastatt-Gernsbach
|
3003 |
67020020;BW Bank Mannheim
|
3004 |
67020190;UniCredit Bank-HypoVereinbk
|
3005 |
67020259;UniCredit exHypo Ndl681Mnh
|
|
|
3006 |
67040031;Commerzbank Mannheim
|
3007 |
67040060;Commerzbank CC Mannheim
|
3008 |
67040061;Commerzbank CC Mannheim
|
3009 |
67050000;Landesbank Baden-Württ
|
|
|
3010 |
67050505;Spk Rhein Neckar Nord
|
3011 |
67051203;Spk Hockenheim
|
|
|
3012 |
67060031;Volksbank Ma-Sandhofen
|
3013 |
67070010;Deutsche Bank Mannheim
|
3014 |
67070024;Deutsche Bank PGK Mannheim
|
3018 |
67089440;Commerzbank ITGK Mannheim
|
3019 |
67090000;VR Bank Rhein-Neckar
|
3020 |
67090617;apoBank Mannheim
|
|
|
3021 |
67091500;Volksbank Kurpfalz H+G Bank
|
3022 |
67092300;Volksbank Weinheim
|
3023 |
67210111;SEB Heidelberg
|
3028 |
67230001;MLP FDL Zw CS
|
3029 |
67240039;Commerzbank Heidelberg
|
3030 |
67250020;Spk Heidelberg
|
|
|
3031 |
67261909;Raiffbk Steinsberg -alt-
|
3032 |
67262243;Raiff Privatbk Wiesloch
|
3033 |
67262402;VB Schwarzbachtal -alt-
|
3047 |
67362560;Volksbank Tauber -alt-
|
3048 |
67390000;VB Main-Tauber
|
3049 |
67450048;Spk Neckartal-Odenwald
|
|
|
|
|
3050 |
67460041;Volksbank Mosbach
|
3051 |
67461424;Volksbank Franken Buchen
|
3052 |
67461733;Volksbank Kirnau
|
3106 |
68462427;VB Klettgau-Wutöschingen
|
3107 |
68490000;Volksbank Rhein-Wehra
|
3108 |
68491500;Volksbank Jestetten
|
3109 |
+
68492200;Volksbank Hochrhein
|
3110 |
69000000;BBk Vill-Schwen eh Konstanz
|
3111 |
69010111;SEB Konstanz
|
3112 |
69020020;BW Bank Konstanz
|
3140 |
69451070;Spk Donaueschingen -alt-
|
3141 |
69470024;Deutsche Bank PGK Villingen
|
3142 |
69470039;Deutsche Bank Villingen Sch
|
3143 |
+
69490000;Volksbank Villingen
|
3144 |
69491700;Volksbank Triberg
|
3145 |
70000000;BBk München
|
3146 |
70010080;Postbank -Giro- München
|
3147 |
70010111;SEB München
|
3148 |
70010424;Aareal Bank
|
3149 |
70010500;Deutsche Pfandbriefbank
|
3150 |
+
70010555;Deutsche Pfandbriefbank
|
3151 |
70011100;Deutsche Kontor Grünwald
|
3152 |
70011110;Kontor Sofort Bank Grünwald
|
3153 |
70011200;Bank Vontobel Europe
|
3162 |
70012100;VEM Aktienbank München
|
3163 |
70012200;Bank Sarasin
|
3164 |
70012300;V-Bank München
|
|
|
3165 |
70012600;Südt. Sparkasse München
|
3166 |
70013000;Ebase Aschheim
|
3167 |
70013100;Payment Services BV Werther
|
3168 |
+
70013155;BV Werther (Gf TRAXPAY)
|
3169 |
+
70013199;Payment Services BV Werther
|
3170 |
70013500;Bankhaus Herzogpark München
|
3171 |
+
70015000;Transact Berlin
|
3172 |
+
70015015;transact Berlin 001
|
3173 |
+
70015025;transact Berlin 002
|
3174 |
+
70015035;transact Berlin 003
|
3175 |
+
70017000;PayCenter Freising
|
3176 |
70020001;UniCredit exHypo Ndl645 M
|
3177 |
70020270;UniCredit Bank-HypoVereinbk
|
3178 |
70020300;Commerz Finanz München
|
3183 |
70025175;UniCredit Bank-HypoVereinbk
|
3184 |
70030014;Fürst Fugger Privatbk MUC
|
3185 |
70030111;Flessabank München
|
3186 |
+
70030300;Bankhaus Reuschel & Co
|
3187 |
70030400;Merck Finck & Co München
|
3188 |
+
70030800;Bethmann Bank
|
3189 |
70031000;Bankhaus Sperrer Freising
|
3190 |
70032500;SGKB Deutschland, München
|
3191 |
70033100;Baaderbank Unterschleißheim
|
3196 |
70040061;Commerzbank Gf 861 München
|
3197 |
70040062;Commerzbank CC München
|
3198 |
70040063;Commerzbank CC München
|
3199 |
+
70040070;Commerzbank CC SP, München
|
3200 |
70045050;Commerzbank Service-BZ
|
3201 |
70050000;BayernLB München
|
3202 |
70051003;Sparkasse Freising
|
3203 |
70051540;Sparkasse Dachau
|
3204 |
+
70051805;Kr Spk München Starnbg Ebbg
|
3205 |
70051995;Spk Erding-Dorfen
|
3206 |
70052060;Spk Landsberg-Dießen
|
3207 |
70053070;Spk Fürstenfeldbruck
|
|
|
3208 |
70054306;Spk Bad Tölz-Wolfratshausen
|
3209 |
70070010;Deutsche Bank München
|
3210 |
70070024;Deutsche Bank PGK München
|
3222 |
70090500;Sparda-Bank München
|
3223 |
70090606;apoBank München
|
3224 |
70091500;VB Raiffbk Dachau
|
3225 |
+
70091600;VR-Bank Landsberg-Ammersee
|
3226 |
70091900;VR-Bank Erding
|
3227 |
70093200;VR-Bank Starnberg-Hg-Lbg
|
3228 |
70093400;Vb Raiffbk Ismaning
|
3238 |
70120900;UniCredit exHypo Ndl BACA
|
3239 |
70130700;Lenz Bank München
|
3240 |
70130800;Merkur Bank München
|
3241 |
+
70133300;Santander Bank München
|
3242 |
70150000;St Spk München
|
3243 |
70160000;DZ BANK München
|
3244 |
70160300;Raiffbk München -alt-
|
3247 |
70169132;Raiffbk Griesstätt-Halfing
|
3248 |
70169165;Raiffbk Chiemgau-Nord-Obing
|
3249 |
70169168;VR-Bank Chiemgau-Süd -alt-
|
|
|
3250 |
70169186;Raiffbk Pfaffenhofen Glonn
|
3251 |
70169190;Raiffbk Tattenh Großkarol
|
3252 |
70169191;Raiffbk Rupertiwinkel
|
3293 |
70169575;Raiffeisenbank Türkheim
|
3294 |
70169576;Raiff-Volksbank Tüßling
|
3295 |
70169585;Raiffbk Unterschleißh-H-alt
|
3296 |
+
70169596;Raiffbk Walpertskirchen alt
|
3297 |
70169598;Raiffbk im Oberland
|
3298 |
70169599;Raiffeisenbank Weil u Umgeb
|
3299 |
70169602;Raiffeisenbank Weilheim
|
3300 |
+
70169605;RVB Isen-Sempt
|
3301 |
70169614;Freisinger Bank VB-Raiffbk
|
3302 |
70169619;Raiffeisenbank Zorneding
|
3303 |
70169653;Raiffeisenbank Aiglsbach
|
3311 |
70220800;VVB München
|
3312 |
70220900;Wüstenrot Bausparkasse
|
3313 |
70230600;Isbank München
|
3314 |
+
70250150;Kr Spk München Starnbg Ebbg
|
3315 |
70300000;BBk München eh Garmisch-Par
|
3316 |
70320090;UniCredit Bank-HypoVereinbk
|
3317 |
70320305;UniCredit exHypo Ndl635 Gar
|
3332 |
71051010;Kr Spk Altötting-Burgh-alt-
|
3333 |
71052050;Kr Spk Traunstein-Trostberg
|
3334 |
71061009;VR meine Raiffeisenbank
|
|
|
3335 |
71062802;Raiffeisenbank Anger
|
3336 |
71090000;VB RB Oberbayern Südost
|
3337 |
71100000;BBk München eh Rosenheim
|
3365 |
72021271;UniCredit Bank-HypoVereinbk
|
3366 |
72021876;UniCredit Bank-HypoVereinbk
|
3367 |
72030014;Fürst Fugger Privatbk Augsb
|
3368 |
+
72030227;Bankhaus Anton Hafner
|
3369 |
72040046;Commerzbank Augsburg
|
3370 |
72050000;St Spk Augsburg
|
3371 |
72050101;Kr Spk Augsburg
|
3372 |
72051210;St Spk Aichach
|
3373 |
72051840;Spk Günzburg-Krumbach
|
3374 |
72060300;Handels- u Gewbk Augsb-alt-
|
3375 |
+
72062152;VR-Bank HG-Bank
|
3376 |
72069002;Raiffbk Adelzhausen-Sielenb
|
3377 |
72069005;Raiffeisenbank Aindling
|
3378 |
72069034;Raiffeisenbank Bissingen
|
3392 |
72069139;Rbk Langweid-Achsh-alt-
|
3393 |
72069141;Raiffbk Emersacker-alt-
|
3394 |
72069155;Raiffbk Kissing-Mering
|
|
|
3395 |
72069179;Raiffbk Unteres Zusamtal
|
3396 |
72069181;Raiffeisenbank Offingen
|
3397 |
72069193;Raiffeisenbank Rehling
|
3401 |
72069263;Raiffeisenbank Wittislingen
|
3402 |
72069274;Raiffbk Augsburger Ld West
|
3403 |
72069308;RVB Wemding
|
|
|
3404 |
72069329;Raiffeisen-Volksbank Ries
|
|
|
3405 |
72069736;Raiffbk Iller-Roth-Günz
|
3406 |
72069789;Raiffbk Pfaffenhausen
|
3407 |
72070001;Deutsche Bank Augsburg
|
3426 |
72169013;Raiffbk Aresing-Hörz-Schilt
|
3427 |
72169080;Raiffbk Aresing-Gerolsbach
|
3428 |
72169111;Raiffbk Hohenwart -alt-
|
3429 |
+
72169218;Schrobenhausener Bank
|
3430 |
72169246;Raiffbk Schrobenhausener Ld
|
3431 |
72169380;Raiffeisenbank Beilngries
|
3432 |
72169733;Rbk Berg im Gau-L -alt-
|
3441 |
72180002;Commerzbank Ingolstadt
|
3442 |
72191300;Volksbank Eichstätt
|
3443 |
72191600;Hallertauer Volksbank
|
3444 |
+
72191800;VB Schrobenhausen -alt-
|
3445 |
72220074;UniCredit Bank-HypoVereinbk
|
3446 |
72223182;UniCredit Bank-HypoVereinbk
|
3447 |
72250000;Sparkasse Nördlingen
|
3465 |
73191500;Illertisser Bank
|
3466 |
73300000;BBk Augsburg eh Kempten
|
3467 |
73311600;Hypo-Landesbk
|
|
|
3468 |
73320073;UniCredit Bank-HypoVereinbk
|
3469 |
73320442;UniCredit exHypo Ndl669 Kpt
|
3470 |
73321177;UniCredit Bank-HypoVereinbk
|
3490 |
73369881;Raiffeisenbank Haldenwang
|
3491 |
73369888;Raiffbk Irsee-Pforz.-Rieden
|
3492 |
73369902;Raiffeisenbank Kempten
|
3493 |
+
73369915;Raiffbk Obergermaringen alt
|
3494 |
73369918;Raiffeisenbank Kirchweihtal
|
3495 |
73369920;Raiffeisenbank Oberallgäu
|
3496 |
73369933;Raiffbk Südliches Ostallgäu
|
3576 |
74366666;Raiffeisenbank Geisenhausen
|
3577 |
74369068;Raiffbk Hofkirchen-Bayerbch
|
3578 |
74369088;Raiffbk Geiselhöring-Pfabg
|
|
|
3579 |
74369130;Raiffeisenbank Parkstetten
|
3580 |
74369146;Raiffbk Rattiszell-Konzell
|
3581 |
74369656;Raiffeisenbank Essenbach
|
3665 |
76060618;VR Bank Nürnberg
|
3666 |
76061025;Raiffbk Spar+Kreditbk Lauf
|
3667 |
76061482;Raiffeisenbank Hersbruck
|
3668 |
+
76069359;Raiffeisenbank am Rothsee
|
3669 |
76069369;Raiffbk Auerbach-Freihung
|
3670 |
76069372;Raiffbk Bad Windsheim
|
3671 |
76069378;Raiffeisenbank Bechhofen
|
3749 |
77060100;VR Bank Bamberg
|
3750 |
77061004;Raiffbk Obermain Nord
|
3751 |
77061425;Raiffeisen-Volksbank Ebern
|
3752 |
+
77062014;RB Burgebrach-Stegaurach
|
3753 |
77062139;Raiff-VB Bad Staffelstein
|
3754 |
77063048;Raiffbk Hallstadt -alt-
|
3755 |
+
77065141;Raiffbk Stegaurach -alt-
|
3756 |
77069042;Raiffbk Gößweinstein -alt-
|
3757 |
77069044;Raiffbk Küps-Mitwitz-Stockh
|
3758 |
77069051;Raiffbk Heiligenstadt
|
3769 |
77069782;Raiffeisenbank am Kulm
|
3770 |
77069836;Raiffbk Berg-Bad Steben
|
3771 |
77069868;Raiffeisenbank Oberland
|
3772 |
+
77069870;Raiffbk Hochfranken West
|
3773 |
77069879;Raiffbk Oberkotzau -alt-
|
3774 |
77069893;Raiffeisenbank Töpen -alt-
|
3775 |
77069906;Raiffbk Wüstenselbitz
|
3778 |
77120073;UniCredit Bank-HypoVereinbk
|
3779 |
77140061;Commerzbank Kulmbach
|
3780 |
77150000;Spk Kulmbach-Kronach
|
|
|
3781 |
77190000;Kulmbacher Bank
|
3782 |
77300000;BBk Bayreuth
|
3783 |
77320072;UniCredit Bank-HypoVereinbk
|
3819 |
79032038;Bank Schilling Hammelburg
|
3820 |
79040047;Commerzbank Würzburg
|
3821 |
79050000;Spk Mainfranken Würzburg
|
3822 |
+
79061000;Raiffbk Ochsenfurt -alt-
|
3823 |
79061153;Raiffeisenbank Lohr -alt-
|
3824 |
79062106;Raiffbk Hammelburg
|
3825 |
79063060;Raiffbk Estenfeld-Bergtheim
|
3830 |
79069001;Raiffbk Volkach-Wiesentheid
|
3831 |
79069010;VR-Bank Schweinfurt
|
3832 |
79069031;Raiffbk Bütthard-Gaukönigsh
|
|
|
3833 |
79069090;Raiffbk Ulsenheim-Gollh-alt
|
3834 |
79069145;Raiffbk Kreuzw-Hasl -alt-
|
3835 |
79069150;Raiffbk Main-Spessart
|
3895 |
80040000;Commerzbank Halle
|
3896 |
80050500;Kr Spk Mersebg-Querfurt alt
|
3897 |
80053000;Spk Burgenlandkreis
|
|
|
3898 |
80053552;Kr Spk Sangerhausen -alt-
|
3899 |
80053572;St Spk Dessau
|
|
|
3900 |
80053622;Kr Spk Köthen -alt-
|
3901 |
80053722;Kr Spk Anhalt-Bitterfeld
|
3902 |
80053762;Saalesparkasse Halle
|
3920 |
81000000;BBk Magdeburg
|
3921 |
81010111;SEB Magdeburg
|
3922 |
81020500;Bank für Sozialwirtschaft
|
|
|
3923 |
81040000;Commerzbank Magdeburg
|
3924 |
81050000;KSK ASL-SFT Staßfurt -alt-
|
3925 |
81050555;Kreissparkasse Stendal
|
3926 |
81051000;Bördesparkasse -alt-
|
3927 |
81052000;Harzsparkasse
|
|
|
|
|
|
|
3928 |
81053272;St Spk Magdeburg
|
3929 |
81054000;Sparkasse Jerichower Land
|
3930 |
81055000;Kreissparkasse Börde
|
3986 |
83094454;Volksbank Saaletal
|
3987 |
83094494;Volksbank Eisenberg
|
3988 |
83094495;EthikBank Zndl Vb Eisenberg
|
3989 |
+
84000000;BBk Erfurt eh Meiningen
|
|
|
3990 |
84020086;UniCredit Bank-HypoVereinbk
|
3991 |
84020087;UniCredit Bank-HypoVereinbk
|
3992 |
84030111;Flessabank Meiningen
|
4013 |
85050100;Spk Oberlausitz-Niederschl.
|
4014 |
85050200;Kr Spk Riesa-Großenhain alt
|
4015 |
85050300;Ostsächsische Spk Dresden
|
4016 |
+
85050350;Ostsächsische Spk OSD.Net
|
4017 |
85055000;Spk Meißen
|
4018 |
85060000;VB Pirna
|
4019 |
85065028;Raiffbk Neustadt Sachs -alt
|
4042 |
86020500;Bank für Sozialwirtschaft
|
4043 |
86020600;Hanseatic Bank Leipzig
|
4044 |
86020880;UniCredit exHypo Ndl508 Lei
|
4045 |
+
86033300;Santander Bank Leipzig
|
4046 |
86040000;Commerzbank Leipzig
|
4047 |
86040060;Commerzbank CC Leipzig
|
4048 |
86040061;Commerzbank CC Leipzig
|
4076 |
87050000;Sparkasse Chemnitz
|
4077 |
87051000;Spk Mittelsachsen
|
4078 |
87052000;Spk Mittelsachsen
|
4079 |
+
87053000;Spk Mittleres Erzgebg -alt-
|
4080 |
+
87054000;Erzgebirgssparkasse
|
4081 |
87055000;Sparkasse Zwickau
|
4082 |
+
87056000;Kr Spk Aue-Schwarzenbg -alt
|
4083 |
87058000;Sparkasse Vogtland
|
4084 |
87065893;VB Erzgebirge -alt-
|
4085 |
87065918;Raiffbk Werdau-Zwickau
|
app/code/community/Mage/Debit/etc/config.xml
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
-
<!--
|
3 |
/**
|
4 |
* This file is part of the Mage_Debit module.
|
5 |
-
*
|
6 |
* NOTICE OF LICENSE
|
7 |
-
*
|
8 |
* This source file is subject to the Open Software License (OSL 3.0)
|
9 |
* that is bundled with this package in the file LICENSE.txt.
|
10 |
* It is also available through the world-wide-web at this URL:
|
@@ -16,7 +16,7 @@
|
|
16 |
* @category Mage
|
17 |
* @package Mage_Debit
|
18 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
19 |
-
* @copyright
|
20 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
21 |
* @link http://www.magentocommerce.com/extension/676/
|
22 |
*/
|
@@ -24,10 +24,9 @@
|
|
24 |
<config>
|
25 |
<modules>
|
26 |
<Mage_Debit>
|
27 |
-
<version>0.5.
|
28 |
</Mage_Debit>
|
29 |
</modules>
|
30 |
-
|
31 |
<global>
|
32 |
<blocks>
|
33 |
<debit>
|
@@ -42,7 +41,16 @@
|
|
42 |
<models>
|
43 |
<debit>
|
44 |
<class>Mage_Debit_Model</class>
|
|
|
45 |
</debit>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
</models>
|
47 |
<resources>
|
48 |
<debit_setup>
|
@@ -79,7 +87,6 @@
|
|
79 |
</sales_order_save_after>
|
80 |
</events>
|
81 |
</global>
|
82 |
-
|
83 |
<default>
|
84 |
<payment>
|
85 |
<debit>
|
@@ -99,19 +106,35 @@
|
|
99 |
</debit>
|
100 |
</payment>
|
101 |
</default>
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
<
|
107 |
-
<
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
113 |
</adminhtml>
|
114 |
-
|
115 |
<frontend>
|
116 |
<secure_url>
|
117 |
<debit_account>/debit/account</debit_account>
|
@@ -143,4 +166,4 @@
|
|
143 |
</debit>
|
144 |
</routers>
|
145 |
</frontend>
|
146 |
-
</config>
|
1 |
<?xml version="1.0"?>
|
2 |
+
<!--
|
3 |
/**
|
4 |
* This file is part of the Mage_Debit module.
|
5 |
+
*
|
6 |
* NOTICE OF LICENSE
|
7 |
+
*
|
8 |
* This source file is subject to the Open Software License (OSL 3.0)
|
9 |
* that is bundled with this package in the file LICENSE.txt.
|
10 |
* It is also available through the world-wide-web at this URL:
|
16 |
* @category Mage
|
17 |
* @package Mage_Debit
|
18 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
19 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
20 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
21 |
* @link http://www.magentocommerce.com/extension/676/
|
22 |
*/
|
24 |
<config>
|
25 |
<modules>
|
26 |
<Mage_Debit>
|
27 |
+
<version>0.5.3</version>
|
28 |
</Mage_Debit>
|
29 |
</modules>
|
|
|
30 |
<global>
|
31 |
<blocks>
|
32 |
<debit>
|
41 |
<models>
|
42 |
<debit>
|
43 |
<class>Mage_Debit_Model</class>
|
44 |
+
<resourceModel>debit_mysql4</resourceModel>
|
45 |
</debit>
|
46 |
+
<debit_mysql4>
|
47 |
+
<class>Mage_Debit_Model_Mysql4</class>
|
48 |
+
<entities>
|
49 |
+
<order_grid>
|
50 |
+
<table>debit_order_grid</table>
|
51 |
+
</order_grid>
|
52 |
+
</entities>
|
53 |
+
</debit_mysql4>
|
54 |
</models>
|
55 |
<resources>
|
56 |
<debit_setup>
|
87 |
</sales_order_save_after>
|
88 |
</events>
|
89 |
</global>
|
|
|
90 |
<default>
|
91 |
<payment>
|
92 |
<debit>
|
106 |
</debit>
|
107 |
</payment>
|
108 |
</default>
|
109 |
+
<admin>
|
110 |
+
<routers>
|
111 |
+
<debit>
|
112 |
+
<use>admin</use>
|
113 |
+
<args>
|
114 |
+
<module>Mage_Debit</module>
|
115 |
+
<frontName>debit</frontName>
|
116 |
+
</args>
|
117 |
+
</debit>
|
118 |
+
</routers>
|
119 |
+
</admin>
|
120 |
+
<adminhtml>
|
121 |
+
<layout>
|
122 |
+
<updates>
|
123 |
+
<debit>
|
124 |
+
<file>debit.xml</file>
|
125 |
+
</debit>
|
126 |
+
</updates>
|
127 |
+
</layout>
|
128 |
+
<translate>
|
129 |
+
<modules>
|
130 |
+
<Mage_Debit>
|
131 |
+
<files>
|
132 |
+
<default>Mage_Debit.csv</default>
|
133 |
+
</files>
|
134 |
+
</Mage_Debit>
|
135 |
+
</modules>
|
136 |
+
</translate>
|
137 |
</adminhtml>
|
|
|
138 |
<frontend>
|
139 |
<secure_url>
|
140 |
<debit_account>/debit/account</debit_account>
|
166 |
</debit>
|
167 |
</routers>
|
168 |
</frontend>
|
169 |
+
</config>
|
app/code/community/Mage/Debit/etc/system.xml
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
-
<!--
|
3 |
/**
|
4 |
* This file is part of the Mage_Debit module.
|
5 |
-
*
|
6 |
* NOTICE OF LICENSE
|
7 |
-
*
|
8 |
* This source file is subject to the Open Software License (OSL 3.0)
|
9 |
* that is bundled with this package in the file LICENSE.txt.
|
10 |
* It is also available through the world-wide-web at this URL:
|
@@ -16,7 +16,7 @@
|
|
16 |
* @category Mage
|
17 |
* @package Mage_Debit
|
18 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
19 |
-
* @copyright
|
20 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
21 |
* @link http://www.magentocommerce.com/extension/676/
|
22 |
*/
|
@@ -163,12 +163,15 @@
|
|
163 |
<show_in_default>1</show_in_default>
|
164 |
<show_in_website>1</show_in_website>
|
165 |
<show_in_store>0</show_in_store>
|
|
|
|
|
|
|
166 |
</specificgroup>
|
167 |
<orderscount translate="label comment">
|
168 |
<label>Minimum Orders Count</label>
|
169 |
<frontend_type>text</frontend_type>
|
170 |
-
<sort_order>16</sort_order>
|
171 |
-
<comment>Default: "0" for disabled check | Minimum count of orders (in the past) needed for the customer to use this payment method.</comment>
|
172 |
<show_in_default>1</show_in_default>
|
173 |
<show_in_website>1</show_in_website>
|
174 |
<show_in_store>0</show_in_store>
|
@@ -177,5 +180,50 @@
|
|
177 |
</debit>
|
178 |
</groups>
|
179 |
</payment>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
180 |
</sections>
|
181 |
</config>
|
1 |
<?xml version="1.0"?>
|
2 |
+
<!--
|
3 |
/**
|
4 |
* This file is part of the Mage_Debit module.
|
5 |
+
*
|
6 |
* NOTICE OF LICENSE
|
7 |
+
*
|
8 |
* This source file is subject to the Open Software License (OSL 3.0)
|
9 |
* that is bundled with this package in the file LICENSE.txt.
|
10 |
* It is also available through the world-wide-web at this URL:
|
16 |
* @category Mage
|
17 |
* @package Mage_Debit
|
18 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
19 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
20 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
21 |
* @link http://www.magentocommerce.com/extension/676/
|
22 |
*/
|
163 |
<show_in_default>1</show_in_default>
|
164 |
<show_in_website>1</show_in_website>
|
165 |
<show_in_store>0</show_in_store>
|
166 |
+
<depends>
|
167 |
+
<specificgroup_all>0</specificgroup_all>
|
168 |
+
</depends>
|
169 |
</specificgroup>
|
170 |
<orderscount translate="label comment">
|
171 |
<label>Minimum Orders Count</label>
|
172 |
<frontend_type>text</frontend_type>
|
173 |
+
<sort_order>16</sort_order>
|
174 |
+
<comment>Default: "0" for disabled check | Minimum count of orders (in the past) needed for the customer to use this payment method.</comment>
|
175 |
<show_in_default>1</show_in_default>
|
176 |
<show_in_website>1</show_in_website>
|
177 |
<show_in_store>0</show_in_store>
|
180 |
</debit>
|
181 |
</groups>
|
182 |
</payment>
|
183 |
+
<debitpayment translate="label" module="moneybookers">
|
184 |
+
<label>Debit Payment</label>
|
185 |
+
<tab>sales</tab>
|
186 |
+
<frontend_type>text</frontend_type>
|
187 |
+
<sort_order>980</sort_order>
|
188 |
+
<show_in_default>1</show_in_default>
|
189 |
+
<show_in_website>1</show_in_website>
|
190 |
+
<show_in_store>1</show_in_store>
|
191 |
+
<groups>
|
192 |
+
<bankaccount translate="label">
|
193 |
+
<label>Store Owner Bank Account</label>
|
194 |
+
<frontend_type>text</frontend_type>
|
195 |
+
<sort_order>1</sort_order>
|
196 |
+
<show_in_default>1</show_in_default>
|
197 |
+
<show_in_website>1</show_in_website>
|
198 |
+
<show_in_store>1</show_in_store>
|
199 |
+
<fields>
|
200 |
+
<account_owner translate="label">
|
201 |
+
<label>Account Owner</label>
|
202 |
+
<frontend_type>text</frontend_type>
|
203 |
+
<sort_order>1</sort_order>
|
204 |
+
<show_in_default>1</show_in_default>
|
205 |
+
<show_in_website>1</show_in_website>
|
206 |
+
<show_in_store>1</show_in_store>
|
207 |
+
</account_owner>
|
208 |
+
<routing_number translate="label">
|
209 |
+
<label>Routing Number</label>
|
210 |
+
<frontend_type>text</frontend_type>
|
211 |
+
<sort_order>2</sort_order>
|
212 |
+
<show_in_default>1</show_in_default>
|
213 |
+
<show_in_website>1</show_in_website>
|
214 |
+
<show_in_store>1</show_in_store>
|
215 |
+
</routing_number>
|
216 |
+
<account_number translate="label">
|
217 |
+
<label>Accountnumber</label>
|
218 |
+
<frontend_type>text</frontend_type>
|
219 |
+
<sort_order>3</sort_order>
|
220 |
+
<show_in_default>1</show_in_default>
|
221 |
+
<show_in_website>1</show_in_website>
|
222 |
+
<show_in_store>1</show_in_store>
|
223 |
+
</account_number>
|
224 |
+
</fields>
|
225 |
+
</bankaccount>
|
226 |
+
</groups>
|
227 |
+
</debitpayment>
|
228 |
</sections>
|
229 |
</config>
|
app/code/community/Mage/Debit/sql/debit_setup/mysql4-install-0.4.0.php
CHANGED
@@ -3,9 +3,9 @@
|
|
3 |
* This file is part of the Mage_Debit module.
|
4 |
*
|
5 |
* PHP version 5
|
6 |
-
*
|
7 |
* NOTICE OF LICENSE
|
8 |
-
*
|
9 |
* This source file is subject to the Open Software License (OSL 3.0)
|
10 |
* that is bundled with this package in the file LICENSE.txt.
|
11 |
* It is also available through the world-wide-web at this URL:
|
@@ -17,18 +17,18 @@
|
|
17 |
* @category Mage
|
18 |
* @package Mage_Debit
|
19 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
20 |
-
* @copyright
|
21 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
22 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
23 |
* @link http://www.magentocommerce.com/extension/676/
|
24 |
*/
|
25 |
/**
|
26 |
* Setup script
|
27 |
-
*
|
28 |
* @category Mage
|
29 |
* @package Mage_Debit
|
30 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
31 |
-
* @copyright
|
32 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
33 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
34 |
* @link http://www.magentocommerce.com/extension/676/
|
@@ -38,9 +38,9 @@ $read = Mage::getSingleton('core/resource')->getConnection('core_read');
|
|
38 |
$eid = $read->fetchRow(
|
39 |
"select entity_type_id from {$this->getTable('eav_entity_type')} where entity_type_code = 'customer'"
|
40 |
);
|
41 |
-
$
|
42 |
|
43 |
-
$
|
44 |
'type' => 'datetime',
|
45 |
'input' => 'label',
|
46 |
'label' => 'Account update date',
|
@@ -50,7 +50,7 @@ $attr_date = array(
|
|
50 |
'position' => '100'
|
51 |
);
|
52 |
|
53 |
-
$
|
54 |
'type' => 'varchar',
|
55 |
'input' => 'text',
|
56 |
'label' => 'Account Name',
|
@@ -60,7 +60,7 @@ $attr_name = array(
|
|
60 |
'position' => '100'
|
61 |
);
|
62 |
|
63 |
-
$
|
64 |
'type' => 'varchar',
|
65 |
'input' => 'text',
|
66 |
'label' => 'Account number',
|
@@ -71,7 +71,7 @@ $attr_number = array(
|
|
71 |
'position' => '100'
|
72 |
);
|
73 |
|
74 |
-
$
|
75 |
'type' => 'varchar',
|
76 |
'input' => 'text',
|
77 |
'label' => 'Bank code',
|
@@ -86,31 +86,31 @@ $installer = $this;
|
|
86 |
$installer->startSetup();
|
87 |
|
88 |
$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
|
89 |
-
$setup->addAttribute($
|
90 |
-
$setup->addAttribute($
|
91 |
-
$setup->addAttribute($
|
92 |
-
$setup->addAttribute($
|
93 |
|
94 |
-
// Since 1.4.2.0 this is necessary!
|
95 |
$eavConfig = Mage::getSingleton('eav/config');
|
96 |
|
97 |
-
$attribute = $eavConfig->getAttribute($
|
98 |
$attribute->setData('used_in_forms', array('customer_account_edit', 'customer_account_create', 'adminhtml_customer'));
|
99 |
$attribute->save();
|
100 |
|
101 |
-
$attribute = $eavConfig->getAttribute($
|
102 |
$attribute->setData('used_in_forms', array('customer_account_edit', 'customer_account_create', 'adminhtml_customer'));
|
103 |
$attribute->save();
|
104 |
|
105 |
-
$attribute = $eavConfig->getAttribute($
|
106 |
$attribute->setData('used_in_forms', array('customer_account_edit', 'customer_account_create', 'adminhtml_customer'));
|
107 |
$attribute->save();
|
108 |
|
109 |
-
$attribute = $eavConfig->getAttribute($
|
110 |
$attribute->setData('used_in_forms', array('customer_account_edit', 'customer_account_create', 'adminhtml_customer'));
|
111 |
$attribute->save();
|
112 |
|
113 |
// End setup
|
114 |
$installer->endSetup();
|
115 |
|
116 |
-
// EOF
|
3 |
* This file is part of the Mage_Debit module.
|
4 |
*
|
5 |
* PHP version 5
|
6 |
+
*
|
7 |
* NOTICE OF LICENSE
|
8 |
+
*
|
9 |
* This source file is subject to the Open Software License (OSL 3.0)
|
10 |
* that is bundled with this package in the file LICENSE.txt.
|
11 |
* It is also available through the world-wide-web at this URL:
|
17 |
* @category Mage
|
18 |
* @package Mage_Debit
|
19 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
20 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
21 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
22 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
23 |
* @link http://www.magentocommerce.com/extension/676/
|
24 |
*/
|
25 |
/**
|
26 |
* Setup script
|
27 |
+
*
|
28 |
* @category Mage
|
29 |
* @package Mage_Debit
|
30 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
31 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
32 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
33 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
34 |
* @link http://www.magentocommerce.com/extension/676/
|
38 |
$eid = $read->fetchRow(
|
39 |
"select entity_type_id from {$this->getTable('eav_entity_type')} where entity_type_code = 'customer'"
|
40 |
);
|
41 |
+
$customerTypeId = $eid['entity_type_id'];
|
42 |
|
43 |
+
$attrDate = array(
|
44 |
'type' => 'datetime',
|
45 |
'input' => 'label',
|
46 |
'label' => 'Account update date',
|
50 |
'position' => '100'
|
51 |
);
|
52 |
|
53 |
+
$attrName = array(
|
54 |
'type' => 'varchar',
|
55 |
'input' => 'text',
|
56 |
'label' => 'Account Name',
|
60 |
'position' => '100'
|
61 |
);
|
62 |
|
63 |
+
$attrNumber = array(
|
64 |
'type' => 'varchar',
|
65 |
'input' => 'text',
|
66 |
'label' => 'Account number',
|
71 |
'position' => '100'
|
72 |
);
|
73 |
|
74 |
+
$attrBlz = array(
|
75 |
'type' => 'varchar',
|
76 |
'input' => 'text',
|
77 |
'label' => 'Bank code',
|
86 |
$installer->startSetup();
|
87 |
|
88 |
$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
|
89 |
+
$setup->addAttribute($customerTypeId, 'debit_payment_acount_update', $attrDate);
|
90 |
+
$setup->addAttribute($customerTypeId, 'debit_payment_acount_name', $attrName);
|
91 |
+
$setup->addAttribute($customerTypeId, 'debit_payment_acount_number', $attrNumber);
|
92 |
+
$setup->addAttribute($customerTypeId, 'debit_payment_acount_blz', $attrBlz);
|
93 |
|
94 |
+
// Since 1.4.2.0 this is necessary!
|
95 |
$eavConfig = Mage::getSingleton('eav/config');
|
96 |
|
97 |
+
$attribute = $eavConfig->getAttribute($customerTypeId, 'debit_payment_acount_update');
|
98 |
$attribute->setData('used_in_forms', array('customer_account_edit', 'customer_account_create', 'adminhtml_customer'));
|
99 |
$attribute->save();
|
100 |
|
101 |
+
$attribute = $eavConfig->getAttribute($customerTypeId, 'debit_payment_acount_name');
|
102 |
$attribute->setData('used_in_forms', array('customer_account_edit', 'customer_account_create', 'adminhtml_customer'));
|
103 |
$attribute->save();
|
104 |
|
105 |
+
$attribute = $eavConfig->getAttribute($customerTypeId, 'debit_payment_acount_number');
|
106 |
$attribute->setData('used_in_forms', array('customer_account_edit', 'customer_account_create', 'adminhtml_customer'));
|
107 |
$attribute->save();
|
108 |
|
109 |
+
$attribute = $eavConfig->getAttribute($customerTypeId, 'debit_payment_acount_blz');
|
110 |
$attribute->setData('used_in_forms', array('customer_account_edit', 'customer_account_create', 'adminhtml_customer'));
|
111 |
$attribute->save();
|
112 |
|
113 |
// End setup
|
114 |
$installer->endSetup();
|
115 |
|
116 |
+
// EOF
|
app/code/community/Mage/Debit/sql/debit_setup/mysql4-upgrade-0.3.0-0.4.0.php
ADDED
@@ -0,0 +1,116 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* This file is part of the Mage_Debit module.
|
4 |
+
*
|
5 |
+
* PHP version 5
|
6 |
+
*
|
7 |
+
* NOTICE OF LICENSE
|
8 |
+
*
|
9 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
10 |
+
* that is bundled with this package in the file LICENSE.txt.
|
11 |
+
* It is also available through the world-wide-web at this URL:
|
12 |
+
* http://opensource.org/licenses/osl-3.0.php
|
13 |
+
* If you did not receive a copy of the license and are unable to
|
14 |
+
* obtain it through the world-wide-web, please send an email
|
15 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
16 |
+
*
|
17 |
+
* @category Mage
|
18 |
+
* @package Mage_Debit
|
19 |
+
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
20 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
21 |
+
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
22 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
23 |
+
* @link http://www.magentocommerce.com/extension/676/
|
24 |
+
*/
|
25 |
+
/**
|
26 |
+
* Setup script
|
27 |
+
*
|
28 |
+
* @category Mage
|
29 |
+
* @package Mage_Debit
|
30 |
+
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
31 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
32 |
+
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
33 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
34 |
+
* @link http://www.magentocommerce.com/extension/676/
|
35 |
+
*/
|
36 |
+
// load id for customer entity
|
37 |
+
$read = Mage::getSingleton('core/resource')->getConnection('core_read');
|
38 |
+
$eid = $read->fetchRow(
|
39 |
+
"select entity_type_id from {$this->getTable('eav_entity_type')} where entity_type_code = 'customer'"
|
40 |
+
);
|
41 |
+
$customerTypeId = $eid['entity_type_id'];
|
42 |
+
|
43 |
+
$attrDate = array(
|
44 |
+
'type' => 'datetime',
|
45 |
+
'input' => 'label',
|
46 |
+
'label' => 'Account update date',
|
47 |
+
'global' => 1,
|
48 |
+
'required' => 0,
|
49 |
+
'default' => '',
|
50 |
+
'position' => '100'
|
51 |
+
);
|
52 |
+
|
53 |
+
$attrName = array(
|
54 |
+
'type' => 'varchar',
|
55 |
+
'input' => 'text',
|
56 |
+
'label' => 'Account Name',
|
57 |
+
'global' => 1,
|
58 |
+
'required' => 0,
|
59 |
+
'default' => '',
|
60 |
+
'position' => '100'
|
61 |
+
);
|
62 |
+
|
63 |
+
$attrNumber = array(
|
64 |
+
'type' => 'varchar',
|
65 |
+
'input' => 'text',
|
66 |
+
'label' => 'Account number',
|
67 |
+
'backend' => 'debit/entity_customer_attribute_backend_encrypted',
|
68 |
+
'global' => 1,
|
69 |
+
'required' => 0,
|
70 |
+
'default' => '',
|
71 |
+
'position' => '100'
|
72 |
+
);
|
73 |
+
|
74 |
+
$attrBlz = array(
|
75 |
+
'type' => 'varchar',
|
76 |
+
'input' => 'text',
|
77 |
+
'label' => 'Bank code',
|
78 |
+
'backend' => 'debit/entity_customer_attribute_backend_encrypted',
|
79 |
+
'global' => 1,
|
80 |
+
'required' => 0,
|
81 |
+
'default' => '',
|
82 |
+
'position' => '100'
|
83 |
+
);
|
84 |
+
|
85 |
+
$installer = $this;
|
86 |
+
$installer->startSetup();
|
87 |
+
|
88 |
+
$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
|
89 |
+
$setup->addAttribute($customerTypeId, 'debit_payment_acount_update', $attrDate);
|
90 |
+
$setup->addAttribute($customerTypeId, 'debit_payment_acount_name', $attrName);
|
91 |
+
$setup->addAttribute($customerTypeId, 'debit_payment_acount_number', $attrNumber);
|
92 |
+
$setup->addAttribute($customerTypeId, 'debit_payment_acount_blz', $attrBlz);
|
93 |
+
|
94 |
+
// Since 1.4.2.0 this is necessary!
|
95 |
+
$eavConfig = Mage::getSingleton('eav/config');
|
96 |
+
|
97 |
+
$attribute = $eavConfig->getAttribute($customerTypeId, 'debit_payment_acount_update');
|
98 |
+
$attribute->setData('used_in_forms', array('customer_account_edit', 'customer_account_create', 'adminhtml_customer'));
|
99 |
+
$attribute->save();
|
100 |
+
|
101 |
+
$attribute = $eavConfig->getAttribute($customerTypeId, 'debit_payment_acount_name');
|
102 |
+
$attribute->setData('used_in_forms', array('customer_account_edit', 'customer_account_create', 'adminhtml_customer'));
|
103 |
+
$attribute->save();
|
104 |
+
|
105 |
+
$attribute = $eavConfig->getAttribute($customerTypeId, 'debit_payment_acount_number');
|
106 |
+
$attribute->setData('used_in_forms', array('customer_account_edit', 'customer_account_create', 'adminhtml_customer'));
|
107 |
+
$attribute->save();
|
108 |
+
|
109 |
+
$attribute = $eavConfig->getAttribute($customerTypeId, 'debit_payment_acount_blz');
|
110 |
+
$attribute->setData('used_in_forms', array('customer_account_edit', 'customer_account_create', 'adminhtml_customer'));
|
111 |
+
$attribute->save();
|
112 |
+
|
113 |
+
// End setup
|
114 |
+
$installer->endSetup();
|
115 |
+
|
116 |
+
// EOF
|
app/code/community/Mage/Debit/sql/debit_setup/mysql4-upgrade-0.4.9-0.5.0.php
CHANGED
@@ -3,9 +3,9 @@
|
|
3 |
* This file is part of the Mage_Debit module.
|
4 |
*
|
5 |
* PHP version 5
|
6 |
-
*
|
7 |
* NOTICE OF LICENSE
|
8 |
-
*
|
9 |
* This source file is subject to the Open Software License (OSL 3.0)
|
10 |
* that is bundled with this package in the file LICENSE.txt.
|
11 |
* It is also available through the world-wide-web at this URL:
|
@@ -17,17 +17,17 @@
|
|
17 |
* @category Mage
|
18 |
* @package Mage_Debit
|
19 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
20 |
-
* @copyright
|
21 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
22 |
* @link http://www.magentocommerce.com/extension/676/
|
23 |
*/
|
24 |
/**
|
25 |
* Setup script
|
26 |
-
*
|
27 |
* @category Mage
|
28 |
* @package Mage_Debit
|
29 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
30 |
-
* @copyright
|
31 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
32 |
* @link http://www.magentocommerce.com/extension/676/
|
33 |
*/
|
@@ -39,4 +39,4 @@ $write->query('SET FOREIGN_KEY_CHECKS=0;');
|
|
39 |
$write->query("UPDATE {$this->getTable('eav_attribute')} SET attribute_code = 'debit_payment_acount_update' WHERE attribute_code = 'debit_payment_acount_data_update';");
|
40 |
$write->query('SET FOREIGN_KEY_CHECKS=1;');
|
41 |
|
42 |
-
$installer->endSetup();
|
3 |
* This file is part of the Mage_Debit module.
|
4 |
*
|
5 |
* PHP version 5
|
6 |
+
*
|
7 |
* NOTICE OF LICENSE
|
8 |
+
*
|
9 |
* This source file is subject to the Open Software License (OSL 3.0)
|
10 |
* that is bundled with this package in the file LICENSE.txt.
|
11 |
* It is also available through the world-wide-web at this URL:
|
17 |
* @category Mage
|
18 |
* @package Mage_Debit
|
19 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
20 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
21 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
22 |
* @link http://www.magentocommerce.com/extension/676/
|
23 |
*/
|
24 |
/**
|
25 |
* Setup script
|
26 |
+
*
|
27 |
* @category Mage
|
28 |
* @package Mage_Debit
|
29 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
30 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
31 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
32 |
* @link http://www.magentocommerce.com/extension/676/
|
33 |
*/
|
39 |
$write->query("UPDATE {$this->getTable('eav_attribute')} SET attribute_code = 'debit_payment_acount_update' WHERE attribute_code = 'debit_payment_acount_data_update';");
|
40 |
$write->query('SET FOREIGN_KEY_CHECKS=1;');
|
41 |
|
42 |
+
$installer->endSetup();
|
app/code/community/Mage/Debit/sql/debit_setup/mysql4-upgrade-0.5.0-0.5.1.php
CHANGED
@@ -3,9 +3,9 @@
|
|
3 |
* This file is part of the Mage_Debit module.
|
4 |
*
|
5 |
* PHP version 5
|
6 |
-
*
|
7 |
* NOTICE OF LICENSE
|
8 |
-
*
|
9 |
* This source file is subject to the Open Software License (OSL 3.0)
|
10 |
* that is bundled with this package in the file LICENSE.txt.
|
11 |
* It is also available through the world-wide-web at this URL:
|
@@ -17,17 +17,17 @@
|
|
17 |
* @category Mage
|
18 |
* @package Mage_Debit
|
19 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
20 |
-
* @copyright
|
21 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
22 |
* @link http://www.magentocommerce.com/extension/676/
|
23 |
*/
|
24 |
/**
|
25 |
* Setup script
|
26 |
-
*
|
27 |
* @category Mage
|
28 |
* @package Mage_Debit
|
29 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
30 |
-
* @copyright
|
31 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
32 |
* @link http://www.magentocommerce.com/extension/676/
|
33 |
*/
|
@@ -38,4 +38,4 @@ $installer->startSetup();
|
|
38 |
$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
|
39 |
$setup->updateAttribute('customer', 'debit_payment_acount_update', 'frontend_input', 'date');
|
40 |
|
41 |
-
$installer->endSetup();
|
3 |
* This file is part of the Mage_Debit module.
|
4 |
*
|
5 |
* PHP version 5
|
6 |
+
*
|
7 |
* NOTICE OF LICENSE
|
8 |
+
*
|
9 |
* This source file is subject to the Open Software License (OSL 3.0)
|
10 |
* that is bundled with this package in the file LICENSE.txt.
|
11 |
* It is also available through the world-wide-web at this URL:
|
17 |
* @category Mage
|
18 |
* @package Mage_Debit
|
19 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
20 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
21 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
22 |
* @link http://www.magentocommerce.com/extension/676/
|
23 |
*/
|
24 |
/**
|
25 |
* Setup script
|
26 |
+
*
|
27 |
* @category Mage
|
28 |
* @package Mage_Debit
|
29 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
30 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
31 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
32 |
* @link http://www.magentocommerce.com/extension/676/
|
33 |
*/
|
38 |
$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
|
39 |
$setup->updateAttribute('customer', 'debit_payment_acount_update', 'frontend_input', 'date');
|
40 |
|
41 |
+
$installer->endSetup();
|
app/code/community/Mage/Debit/sql/debit_setup/mysql4-upgrade-0.5.1-0.5.2.php
ADDED
@@ -0,0 +1,60 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* This file is part of the Mage_Debit module.
|
4 |
+
*
|
5 |
+
* PHP version 5
|
6 |
+
*
|
7 |
+
* NOTICE OF LICENSE
|
8 |
+
*
|
9 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
10 |
+
* that is bundled with this package in the file LICENSE.txt.
|
11 |
+
* It is also available through the world-wide-web at this URL:
|
12 |
+
* http://opensource.org/licenses/osl-3.0.php
|
13 |
+
* If you did not receive a copy of the license and are unable to
|
14 |
+
* obtain it through the world-wide-web, please send an email
|
15 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
16 |
+
*
|
17 |
+
* @category Mage
|
18 |
+
* @package Mage_Debit
|
19 |
+
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
20 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
21 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
22 |
+
* @link http://www.magentocommerce.com/extension/676/
|
23 |
+
*/
|
24 |
+
/**
|
25 |
+
* Setup script
|
26 |
+
*
|
27 |
+
* @category Mage
|
28 |
+
* @package Mage_Debit
|
29 |
+
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
30 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
31 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
32 |
+
* @link http://www.magentocommerce.com/extension/676/
|
33 |
+
*/
|
34 |
+
|
35 |
+
/* @var $installer Mage_Sales_Model_Entity_Setup */
|
36 |
+
$installer = $this;
|
37 |
+
$installer->startSetup();
|
38 |
+
|
39 |
+
$sql = "DROP TABLE IF EXISTS `{$installer->getTable('debit/order_grid')}`;
|
40 |
+
CREATE TABLE `{$installer->getTable('debit/order_grid')}` (
|
41 |
+
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Id',
|
42 |
+
`entity_id` int(10) unsigned NOT NULL COMMENT 'Entity Id',
|
43 |
+
`store_id` smallint(5) unsigned DEFAULT NULL COMMENT 'Store Id',
|
44 |
+
`customer_id` int(10) unsigned DEFAULT NULL COMMENT 'Customer Id',
|
45 |
+
`grand_total` decimal(12,4) DEFAULT NULL COMMENT 'Grand Total',
|
46 |
+
`increment_id` varchar(50) DEFAULT NULL COMMENT 'Increment Id',
|
47 |
+
`order_currency_code` varchar(255) DEFAULT NULL COMMENT 'Order Currency Code',
|
48 |
+
`billing_name` varchar(255) DEFAULT NULL COMMENT 'Billing Name',
|
49 |
+
`created_at` timestamp NULL DEFAULT NULL COMMENT 'Created At',
|
50 |
+
`status` int(1) unsigned DEFAULT '0' COMMENT 'Status',
|
51 |
+
PRIMARY KEY (`id`),
|
52 |
+
UNIQUE KEY `UNQ_DEBITPAYMENT_ORDER_GRID_INCREMENT_ID` (`increment_id`),
|
53 |
+
CONSTRAINT `FK_DEBITPAYMENT_ORDER_GRID_CUSTOMER_ID_CUSTOMER_ENTITY_ENTITY_ID` FOREIGN KEY (`customer_id`) REFERENCES `{$installer->getTable('customer/entity')}` (`entity_id`) ON DELETE SET NULL ON UPDATE CASCADE,
|
54 |
+
CONSTRAINT `FK_DEBITPAYMENT_GRID_ENTITY_ID_SALES_FLAT_ORDER_ENTITY_ID` FOREIGN KEY (`entity_id`) REFERENCES `{$installer->getTable('sales/order')}` (`entity_id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
55 |
+
CONSTRAINT `FK_DEBITPAYMENT_ORDER_GRID_STORE_ID_CORE_STORE_STORE_ID` FOREIGN KEY (`store_id`) REFERENCES `{$installer->getTable('core/store')}` (`store_id`) ON DELETE SET NULL ON UPDATE CASCADE
|
56 |
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Debit Payment Order Grid';";
|
57 |
+
|
58 |
+
$installer->run($sql);
|
59 |
+
|
60 |
+
$installer->endSetup();
|
app/design/adminhtml/default/default/layout/debit.xml
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<layout version="0.1.0">
|
3 |
+
<debit_adminhtml_order_index>
|
4 |
+
<reference name="content">
|
5 |
+
<block type="debit/adminhtml_order" name="debit.adminhtml.order" />
|
6 |
+
</reference>
|
7 |
+
</debit_adminhtml_order_index>
|
8 |
+
</layout>
|
app/design/adminhtml/default/default/template/debit/debit.phtml
CHANGED
@@ -15,7 +15,7 @@
|
|
15 |
* @category Mage
|
16 |
* @package Mage_Debit
|
17 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
18 |
-
* @copyright
|
19 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
20 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
21 |
* @link http://www.magentocommerce.com/extension/676/
|
15 |
* @category Mage
|
16 |
* @package Mage_Debit
|
17 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
18 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
19 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
20 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
21 |
* @link http://www.magentocommerce.com/extension/676/
|
app/design/adminhtml/default/default/template/debit/form.phtml
CHANGED
@@ -15,7 +15,7 @@
|
|
15 |
* @category Mage
|
16 |
* @package Mage_Debit
|
17 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
18 |
-
* @copyright
|
19 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
20 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
21 |
* @link http://www.magentocommerce.com/extension/676/
|
15 |
* @category Mage
|
16 |
* @package Mage_Debit
|
17 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
18 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
19 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
20 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
21 |
* @link http://www.magentocommerce.com/extension/676/
|
app/design/adminhtml/default/default/template/debit/info.phtml
CHANGED
@@ -15,7 +15,7 @@
|
|
15 |
* @category Mage
|
16 |
* @package Mage_Debit
|
17 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
18 |
-
* @copyright
|
19 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
20 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
21 |
* @link http://www.magentocommerce.com/extension/676/
|
15 |
* @category Mage
|
16 |
* @package Mage_Debit
|
17 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
18 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
19 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
20 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
21 |
* @link http://www.magentocommerce.com/extension/676/
|
app/design/frontend/base/default/layout/debit.xml
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
-
<!--
|
3 |
/**
|
4 |
* This file is part of the Mage_Debit module.
|
5 |
-
*
|
6 |
* NOTICE OF LICENSE
|
7 |
-
*
|
8 |
* This source file is subject to the Open Software License (OSL 3.0)
|
9 |
* that is bundled with this package in the file LICENSE.txt.
|
10 |
* It is also available through the world-wide-web at this URL:
|
@@ -16,7 +16,7 @@
|
|
16 |
* @category Mage
|
17 |
* @package Mage_Debit
|
18 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
19 |
-
* @copyright
|
20 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
21 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
22 |
* @link http://www.magentocommerce.com/extension/676/
|
@@ -28,7 +28,7 @@
|
|
28 |
<action method="addLink" translate="label" module="debit" ifconfig="payment/debit/save_account_data"><name>debit_data</name><path>debit/account/edit</path><label>Debit Account Data</label></action>
|
29 |
</reference>
|
30 |
</customer_account>
|
31 |
-
|
32 |
<debit_account_edit translate="label">
|
33 |
<reference name="head">
|
34 |
<action method="addJs"><script>mage/debit/blzcheck.js</script></action>
|
@@ -39,13 +39,13 @@
|
|
39 |
<block type="debit/account_data" name="debit.account.data" template="debit/account/data.phtml"/>
|
40 |
</reference>
|
41 |
</debit_account_edit>
|
42 |
-
|
43 |
<checkout_onepage_index>
|
44 |
<reference name="head">
|
45 |
<action method="addJs"><script>mage/debit/blzcheck.js</script></action>
|
46 |
</reference>
|
47 |
</checkout_onepage_index>
|
48 |
-
|
49 |
<checkout_multishipping_billing>
|
50 |
<reference name="head">
|
51 |
<action method="addJs"><script>mage/debit/blzcheck.js</script></action>
|
1 |
<?xml version="1.0"?>
|
2 |
+
<!--
|
3 |
/**
|
4 |
* This file is part of the Mage_Debit module.
|
5 |
+
*
|
6 |
* NOTICE OF LICENSE
|
7 |
+
*
|
8 |
* This source file is subject to the Open Software License (OSL 3.0)
|
9 |
* that is bundled with this package in the file LICENSE.txt.
|
10 |
* It is also available through the world-wide-web at this URL:
|
16 |
* @category Mage
|
17 |
* @package Mage_Debit
|
18 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
19 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
20 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
21 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
22 |
* @link http://www.magentocommerce.com/extension/676/
|
28 |
<action method="addLink" translate="label" module="debit" ifconfig="payment/debit/save_account_data"><name>debit_data</name><path>debit/account/edit</path><label>Debit Account Data</label></action>
|
29 |
</reference>
|
30 |
</customer_account>
|
31 |
+
|
32 |
<debit_account_edit translate="label">
|
33 |
<reference name="head">
|
34 |
<action method="addJs"><script>mage/debit/blzcheck.js</script></action>
|
39 |
<block type="debit/account_data" name="debit.account.data" template="debit/account/data.phtml"/>
|
40 |
</reference>
|
41 |
</debit_account_edit>
|
42 |
+
|
43 |
<checkout_onepage_index>
|
44 |
<reference name="head">
|
45 |
<action method="addJs"><script>mage/debit/blzcheck.js</script></action>
|
46 |
</reference>
|
47 |
</checkout_onepage_index>
|
48 |
+
|
49 |
<checkout_multishipping_billing>
|
50 |
<reference name="head">
|
51 |
<action method="addJs"><script>mage/debit/blzcheck.js</script></action>
|
app/design/frontend/base/default/template/debit/account/data.phtml
CHANGED
@@ -15,7 +15,7 @@
|
|
15 |
* @category Mage
|
16 |
* @package Mage_Debit
|
17 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
18 |
-
* @copyright
|
19 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
20 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
21 |
* @link http://www.magentocommerce.com/extension/676/
|
15 |
* @category Mage
|
16 |
* @package Mage_Debit
|
17 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
18 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
19 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
20 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
21 |
* @link http://www.magentocommerce.com/extension/676/
|
app/design/frontend/base/default/template/debit/form.phtml
CHANGED
@@ -15,7 +15,7 @@
|
|
15 |
* @category Mage
|
16 |
* @package Mage_Debit
|
17 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
18 |
-
* @copyright
|
19 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
20 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
21 |
* @link http://www.magentocommerce.com/extension/676/
|
15 |
* @category Mage
|
16 |
* @package Mage_Debit
|
17 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
18 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
19 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
20 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
21 |
* @link http://www.magentocommerce.com/extension/676/
|
app/design/frontend/base/default/template/debit/info.phtml
CHANGED
@@ -15,7 +15,7 @@
|
|
15 |
* @category Mage
|
16 |
* @package Mage_Debit
|
17 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
18 |
-
* @copyright
|
19 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
20 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
21 |
* @link http://www.magentocommerce.com/extension/676/
|
15 |
* @category Mage
|
16 |
* @package Mage_Debit
|
17 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
18 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
19 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
20 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
21 |
* @link http://www.magentocommerce.com/extension/676/
|
app/etc/modules/Mage_Debit.xml
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
-
<!--
|
3 |
/**
|
4 |
* This file is part of the Mage_Debit module.
|
5 |
-
*
|
6 |
* NOTICE OF LICENSE
|
7 |
-
*
|
8 |
* This source file is subject to the Open Software License (OSL 3.0)
|
9 |
* that is bundled with this package in the file LICENSE.txt.
|
10 |
* It is also available through the world-wide-web at this URL:
|
@@ -16,7 +16,7 @@
|
|
16 |
* @category Mage
|
17 |
* @package Mage_Debit
|
18 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
19 |
-
* @copyright
|
20 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
21 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
22 |
* @link http://www.magentocommerce.com/extension/676/
|
@@ -32,4 +32,4 @@
|
|
32 |
</depends>
|
33 |
</Mage_Debit>
|
34 |
</modules>
|
35 |
-
</config>
|
1 |
<?xml version="1.0"?>
|
2 |
+
<!--
|
3 |
/**
|
4 |
* This file is part of the Mage_Debit module.
|
5 |
+
*
|
6 |
* NOTICE OF LICENSE
|
7 |
+
*
|
8 |
* This source file is subject to the Open Software License (OSL 3.0)
|
9 |
* that is bundled with this package in the file LICENSE.txt.
|
10 |
* It is also available through the world-wide-web at this URL:
|
16 |
* @category Mage
|
17 |
* @package Mage_Debit
|
18 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
19 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
20 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
21 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
22 |
* @link http://www.magentocommerce.com/extension/676/
|
32 |
</depends>
|
33 |
</Mage_Debit>
|
34 |
</modules>
|
35 |
+
</config>
|
app/locale/de_DE/Mage_Debit.csv
CHANGED
@@ -4,13 +4,14 @@
|
|
4 |
"Custom text for checkout page","Benutzerdefinierter Text"
|
5 |
"Kontoinhaber","Kontoinhaber"
|
6 |
"Account holder","Kontoinhaber"
|
7 |
-
"Konto-Nummer","
|
8 |
-
"Account
|
|
|
9 |
"Bankleitzahl","Bankleitzahl"
|
10 |
"Bank code","Bankleitzahl"
|
11 |
"Bank name","Kreditinstitut"
|
12 |
"Account holder: %s","Kontoinhaber: %s"
|
13 |
-
"Account number: %s","
|
14 |
"Bank code: %s","Bankleitzahl: %s"
|
15 |
"Bank name: %s","Kreditinstitut: %s"
|
16 |
"-- will be filled in automatically --","-- wird automatisch ausgefüllt --"
|
@@ -29,4 +30,22 @@
|
|
29 |
"Set to ""no"" if you want to enable DebitPayment only for specific customer groups defined below.","Auf ""Nein"" umstellen, wenn Sie DebitPayment nur für untenstehende Kundengruppen aktivieren möchten"
|
30 |
"Minimum Orders Count","Mindestanzahl an Bestellungen"
|
31 |
"-- Please Select --","-- Bitte wählen --"
|
32 |
-
"Default: ""0"" for disabled check | Minimum count of orders (in the past) needed for the customer to use this payment method.","Standard: ""0"" zum Deaktivieren des Checks | Mindestanzahl an Bestellungen (in der Vergangenheit) eines Kunden um Zahlungsart nutzen zu dürfen."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
"Custom text for checkout page","Benutzerdefinierter Text"
|
5 |
"Kontoinhaber","Kontoinhaber"
|
6 |
"Account holder","Kontoinhaber"
|
7 |
+
"Konto-Nummer","Kontonummer"
|
8 |
+
"Account Number","Kontonummer"
|
9 |
+
"Accountnumber","Kontonummer"
|
10 |
"Bankleitzahl","Bankleitzahl"
|
11 |
"Bank code","Bankleitzahl"
|
12 |
"Bank name","Kreditinstitut"
|
13 |
"Account holder: %s","Kontoinhaber: %s"
|
14 |
+
"Account number: %s","Kontonummer: %s"
|
15 |
"Bank code: %s","Bankleitzahl: %s"
|
16 |
"Bank name: %s","Kreditinstitut: %s"
|
17 |
"-- will be filled in automatically --","-- wird automatisch ausgefüllt --"
|
30 |
"Set to ""no"" if you want to enable DebitPayment only for specific customer groups defined below.","Auf ""Nein"" umstellen, wenn Sie DebitPayment nur für untenstehende Kundengruppen aktivieren möchten"
|
31 |
"Minimum Orders Count","Mindestanzahl an Bestellungen"
|
32 |
"-- Please Select --","-- Bitte wählen --"
|
33 |
+
"Default: ""0"" for disabled check | Minimum count of orders (in the past) needed for the customer to use this payment method.","Standard: ""0"" zum Deaktivieren des Checks | Mindestanzahl an Bestellungen (in der Vergangenheit) eines Kunden um Zahlungsart nutzen zu dürfen."
|
34 |
+
"Orders successfully synced for export.","Bestellungen wurden erfolgreich für den Export synchronisiert."
|
35 |
+
"No orders available for sync.","Keine Bestellungen für die Synchronisation vorhanden."
|
36 |
+
"No orders to export.","Keine Bestellungen zum Exportieren vorhanden."
|
37 |
+
"Order #","Bestell-Nr."
|
38 |
+
"Purchased On","Bestelldatum"
|
39 |
+
"Bill to Name","Rechnungsempfänger"
|
40 |
+
"Grand Total","Gesamtsumme"
|
41 |
+
"Status","Status"
|
42 |
+
"Not exported","Nicht exportiert"
|
43 |
+
"Exported","Exportiert"
|
44 |
+
"Debit Payment Orders","Lastschrift-Bestellungen"
|
45 |
+
"Sync Orders","Bestellungen abgleichen"
|
46 |
+
"Export as DTAUS","DTAUS-Export"
|
47 |
+
"Export as CSV","CSV-Export"
|
48 |
+
"Store Owner Bank Account","Bankverbindung des Shop-Betreibers"
|
49 |
+
"Account Owner","Kontoinhaber"
|
50 |
+
"Routing Number","Bankleitzahl"
|
51 |
+
"Please enter bankaccount credentials of the store owner in the system configuration. Otherwise you will not be able to generate a valid export file.","Bitte geben Sie in der System-Konfiguration die Bankverbindung des Shopbetreibers ein. Anderenfalls können Sie keine gültige Export-Datei erzeugen."
|
app/locale/en_US/Mage_Debit.csv
CHANGED
@@ -4,8 +4,9 @@
|
|
4 |
"Custom text for checkout page","Custom text for checkout page"
|
5 |
"Kontoinhaber","Account holder"
|
6 |
"Account holder","Account holder"
|
7 |
-
"Konto-Nummer","Account
|
8 |
-
"Account
|
|
|
9 |
"Bankleitzahl","Bank code"
|
10 |
"Bank code","Bank code"
|
11 |
"Bank name","Bank name"
|
@@ -29,4 +30,22 @@
|
|
29 |
"Set to ""no"" if you want to enable DebitPayment only for specific customer groups defined below.","Set to ""no"" if you want to enable DebitPayment only for specific customer groups defined below."
|
30 |
"Minimum Orders Count","Minimum Orders Count"
|
31 |
"-- Please Select --","-- Please Select --"
|
32 |
-
"Default: ""0"" for disabled check | Minimum count of orders (in the past) needed for the customer to use this payment method.","Default: ""0"" for disabled check | Minimum count of orders (in the past) needed for the customer to use this payment method."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
"Custom text for checkout page","Custom text for checkout page"
|
5 |
"Kontoinhaber","Account holder"
|
6 |
"Account holder","Account holder"
|
7 |
+
"Konto-Nummer","Account Number"
|
8 |
+
"Account Number","Account Number"
|
9 |
+
"Accountnumber","Account Number"
|
10 |
"Bankleitzahl","Bank code"
|
11 |
"Bank code","Bank code"
|
12 |
"Bank name","Bank name"
|
30 |
"Set to ""no"" if you want to enable DebitPayment only for specific customer groups defined below.","Set to ""no"" if you want to enable DebitPayment only for specific customer groups defined below."
|
31 |
"Minimum Orders Count","Minimum Orders Count"
|
32 |
"-- Please Select --","-- Please Select --"
|
33 |
+
"Default: ""0"" for disabled check | Minimum count of orders (in the past) needed for the customer to use this payment method.","Default: ""0"" for disabled check | Minimum count of orders (in the past) needed for the customer to use this payment method."
|
34 |
+
"Orders successfully synced for export.","Orders successfully synced for export."
|
35 |
+
"No orders available for sync.","No orders available for sync."
|
36 |
+
"No orders to export.","No orders to export."
|
37 |
+
"Order #","Order #"
|
38 |
+
"Purchased On","Purchased On"
|
39 |
+
"Bill to Name","Bill to Name"
|
40 |
+
"Grand Total","Grand Total"
|
41 |
+
"Status","Status"
|
42 |
+
"Not exported","Not exported"
|
43 |
+
"Exported","Exported"
|
44 |
+
"Debit Payment Orders","Debit Payment Orders"
|
45 |
+
"Sync Orders","Sync Orders"
|
46 |
+
"Export as DTAUS","Export as DTAUS"
|
47 |
+
"Export as CSV","Export as CSV"
|
48 |
+
"Store Owner Bank Account","Store Owner Bank Account"
|
49 |
+
"Account Owner","Account Owner"
|
50 |
+
"Routing Number","Routing Number"
|
51 |
+
"Please enter bankaccount credentials of the store owner in the system configuration. Otherwise you will not be able to generate a valid export file.","Please enter bankaccount credentials of the store owner in the system configuration. Otherwise you will not be able to generate a valid export file."
|
js/mage/debit/blzcheck.js
CHANGED
@@ -14,7 +14,7 @@
|
|
14 |
* @category Mage
|
15 |
* @package Mage_Debit
|
16 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
17 |
-
* @copyright
|
18 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
19 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
20 |
* @link http://www.magentocommerce.com/extension/676/
|
14 |
* @category Mage
|
15 |
* @package Mage_Debit
|
16 |
* @author Rouven Alexander Rieker <rouven.rieker@itabs.de>
|
17 |
+
* @copyright 2012 ITABS GmbH / Rouven Alexander Rieker (http://www.itabs.de)
|
18 |
* @copyright 2010 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
19 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
20 |
* @link http://www.magentocommerce.com/extension/676/
|
lib/DTA/DTA.php
ADDED
@@ -0,0 +1,1202 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* DTA
|
4 |
+
*
|
5 |
+
* DTA is a class that provides functions to create DTA files used in
|
6 |
+
* Germany to exchange informations about money transactions with banks
|
7 |
+
* or online banking programs.
|
8 |
+
*
|
9 |
+
* PHP version 5
|
10 |
+
*
|
11 |
+
* This LICENSE is in the BSD license style.
|
12 |
+
*
|
13 |
+
* Copyright (c) 2003-2005 Hermann Stainer, Web-Gear
|
14 |
+
* http://www.web-gear.com/
|
15 |
+
* Copyright (c) 2008-2010 Martin Schütte
|
16 |
+
* All rights reserved.
|
17 |
+
*
|
18 |
+
* Redistribution and use in source and binary forms, with or without
|
19 |
+
* modification, are permitted provided that the following conditions
|
20 |
+
* are met:
|
21 |
+
*
|
22 |
+
* Redistributions of source code must retain the above copyright
|
23 |
+
* notice, this list of conditions and the following disclaimer.
|
24 |
+
*
|
25 |
+
* Redistributions in binary form must reproduce the above copyright
|
26 |
+
* notice, this list of conditions and the following disclaimer in the
|
27 |
+
* documentation and/or other materials provided with the distribution.
|
28 |
+
*
|
29 |
+
* Neither the name of Hermann Stainer, Web-Gear nor the names of his
|
30 |
+
* contributors may be used to endorse or promote products derived from
|
31 |
+
* this software without specific prior written permission.
|
32 |
+
*
|
33 |
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
34 |
+
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
35 |
+
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
36 |
+
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
37 |
+
* REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
38 |
+
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
39 |
+
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
40 |
+
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
41 |
+
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
42 |
+
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
|
43 |
+
* WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
44 |
+
* POSSIBILITY OF SUCH DAMAGE.
|
45 |
+
*
|
46 |
+
* @category Payment
|
47 |
+
* @package Payment_DTA
|
48 |
+
* @author Hermann Stainer <hs@web-gear.com>
|
49 |
+
* @author Martin Schütte <info@mschuette.name>
|
50 |
+
* @copyright 2003-2005 Hermann Stainer, Web-Gear
|
51 |
+
* @copyright 2008-2010 Martin Schütte
|
52 |
+
* @license http://www.debian.org/misc/bsd.license BSD License (3 Clause)
|
53 |
+
* @version SVN: $Id: DTA.php 316502 2011-09-11 19:51:04Z mschuett $
|
54 |
+
* @link http://pear.php.net/package/Payment_DTA
|
55 |
+
*/
|
56 |
+
|
57 |
+
/**
|
58 |
+
* needs base class
|
59 |
+
*/
|
60 |
+
require_once 'DTA/DTABase.php';
|
61 |
+
|
62 |
+
/**
|
63 |
+
* Determines the type of the DTA file:
|
64 |
+
* DTA file contains credit payments.
|
65 |
+
*
|
66 |
+
* @const DTA_CREDIT
|
67 |
+
*/
|
68 |
+
define("DTA_CREDIT", 0);
|
69 |
+
|
70 |
+
/**
|
71 |
+
* Determines the type of the DTA file:
|
72 |
+
* DTA file contains debit payments (default).
|
73 |
+
*
|
74 |
+
* @const DTA_DEBIT
|
75 |
+
*/
|
76 |
+
define("DTA_DEBIT", 1);
|
77 |
+
|
78 |
+
|
79 |
+
/**
|
80 |
+
* Dta class provides functions to create and handle with DTA files
|
81 |
+
* used in Germany to exchange informations about money transactions with
|
82 |
+
* banks or online banking programs.
|
83 |
+
*
|
84 |
+
* Specifications:
|
85 |
+
* - http://www.ebics-zka.de/dokument/pdf/Anlage%203-Spezifikation%20der%20Datenformate%20-%20Version%202.3%20Endfassung%20vom%2005.11.2008.pdf,
|
86 |
+
* part 1.1 DTAUS0, p. 4ff
|
87 |
+
* - http://www.bundesbank.de/download/zahlungsverkehr/zv_spezifikationen_v1_5.pdf
|
88 |
+
* - http://www.hbci-zka.de/dokumente/aenderungen/DTAUS_2002.pdf
|
89 |
+
*
|
90 |
+
* @category Payment
|
91 |
+
* @package Payment_DTA
|
92 |
+
* @author Hermann Stainer <hs@web-gear.com>
|
93 |
+
* @license http://www.debian.org/misc/bsd.license BSD License (3 Clause)
|
94 |
+
* @version Release: 1.4.2
|
95 |
+
* @link http://pear.php.net/package/Payment_DTA
|
96 |
+
*/
|
97 |
+
class DTA extends DTABase
|
98 |
+
{
|
99 |
+
/**
|
100 |
+
* Type of DTA file, DTA_CREDIT or DTA_DEBIT.
|
101 |
+
*
|
102 |
+
* @var integer $type
|
103 |
+
*/
|
104 |
+
protected $type;
|
105 |
+
|
106 |
+
/**
|
107 |
+
* Sum of bank codes in exchanges; used for control fields.
|
108 |
+
*
|
109 |
+
* @var integer $sum_bankcodes
|
110 |
+
*/
|
111 |
+
protected $sum_bankcodes;
|
112 |
+
|
113 |
+
/**
|
114 |
+
* Sum of account numbers in exchanges; used for control fields.
|
115 |
+
*
|
116 |
+
* @var integer $sum_accounts
|
117 |
+
*/
|
118 |
+
protected $sum_accounts;
|
119 |
+
|
120 |
+
/**
|
121 |
+
* Constructor. Creates an empty DTA object or imports one.
|
122 |
+
*
|
123 |
+
* If the parameter is a string, then it is expected to be in DTA format
|
124 |
+
* an its content (sender and transactions) is imported. If the string cannot
|
125 |
+
* be parsed at all then an empty DTA object with type DTA_CREDIT is returned.
|
126 |
+
* If only parts of the string can be parsed, then all transactions before the
|
127 |
+
* error are included into the object.
|
128 |
+
* The user should use getParsingError() to check whether a parsing error occured.
|
129 |
+
*
|
130 |
+
* Otherwise the parameter has to be the type of the new DTA object,
|
131 |
+
* either DTA_CREDIT or DTA_DEBIT. In this case exceptions are never
|
132 |
+
* thrown to ensure compatibility.
|
133 |
+
*
|
134 |
+
* @param integer|string $type Either a string with DTA data or the type of the
|
135 |
+
* new DTA file (DTA_CREDIT or DTA_DEBIT). Must be set.
|
136 |
+
*
|
137 |
+
* @access public
|
138 |
+
*/
|
139 |
+
function __construct($type)
|
140 |
+
{
|
141 |
+
parent::__construct();
|
142 |
+
$this->sum_bankcodes = 0;
|
143 |
+
$this->sum_accounts = 0;
|
144 |
+
|
145 |
+
if (is_int($type)) {
|
146 |
+
$this->type = $type;
|
147 |
+
} else {
|
148 |
+
try {
|
149 |
+
$this->parse($type);
|
150 |
+
} catch (Payment_DTA_FatalParseException $e) {
|
151 |
+
// cannot construct this object, reset everything
|
152 |
+
parent::__construct();
|
153 |
+
$this->sum_bankcodes = 0;
|
154 |
+
$this->sum_accounts = 0;
|
155 |
+
$this->type = DTA_CREDIT;
|
156 |
+
$this->allerrors[] = $e;
|
157 |
+
} catch (Payment_DTA_Exception $e) {
|
158 |
+
// object is valid, but save the error
|
159 |
+
$this->allerrors[] = $e;
|
160 |
+
}
|
161 |
+
}
|
162 |
+
}
|
163 |
+
|
164 |
+
/**
|
165 |
+
* Set the sender of the DTA file. Must be set for valid DTA file.
|
166 |
+
* The given account data is also used as default sender's account.
|
167 |
+
* Account data contains
|
168 |
+
* name Sender's name. Maximally 27 chars are allowed.
|
169 |
+
* bank_code Sender's bank code.
|
170 |
+
* account_number Sender's account number.
|
171 |
+
* additional_name If necessary, additional line for sender's name
|
172 |
+
* (maximally 27 chars).
|
173 |
+
* exec_date Optional execution date for the DTA file in format DDMMYYYY.
|
174 |
+
*
|
175 |
+
* @param array $account Account data for file sender.
|
176 |
+
*
|
177 |
+
* @access public
|
178 |
+
* @return boolean
|
179 |
+
*/
|
180 |
+
function setAccountFileSender($account)
|
181 |
+
{
|
182 |
+
$account['account_number']
|
183 |
+
= strval($account['account_number']);
|
184 |
+
$account['bank_code']
|
185 |
+
= strval($account['bank_code']);
|
186 |
+
|
187 |
+
if (strlen($account['name']) > 0
|
188 |
+
&& strlen($account['bank_code']) > 0
|
189 |
+
&& strlen($account['bank_code']) <= 8
|
190 |
+
&& ctype_digit($account['bank_code'])
|
191 |
+
&& strlen($account['account_number']) > 0
|
192 |
+
&& strlen($account['account_number']) <= 10
|
193 |
+
&& ctype_digit($account['account_number'])
|
194 |
+
) {
|
195 |
+
|
196 |
+
if (empty($account['additional_name'])) {
|
197 |
+
$account['additional_name'] = "";
|
198 |
+
}
|
199 |
+
|
200 |
+
if (empty($account['exec_date'])
|
201 |
+
|| !ctype_digit($account['exec_date'])) {
|
202 |
+
$account['exec_date'] = str_repeat(" ", 8);
|
203 |
+
}
|
204 |
+
|
205 |
+
$this->account_file_sender = array(
|
206 |
+
"name" => $this->filter($account['name'], 27),
|
207 |
+
"bank_code" => $account['bank_code'],
|
208 |
+
"account_number" => $account['account_number'],
|
209 |
+
"additional_name" => $this->filter($account['additional_name'], 27),
|
210 |
+
"exec_date" => $account['exec_date']
|
211 |
+
);
|
212 |
+
|
213 |
+
$result = true;
|
214 |
+
} else {
|
215 |
+
$result = false;
|
216 |
+
}
|
217 |
+
|
218 |
+
return $result;
|
219 |
+
}
|
220 |
+
|
221 |
+
/**
|
222 |
+
* Auxillary method to fill and normalize the receiver and sender arrays.
|
223 |
+
*
|
224 |
+
* @param array $account_receiver Receiver's account data.
|
225 |
+
* @param array $account_sender Sender's account data.
|
226 |
+
*
|
227 |
+
* @access private
|
228 |
+
* @return array
|
229 |
+
*/
|
230 |
+
private function _exchangeFillArrays($account_receiver, $account_sender)
|
231 |
+
{
|
232 |
+
if (empty($account_receiver['additional_name'])) {
|
233 |
+
$account_receiver['additional_name'] = "";
|
234 |
+
}
|
235 |
+
if (empty($account_sender['name'])) {
|
236 |
+
$account_sender['name'] = $this->account_file_sender['name'];
|
237 |
+
}
|
238 |
+
if (empty($account_sender['bank_code'])) {
|
239 |
+
$account_sender['bank_code'] = $this->account_file_sender['bank_code'];
|
240 |
+
}
|
241 |
+
if (empty($account_sender['account_number'])) {
|
242 |
+
$account_sender['account_number']
|
243 |
+
= $this->account_file_sender['account_number'];
|
244 |
+
}
|
245 |
+
if (empty($account_sender['additional_name'])) {
|
246 |
+
$account_sender['additional_name']
|
247 |
+
= $this->account_file_sender['additional_name'];
|
248 |
+
}
|
249 |
+
|
250 |
+
$account_receiver['account_number']
|
251 |
+
= strval($account_receiver['account_number']);
|
252 |
+
$account_receiver['bank_code']
|
253 |
+
= strval($account_receiver['bank_code']);
|
254 |
+
$account_sender['account_number']
|
255 |
+
= strval($account_sender['account_number']);
|
256 |
+
$account_sender['bank_code']
|
257 |
+
= strval($account_sender['bank_code']);
|
258 |
+
|
259 |
+
return array($account_receiver, $account_sender);
|
260 |
+
}
|
261 |
+
|
262 |
+
/**
|
263 |
+
* Adds an exchange. First the account data for the receiver of the exchange is
|
264 |
+
* set. In the case the DTA file contains credits, this is the payment receiver.
|
265 |
+
* In the other case (the DTA file contains debits), this is the account, from
|
266 |
+
* which money is taken away. If the sender is not specified, values of the
|
267 |
+
* file sender are used by default.
|
268 |
+
*
|
269 |
+
* Account data for receiver and sender contain
|
270 |
+
* name Name. Maximally 27 chars are allowed.
|
271 |
+
* bank_code Bank code.
|
272 |
+
* account_number Account number.
|
273 |
+
* additional_name If necessary, additional line for name (maximally 27 chars).
|
274 |
+
*
|
275 |
+
* @param array $account_receiver Receiver's account data.
|
276 |
+
* @param double $amount Amount of money in this exchange.
|
277 |
+
* Currency: EURO
|
278 |
+
* @param array $purposes Array of up to 14 lines
|
279 |
+
* (maximally 27 chars each) for
|
280 |
+
* description of the exchange.
|
281 |
+
* A string is accepted as well.
|
282 |
+
* @param array $account_sender Sender's account data.
|
283 |
+
*
|
284 |
+
* @access public
|
285 |
+
* @return boolean
|
286 |
+
*/
|
287 |
+
function addExchange(
|
288 |
+
$account_receiver,
|
289 |
+
$amount,
|
290 |
+
$purposes,
|
291 |
+
$account_sender = array()
|
292 |
+
) {
|
293 |
+
list($account_receiver, $account_sender)
|
294 |
+
= $this->_exchangeFillArrays($account_receiver, $account_sender);
|
295 |
+
|
296 |
+
$cents = (int)(round($amount * 100));
|
297 |
+
if (strlen($account_sender['name']) > 0
|
298 |
+
&& strlen($account_sender['bank_code']) > 0
|
299 |
+
&& strlen($account_sender['bank_code']) <= 8
|
300 |
+
&& ctype_digit($account_sender['bank_code'])
|
301 |
+
&& strlen($account_sender['account_number']) > 0
|
302 |
+
&& strlen($account_sender['account_number']) <= 10
|
303 |
+
&& ctype_digit($account_sender['account_number'])
|
304 |
+
&& strlen($account_receiver['name']) > 0
|
305 |
+
&& strlen($account_receiver['bank_code']) <= 8
|
306 |
+
&& ctype_digit($account_receiver['bank_code'])
|
307 |
+
&& strlen($account_receiver['account_number']) <= 10
|
308 |
+
&& ctype_digit($account_receiver['account_number'])
|
309 |
+
&& is_numeric($amount)
|
310 |
+
&& $cents > 0
|
311 |
+
&& $cents <= PHP_INT_MAX
|
312 |
+
&& $this->sum_amounts <= (PHP_INT_MAX - $cents)
|
313 |
+
&& ( (is_string($purposes)
|
314 |
+
&& strlen($purposes) > 0)
|
315 |
+
|| (is_array($purposes)
|
316 |
+
&& count($purposes) >= 1
|
317 |
+
&& count($purposes) <= 14))
|
318 |
+
) {
|
319 |
+
$this->sum_amounts += $cents;
|
320 |
+
$this->sum_bankcodes += $account_receiver['bank_code'];
|
321 |
+
$this->sum_accounts += $account_receiver['account_number'];
|
322 |
+
|
323 |
+
if (is_string($purposes)) {
|
324 |
+
$filtered_purposes = str_split(
|
325 |
+
$this->makeValidString($purposes), 27
|
326 |
+
);
|
327 |
+
$filtered_purposes = array_slice($filtered_purposes, 0, 14);
|
328 |
+
} else {
|
329 |
+
$filtered_purposes = array();
|
330 |
+
foreach ($purposes as $purposeline) {
|
331 |
+
$filtered_purposes[] = $this->filter($purposeline, 27);
|
332 |
+
}
|
333 |
+
}
|
334 |
+
|
335 |
+
$this->exchanges[] = array(
|
336 |
+
"sender_name" => $this->filter(
|
337 |
+
$account_sender['name'], 27
|
338 |
+
),
|
339 |
+
"sender_bank_code" => $account_sender['bank_code'],
|
340 |
+
"sender_account_number" => $account_sender['account_number'],
|
341 |
+
"sender_additional_name" => $this->filter(
|
342 |
+
$account_sender['additional_name'], 27
|
343 |
+
),
|
344 |
+
"receiver_name" => $this->filter(
|
345 |
+
$account_receiver['name'], 27
|
346 |
+
),
|
347 |
+
"receiver_bank_code" => $account_receiver['bank_code'],
|
348 |
+
"receiver_account_number" => $account_receiver['account_number'],
|
349 |
+
"receiver_additional_name" => $this->filter(
|
350 |
+
$account_receiver['additional_name'], 27
|
351 |
+
),
|
352 |
+
"amount" => $cents,
|
353 |
+
"purposes" => $filtered_purposes
|
354 |
+
);
|
355 |
+
|
356 |
+
$result = true;
|
357 |
+
} else {
|
358 |
+
$result = false;
|
359 |
+
}
|
360 |
+
|
361 |
+
return $result;
|
362 |
+
}
|
363 |
+
|
364 |
+
/**
|
365 |
+
* Auxillary method to write the A record.
|
366 |
+
*
|
367 |
+
* @access private
|
368 |
+
* @return string
|
369 |
+
*/
|
370 |
+
private function _generateArecord()
|
371 |
+
{
|
372 |
+
$content = "";
|
373 |
+
|
374 |
+
// (field numbers according to ebics-zka.de specification)
|
375 |
+
// A1 record length (128 Bytes)
|
376 |
+
$content .= str_pad("128", 4, "0", STR_PAD_LEFT);
|
377 |
+
// A2 record type
|
378 |
+
$content .= "A";
|
379 |
+
// A3 file mode (credit or debit)
|
380 |
+
// and Customer File ("K") / Bank File ("B")
|
381 |
+
$content .= ($this->type == DTA_CREDIT) ? "G" : "L";
|
382 |
+
$content .= "K";
|
383 |
+
// A4 sender's bank code
|
384 |
+
$content .= str_pad(
|
385 |
+
$this->account_file_sender['bank_code'], 8, "0", STR_PAD_LEFT
|
386 |
+
);
|
387 |
+
// A5 only used if Bank File, otherwise NULL
|
388 |
+
$content .= str_repeat("0", 8);
|
389 |
+
// A6 sender's name
|
390 |
+
$content .= str_pad(
|
391 |
+
$this->account_file_sender['name'], 27, " ", STR_PAD_RIGHT
|
392 |
+
);
|
393 |
+
// A7 date of file creation
|
394 |
+
$content .= strftime("%d%m%y", $this->timestamp);
|
395 |
+
// A8 free (bank internal)
|
396 |
+
$content .= str_repeat(" ", 4);
|
397 |
+
// A9 sender's account number
|
398 |
+
$content .= str_pad(
|
399 |
+
$this->account_file_sender['account_number'], 10, "0", STR_PAD_LEFT
|
400 |
+
);
|
401 |
+
// A10 sender's reference number (optional)
|
402 |
+
$content .= str_repeat("0", 10);
|
403 |
+
// A11a free (reserve)
|
404 |
+
$content .= str_repeat(" ", 15);
|
405 |
+
// A11b execution date ("DDMMYYYY", optional)
|
406 |
+
$content .= $this->account_file_sender['exec_date'];
|
407 |
+
// A11c free (reserve)
|
408 |
+
$content .= str_repeat(" ", 24);
|
409 |
+
// A12 currency (1 = Euro)
|
410 |
+
$content .= "1";
|
411 |
+
|
412 |
+
assert(strlen($content) == 128);
|
413 |
+
return $content;
|
414 |
+
}
|
415 |
+
|
416 |
+
/**
|
417 |
+
* Auxillary method to write C records.
|
418 |
+
*
|
419 |
+
* @param array $exchange The transaction to serialize.
|
420 |
+
*
|
421 |
+
* @access private
|
422 |
+
* @return string
|
423 |
+
*/
|
424 |
+
private function _generateCrecord($exchange)
|
425 |
+
{
|
426 |
+
// preparation of additional parts for record extensions
|
427 |
+
$additional_parts = array();
|
428 |
+
$additional_purposes = $exchange['purposes'];
|
429 |
+
$first_purpose = array_shift($additional_purposes);
|
430 |
+
|
431 |
+
if (strlen($exchange['receiver_additional_name']) > 0) {
|
432 |
+
$additional_parts[] = array("type" => "01",
|
433 |
+
"content" => $exchange['receiver_additional_name']
|
434 |
+
);
|
435 |
+
}
|
436 |
+
|
437 |
+
foreach ($additional_purposes as $additional_purpose) {
|
438 |
+
$additional_parts[] = array("type" => "02",
|
439 |
+
"content" => $additional_purpose
|
440 |
+
);
|
441 |
+
}
|
442 |
+
|
443 |
+
if (strlen($exchange['sender_additional_name']) > 0) {
|
444 |
+
$additional_parts[] = array("type" => "03",
|
445 |
+
"content" => $exchange['sender_additional_name']
|
446 |
+
);
|
447 |
+
}
|
448 |
+
assert(count($additional_parts) <= 15);
|
449 |
+
|
450 |
+
$content = "";
|
451 |
+
|
452 |
+
// (field numbers according to ebics-zka.de specification)
|
453 |
+
// C1 record length (187 Bytes + 29 Bytes for each additional part)
|
454 |
+
$content .= str_pad(
|
455 |
+
187 + count($additional_parts) * 29, 4, "0", STR_PAD_LEFT
|
456 |
+
);
|
457 |
+
// C2 record type
|
458 |
+
$content .= "C";
|
459 |
+
// C3 first involved bank
|
460 |
+
$content .= str_pad(
|
461 |
+
$exchange['sender_bank_code'], 8, "0", STR_PAD_LEFT
|
462 |
+
);
|
463 |
+
// C4 receiver's bank code
|
464 |
+
$content .= str_pad(
|
465 |
+
$exchange['receiver_bank_code'], 8, "0", STR_PAD_LEFT
|
466 |
+
);
|
467 |
+
// C5 receiver's account number
|
468 |
+
$content .= str_pad(
|
469 |
+
$exchange['receiver_account_number'], 10, "0", STR_PAD_LEFT
|
470 |
+
);
|
471 |
+
// C6 internal customer number (11 chars) or NULL
|
472 |
+
$content .= "0" . str_repeat("0", 11) . "0";
|
473 |
+
// C7a payment mode (text key)
|
474 |
+
$content .= ($this->type == DTA_CREDIT) ? "51" : "05";
|
475 |
+
// C7b additional text key
|
476 |
+
$content .= "000";
|
477 |
+
// C8 bank internal
|
478 |
+
$content .= " ";
|
479 |
+
// C9 free (reserve)
|
480 |
+
$content .= str_repeat("0", 11);
|
481 |
+
// C10 sender's bank code
|
482 |
+
$content .= str_pad(
|
483 |
+
$exchange['sender_bank_code'], 8, "0", STR_PAD_LEFT
|
484 |
+
);
|
485 |
+
// C11 sender's account number
|
486 |
+
$content .= str_pad(
|
487 |
+
$exchange['sender_account_number'], 10, "0", STR_PAD_LEFT
|
488 |
+
);
|
489 |
+
// C12 amount
|
490 |
+
$content .= str_pad(
|
491 |
+
$exchange['amount'], 11, "0", STR_PAD_LEFT
|
492 |
+
);
|
493 |
+
// C13 free (reserve)
|
494 |
+
$content .= str_repeat(" ", 3);
|
495 |
+
// C14a receiver's name
|
496 |
+
$content .= str_pad(
|
497 |
+
$exchange['receiver_name'], 27, " ", STR_PAD_RIGHT
|
498 |
+
);
|
499 |
+
// C14b delimitation
|
500 |
+
$content .= str_repeat(" ", 8);
|
501 |
+
/* first part/128 chars full */
|
502 |
+
// C15 sender's name
|
503 |
+
$content .= str_pad(
|
504 |
+
$exchange['sender_name'], 27, " ", STR_PAD_RIGHT
|
505 |
+
);
|
506 |
+
// C16 first line of purposes
|
507 |
+
$content .= str_pad($first_purpose, 27, " ", STR_PAD_RIGHT);
|
508 |
+
// C17a currency (1 = Euro)
|
509 |
+
$content .= "1";
|
510 |
+
// C17b free (reserve)
|
511 |
+
$content .= str_repeat(" ", 2);
|
512 |
+
// C18 number of additional parts (00-15)
|
513 |
+
$content .= str_pad(count($additional_parts), 2, "0", STR_PAD_LEFT);
|
514 |
+
|
515 |
+
/*
|
516 |
+
* End of the constant part (187 chars),
|
517 |
+
* now up to 15 extensions with 29 chars each might follow.
|
518 |
+
*/
|
519 |
+
|
520 |
+
if (count($additional_parts) == 0) {
|
521 |
+
// no extension, pad to fill the part to 2*128 chars
|
522 |
+
$content .= str_repeat(" ", 256-187);
|
523 |
+
} else {
|
524 |
+
// The first two extensions fit into the current part:
|
525 |
+
for ($index = 1;$index <= 2;$index++) {
|
526 |
+
if (count($additional_parts) > 0) {
|
527 |
+
$additional_part = array_shift($additional_parts);
|
528 |
+
} else {
|
529 |
+
$additional_part = array("type" => " ",
|
530 |
+
"content" => ""
|
531 |
+
);
|
532 |
+
}
|
533 |
+
// C19/21 type of addional part
|
534 |
+
$content .= $additional_part['type'];
|
535 |
+
// C20/22 additional part content
|
536 |
+
$content .= str_pad(
|
537 |
+
$additional_part['content'], 27, " ", STR_PAD_RIGHT
|
538 |
+
);
|
539 |
+
}
|
540 |
+
// delimitation
|
541 |
+
$content .= str_repeat(" ", 11);
|
542 |
+
}
|
543 |
+
|
544 |
+
// For more extensions add up to 4 more parts:
|
545 |
+
for ($part = 3;$part <= 5;$part++) {
|
546 |
+
if (count($additional_parts) > 0) {
|
547 |
+
for ($index = 1;$index <= 4;$index++) {
|
548 |
+
if (count($additional_parts) > 0) {
|
549 |
+
$additional_part = array_shift($additional_parts);
|
550 |
+
} else {
|
551 |
+
$additional_part = array("type" => " ",
|
552 |
+
"content" => ""
|
553 |
+
);
|
554 |
+
}
|
555 |
+
// C24/26/28/30 type of addional part
|
556 |
+
$content .= $additional_part['type'];
|
557 |
+
// C25/27/29/31 additional part content
|
558 |
+
$content .= str_pad(
|
559 |
+
$additional_part['content'], 27, " ", STR_PAD_RIGHT
|
560 |
+
);
|
561 |
+
}
|
562 |
+
// C32 delimitation
|
563 |
+
$content .= str_repeat(" ", 12);
|
564 |
+
}
|
565 |
+
}
|
566 |
+
// with 15 extensions there may be a 6th part
|
567 |
+
if (count($additional_parts) > 0) {
|
568 |
+
$additional_part = array_shift($additional_parts);
|
569 |
+
// C24 type of addional part
|
570 |
+
$content .= $additional_part['type'];
|
571 |
+
// C25 additional part content
|
572 |
+
$content .= str_pad(
|
573 |
+
$additional_part['content'], 27, " ", STR_PAD_RIGHT
|
574 |
+
);
|
575 |
+
// padding to fill the part
|
576 |
+
$content .= str_repeat(" ", 128-27-2);
|
577 |
+
}
|
578 |
+
assert(count($additional_parts) == 0);
|
579 |
+
assert(strlen($content) % 128 == 0);
|
580 |
+
return $content;
|
581 |
+
}
|
582 |
+
|
583 |
+
/**
|
584 |
+
* Auxillary method to write the E record.
|
585 |
+
*
|
586 |
+
* @access private
|
587 |
+
* @return string
|
588 |
+
*/
|
589 |
+
private function _generateErecord()
|
590 |
+
{
|
591 |
+
$content = "";
|
592 |
+
|
593 |
+
// (field numbers according to ebics-zka.de specification)
|
594 |
+
// E1 record length (128 bytes)
|
595 |
+
$content .= str_pad("128", 4, "0", STR_PAD_LEFT);
|
596 |
+
// E2 record type
|
597 |
+
$content .= "E";
|
598 |
+
// E3 free (reserve)
|
599 |
+
$content .= str_repeat(" ", 5);
|
600 |
+
// E4 number of records type C
|
601 |
+
$content .= str_pad(count($this->exchanges), 7, "0", STR_PAD_LEFT);
|
602 |
+
// E5 free (reserve)
|
603 |
+
$content .= str_repeat("0", 13);
|
604 |
+
// use number_format() to ensure proper integer formatting
|
605 |
+
// E6 sum of account numbers
|
606 |
+
$content .= str_pad(
|
607 |
+
number_format($this->sum_accounts, 0, "", ""), 17, "0", STR_PAD_LEFT
|
608 |
+
);
|
609 |
+
// E7 sum of bank codes
|
610 |
+
$content .= str_pad(
|
611 |
+
number_format($this->sum_bankcodes, 0, "", ""), 17, "0", STR_PAD_LEFT
|
612 |
+
);
|
613 |
+
// E8 sum of amounts
|
614 |
+
$content .= str_pad(
|
615 |
+
number_format($this->sum_amounts, 0, "", ""), 13, "0", STR_PAD_LEFT
|
616 |
+
);
|
617 |
+
// E9 delimitation
|
618 |
+
$content .= str_repeat(" ", 51);
|
619 |
+
|
620 |
+
assert(strlen($content) % 128 == 0);
|
621 |
+
return $content;
|
622 |
+
}
|
623 |
+
|
624 |
+
/**
|
625 |
+
* Returns the full content of the generated DTA file.
|
626 |
+
* All added exchanges are processed.
|
627 |
+
*
|
628 |
+
* @access public
|
629 |
+
* @return string
|
630 |
+
*/
|
631 |
+
function getFileContent()
|
632 |
+
{
|
633 |
+
$content = "";
|
634 |
+
|
635 |
+
/**
|
636 |
+
* data record A
|
637 |
+
*/
|
638 |
+
$content .= $this->_generateArecord();
|
639 |
+
|
640 |
+
/**
|
641 |
+
* data record(s) C
|
642 |
+
*/
|
643 |
+
$sum_account_numbers = 0;
|
644 |
+
$sum_bank_codes = 0;
|
645 |
+
$sum_amounts = 0;
|
646 |
+
|
647 |
+
foreach ($this->exchanges as $exchange) {
|
648 |
+
$sum_account_numbers += $exchange['receiver_account_number'];
|
649 |
+
$sum_bank_codes += (int) $exchange['receiver_bank_code'];
|
650 |
+
$sum_amounts += (int) $exchange['amount'];
|
651 |
+
|
652 |
+
$content .= $this->_generateCrecord($exchange);
|
653 |
+
assert(strlen($content) % 128 == 0);
|
654 |
+
}
|
655 |
+
|
656 |
+
assert($this->sum_amounts === $sum_amounts);
|
657 |
+
assert($this->sum_bankcodes === $sum_bank_codes);
|
658 |
+
assert($this->sum_accounts === $sum_account_numbers);
|
659 |
+
|
660 |
+
/**
|
661 |
+
* data record E
|
662 |
+
*/
|
663 |
+
$content .= $this->_generateErecord();
|
664 |
+
|
665 |
+
return $content;
|
666 |
+
}
|
667 |
+
|
668 |
+
/**
|
669 |
+
* Returns an array with information about the transactions.
|
670 |
+
* Can be used to print an accompanying document (Begleitzettel) for disks.
|
671 |
+
*
|
672 |
+
* @access public
|
673 |
+
* @return array Returns an array with keys: "sender_name",
|
674 |
+
* "sender_bank_code", "sender_account", "sum_amounts",
|
675 |
+
* "type", "sum_bankcodes", "sum_accounts", "count", "date", "exec_date"
|
676 |
+
*/
|
677 |
+
function getMetaData()
|
678 |
+
{
|
679 |
+
$meta = parent::getMetaData();
|
680 |
+
|
681 |
+
$meta["sum_bankcodes"] = floatval($this->sum_bankcodes);
|
682 |
+
$meta["sum_accounts"] = floatval($this->sum_accounts);
|
683 |
+
$meta["type"] = strval(($this->type == DTA_CREDIT) ? "CREDIT" : "DEBIT");
|
684 |
+
|
685 |
+
$meta["exec_date"] = $meta["date"];
|
686 |
+
// use timestamp to be consistent with $meta["date"]
|
687 |
+
if ($this->account_file_sender["exec_date"] !== "") {
|
688 |
+
$ftime = strptime($this->account_file_sender["exec_date"], '%d%m%Y');
|
689 |
+
if ($ftime) {
|
690 |
+
$meta["exec_date"] = mktime(0, 0, 0,
|
691 |
+
$ftime['tm_mon'] + 1,
|
692 |
+
$ftime['tm_mday'],
|
693 |
+
$ftime['tm_year'] + 1900
|
694 |
+
);
|
695 |
+
}
|
696 |
+
}
|
697 |
+
return $meta;
|
698 |
+
}
|
699 |
+
|
700 |
+
/**
|
701 |
+
* Auxillary parser to consume A records.
|
702 |
+
*
|
703 |
+
* @param string $input content of DTA file
|
704 |
+
* @param integer &$offset read offset into $input
|
705 |
+
*
|
706 |
+
* @throws Payment_DTA_Exception on unrecognized input
|
707 |
+
* @access private
|
708 |
+
* @return void
|
709 |
+
*/
|
710 |
+
private function _parseArecord($input, &$offset)
|
711 |
+
{
|
712 |
+
/* field 1+2 */
|
713 |
+
$this->checkStr($input, $offset, "0128A");
|
714 |
+
/* field 3 */
|
715 |
+
$type = $this->getStr($input, $offset, 2);
|
716 |
+
/* field 4 */
|
717 |
+
$Asender_blz = $this->getNum($input, $offset, 8);
|
718 |
+
/* field 5 */
|
719 |
+
$this->checkStr($input, $offset, "00000000");
|
720 |
+
/* field 6 */
|
721 |
+
$Asender_name = rtrim($this->getStr($input, $offset, 27, true));
|
722 |
+
/* field 7 */
|
723 |
+
$Adate_day = $this->getNum($input, $offset, 2);
|
724 |
+
$Adate_month = $this->getNum($input, $offset, 2);
|
725 |
+
$Adate_year = $this->getNum($input, $offset, 2);
|
726 |
+
$this->timestamp = mktime(
|
727 |
+
0, 0, 0,
|
728 |
+
intval($Adate_month), intval($Adate_day), intval($Adate_year)
|
729 |
+
);
|
730 |
+
/* field 8 */
|
731 |
+
$this->checkStr($input, $offset, " ");
|
732 |
+
/* field 9 */
|
733 |
+
$Asender_account = $this->getNum($input, $offset, 10);
|
734 |
+
/* field 10 */
|
735 |
+
$this->checkStr($input, $offset, "0000000000");
|
736 |
+
/* field 11a */
|
737 |
+
$this->checkStr($input, $offset, str_repeat(" ", 15));
|
738 |
+
/* field 11b */
|
739 |
+
$Aexec_date = $this->getStr($input, $offset, 8);
|
740 |
+
/* field 11c */
|
741 |
+
$this->checkStr($input, $offset, str_repeat(" ", 24));
|
742 |
+
/* field 12 */
|
743 |
+
$this->checkStr($input, $offset, "1");
|
744 |
+
|
745 |
+
/* the first char G/L indicates credit and debit exchanges
|
746 |
+
* the second char K/B indicates a customer or bank file
|
747 |
+
* (I do not know if bank files should be treated different)
|
748 |
+
*/
|
749 |
+
if ($type === "GK" || $type === "GB") {
|
750 |
+
$this->type = DTA_CREDIT;
|
751 |
+
} elseif ($type === "LK" || $type === "LB") {
|
752 |
+
$this->type = DTA_DEBIT;
|
753 |
+
} else {
|
754 |
+
throw new Payment_DTA_FatalParseException(
|
755 |
+
"Invalid type indicator: '$type', expected ".
|
756 |
+
"either 'GK'/'GB' or 'LK'/'LB' (@offset 6).");
|
757 |
+
}
|
758 |
+
|
759 |
+
/*
|
760 |
+
* additional_name is problematic and cannot be parsed & reproduced.
|
761 |
+
* it is set as part of the AccountFileSender, but appears as part
|
762 |
+
* of every transaction.
|
763 |
+
*/
|
764 |
+
$rc = $this->setAccountFileSender(
|
765 |
+
array(
|
766 |
+
"name" => $Asender_name,
|
767 |
+
"bank_code" => $Asender_blz,
|
768 |
+
"account_number" => $Asender_account,
|
769 |
+
"additional_name" => '',
|
770 |
+
"exec_date" => $Aexec_date
|
771 |
+
)
|
772 |
+
);
|
773 |
+
if (!$rc) {
|
774 |
+
// should never happen
|
775 |
+
throw new Payment_DTA_FatalParseException(
|
776 |
+
"Cannot setAccountFileSender(), please file a bug report");
|
777 |
+
}
|
778 |
+
// currently not a TODO:
|
779 |
+
// does anyone have to preserve the creation date or execution date?
|
780 |
+
}
|
781 |
+
|
782 |
+
/**
|
783 |
+
* Auxillary method to parse C record extensions.
|
784 |
+
*
|
785 |
+
* Reads the variable number of extensions at the end of a C record.
|
786 |
+
*
|
787 |
+
* @param string $input content of DTA file
|
788 |
+
* @param integer &$offset read offset into $input
|
789 |
+
* @param integer $extensions expected number of extensions
|
790 |
+
* @param integer $c_start C record offset (for exceptions)
|
791 |
+
*
|
792 |
+
* @throws Payment_DTA_ParseException on invalid extensions
|
793 |
+
* @access private
|
794 |
+
* @return array of $Cpurpose, 2nd sender line, 2nd receiver line
|
795 |
+
*/
|
796 |
+
private function _parseCextension($input, &$offset, $extensions, $c_start)
|
797 |
+
{
|
798 |
+
$extensions_read = array();
|
799 |
+
|
800 |
+
// first handle the up to 2 extensions inside the 2nd part
|
801 |
+
if ($extensions == 0) { // only padding
|
802 |
+
$this->checkStr($input, $offset, str_repeat(" ", 69));
|
803 |
+
} elseif ($extensions == 1) {
|
804 |
+
/* field 19 */
|
805 |
+
$ext_type = $this->getNum($input, $offset, 2);
|
806 |
+
/* field 20 */
|
807 |
+
$ext_content = $this->getStr($input, $offset, 27, true);
|
808 |
+
array_push($extensions_read, array($ext_type, $ext_content));
|
809 |
+
/* fields 21,22,23 */
|
810 |
+
$this->checkStr($input, $offset, str_repeat(" ", 2+27+11));
|
811 |
+
} else {
|
812 |
+
/* field 19 */
|
813 |
+
$ext_type = $this->getNum($input, $offset, 2);
|
814 |
+
/* field 20 */
|
815 |
+
$ext_content = $this->getStr($input, $offset, 27, true);
|
816 |
+
array_push($extensions_read, array($ext_type, $ext_content));
|
817 |
+
/* field 21 */
|
818 |
+
$ext_type = $this->getNum($input, $offset, 2);
|
819 |
+
/* field 22 */
|
820 |
+
$ext_content = $this->getStr($input, $offset, 27, true);
|
821 |
+
array_push($extensions_read, array($ext_type, $ext_content));
|
822 |
+
/* fields 23 */
|
823 |
+
$this->checkStr($input, $offset, str_repeat(" ", 11));
|
824 |
+
}
|
825 |
+
// end 2nd part of C record
|
826 |
+
assert($offset % 128 === 0);
|
827 |
+
|
828 |
+
// up to 4 more parts, each with 128 bytes & up to 4 extensions
|
829 |
+
while (count($extensions_read) < $extensions) {
|
830 |
+
$ext_in_part = $extensions - count($extensions_read);
|
831 |
+
// one switch to read the content
|
832 |
+
switch($ext_in_part) {
|
833 |
+
default: // =4
|
834 |
+
case 4: /* fallthrough */
|
835 |
+
$ext_type = $this->getNum($input, $offset, 2);
|
836 |
+
$ext_content = $this->getStr($input, $offset, 27, true);
|
837 |
+
array_push($extensions_read, array($ext_type, $ext_content));
|
838 |
+
case 3: /* fallthrough */
|
839 |
+
$ext_type = $this->getNum($input, $offset, 2);
|
840 |
+
$ext_content = $this->getStr($input, $offset, 27, true);
|
841 |
+
array_push($extensions_read, array($ext_type, $ext_content));
|
842 |
+
case 2: /* fallthrough */
|
843 |
+
$ext_type = $this->getNum($input, $offset, 2);
|
844 |
+
$ext_content = $this->getStr($input, $offset, 27, true);
|
845 |
+
array_push($extensions_read, array($ext_type, $ext_content));
|
846 |
+
case 1: /* fallthrough */
|
847 |
+
$ext_type = $this->getNum($input, $offset, 2);
|
848 |
+
$ext_content = $this->getStr($input, $offset, 27, true);
|
849 |
+
array_push($extensions_read, array($ext_type, $ext_content));
|
850 |
+
break;
|
851 |
+
case 0:
|
852 |
+
// should never happen
|
853 |
+
throw new Payment_DTA_ParseException('confused about '.
|
854 |
+
'number of extensions in transaction number '.
|
855 |
+
strval($this->count()+1) .' @ offset '. strval($c_start) .
|
856 |
+
', please file a bug report');
|
857 |
+
}
|
858 |
+
|
859 |
+
// and one switch for the padding
|
860 |
+
switch($ext_in_part) {
|
861 |
+
case 1:
|
862 |
+
$this->checkStr($input, $offset, str_repeat(" ", 29));
|
863 |
+
case 2: /* fallthrough */
|
864 |
+
$this->checkStr($input, $offset, str_repeat(" ", 29));
|
865 |
+
case 3: /* fallthrough */
|
866 |
+
$this->checkStr($input, $offset, str_repeat(" ", 29));
|
867 |
+
case 4: /* fallthrough */
|
868 |
+
default: /* fallthrough */
|
869 |
+
$this->checkStr($input, $offset, str_repeat(" ", 12));
|
870 |
+
break;
|
871 |
+
}
|
872 |
+
// end n-th part of C record
|
873 |
+
assert($offset % 128 === 0);
|
874 |
+
}
|
875 |
+
return $extensions_read;
|
876 |
+
}
|
877 |
+
|
878 |
+
/**
|
879 |
+
* Auxillary method to combine C record extensions.
|
880 |
+
*
|
881 |
+
* Takes the parsed extensions to check the allowed number of them per type
|
882 |
+
* and to collect all purpose lines into one array.
|
883 |
+
*
|
884 |
+
* @param array $extensions_read read extensions as arrays
|
885 |
+
* @param array $Cpurpose existing array of purpose lines
|
886 |
+
* @param integer $c_start C record offset (for exceptions)
|
887 |
+
*
|
888 |
+
* @throws Payment_DTA_ParseException on invalid extensions
|
889 |
+
* @access private
|
890 |
+
* @return array of $Cpurpose, 2nd sender line, 2nd receiver line
|
891 |
+
*/
|
892 |
+
private function _processCextension($extensions_read, $Cpurpose, $c_start)
|
893 |
+
{
|
894 |
+
$Csender_name2 = "";
|
895 |
+
$Creceiver_name2 = "";
|
896 |
+
|
897 |
+
foreach ($extensions_read as $ext) {
|
898 |
+
$ext_type = $ext[0];
|
899 |
+
$ext_content = $ext[1];
|
900 |
+
|
901 |
+
switch($ext_type) {
|
902 |
+
case 1:
|
903 |
+
if (!empty($Creceiver_name2)) {
|
904 |
+
throw new Payment_DTA_ParseException('multiple '.
|
905 |
+
'receiver name extensions in transaction number '.
|
906 |
+
strval($this->count()+1) .' @ offset '. strval($c_start));
|
907 |
+
} else {
|
908 |
+
$Creceiver_name2 = $ext_content;
|
909 |
+
}
|
910 |
+
break;
|
911 |
+
case 2:
|
912 |
+
if (count($Cpurpose) >= 14) {
|
913 |
+
// allowed: 1 line in fixed part + 13 in extensions
|
914 |
+
throw new Payment_DTA_ParseException('too many '.
|
915 |
+
'purpose extensions in transaction number '.
|
916 |
+
strval($this->count()+1) .' @ offset '. strval($c_start));
|
917 |
+
} else {
|
918 |
+
array_push($Cpurpose, $ext_content);
|
919 |
+
}
|
920 |
+
break;
|
921 |
+
case 3:
|
922 |
+
if (!empty($Csender_name2)) {
|
923 |
+
throw new Payment_DTA_ParseException('multiple '.
|
924 |
+
'receiver name extensions in transaction number '.
|
925 |
+
strval($this->count()+1) .' @ offset '. strval($c_start));
|
926 |
+
} else {
|
927 |
+
$Csender_name2 = $ext_content;
|
928 |
+
}
|
929 |
+
break;
|
930 |
+
default:
|
931 |
+
throw new Payment_DTA_ParseException('invalid '.
|
932 |
+
'extension type in transaction number '.
|
933 |
+
strval($this->count()+1) .' @ offset '. strval($c_start));
|
934 |
+
}
|
935 |
+
}
|
936 |
+
|
937 |
+
return array($Cpurpose, $Csender_name2, $Creceiver_name2);
|
938 |
+
}
|
939 |
+
|
940 |
+
/**
|
941 |
+
* Auxillary parser to consume C records.
|
942 |
+
*
|
943 |
+
* @param string $input content of DTA file
|
944 |
+
* @param integer &$offset read offset into $input
|
945 |
+
* @param array &$checks holds checksums for validation in E record
|
946 |
+
*
|
947 |
+
* @throws Payment_DTA_Exception on unrecognized input
|
948 |
+
* @access private
|
949 |
+
* @return void
|
950 |
+
*/
|
951 |
+
private function _parseCrecord($input, &$offset, &$checks)
|
952 |
+
{
|
953 |
+
// save for possible exceptions
|
954 |
+
$c_start = $offset;
|
955 |
+
|
956 |
+
/* field 1 */
|
957 |
+
$record_length = $this->getNum($input, $offset, 4);
|
958 |
+
/* field 2 */
|
959 |
+
$this->checkStr($input, $offset, "C");
|
960 |
+
|
961 |
+
// check the record length
|
962 |
+
if (($record_length-187)%29) {
|
963 |
+
throw new Payment_DTA_ParseException('invalid C record length');
|
964 |
+
}
|
965 |
+
$extensions_length = ($record_length-187)/29;
|
966 |
+
|
967 |
+
/* field 3 */
|
968 |
+
$Cbank_blz = $this->getNum($input, $offset, 8); // usually 0, ignored
|
969 |
+
/* field 4 */
|
970 |
+
$Creceiver_blz = $this->getNum($input, $offset, 8);
|
971 |
+
/* field 5 */
|
972 |
+
$Creceiver_account = $this->getNum($input, $offset, 10);
|
973 |
+
/* field 6 */
|
974 |
+
$this->checkStr($input, $offset, "0");
|
975 |
+
// either 0s or aninternal customer number:
|
976 |
+
$this->getNum($input, $offset, 11);
|
977 |
+
$this->checkStr($input, $offset, "0");
|
978 |
+
/* field 7 */
|
979 |
+
// may hold about a dozen values with details about the type of transaction
|
980 |
+
$Ctype = $this->getStr($input, $offset, 5);
|
981 |
+
if ( (($this->type == DTA_DEBIT) && (!preg_match('/^0[45]\d{3}$/', $Ctype)))
|
982 |
+
|| (($this->type == DTA_CREDIT) && (!preg_match('/^5\d{4}$/', $Ctype)))
|
983 |
+
) {
|
984 |
+
throw new Payment_DTA_ParseException('C record type of payment '.
|
985 |
+
'(' . $Ctype . ') '.
|
986 |
+
'does not match A record type indicator '.
|
987 |
+
'(' . (($this->type == DTA_CREDIT) ? "CREDIT" : "DEBIT") . ') '.
|
988 |
+
'in transaction number '. strval($this->count()+1) .
|
989 |
+
' @ offset '. strval($c_start));
|
990 |
+
}
|
991 |
+
/* field 8 */
|
992 |
+
$this->checkStr($input, $offset, " ");
|
993 |
+
/* field 9 */
|
994 |
+
$this->checkStr($input, $offset, "00000000000");
|
995 |
+
/* field 10 */
|
996 |
+
$Csender_blz = $this->getNum($input, $offset, 8);
|
997 |
+
/* field 11 */
|
998 |
+
$Csender_account = $this->getNum($input, $offset, 10);
|
999 |
+
/* field 12 */
|
1000 |
+
$Camount = $this->getNum($input, $offset, 11);
|
1001 |
+
/* field 13 */
|
1002 |
+
$this->checkStr($input, $offset, " ");
|
1003 |
+
/* field 14a */
|
1004 |
+
$Creceiver_name = rtrim($this->getStr($input, $offset, 27, true));
|
1005 |
+
/* field 14b */
|
1006 |
+
$this->checkStr($input, $offset, " ");
|
1007 |
+
// end 1st part of C record
|
1008 |
+
assert($offset % 128 === 0);
|
1009 |
+
/* field 15 */
|
1010 |
+
$Csender_name = rtrim($this->getStr($input, $offset, 27, true));
|
1011 |
+
/* field 16 */
|
1012 |
+
$Cpurpose = array(rtrim($this->getStr($input, $offset, 27, true)));
|
1013 |
+
/* field 17a */
|
1014 |
+
$this->checkStr($input, $offset, "1");
|
1015 |
+
/* field 17b */
|
1016 |
+
$this->checkStr($input, $offset, " ");
|
1017 |
+
/* field 18 */
|
1018 |
+
$extensions = $this->getNum($input, $offset, 2);
|
1019 |
+
if ($extensions != $extensions_length) {
|
1020 |
+
throw new Payment_DTA_ParseException('number of extensions '.
|
1021 |
+
'does not match record length in transaction number '.
|
1022 |
+
strval($this->count()+1) .' @ offset '. strval($c_start));
|
1023 |
+
}
|
1024 |
+
|
1025 |
+
// extensions to C record, read into array & processed later
|
1026 |
+
$extensions_read
|
1027 |
+
= $this->_parseCextension($input, $offset, $extensions, $c_start);
|
1028 |
+
|
1029 |
+
// process read extension content
|
1030 |
+
list($Cpurpose, $Csender_name2, $Creceiver_name2)
|
1031 |
+
= $this->_processCextension($extensions_read, $Cpurpose, $c_start);
|
1032 |
+
|
1033 |
+
/* we read the fields, now add an exchange */
|
1034 |
+
$rc = $this->addExchange(
|
1035 |
+
array(
|
1036 |
+
'name' => $Creceiver_name,
|
1037 |
+
'bank_code' => $Creceiver_blz,
|
1038 |
+
'account_number' => $Creceiver_account,
|
1039 |
+
'additional_name' => $Creceiver_name2
|
1040 |
+
),
|
1041 |
+
$Camount/100.0,
|
1042 |
+
$Cpurpose,
|
1043 |
+
array(
|
1044 |
+
'name' => $Csender_name,
|
1045 |
+
'bank_code' => $Csender_blz,
|
1046 |
+
'account_number' => $Csender_account,
|
1047 |
+
'additional_name' => $Csender_name2
|
1048 |
+
)
|
1049 |
+
);
|
1050 |
+
if (!$rc) {
|
1051 |
+
// should never happen
|
1052 |
+
throw new Payment_DTA_ParseException('Cannot addExchange() '.
|
1053 |
+
'for transaction number '.strval($this->count()+1) .
|
1054 |
+
' @ offset '. strval($c_start). ', please file a bug report');
|
1055 |
+
}
|
1056 |
+
$checks['account'] += $Creceiver_account;
|
1057 |
+
$checks['blz'] += $Creceiver_blz;
|
1058 |
+
$checks['amount'] += $Camount;
|
1059 |
+
}
|
1060 |
+
|
1061 |
+
/**
|
1062 |
+
* Auxillary parser to consume E records.
|
1063 |
+
*
|
1064 |
+
* @param string $input content of DTA file
|
1065 |
+
* @param integer &$offset read offset into $input
|
1066 |
+
* @param array $checks holds checksums for validation
|
1067 |
+
*
|
1068 |
+
* @throws Payment_DTA_Exception on unrecognized input
|
1069 |
+
* @access private
|
1070 |
+
* @return void
|
1071 |
+
*/
|
1072 |
+
private function _parseErecord($input, &$offset, $checks)
|
1073 |
+
{
|
1074 |
+
/* field 1+2 */
|
1075 |
+
$this->checkStr($input, $offset, "0128E");
|
1076 |
+
/* field 3 */
|
1077 |
+
$this->checkStr($input, $offset, " ");
|
1078 |
+
/* field 4 */
|
1079 |
+
$E_check_count = $this->getNum($input, $offset, 7);
|
1080 |
+
/* field 5 */
|
1081 |
+
$this->checkStr($input, $offset, str_repeat("0", 13));
|
1082 |
+
/* field 6 */
|
1083 |
+
$E_check_account = $this->getNum($input, $offset, 17);
|
1084 |
+
/* field 7 */
|
1085 |
+
$E_check_blz = $this->getNum($input, $offset, 17);
|
1086 |
+
/* field 8 */
|
1087 |
+
$E_check_amount = $this->getNum($input, $offset, 13);
|
1088 |
+
/* field 9 */
|
1089 |
+
$this->checkStr($input, $offset, str_repeat(" ", 51));
|
1090 |
+
// end of E record
|
1091 |
+
assert($offset % 128 === 0);
|
1092 |
+
|
1093 |
+
// check checksums
|
1094 |
+
|
1095 |
+
/*
|
1096 |
+
* NB: because errors are indicated by exceptions, the user/caller never
|
1097 |
+
* sees more than one checksum error. Only the first mismatch is reported,
|
1098 |
+
* the other checks are skipped by throwing the exception.
|
1099 |
+
*/
|
1100 |
+
if ($E_check_count != $this->count()) {
|
1101 |
+
throw new Payment_DTA_ChecksumException(
|
1102 |
+
"E record checksum mismatch for transaction count: ".
|
1103 |
+
"reads $E_check_count, expected ".$this->count());
|
1104 |
+
}
|
1105 |
+
if ($E_check_account != $checks['account']) {
|
1106 |
+
throw new Payment_DTA_ChecksumException(
|
1107 |
+
"E record checksum mismatch for account numbers: ".
|
1108 |
+
"reads $E_check_account, expected ".$checks['account']);
|
1109 |
+
}
|
1110 |
+
if ($E_check_blz != $checks['blz']) {
|
1111 |
+
throw new Payment_DTA_ChecksumException(
|
1112 |
+
"E record checksum mismatch for bank codes: ".
|
1113 |
+
"reads $E_check_blz, expected ".$checks['blz']);
|
1114 |
+
}
|
1115 |
+
if ($E_check_amount != $checks['amount']) {
|
1116 |
+
throw new Payment_DTA_ChecksumException(
|
1117 |
+
"E record checksum mismatch for transfer amount: ".
|
1118 |
+
"reads $E_check_amount, expected ".$checks['amount']);
|
1119 |
+
}
|
1120 |
+
}
|
1121 |
+
|
1122 |
+
/**
|
1123 |
+
* Parser. Read data from an existing DTA file content.
|
1124 |
+
*
|
1125 |
+
* Parsing can leave us with four situations:
|
1126 |
+
* - the input is parsed correctly => valid DTA object.
|
1127 |
+
* - the input is parsed but a checksum does not match the data read
|
1128 |
+
* => valid DTA object.
|
1129 |
+
* throws a Payment_DTA_ChecksumException.
|
1130 |
+
* - the n-th transaction cannot be parsed => parsing stops there, yielding
|
1131 |
+
* a valid DTA object, but with only the first n-1 transactions
|
1132 |
+
* and without checksum verification.
|
1133 |
+
* throws a Payment_DTA_ParseException.
|
1134 |
+
* - a parsing error occurs in the A record => the DTA object is invalid
|
1135 |
+
* throws a Payment_DTA_FatalParseException.
|
1136 |
+
*
|
1137 |
+
* @param string $input content of DTA file
|
1138 |
+
*
|
1139 |
+
* @throws Payment_DTA_Exception on unrecognized input
|
1140 |
+
* @access protected
|
1141 |
+
* @return void
|
1142 |
+
*/
|
1143 |
+
protected function parse($input)
|
1144 |
+
{
|
1145 |
+
/*
|
1146 |
+
* Open Questions/TODOs for the parsing code:
|
1147 |
+
* - Are the provided exceptions adequate? (Or are they too verbose for
|
1148 |
+
* practical use or OTOH not detailed enough to really handle errors?)
|
1149 |
+
* - Should we try to parse truncated files, i.e. ones with a wrong length?
|
1150 |
+
* - Should we try to find records with a wrong offset, e.g. when an
|
1151 |
+
* encoding error shifts all following records 4 bytes backwards?
|
1152 |
+
* - Should we abort on any error or rather skip the exchange and continue?
|
1153 |
+
* In the later case we need a way to preserve/indicate the problem
|
1154 |
+
* because any simple ParseException in a C record will be masked by
|
1155 |
+
* a resulting ChecksumException in the E record.
|
1156 |
+
* - TODO: We should read non-ASCII chars in A/C records. Some programs
|
1157 |
+
* write 8-bit chars into the fields.
|
1158 |
+
*/
|
1159 |
+
if (strlen($input) % 128) {
|
1160 |
+
throw new Payment_DTA_FatalParseException("invalid length");
|
1161 |
+
}
|
1162 |
+
|
1163 |
+
$checks = array(
|
1164 |
+
'account' => 0,
|
1165 |
+
'blz' => 0,
|
1166 |
+
'amount' => 0);
|
1167 |
+
$offset = 0;
|
1168 |
+
|
1169 |
+
/* A record */
|
1170 |
+
try {
|
1171 |
+
$this->_parseArecord($input, $offset);
|
1172 |
+
} catch (Payment_DTA_Exception $e) {
|
1173 |
+
throw new Payment_DTA_FatalParseException("Exception in A record", $e);
|
1174 |
+
}
|
1175 |
+
|
1176 |
+
//do not consume input by using getStr()/getNum() here
|
1177 |
+
while ($input[$offset + 4] == 'C') {
|
1178 |
+
/* C record */
|
1179 |
+
$c_start = $offset;
|
1180 |
+
$c_length = intval(substr($input, $offset, 4));
|
1181 |
+
try {
|
1182 |
+
$this->_parseCrecord($input, $offset, $checks);
|
1183 |
+
} catch (Payment_DTA_Exception $e) {
|
1184 |
+
// preserve error
|
1185 |
+
$this->allerrors[] = new Payment_DTA_ParseException(
|
1186 |
+
"Error in C record, in transaction number ".
|
1187 |
+
strval($this->count()+1) ." @ offset ". strval($c_start), $e);
|
1188 |
+
// skip to next 128-byte aligned record
|
1189 |
+
$offset = $c_start + 128 * (1 + intval($c_length/128));
|
1190 |
+
}
|
1191 |
+
} // while
|
1192 |
+
|
1193 |
+
/* E record */
|
1194 |
+
try {
|
1195 |
+
$this->_parseErecord($input, $offset, $checks);
|
1196 |
+
} catch (Payment_DTA_ChecksumException $e) {
|
1197 |
+
throw $e;
|
1198 |
+
} catch (Payment_DTA_Exception $e) {
|
1199 |
+
throw new Payment_DTA_ParseException("Error in E record", $e);
|
1200 |
+
}
|
1201 |
+
}
|
1202 |
+
}
|
lib/DTA/DTABase.php
ADDED
@@ -0,0 +1,699 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* DTABase, base class for DTA and DTAZV
|
4 |
+
*
|
5 |
+
* DTA and DTAVZ provide functions to create DTA/DTAZV files used in
|
6 |
+
* Germany to exchange informations about money transactions with banks
|
7 |
+
* or online banking programs.
|
8 |
+
*
|
9 |
+
* PHP version 5
|
10 |
+
*
|
11 |
+
* This LICENSE is in the BSD license style.
|
12 |
+
*
|
13 |
+
* Copyright (c) 2003-2005 Hermann Stainer, Web-Gear
|
14 |
+
* http://www.web-gear.com/
|
15 |
+
* Copyright (c) 2008-2010 Martin Schütte
|
16 |
+
* All rights reserved.
|
17 |
+
*
|
18 |
+
* Redistribution and use in source and binary forms, with or without
|
19 |
+
* modification, are permitted provided that the following conditions
|
20 |
+
* are met:
|
21 |
+
*
|
22 |
+
* Redistributions of source code must retain the above copyright
|
23 |
+
* notice, this list of conditions and the following disclaimer.
|
24 |
+
*
|
25 |
+
* Redistributions in binary form must reproduce the above copyright
|
26 |
+
* notice, this list of conditions and the following disclaimer in the
|
27 |
+
* documentation and/or other materials provided with the distribution.
|
28 |
+
*
|
29 |
+
* Neither the name of Hermann Stainer, Web-Gear nor the names of his
|
30 |
+
* contributors may be used to endorse or promote products derived from
|
31 |
+
* this software without specific prior written permission.
|
32 |
+
*
|
33 |
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
34 |
+
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
35 |
+
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
36 |
+
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
37 |
+
* REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
38 |
+
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
39 |
+
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
40 |
+
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
41 |
+
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
42 |
+
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
|
43 |
+
* WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
44 |
+
* POSSIBILITY OF SUCH DAMAGE.
|
45 |
+
*
|
46 |
+
* @category Payment
|
47 |
+
* @package Payment_DTA
|
48 |
+
* @author Hermann Stainer <hs@web-gear.com>
|
49 |
+
* @author Martin Schütte <info@mschuette.name>
|
50 |
+
* @copyright 2003-2005 Hermann Stainer, Web-Gear
|
51 |
+
* @copyright 2008-2010 Martin Schütte
|
52 |
+
* @license http://www.debian.org/misc/bsd.license BSD License (3 Clause)
|
53 |
+
* @version SVN: $Id: DTABase.php 304207 2010-10-08 15:52:18Z mschuett $
|
54 |
+
* @link http://pear.php.net/package/Payment_DTA
|
55 |
+
*/
|
56 |
+
|
57 |
+
/**
|
58 |
+
* include PEAR_Exception class
|
59 |
+
*/
|
60 |
+
require_once 'PEAR/Exception.php';
|
61 |
+
|
62 |
+
/**
|
63 |
+
* Payment_DTA_Exception is this packages' basic exception class.
|
64 |
+
*
|
65 |
+
* @category Payment
|
66 |
+
* @package Payment_DTA
|
67 |
+
* @author Martin Schütte <info@mschuette.name>
|
68 |
+
* @license http://www.debian.org/misc/bsd.license BSD License (3 Clause)
|
69 |
+
* @version Release: 1.4.2
|
70 |
+
* @link http://pear.php.net/package/Payment_DTA
|
71 |
+
*/
|
72 |
+
class Payment_DTA_Exception extends PEAR_Exception
|
73 |
+
{
|
74 |
+
}
|
75 |
+
|
76 |
+
/**
|
77 |
+
* Payment_DTA_ParseException indicates parsing problems.
|
78 |
+
*
|
79 |
+
* @category Payment
|
80 |
+
* @package Payment_DTA
|
81 |
+
* @author Martin Schütte <info@mschuette.name>
|
82 |
+
* @license http://www.debian.org/misc/bsd.license BSD License (3 Clause)
|
83 |
+
* @version Release: 1.4.2
|
84 |
+
* @link http://pear.php.net/package/Payment_DTA
|
85 |
+
*/
|
86 |
+
class Payment_DTA_ParseException extends Payment_DTA_Exception
|
87 |
+
{
|
88 |
+
}
|
89 |
+
|
90 |
+
/**
|
91 |
+
* Payment_DTA_FatalParseException indicates a non-recoverable parsing problem,
|
92 |
+
* that makes it impossible to build a usable object.
|
93 |
+
*
|
94 |
+
* @category Payment
|
95 |
+
* @package Payment_DTA
|
96 |
+
* @author Martin Schütte <info@mschuette.name>
|
97 |
+
* @license http://www.debian.org/misc/bsd.license BSD License (3 Clause)
|
98 |
+
* @version Release: 1.4.2
|
99 |
+
* @link http://pear.php.net/package/Payment_DTA
|
100 |
+
*/
|
101 |
+
class Payment_DTA_FatalParseException extends Payment_DTA_ParseException
|
102 |
+
{
|
103 |
+
}
|
104 |
+
|
105 |
+
/**
|
106 |
+
* Payment_DTA_ChecksumException indicates a wrong checksum in a DTA file.
|
107 |
+
*
|
108 |
+
* @category Payment
|
109 |
+
* @package Payment_DTA
|
110 |
+
* @author Martin Schütte <info@mschuette.name>
|
111 |
+
* @license http://www.debian.org/misc/bsd.license BSD License (3 Clause)
|
112 |
+
* @version Release: 1.4.2
|
113 |
+
* @link http://pear.php.net/package/Payment_DTA
|
114 |
+
*/
|
115 |
+
class Payment_DTA_ChecksumException extends Payment_DTA_Exception
|
116 |
+
{
|
117 |
+
}
|
118 |
+
|
119 |
+
/**
|
120 |
+
* DTABase class provides common functions to classes DTA and DTAZV.
|
121 |
+
*
|
122 |
+
* @category Payment
|
123 |
+
* @package Payment_DTA
|
124 |
+
* @author Hermann Stainer <hs@web-gear.com>
|
125 |
+
* @license http://www.debian.org/misc/bsd.license BSD License (3 Clause)
|
126 |
+
* @version Release: 1.4.2
|
127 |
+
* @link http://pear.php.net/package/Payment_DTA
|
128 |
+
*/
|
129 |
+
abstract class DTABase implements Countable, Iterator
|
130 |
+
{
|
131 |
+
/**
|
132 |
+
* Account data for the file sender.
|
133 |
+
*
|
134 |
+
* @var array $account_file_sender
|
135 |
+
* @access protected
|
136 |
+
*/
|
137 |
+
protected $account_file_sender;
|
138 |
+
|
139 |
+
/**
|
140 |
+
* Current timestamp.
|
141 |
+
*
|
142 |
+
* @var integer $timestamp
|
143 |
+
* @access protected
|
144 |
+
*/
|
145 |
+
protected $timestamp;
|
146 |
+
|
147 |
+
/**
|
148 |
+
* Array of exchanges that the DTA file should contain.
|
149 |
+
*
|
150 |
+
* @var array $exchanges
|
151 |
+
* @access protected
|
152 |
+
*/
|
153 |
+
protected $exchanges;
|
154 |
+
|
155 |
+
/**
|
156 |
+
* Sum of amounts in exchanges (in Cents); for control total fields.
|
157 |
+
*
|
158 |
+
* @var integer $sum_amounts
|
159 |
+
* @access protected
|
160 |
+
*/
|
161 |
+
protected $sum_amounts;
|
162 |
+
|
163 |
+
/**
|
164 |
+
* Array of all parsing problems.
|
165 |
+
*
|
166 |
+
* @var array $allerrors
|
167 |
+
*/
|
168 |
+
protected $allerrors;
|
169 |
+
|
170 |
+
/**
|
171 |
+
* Return number of exchanges
|
172 |
+
*
|
173 |
+
* @access public
|
174 |
+
* @return integer
|
175 |
+
*/
|
176 |
+
function count()
|
177 |
+
{
|
178 |
+
return count($this->exchanges);
|
179 |
+
}
|
180 |
+
|
181 |
+
/**
|
182 |
+
* Constructor.
|
183 |
+
*/
|
184 |
+
function __construct()
|
185 |
+
{
|
186 |
+
$this->invalidString_regexp = '/[^A-Z0-9 \.,&\-\/\+\*\$%]/';
|
187 |
+
$this->account_file_sender = array();
|
188 |
+
$this->exchanges = array();
|
189 |
+
$this->timestamp = time();
|
190 |
+
$this->sum_amounts = 0;
|
191 |
+
$this->allerrors = array();
|
192 |
+
}
|
193 |
+
|
194 |
+
/**
|
195 |
+
* Get parsing errors.
|
196 |
+
*
|
197 |
+
* Returns an array with all exceptions thrown when parsing DTA data;
|
198 |
+
* possible elements are:
|
199 |
+
* - None: if no errors occured this array is empty,
|
200 |
+
* - Payment_DTA_ChecksumException indicates that the complete DTA file
|
201 |
+
* was read into the object but the file's internal checksums were incorrect,
|
202 |
+
* - Payment_DTA_ParseException indicates an error in the input, but all
|
203 |
+
* transactions up to the unexpected field were read into the new object,
|
204 |
+
* - Payment_DTA_FatalParseException indicates a fatal error, thus the
|
205 |
+
* constructed object is empty.
|
206 |
+
*
|
207 |
+
* @access public
|
208 |
+
* @return array
|
209 |
+
*/
|
210 |
+
function getParsingErrors()
|
211 |
+
{
|
212 |
+
return $this->allerrors;
|
213 |
+
}
|
214 |
+
|
215 |
+
/**
|
216 |
+
* Checks if string $input contains the expected value at an offset.
|
217 |
+
* After the check the offset is increased.
|
218 |
+
*
|
219 |
+
* @param string $input string to check
|
220 |
+
* @param integer &$offset current offset into input
|
221 |
+
* @param string $expected expected string at the offset
|
222 |
+
*
|
223 |
+
* @return boolean true if input is as expected, otherwise an exception is thrown
|
224 |
+
* @throws Payment_DTA_Exception if input differs from expected string
|
225 |
+
* @access protected
|
226 |
+
*/
|
227 |
+
protected function checkStr($input, &$offset, $expected)
|
228 |
+
{
|
229 |
+
$len = strlen($expected);
|
230 |
+
$found = substr($input, $offset, $len);
|
231 |
+
|
232 |
+
if ($found !== $expected) {
|
233 |
+
throw new Payment_DTA_Exception("input string at position $offset ".
|
234 |
+
"('$found') does not match expected value '$expected'");
|
235 |
+
} else {
|
236 |
+
$offset += $len;
|
237 |
+
return true;
|
238 |
+
}
|
239 |
+
}
|
240 |
+
|
241 |
+
/**
|
242 |
+
* Read string of given length from input at offset.
|
243 |
+
* Afterwards the offset is increased.
|
244 |
+
* By default only a subset of ASCII is allowed (as specified by DTA),
|
245 |
+
* with $liberal = true apply makeValidString() first in order to accept
|
246 |
+
* lower case and some 8-bit chars.
|
247 |
+
* (NB: in this case the returned string may be up to twice as long.)
|
248 |
+
*
|
249 |
+
* @param string $input string to check
|
250 |
+
* @param integer &$offset current offset into input
|
251 |
+
* @param integer $length chars to read
|
252 |
+
* @param bool $liberal allow 8-bit chars
|
253 |
+
*
|
254 |
+
* @return string the read string
|
255 |
+
* @throws Payment_DTA_Exception if input is too short or contains invalid chars
|
256 |
+
* @access protected
|
257 |
+
*/
|
258 |
+
protected function getStr($input, &$offset, $length, $liberal = false)
|
259 |
+
{
|
260 |
+
$rc = substr($input, $offset, $length);
|
261 |
+
if (!$rc) {
|
262 |
+
throw new Payment_DTA_Exception("input string not long enough to ".
|
263 |
+
"read $length bytes at position $offset");
|
264 |
+
}
|
265 |
+
if ($liberal) {
|
266 |
+
$rc = $this->makeValidString($rc);
|
267 |
+
}
|
268 |
+
if (!$this->validString($rc)) {
|
269 |
+
throw new Payment_DTA_Exception("invalid String '$rc' ".
|
270 |
+
"at position $offset");
|
271 |
+
} else {
|
272 |
+
$offset += $length;
|
273 |
+
return $rc;
|
274 |
+
}
|
275 |
+
}
|
276 |
+
|
277 |
+
/**
|
278 |
+
* Read integer number of given length from input at offset.
|
279 |
+
* Afterwards the offset is increased.
|
280 |
+
*
|
281 |
+
* @param string $input string to check
|
282 |
+
* @param integer &$offset current offset into input
|
283 |
+
* @param integer $length chars to read
|
284 |
+
*
|
285 |
+
* @return int the read number
|
286 |
+
* @throws Payment_DTA_Exception if input is too short or contains invalid chars
|
287 |
+
* @access protected
|
288 |
+
*/
|
289 |
+
protected function getNum($input, &$offset, $length)
|
290 |
+
{
|
291 |
+
$rc = substr($input, $offset, $length);
|
292 |
+
if (!$rc) {
|
293 |
+
throw new Payment_DTA_Exception("input string not long enough to ".
|
294 |
+
"read $length bytes at position $offset");
|
295 |
+
} elseif (!ctype_digit($rc)) {
|
296 |
+
throw new Payment_DTA_Exception("invalid Number '$rc' ".
|
297 |
+
"at position $offset");
|
298 |
+
} else {
|
299 |
+
$offset += $length;
|
300 |
+
return $rc;
|
301 |
+
}
|
302 |
+
}
|
303 |
+
|
304 |
+
/**
|
305 |
+
* Checks if the given string contains only chars valid for fields
|
306 |
+
* in DTA files.
|
307 |
+
*
|
308 |
+
* @param string $string String that is checked.
|
309 |
+
*
|
310 |
+
* @access public
|
311 |
+
* @return boolean
|
312 |
+
*/
|
313 |
+
function validString($string)
|
314 |
+
{
|
315 |
+
return !preg_match($this->invalidString_regexp, $string);
|
316 |
+
}
|
317 |
+
|
318 |
+
/**
|
319 |
+
* Makes the given string valid for DTA files.
|
320 |
+
* Some diacritics, especially German umlauts become uppercase,
|
321 |
+
* all other chars not allowed are replaced with space.
|
322 |
+
*
|
323 |
+
* @param string $string String that should made valid.
|
324 |
+
*
|
325 |
+
* @access public
|
326 |
+
* @return string
|
327 |
+
*/
|
328 |
+
function makeValidString($string)
|
329 |
+
{
|
330 |
+
$special_chars = array(
|
331 |
+
'á' => 'a',
|
332 |
+
'à' => 'a',
|
333 |
+
'ä' => 'ae',
|
334 |
+
'â' => 'a',
|
335 |
+
'ã' => 'a',
|
336 |
+
'å' => 'a',
|
337 |
+
'æ' => 'ae',
|
338 |
+
'ā' => 'a',
|
339 |
+
'ă' => 'a',
|
340 |
+
'ą' => 'a',
|
341 |
+
'ȁ' => 'a',
|
342 |
+
'ȃ' => 'a',
|
343 |
+
'Á' => 'A',
|
344 |
+
'À' => 'A',
|
345 |
+
'Ä' => 'Ae',
|
346 |
+
'Â' => 'A',
|
347 |
+
'Ã' => 'A',
|
348 |
+
'Å' => 'A',
|
349 |
+
'Æ' => 'AE',
|
350 |
+
'Ā' => 'A',
|
351 |
+
'Ă' => 'A',
|
352 |
+
'Ą' => 'A',
|
353 |
+
'Ȁ' => 'A',
|
354 |
+
'Ȃ' => 'A',
|
355 |
+
'ç' => 'c',
|
356 |
+
'ć' => 'c',
|
357 |
+
'ĉ' => 'c',
|
358 |
+
'ċ' => 'c',
|
359 |
+
'č' => 'c',
|
360 |
+
'Ç' => 'C',
|
361 |
+
'Ć' => 'C',
|
362 |
+
'Ĉ' => 'C',
|
363 |
+
'Ċ' => 'C',
|
364 |
+
'Č' => 'C',
|
365 |
+
'ď' => 'd',
|
366 |
+
'đ' => 'd',
|
367 |
+
'Ď' => 'D',
|
368 |
+
'Đ' => 'D',
|
369 |
+
'é' => 'e',
|
370 |
+
'è' => 'e',
|
371 |
+
'ê' => 'e',
|
372 |
+
'ë' => 'e',
|
373 |
+
'ē' => 'e',
|
374 |
+
'ĕ' => 'e',
|
375 |
+
'ė' => 'e',
|
376 |
+
'ę' => 'e',
|
377 |
+
'ě' => 'e',
|
378 |
+
'ȅ' => 'e',
|
379 |
+
'ȇ' => 'e',
|
380 |
+
'É' => 'E',
|
381 |
+
'È' => 'E',
|
382 |
+
'Ê' => 'E',
|
383 |
+
'Ë' => 'E',
|
384 |
+
'Ē' => 'E',
|
385 |
+
'Ĕ' => 'E',
|
386 |
+
'Ė' => 'E',
|
387 |
+
'Ę' => 'E',
|
388 |
+
'Ě' => 'E',
|
389 |
+
'Ȅ' => 'E',
|
390 |
+
'Ȇ' => 'E',
|
391 |
+
'ĝ' => 'g',
|
392 |
+
'ğ' => 'g',
|
393 |
+
'ġ' => 'g',
|
394 |
+
'ģ' => 'g',
|
395 |
+
'Ĝ' => 'G',
|
396 |
+
'Ğ' => 'G',
|
397 |
+
'Ġ' => 'G',
|
398 |
+
'Ģ' => 'G',
|
399 |
+
'ĥ' => 'h',
|
400 |
+
'ħ' => 'h',
|
401 |
+
'Ĥ' => 'H',
|
402 |
+
'Ħ' => 'H',
|
403 |
+
'ì' => 'i',
|
404 |
+
'ì' => 'i',
|
405 |
+
'î' => 'i',
|
406 |
+
'ï' => 'i',
|
407 |
+
'ĩ' => 'i',
|
408 |
+
'ī' => 'i',
|
409 |
+
'ĭ' => 'i',
|
410 |
+
'į' => 'i',
|
411 |
+
'ı' => 'i',
|
412 |
+
'ij' => 'ij',
|
413 |
+
'ȉ' => 'i',
|
414 |
+
'ȋ' => 'i',
|
415 |
+
'Í' => 'I',
|
416 |
+
'Ì' => 'I',
|
417 |
+
'Î' => 'I',
|
418 |
+
'Ï' => 'I',
|
419 |
+
'Ĩ' => 'I',
|
420 |
+
'Ī' => 'I',
|
421 |
+
'Ĭ' => 'I',
|
422 |
+
'Į' => 'I',
|
423 |
+
'İ' => 'I',
|
424 |
+
'IJ' => 'IJ',
|
425 |
+
'Ȉ' => 'I',
|
426 |
+
'Ȋ' => 'I',
|
427 |
+
'ĵ' => 'j',
|
428 |
+
'Ĵ' => 'J',
|
429 |
+
'ķ' => 'k',
|
430 |
+
'Ķ' => 'K',
|
431 |
+
'ĺ' => 'l',
|
432 |
+
'ļ' => 'l',
|
433 |
+
'ľ' => 'l',
|
434 |
+
'ŀ' => 'l',
|
435 |
+
'ł' => 'l',
|
436 |
+
'Ĺ' => 'L',
|
437 |
+
'Ļ' => 'L',
|
438 |
+
'Ľ' => 'L',
|
439 |
+
'Ŀ' => 'L',
|
440 |
+
'Ł' => 'L',
|
441 |
+
'ñ' => 'n',
|
442 |
+
'ń' => 'n',
|
443 |
+
'ņ' => 'n',
|
444 |
+
'ň' => 'n',
|
445 |
+
'ʼn' => 'n',
|
446 |
+
'Ñ' => 'N',
|
447 |
+
'Ń' => 'N',
|
448 |
+
'Ņ' => 'N',
|
449 |
+
'Ň' => 'N',
|
450 |
+
'ó' => 'o',
|
451 |
+
'ò' => 'o',
|
452 |
+
'ö' => 'oe',
|
453 |
+
'ô' => 'o',
|
454 |
+
'õ' => 'o',
|
455 |
+
'ø' => 'o',
|
456 |
+
'ō' => 'o',
|
457 |
+
'ŏ' => 'o',
|
458 |
+
'ő' => 'o',
|
459 |
+
'œ' => 'oe',
|
460 |
+
'ȍ' => 'o',
|
461 |
+
'ȏ' => 'o',
|
462 |
+
'Ó' => 'O',
|
463 |
+
'Ò' => 'O',
|
464 |
+
'Ö' => 'Oe',
|
465 |
+
'Ô' => 'O',
|
466 |
+
'Õ' => 'O',
|
467 |
+
'Ø' => 'O',
|
468 |
+
'Ō' => 'O',
|
469 |
+
'Ŏ' => 'O',
|
470 |
+
'Ő' => 'O',
|
471 |
+
'Œ' => 'OE',
|
472 |
+
'Ȍ' => 'O',
|
473 |
+
'Ȏ' => 'O',
|
474 |
+
'ŕ' => 'r',
|
475 |
+
'ř' => 'r',
|
476 |
+
'ȑ' => 'r',
|
477 |
+
'ȓ' => 'r',
|
478 |
+
'Ŕ' => 'R',
|
479 |
+
'Ř' => 'R',
|
480 |
+
'Ȑ' => 'R',
|
481 |
+
'Ȓ' => 'R',
|
482 |
+
'ß' => 'ss',
|
483 |
+
'ś' => 's',
|
484 |
+
'ŝ' => 's',
|
485 |
+
'ş' => 's',
|
486 |
+
'š' => 's',
|
487 |
+
'ș' => 's',
|
488 |
+
'Ś' => 'S',
|
489 |
+
'Ŝ' => 'S',
|
490 |
+
'Ş' => 'S',
|
491 |
+
'Š' => 'S',
|
492 |
+
'Ș' => 'S',
|
493 |
+
'ţ' => 't',
|
494 |
+
'ť' => 't',
|
495 |
+
'ŧ' => 't',
|
496 |
+
'ț' => 't',
|
497 |
+
'Ţ' => 'T',
|
498 |
+
'Ť' => 'T',
|
499 |
+
'Ŧ' => 'T',
|
500 |
+
'Ț' => 'T',
|
501 |
+
'ú' => 'u',
|
502 |
+
'ù' => 'u',
|
503 |
+
'ü' => 'ue',
|
504 |
+
'û' => 'u',
|
505 |
+
'ũ' => 'u',
|
506 |
+
'ū' => 'u',
|
507 |
+
'ŭ' => 'u',
|
508 |
+
'ů' => 'u',
|
509 |
+
'ű' => 'u',
|
510 |
+
'ų' => 'u',
|
511 |
+
'ȕ' => 'u',
|
512 |
+
'ȗ' => 'u',
|
513 |
+
'Ú' => 'U',
|
514 |
+
'Ù' => 'U',
|
515 |
+
'Ü' => 'Ue',
|
516 |
+
'Û' => 'U',
|
517 |
+
'Ũ' => 'U',
|
518 |
+
'Ū' => 'U',
|
519 |
+
'Ŭ' => 'U',
|
520 |
+
'Ů' => 'U',
|
521 |
+
'Ű' => 'U',
|
522 |
+
'Ų' => 'U',
|
523 |
+
'Ȕ' => 'U',
|
524 |
+
'Ȗ' => 'U',
|
525 |
+
'ŵ' => 'w',
|
526 |
+
'Ŵ' => 'W',
|
527 |
+
'ý' => 'y',
|
528 |
+
'ÿ' => 'y',
|
529 |
+
'ŷ' => 'y',
|
530 |
+
'Ý' => 'Y',
|
531 |
+
'Ÿ' => 'Y',
|
532 |
+
'Ŷ' => 'Y',
|
533 |
+
'ź' => 'z',
|
534 |
+
'ż' => 'z',
|
535 |
+
'ž' => 'z',
|
536 |
+
'Ź' => 'Z',
|
537 |
+
'Ż' => 'Z',
|
538 |
+
'Ž' => 'Z',
|
539 |
+
);
|
540 |
+
|
541 |
+
if (strlen($string) == 0) {
|
542 |
+
return "";
|
543 |
+
}
|
544 |
+
|
545 |
+
// ensure UTF-8, for single-byte-encodings use either
|
546 |
+
// the internal encoding or assume ISO-8859-1
|
547 |
+
$utf8string = mb_convert_encoding(
|
548 |
+
$string,
|
549 |
+
"UTF-8",
|
550 |
+
array("UTF-8", mb_internal_encoding(), "ISO-8859-1")
|
551 |
+
);
|
552 |
+
|
553 |
+
// replace known special chars
|
554 |
+
$result = strtr($utf8string, $special_chars);
|
555 |
+
// upper case
|
556 |
+
$result = strtoupper($result);
|
557 |
+
// make sure every special char is replaced by one space, not two or three
|
558 |
+
$result = mb_convert_encoding($result, "ASCII", "UTF-8");
|
559 |
+
$result = preg_replace($this->invalidString_regexp, ' ', $result);
|
560 |
+
|
561 |
+
return $result;
|
562 |
+
}
|
563 |
+
|
564 |
+
/**
|
565 |
+
* Auxillary method to filter output strings.
|
566 |
+
*
|
567 |
+
* @param string $str Text to filter
|
568 |
+
* @param int $len Length of text field
|
569 |
+
*
|
570 |
+
* @access private
|
571 |
+
* @return string
|
572 |
+
*/
|
573 |
+
protected function filter($str, $len)
|
574 |
+
{
|
575 |
+
return substr($this->makeValidString($str), 0, $len);
|
576 |
+
}
|
577 |
+
|
578 |
+
/**
|
579 |
+
* Writes the DTA file.
|
580 |
+
*
|
581 |
+
* @param string $filename Filename.
|
582 |
+
*
|
583 |
+
* @access public
|
584 |
+
* @return boolean
|
585 |
+
*/
|
586 |
+
function saveFile($filename)
|
587 |
+
{
|
588 |
+
$content = $this->getFileContent();
|
589 |
+
|
590 |
+
$Dta_fp = @fopen($filename, "w");
|
591 |
+
if (!$Dta_fp) {
|
592 |
+
$result = false;
|
593 |
+
} else {
|
594 |
+
$result = @fwrite($Dta_fp, $content);
|
595 |
+
@fclose($Dta_fp);
|
596 |
+
}
|
597 |
+
|
598 |
+
return $result;
|
599 |
+
}
|
600 |
+
|
601 |
+
/**
|
602 |
+
* Returns an array with information about the transactions.
|
603 |
+
* Can be used to print an accompanying document (Begleitzettel) for disks.
|
604 |
+
*
|
605 |
+
* @access public
|
606 |
+
* @return array Returns an array with keys: "sender_name",
|
607 |
+
* "sender_bank_code", "sender_account", "sum_amounts",
|
608 |
+
* "count", "date"
|
609 |
+
*/
|
610 |
+
function getMetaData()
|
611 |
+
{
|
612 |
+
return array(
|
613 |
+
"sender_name" => strval($this->account_file_sender['name']),
|
614 |
+
"sender_bank_code" => intval($this->account_file_sender['bank_code']),
|
615 |
+
"sender_account" => floatval($this->account_file_sender['account_number']),
|
616 |
+
"sum_amounts" => floatval($this->sum_amounts / 100.0),
|
617 |
+
"count" => intval($this->count()),
|
618 |
+
"date" => $this->timestamp,
|
619 |
+
);
|
620 |
+
}
|
621 |
+
|
622 |
+
/**
|
623 |
+
* Set the sender of the file.
|
624 |
+
* The given account data is also used as default sender's account.
|
625 |
+
*
|
626 |
+
* Account data contains
|
627 |
+
* name Sender's name.
|
628 |
+
* additional_name Sender's additional name.
|
629 |
+
* bank_code Sender's bank code.
|
630 |
+
* account_number Sender's account number.
|
631 |
+
*
|
632 |
+
* @param array $account Account data for file sender.
|
633 |
+
*
|
634 |
+
* @access public
|
635 |
+
* @return boolean
|
636 |
+
*/
|
637 |
+
abstract function setAccountFileSender($account);
|
638 |
+
|
639 |
+
/**
|
640 |
+
* Adds an exchange. First the account data for the receiver of the exchange is
|
641 |
+
* set. In the case the DTA file contains credits, this is the payment receiver.
|
642 |
+
* If the sender is not specified, values of the file sender are used by default.
|
643 |
+
*
|
644 |
+
* Account data for receiver and sender contain the following fields:
|
645 |
+
* name Name.
|
646 |
+
* bank_code Bank code.
|
647 |
+
* account_number Account number.
|
648 |
+
* additional_name If necessary, additional line for name.
|
649 |
+
*
|
650 |
+
* @param array $account_receiver Receiver's account data.
|
651 |
+
* @param double $amount Amount of money in this exchange.
|
652 |
+
* Currency: EURO
|
653 |
+
* @param array $purposes An Array of lines or a string for
|
654 |
+
* description of the exchange.
|
655 |
+
* @param array $account_sender Sender's account data.
|
656 |
+
*
|
657 |
+
* @access public
|
658 |
+
* @return boolean
|
659 |
+
*/
|
660 |
+
abstract function addExchange(
|
661 |
+
$account_receiver,
|
662 |
+
$amount,
|
663 |
+
$purposes,
|
664 |
+
$account_sender = array()
|
665 |
+
);
|
666 |
+
|
667 |
+
/**
|
668 |
+
* Returns the full content of the generated file.
|
669 |
+
* All added exchanges are processed.
|
670 |
+
*
|
671 |
+
* @access public
|
672 |
+
* @return string
|
673 |
+
*/
|
674 |
+
abstract function getFileContent();
|
675 |
+
|
676 |
+
/* variable and methods to implement Iterator interface */
|
677 |
+
protected $iterator_position = 0;
|
678 |
+
function current()
|
679 |
+
{
|
680 |
+
return $this->exchanges[$this->iterator_position];
|
681 |
+
}
|
682 |
+
function key()
|
683 |
+
{
|
684 |
+
return $this->iterator_position;
|
685 |
+
}
|
686 |
+
function next()
|
687 |
+
{
|
688 |
+
++$this->iterator_position;
|
689 |
+
}
|
690 |
+
function rewind()
|
691 |
+
{
|
692 |
+
$this->iterator_position = 0;
|
693 |
+
}
|
694 |
+
function valid()
|
695 |
+
{
|
696 |
+
return isset($this->exchanges[$this->iterator_position]);
|
697 |
+
}
|
698 |
+
|
699 |
+
}
|
lib/DTA/DTAZV.php
ADDED
@@ -0,0 +1,843 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* DTAZV
|
4 |
+
*
|
5 |
+
* DTAZV is a class that provides functions to create DTAZV files used
|
6 |
+
* in Germany to exchange informations about european money transactions
|
7 |
+
* with banks or online banking programs.
|
8 |
+
*
|
9 |
+
* Disclaimer: this only implements a subset of DTAZV as used for a
|
10 |
+
* "EU-Standardüberweisung" and is only tested against locally used
|
11 |
+
* accounting software.
|
12 |
+
* If you use this class commercially and/or for large transfer amounts
|
13 |
+
* then you might have to implement additional record types (V or W)
|
14 |
+
* and fill additional data fields for notification requirements.
|
15 |
+
*
|
16 |
+
* Implemented using the specification from 2007.
|
17 |
+
* Current specification from 2009 (german/english):
|
18 |
+
* http://www.bundesbank.de/download/meldewesen/aussenwirtschaft/vordrucke/pdf/dtazv_kunde_bank_neu.pdf
|
19 |
+
* http://www.bundesbank.de/download/meldewesen/aussenwirtschaft/vordrucke/pdf/dtazv_financial_inst_bbk.pdf
|
20 |
+
*
|
21 |
+
* PHP version 5
|
22 |
+
*
|
23 |
+
* This LICENSE is in the BSD license style.
|
24 |
+
*
|
25 |
+
* Copyright (c) 2008-2010 Martin Schütte
|
26 |
+
* derived from class DTA
|
27 |
+
* Copyright (c) 2003-2005 Hermann Stainer, Web-Gear
|
28 |
+
* http://www.web-gear.com/
|
29 |
+
* All rights reserved.
|
30 |
+
*
|
31 |
+
* Redistribution and use in source and binary forms, with or without
|
32 |
+
* modification, are permitted provided that the following conditions
|
33 |
+
* are met:
|
34 |
+
*
|
35 |
+
* Redistributions of source code must retain the above copyright
|
36 |
+
* notice, this list of conditions and the following disclaimer.
|
37 |
+
*
|
38 |
+
* Redistributions in binary form must reproduce the above copyright
|
39 |
+
* notice, this list of conditions and the following disclaimer in the
|
40 |
+
* documentation and/or other materials provided with the distribution.
|
41 |
+
*
|
42 |
+
* Neither the name of Hermann Stainer, Web-Gear nor the names of his
|
43 |
+
* contributors may be used to endorse or promote products derived from
|
44 |
+
* this software without specific prior written permission.
|
45 |
+
*
|
46 |
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
47 |
+
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
48 |
+
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
49 |
+
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
50 |
+
* REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
51 |
+
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
52 |
+
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
53 |
+
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
54 |
+
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
55 |
+
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
|
56 |
+
* WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
57 |
+
* POSSIBILITY OF SUCH DAMAGE.
|
58 |
+
*
|
59 |
+
* @category Payment
|
60 |
+
* @package Payment_DTA
|
61 |
+
* @author Martin Schütte <info@mschuette.name>
|
62 |
+
* @author Hermann Stainer <hs@web-gear.com>
|
63 |
+
* @copyright 2008-2010 Martin Schütte
|
64 |
+
* @copyright 2003-2005 Hermann Stainer, Web-Gear
|
65 |
+
* @license http://www.debian.org/misc/bsd.license BSD License (3 Clause)
|
66 |
+
* @version SVN: $Id: DTAZV.php 310332 2011-04-18 21:31:18Z mschuett $
|
67 |
+
* @link http://pear.php.net/package/Payment_DTA
|
68 |
+
*/
|
69 |
+
|
70 |
+
/**
|
71 |
+
* needs base class
|
72 |
+
*/
|
73 |
+
require_once 'DTA/DTABase.php';
|
74 |
+
|
75 |
+
/**
|
76 |
+
* DTAZV class provides functions to create and handle with DTAZV
|
77 |
+
* files used in Germany to exchange informations about european
|
78 |
+
* money transactions with banks or online banking programs.
|
79 |
+
*
|
80 |
+
* @category Payment
|
81 |
+
* @package Payment_DTA
|
82 |
+
* @author Martin Schütte <info@mschuette.name>
|
83 |
+
* @author Hermann Stainer <hs@web-gear.com>
|
84 |
+
* @copyright 2008 Martin Schütte
|
85 |
+
* @license http://www.debian.org/misc/bsd.license BSD License (3 Clause)
|
86 |
+
* @version Release: 1.4.2
|
87 |
+
* @link http://pear.php.net/package/Payment_DTA
|
88 |
+
*/
|
89 |
+
class DTAZV extends DTABase
|
90 |
+
{
|
91 |
+
/**
|
92 |
+
* The maximum allowed amount per transfer (in cents).
|
93 |
+
*
|
94 |
+
* By default set to the maximum amount for a "EU-Standardüberweisung"
|
95 |
+
* that does not have to be reported.
|
96 |
+
*
|
97 |
+
* @see setMaxAmount()
|
98 |
+
* @var integer $max_amount
|
99 |
+
* @access protected
|
100 |
+
*/
|
101 |
+
protected $max_amount;
|
102 |
+
|
103 |
+
/**
|
104 |
+
* Constructor.
|
105 |
+
*
|
106 |
+
* @param string $input Optional, a string with DTAZV data to import.
|
107 |
+
*
|
108 |
+
* @access public
|
109 |
+
*/
|
110 |
+
function __construct($input = null)
|
111 |
+
{
|
112 |
+
parent::__construct();
|
113 |
+
$this->max_amount = 12500*100;
|
114 |
+
|
115 |
+
if (is_string($input)) {
|
116 |
+
try {
|
117 |
+
$this->parse($input);
|
118 |
+
} catch (Payment_DTA_FatalParseException $e) {
|
119 |
+
// cannot construct this object, reset everything
|
120 |
+
parent::__construct();
|
121 |
+
$this->max_amount = 12500*100;
|
122 |
+
$this->allerrors[] = $e;
|
123 |
+
} catch (Payment_DTA_Exception $e) {
|
124 |
+
// object is valid, but save the error
|
125 |
+
$this->allerrors[] = $e;
|
126 |
+
}
|
127 |
+
}
|
128 |
+
}
|
129 |
+
|
130 |
+
/**
|
131 |
+
* Set the sender of the DTAZV file. Must be set for valid DTAZV file.
|
132 |
+
* The given account data is also used as default sender's account.
|
133 |
+
* Account data contains
|
134 |
+
* name Sender's name. Maximally 35 chars are allowed.
|
135 |
+
* additional_name Sender's additional name (max. 35 chars)
|
136 |
+
* street Sender's street/PO Box (max. 35 chars)
|
137 |
+
* city Sender's city (max. 35 chars)
|
138 |
+
* bank_code Sender's bank code (BLZ, 8-digit)
|
139 |
+
* account_number Sender's account number (10-digit)
|
140 |
+
*
|
141 |
+
* @param array $account Account data fot file sender.
|
142 |
+
*
|
143 |
+
* @access public
|
144 |
+
* @return boolean
|
145 |
+
*/
|
146 |
+
function setAccountFileSender($account)
|
147 |
+
{
|
148 |
+
$account['account_number']
|
149 |
+
= strval($account['account_number']);
|
150 |
+
$account['bank_code']
|
151 |
+
= strval($account['bank_code']);
|
152 |
+
|
153 |
+
if (strlen($account['name']) > 0
|
154 |
+
&& strlen($account['bank_code']) > 0
|
155 |
+
&& strlen($account['bank_code']) <= 8
|
156 |
+
&& ctype_digit($account['bank_code'])
|
157 |
+
&& strlen($account['account_number']) > 0
|
158 |
+
&& strlen($account['account_number']) <= 10
|
159 |
+
&& ctype_digit($account['account_number'])
|
160 |
+
) {
|
161 |
+
if (empty($account['additional_name'])) {
|
162 |
+
$account['additional_name'] = "";
|
163 |
+
}
|
164 |
+
if (empty($account['street'])) {
|
165 |
+
$account['street'] = "";
|
166 |
+
}
|
167 |
+
if (empty($account['city'])) {
|
168 |
+
$account['city'] = "";
|
169 |
+
}
|
170 |
+
|
171 |
+
$this->account_file_sender = array(
|
172 |
+
"name" => $this->filter($account['name'], 35),
|
173 |
+
"additional_name" => $this->filter($account['additional_name'], 35),
|
174 |
+
"street" => $this->filter($account['street'], 35),
|
175 |
+
"city" => $this->filter($account['city'], 35),
|
176 |
+
"bank_code" => $account['bank_code'],
|
177 |
+
"account_number" => $account['account_number']
|
178 |
+
);
|
179 |
+
|
180 |
+
$result = true;
|
181 |
+
} else {
|
182 |
+
$result = false;
|
183 |
+
}
|
184 |
+
|
185 |
+
return $result;
|
186 |
+
}
|
187 |
+
|
188 |
+
/**
|
189 |
+
* Auxillary method to fill and normalize the account sender array.
|
190 |
+
*
|
191 |
+
* @param array $account_sender Sender's account data.
|
192 |
+
*
|
193 |
+
* @access private
|
194 |
+
* @return array
|
195 |
+
*/
|
196 |
+
private function _exchangeFillSender($account_sender)
|
197 |
+
{
|
198 |
+
if (empty($account_sender['name'])) {
|
199 |
+
$account_sender['name']
|
200 |
+
= $this->account_file_sender['name'];
|
201 |
+
}
|
202 |
+
if (empty($account_sender['additional_name'])) {
|
203 |
+
$account_sender['additional_name']
|
204 |
+
= $this->account_file_sender['additional_name'];
|
205 |
+
}
|
206 |
+
if (empty($account_sender['street'])) {
|
207 |
+
$account_sender['street']
|
208 |
+
= $this->account_file_sender['street'];
|
209 |
+
}
|
210 |
+
if (empty($account_sender['city'])) {
|
211 |
+
$account_sender['city']
|
212 |
+
= $this->account_file_sender['city'];
|
213 |
+
}
|
214 |
+
if (empty($account_sender['bank_code'])) {
|
215 |
+
$account_sender['bank_code']
|
216 |
+
= $this->account_file_sender['bank_code'];
|
217 |
+
}
|
218 |
+
if (empty($account_sender['account_number'])) {
|
219 |
+
$account_sender['account_number']
|
220 |
+
= $this->account_file_sender['account_number'];
|
221 |
+
}
|
222 |
+
$account_sender['account_number']
|
223 |
+
= strval($account_sender['account_number']);
|
224 |
+
$account_sender['bank_code']
|
225 |
+
= strval($account_sender['bank_code']);
|
226 |
+
|
227 |
+
return $account_sender;
|
228 |
+
}
|
229 |
+
|
230 |
+
/**
|
231 |
+
* Auxillary method to fill and normalize the account receiver array.
|
232 |
+
*
|
233 |
+
* @param array $account_receiver Receiver's account data.
|
234 |
+
*
|
235 |
+
* @access private
|
236 |
+
* @return array
|
237 |
+
*/
|
238 |
+
private function _exchangeFillReceiver($account_receiver)
|
239 |
+
{
|
240 |
+
if (empty($account_receiver['additional_name'])) {
|
241 |
+
$account_receiver['additional_name'] = "";
|
242 |
+
}
|
243 |
+
if (empty($account_receiver['street'])) {
|
244 |
+
$account_receiver['street'] = "";
|
245 |
+
}
|
246 |
+
if (empty($account_receiver['city'])) {
|
247 |
+
$account_receiver['city'] = "";
|
248 |
+
}
|
249 |
+
|
250 |
+
if (strlen($account_receiver['bank_code']) == 8) {
|
251 |
+
if (is_numeric($account_receiver['bank_code'])) {
|
252 |
+
// german BLZ -> allowed with special format
|
253 |
+
$account_receiver['bank_code']
|
254 |
+
= '///' . $account_receiver['bank_code'];
|
255 |
+
} else {
|
256 |
+
// short BIC -> fill to 11 chars
|
257 |
+
$account_receiver['bank_code']
|
258 |
+
= $account_receiver['bank_code'] . 'XXX';
|
259 |
+
}
|
260 |
+
}
|
261 |
+
|
262 |
+
return $account_receiver;
|
263 |
+
}
|
264 |
+
|
265 |
+
/**
|
266 |
+
* Adds an exchange.
|
267 |
+
*
|
268 |
+
* First the account data for the receiver of the exchange is set.
|
269 |
+
* In the case the DTA file contains credits, this is the payment receiver.
|
270 |
+
* In the other case (the DTA file contains debits), this is the account,
|
271 |
+
* from which money is taken away.
|
272 |
+
*
|
273 |
+
* If the sender is not specified, values of the file sender are used by default.
|
274 |
+
* Account data for sender contain
|
275 |
+
* name Sender's name. Maximally 35 chars are allowed.
|
276 |
+
* additional_name Sender's additional name (max. 35 chars)
|
277 |
+
* street Sender's street/PO Box (max. 35 chars)
|
278 |
+
* city Sender's city (max. 35 chars)
|
279 |
+
* bank_code Sender's bank code (8-digit BLZ)
|
280 |
+
* account_number Sender's account number (10-digit)
|
281 |
+
*
|
282 |
+
* Account data for receiver contain
|
283 |
+
* name Receiver's name. Maximally 35 chars are allowed.
|
284 |
+
* additional_name Receiver's additional name (max. 35 chars)
|
285 |
+
* street Receiver's street/PO Box (max. 35 chars)
|
286 |
+
* city Receiver's city (max. 35 chars)
|
287 |
+
* bank_code Receiver's bank code (8 or 11 char BIC)
|
288 |
+
* account_number Receiver's account number (up to 34 char IBAN)
|
289 |
+
*
|
290 |
+
* @param array $account_receiver Receiver's account data.
|
291 |
+
* @param double $amount Amount of money (Euro) in this exchange.
|
292 |
+
* @param array $purposes Array of up to 4 lines (max. 35 chars each)
|
293 |
+
* for description of the exchange.
|
294 |
+
* @param array $account_sender Sender's account data.
|
295 |
+
*
|
296 |
+
* @access public
|
297 |
+
* @return boolean
|
298 |
+
*/
|
299 |
+
function addExchange($account_receiver, $amount, $purposes, $account_sender = array())
|
300 |
+
{
|
301 |
+
$account_receiver = $this->_exchangeFillReceiver($account_receiver);
|
302 |
+
$account_sender = $this->_exchangeFillSender($account_sender);
|
303 |
+
|
304 |
+
/*
|
305 |
+
* notes for IBAN: currently only checked for length;
|
306 |
+
* we can use PEAR::Validate_Finance_IBAN once it
|
307 |
+
* gets a 'beta' or 'stable' status
|
308 |
+
* the minimum length of 12 is chosen arbitrarily as
|
309 |
+
* an additional plausibility check; currently the
|
310 |
+
* shortest real IBANs have 15 chars
|
311 |
+
*/
|
312 |
+
$cents = (int)(round($amount * 100));
|
313 |
+
if (strlen($account_receiver['name']) > 0
|
314 |
+
&& strlen($account_receiver['bank_code']) == 11
|
315 |
+
&& strlen($account_receiver['account_number']) > 12
|
316 |
+
&& strlen($account_receiver['account_number']) <= 34
|
317 |
+
&& strlen($account_sender['name']) > 0
|
318 |
+
&& strlen($account_sender['bank_code']) > 0
|
319 |
+
&& strlen($account_sender['bank_code']) <= 8
|
320 |
+
&& ctype_digit($account_sender['bank_code'])
|
321 |
+
&& strlen($account_sender['account_number']) > 0
|
322 |
+
&& strlen($account_sender['account_number']) <= 10
|
323 |
+
&& ctype_digit($account_sender['account_number'])
|
324 |
+
&& is_numeric($amount) && $cents > 0
|
325 |
+
&& $cents <= $this->max_amount
|
326 |
+
&& $this->sum_amounts <= PHP_INT_MAX - $cents
|
327 |
+
&& ((is_array($purposes) && count($purposes) >= 1 && count($purposes) <= 4)
|
328 |
+
|| (is_string($purposes) && strlen($purposes) > 0))
|
329 |
+
) {
|
330 |
+
|
331 |
+
$this->sum_amounts += $cents;
|
332 |
+
|
333 |
+
if (is_string($purposes)) {
|
334 |
+
$filtered_purposes = str_split(
|
335 |
+
$this->makeValidString($purposes), 35
|
336 |
+
);
|
337 |
+
$filtered_purposes = array_slice($filtered_purposes, 0, 14);
|
338 |
+
} else {
|
339 |
+
$filtered_purposes = array();
|
340 |
+
array_slice($purposes, 0, 4);
|
341 |
+
foreach ($purposes as $purposeline) {
|
342 |
+
$filtered_purposes[] = $this->filter($purposeline, 35);
|
343 |
+
}
|
344 |
+
}
|
345 |
+
// ensure four lines
|
346 |
+
$filtered_purposes = array_slice(
|
347 |
+
array_pad($filtered_purposes, 4, ""), 0, 4
|
348 |
+
);
|
349 |
+
|
350 |
+
$this->exchanges[] = array(
|
351 |
+
"sender_name" => $this->filter($account_sender['name'], 35),
|
352 |
+
"sender_additional_name" => $this->filter($account_sender['additional_name'], 35),
|
353 |
+
"sender_street" => $this->filter($account_sender['street'], 35),
|
354 |
+
"sender_city" => $this->filter($account_sender['city'], 35),
|
355 |
+
"sender_bank_code" => $account_sender['bank_code'],
|
356 |
+
"sender_account_number" => $account_sender['account_number'],
|
357 |
+
"receiver_name" => $this->filter($account_receiver['name'], 35),
|
358 |
+
"receiver_additional_name" => $this->filter($account_receiver['additional_name'], 35),
|
359 |
+
"receiver_street" => $this->filter($account_receiver['street'], 35),
|
360 |
+
"receiver_city" => $this->filter($account_receiver['city'], 35),
|
361 |
+
"receiver_bank_code" => $account_receiver['bank_code'],
|
362 |
+
"receiver_account_number" => $account_receiver['account_number'],
|
363 |
+
"amount" => $cents,
|
364 |
+
"purposes" => $filtered_purposes
|
365 |
+
);
|
366 |
+
|
367 |
+
$result = true;
|
368 |
+
} else {
|
369 |
+
$result = false;
|
370 |
+
}
|
371 |
+
|
372 |
+
return $result;
|
373 |
+
}
|
374 |
+
|
375 |
+
/**
|
376 |
+
* Returns the full content of the generated DTAZV file.
|
377 |
+
* All added exchanges are processed.
|
378 |
+
*
|
379 |
+
* @access public
|
380 |
+
* @return string
|
381 |
+
*/
|
382 |
+
function getFileContent()
|
383 |
+
{
|
384 |
+
$content = "";
|
385 |
+
|
386 |
+
/* The checksum in DTAZV adds only the integer parts of all
|
387 |
+
* transfered amounts and is different from the sum of amounts.
|
388 |
+
*/
|
389 |
+
$checksum_amounts = 0;
|
390 |
+
$sum_amounts = 0;
|
391 |
+
|
392 |
+
/**
|
393 |
+
* data record Q
|
394 |
+
*/
|
395 |
+
|
396 |
+
// Q01 record length (256 Bytes)
|
397 |
+
$content .= "0256";
|
398 |
+
// Q02 record type
|
399 |
+
$content .= "Q";
|
400 |
+
// Q03 BLZ receiving this file (usually the sender's bank)
|
401 |
+
$content .= str_pad(
|
402 |
+
$this->account_file_sender['bank_code'], 8, "0", STR_PAD_LEFT
|
403 |
+
);
|
404 |
+
// Q04 customer number (usually the sender's account)
|
405 |
+
$content .= str_pad(
|
406 |
+
$this->account_file_sender['account_number'], 10, "0", STR_PAD_LEFT
|
407 |
+
);
|
408 |
+
// Q05 sender's address
|
409 |
+
$content .= str_pad(
|
410 |
+
$this->account_file_sender['name'], 35, " ", STR_PAD_RIGHT
|
411 |
+
);
|
412 |
+
$content .= str_pad(
|
413 |
+
$this->account_file_sender['additional_name'], 35, " ", STR_PAD_RIGHT
|
414 |
+
);
|
415 |
+
$content .= str_pad(
|
416 |
+
$this->account_file_sender['street'], 35, " ", STR_PAD_RIGHT
|
417 |
+
);
|
418 |
+
$content .= str_pad(
|
419 |
+
$this->account_file_sender['city'], 35, " ", STR_PAD_RIGHT
|
420 |
+
);
|
421 |
+
// Q06 date of file creation
|
422 |
+
$content .= strftime("%y%m%d", $this->timestamp);
|
423 |
+
// Q07 daily counter
|
424 |
+
// UNSURE if necessary
|
425 |
+
$content .= "00";
|
426 |
+
// Q08 execution date
|
427 |
+
$content .= strftime("%y%m%d", $this->timestamp);
|
428 |
+
// Q09 notification to federal bank
|
429 |
+
// according to specification (see above)
|
430 |
+
// transfers <= 12500 Euro do not have to be reported
|
431 |
+
$content .= "N";
|
432 |
+
// Q10 notification data
|
433 |
+
$content .= "00";
|
434 |
+
// Q11 notification BLZ
|
435 |
+
$content .= str_repeat("0", 8);
|
436 |
+
// Q12 reserve
|
437 |
+
$content .= str_repeat(" ", 68);
|
438 |
+
|
439 |
+
assert(strlen($content) == 256);
|
440 |
+
|
441 |
+
/**
|
442 |
+
* data record(s) T
|
443 |
+
*/
|
444 |
+
|
445 |
+
foreach ($this->exchanges as $exchange) {
|
446 |
+
$sum_amounts += intval($exchange['amount']);
|
447 |
+
$checksum_amounts += intval($exchange['amount']/100);
|
448 |
+
|
449 |
+
// T01 record length
|
450 |
+
$content .= "0768";
|
451 |
+
// T02 record type
|
452 |
+
$content .= "T";
|
453 |
+
// T03 sender's bank
|
454 |
+
$content .= str_pad(
|
455 |
+
$exchange['sender_bank_code'], 8, "0", STR_PAD_LEFT
|
456 |
+
);
|
457 |
+
// T04a currency (fixed)
|
458 |
+
$content .= "EUR";
|
459 |
+
// T04b sender's account
|
460 |
+
$content .= str_pad(
|
461 |
+
$exchange['sender_account_number'], 10, "0", STR_PAD_LEFT
|
462 |
+
);
|
463 |
+
// T05 execution date (optional, if != Q6)
|
464 |
+
$content .= str_repeat("0", 6);
|
465 |
+
// T06 BLZ, empty for Standardüberweisung
|
466 |
+
$content .= str_repeat("0", 8);
|
467 |
+
// T07a currency, empty for Standardüberweisung
|
468 |
+
$content .= str_repeat(" ", 3);
|
469 |
+
// T07b account, empty for Standardüberweisung
|
470 |
+
$content .= str_repeat("0", 10);
|
471 |
+
// T08 receiver's BIC
|
472 |
+
$content .= str_pad(
|
473 |
+
$exchange['receiver_bank_code'], 11, "X", STR_PAD_RIGHT
|
474 |
+
);
|
475 |
+
// T09a country code, empty for Standardüberweisung
|
476 |
+
$content .= str_repeat(" ", 3);
|
477 |
+
// T09b receiver's bank address, empty for Standardüberweisung
|
478 |
+
$content .= str_repeat(" ", 4*35);
|
479 |
+
// T10a receiver's country code --> use cc from IBAN
|
480 |
+
$content .= substr($exchange['receiver_account_number'], 0, 2) . ' ';
|
481 |
+
// T10b receiver's address
|
482 |
+
$content .= str_pad(
|
483 |
+
$exchange['receiver_name'], 35, " ", STR_PAD_RIGHT
|
484 |
+
);
|
485 |
+
$content .= str_pad(
|
486 |
+
$exchange['receiver_additional_name'], 35, " ", STR_PAD_RIGHT
|
487 |
+
);
|
488 |
+
$content .= str_pad(
|
489 |
+
$exchange['receiver_street'], 35, " ", STR_PAD_RIGHT
|
490 |
+
);
|
491 |
+
$content .= str_pad(
|
492 |
+
$exchange['receiver_city'], 35, " ", STR_PAD_RIGHT
|
493 |
+
);
|
494 |
+
// T11 empty for Standardüberweisung
|
495 |
+
$content .= str_repeat(" ", 2*35);
|
496 |
+
// T12 receiver's IBAN
|
497 |
+
$content .= '/' . str_pad(
|
498 |
+
$exchange['receiver_account_number'], 34, " ", STR_PAD_RIGHT
|
499 |
+
);
|
500 |
+
// T13 currency
|
501 |
+
$content .= "EUR";
|
502 |
+
// T14a amount (integer)
|
503 |
+
$content .= str_pad(
|
504 |
+
intval($exchange['amount']/100), 14, "0", STR_PAD_LEFT
|
505 |
+
);
|
506 |
+
// T14b amount (decimal places)
|
507 |
+
$content .= str_pad(($exchange['amount']%100)*10, 3, "0", STR_PAD_LEFT);
|
508 |
+
// T15 purpose
|
509 |
+
$content .= str_pad($exchange['purposes'][0], 35, " ", STR_PAD_RIGHT);
|
510 |
+
$content .= str_pad($exchange['purposes'][1], 35, " ", STR_PAD_RIGHT);
|
511 |
+
$content .= str_pad($exchange['purposes'][2], 35, " ", STR_PAD_RIGHT);
|
512 |
+
$content .= str_pad($exchange['purposes'][3], 35, " ", STR_PAD_RIGHT);
|
513 |
+
// T16--T20 instruction code, empty for Standardüberweisung
|
514 |
+
$content .= str_repeat("0", 4*2);
|
515 |
+
$content .= str_repeat(" ", 25);
|
516 |
+
// T21 fees
|
517 |
+
$content .= "00";
|
518 |
+
// T22 payment type
|
519 |
+
$content .= "13";
|
520 |
+
// T23 free text for accounting
|
521 |
+
$content .= str_repeat(" ", 27);
|
522 |
+
// T24 contact details
|
523 |
+
$content .= str_repeat(" ", 35);
|
524 |
+
// T25 reporting key
|
525 |
+
$content .= "0";
|
526 |
+
// T26 reserve
|
527 |
+
$content .= str_repeat(" ", 51);
|
528 |
+
// T26 following report extension
|
529 |
+
$content .= "00";
|
530 |
+
}
|
531 |
+
|
532 |
+
assert((strlen($content) - 256) % 768 == 0);
|
533 |
+
|
534 |
+
/**
|
535 |
+
* data record Z
|
536 |
+
*/
|
537 |
+
|
538 |
+
// Z01 record length
|
539 |
+
$content .= "0256";
|
540 |
+
// Z02 record type
|
541 |
+
$content .= "Z";
|
542 |
+
// Z03 sum of amounts (integer parts in T14a)
|
543 |
+
assert($sum_amounts == $this->sum_amounts);
|
544 |
+
$content .= str_pad(intval($checksum_amounts), 15, "0", STR_PAD_LEFT);
|
545 |
+
// Z04 number of records type T
|
546 |
+
$content .= str_pad(count($this->exchanges), 15, "0", STR_PAD_LEFT);
|
547 |
+
// Z05 reserve
|
548 |
+
$content .= str_repeat(" ", 221);
|
549 |
+
|
550 |
+
assert(strlen($content) >= 512);
|
551 |
+
assert((strlen($content) - 512) % 768 == 0);
|
552 |
+
|
553 |
+
return $content;
|
554 |
+
}
|
555 |
+
|
556 |
+
/**
|
557 |
+
* Set the maximum allowed amount per transfer.
|
558 |
+
* Pass 0 to disable the check (will set to maximum integer value).
|
559 |
+
*
|
560 |
+
* <b>Warning</b>: Use at your own risk.
|
561 |
+
*
|
562 |
+
* Amounts > 12500 Euro usually have notification requirements.
|
563 |
+
*
|
564 |
+
* Amounts > 50000 Euro are not allowed in a "EU-Standardüberweisung",
|
565 |
+
* thus yielding a malformed DTAZV.
|
566 |
+
*
|
567 |
+
* @param integer $newmax New maximum allowed amount in Euro
|
568 |
+
* or 0 to disable check.
|
569 |
+
*
|
570 |
+
* @access public
|
571 |
+
* @since 1.3.2
|
572 |
+
* @link http://www.bundesbank.de/meldewesen/mw_aussenwirtschaft.en.php
|
573 |
+
* info on notification requirements
|
574 |
+
* @return void
|
575 |
+
*/
|
576 |
+
function setMaxAmount($newmax)
|
577 |
+
{
|
578 |
+
if ((int)$newmax == 0 || $newmax > PHP_INT_MAX/100) {
|
579 |
+
$this->max_amount = PHP_INT_MAX;
|
580 |
+
} else {
|
581 |
+
$this->max_amount = (int)(round($newmax * 100));
|
582 |
+
}
|
583 |
+
}
|
584 |
+
|
585 |
+
/**
|
586 |
+
* Returns an array with information about the transactions.
|
587 |
+
*
|
588 |
+
* @access public
|
589 |
+
* @return array Returns an array with keys: "sender_name",
|
590 |
+
* "sender_bank_code", "sender_account", "sum_amounts",
|
591 |
+
* "type", "sum_bankcodes", "sum_accounts", "count", "date"
|
592 |
+
*/
|
593 |
+
function getMetaData()
|
594 |
+
{
|
595 |
+
$meta = parent::getMetaData();
|
596 |
+
|
597 |
+
$meta["type"] = "CREDIT";
|
598 |
+
|
599 |
+
return $meta;
|
600 |
+
}
|
601 |
+
|
602 |
+
/**
|
603 |
+
* Auxillary parser to consume Q records.
|
604 |
+
*
|
605 |
+
* @param string $input content of DTAZV file
|
606 |
+
* @param integer &$offset read offset into $input
|
607 |
+
*
|
608 |
+
* @throws Payment_DTA_Exception on unrecognized input
|
609 |
+
* @access private
|
610 |
+
* @return void
|
611 |
+
*/
|
612 |
+
private function _parseQrecord($input, &$offset)
|
613 |
+
{
|
614 |
+
$Q = array();
|
615 |
+
|
616 |
+
/* field Q01+Q02 record length and type */
|
617 |
+
$this->checkStr($input, $offset, "0256Q");
|
618 |
+
/* field Q03 BLZ receiving this file */
|
619 |
+
$Q['bank_code'] = $this->getNum($input, $offset, 8);
|
620 |
+
/* field Q04 customer number */
|
621 |
+
$Q['account_number'] = $this->getNum($input, $offset, 10);
|
622 |
+
/* field Q05 sender's address */
|
623 |
+
$Q['name'] = rtrim($this->getStr($input, $offset, 35, true));
|
624 |
+
$Q['additional_name'] = rtrim($this->getStr($input, $offset, 35, true));
|
625 |
+
$Q['street'] = rtrim($this->getStr($input, $offset, 35, true));
|
626 |
+
$Q['city'] = rtrim($this->getStr($input, $offset, 35, true));
|
627 |
+
/* field Q06 date of file creation -- use to set timestamp */
|
628 |
+
$Qdate_year = $this->getNum($input, $offset, 2);
|
629 |
+
$Qdate_month = $this->getNum($input, $offset, 2);
|
630 |
+
$Qdate_day = $this->getNum($input, $offset, 2);
|
631 |
+
$this->timestamp = mktime(
|
632 |
+
0, 0, 0,
|
633 |
+
intval($Qdate_month), intval($Qdate_day), intval($Qdate_year)
|
634 |
+
);
|
635 |
+
/* field Q07 daily counter -- ignored */
|
636 |
+
$this->getNum($input, $offset, 2);
|
637 |
+
/* field Q08 execution date -- ignored */
|
638 |
+
$this->getNum($input, $offset, 6);
|
639 |
+
/* field Q09 notification to federal bank */
|
640 |
+
$this->checkStr($input, $offset, "N");
|
641 |
+
/* field Q10 notification data */
|
642 |
+
$this->checkStr($input, $offset, "00");
|
643 |
+
/* field Q11 notification BLZ */
|
644 |
+
$this->checkStr($input, $offset, str_repeat("0", 8));
|
645 |
+
/* field Q12 reserve */
|
646 |
+
$this->checkStr($input, $offset, str_repeat(" ", 68));
|
647 |
+
|
648 |
+
$rc = $this->setAccountFileSender(
|
649 |
+
array(
|
650 |
+
"name" => $Q['name'],
|
651 |
+
"bank_code" => $Q['bank_code'],
|
652 |
+
"account_number" => $Q['account_number'],
|
653 |
+
"additional_name" => $Q['additional_name'],
|
654 |
+
)
|
655 |
+
);
|
656 |
+
|
657 |
+
$rc = $this->setAccountFileSender($Q);
|
658 |
+
if (!$rc) {
|
659 |
+
// should never happen
|
660 |
+
throw new Payment_DTA_FatalParseException(
|
661 |
+
"Cannot setAccountFileSender(), please file a bug report");
|
662 |
+
}
|
663 |
+
}
|
664 |
+
|
665 |
+
/**
|
666 |
+
* Auxillary parser to consume T records.
|
667 |
+
*
|
668 |
+
* @param string $input content of DTAZV file
|
669 |
+
* @param integer &$offset read offset into $input
|
670 |
+
* @param array &$checks holds checksums for validation in Z record
|
671 |
+
*
|
672 |
+
* @throws Payment_DTA_Exception on unrecognized input
|
673 |
+
* @access private
|
674 |
+
* @return void
|
675 |
+
*/
|
676 |
+
private function _parseTrecord($input, &$offset, &$checks)
|
677 |
+
{
|
678 |
+
$Tsend = array();
|
679 |
+
$Trecv = array();
|
680 |
+
|
681 |
+
/* field T01+02 record length and type */
|
682 |
+
$this->checkStr($input, $offset, "0768T");
|
683 |
+
/* field T03 sender's bank */
|
684 |
+
$Tsend['bank_code'] = $this->getNum($input, $offset, 8);
|
685 |
+
/* field T04a currency */
|
686 |
+
$this->checkStr($input, $offset, "EUR");
|
687 |
+
/* field T04b sender's account */
|
688 |
+
$Tsend['account_number'] = $this->getNum($input, $offset, 10);
|
689 |
+
/* field T05 execution date -- ignored */
|
690 |
+
$this->getNum($input, $offset, 6);
|
691 |
+
/* field T06+T07a+T07b empty for Standardüberweisung */
|
692 |
+
$this->checkStr($input, $offset, str_repeat("0", 8));
|
693 |
+
$this->checkStr($input, $offset, str_repeat(" ", 3));
|
694 |
+
$this->checkStr($input, $offset, str_repeat("0", 10));
|
695 |
+
/* field T08 receiver's BIC */
|
696 |
+
$Trecv['bank_code'] = $this->getStr($input, $offset, 11);
|
697 |
+
/* field T09a+T09b empty for Standardüberweisung */
|
698 |
+
$this->checkStr($input, $offset, str_repeat(" ", 3+4*35));
|
699 |
+
/* field T10a receiver's country code -- ignored */
|
700 |
+
$this->getStr($input, $offset, 3);
|
701 |
+
/* field T10b receiver's address */
|
702 |
+
$Trecv['name'] = $this->getStr($input, $offset, 35);
|
703 |
+
$Trecv['additional_name'] = $this->getStr($input, $offset, 35);
|
704 |
+
$Trecv['street'] = $this->getStr($input, $offset, 35);
|
705 |
+
$Trecv['city'] = $this->getStr($input, $offset, 35);
|
706 |
+
/* field T11 empty for Standardüberweisung */
|
707 |
+
$this->checkStr($input, $offset, str_repeat(" ", 2*35));
|
708 |
+
/* field T12 receiver's IBAN */
|
709 |
+
$this->checkStr($input, $offset, '/');
|
710 |
+
$Trecv['account_number'] = $this->getStr($input, $offset, 34);
|
711 |
+
/* field T13 currency */
|
712 |
+
$this->checkStr($input, $offset, "EUR");
|
713 |
+
/* field T14a amount (integer) */
|
714 |
+
$amount_int = $this->getNum($input, $offset, 14);
|
715 |
+
/* field T14b amount (decimal places) */
|
716 |
+
$amount_dec = $this->getNum($input, $offset, 3);
|
717 |
+
$amount = $amount_int + $amount_dec/1000.0;
|
718 |
+
/* field T15 purpose */
|
719 |
+
$purposes = array();
|
720 |
+
$purposes[0] = $this->getStr($input, $offset, 35);
|
721 |
+
$purposes[1] = $this->getStr($input, $offset, 35);
|
722 |
+
$purposes[2] = $this->getStr($input, $offset, 35);
|
723 |
+
$purposes[3] = $this->getStr($input, $offset, 35);
|
724 |
+
/* field T16--T20 instruction code, empty for Standardüberweisung */
|
725 |
+
$this->checkStr($input, $offset, str_repeat("0", 4*2));
|
726 |
+
$this->checkStr($input, $offset, str_repeat(" ", 25));
|
727 |
+
/* field T21 fees */
|
728 |
+
$this->checkStr($input, $offset, "00");
|
729 |
+
/* field T22 payment type */
|
730 |
+
$this->checkStr($input, $offset, "13");
|
731 |
+
/* field T23 free text for accounting -- ignored */
|
732 |
+
$this->getStr($input, $offset, 27);
|
733 |
+
/* field T24 contact details -- ignored */
|
734 |
+
$this->getStr($input, $offset, 35);
|
735 |
+
/* field T25 reporting key */
|
736 |
+
$this->checkStr($input, $offset, "0");
|
737 |
+
/* field T26 reserve */
|
738 |
+
$this->checkStr($input, $offset, str_repeat(" ", 51));
|
739 |
+
/* field T26 following report extension */
|
740 |
+
$this->checkStr($input, $offset, "00");
|
741 |
+
|
742 |
+
/* we read the fields, now add an exchange */
|
743 |
+
$rc = $this->addExchange(
|
744 |
+
$Trecv,
|
745 |
+
$amount,
|
746 |
+
$purposes,
|
747 |
+
$Tsend
|
748 |
+
);
|
749 |
+
if (!$rc) {
|
750 |
+
// should never happen
|
751 |
+
throw new Payment_DTA_ParseException("Cannot addExchange() ".
|
752 |
+
"for transaction number ".strval($this->count()+1).
|
753 |
+
", please file a bug report");
|
754 |
+
}
|
755 |
+
$checks['amount'] += $amount_int;
|
756 |
+
}
|
757 |
+
|
758 |
+
/**
|
759 |
+
* Auxillary parser to consume Z records.
|
760 |
+
*
|
761 |
+
* @param string $input content of DTAZV file
|
762 |
+
* @param integer &$offset read offset into $input
|
763 |
+
* @param array $checks holds checksums for validation
|
764 |
+
*
|
765 |
+
* @throws Payment_DTA_Exception on unrecognized input
|
766 |
+
* @access private
|
767 |
+
* @return void
|
768 |
+
*/
|
769 |
+
private function _parseZrecord($input, &$offset, $checks)
|
770 |
+
{
|
771 |
+
/* field Z01+Z02 record length and type */
|
772 |
+
$this->checkStr($input, $offset, "0256Z");
|
773 |
+
/* field Z03 sum of amounts (integer parts in T14a) */
|
774 |
+
$Z_check_amount = $this->getNum($input, $offset, 15);
|
775 |
+
/* field Z04 number of records type T */
|
776 |
+
$Z_check_count = $this->getNum($input, $offset, 15);
|
777 |
+
/* field Z05 reserve */
|
778 |
+
$this->checkStr($input, $offset, str_repeat(" ", 221));
|
779 |
+
|
780 |
+
if ($Z_check_count != $this->count()) {
|
781 |
+
throw new Payment_DTA_ChecksumException(
|
782 |
+
"Z record checksum mismatch for transaction count: ".
|
783 |
+
"reads $Z_check_count, expected ".$this->count());
|
784 |
+
}
|
785 |
+
if ($Z_check_amount != $checks['amount']) {
|
786 |
+
throw new Payment_DTA_ChecksumException(
|
787 |
+
"Z record checksum mismatch for transfer amount: ".
|
788 |
+
"reads $Z_check_amount, expected ".$checks['amount']);
|
789 |
+
}
|
790 |
+
}
|
791 |
+
|
792 |
+
/**
|
793 |
+
* Parser. Read data from an existing DTAZV file content.
|
794 |
+
*
|
795 |
+
* @param string $input content of DTAZV file
|
796 |
+
*
|
797 |
+
* @throws Payment_DTA_Exception on unrecognized input
|
798 |
+
* @access protected
|
799 |
+
* @return void
|
800 |
+
*/
|
801 |
+
protected function parse($input)
|
802 |
+
{
|
803 |
+
if (strlen($input) % 128) {
|
804 |
+
throw new Payment_DTA_FatalParseException("invalid length");
|
805 |
+
}
|
806 |
+
|
807 |
+
$checks = array('amount' => 0);
|
808 |
+
$offset = 0;
|
809 |
+
|
810 |
+
/* Q record */
|
811 |
+
try {
|
812 |
+
$this->_parseQrecord($input, $offset);
|
813 |
+
} catch (Payment_DTA_Exception $e) {
|
814 |
+
throw new Payment_DTA_FatalParseException("Exception in Q record", $e);
|
815 |
+
}
|
816 |
+
|
817 |
+
//do not consume input by using getStr()/getNum() here
|
818 |
+
while ($input[$offset + 4] == 'T') {
|
819 |
+
/* T record */
|
820 |
+
$t_start = $offset;
|
821 |
+
try {
|
822 |
+
$this->_parseTrecord($input, $offset, $checks);
|
823 |
+
} catch (Payment_DTA_Exception $e) {
|
824 |
+
// preserve error
|
825 |
+
$this->allerrors[] = new Payment_DTA_ParseException(
|
826 |
+
"Error in T record, in transaction number ".
|
827 |
+
strval($this->count()+1), $e);
|
828 |
+
// skip to next record
|
829 |
+
$offset = $t_start + 768;
|
830 |
+
}
|
831 |
+
} // while
|
832 |
+
|
833 |
+
/* Z record */
|
834 |
+
try {
|
835 |
+
$this->_parseZrecord($input, $offset, $checks);
|
836 |
+
} catch (Payment_DTA_ChecksumException $e) {
|
837 |
+
throw $e;
|
838 |
+
} catch (Payment_DTA_Exception $e) {
|
839 |
+
throw new Payment_DTA_ParseException("Error in Z record", $e);
|
840 |
+
}
|
841 |
+
}
|
842 |
+
|
843 |
+
}
|
package.xml
CHANGED
@@ -1,62 +1,18 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>DebitPayment</name>
|
4 |
-
<version>0.5.
|
5 |
<stability>stable</stability>
|
6 |
-
<license>OSL v3.0</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
<summary>Stellt die Zahlungsmöglichkeit Lastschrift / Bankeinzug zur Verfügung.</summary>
|
10 |
<description>Gerade in Deutschland und Österreich gehört die Lastschrift (Bankeinzug) zu den populärsten Zahlungsmöglichkeiten. Mit Hilfe dieser Erweiterung können Sie Ihren Kunden die Zahlungsmöglichkeit Lastschrift anbieten.</description>
|
11 |
-
<notes>
|
12 |
-
|
13 |
-
-
|
14 |
-
|
15 |
-
-
|
16 |
-
|
17 |
-
0.4.2
|
18 |
-
- Theme-Support für Magento 1.4
|
19 |
-
- Neue Bankleitzahlen-Datei der Bundesbank
|
20 |
-
- Bugfixes
|
21 |
-
|
22 |
-
0.4.1
|
23 |
-
- Fehlende "debit.xml" zum Paket hinzugefügt
|
24 |
-
- Bestellung auch ohne gültige BLZ möglich gemacht / Im Benutzerkonto kann man jedoch nur eine gültige BLZ angeben!
|
25 |
-
- Neue Bankleitzahlen-Datei
|
26 |
-
- Bugfixes
|
27 |
-
|
28 |
-
0.4
|
29 |
-
- Vollständiges Refactoring des Moduls
|
30 |
-
- AJAX-Abfrage des Kreditinstituts
|
31 |
-
- Caching der Bankinformationen zur Verbesserung der Performance
|
32 |
-
- Möglichkeit hinzugefügt, Kontodaten zu speichern und im Frontend und Backend zu bearbeiten
|
33 |
-
- Formularfelder im Checkout vorausgefüllt mit gespeicherten Bankdaten
|
34 |
-
- Encryption Bug behoben
|
35 |
-
- Erweiterung vollständig übersetzbar gemacht
|
36 |
-
- Erweiterung auch für StoreView konfigurierbar gemacht
|
37 |
-
|
38 |
-
0.3
|
39 |
-
- Anzeige der Bankdaten in der Rechnung
|
40 |
-
- Anlegen von Bestellungen im Backend nun mit dieser Zahlungsart möglich
|
41 |
-
- Bearbeiten von Bestellungen mit dieser Zahlungsart möglich
|
42 |
-
- Bugfixes
|
43 |
-
|
44 |
-
0.2.5.
|
45 |
-
- Der Shopbesitzer kann nun einstellen, ob die Bankdaten verschlüsselt oder unverschlüsselt zum Lastschriftverfahren per E-Mail mitgesendet werden sollen
|
46 |
-
|
47 |
-
0.2.1.
|
48 |
-
- Bugfix
|
49 |
-
|
50 |
-
0.2.0
|
51 |
-
- Verschlüsselung der Einträge in der Datenbank
|
52 |
-
- Überprüfung der BLZ im Backend und Anzeige, ob ein Fehler vorliegt oder nicht
|
53 |
-
|
54 |
-
0.1.0
|
55 |
-
- erste Veröffentlichung mit einer Grundfunktionalität</notes>
|
56 |
-
<authors><author><name>ITABS GmbH - Rouven Alexander Rieker</name><user>auto-converted</user><email>rouven.rieker@itabs.de</email></author></authors>
|
57 |
-
<date>2011-09-30</date>
|
58 |
-
<time>19:09:38</time>
|
59 |
-
<contents><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="debit"><file name="debit.phtml" hash="668381d2a305c522b46470c6b56ba836"/><file name="form.phtml" hash="c309248ba984f388593fdedf05bb844d"/><file name="info.phtml" hash="df0d0b2353b4b18f6489e6d822acdcb3"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="debit.xml" hash="7073be54bb35f85fe37d6bb3cf0c51c7"/></dir><dir name="template"><dir name="debit"><dir name="account"><file name="data.phtml" hash="39bd5d531b9e20124d1ac4874a9ca8c1"/></dir><file name="form.phtml" hash="b18f8d37dc7f3189f823592e44fe3df5"/><file name="info.phtml" hash="659a419f57de40e9d2cedbd819002813"/></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="de_DE"><file name="Mage_Debit.csv" hash="953e30bcb8c07623773fb0be42120335"/></dir><dir name="en_US"><file name="Mage_Debit.csv" hash="1e7a6bf76f185a89dca643e63d95dbff"/></dir></target><target name="mage"><dir name="js"><dir name="mage"><dir name="debit"><file name="blzcheck.js" hash="99c6d2638404860043105207f616d7db"/></dir></dir></dir></target><target name="magecommunity"><dir name="Mage"><dir name="Debit"><dir name="Block"><dir name="Account"><file name="Data.php" hash="00caa8c5b2900eaf8601672fc9a989c0"/></dir><file name="Form.php" hash="5c8a3ad068cf18788ec0a70339edbf50"/><file name="Info.php" hash="0bc4694dce19f8f859126e01acc643af"/></dir><dir name="controllers"><file name="AccountController.php" hash="d271e3a8c57c450c6fc14fbe697dc521"/><file name="AjaxController.php" hash="65bfdaf619caa811707140691b110424"/></dir><dir name="etc"><file name="bankleitzahlen.csv" hash="2efa8e81a1a8abe640045982fff78b70"/><file name="config.xml" hash="76b0e5d6580e16514efca71980272133"/><file name="system.xml" hash="4b84c5ddae5b672f229f8ab346095b76"/></dir><dir name="Helper"><file name="Data.php" hash="5339ea3c22eed7385baf7de661647b33"/></dir><dir name="Model"><dir name="Entity"><dir name="Customer"><dir name="Attribute"><dir name="Backend"><file name="Encrypted.php" hash="73407cb3592b42b9813b8b8a85a32b1b"/></dir></dir></dir></dir><dir name="System"><dir name="Config"><dir name="Source"><dir name="Customer"><file name="Group.php" hash="c46060c44860e7021aac664af577a8cf"/></dir></dir></dir></dir><file name="Debit.php" hash="9db05346ed8270d24d5b9001f17caaa9"/><file name="Observer.php" hash="a10e97ef5627331d59922dc22ddc7cce"/></dir><dir name="sql"><dir name="debit_setup"><file name="mysql4-install-0.4.0.php" hash="94d7b8b8e0541d707c2fb365c7f8bce6"/><file name="mysql4-upgrade-0.4.9-0.5.0.php" hash="d99e2c9899c97fd100c5220b30145d9e"/><file name="mysql4-upgrade-0.5.0-0.5.1.php" hash="47dd4cc4b58571f5b2407d75b726105f"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Mage_Debit.xml" hash="3a07e78ad3de76f12d3db7b88cefda1a"/></dir></target></contents>
|
60 |
<compatible/>
|
61 |
-
<dependencies
|
62 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>DebitPayment</name>
|
4 |
+
<version>0.5.3</version>
|
5 |
<stability>stable</stability>
|
6 |
+
<license uri="http://opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
<summary>Stellt die Zahlungsmöglichkeit Lastschrift / Bankeinzug zur Verfügung.</summary>
|
10 |
<description>Gerade in Deutschland und Österreich gehört die Lastschrift (Bankeinzug) zu den populärsten Zahlungsmöglichkeiten. Mit Hilfe dieser Erweiterung können Sie Ihren Kunden die Zahlungsmöglichkeit Lastschrift anbieten.</description>
|
11 |
+
<notes>-</notes>
|
12 |
+
<authors><author><name>Rouven Alexander Rieker</name><user>therouv</user><email>rouven.rieker@itabs.de</email></author></authors>
|
13 |
+
<date>2012-10-31</date>
|
14 |
+
<time>09:36:06</time>
|
15 |
+
<contents><target name="magecommunity"><dir><dir name="Mage"><dir name="Debit"><dir name="Block"><dir name="Account"><file name="Data.php" hash="5ec87894004a522fd8d38b961f4822dc"/></dir><dir name="Adminhtml"><dir name="Order"><file name="Grid.php" hash="48f25e84eb680a78676b947f96dd6906"/></dir><file name="Order.php" hash="f01dc6ba410fc9948bab620715ccfd68"/></dir><file name="Form.php" hash="71ec19adbf20f06c8e0ccd3b5b3ecf91"/><file name="Info.php" hash="bfd6c54e68a62287a2136a72b2f1c162"/></dir><dir name="Helper"><file name="Adminhtml.php" hash="8bacc26f386ec126d813f9cea5519085"/><file name="Data.php" hash="25bd936b7fb2ca3a4fe6dc84a49eba34"/></dir><dir name="Model"><file name="Debit.php" hash="2f3636898922bb734a329bf3029e1cda"/><dir name="Entity"><dir name="Customer"><dir name="Attribute"><dir name="Backend"><file name="Encrypted.php" hash="94b4c27e902ba0625ac5a9f87fa96f54"/></dir></dir></dir></dir><dir name="Mysql4"><dir name="Orders"><file name="Collection.php" hash="9168652992a5a5a7363b692d63b2a779"/></dir><file name="Orders.php" hash="cf2ffc55752004a300abef1eff607188"/></dir><file name="Observer.php" hash="5bbd916c7c26299aadbd6a67cfcebffe"/><file name="Orders.php" hash="2e8db83c32da4d448c385dda85fe83be"/><dir name="System"><dir name="Config"><dir name="Source"><dir name="Customer"><file name="Group.php" hash="d4532ac24b67ae24f54860c6ccfb702d"/></dir></dir></dir></dir></dir><dir name="controllers"><file name="AccountController.php" hash="6a584c009a8562aac90d31d494e8b347"/><dir name="Adminhtml"><file name="OrderController.php" hash="4464ede36b05b6492cc5b7985bf417ad"/></dir><file name="AjaxController.php" hash="5beb576a11c36694549f3b06bcd216cb"/></dir><dir name="etc"><file name="adminhtml.xml" hash="38dcc403c12a5c8bd568148946804a7c"/><file name="bankleitzahlen.csv" hash="47834eb8f31d37940cac46f288fdb6b5"/><file name="config.xml" hash="98eb0edad20ad29fc472a005355889b7"/><file name="system.xml" hash="e71ad7bfb5beb8cb87ba4d6349ac3ad4"/></dir><dir name="sql"><dir name="debit_setup"><file name="mysql4-install-0.4.0.php" hash="e737bff708ac736d9fa2dc617cbc2bb5"/><file name="mysql4-upgrade-0.3.0-0.4.0.php" hash="e737bff708ac736d9fa2dc617cbc2bb5"/><file name="mysql4-upgrade-0.4.9-0.5.0.php" hash="1312e739a3f3b3ec429599248baa0dbc"/><file name="mysql4-upgrade-0.5.0-0.5.1.php" hash="89c41e07eae8d13b99718ef2dca56241"/><file name="mysql4-upgrade-0.5.1-0.5.2.php" hash="d1db3adfc37489a3c90df875b76e1c6d"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir><dir name="modules"><file name="Mage_Debit.xml" hash="4df52a50ed7f6a00007564224689413f"/></dir></dir></target><target name="magelocale"><dir><dir name="de_DE"><file name="Mage_Debit.csv" hash="d28e0eb0cb5c49439cd0e5170ecf40ab"/></dir><dir name="en_US"><file name="Mage_Debit.csv" hash="2768d31e1b5dd5ba7b4847d40587c33d"/></dir></dir></target><target name="magedesign"><dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="debit.xml" hash="f3ec75909b0a0b9891ac5955c13fcbef"/></dir><dir name="template"><dir name="debit"><file name="debit.phtml" hash="344aff2f527fb3e9f909410635da4a82"/><file name="form.phtml" hash="af659f3607a76ff8a38ca46fe993aa14"/><file name="info.phtml" hash="d26a60e5fe93bb1035fd054d9ee6a886"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="debit.xml" hash="44790c6738874678d83c2c392b630f05"/></dir><dir name="template"><dir name="debit"><dir><dir name="account"><file name="data.phtml" hash="dc04eafc5e2a9e12bf6af0453842e2ee"/></dir></dir><file name="form.phtml" hash="5a9f4e89edeb7f71193eee3115e18940"/><file name="info.phtml" hash="a389aedc4ab07a2d8671a7cd1cbf1ae4"/></dir></dir></dir></dir></dir></dir></target><target name="mage"><dir><dir name="js"><dir name="mage"><dir name="debit"><file name="blzcheck.js" hash="4ab6fd01179d171c97bca611a2425617"/></dir></dir></dir></dir></target><target name="magelib"><dir><dir name="DTA"><file name="DTA.php" hash="e6fc2837be0ec433fa759485de446fe8"/><file name="DTABase.php" hash="824185c1a0d6d53a24787fb48268d694"/><file name="DTAZV.php" hash="851b8a15747129fa21945e2d28d435e2"/></dir></dir></target></contents>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
<compatible/>
|
17 |
+
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
|
18 |
</package>
|