Skip to content

Commit

Permalink
Merge pull request #820 from buckaroo-it/BP-2865-create-invoice-after…
Browse files Browse the repository at this point in the history
…-shipment-general-setting

BP-2865 create invoice after shipment general setting
  • Loading branch information
LucianTuriacArnia authored Oct 9, 2023
2 parents d83e032 + 507984c commit 0993389
Show file tree
Hide file tree
Showing 47 changed files with 301 additions and 259 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
namespace Buckaroo\Magento2\Block\Adminhtml\Sales\Order\Creditmemo\Create;

use Buckaroo\Magento2\Exception;
use Buckaroo\Magento2\Model\ConfigProvider\Method\Factory as ConfigProviderMethodFactory;
use Buckaroo\Magento2\Model\ConfigProvider\Factory as ConfigProviderMethodFactory;
use Magento\Backend\Block\Template;
use Magento\Backend\Block\Template\Context;
use Magento\Framework\Exception\LocalizedException;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@

namespace Buckaroo\Magento2\Block\Adminhtml\Sales\Order\Invoice;

use Buckaroo\Magento2\Model\ConfigProvider\Method\Factory;
use Buckaroo\Magento2\Model\ConfigProvider\Factory;
use Magento\Backend\Block\Template\Context;
use Magento\Framework\View\Element\Template;
use Magento\Sales\Api\Data\OrderInterface;
Expand Down
21 changes: 1 addition & 20 deletions Controller/Adminhtml/PayLink/Index.php
Original file line number Diff line number Diff line change
Expand Up @@ -90,14 +90,6 @@ public function execute(): ResultInterface
$payment->save();
$order->save();

$transactionBuilder = $this->transactionBuilderFactory->get('order');

$transactionBuilder->setOrder($order)
->setServices($services)
->setAdditionalParameter('fromPayLink', 1)
->setAdditionalParameter('fromPayPerEmail', 1)
->setMethod('TransactionRequest');

try {
$commandExecutor = $this->commandManagerPool->get('buckaroo');

Expand All @@ -111,18 +103,7 @@ public function execute(): ResultInterface
} catch (NotFoundException|CommandException $exception) {
$this->messageManager->addErrorMessage($exception->getMessage());
} catch (\Exception $e) {
$this->_messageManager->addErrorMessage($e->getMessage());
}

if (empty($payLink)) {
$this->_messageManager->addErrorMessage('Error creating PayLink');
} else {
$this->_messageManager->addSuccess(
__(
'Your PayLink <a href="%1">%1</a>',
$payLink
)
);
$this->messageManager->addErrorMessage($e->getMessage());
}

$payment = $order->getPayment();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
use Buckaroo\Magento2\Api\ArticleHandlerInterface;
use Buckaroo\Magento2\Logging\BuckarooLoggerInterface as BuckarooLog;
use Buckaroo\Magento2\Model\ConfigProvider\BuckarooFee;
use Buckaroo\Magento2\Model\ConfigProvider\Method\Factory as ConfigProviderMethodFactory;
use Buckaroo\Magento2\Model\ConfigProvider\Factory as ConfigProviderMethodFactory;
use Buckaroo\Magento2\Service\PayReminderService;
use Buckaroo\Magento2\Service\Software\Data as SoftwareData;
use Magento\Catalog\Model\Product\Type;
Expand Down
2 changes: 1 addition & 1 deletion Gateway/Request/BasicParameter/CurrencyDataBuilder.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@

use Buckaroo\Magento2\Exception;
use Buckaroo\Magento2\Gateway\Helper\SubjectReader;
use Buckaroo\Magento2\Model\ConfigProvider\Method\Factory;
use Buckaroo\Magento2\Model\ConfigProvider\Factory;
use Magento\Framework\Exception\LocalizedException;
use Magento\Payment\Gateway\Request\BuilderInterface;
use Magento\Payment\Model\MethodInterface;
Expand Down
2 changes: 1 addition & 1 deletion Gateway/Request/CreditManagement/BuilderComposite.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
use Buckaroo\Magento2\Exception;
use Buckaroo\Magento2\Gateway\Helper\SubjectReader;
use Buckaroo\Magento2\Gateway\Response\CreditManagementOrderHandler;
use Buckaroo\Magento2\Model\ConfigProvider\Method\Factory;
use Buckaroo\Magento2\Model\ConfigProvider\Factory;
use Magento\Framework\ObjectManager\TMap;
use Magento\Framework\ObjectManager\TMapFactory;
use Magento\Payment\Gateway\Request\BuilderInterface;
Expand Down
2 changes: 1 addition & 1 deletion Gateway/Request/CreditManagement/ConfigDataBuilder.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@

use Buckaroo\Magento2\Gateway\Request\AbstractDataBuilder;
use Buckaroo\Magento2\Model\ConfigProvider\Method\ConfigProviderInterface;
use Buckaroo\Magento2\Model\ConfigProvider\Method\Factory;
use Buckaroo\Magento2\Model\ConfigProvider\Factory;

class ConfigDataBuilder extends AbstractDataBuilder
{
Expand Down
2 changes: 1 addition & 1 deletion Gateway/Request/PayPerEmailDataBuilder.php
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ public function build(array $buildSubject): array
$payment = $this->getPayment();

$data = [
'merchantSendsEmail' => !$this->payPerEmailConfig->hasSendMail(),
'merchantSendsEmail' => !$this->payPerEmailConfig->hasSendMail($storeId),
'email' => $payment->getAdditionalInformation('customer_email'),
'paymentMethodsAllowed' => $this->getPaymentMethodsAllowed($this->payPerEmailConfig, $storeId),
'attachment' => '',
Expand Down
2 changes: 1 addition & 1 deletion Gateway/Validator/AvailableBasedOnIPValidator.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@

use Buckaroo\Magento2\Gateway\Helper\SubjectReader;
use Buckaroo\Magento2\Model\ConfigProvider\Account as AccountConfig;
use Buckaroo\Magento2\Model\ConfigProvider\Method\Factory as ConfigProviderMethodFactory;
use Buckaroo\Magento2\Model\ConfigProvider\Factory as ConfigProviderMethodFactory;
use Magento\Developer\Helper\Data;
use Magento\Payment\Gateway\Validator\AbstractValidator;
use Magento\Payment\Gateway\Validator\ResultInterface;
Expand Down
2 changes: 1 addition & 1 deletion Gateway/Validator/IssuerValidator.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
namespace Buckaroo\Magento2\Gateway\Validator;

use Buckaroo\Magento2\Model\ConfigProvider\Method\ConfigProviderInterface;
use Buckaroo\Magento2\Model\ConfigProvider\Method\Factory;
use Buckaroo\Magento2\Model\ConfigProvider\Factory;
use Magento\Framework\App\Request\Http as HttpRequest;
use Magento\Framework\Exception\LocalizedException;
use Magento\Framework\Serialize\Serializer\Json;
Expand Down
2 changes: 1 addition & 1 deletion Helper/Data.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
use Buckaroo\Magento2\Service\CheckPaymentType;
use Buckaroo\Magento2\Model\ConfigProvider\Account;
use Buckaroo\Magento2\Model\ConfigProvider\Method\AbstractConfigProvider;
use Buckaroo\Magento2\Model\ConfigProvider\Method\Factory;
use Buckaroo\Magento2\Model\ConfigProvider\Factory;
use Buckaroo\Magento2\Model\GroupTransaction;
use Magento\Checkout\Model\Session as CheckoutSession;
use Magento\Config\Model\Config\ScopeDefiner;
Expand Down
2 changes: 1 addition & 1 deletion Helper/PaymentFee.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
use Buckaroo\Magento2\Model\Config\Source\Display\Type as DisplayType;
use Buckaroo\Magento2\Model\ConfigProvider\Account;
use Buckaroo\Magento2\Model\ConfigProvider\BuckarooFee;
use Buckaroo\Magento2\Model\ConfigProvider\Method\Factory;
use Buckaroo\Magento2\Model\ConfigProvider\Factory;
use Buckaroo\Magento2\Model\ResourceModel\Giftcard\Collection;
use Magento\Framework\App\Helper\AbstractHelper;
use Magento\Framework\App\Helper\Context;
Expand Down
2 changes: 1 addition & 1 deletion Model/Config/Source/AllowedCountries.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
use Magento\Framework\Locale\Bundle\RegionBundle;
use Magento\Framework\Locale\ListsInterface;
use Magento\Framework\Locale\ResolverInterface;
use Buckaroo\Magento2\Model\ConfigProvider\Method\Factory as ConfigProviderFactory;
use Buckaroo\Magento2\Model\ConfigProvider\Factory as ConfigProviderFactory;

class AllowedCountries implements OptionSourceInterface
{
Expand Down
2 changes: 1 addition & 1 deletion Model/Config/Source/AllowedCurrencies.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@

use Buckaroo\Magento2\Exception as BuckarooException;
use Buckaroo\Magento2\Model\ConfigProvider\AllowedCurrencies as ConfigAllowedCurrencies;
use Buckaroo\Magento2\Model\ConfigProvider\Method\Factory;
use Buckaroo\Magento2\Model\ConfigProvider\Factory;
use Magento\Framework\Locale\Bundle\CurrencyBundle;
use Magento\Framework\Locale\ResolverInterface;
use Magento\Framework\Locale\TranslatedLists;
Expand Down
19 changes: 19 additions & 0 deletions Model/Config/Source/InvoiceHandlingOptions.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?php

namespace Buckaroo\Magento2\Model\Config\Source;

use Magento\Framework\Data\OptionSourceInterface;

class InvoiceHandlingOptions implements OptionSourceInterface
{
public const PAYMENT = 1;
public const SHIPMENT = 2;

public function toOptionArray(): array
{
return [
['value' => self::PAYMENT, 'label' => __('Create Invoice on Payment')],
['value' => self::SHIPMENT, 'label' => __('Create Invoice on Shipment')]
];
}
}
18 changes: 17 additions & 1 deletion Model/ConfigProvider/Account.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
namespace Buckaroo\Magento2\Model\ConfigProvider;

use Buckaroo\Magento2\Exception as BuckarooException;
use Buckaroo\Magento2\Model\ConfigProvider\Method\Factory as MethodFactory;
use Buckaroo\Magento2\Model\ConfigProvider\Factory as MethodFactory;
use Magento\Framework\App\Config\ScopeConfigInterface;
use Magento\Sales\Api\Data\OrderInterface;
use Magento\Store\Model\ScopeInterface;
Expand All @@ -37,6 +37,7 @@ class Account extends AbstractConfigProvider
public const XPATH_ACCOUNT_SECRET_KEY = 'buckaroo_magento2/account/secret_key';
public const XPATH_ACCOUNT_MERCHANT_KEY = 'buckaroo_magento2/account/merchant_key';
public const XPATH_ACCOUNT_TRANSACTION_LABEL = 'buckaroo_magento2/account/transaction_label';
public const XPATH_ACCOUNT_INVOICE_HANDLING = 'buckaroo_magento2/account/invoice_handling';
public const XPATH_ACCOUNT_REFUND_LABEL = 'buckaroo_magento2/account/refund_label';
public const XPATH_ACCOUNT_ORDER_CONFIRMATION_EMAIL = 'buckaroo_magento2/account/order_confirmation_email';
public const XPATH_ACCOUNT_ORDER_CONFIRMATION_EMAIL_SYNC =
Expand Down Expand Up @@ -312,6 +313,21 @@ public function getTransactionLabel($store = null)
);
}

/**
* Create Invoice on Payment or on Shipment
*
* @param null|int|string $store
* @return mixed
*/
public function getInvoiceHandling($store = null)
{
return $this->scopeConfig->getValue(
self::XPATH_ACCOUNT_INVOICE_HANDLING,
ScopeInterface::SCOPE_STORE,
$store
);
}


/**
* Should send a mail after successful creating the order.
Expand Down
19 changes: 17 additions & 2 deletions Model/ConfigProvider/Factory.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@

use Buckaroo\Magento2\Exception as BuckarooException;
use Magento\Checkout\Model\ConfigProviderInterface;
use Buckaroo\Magento2\Model\ConfigProvider\Method\ConfigProviderInterface as BuckarooConfigProviderInterface;
use Magento\Framework\ObjectManagerInterface;
use Magento\Framework\Phrase;

Expand Down Expand Up @@ -64,7 +65,11 @@ public function get(string $providerType): ConfigProviderInterface
throw new \LogicException('ConfigProvider adapter is not set.');
}

$providerType = str_replace('buckaroo_magento2_', '', $providerType);
$isPaymentMethod = false;
if (strpos($providerType, 'buckaroo_magento2_') !== false) {
$providerType = str_replace('buckaroo_magento2_', '', $providerType);
$isPaymentMethod = true;
}

foreach ($this->configProviders as $configProviderMetaData) {
$configProviderType = $configProviderMetaData['type'];
Expand All @@ -83,7 +88,15 @@ public function get(string $providerType): ConfigProviderInterface
);
}

return $this->objectManager->get($configProviderClass);
$configProvider = $this->objectManager->get($configProviderClass);
if ($isPaymentMethod && !$configProvider instanceof BuckarooConfigProviderInterface) {
throw new \LogicException(
'The ConfigProvider must implement ' .
'"Buckaroo\Magento2\Model\ConfigProvider\Method\ConfigProviderInterface".'
);
}

return $configProvider;
}

/**
Expand All @@ -99,6 +112,8 @@ public function has(string $providerType): bool
throw new \LogicException('ConfigProvider adapter is not set.');
}

$providerType = str_replace('buckaroo_magento2_', '', $providerType);

foreach ($this->configProviders as $configProviderMetaData) {
$configProviderType = $configProviderMetaData['type'];
if ($configProviderType == $providerType) {
Expand Down
119 changes: 0 additions & 119 deletions Model/ConfigProvider/Method/Factory.php

This file was deleted.

2 changes: 1 addition & 1 deletion Model/GuestPaymentInformationManagement.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@

use Buckaroo\Magento2\Api\Data\BuckarooResponseDataInterface;
use Buckaroo\Magento2\Api\GuestPaymentInformationManagementInterface;
use Buckaroo\Magento2\Model\ConfigProvider\Method\Factory;
use Buckaroo\Magento2\Model\ConfigProvider\Factory;
use Buckaroo\Magento2\Model\Method\BuckarooAdapter;
use Magento\Checkout\Api\PaymentInformationManagementInterface;
use Magento\Checkout\Model\GuestPaymentInformationManagement as MagentoGuestPaymentInformationManagement;
Expand Down
2 changes: 1 addition & 1 deletion Model/Method/BuckarooAdapter.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@

use Buckaroo\Magento2\Api\PushRequestInterface;
use Buckaroo\Magento2\Exception as BuckarooException;
use Buckaroo\Magento2\Model\ConfigProvider\Method\Factory;
use Buckaroo\Magento2\Model\ConfigProvider\Factory;
use Magento\Framework\App\RequestInterface;
use Magento\Framework\Event\ManagerInterface;
use Magento\Framework\ObjectManagerInterface;
Expand Down
Loading

0 comments on commit 0993389

Please sign in to comment.