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\Order;
  4 
  5 
  6 /**
  7  * Description of ItemorderRepository
  8  *
  9  * @author Petr
 10  */
 11 class ItemorderRepository extends \PLus\Orders\Repositories\Repository {
 12     
 13     function getPairData(){
 14     return $this->getTable()->select('id, name')->order('name ASC')->fetchPairs('id', 'name');
 15     }
 16     
 17     /**
 18      * 
 19      * @param type $id
 20      * @return type
 21      * vraci ActiveRow() dle id
 22      */
 23     public function findById($id) {
 24     return $this->getTable()
 25             ->select('itemorder.*')->wherePrimary($id)->fetch();
 26     }
 27     
 28     /**
 29      * 
 30      * @param type $id
 31      * @return type
 32      * vraci ActivRow dle id rozsirenou o jednotku mnozstvi a identifikaci zadatele
 33      */
 34     public function findByIdWithDimenzion($id) {
 35     return $this->getTable()
 36         ->select('itemorder.*, dimenzion.name AS dimname, order.user:unit_user.unit.ns AS ns, order.user:unit_user.unit.name AS unitname,order.isinvestment')
 37         ->wherePrimary($id)->fetch();
 38     }
 39 
 40 
 41     /**
 42      * 
 43      * @param type $order_id
 44      * @return type
 45      * vraci polozky objednavky podle id objednavky doplnene o jednotku mnozstvi
 46      */
 47     function getItemsOrder($order_id) {
 48     return $this->getTable()->select('itemorder.*, dimenzion.name AS dimname')->where('itemorder.order_id', $order_id);
 49     }
 50     
 51     /**
 52      * 
 53      * @param type $order_id
 54      * @return type
 55      * vraci polozky objednavky podle id objednavky doplnene o jednotku mnozstvi
 56      */
 57     function getItemsOrderWithDimenzion($order_id) {
 58     return $this->getTable()->select('itemorder.*,dimenzion.name AS dimname')->where('itemorder.order_id', $order_id);
 59     }
 60     
 61     /**
 62      * 
 63      * @param type $order_id
 64      * @return type
 65      * vraci id polozek objednavky podle id objednavky
 66      */
 67     function getIdItemsOrder($order_id) {
 68     return $this->getTable()->select('itemorder.id')->where('itemorder.order_id', $order_id);
 69     }
 70     
 71     /**
 72      * 
 73      * @param type $id
 74      * @return type
 75      * vraci vypis polozek objednavky podle id polozky
 76      */
 77     function getItemOrderById($id) {
 78     return $this->getTable()->select('itemorder.name, itemorder.number, itemorder.priceitem, itemorder.description')->where('itemorder.id', $id);
 79     }
 80     
 81     /**
 82      * 
 83      * @param type $id
 84      * @return type
 85      * vraci nazvy vsech expertnich oblasti do kterych je polozka zarazena
 86      */
 87     function getItemOrderAreaById($id) {
 88 //  return $this->getTable()->select(':area_itemorder.area.name')
 89 //          ->where('itemorder.id', $id);
 90     return $this->connection->table('area')->select('area.name')
 91         ->where(':area_itemorder.itemorder.id', $id);
 92     }
 93     
 94     
 95     /**
 96      * 
 97      * @param type $id
 98      * @return type
 99      * vraci id vsech expertnich oblasti do kterych je polozka zarazena
100      */
101     function getItemOrderAreaIdByItemId($id) {
102     return $this->getTable()->select(':area_itemorder.area.id')
103             ->where('itemorder.id', $id);
104     }
105     
106 
107     /**
108      * 
109      * @param type $id
110      * @return type
111      * vraci komentare k polozce
112      */
113     function getItemOrderCommentById($id) {
114     return $this->getTable()->select(':comment.created, :comment.description,:comment.user'
115         . 'CASE WHEN :comment.user.isunit=1 THEN :comment:user:unit_user.unit.name ELSE CONCAT_WS(\' \',:comment.user.firstname,'
116         . ' :comment.user.lastname) END AS uname')
117         ->where('itemorder.id', $id);
118     }
119     
120     /**
121      * 
122      * @param type $order_id
123      * @return type
124      * vraci hlavicku objednavky pro vypis detailu polozky
125      */
126     function getItemOrderHeadById($order_id) {
127     return $this->getTable()->select('itemorder.order_id, order.name')->where('order.id', $order_id)->fetch();
128     }
129     
130     
131     /**
132      * 
133      * @param type $area_id
134      * @param type $itemorder_id
135      * prirazeni oblasti polozce objednavky  (do ktere kategorie spada)
136      */
137     function assignArea($area_id, $itemorder_id) {
138     try {
139         $this->connection->table('area_itemorder')->insert(array('area_id' => $area_id, 'itemorder_id' => $itemorder_id));
140     }
141     catch ( \PDOException $e) {
142         if ($e->getCode() == '23000')
143                 $this->connection->table('area_itemorder')->where(array('area_id' => $area_id, 'itemorder_id' => $itemorder_id))
144                 ->update(array('area_id' => $area_id, 'itemorder_id' => $itemorder_id));
145             else
146                 throw $e;
147     }
148     
149     }
150     
151     /**
152      * 
153      * @param type $area_id
154      * @param type $itemorder_id
155      * odstraneni prirazene oblasti k polozce objednavky  (seberu prirazenou kategorii)
156      */
157     function removeAssignedArea($area_id, $itemorder_id) {
158         $this->connection->table('area_itemorder')->where(array('area_id' => $area_id, 'itemorder_id' => $itemorder_id))->delete();
159     }
160     
161     
162     /**
163      * 
164      * @param type $order_id
165      * @return type
166      * vraci pocet polozek v objednavce a pocet polozek, kterym byla urcena oblast
167      */
168     function equalItemArea($order_id) {
169     return $this->getTable()
170         ->select('COUNT(itemorder.order_id) AS item, COUNT(itemorder.areaflag) AS area')
171         ->where('itemorder.order_id', $order_id)
172         ->fetch();
173     }
174     
175     
176     
177     /**
178      * 
179      * @param type $order_id
180      * @return type
181      * vraci pocet polozek objednavky
182      */
183     function getCountItemInOrder($order_id) {
184     return $this->getTable()
185         ->select('COUNT(itemorder.order_id) AS item')
186         ->where('itemorder.order_id', $order_id)
187         ->fetch();
188     }
189     
190     /**
191      * 
192      * @param type $order_id
193      * @return type
194      * vraci pocet posouzenych polozek (existuji posudky ve vsech oblastech)
195      */
196     function getCountItemResultflag($order_id) {
197     return $this->getTable()
198         ->select('COUNT(itemorder.resultflag) AS resultflag')
199         ->where('itemorder.order_id', $order_id)
200         ->fetch();
201     }
202     
203     
204     /**
205      * 
206      * @param type $itemorder_id
207      * @return type
208      * vraci pocet oblasti do kterych je item zarazea
209      */
210     function getCountItemArea($itemorder_id) {
211         return $this->getTable()
212             ->select('COUNT(:area_itemorder.itemorder_id) AS area')
213             ->where('itemorder.id', $itemorder_id)
214             ->fetch();
215     }
216     
217     /**
218      * 
219      * @param type $itemorder_id
220      * @return type
221      * vraci pocet expertnich posudku
222      */
223     function getCountItemResult($itemorder_id) {
224         return $this->getTable()
225             ->select('COUNT(:expertresult.itemorder_id) AS result')
226             ->where('itemorder.id', $itemorder_id)
227             ->fetch();
228     }
229     
230     
231     /**
232      * 
233      * @param type $order_id
234      * @return type
235      * vraci pocet polozek v objednavce a pocet polozek, u kterych byla dokoncena realizace  (objednano) -> orderedflag = 1
236      */
237     function equalItemOrdered($order_id) {
238         return $this->getTable()
239             ->select('COUNT(itemorder.order_id) AS item, COUNT(itemorder.orderedflag) AS ordered')
240             ->where('itemorder.order_id', $order_id)
241             ->fetch();
242     }
243     
244     /**
245      * 
246      * @param type $order_id
247      * @return type
248      * vraci pocet polozek v objednavce a pocet polozek, u kterych byla provedena akceptace resitele -> acceptededflag = 1
249      */
250     function equalItemAccepted($order_id) {
251     return $this->getTable()
252             ->select('COUNT(itemorder.order_id) AS item, COUNT(itemorder.acceptedflag) AS accepted')
253             ->where('itemorder.order_id', $order_id)
254             ->fetch();
255     }
256     
257     
258     /**
259      * 
260      * @param type $itemorder_id
261      * @param type $priceitem
262      * update ceny polozky
263      */
264     function updatePriceItem($itemorder_id, $price) {
265     $this->getTable()->where(array('id' => $itemorder_id))->update(array('priceitem' => $price));
266     }
267     
268     /**
269      * 
270      * @param type $itemorder_id
271      * @return type
272      * zjistuje, zda polozka ma zahajenou realizaci, resp. zda byl prirazen realizator
273      */
274     function getItemRealizationExists($itemorder_id) {
275     return $this->getTable()
276         ->select('COUNT(:itemorder_realization.id) AS realization')
277         ->where('itemorder.id', $itemorder_id)
278         ->fetch();
279     }
280     
281     /**
282      * 
283      * @param type $user_id
284      * @return type
285      * vraci id order, k jejichz polozce je user prirazen jako resitel
286      * vyuzivam v dotazu OrderRepository -> getGridSelectionExpertToRealize
287      */
288     public function findOrderByImplementerId($user_id) {
289     return $this->getTable()->select('DISTINCT itemorder.order_id')
290         ->where('itemorder.orderedflag IS NULL')
291         ->where(':itemorder_realization:itemorder_realization_user.user.id', $user_id);
292     }
293     
294     
295     /**
296      * 
297      * @return type
298      * vraci id order objednavek, ktere byly schvaleny a nemaji prideleneho resitele
299      * vyuzivam dale v dotazu OrderRepository -> getGridSelectionTraderToRealize
300      */
301     public function findOrderWithoutImplementer() {
302     return $this->getTable()->select('DISTINCT itemorder.order_id')
303         ->where('order.completeflag = 1 AND order:managerresult.approved = 1')
304         ->where('itemorder.implementerflag IS NULL');
305     }
306     
307     /**
308      * 
309      * @param type $itemorder_id
310      * @return type
311      * vraci zda je objednavka investice
312      */
313     public function isInvestment($itemorder_id) {
314     return $this->getTable()->select('order.isinvestment')->wherePrimary($itemorder_id)->fetch();
315     }
316     
317     /**
318      * 
319      * @param type $itemorder_id
320      * @return type
321      * vraci id zaznamu investice
322      */
323     public function getInvestmentId($itemorder_id) {
324     return $this->getTable()->select('order:investment.id')->wherePrimary($itemorder_id)->fetch();
325     }
326 }
327 
IS objednávky API documentation generated by ApiGen