* Date: 20.09.14 23:15 * You must not use this file without permission. */ namespace Workflow\Plugins\RecordSource; use Workflow\ComplexeCondition; use Workflow\Preset; use Workflow\PresetManager; use Workflow\RelationAddExtend; use Workflow\VTTemplate; class Relation extends \Workflow\RecordSource { public function getSource($moduleName) { $return = array( 'id' => 'isrelation', 'title' => 'Related Records', 'options' => array( 'relation' => array( 'type' => 'select', 'label' => 'Record from which Relation' ) ), 'sort' => 20, ); return $return; } /** * @param $key * @param $value * @param $context \Workflow\VTEntity * @return array|void */ public function getQuery(\Workflow\VTEntity $context, $sortField = null, $limit = null, $includeAllModTables = false) { if(!empty($this->_Data['recordsource']['isrelation']['relation'])) { $currentSelection = $this->_Data['recordsource']['isrelation']['relation']; } else { throw new \Exception('Please configure Relation in current task to remove this exception.'); } if(!empty($this->_Data['recordsource']['isrelation']['sourceid'])) { $currentSourceId = $this->_Data['recordsource']['isrelation']['sourceid']; } else { $currentSourceId = '$crmid'; } /** * @var RelationAddExtend $related */ $related = \Workflow\RelationAddExtend::getItem($currentSelection); $query = $related->getQuery(VTTemplate::parse($currentSourceId, $context), $includeAllModTables); $parts = preg_split('/FROM/i', $query); $sqlQuery = 'SELECT vtiger_crmentity.crmid /* Insert Fields */ FROM '.$parts[1]; return $sqlQuery; } public function beforeGetTaskform($data) { var_dump('asd'); //$presetManager = new PresetManager($this->) } /** * @var null|ComplexeCondition */ private $_ConditionObj = null; public function getConfigHTML($data, $parameter) { /** * @var RelationAddExtend[] $related */ $related = \Workflow\RelationAddExtend::getItems($this->_Task->getModuleName()); $html = '

'; $html .= '

' . $currentSourceId . '
'; $html .= '
'.sprintf(vtranslate('This record must be from Module %s. Otherwise you will get an exception.', 'Settings:Workflow2'), '' . vtranslate($this->_Task->getModuleName(), $this->_TargetModule) . '').'
'; $html .= '
'; } return $html; } public function getConfigInlineJS() { return ''; } public function getConfigInlineCSS() { return '.asd { color:red; }'; } } \Workflow\RecordSource::register('isrelation', '\Workflow\Plugins\RecordSource\Relation');