Advertisement
dimipan80

Pesho the Pharmacist

Apr 28th, 2015
230
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.90 KB | None | 0 0
  1. <?php
  2. date_default_timezone_set('Europe/Sofia');
  3.  
  4. function create_DateTime_from_date_string($dateString) {
  5.     return DateTime::createFromFormat('d/m/Y H:i:s', $dateString . ' 00:00:00');
  6. }
  7.  
  8. $today = create_DateTime_from_date_string($_GET['today']);
  9. $farthestDate = clone $today;
  10. date_sub($farthestDate, date_interval_create_from_date_string('5 years'));
  11.  
  12. $invoicesArr = $_GET['invoices'];
  13. $invoiceList = array();
  14. foreach ($invoicesArr as $invoice) {
  15.     $invoiceData = explode('|', $invoice);
  16.     $invoiceDateStr = trim($invoiceData[0]);
  17.     $invoiceCompany = trim($invoiceData[1]);
  18.     $invoiceDrug = trim($invoiceData[2]);
  19.     $invoiceCost = (float)$invoiceData[3];
  20.  
  21.     $invoiceDateObj = create_DateTime_from_date_string($invoiceDateStr);
  22.     if ($invoiceDateObj < $farthestDate || $invoiceDateObj > $today) {
  23.         continue;
  24.     }
  25.  
  26.     $invoiceDateOutput = $invoiceDateObj->format('Y/m/d');
  27.     if (!array_key_exists($invoiceDateOutput, $invoiceList)) {
  28.         $invoiceList[$invoiceDateOutput] = array();
  29.     }
  30.  
  31.     if (!array_key_exists($invoiceCompany, $invoiceList[$invoiceDateOutput])) {
  32.         $invoiceList[$invoiceDateOutput][$invoiceCompany] = array();
  33.     }
  34.  
  35.     if (!array_key_exists($invoiceDrug, $invoiceList[$invoiceDateOutput][$invoiceCompany])) {
  36.         $invoiceList[$invoiceDateOutput][$invoiceCompany][$invoiceDrug] = 0;
  37.     }
  38.  
  39.     $invoiceList[$invoiceDateOutput][$invoiceCompany][$invoiceDrug] += $invoiceCost;
  40. }
  41.  
  42. ksort($invoiceList);
  43. echo '<ul>';
  44. foreach ($invoiceList as $date => &$companies) {
  45.     ksort($companies);
  46.     echo '<li><p>' . substr($date, 8, 2) . substr($date, 4, 4) . substr($date, 0, 4) . '</p>';
  47.     foreach ($companies as $company => &$medicine) {
  48.         ksort($medicine);
  49.         echo "<ul><li><p>{$company}</p>";
  50.         $outArr = [];
  51.         foreach ($medicine as $drug => $price) {
  52.             $outArr[] = $drug;
  53.         }
  54.         echo '<ul><li><p>' . implode(',', $outArr) . '-' . array_sum($medicine) . 'lv</p></li></ul></li></ul>';
  55.     }
  56.     echo '</li>';
  57. }
  58. echo '</ul>';
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement