Projekt

Obecné

Profil

Stáhnout (3.64 KB) Statistiky
| Větev: | Revize:
1 b50f8ebd Cajova-Houba
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: Zdenda
5
 * Date: 22.4.2018
6
 * Time: 20:21
7
 */
8
9
namespace App\Model;
10
11
use Illuminate\Support\Facades\DB;
12
13
/**
14
 * Trida reprezentujici entitu zarizeni.
15
 * @package App\Model
16
 */
17
class Zarizeni extends BaseModel
18
{
19
20
    /**
21
     * Jmeno tabulky v databazi.
22
     *
23
     * @var string
24
     */
25
    protected $table = 'zarizeni';
26
27
    /**
28
     * Vrati vsechna zarizeni.
29
     * Mesto a ulice jsou vraceny spolu se zarizenim.
30
     *
31
     * @return mixed
32
     */
33 01f99166 Jan Kohlíček
    public static function getAllJoinAddress()
34
    {
35 b50f8ebd Cajova-Houba
        return DB::table('zarizeni')
36
            ->join('ulice', 'zarizeni.ulice_id', '=', 'ulice.id')
37
            ->join('mesto', 'ulice.mesto_id', '=', 'mesto.id')
38 143e4121 Cajova-Houba
            ->select('zarizeni.id as id',
39
                'zarizeni.smer_popis as name',
40
                'ulice.nazev as street',
41
                'ulice.id as street_id',
42 1adda1a9 Cajova-Houba
                'ulice.zem_sirka as lat',
43
                'ulice.zem_delka as lng',
44 143e4121 Cajova-Houba
                'mesto.nazev as town',
45
                'mesto.id as town_id')
46 b50f8ebd Cajova-Houba
            ->get();
47
    }
48
49
    /**
50
     * Vrati zarizeni nalezene podle adresy (mesto+ulice).
51
     *
52 143e4121 Cajova-Houba
     * @param $address Adresa, jsou vraceny zaznamy u kterych ulice, nebo mesto odpovida adrese.
53 f71bf8bd Cajova-Houba
     * @param $showDirection 1 pokud má být rozlišen směr zařízení.
54 b50f8ebd Cajova-Houba
     * @return mixed
55
     */
56 01f99166 Jan Kohlíček
    public static function findByAddressJoinAddress($address, $showDirection)
57
    {
58 f71bf8bd Cajova-Houba
        $query = DB::table('zarizeni')
59 b50f8ebd Cajova-Houba
            ->join('ulice', 'zarizeni.ulice_id', '=', 'ulice.id')
60
            ->join('mesto', 'ulice.mesto_id', '=', 'mesto.id')
61 01f99166 Jan Kohlíček
            ->join('zaznam_cas', 'zaznam_cas.zarizeni_id', '=', 'zarizeni.id')
62 143e4121 Cajova-Houba
            ->select('zarizeni.id as id',
63
                'zarizeni.smer_popis as name',
64
                'ulice.nazev as street',
65
                'ulice.id as street_id',
66 1adda1a9 Cajova-Houba
                'ulice.zem_sirka as lat',
67
                'ulice.zem_delka as lng',
68 143e4121 Cajova-Houba
                'mesto.nazev as town',
69 01f99166 Jan Kohlíček
                'mesto.id as town_id',
70 1adda1a9 Cajova-Houba
                $showDirection ? 'zaznam_cas.smer as direction' : DB::Raw('0 as direction'))
71 01f99166 Jan Kohlíček
            ->where('ulice.nazev', 'like', '%' . $address . '%')
72
            ->orWhere('mesto.nazev', 'like', '%' . $address . '%')
73
            ->orWhere('zarizeni.smer_popis', 'like', '%' . $address . '%');
74 f71bf8bd Cajova-Houba
75
        if (!$showDirection) {
76 01f99166 Jan Kohlíček
            $query = $query->groupBy('zarizeni.id');
77
        } else {
78
            $query = $query->groupBy('zarizeni.id', 'zaznam_cas.smer');
79 f71bf8bd Cajova-Houba
        }
80
81
82
        return $query->get();
83 b50f8ebd Cajova-Houba
    }
84
85
    /**
86
     * Vrati zarizeni se zadanym id.
87
     * Mesto a ulice jsou vraceny spolu se zarizenim.
88
     *
89
     * @param $id Id zarizeni.
90
     * @return mixed
91
     */
92 01f99166 Jan Kohlíček
    public static function findByIdJoinAddress($id)
93
    {
94 b50f8ebd Cajova-Houba
        return DB::table('zarizeni')
95
            ->join('ulice', 'zarizeni.ulice_id', '=', 'ulice.id')
96
            ->join('mesto', 'ulice.mesto_id', '=', 'mesto.id')
97 4877913b Cajova-Houba
            ->select('zarizeni.id as id',
98
                'zarizeni.smer_popis as name',
99
                'ulice.nazev as street',
100
                'ulice.id as street_id',
101 1adda1a9 Cajova-Houba
                'ulice.zem_sirka as lat',
102
                'ulice.zem_delka as lng',
103 4877913b Cajova-Houba
                'mesto.nazev as town',
104
                'mesto.id as town_id')
105 b50f8ebd Cajova-Houba
            ->where('zarizeni.id', '=', $id)
106 d58f0fda Cajova-Houba
            ->orderBy('zarizeni.id')
107 0b27c108 Jan Kohlíček
            ->first();
108 b50f8ebd Cajova-Houba
    }
109
110
    /**
111
     * Databazovy klic.
112
     *
113
     * @var long
114
     */
115
    public $id;
116
117
    /**
118
     * Popis smeru zarizeni.
119
     *
120
     * @var string
121
     */
122
    public $smer_popis;
123
124
    /**
125
     * Stav zarizeni.
126
     *
127
     * @var integer
128
     */
129
    public $stav;
130
131 01f99166 Jan Kohlíček
    public function ulice()
132
    {
133 b50f8ebd Cajova-Houba
        return $this->belongsTo('App\Model\Ulice');
134
    }
135
}