public function preSave() { if ($this->getType() == 'action') { if ($this->getConfiguration('infoName') == '') { throw new Exception('Le nom de la commande info ne peut etre vide'); } $actionInfo = virtualCmd::byEqLogicIdCmdName($this->getEqLogic_id(), $this->getConfiguration('infoName')); if (!is_object($actionInfo)) { $actionInfo = new virtualCmd(); $actionInfo->setType('info'); $actionInfo->setSubType('string'); $actionInfo->setCache('enable', 0); } $actionInfo->setEventOnly(0); $actionInfo->setConfiguration('virtualAction', 1); $actionInfo->setName($this->getConfiguration('infoName')); $actionInfo->setEqLogic_id($this->getEqLogic_id()); $actionInfo->setConfiguration('value', $this->getConfiguration('value')); $actionInfo->save(); $this->setConfiguration('infoId', $actionInfo->getId()); } else { $this->setConfiguration('calcul', cmd::humanReadableToCmd($this->getConfiguration('calcul'))); } }
public function preSave() { if ($this->getConfiguration('virtualAction') == 1) { $actionInfo = virtualCmd::byEqLogicIdCmdName($this->getEqLogic_id(), $this->getName()); if (is_object($actionInfo)) { $this->setId($actionInfo->getId()); } } if ($this->getType() == 'action') { if ($this->getConfiguration('infoName') == '') { throw new Exception(__('Le nom de la commande info ne peut etre vide', __FILE__)); } $cmd = cmd::byId(str_replace('#', '', $this->getConfiguration('infoName'))); if (is_object($cmd)) { $this->setSubType($cmd->getSubType()); $this->setEventOnly(1); } else { $actionInfo = virtualCmd::byEqLogicIdCmdName($this->getEqLogic_id(), $this->getConfiguration('infoName')); if (!is_object($actionInfo)) { $actionInfo = new virtualCmd(); $actionInfo->setType('info'); $actionInfo->setSubType('string'); $actionInfo->setCache('enable', 0); } $actionInfo->setEventOnly(1); $actionInfo->setConfiguration('virtualAction', 1); $actionInfo->setName($this->getConfiguration('infoName')); $actionInfo->setEqLogic_id($this->getEqLogic_id()); $actionInfo->save(); $this->setConfiguration('infoId', $actionInfo->getId()); } } else { $calcul = $this->getConfiguration('calcul'); if (strpos($this->getConfiguration('calcul'), '#' . $this->getId() . '#') !== false) { throw new Exception(__('Vous ne pouvez faire un calcul sur la valeur elle meme (boucle infinie)!!!', __FILE__)); } $this->setConfiguration('calcul', $calcul); preg_match_all("/#([0-9]*)#/", $calcul, $matches); $value = ''; foreach ($matches[1] as $cmd_id) { if (is_numeric($cmd_id)) { $cmd = self::byId($cmd_id); if (is_object($cmd) && $cmd->getType() == 'info') { $value .= '#' . $cmd_id . '#'; } } } if ($value != '') { $this->setValue($value); } } }
public function copyFromEqLogic($_eqLogic_id) { $eqLogic = eqLogic::byId($_eqLogic_id); if (!is_object($eqLogic)) { throw new Exception(__('Impossible de trouver l\'équipement : ', __FILE__) . $_eqLogic_id); } if ($eqLogic->getEqType_name() == 'virtual') { throw new Exception(__('Vous ne pouvez importer la configuration d\'un équipement virtuel', __FILE__)); } foreach ($eqLogic->getCategory() as $key => $value) { $this->setCategory($key, $value); } foreach ($eqLogic->getCmd() as $cmd_def) { $cmd = new virtualCmd(); $cmd->setName($cmd_def->getName()); $cmd->setEqLogic_id($this->getId()); $cmd->setIsVisible($cmd_def->getIsVisible()); $cmd->setType($cmd_def->getType()); $cmd->setUnite($cmd_def->getUnite()); $cmd->setOrder($cmd_def->getOrder()); $cmd->setDisplay('icon', $cmd_def->getDisplay('icon')); $cmd->setDisplay('invertBinary', $cmd_def->getDisplay('invertBinary')); foreach ($cmd_def->getTemplate() as $key => $value) { $cmd->setTemplate($key, $value); } $cmd->setSubType($cmd_def->getSubType()); if ($cmd->getType() == 'info') { $cmd->setConfiguration('calcul', '#' . $cmd_def->getId() . '#'); $cmd->setValue($cmd_def->getId()); $cmd->setEventOnly(1); } else { $cmd->setValue($cmd_def->getValue()); $cmd->setConfiguration('infoName', '#' . $cmd_def->getId() . '#'); } $cmd->save(); } $this->save(); }