Skip to content

Commit

Permalink
Merge pull request #283 from mundipagg/develop-recurrence
Browse files Browse the repository at this point in the history
Merge Develop recurrence into Release
  • Loading branch information
GabrielDeveloper authored Sep 22, 2020
2 parents ba79fd6 + f294247 commit 2d9a705
Show file tree
Hide file tree
Showing 6 changed files with 130 additions and 45 deletions.
2 changes: 1 addition & 1 deletion Concrete/integrityData

Large diffs are not rendered by default.

27 changes: 22 additions & 5 deletions Model/AbstractInstallmentManagement.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
namespace MundiPagg\MundiPagg\Model;

use Mundipagg\Core\Kernel\Aggregates\Order;
use Mundipagg\Core\Kernel\Exceptions\InvalidParamException;
use Mundipagg\Core\Kernel\Services\InstallmentService;
use Mundipagg\Core\Kernel\Services\MoneyService;
use Mundipagg\Core\Kernel\ValueObjects\CardBrand;
use MundiPagg\MundiPagg\Concrete\Magento2CoreSetup;

Expand All @@ -13,13 +15,21 @@ public function __construct()
{
}

/**
* @param Order|null $order
* @param CardBrand|null $brand
* @param null $value
* @return array
* @throws InvalidParamException
*/
protected function getCoreInstallments(
Order $order = null,
CardBrand $brand = null,
$value = null
){
) {
Magento2CoreSetup::bootstrap();
$installmentService = new InstallmentService();
$moneyService = new MoneyService();

$installments = $installmentService->getInstallmentsFor(
$order,
Expand All @@ -28,13 +38,20 @@ protected function getCoreInstallments(
);

$result = [];
foreach ($installments as $installment)
{
foreach ($installments as $installment) {
$result[] = [
'id' => $installment->getTimes(),
'interest' =>
($installment->getTotal() - $installment->getBaseTotal()) / 100,
'total_with_tax' => $installment->getTotal() / 100,
$moneyService->centstoFloat(
$moneyService->floatToCents(
($installment->getTotal() - $installment->getBaseTotal()) / 100
)
),
'total_with_tax' => $moneyService->centstoFloat(
$moneyService->floatToCents(
$installment->getTotal() / 100
)
),
'label' => $installmentService->getLabelFor($installment)
];
}
Expand Down
34 changes: 17 additions & 17 deletions Model/ResourceModel/Invoices/Collection.php
Original file line number Diff line number Diff line change
Expand Up @@ -42,29 +42,29 @@ protected function _renderFiltersBefore()
$this->getSelect()
->joinLeft(
$joinTable,
'main_table.mundipagg_id = mundipagg_module_core_transaction.charge_id ',
"main_table.mundipagg_id = {$joinTable}.charge_id ",
[
'id' => new \Zend_Db_Expr('GROUP_CONCAT(main_table.id)'),
'tran_id' => new \Zend_Db_Expr('GROUP_CONCAT(mundipagg_module_core_transaction.id)'),
'tran_mundipagg_id' => new \Zend_Db_Expr('GROUP_CONCAT(mundipagg_module_core_transaction.mundipagg_id)'),
'tran_charge_id' => new \Zend_Db_Expr('GROUP_CONCAT(mundipagg_module_core_transaction.charge_id)'),
'tran_amount' => new \Zend_Db_Expr('GROUP_CONCAT(mundipagg_module_core_transaction.amount)'),
'tran_paid_amount' => new \Zend_Db_Expr('GROUP_CONCAT(mundipagg_module_core_transaction.paid_amount)'),
'tran_acquirer_name' => new \Zend_Db_Expr('GROUP_CONCAT(mundipagg_module_core_transaction.acquirer_name)'),
'tran_acquirer_message' => new \Zend_Db_Expr('GROUP_CONCAT(mundipagg_module_core_transaction.acquirer_message)'),
'tran_acquirer_nsu' => new \Zend_Db_Expr('GROUP_CONCAT(mundipagg_module_core_transaction.acquirer_nsu)'),
'tran_acquirer_tid' => new \Zend_Db_Expr('GROUP_CONCAT(mundipagg_module_core_transaction.acquirer_tid)'),
'tran_acquirer_auth_code' => new \Zend_Db_Expr('GROUP_CONCAT(mundipagg_module_core_transaction.acquirer_auth_code)'),
'tran_type' => new \Zend_Db_Expr('GROUP_CONCAT(mundipagg_module_core_transaction.type)'),
'tran_status' => new \Zend_Db_Expr('GROUP_CONCAT(mundipagg_module_core_transaction.status)'),
'tran_created_at' => new \Zend_Db_Expr('GROUP_CONCAT(mundipagg_module_core_transaction.created_at)'),
'tran_boleto_url' => new \Zend_Db_Expr('GROUP_CONCAT(mundipagg_module_core_transaction.boleto_url)'),
'tran_card_data' => new \Zend_Db_Expr('GROUP_CONCAT(mundipagg_module_core_transaction.card_data SEPARATOR "---")')
'tran_id' => new \Zend_Db_Expr("GROUP_CONCAT({$joinTable}.id)"),
'tran_mundipagg_id' => new \Zend_Db_Expr("GROUP_CONCAT({$joinTable}.mundipagg_id)"),
'tran_charge_id' => new \Zend_Db_Expr("GROUP_CONCAT({$joinTable}.charge_id)"),
'tran_amount' => new \Zend_Db_Expr("GROUP_CONCAT({$joinTable}.amount)"),
'tran_paid_amount' => new \Zend_Db_Expr("GROUP_CONCAT({$joinTable}.paid_amount)"),
'tran_acquirer_name' => new \Zend_Db_Expr("GROUP_CONCAT({$joinTable}.acquirer_name)"),
'tran_acquirer_message' => new \Zend_Db_Expr("GROUP_CONCAT({$joinTable}.acquirer_message)"),
'tran_acquirer_nsu' => new \Zend_Db_Expr("GROUP_CONCAT({$joinTable}.acquirer_nsu)"),
'tran_acquirer_tid' => new \Zend_Db_Expr("GROUP_CONCAT({$joinTable}.acquirer_tid)"),
'tran_acquirer_auth_code' => new \Zend_Db_Expr("GROUP_CONCAT({$joinTable}.acquirer_auth_code)"),
'tran_type' => new \Zend_Db_Expr("GROUP_CONCAT({$joinTable}.type)"),
'tran_status' => new \Zend_Db_Expr("GROUP_CONCAT({$joinTable}.status)"),
'tran_created_at' => new \Zend_Db_Expr("GROUP_CONCAT({$joinTable}.created_at)"),
'tran_boleto_url' => new \Zend_Db_Expr("GROUP_CONCAT({$joinTable}.boleto_url)"),
'tran_card_data' => new \Zend_Db_Expr("GROUP_CONCAT({$joinTable}.card_data SEPARATOR '---')")
]
)
->where("main_table.subscription_id = ?", $subscriptionId)
->group('main_table.id');

parent::_renderFiltersBefore();
}
}
}
4 changes: 2 additions & 2 deletions composer.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
{
"name": "mundipagg/mundipagg-magento2-module",
"license": "MIT",
"version": "2.4.14-beta",
"version": "2.4.15-beta",
"type": "magento2-module",
"description": "Magento 2 Module Mundipagg",
"require": {
"php": ">=5.6.0",
"mundipagg/mundiapi": "^3.0",
"mundipagg/ecommerce-module-core": "2.4.7"
"mundipagg/ecommerce-module-core": "2.4.8"
},
"require-dev": {
"phpunit/phpunit": "4.1.0",
Expand Down
2 changes: 1 addition & 1 deletion etc/module.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
*/
-->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="MundiPagg_MundiPagg" setup_version="2.4.14-beta">
<module name="MundiPagg_MundiPagg" setup_version="2.4.15-beta">
<sequence>
<module name="Magento_Sales" />
<module name="Magento_Payment" />
Expand Down
106 changes: 87 additions & 19 deletions view/frontend/web/js/core/checkout/PaymentMethodController.js
Original file line number Diff line number Diff line change
Expand Up @@ -131,10 +131,15 @@ PaymentMethodController.prototype.twocreditcardsInit = function () {
);

if (typeof this.formObject[1] !== "undefined") {

for (var i = 0, len = this.formObject.numberOfPaymentForms; i < len; i++) {
this.fillFormText(this.formObject[i], 'mundipagg_two_creditcard');
this.fillCardAmount(this.formObject[i], 2);

if (this.formObject[i].inputAmount.val() === "") {
this.fillCardAmount(this.formObject[i], 2, i);
}



this.fillBrandList(this.formObject[i], 'mundipagg_two_creditcard');
this.fillSavedCreditCardsSelect(this.formObject[i]);
this.fillInstallments(this.formObject[i]);
Expand Down Expand Up @@ -197,14 +202,19 @@ PaymentMethodController.prototype.boletoCreditcardInit = function () {

for (var i = 0, len = this.formObject.numberOfPaymentForms; i < len; i++) {

this.fillCardAmount(this.formObject[i], 2);
if (this.formObject[i].inputAmount.val() === "") {
this.fillCardAmount(this.formObject[i], 2, i);
}

if (!this.platformConfig.isMultibuyerEnabled) {
this.removeMultibuyerForm(this.formObject[i]);
}

if (this.platformConfig.isMultibuyerEnabled) {
this.fillMultibuyerStateSelect(this.formObject[i]);
this.addShowMultibuyerListener(this.formObject[i]);
}

this.formObject[i].inputAmountContainer.show();
this.addInputAmountBalanceListener(this.formObject[i], i);
}
Expand Down Expand Up @@ -290,6 +300,11 @@ PaymentMethodController.prototype.addInputAmountBalanceListener = function(formO
var formId = paymentMethodController.model.getFormIdInverted(id);
var form = paymentMethodController.formObject[formId];
paymentMethodController.fillInstallments(form);

setTimeout(function () {
paymentMethodController.updateTotalByPaymentMethod(paymentMethodController, form.creditCardInstallments);
}, 3000);

});

formObject.inputAmount.on('keyup', function(){
Expand Down Expand Up @@ -359,20 +374,68 @@ PaymentMethodController.prototype.addCreditCardNumberListener = function(formObj
}).bind(this);
};

PaymentMethodController.prototype.addCreditCardInstallmentsListener = function(formObject) {
PaymentMethodController.prototype.twoCardsTotal = function (paymentMethod) {
var card1 = paymentMethod.formObject[0].creditCardInstallments.selector;
var card2 = paymentMethod.formObject[1].creditCardInstallments.selector;

var totalCard1 = jQuery(card1).find(":selected").attr("total_with_tax");
var totalCard2 = jQuery(card2).find(":selected").attr("total_with_tax");

var interestTotalCard1 = jQuery(card1).find(":selected").attr("interest");
var interestTotalCard2 = jQuery(card2).find(":selected").attr("interest");

var sumTotal = (parseFloat(totalCard1) + parseFloat(totalCard2)).toString();
var sumInterestTotal = (parseFloat(interestTotalCard1) + parseFloat(interestTotalCard2)).toString();

return { sumTotal, sumInterestTotal };
}

PaymentMethodController.prototype.boletoCreditCardTotal = function (paymentMethod) {
var cardElement = paymentMethod.formObject[1].creditCardInstallments.selector;

var totalValueCard = jQuery(cardElement).find(":selected").attr("total_with_tax");
var sumInterestTotal = jQuery(cardElement).find(":selected").attr("interest");

var valueBoleto = paymentMethod.formObject[0].inputAmount.val().replace(platformConfig.currency.decimalSeparator, ".");

var sumTotal = (parseFloat(totalValueCard) + parseFloat(valueBoleto)).toString();

return { sumTotal, sumInterestTotal };
}

PaymentMethodController.prototype.updateTotalByPaymentMethod = function (paymentMethod, event) {
var interest = jQuery(event).find(':selected').attr("interest");
var grandTotal = jQuery(event).find(':selected').attr("total_with_tax");

if (paymentMethod.methodCode === "twocreditcards") {
var twoCardsTotalObject = paymentMethod.twoCardsTotal(paymentMethod);

grandTotal = twoCardsTotalObject.sumTotal;
interest = twoCardsTotalObject.sumInterestTotal;
}

if (paymentMethod.methodCode === "boletoCreditcard") {
var boletoCreditCardTotalObject = paymentMethod.boletoCreditCardTotal(paymentMethod);

grandTotal = boletoCreditCardTotalObject.sumTotal;
interest = boletoCreditCardTotalObject.sumInterestTotal;
}

paymentMethod.updateTotal(
interest,
grandTotal,
jQuery(event).attr('name')
);
}

PaymentMethodController.prototype.addCreditCardInstallmentsListener = function (formObject) {
var paymentMethodController = this;

formObject.creditCardInstallments.on('change', function() {
formObject.creditCardInstallments.on('change', function () {
var value = jQuery(this).val();

if (value != "" && value != 'undefined') {
var interest = jQuery(this).find(':selected').attr("interest");
var grandTotal = jQuery(this).find(':selected').attr("total_with_tax");
paymentMethodController.updateTotal(
interest,
grandTotal,
jQuery(this).attr('name')
);
paymentMethodController.updateTotalByPaymentMethod(paymentMethodController, this);
}
});
};
Expand Down Expand Up @@ -442,12 +505,9 @@ PaymentMethodController.prototype.placeOrder = function (placeOrderObject) {
PaymentMethodController.prototype.updateTotal = function(interest, grandTotal, selectName) {
var paymentMethodController = this;

if (paymentMethodController.formObject.numberOfPaymentForms > 1) {
interest = this.sumInterests(interest, selectName);
}
/**@fixme Move gettotals() to PlatformFormBiding */
var total = paymentMethodController.platformConfig.updateTotals.getTotals()();
interest = (parseInt(interest * 100)) / 100;
interest = (parseInt((interest * 100).toFixed(2))) / 100;

if (interest < 0) {
interest = 0;
Expand All @@ -458,7 +518,8 @@ PaymentMethodController.prototype.updateTotal = function(interest, grandTotal, s

for (var i = 0, len = total.total_segments.length; i < len; i++) {
if (total.total_segments[i].code === "grand_total") {
total.total_segments[i].value = (parseInt(grandTotal * 100)) / 100;
grandTotal = parseInt((grandTotal * 100).toFixed(2));
total.total_segments[i].value = grandTotal / 100;
continue;
}
if (total.total_segments[i].code === "tax") {
Expand Down Expand Up @@ -544,7 +605,7 @@ PaymentMethodController.prototype.fillInstallments = function (form) {
jQuery.ajax({
url: installmentsUrl,
method: 'GET',
cache: true
cache: true,
}).done(function(data) {
formHandler = new FormHandler();

Expand All @@ -567,14 +628,21 @@ PaymentMethodController.prototype.fillBrandList = function (formObject, method)
);
};

PaymentMethodController.prototype.fillCardAmount = function (formObject, count) {
PaymentMethodController.prototype.fillCardAmount = function (formObject, count, card = null) {
var orderAmount = platFormConfig.updateTotals.getTotals()().grand_total / count;

var amount = orderAmount.toFixed(this.platformConfig.currency.precision);
var separator = ".";

amount = amount.replace(separator, this.platformConfig.currency.decimalSeparator);

if (card === 1) {
var orderAmountOriginal = amount.replace(this.platformConfig.currency.decimalSeparator, ".");
var amountBalance = (platFormConfig.updateTotals.getTotals()().grand_total - orderAmountOriginal).toFixed(2);
formObject.inputAmount.val(amountBalance.replace(".", this.platformConfig.currency.decimalSeparator));
return;
}

formObject.inputAmount.val(amount);
};

Expand Down

0 comments on commit 2d9a705

Please sign in to comment.