<?php
$content = json_decode('{"creditor_trans_id":"655354-1","invoices":[{"id":"1111444","date_created":"2015-06-01T00:00:00","payment_due":"2015-06-22T00:00:00","currency":"PLN","total":"55555","left_to_pay":"9000"},{"id":"2222555","date_created":"2015-06-02T00:00:00","payment_due":"2015-06-23T00:00:00","currency":"PLN","total":"600","left_to_pay":"60"}],"attachments":[],"debtor_company":{"country":"PL","vat_id":"1112223334","name":"RST test12 15 52","email":"test1@truckx.eu","phone":"1234567","city":"Wroc\u0142aw","postal_code":"21-222","address":"chabrowa 4 kilka faktur bez plikow 1 waluta"}}', true);
$data = [
'transId' => $content['creditor_trans_id'],
'debtorCompany' => [
'nip' => $content['debtor_company']['vat_id'],
'zipCode' => $content['debtor_company']['postal_code'],
'city' => $content['debtor_company']['city'],
'name' => $content['debtor_company']['name'],
'address' => $content['debtor_company']['address'],
'countryCode' => $content['debtor_company']['country'],
'email' => empty($content['debtor_company']['email']) ? null : $content['debtor_company']['email'],
'phone' => empty($content['debtor_company']['phone']) ? null : preg_replace('/[^0-9]/', '',
$content['debtor_company']['phone']),
],
'invoices' => $content['invoices'],
'attachments' => $content['attachments'],
];
$content = $data;
$content['debts'] = [];
foreach ($content['invoices'] as $invoice) {
$key = false;
if ($content['debts']) {
$key = array_search($invoice['currency'], array_column($content['debts'], 'currency'));
}
if ($key !== false) {
$content['debts'][$key]['total'] = bcadd($content['debts'][$key]['total'], $invoice['total'], 2);
$content['debts'][$key]['invoices'][] = $invoice;
} else {
$content['debts'][] = [
'id' => 0,
'debtReportId' => 0,
'currency' => $invoice['currency'],
'total' => $invoice['total'],
'dateCreated' => null,
'invoices' => [
[
'id' => 0,
'number' => $invoice['id'],
'issueDate' => $invoice['date_created'],
'paymentDate' => $invoice['payment_due'],
'total' => $invoice['total'],
'leftToPay' => $invoice['left_to_pay'],
]
],
];
}
}
unset($content['invoices']);
echo json_encode($content);
preferences:
44.77 ms | 402 KiB | 5 Q