From fec56cf8ce994fe8e8131cd1b47705ab82feeece Mon Sep 17 00:00:00 2001 From: Douglas Fanucchi Date: Sun, 15 Dec 2024 12:41:25 +0000 Subject: [PATCH 1/2] fix: changes calculation of main recipient commission --- .../Aggregates/Payments/AbstractPayment.php | 28 +++++++++---------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/src/Payment/Aggregates/Payments/AbstractPayment.php b/src/Payment/Aggregates/Payments/AbstractPayment.php index 6fc4de22..8aff2753 100644 --- a/src/Payment/Aggregates/Payments/AbstractPayment.php +++ b/src/Payment/Aggregates/Payments/AbstractPayment.php @@ -81,22 +81,8 @@ protected function getSplitData() return null; } $percentageOfPayment = $this->getAmount() / $this->order->getAmount(); - $splitMainRecipient = new Split(); - - $marketplaceCommission = intval( - round( - $splitOrderData->getMarketplaceComission() * $percentageOfPayment - ) - ); - - $splitMainRecipient->setCommission( - $marketplaceCommission - ); - - $splitMainRecipient->setRecipientId($this->moduleConfig->getMarketplaceConfig()->getMainRecipientId()); - $splitMainRecipientRequest = $splitMainRecipient - ->convertMainToSDKRequest(); + $sellersTotalCommission = 0; foreach ($splitOrderData->getSellersData() as $seller) { $splitRecipient = new Split(); @@ -106,12 +92,24 @@ protected function getSplitData() ) ); + $sellersTotalCommission += $sellerCommission; + $splitRecipient->setCommission($sellerCommission); $splitRecipient->setRecipientId($seller['pagarmeId']); $splitRecipientRequests[] = $splitRecipient ->convertSecondaryToSDKRequest(); } + $splitMainRecipient = new Split(); + + $splitMainRecipient->setRecipientId($this->moduleConfig->getMarketplaceConfig()->getMainRecipientId()); + $splitMainRecipientRequest = $splitMainRecipient + ->convertMainToSDKRequest(); + + $splitMainRecipient->setCommission( + $this->getAmount() - $sellersTotalCommission + ); + return [$splitMainRecipientRequest, $splitRecipientRequests]; } From 7a97460d7b13982956b3e857681a6c63538f911a Mon Sep 17 00:00:00 2001 From: Douglas Fanucchi Date: Tue, 1 Apr 2025 09:39:29 -0300 Subject: [PATCH 2/2] set main recipient commision before parsing it to request object --- src/Payment/Aggregates/Payments/AbstractPayment.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Payment/Aggregates/Payments/AbstractPayment.php b/src/Payment/Aggregates/Payments/AbstractPayment.php index 8aff2753..306be2fd 100644 --- a/src/Payment/Aggregates/Payments/AbstractPayment.php +++ b/src/Payment/Aggregates/Payments/AbstractPayment.php @@ -102,14 +102,14 @@ protected function getSplitData() $splitMainRecipient = new Split(); + $splitMainRecipient->setCommission( + $this->getAmount() - $sellersTotalCommission + ); + $splitMainRecipient->setRecipientId($this->moduleConfig->getMarketplaceConfig()->getMainRecipientId()); $splitMainRecipientRequest = $splitMainRecipient ->convertMainToSDKRequest(); - $splitMainRecipient->setCommission( - $this->getAmount() - $sellersTotalCommission - ); - return [$splitMainRecipientRequest, $splitRecipientRequests]; }