Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- date_default_timezone_set('Europe/Sofia');
- function create_DateTime_from_date_string($dateString) {
- return DateTime::createFromFormat('d/m/Y H:i:s', $dateString . ' 00:00:00');
- }
- $today = create_DateTime_from_date_string($_GET['today']);
- $farthestDate = clone $today;
- date_sub($farthestDate, date_interval_create_from_date_string('5 years'));
- $invoicesArr = $_GET['invoices'];
- $invoiceList = array();
- foreach ($invoicesArr as $invoice) {
- $invoiceData = explode('|', $invoice);
- $invoiceDateStr = trim($invoiceData[0]);
- $invoiceCompany = trim($invoiceData[1]);
- $invoiceDrug = trim($invoiceData[2]);
- $invoiceCost = (float)$invoiceData[3];
- $invoiceDateObj = create_DateTime_from_date_string($invoiceDateStr);
- if ($invoiceDateObj < $farthestDate || $invoiceDateObj > $today) {
- continue;
- }
- $invoiceDateOutput = $invoiceDateObj->format('Y/m/d');
- if (!array_key_exists($invoiceDateOutput, $invoiceList)) {
- $invoiceList[$invoiceDateOutput] = array();
- }
- if (!array_key_exists($invoiceCompany, $invoiceList[$invoiceDateOutput])) {
- $invoiceList[$invoiceDateOutput][$invoiceCompany] = array();
- }
- if (!array_key_exists($invoiceDrug, $invoiceList[$invoiceDateOutput][$invoiceCompany])) {
- $invoiceList[$invoiceDateOutput][$invoiceCompany][$invoiceDrug] = 0;
- }
- $invoiceList[$invoiceDateOutput][$invoiceCompany][$invoiceDrug] += $invoiceCost;
- }
- ksort($invoiceList);
- echo '<ul>';
- foreach ($invoiceList as $date => &$companies) {
- ksort($companies);
- echo '<li><p>' . substr($date, 8, 2) . substr($date, 4, 4) . substr($date, 0, 4) . '</p>';
- foreach ($companies as $company => &$medicine) {
- ksort($medicine);
- echo "<ul><li><p>{$company}</p>";
- $outArr = [];
- foreach ($medicine as $drug => $price) {
- $outArr[] = $drug;
- }
- echo '<ul><li><p>' . implode(',', $outArr) . '-' . array_sum($medicine) . 'lv</p></li></ul></li></ul>';
- }
- echo '</li>';
- }
- echo '</ul>';
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement