Skip to content

Commit

Permalink
Merge pull request #91 from FatchipRobert/MAG2-35-Bankdata-in-order-c…
Browse files Browse the repository at this point in the history
…onfirmation-email

MAG2-35 - Added bankdata from authorization response to the order con…
  • Loading branch information
T-Kuchel authored Aug 4, 2017
2 parents 5018ce9 + 6fed5e1 commit def5621
Show file tree
Hide file tree
Showing 5 changed files with 158 additions and 59 deletions.
16 changes: 8 additions & 8 deletions Block/Info/Basic.php
Original file line number Diff line number Diff line change
Expand Up @@ -46,15 +46,15 @@ protected function _prepareSpecificInformation($transport = null)
if ($sTransId == '') {
$data[(string)__('Payment has not been processed yet.')] = '';
} else {
$oStatus = $this->getAppointedStatus();
if ($oStatus->getClearingBankcode()) {
$oOrder = $this->getInfo()->getOrder();
if ($oOrder && $oOrder->getPayoneClearingBankcode()) {
$data[(string)__('Please transfer the order amount to this bank account:')] = '';
$data[(string)__('Accountholder:')] = $oStatus->getClearingBankaccountholder();
$data[(string)__('Accountnumber:')] = $oStatus->getClearingBankaccount();
$data[(string)__('Bank code:')] = $oStatus->getClearingBankcode();
$data[(string)__('IBAN:')] = $oStatus->getClearingBankiban();
$data[(string)__('BIC:')] = $oStatus->getClearingBankbic();
$data[(string)__('Bank:')] = $oStatus->getClearingBankname();
$data[(string)__('Accountholder:')] = $oOrder->getPayoneClearingBankaccountholder();
$data[(string)__('Accountnumber:')] = $oOrder->getPayoneClearingBankaccount();
$data[(string)__('Bank code:')] = $oOrder->getPayoneClearingBankcode();
$data[(string)__('IBAN:')] = $oOrder->getPayoneClearingBankiban();
$data[(string)__('BIC:')] = $oOrder->getPayoneClearingBankbic();
$data[(string)__('Bank:')] = $oOrder->getPayoneClearingBankname();
}
$data[(string)__('Payment reference:')] = $sTransId;
}
Expand Down
80 changes: 55 additions & 25 deletions Helper/Api.php
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,41 @@ class Api extends Base
*/
protected $connFsockopen;

/**
* Fields to copy from the request array to the order
*
* @var array
*/
protected $requestToOrder = [
'reference' => 'payone_refnr',
'request' => 'payone_authmode',
'mode' => 'payone_mode',
'mandate_identification' => 'payone_mandate_id',
'workorderid' => 'payone_workorder_id',
'add_paydata[installment_duration]' => 'payone_installment_duration',
];

/**
* Fields to copy from the response to the order
*
* @var array
*/
protected $responseToOrder = [
'txid' => 'payone_txid',
'mandate_identification' => 'payone_mandate_id',
'clearing_reference' => 'payone_clearing_reference',
'add_paydata[clearing_reference]' => 'payone_clearing_reference',
'add_paydata[workorderid]' => 'payone_workorder_id',
'clearing_bankaccount' => 'payone_clearing_bankaccount',
'clearing_bankcode' => 'payone_clearing_bankcode',
'clearing_bankcountry' => 'payone_clearing_bankcountry',
'clearing_bankname' => 'payone_clearing_bankname',
'clearing_bankaccountholder' => 'payone_clearing_bankaccountholder',
'clearing_bankcity' => 'payone_clearing_bankcity',
'clearing_bankiban' => 'payone_clearing_bankiban',
'clearing_bankbic' => 'payone_clearing_bankbic'
];

/**
* Constructor
*
Expand Down Expand Up @@ -160,6 +195,24 @@ public function getRequestUrl($aParameters, $sApiUrl)
return $sRequestUrl;
}

/**
* Copy Data to order by given map
*
* @param SalesOrder $oOrder
* @param array $aData
* @param array $aMap
* @return SalesOrder
*/
protected function addDataToOrder(SalesOrder $oOrder, $aData, $aMap)
{
foreach ($aMap as $sFrom => $sTo) {
if (isset($aData[$sFrom])) {
$oOrder->setData($sTo, $aData[$sFrom]);
}
}
return $oOrder;
}

/**
* Add PAYONE information to the order object to be saved in the DB
*
Expand All @@ -170,31 +223,8 @@ public function getRequestUrl($aParameters, $sApiUrl)
*/
public function addPayoneOrderData(SalesOrder $oOrder, $aRequest, $aResponse)
{
if (isset($aResponse['txid'])) {// txid existing?
$oOrder->setPayoneTxid($aResponse['txid']); // add txid to order entity
}
$oOrder->setPayoneRefnr($aRequest['reference']); // add refnr to order entity
$oOrder->setPayoneAuthmode($aRequest['request']); // add authmode to order entity
$oOrder->setPayoneMode($aRequest['mode']); // add payone mode to order entity
if (isset($aRequest['mandate_identification'])) {// mandate id existing in request?
$oOrder->setPayoneMandateId($aRequest['mandate_identification']);
} elseif (isset($aResponse['mandate_identification'])) {// mandate id existing in response?
$oOrder->setPayoneMandateId($aResponse['mandate_identification']);
}
if (isset($aResponse['clearing_reference'])) {
$oOrder->setPayoneClearingReference($aResponse['clearing_reference']);
}
if (isset($aResponse['add_paydata[clearing_reference]'])) {
$oOrder->setPayoneClearingReference($aResponse['add_paydata[clearing_reference]']);
}
if (isset($aResponse['add_paydata[workorderid]'])) {
$oOrder->setPayoneWorkorderId($aResponse['add_paydata[workorderid]']);
} elseif (isset($aRequest['workorderid'])) {
$oOrder->setPayoneWorkorderId($aRequest['workorderid']);
}
if (isset($aRequest['add_paydata[installment_duration]'])) {
$oOrder->setPayoneInstallmentDuration($aRequest['add_paydata[installment_duration]']);
}
$this->addDataToOrder($oOrder, $aRequest, $this->requestToOrder);
$this->addDataToOrder($oOrder, $aResponse, $this->responseToOrder);
}

/**
Expand Down
64 changes: 64 additions & 0 deletions Setup/UpgradeData.php
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,70 @@ public function upgrade(ModuleDataSetupInterface $setup, ModuleContextInterface
['type' => 'integer', 'length' => null]
);
}
if (!$setup->getConnection()->tableColumnExists($setup->getTable('sales_order'), 'payone_clearing_bankaccountholder')) {
$salesInstaller = $this->salesSetupFactory->create(['resourceName' => 'sales_setup', 'setup' => $setup]);
$salesInstaller->addAttribute(
'order',
'payone_clearing_bankaccountholder',
['type' => 'varchar', 'length' => 64, 'default' => '']
);
}
if (!$setup->getConnection()->tableColumnExists($setup->getTable('sales_order'), 'payone_clearing_bankcountry')) {
$salesInstaller = $this->salesSetupFactory->create(['resourceName' => 'sales_setup', 'setup' => $setup]);
$salesInstaller->addAttribute(
'order',
'payone_clearing_bankcountry',
['type' => 'varchar', 'length' => 2, 'default' => '']
);
}
if (!$setup->getConnection()->tableColumnExists($setup->getTable('sales_order'), 'payone_clearing_bankaccount')) {
$salesInstaller = $this->salesSetupFactory->create(['resourceName' => 'sales_setup', 'setup' => $setup]);
$salesInstaller->addAttribute(
'order',
'payone_clearing_bankaccount',
['type' => 'varchar', 'length' => 32, 'default' => '']
);
}
if (!$setup->getConnection()->tableColumnExists($setup->getTable('sales_order'), 'payone_clearing_bankcode')) {
$salesInstaller = $this->salesSetupFactory->create(['resourceName' => 'sales_setup', 'setup' => $setup]);
$salesInstaller->addAttribute(
'order',
'payone_clearing_bankcode',
['type' => 'varchar', 'length' => 32, 'default' => '']
);
}
if (!$setup->getConnection()->tableColumnExists($setup->getTable('sales_order'), 'payone_clearing_bankiban')) {
$salesInstaller = $this->salesSetupFactory->create(['resourceName' => 'sales_setup', 'setup' => $setup]);
$salesInstaller->addAttribute(
'order',
'payone_clearing_bankiban',
['type' => 'varchar', 'length' => 64, 'default' => '']
);
}
if (!$setup->getConnection()->tableColumnExists($setup->getTable('sales_order'), 'payone_clearing_bankbic')) {
$salesInstaller = $this->salesSetupFactory->create(['resourceName' => 'sales_setup', 'setup' => $setup]);
$salesInstaller->addAttribute(
'order',
'payone_clearing_bankbic',
['type' => 'varchar', 'length' => 32, 'default' => '']
);
}
if (!$setup->getConnection()->tableColumnExists($setup->getTable('sales_order'), 'payone_clearing_bankcity')) {
$salesInstaller = $this->salesSetupFactory->create(['resourceName' => 'sales_setup', 'setup' => $setup]);
$salesInstaller->addAttribute(
'order',
'payone_clearing_bankcity',
['type' => 'varchar', 'length' => 64, 'default' => '']
);
}
if (!$setup->getConnection()->tableColumnExists($setup->getTable('sales_order'), 'payone_clearing_bankname')) {
$salesInstaller = $this->salesSetupFactory->create(['resourceName' => 'sales_setup', 'setup' => $setup]);
$salesInstaller->addAttribute(
'order',
'payone_clearing_bankname',
['type' => 'varchar', 'length' => 64, 'default' => '']
);
}
$setup->endSetup();
}

Expand Down
33 changes: 19 additions & 14 deletions Test/Unit/Block/Info/BasicTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,25 @@ protected function setUp()
{
$this->objectManager = new ObjectManager($this);

$order = $this->getMockBuilder(Order::class)->disableOriginalConstructor()->getMock();
$order = $this->getMockBuilder(Order::class)
->disableOriginalConstructor()
->setMethods([
'getPayoneTxid',
'getPayoneClearingBankcode',
'getPayoneClearingBankaccountholder',
'getPayoneClearingBankaccount',
'getPayoneClearingBankiban',
'getPayoneClearingBankbic',
'getPayoneClearingBankname'
])
->getMock();
$order->method('getPayoneTxid')->willReturn('12345');
$order->method('getPayoneClearingBankcode')->willReturn('12345');
$order->method('getPayoneClearingBankaccountholder')->willReturn('12345');
$order->method('getPayoneClearingBankaccount')->willReturn('12345');
$order->method('getPayoneClearingBankiban')->willReturn('12345');
$order->method('getPayoneClearingBankbic')->willReturn('12345');
$order->method('getPayoneClearingBankname')->willReturn('12345');

$this->info = $this->getMockBuilder(Info::class)
->disableOriginalConstructor()
Expand All @@ -65,21 +82,9 @@ protected function setUp()

$transactionStatus = $this->getMockBuilder(TransactionStatus::class)
->disableOriginalConstructor()
->setMethods([
'getClearingBankcode',
'getClearingBankaccountholder',
'getClearingBankaccount',
'getClearingBankiban',
'getClearingBankbic',
'getClearingBankname'
])
->setMethods(['getClearingBankcode'])
->getMock();
$transactionStatus->method('getClearingBankcode')->willReturn('12345');
$transactionStatus->method('getClearingBankaccountholder')->willReturn('12345');
$transactionStatus->method('getClearingBankaccount')->willReturn('12345');
$transactionStatus->method('getClearingBankiban')->willReturn('12345');
$transactionStatus->method('getClearingBankbic')->willReturn('12345');
$transactionStatus->method('getClearingBankname')->willReturn('12345');

$transactionStatusRepository = $this->getMockBuilder(TransactionStatusRepository::class)->disableOriginalConstructor()->getMock();
$transactionStatusRepository->method('getAppointedByTxid')->willReturn($transactionStatus);
Expand Down
24 changes: 12 additions & 12 deletions i18n/de_DE.csv
Original file line number Diff line number Diff line change
Expand Up @@ -334,18 +334,18 @@

"Payment has not been processed yet.","Die Zahlung wurde noch nicht durchgeführt."
"Please transfer the order amount to this bank account:","Bitte überweisen Sie den Gesamtbetrag an diese Bankverbindung:"
"Accountholder: %s","Kontoinhaber: %s"
"Accountnumber: %s","Kontonummer: %s"
"Bank code: %s","Postleitzahl: %s"
"IBAN: %s","IBAN: %s"
"BIC: %s","BIC: %s"
"Bank: %s","Bank: %s"
"Country: %s","Land: %s"
"City: %s","Stadt: %s"
"Legal note: %s","Hinweis zur Forderungsabtretung: %s"
"Instruction note: %s","Hinweis zur Zahlungsabwicklung: %s"
"Due date: %s","Fälligkeits-Datum: %s"
"Payment reference: %s","Zahlungsreferenz: %s"
"Accountholder:","Kontoinhaber:"
"Accountnumber:","Kontonummer:"
"Bank code:","Postleitzahl:"
"IBAN:","IBAN:"
"BIC:","BIC:"
"Bank:","Bank:"
"Country:","Land:"
"City:","Stadt:"
"Legal note:","Hinweis zur Forderungsabtretung:"
"Instruction note:","Hinweis zur Zahlungsabwicklung:"
"Due date:","Fälligkeits-Datum:"
"Payment reference:","Zahlungsreferenz:"

"Name on the Card: %s","Kreditkarteninhaber: %s"
"Credit Card Type: %s","Kreditkartentyp: %s"
Expand Down

0 comments on commit def5621

Please sign in to comment.