IS objednávky
  • Namespace
  • Class

Namespaces

  • Grido
    • Components
      • Columns
  • Objednavky
  • PLus
    • Orders
      • Factory
      • Repositories
        • Config
        • Documents
        • Entities
        • Lists
        • Messages
        • Order
        • Security
      • Routers

Classes

  • Grido\Components\Columns\Boolean
  • Grido\Components\Columns\BooleanExtension
  • Objednavky\AreaPresenter
  • Objednavky\BasePresenter
  • Objednavky\BranchPresenter
  • Objednavky\ConsultantPresenter
  • Objednavky\ConsultationPresenter
  • Objednavky\DepartmentPresenter
  • Objednavky\DimenzionPresenter
  • Objednavky\DirectorPresenter
  • Objednavky\DocumenttypePresenter
  • Objednavky\DownloadPresenter
  • Objednavky\EconomistPresenter
  • Objednavky\ErrorPresenter
  • Objednavky\ExpertPresenter
  • Objednavky\HomepagePresenter
  • Objednavky\InvestmentPresenter
  • Objednavky\ItemorderPresenter
  • Objednavky\JustifyPresenter
  • Objednavky\MailerPresenter
  • Objednavky\ManagerPresenter
  • Objednavky\NewsPresenter
  • Objednavky\OrderPresenter
  • Objednavky\RolePresenter
  • Objednavky\SignPresenter
  • Objednavky\TraderPresenter
  • Objednavky\UnitPresenter
  • Objednavky\UserPresenter
  • PLus\Orders\Factory\ConsultationFactory
  • PLus\Orders\Factory\DocumentFactory
  • PLus\Orders\Repositories\Config\CfgRepository
  • PLus\Orders\Repositories\Config\Mailer
  • PLus\Orders\Repositories\Config\Parameters
  • PLus\Orders\Repositories\Documents\DocumentRepository
  • PLus\Orders\Repositories\Entities\BranchRepository
  • PLus\Orders\Repositories\Entities\ChiefRepository
  • PLus\Orders\Repositories\Entities\DepartmentRepository
  • PLus\Orders\Repositories\Entities\ExpertRepository
  • PLus\Orders\Repositories\Entities\ManagerRepository
  • PLus\Orders\Repositories\Entities\TraderRepository
  • PLus\Orders\Repositories\Entities\UnitRepository
  • PLus\Orders\Repositories\Entities\UnituserRepository
  • PLus\Orders\Repositories\Entities\UserRepository
  • PLus\Orders\Repositories\Lists\AreaRepository
  • PLus\Orders\Repositories\Lists\DimenzionRepository
  • PLus\Orders\Repositories\Lists\DocumenttypeRepository
  • PLus\Orders\Repositories\Lists\EventRepository
  • PLus\Orders\Repositories\Lists\JustifyRepository
  • PLus\Orders\Repositories\Lists\OrdertypeRepository
  • PLus\Orders\Repositories\Messages\CommentRepository
  • PLus\Orders\Repositories\Messages\ConsultationRepository
  • PLus\Orders\Repositories\Messages\NewsRepository
  • PLus\Orders\Repositories\Messages\PostRepository
  • PLus\Orders\Repositories\Order\InvestmentchatRepository
  • PLus\Orders\Repositories\Order\InvestmentRepository
  • PLus\Orders\Repositories\Order\ItemareastateRepository
  • PLus\Orders\Repositories\Order\ItemorderRealizationRepository
  • PLus\Orders\Repositories\Order\ItemorderRepository
  • PLus\Orders\Repositories\Order\OrderRepository
  • PLus\Orders\Repositories\Order\RealizationRepository
  • PLus\Orders\Repositories\Order\TimelineRepository
  • PLus\Orders\Repositories\Repository
  • PLus\Orders\Repositories\Security\RoleRepository
  • PLus\Orders\Repositories\Security\UserManager
  • PLus\Orders\Routers\RouterFactory
  1 <?php
  2 
  3 namespace PLus\Orders\Repositories\Entities;
  4 
  5 
  6 use PLus\Orders\Repositories\Security;
  7 
  8 
  9 /**
 10  * Description of UserRepository
 11  *
 12  * @author Petr
 13  */
 14 class UserRepository extends \PLus\Orders\Repositories\Repository {
 15 
 16     /**
 17      * Najde uzivatele dle prihlasovaciho jmena
 18      *
 19      * @param string $username
 20      * @return \Nette\Database\Table\ActiveRow|false
 21      */
 22     public function findByName($username){
 23         return $this->getTable()
 24             ->select('user.*, :unit_user.unit.name AS jednotka, :unit_user.unit.department.name AS oddeleni')
 25             ->select(':unit_user.unit.department.branch.name AS obor')
 26             ->where('username', $username)
 27             ->fetch();
 28     }
 29 
 30     /**
 31      * Nastavuje heslo pro uzivatele
 32      *
 33      * @param int $id ID kontaktu
 34      * @param string $password Nove heslo
 35      */
 36     public function setPassword($id, $password) {
 37         $this->getTable()->where(array('id' => $id))->update(array('password' => Security\UserManager::calculateHash($password)));
 38     }
 39 
 40 
 41     public function setEmail($id, $email) {
 42     $this->getTable()->where(array('id' => $id))->update(array('email' => $email));
 43     }
 44 
 45 
 46     function getPairData(){
 47     return $this->getTable()->select('id, username')->order('name ASC')->fetchPairs('id', 'username');
 48     }
 49 
 50 
 51     function getGridSelection(){
 52     return $this->getTable()
 53             ->select('user.id, user.username, CASE WHEN user.isunit=1 THEN :unit_user.unit.name ELSE CONCAT_WS(\' \',user.firstname, '
 54                 . 'user.lastname) END AS jname, user.email, user.isunit, user.ischief');
 55     }
 56 
 57     /**
 58      * 
 59      * @param type $id
 60      * @return type
 61      * vraci activeRow() uzivatele dle id
 62      */
 63     public function findById($id) {
 64         return $this->getTable()
 65             ->select('user.*')->wherePrimary($id)->fetch();
 66     }
 67 
 68     /**
 69      * 
 70      * @param type $id
 71      * @return type
 72      * vraci oddeleni (primariaty), ke kterym ma vztah jako vedouci
 73      */
 74     public function findUserDepartmentById($id) {
 75         return $this->getTable()
 76             ->select('user.id, :unit_user.unit.department.*')->get($id);
 77     }
 78 
 79 
 80     /**
 81      * 
 82      * @param type $id
 83      * @return type
 84      * vraci nakladove strediska, do kterych user patri
 85      */
 86     public function findUserUnitById($id) {
 87         return $this->getTable()
 88             ->select('user.id, :unit_user.unit.*')->get($id);
 89     }
 90     
 91     /**
 92      * 
 93      * @param type $roles
 94      * @param type $user_id
 95      * @return type
 96      * vraci uzivatele v dane roli s vyloucenim $user_id
 97      */
 98     public function findUserByRole($roles, $user_id) {
 99     return $this->getTable()->select('user.id, CONCAT_WS(\' \',user.lastname,user.firstname) AS uname')
100         ->where(':role_user.role.code', $roles)
101         ->where('NOT user.id',$user_id)
102         ->order('uname')
103         ->fetchPairs('id', 'uname');
104     }
105     
106     
107     /**
108      * 
109      * @param type $email
110      * @return type
111      * vraci uzivatele podle emailu
112      */
113     public function findUserByEmail($email) {
114     return $this->getTable()->select('user.id, user.username')
115         ->where('email',$email)
116         ->where('isunit',0)
117         ->fetch();
118     }
119     
120     /**
121      * 
122      * @param type $email
123      * @return type
124      * vraci pocet id se stejnym email uctem
125      */
126     public function getCountUserByEmail($email) {
127     return $this->getTable()->select('COUNT(id) AS cnt')
128         ->where('email',$email)
129         ->where('isunit',0)
130         ->fetch();
131     }
132     
133     /**
134      * 
135      * @param type $token
136      * @return type
137      * vraci uzivatele podle tokenu na zmenu hesla
138      */
139     public function getUserByToken($token) {
140     return $this->getTable()->select('id, expires')
141         ->where('token',$token)
142         ->fetch();
143     }
144     
145     
146     /**
147      * 
148      * @param type $area_id
149      * @param type $user_id
150      * @throws \PDOException
151      * prirazeni oblasti uzivateli  (kterou oblast bude posuzovat)
152      */
153     function assignArea($area_id, $user_id) {
154     try {
155         $this->connection->table('area_user')->insert(array('area_id' => $area_id, 'user_id' => $user_id));
156     }
157     catch ( \PDOException $e) {
158         if ($e->getCode() == '23000')
159         $this->connection->table('area_user')->where(array('area_id' => $area_id, 'user_id' => $user_id))
160             ->update(array('area_id' => $area_id, 'user_id' => $user_id));
161         else
162         throw $e;
163     }
164     }
165     
166     /**
167      * 
168      * @param type $area_id
169      * @param type $user_id
170      * odebrani oblasti uzivateli
171      */
172     function removeAssignedArea($area_id, $user_id) {
173         $this->connection->table('area_user')->where(array('area_id' => $area_id, 'user_id' => $user_id))->delete();
174     }
175     
176     
177     /**
178      * 
179      * @param type $user_id   id uzivatele
180      * odebrani vsech odbornych oblasti
181      * pouzito pri odebreani role Expert a Konzultant
182      */
183     function removeAllAssignedArea($user_id) {
184         $this->connection->table('area_user')->where(array('user_id' => $user_id))->delete();
185     }
186     
187     /**
188      * 
189      * @param type $id
190      * @return type
191      * vraci vsechny expertni oblasti do kterych je poloka zarazena
192      */
193     function getUserAreaById($id) {
194     return $this->getTable()->select(':area_user.area.name')
195             ->where('user.id', $id);
196     }
197     
198     
199     
200     
201     /**
202      * 
203      * @param type $role_code
204      * @param type $user_id
205      * @throws \PDOException
206      * prirazeni role uzivateli
207      */
208     function assignRole($role_code, $user_id) {
209     try {
210         $this->connection->table('role_user')->insert(array('role_code' => $role_code, 'user_id' => $user_id));
211     }
212     catch ( \PDOException $e) {
213         if ($e->getCode() == '23000')
214         $this->connection->table('role_user')->where(array('role_code' => $role_code, 'user_id' => $user_id))
215             ->update(array('role_code' => $role_code, 'user_id' => $user_id));
216         else
217         throw $e;
218     }
219     }
220     
221     /**
222      * 
223      * @param type $role_code
224      * @param type $user_id
225      * odebrani role uzivateli
226      */
227     function removeAssignedRole($role_code, $user_id) {
228         $this->connection->table('role_user')->where(array('role_code' => $role_code, 'user_id' => $user_id))->delete();
229     }
230     
231     
232     /**
233      * 
234      * @param type $department_id
235      * @param type $user_id
236      * @throws \PDOException
237      * prirazeni vybraneho oddeleni vedoucimu
238      */
239     function assignDepartment($department_id, $user_id) {
240     try {
241         $this->connection->table('department_user')->insert(array('department_id' => $department_id, 'user_id' => $user_id));
242     } catch (\PDOException $e) {
243         if ($e->getCode() == '23000')
244         $this->connection->table('department_user')->where(array('user_id' => $user_id))
245             ->update(array('department_id' => $department_id));
246         else
247         throw $e;
248     }
249     }
250     
251     /**
252      * 
253      * @param type $user_id
254      * odebrani podrizeneho oddeleni vedouciho
255      */
256     function removeDepartment($user_id) {
257         $this->connection->table('department_user')->where(array('user_id' => $user_id))->delete();
258     }
259     
260     
261     /**
262      * 
263      * @param type $area_id
264      * @return type
265      * vystupem jsou parove data expertu do selectboxu
266      */
267     public function getUserByArea($area_id) {
268     return $this->getTable()->select('user.id, CONCAT_WS(\' \',user.firstname, user.lastname, \'(\', :area_user.area.name ,\')\') AS uname')
269         ->where(':area_user.area.id', $area_id)
270         ->fetchPairs('id', 'uname');
271         
272     }
273     
274     /**
275      * 
276      * @param type $area_id
277      * @param type $user_id
278      * @return type
279      * vraci parove data expertu do selectboxu (form konzultace) mimo $user_id
280      */
281     public function getUserByAreaOrderLastname($area_id, $user_id) {
282     return $this->getTable()->select('user.id, CONCAT_WS(\' \',user.lastname, user.firstname, \'(\', :area_user.area.name ,\')\') AS uname')
283         ->where(':area_user.area.id', $area_id)
284         ->where('NOT user.id', $user_id)
285         ->order('uname')
286         ->fetchPairs('id', 'uname');
287         
288     }
289     
290     /**
291      * 
292      * @return type
293      * vraci emailove adresy uzivatelu v roli manager
294      */
295     public function getManagerEmail() {
296     return $this->getTable()->select('user.id,user.email')
297         ->where(':role_user.role.code', 'manager')
298         ->fetchPairs('id','email');
299     }
300     
301     
302     /**
303      * 
304      * @return type
305      * vraci emailove adresy uzivatelu v roli trader
306      */
307     public function getTraderEmail() {
308     return $this->getTable()->select('user.id,user.email')
309         ->where(':role_user.role.code', 'trader')
310         ->fetchPairs('id','email');
311     }
312     
313     
314     /**
315      * 
316      * @param type $user_id
317      * @return type
318      * vraci emailove adresy oddeleni
319      */
320     public function getUnitEmail($user_id) {
321     return $this->getTable()->select('user.id, user.email')
322         ->where('user.id', $user_id)
323         ->fetchPairs('id', 'email');
324     }
325     
326     /**
327      * 
328      * @param type $department_id
329      * @return type
330      * vraci emailove adresy vedouciho oddeleni/primariatu
331      */
332     public function getChiefEmail($department_id) {
333     return $this->getTable()->select('user.id, user.email')
334         ->where(':department_user.department.id', $department_id)
335         ->fetchPairs('id', 'email');
336     }
337     
338     
339     /**
340      * 
341      * @param type $area_id
342      * @return type
343      * vraci emailove adresy expertu zarazenych do stejne oblasti jako polozka objednavky
344      */
345     public function getExpertEmail($area_id) {
346     return $this->getTable()->select('DISTINCT user.id, user.email')
347         ->where(':area_user.area.id', $area_id)
348         ->where(':role_user.role.code','expert')
349         ->fetchPairs('id', 'email');
350     }
351     
352     
353     /**
354      * 
355      * @param type $user_id
356      * @return type
357      * vraci email adresu prideleneho resitele objednavky
358      */
359     public function getImplementerEmail($user_id) {
360     return $this->getTable()->select('user.id,user.email')
361         ->where('user.id', $user_id)
362         ->fetchPairs('id','email');
363     }
364     
365     
366     /**
367      * 
368      * @param type $user_id
369      * @return type
370      * vraci email adresu uzivatele
371      */
372     public function getUserEmail($user_id) {
373     return $this->getTable()->select('user.id, user.email')
374         ->where('user.id', $user_id)
375         ->fetchPairs('id','email');
376     }
377 }
378 
IS objednávky API documentation generated by ApiGen