We will work on Apr 26th (Saturday) and will be off from Apr 30th (Wednesday) until May 2nd (Friday) for public holiday in our country

Commit dc96f655 authored by Alessio Zampatti's avatar Alessio Zampatti Committed by GitHub

Merge pull request #441 from Adyen/develop

Release 4.0.3
parents ecd01eb1 5b82076d
......@@ -128,9 +128,7 @@ class Redirect extends \Magento\Payment\Block\Form
if ($this->getPaymentMethodSelectionOnAdyen()) {
$url = 'https://test.adyen.com/hpp/select.shtml';
} else {
if ($this->_adyenHelper->isPaymentMethodOpenInvoiceMethod(
$this->_order->getPayment()->getAdditionalInformation('brand_code')
) || $this->_adyenHelper->isPaymentMethodMolpayMethod(
if ($this->_adyenHelper->doesPaymentMethodSkipDetails(
$this->_order->getPayment()->getAdditionalInformation('brand_code')
)
) {
......@@ -148,9 +146,7 @@ class Redirect extends \Magento\Payment\Block\Form
if ($this->getPaymentMethodSelectionOnAdyen()) {
$url = 'https://live.adyen.com/hpp/select.shtml';
} else {
if ($this->_adyenHelper->isPaymentMethodOpenInvoiceMethod(
$this->_order->getPayment()->getAdditionalInformation('brand_code')
) || $this->_adyenHelper->isPaymentMethodMolpayMethod(
if ($this->_adyenHelper->doesPaymentMethodSkipDetails(
$this->_order->getPayment()->getAdditionalInformation('brand_code')
)
) {
......@@ -335,6 +331,8 @@ class Redirect extends \Magento\Payment\Block\Form
$formFields['shopper.lastName'] = trim($billingAddress->getLastname());
$formFields['shopper.telephoneNumber'] = trim($billingAddress->getTelephone());
if ($this->_adyenHelper->isSeparateHouseNumberRequired($billingAddress->getCountryId())) {
$street = $this->_adyenHelper->getStreet($billingAddress);
if (isset($street['name']) && $street['name'] != "") {
......@@ -346,6 +344,9 @@ class Redirect extends \Magento\Payment\Block\Form
} else {
$formFields['billingAddress.houseNumberOrName'] = "NA";
}
} else {
$formFields['billingAddress.street'] = implode(" ", $billingAddress->getStreet());
}
if (trim($billingAddress->getCity()) == "") {
$formFields['billingAddress.city'] = "NA";
......@@ -384,6 +385,7 @@ class Redirect extends \Magento\Payment\Block\Form
$shippingAddress = $this->_order->getShippingAddress();
if ($shippingAddress) {
if ($this->_adyenHelper->isSeparateHouseNumberRequired($shippingAddress->getCountryId())) {
$street = $this->_adyenHelper->getStreet($shippingAddress);
if (isset($street['name']) && $street['name'] != "") {
......@@ -395,6 +397,10 @@ class Redirect extends \Magento\Payment\Block\Form
} else {
$formFields['deliveryAddress.houseNumberOrName'] = "NA";
}
} else {
$formFields['deliveryAddress.street'] = implode(" ", $shippingAddress->getStreet());
}
if (trim($shippingAddress->getCity()) == "") {
$formFields['deliveryAddress.city'] = "NA";
......@@ -420,6 +426,7 @@ class Redirect extends \Magento\Payment\Block\Form
$formFields['deliveryAddress.country'] = trim($shippingAddress->getCountryId());
}
}
return $formFields;
}
......@@ -433,6 +440,7 @@ class Redirect extends \Magento\Payment\Block\Form
$currency = $this->_order->getOrderCurrencyCode();
foreach ($this->_order->getAllVisibleItems() as $item) {
/** @var $item \Magento\Sales\Model\Order\Item */
++$count;
$numberOfItems = (int)$item->getQtyOrdered();
......@@ -446,7 +454,8 @@ class Redirect extends \Magento\Payment\Block\Form
$item->getPriceInclTax(),
$item->getTaxPercent(),
$numberOfItems,
$this->_order->getPayment()
$this->_order->getPayment(),
$item->getId()
);
}
......@@ -469,7 +478,8 @@ class Redirect extends \Magento\Payment\Block\Form
$itemVatAmount,
$itemVatPercentage,
$numberOfItems,
$this->_order->getPayment()
$this->_order->getPayment(),
"discount"
);
}
......
......@@ -115,7 +115,8 @@ class CaptureDataBuilder implements BuilderInterface
$invoiceItem->getPriceInclTax(),
$invoiceItem->getTaxPercent(),
$numberOfItems,
$payment
$payment,
$invoiceItem->getId()
);
}
......
......@@ -203,7 +203,8 @@ class RefundDataBuilder implements BuilderInterface
$refundItem->getPriceInclTax(),
$refundItem->getTaxPercent(),
$numberOfItems,
$payment
$payment,
$refundItem->getId()
);
}
......
......@@ -70,7 +70,8 @@ class InstallmentValidator extends AbstractValidator
$fails = [];
$payment = $validationSubject['payment'];
$quote = $this->session->getQuote();
if ($quote) {
$installmentsEnabled = $this->adyenHelper->getAdyenCcConfigData('enable_installments');
if ($quote && $installmentsEnabled) {
$grandTotal = $quote->getGrandTotal();
$installmentsAvailable = $this->adyenHelper->getAdyenCcConfigData('installments');
$installmentSelected = $payment->getAdditionalInformation('number_of_installments');
......
......@@ -1007,6 +1007,38 @@ class Data extends AbstractHelper
return false;
}
/**
* @param $paymentMethod
* @return bool
*/
public function isPaymentMethodOneyMethod($paymentMethod)
{
if (strpos($paymentMethod, 'facilypay_') !== false) {
return true;
}
return false;
}
/**
* @param $paymentMethod
* @return bool
*/
public function doesPaymentMethodSkipDetails($paymentMethod)
{
if ($this->isPaymentMethodOpenInvoiceMethod($paymentMethod) ||
$this->isPaymentMethodMolpayMethod($paymentMethod) ||
$this->isPaymentMethodOneyMethod($paymentMethod)
) {
return true;
}
return false;
}
/**
* @return mixed
*/
public function getRatePayId()
{
return $this->getAdyenHppConfigData("ratepay_id");
......@@ -1099,6 +1131,7 @@ class Data extends AbstractHelper
* @param $taxPercent
* @param $numberOfItems
* @param $payment
* @param null $itemId
* @return mixed
*/
public function createOpenInvoiceLineItem(
......@@ -1111,7 +1144,8 @@ class Data extends AbstractHelper
$priceInclTax,
$taxPercent,
$numberOfItems,
$payment
$payment,
$itemId = null
) {
$description = str_replace("\n", '', trim($name));
$itemAmount = $this->formatAmount($price, $currency);
......@@ -1135,7 +1169,8 @@ class Data extends AbstractHelper
$itemVatAmount,
$itemVatPercentage,
$numberOfItems,
$payment
$payment,
$itemId
);
}
......@@ -1187,7 +1222,8 @@ class Data extends AbstractHelper
$itemVatAmount,
$itemVatPercentage,
$numberOfItems,
$payment
$payment,
"shipping"
);
}
......@@ -1222,7 +1258,8 @@ class Data extends AbstractHelper
* @param $itemVatPercentage
* @param $numberOfItems
* @param $payment
* @return
* @param null|int $itemId optional
* @return mixed
*/
public function getOpenInvoiceLineData(
$formFields,
......@@ -1233,9 +1270,16 @@ class Data extends AbstractHelper
$itemVatAmount,
$itemVatPercentage,
$numberOfItems,
$payment
$payment,
$itemId = null
) {
$linename = "line" . $count;
// item id is optional
if ($itemId) {
$formFields['openinvoicedata.' . $linename . '.itemId'] = $itemId;
}
$formFields['openinvoicedata.' . $linename . '.currencyCode'] = $currencyCode;
$formFields['openinvoicedata.' . $linename . '.description'] = $description;
$formFields['openinvoicedata.' . $linename . '.itemAmount'] = $itemAmount;
......@@ -1607,4 +1651,16 @@ class Data extends AbstractHelper
return $this->getAdyenCcVaultConfigDataFlag('active', $storeId);
}
/**
* Checks if the house number needs to be sent to the Adyen API separately or as it is in the street field
*
* @param $country
* @return bool
*/
public function isSeparateHouseNumberRequired($country)
{
$countryList = ["nl", "de", "se", "no", "at", "fi", "dk"];
return in_array(strtolower($country), $countryList);
}
}
......@@ -2,7 +2,7 @@
"name": "adyen/module-payment",
"description": "Official Magento2 Plugin to connect to Payment Service Provider Adyen.",
"type": "magento2-module",
"version": "4.0.2",
"version": "4.0.3",
"license": [
"OSL-3.0",
"AFL-3.0"
......
......@@ -24,7 +24,7 @@
-->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Adyen_Payment" setup_version="4.0.2">
<module name="Adyen_Payment" setup_version="4.0.3">
<sequence>
<module name="Magento_Sales"/>
<module name="Magento_Quote"/>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment