Overview

Namespaces

  • Budovy
  • Kdyby
    • BootstrapFormRenderer
      • DI
      • Latte
  • Nette
    • Application
      • Diagnostics
      • Responses
      • Routers
      • UI
    • Caching
      • Storages
    • ComponentModel
    • Database
      • Diagnostics
      • Drivers
      • Reflection
      • Table
    • DI
      • Config
        • Adapters
      • Diagnostics
      • Extensions
    • Diagnostics
    • Forms
      • Controls
      • Rendering
    • Http
      • Diagnostics
    • Iterators
    • Latte
      • Macros
    • Loaders
    • Localization
    • Mail
    • PhpGenerator
    • Reflection
    • Security
      • Diagnostics
    • Templating
    • Utils
  • NetteModule
  • Nextras
    • Datagrid
  • None
  • PHP
  • Tester
    • CodeCoverage
    • Runner
      • Output
  • Vodacek
    • Forms
      • Controls
  • WebLoader
    • Filter
    • Nette

Classes

  • AuthorizeScheduledTaskFactory
  • AuthorizeScheduledTaskPresenter
  • BasePresenter
  • BreakdownFactory
  • BreakdownPresenter
  • BreakdownRepository
  • BreakdownStatisticFactory
  • BreakdownStatisticPresenter
  • ContactBindingFactory
  • ContactbindingPresenter
  • ContactBindingRepository
  • ContactFactory
  • ContactPresenter
  • ContactRepository
  • DocumentFactory
  • DocumentPresenter
  • DocumentRepository
  • DocumentsDatagrid
  • DocumenttypeFactory
  • DocumenttypePresenter
  • DocumenttypeRepository
  • DownloadPresenter
  • EmailPresenter
  • ErrorPresenter
  • HomepagePresenter
  • OperationFactory
  • OperationPresenter
  • OperationRepository
  • PeriodicTaskFactory
  • PeriodicTaskPresenter
  • PeriodicTaskRealizationFactory
  • PeriodicTaskRealizationPresenter
  • PeriodicTaskRealizationRepository
  • PeriodicTaskRepository
  • PeriodicTaskStatisticFactory
  • PeriodicTaskStatisticPresenter
  • PlaceFactory
  • PlacePresenter
  • PlaceRepository
  • PriorityFactory
  • PriorityPresenter
  • PriorityRepository
  • Repository
  • RoleRepository
  • RouterFactory
  • ScheduledTaskFactory
  • ScheduledTaskPresenter
  • ScheduledTaskRealizationFactory
  • ScheduledTaskRealizationPresenter
  • ScheduledTaskRealizationRepository
  • ScheduledTaskRepository
  • ScheduledTaskStatisticFactory
  • ScheduledTaskStatisticPresenter
  • SignPresenter
  • UnitFactory
  • UnitPresenter
  • UnitRepository
  • UserFactory
  • UserManager
  • UserPresenter
  • UserRepository
  • Overview
  • Namespace
  • Class
  • Tree
  1: <?php
  2: namespace Budovy;
  3: 
  4: class PeriodicTaskRealizationPresenter extends BasePresenter {
  5:     /** @var PeriodicTaskRepository @inject */
  6:     public $periodicTaskRepository;
  7: 
  8:     /** @var PeriodicTaskRealizationRepository @inject */
  9:     public $periodicTaskRealizationRepository;
 10: 
 11:     /** @var DocumentRepository @inject */
 12:     public $documentRepository;
 13: 
 14:     /** @var DocumentFactory @inject */
 15:     public $documentFactory;
 16: 
 17:     /** @var PeriodicTaskRealizationFactory @inject */
 18:     public $periodicTaskRealizationFactory;
 19: 
 20:     /** @var ContactBindingRepository @inject */
 21:     public $contactBindingRepository;
 22: 
 23:     /** @var UnitRepository @inject */
 24:     public $unitRepository;
 25: 
 26:     /** @var OperationRepository @inject */
 27:     public $operationRepository;
 28: 
 29:     /** @var \Nette\Http\IRequest @inject */
 30:     public $httpRequest;
 31: 
 32:     protected function createComponentGrid() {
 33:         $session = $this->getSession()->getSection('history');
 34:         $session->secpttask = (string)$this->getHttpRequest()->getUrl();
 35: 
 36:         return $this->periodicTaskRealizationFactory->createDataGrid();
 37:     }
 38: 
 39:     protected function createComponentDocumentsGrid() {
 40:         return $this->documentFactory->createDocumentsDataGrid();
 41:     }
 42: 
 43:     public function actionEdit($id) {
 44:         $item = $this->periodicTaskRealizationRepository->findById($id);
 45: 
 46:         if ($id > 0 && $item === false) {
 47:             $this->redirect('default');
 48:         }
 49: 
 50:         if ($id > 0) {
 51:             $this['editForm']['base']->setDefaults($item);
 52:         } else {
 53:             $this['editForm']['base']->setDefaults(array('date' => new \DateTime(), 'price' => 0));
 54:         }
 55: 
 56:         $this->template->id = $id;
 57:     }
 58: 
 59:     public function actionDocuments($id)    {
 60:         $item = $this->periodicTaskRealizationRepository->findById($id);
 61: 
 62:         if ($item === false) {
 63:             $this->redirect('default');
 64:         }
 65: 
 66:         $assigned = array();
 67: 
 68:         foreach ($this->periodicTaskRealizationRepository->getAssignedDocuments($item->id) as $row) {
 69:             $assigned[] = $row->id;
 70:         }
 71: 
 72:         $this['documentsGrid']->setId($item->id);
 73:         $this['documentsGrid']->setAssigned($assigned);
 74: 
 75:         $session = $this->getSession()->getSection('history');
 76: 
 77:         if (isset($session->secpttask)) {
 78:             $this->template->backlink = $session->secpttask;
 79:         } else {
 80:             $this->template->backlink = $this->link('default');
 81:         }
 82: 
 83:         $this->template->id = $item->id;
 84:     }
 85: 
 86:     public function renderPreview($id) {
 87:         $item = $this->periodicTaskRealizationRepository->findById($id);
 88: 
 89:         if ($item === false) {
 90:             $this->redirect('default');
 91:         }
 92: 
 93:         $task = $this->periodicTaskRepository->findById($item->id_periodictask);
 94: 
 95:         $this->template->data = $item;
 96:         $this->template->documentRepository = $this->documentRepository;
 97:         $this->template->task = $task;
 98:         $this->template->unit = $this->unitRepository->findById($task->id_unit);
 99:         $this->template->operation = $this->operationRepository->findById($task->id_operation);
100:         $this->template->contact = $this->periodicTaskRealizationRepository->getAssignedContact($item->id);
101:         $this->template->documents = $this->periodicTaskRealizationRepository->getAssignedDocuments($item->id);
102:     }
103: 
104:     protected function createComponentEditForm() {
105:         $session = $this->getSession()->getSection('history');
106: 
107:         if (isset($session->secpttask)) {
108:             $backlink = $session->secpttask;
109:         } else {
110:             $backlink = $this->link('default');
111:         }
112: 
113:         $form = $this->periodicTaskRealizationFactory->createEditForm($backlink);
114:         $form->onSuccess[] = $this->editFormSubmitted;
115: 
116:         return $form;
117:     }
118: 
119:     public function editFormSubmitted($form) {
120:         $fdata = $form['base']->getValues();
121: 
122:         $id = $this->getParameter('id');
123:         $contact = $fdata->id_contact;
124: 
125:         unset($fdata->id_contact);
126: 
127:         if ($id > 0) {
128:             $this->periodicTaskRealizationRepository->updateById($id, $fdata);
129: 
130:             $this->flashMessage("Záznam byl upraven.", "success");
131:         } else {
132:             $data = $this->periodicTaskRealizationRepository->insertData($fdata);
133: 
134:             $id = $data->id;
135: 
136:             $this->flashMessage("Záznam byl vložen.", "success");
137:         }
138: 
139:         /*
140:          * Zpracovani dokumentu
141:          */
142:         $filedatas = $form['document']->getValues();
143: 
144:         foreach ($filedatas->files as $file) {
145:             if ($file->isOk()) {
146:                 $data = new \Nette\ArrayHash;
147:                 $data->name = $file->getName();
148:                 $data->filename = $file->getName();
149:                 $data->id_documenttype = $filedatas->id_documenttype;
150:                 $data->mime = $file->getContentType();
151:                 $data->data = $file->getContents();
152:                 $data->lastmod = date('Y-m-d H:i:s');
153: 
154:                 $document = $this->documentRepository->insertData($data);
155: 
156:                 $this->periodicTaskRealizationRepository->assignDocument($id, $document->id);
157:             }
158:         }
159: 
160:         /*
161:          * Prirazeni kontaktu
162:          */
163:         if ($contact > 0) {
164:             $this->periodicTaskRealizationRepository->assignContact($id, $contact);
165:         } else {
166:             $this->periodicTaskRealizationRepository->removeAssignedContact($id);
167:         }
168: 
169:         $session = $this->getSession()->getSection('history');
170: 
171:         if (isset($session->secpttask)) {
172:             $backlink = $session->secpttask;
173:         } else {
174:             $backlink = $this->link('default');
175:         }
176: 
177:         $this->redirectUrl($backlink);
178:     }
179: 
180:     public function handleDelete($id) {
181:         try {
182:             $this->periodicTaskRealizationRepository->deleteById($id);
183:             $this->flashMessage("Záznam byl smazán.", "success");
184:         } catch (\PDOException $e) {
185:             $this->flashMessage("Záznam nelze smazat!", "error");
186:         }
187: 
188:         $this->redirect('this');
189:     }
190: 
191:     public function handleAssign($id, $document) {
192:         $this->periodicTaskRealizationRepository->assignDocument($id, $document);
193: 
194:         $this->redirect('this');
195:     }
196: 
197:     public function handleUnassign($id, $document) {
198:         $this->periodicTaskRealizationRepository->removeAssignedDocument($id, $document);
199: 
200:         $this->redirect('this');
201:     }
202: }
API documentation generated by ApiGen 2.8.0