src/Services/CiselnikObci.php line 11

Open in your IDE?
  1. <?php
  2. namespace App\Services;
  3. //use Symfony\Bridge\Doctrine\ManagerRegistry;
  4. //use Doctrine\Common\Persistence\ManagerRegistry;
  5. //use Doctrine\Persistence\ManagerRegistry;
  6. use Doctrine\ORM\EntityManagerInterface;
  7. class CiselnikObci {
  8.     private $managerRegistry;
  9.     private $manager;
  10.     private $statChoices = [
  11.         => 'Žiadna hodnota.',
  12.         => 'Slovensko',
  13.         => 'Česko',
  14.         => 'Maďarsko',
  15.         => 'Poľsko',
  16.         => 'Rakúsko',
  17.         => 'Ukrajina',
  18.     ];
  19.     public function __construct(
  20.         EntityManagerInterface $managerRegistry
  21. //            ManagerRegistry   $doctrine
  22.     ) {
  23.         $this->managerRegistry $managerRegistry;
  24.         $this->manager $managerRegistry;
  25. //        $this->managerRegistry = $doctrine;
  26.     }
  27.     public function getActual($key$value) {
  28.         $rawQ $this->getActualRawQuery($key);
  29. //        $ciselnik = $this->manager->getConnection()->prepare($rawQ);
  30. //        $ciselnik->bindParam(':value', $value, \PDO::PARAM_INT);
  31. //        $ciselnik->execute();
  32. //        $result = $ciselnik->fetchAll();
  33.         $result $this->manager->getConnection()->fetchAllAssociative($rawQ, ["value" => $value]);
  34.         return $result;
  35.     }
  36.     private function getActualRawQuery($key) {
  37.         switch ($key) {
  38.             case 'kraj':
  39.                 return 'SELECT NAZKR AS NAME, IDKR AS VALUE FROM SAZPCIS.KRAJ WHERE AKTUALNY_STAV = 1 AND 1 = :value ORDER BY NAZKR';
  40.                 break;
  41.             case 'okres':
  42.                 return 'SELECT NAZOKS AS NAME, IDOK AS VALUE FROM SAZPCIS.OKRES WHERE AKTUALNY_STAV=1 AND IDKR = :value ORDER BY NAZOKS';
  43.                 break;
  44.             case 'zuj':
  45.                 return 'SELECT NAZZUJ AS NAME, ICZUJ AS VALUE FROM SAZPCIS.ZUJ WHERE AKTUALNY_STAV=1 AND IDOK = :value ORDER BY NAZZUJ';
  46.                 break;
  47.         }
  48.     }
  49.     public function getStatName($value) {
  50.         if (!$value) {
  51.             return $this->getStatChoices()[0];
  52.         } elseif (is_numeric($value) && $value <= 6) {
  53.             return $this->getStatChoices()[$value];
  54.         } else {
  55.             return $value;
  56.         }
  57.     }
  58.     public function getKrajName($value) {
  59.         $rawQ 'SELECT NAZKR AS NAME FROM SAZPCIS.KRAJ WHERE IDKR = :value';
  60.         return $this->getAnyName($rawQ$value);
  61.     }
  62.     public function getOkresName($value) {
  63.         $rawQ 'SELECT NAZOKS AS NAME FROM SAZPCIS.OKRES WHERE IDOK = :value';
  64.         return $this->getAnyName($rawQ$value);
  65.     }
  66.     public function getZujName($value) {
  67.         $rawQ 'SELECT NAZZUJ AS NAME FROM SAZPCIS.ZUJ WHERE ICZUJ = :value';
  68.         return $this->getAnyName($rawQ$value);
  69.     }
  70.     private function getAnyName($rawQ$value) {
  71.         if (!$value) {
  72.             return ('Žiadna hodnota.');
  73.         } elseif (is_numeric($value)) {
  74.             $conn $this->manager->getConnection();
  75.             $result $conn->fetchAssociative($rawQ, ["value" => $value]);
  76.             return ($result['NAME']);
  77. //
  78. //            $ciselnik = $this->manager->getConnection()->prepare($rawQ);
  79. //            $ciselnik->bindParam(':value', $value, \PDO::PARAM_INT);
  80. //            $ciselnik->execute();
  81. //            $result = $ciselnik->fetch();
  82. //            return ($result['NAME']);
  83.         } else {
  84.             return $value;
  85.         }
  86.     }
  87.     public function getStatChoices() {
  88.         return $this->statChoices;
  89.     }
  90.     public function getKrajChoices($value 1) {
  91.         $rawQ 'SELECT NAZKR AS NAME, IDKR AS VALUE FROM SAZPCIS.KRAJ WHERE 1 <= :value ORDER BY NAZKR';
  92.         return $this->getAnyChoices($rawQ$value);
  93.     }
  94.     public function getOkresChoices($value) {
  95.         $rawQ 'SELECT NAZOKS AS NAME, IDOK AS VALUE FROM SAZPCIS.OKRES WHERE IDKR = (SELECT IDKR FROM SAZPCIS.OKRES WHERE IDOK = :value) ORDER BY NAZOKS';
  96.         return $this->getAnyChoices($rawQ$value);
  97.     }
  98.     public function getZujChoices($value) {
  99.         $rawQ 'SELECT NAZZUJ AS NAME, ICZUJ AS VALUE FROM SAZPCIS.ZUJ WHERE IDOK = (SELECT IDOK FROM SAZPCIS.ZUJ WHERE ICZUJ = :value) ORDER BY NAZZUJ';
  100.         return $this->getAnyChoices($rawQ$value);
  101.     }
  102.     private function getAnyChoices($rawQ$value) {
  103.         if (is_numeric($value)) {
  104. //            $ciselnik = $this->manager->getConnection()->prepare($rawQ);
  105. //            $ciselnik->bindParam(':value', $value, \PDO::PARAM_INT);
  106. //            $ciselnik->execute();
  107. //            $r = $ciselnik->fetchAll();
  108.             $r $this->manager->getConnection()->fetchAllAssociative($rawQ, ["value" => $value]);
  109. //            $result = [];
  110. //            $result[0] = 'Žiadna hodnota.';
  111.             $result = ['0' => 'Žiadna hodnota.'];
  112.             foreach ($r as $rr) {
  113.                 $result[$rr['VALUE']] = $rr['NAME'];
  114.             }
  115.             return $result;
  116.         } elseif (is_string($value) && (strlen($value) >= && strlen($value) <= 80)) {
  117.             return [$value => $value];
  118.         } else {
  119.             return ['0' => 'Žiadna hodnota.'];
  120.         }
  121.     }
  122. }