public function isValid($data) { $maskModel = new WsServiceSmsMask(); $isValid = parent::isValid($data); if ($isValid) { $validMasks = $maskModel->getMaskForServices($data['ws_service_id'], $data['id_mask']); if ($validMasks->count() !== count($data['ws_service_id'])) { $isValid = false; $this->setErrors(array("Wybrana usługa nie obsługuje wybranego nadpisu")); } } return $isValid; }
/** * Utworzenie nowej usługi lub nadpis poprzedniej (o ile podano id usługi) * @param array $data * @throws Logic_Exception */ public function createOrUpdateService(array $data, $idService = null) { if (null === $idService) { $row = $this->getModel()->createRow($data); } else { $row = $this->getService($idService); $row->setFromArray($data); } try { $idService = $row->save(); } catch (Exception $e) { throw new Logic_Exception("Cannot save basic service data!", 0, $e); } if ($this->_model->getName() == 'service_sms' && !empty($data['mask'])) { $maskModel = new WsServiceSmsMask(); $maskModel->setMasksForService($idService, $data['mask']); } return $idService; }