Skip to content

Commit cec3f0e

Browse files
Merge pull request #93 from pagarme/release/2.2.0
Release 2.2.0
2 parents f4bd3a7 + ade8c46 commit cec3f0e

File tree

23 files changed

+2302
-30
lines changed

23 files changed

+2302
-30
lines changed

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "pagarme/ecommerce-module-core",
33
"description": "Core component for Pagar.me e-commerce platform modules.",
44
"license": "MIT",
5-
"version": "2.1.0",
5+
"version": "2.2.0",
66
"authors": [
77
{
88
"name":"Open Source Team"

src/Kernel/Abstractions/AbstractDatabaseDecorator.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ abstract class AbstractDatabaseDecorator
1919
const TABLE_RECURRENCE_CHARGE = 12;
2020
const TABLE_RECURRENCE_SUBSCRIPTION = 13;
2121
const TABLE_RECURRENCE_SUBSCRIPTION_ITEM = 14;
22+
const TABLE_RECIPIENTS = 15;
2223

2324
protected $db;
2425
protected $tablePrefix;
@@ -57,4 +58,4 @@ abstract protected function doQuery($query);
5758
abstract protected function doFetch($query);
5859
abstract protected function formatResults($query);
5960
abstract protected function setLastInsertId($insertId);
60-
}
61+
}

src/Kernel/Abstractions/AbstractPlatformOrderDecorator.php

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -35,42 +35,37 @@ public function getPlatformOrder()
3535
public function setPlatformOrder($platformOrder)
3636
{
3737
$this->platformOrder = $platformOrder;
38+
$this->handleSplitOrder();
3839
}
3940

4041
public function setStatus(OrderStatus $status)
4142
{
4243
$currentStatus = '';
4344
try {
4445
$currentStatus = $this->getStatus();
45-
} catch(\Exception $e) {
46-
47-
} catch(\Throwable $e) {
48-
46+
} catch (\Throwable $e) {
4947
}
5048

5149
$statusInfo = (object)[
5250
"from" => $currentStatus,
5351
"to" => $status,
5452

5553
];
56-
$this->logService->orderInfo(
57-
$this->getCode(),
58-
'Status Change',
59-
$statusInfo
60-
);
54+
$this->logService->orderInfo(
55+
$this->getCode(),
56+
'Status Change',
57+
$statusInfo
58+
);
6159

62-
$this->setStatusAfterLog($status);
60+
$this->setStatusAfterLog($status);
6361
}
6462

6563
public function setState(OrderState $state)
6664
{
6765
$currentState = '';
6866
try {
6967
$currentState = $this->getState();
70-
} catch(\Exception $e) {
71-
72-
} catch(\Throwable $e) {
73-
68+
} catch (\Throwable $e) {
7469
}
7570

7671
$stateInfo = (object)[
@@ -204,4 +199,4 @@ public function getPaymentMethod()
204199
abstract protected function addMPHistoryComment($message, $notifyCustomer);
205200
abstract protected function setStatusAfterLog(OrderStatus $status);
206201
abstract protected function setStateAfterLog(OrderState $state);
207-
}
202+
}

src/Kernel/Aggregates/Configuration.php

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
use Pagarme\Core\Kernel\ValueObjects\AbstractValidString;
1010
use Pagarme\Core\Kernel\ValueObjects\Configuration\AddressAttributes;
1111
use Pagarme\Core\Kernel\ValueObjects\Configuration\CardConfig;
12+
use Pagarme\Core\Kernel\ValueObjects\Configuration\MarketplaceConfig;
1213
use Pagarme\Core\Kernel\ValueObjects\Configuration\PixConfig;
1314
use Pagarme\Core\Kernel\ValueObjects\Configuration\RecurrenceConfig;
1415
use Pagarme\Core\Kernel\ValueObjects\Configuration\VoucherConfig;
@@ -160,6 +161,11 @@ final class Configuration extends AbstractEntity
160161
*/
161162
private $pixConfig;
162163

164+
/**
165+
* @var MarketplaceConfig
166+
*/
167+
private $marketplaceConfig;
168+
163169
public function __construct()
164170
{
165171
$this->saveCards = false;
@@ -226,6 +232,22 @@ public function getPixConfig()
226232
return $this->pixConfig;
227233
}
228234

235+
/**
236+
* @param MarketplaceConfig $marketplaceConfig
237+
*/
238+
public function setMarketplaceConfig(MarketplaceConfig $marketplaceConfig)
239+
{
240+
$this->marketplaceConfig = $marketplaceConfig;
241+
}
242+
243+
/**
244+
* @return MarketplaceConfig
245+
*/
246+
public function getMarketplaceConfig()
247+
{
248+
return $this->marketplaceConfig;
249+
}
250+
229251
/**
230252
* @return VoucherConfig
231253
*/
@@ -770,7 +792,8 @@ public function jsonSerialize()
770792
"createOrder" => $this->isCreateOrderEnabled(),
771793
"voucherConfig" => $this->getVoucherConfig(),
772794
"debitConfig" => $this->getDebitConfig(),
773-
"pixConfig" => $this->getPixConfig()
795+
"pixConfig" => $this->getPixConfig(),
796+
"marketplaceConfig" => $this->getMarketplaceConfig()
774797
];
775798
}
776799

src/Kernel/Aggregates/Order.php

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,25 @@ public function updateCharge(ChargeInterface $updatedCharge, $overwriteId = fals
192192
$this->addCharge($updatedCharge);
193193
}
194194

195+
public function getSplitInfo()
196+
{
197+
$splitInfo = [];
198+
foreach ($this->getCharges() as $charge) {
199+
$transaction = $charge->getLastTransaction();
200+
$postData = $transaction->getPostData();
201+
$chargeId = $transaction->getChargeId()->getValue();
202+
if (empty($postData->split)) {
203+
continue;
204+
}
205+
foreach($postData->split as $split) {
206+
$splitInfo[$chargeId][] = $split->recipient->name .
207+
' (' . $split->recipient->id . ') - ' .
208+
$split->type . ': ' . $split->amount;
209+
}
210+
}
211+
return $splitInfo;
212+
}
213+
195214
/**
196215
* Specify data which should be serialized to JSON
197216
*

src/Kernel/Factories/ConfigurationFactory.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use Pagarme\Core\Kernel\Abstractions\AbstractEntity;
66
use Pagarme\Core\Kernel\Aggregates\Configuration;
77
use Pagarme\Core\Kernel\Factories\Configurations\DebitConfigFactory;
8+
use Pagarme\Core\Kernel\Factories\Configurations\MarketplaceConfigFactory;
89
use Pagarme\Core\Kernel\Factories\Configurations\PixConfigFactory;
910
use Pagarme\Core\Kernel\Factories\Configurations\RecurrenceConfigFactory;
1011
use Pagarme\Core\Kernel\Factories\Configurations\VoucherConfigFactory;
@@ -223,6 +224,13 @@ public function createFromJsonData($json)
223224
);
224225
}
225226

227+
if (!empty($data->marketplaceConfig)) {
228+
$config->setMarketplaceConfig(
229+
(new MarketplaceConfigFactory())
230+
->createFromDbData($data->marketplaceConfig)
231+
);
232+
}
233+
226234
return $config;
227235
}
228236

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
<?php
2+
3+
namespace Pagarme\Core\Kernel\Factories\Configurations;
4+
5+
use Pagarme\Core\Kernel\Interfaces\FactoryCreateFromDbDataInterface;
6+
use Pagarme\Core\Kernel\ValueObjects\Configuration\MarketplaceConfig;
7+
8+
class MarketplaceConfigFactory implements FactoryCreateFromDbDataInterface
9+
{
10+
11+
/**
12+
* @param object $data
13+
* @return MarketplaceConfig
14+
*/
15+
public function createFromDbData($data)
16+
{
17+
$marketplaceConfig = new MarketplaceConfig();
18+
19+
if (isset($data->enabled)) {
20+
$marketplaceConfig->setEnabled(
21+
(bool) $data->enabled
22+
);
23+
}
24+
25+
if (isset($data->responsibilityForProcessingFees)) {
26+
$marketplaceConfig->setResponsibilityForProcessingFees(
27+
$data->responsibilityForProcessingFees
28+
);
29+
}
30+
31+
if (isset($data->responsibilityForChargebacks)) {
32+
$marketplaceConfig->setResponsibilityForChargebacks(
33+
$data->responsibilityForChargebacks
34+
);
35+
}
36+
37+
if (isset($data->responsibilityForReceivingSplitRemainder)) {
38+
$marketplaceConfig->setResponsibilityForReceivingSplitRemainder(
39+
$data->responsibilityForReceivingSplitRemainder
40+
);
41+
}
42+
43+
if (isset($data->responsibilityForReceivingExtrasAndDiscounts)) {
44+
$marketplaceConfig->setResponsibilityForReceivingExtrasAndDiscounts(
45+
$data->responsibilityForReceivingExtrasAndDiscounts
46+
);
47+
}
48+
49+
if (isset($data->mainRecipientId)) {
50+
$marketplaceConfig->setMainRecipientId(
51+
$data->mainRecipientId
52+
);
53+
}
54+
55+
return $marketplaceConfig;
56+
}
57+
}

src/Kernel/I18N/ENUS.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,13 @@ protected function getTable()
9494
"The sum of payments is greater than the order amount! Review the information and try again." => null,
9595
"The card brand '%s' or the amount %.2f doesn't allow %d installment(s)! Please review the information and try again." => null,
9696
"Passed value:" => null,
97+
"ChargeId: %s - Split rules:" => null,
98+
"name" => null,
99+
"documentType" => null,
100+
"type" => null,
101+
"holderName" => null,
102+
"holderType" => null,
103+
"holderDocument" => null,
97104
];
98105
}
99106
}

src/Kernel/I18N/PTBR.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,13 @@ protected function getTable()
9595
"The sum of payments is greater than the order amount! Review the information and try again." => "A soma dos pagamentos é maior do que o valor do pedido! Verifique as informações de sua compra e tente novamente.",
9696
"The card brand '%s' or the amount %.2f doesn't allow %d installment(s)! Please review the information and try again." => "A bandeira do cartão '%s' ou o valor %.2f não permite %d parcela(s)! Por favor revise os dados e tente novamente.",
9797
"Passed value:" => "Valor informado:",
98+
"ChargeId: %s - Split rules:" => "ChargeId: %s - Regras de Split:",
99+
"name" => "Nome",
100+
"documentType" => "Tipo do Documento",
101+
"type" => "Tipo",
102+
"holderName" => "Nome do Titular",
103+
"holderType" => "Tipo do Titular",
104+
"holderDocument" => "Documento do Titular",
98105
];
99106
}
100107
}

src/Kernel/Interfaces/PlatformOrderInterface.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use Pagarme\Core\Kernel\ValueObjects\Id\OrderId;
66
use Pagarme\Core\Kernel\ValueObjects\OrderState;
77
use Pagarme\Core\Kernel\ValueObjects\OrderStatus;
8+
use Pagarme\Core\Marketplace\Aggregates\Split;
89
use Pagarme\Core\Payment\Aggregates\Customer;
910
use Pagarme\Core\Payment\Aggregates\Item;
1011
use Pagarme\Core\Payment\Aggregates\Payments\AbstractPayment;
@@ -77,7 +78,7 @@ public function getCode();
7778
public function getData();
7879
/**
7980
*
80-
* @return OrderId
81+
* @return OrderId
8182
*/
8283
public function getPagarmeId();
8384

@@ -99,6 +100,9 @@ public function getPaymentMethodCollection();
99100
/** @return null|Shipping */
100101
public function getShipping();
101102

103+
/** @return null|Split */
104+
public function handleSplitOrder();
105+
102106
/** @since 1.6.5 */
103107
public function getTotalCanceled();
104108

@@ -119,4 +123,4 @@ public function sendEmail($message);
119123
* @return string
120124
*/
121125
public function getStatusLabel(OrderStatus $orderStatus);
122-
}
126+
}

0 commit comments

Comments
 (0)