本文整理汇总了PHP中VTWorkflowManager::newWorkFlow方法的典型用法代码示例。如果您正苦于以下问题:PHP VTWorkflowManager::newWorkFlow方法的具体用法?PHP VTWorkflowManager::newWorkFlow怎么用?PHP VTWorkflowManager::newWorkFlow使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类VTWorkflowManager
的用法示例。
在下文中一共展示了VTWorkflowManager::newWorkFlow方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: applyChange
function applyChange()
{
global $adb;
if ($this->hasError()) {
$this->sendError();
}
if ($this->isApplied()) {
$this->sendMsg('Changeset ' . get_class($this) . ' already applied!');
} else {
global $adb;
$chktbl = $adb->query('select 1 from com_vtiger_workflow_tasktypes limit 1');
if ($chktbl) {
$moduleInstance = Vtiger_Module::getInstance('Potentials');
$block = Vtiger_Block::getInstance('LBL_OPPORTUNITY_INFORMATION', $moduleInstance);
$field = Vtiger_Field::getInstance('forecast_amount', $moduleInstance);
if ($field) {
$this->ExecuteQuery('update vtiger_field set presence=2 where fieldid=' . $field->id);
} else {
$forecast_field = new Vtiger_Field();
$forecast_field->name = 'forecast_amount';
$forecast_field->label = 'Forecast Amount';
$forecast_field->table = 'vtiger_potential';
$forecast_field->column = 'forecast_amount';
$forecast_field->columntype = 'decimal(25,4)';
$forecast_field->typeofdata = 'N~O';
$forecast_field->uitype = '71';
$forecast_field->masseditable = '0';
$block->addField($forecast_field);
}
$wfrs = $adb->query("SELECT workflow_id FROM com_vtiger_workflows WHERE summary='Calculate or Update forecast amount'");
if ($wfrs and $adb->num_rows($wfrs) == 1) {
$this->sendMsg('Workfolw already exists!');
} else {
$workflowManager = new VTWorkflowManager($adb);
$taskManager = new VTTaskManager($adb);
$potentailsWorkFlow = $workflowManager->newWorkFlow("Potentials");
$potentailsWorkFlow->test = '';
$potentailsWorkFlow->description = "Calculate or Update forecast amount";
$potentailsWorkFlow->executionCondition = VTWorkflowManager::$ON_EVERY_SAVE;
$potentailsWorkFlow->defaultworkflow = 1;
$workflowManager->save($potentailsWorkFlow);
$task = $taskManager->createTask('VTUpdateFieldsTask', $potentailsWorkFlow->id);
$task->active = true;
$task->summary = 'update forecast amount';
$task->field_value_mapping = '[{"fieldname":"forecast_amount","valuetype":"expression","value":"amount * probability / 100"}]';
$taskManager->saveTask($task);
}
$this->sendMsg('Changeset ' . get_class($this) . ' applied!');
$this->markApplied();
} else {
$this->sendMsgError('This changeset could not be applied because it depends on create_workflow_tasktype which probably has not been applied yet. Apply that changeset and try this one again.');
}
}
$this->finishExecution();
}
示例2: applyChange
function applyChange()
{
if ($this->hasError()) {
$this->sendError();
}
if ($this->isApplied()) {
$this->sendMsg('Changeset ' . get_class($this) . ' already applied!');
} else {
global $adb;
$emm = new VTEntityMethodManager($adb);
// Adding EntityMethod for Updating Products data after updating PurchaseOrder
$emm->addEntityMethod("PurchaseOrder", "UpdateInventory", "include/InventoryHandler.php", "handleInventoryProductRel");
// Creating Workflow for Updating Inventory Stock on PO
$vtWorkFlow = new VTWorkflowManager($adb);
$invWorkFlow = $vtWorkFlow->newWorkFlow("PurchaseOrder");
$invWorkFlow->test = '[{"fieldname":"subject","operation":"does not contain","value":"`!`"}]';
$invWorkFlow->description = "UpdateInventoryProducts On Every Save";
$invWorkFlow->defaultworkflow = 1;
$vtWorkFlow->save($invWorkFlow);
$tm = new VTTaskManager($adb);
$task = $tm->createTask('VTEntityMethodTask', $invWorkFlow->id);
$task->active = true;
$task->methodName = "UpdateInventory";
$task->summary = "Update product stock";
$tm->saveTask($task);
// add Cancel status to Invoice and SO for stock control
$moduleInstance = Vtiger_Module::getInstance('Invoice');
$field = Vtiger_Field::getInstance('invoicestatus', $moduleInstance);
if ($field) {
$field->setPicklistValues(array('Cancel'));
}
$this->sendMsg('Changeset ' . get_class($this) . ' applied! Add Workflow Custom Function complete!');
$this->markApplied();
}
$this->finishExecution();
}
示例3: unlink
unlink($unWanted[$i]);
}
}
// Ticket #2629
global $adb;
$query = 'SELECT tabid FROM vtiger_tab where name = ?';
$result = $adb->pquery($query, array('Accounts'));
$tabId = $adb->query_result($result, 0, 'tabid');
Migration_Index_View::ExecuteQuery('UPDATE vtiger_relatedlists SET name=? WHERE tabid=? AND label=?', array('get_dependents_list', $tabId, 'Act'));
Migration_Index_View::ExecuteQuery('UPDATE vtiger_relatedlists SET name=? WHERE tabid=? AND label=?', array('get_dependents_list', $tabId, 'Consignment'));
// Begin Ticket #2601 Creating Workflow for Updating Inventory Stock for Invoice
$checkQuery = "SELECT * FROM com_vtiger_workflows WHERE module_name = ? AND summary = ?";
$result = $adb->pquery($checkQuery, array('Invoice', 'UpdateInventoryProducts On Every Save'));
if ($adb->num_rows($result) < 1) {
$vtWorkFlow = new VTWorkflowManager($adb);
$invWorkFlow = $vtWorkFlow->newWorkFlow("Invoice");
$invWorkFlow->test = '[{"fieldname":"subject","operation":"does not contain","value":"`!`"}]';
$invWorkFlow->description = "UpdateInventoryProducts On Every Save";
$invWorkFlow->defaultworkflow = 1;
$vtWorkFlow->save($invWorkFlow);
}
// Begin Ticket #2668
$query = 'SELECT blockid FROM vtiger_settings_blocks WHERE label = ?';
$result = $adb->pquery($query, array('LBL_INTEGRATION'));
$blockId = $adb->query_result($result, 0, 'blockid');
Migration_Index_View::ExecuteQuery('UPDATE vtiger_settings_field SET blockid = ? WHERE name = ? OR name = ?', array($blockId, 'LBL_CML_SETTINGS', 'LBL_SOCIALCONNECTOR_SETTINGS'));
// Begin Ticket #2789
$query = 'SELECT tabid FROM vtiger_tab where name = ?';
$result = $adb->pquery($query, array('PBXManager'));
$tabId = $adb->query_result($result, 0, 'tabid');
Migration_Index_View::ExecuteQuery('UPDATE vtiger_field SET fieldname = ? WHERE tabid = ? AND fieldname = ?', array('createdtime', $tabId, 'CreatedTime'));
示例4: populateDefaultWorkflows
function populateDefaultWorkflows($adb)
{
require_once "modules/com_vtiger_workflow/include.inc";
require_once "modules/com_vtiger_workflow/tasks/VTEntityMethodTask.inc";
require_once "modules/com_vtiger_workflow/VTEntityMethodManager.inc";
// Creating Workflow for Updating Inventory Stock for Invoice
$vtWorkFlow = new VTWorkflowManager($adb);
$invWorkFlow = $vtWorkFlow->newWorkFlow("Invoice");
$invWorkFlow->test = '[{"fieldname":"subject","operation":"does not contain","value":"`!`"}]';
$invWorkFlow->description = "UpdateInventoryProducts On Every Save";
$invWorkFlow->defaultworkflow = 1;
$vtWorkFlow->save($invWorkFlow);
$tm = new VTTaskManager($adb);
$task = $tm->createTask('VTEntityMethodTask', $invWorkFlow->id);
$task->active = true;
$task->methodName = "UpdateInventory";
$tm->saveTask($task);
// Creating Workflow for Accounts when Notifyowner is true
$vtaWorkFlow = new VTWorkflowManager($adb);
$accWorkFlow = $vtaWorkFlow->newWorkFlow("Accounts");
$accWorkFlow->test = '[{"fieldname":"notify_owner","operation":"is","value":"true:boolean"}]';
$accWorkFlow->description = "Send Email to user when Notifyowner is True";
$accWorkFlow->executionCondition = 2;
$accWorkFlow->defaultworkflow = 1;
$vtaWorkFlow->save($accWorkFlow);
$id1 = $accWorkFlow->id;
$tm = new VTTaskManager($adb);
$task = $tm->createTask('VTEmailTask', $accWorkFlow->id);
$task->active = true;
$task->methodName = "NotifyOwner";
$task->recepient = "\$(assigned_user_id : (Users) email1)";
$task->subject = "Regarding Account Creation";
$task->content = "An Account has been assigned to you on vtigerCRM<br>Details of account are :<br><br>" . "AccountId:" . '<b>$account_no</b><br>' . "AccountName:" . '<b>$accountname</b><br>' . "Rating:" . '<b>$rating</b><br>' . "Industry:" . '<b>$industry</b><br>' . "AccountType:" . '<b>$accounttype</b><br>' . "Description:" . '<b>$description</b><br><br><br>' . "Thank You<br>Admin";
$task->summary = "An account has been created ";
$tm->saveTask($task);
$adb->pquery("update com_vtiger_workflows set defaultworkflow=? where workflow_id=?", array(1, $id1));
// Creating Workflow for Contacts when Notifyowner is true
$vtcWorkFlow = new VTWorkflowManager($adb);
$conWorkFlow = $vtcWorkFlow->newWorkFlow("Contacts");
$conWorkFlow->summary = "A contact has been created ";
$conWorkFlow->executionCondition = 2;
$conWorkFlow->test = '[{"fieldname":"notify_owner","operation":"is","value":"true:boolean"}]';
$conWorkFlow->description = "Send Email to user when Notifyowner is True";
$conWorkFlow->defaultworkflow = 1;
$vtcWorkFlow->save($conWorkFlow);
$id1 = $conWorkFlow->id;
$tm = new VTTaskManager($adb);
$task = $tm->createTask('VTEmailTask', $conWorkFlow->id);
$task->active = true;
$task->methodName = "NotifyOwner";
$task->recepient = "\$(assigned_user_id : (Users) email1)";
$task->subject = "Regarding Contact Creation";
$task->content = "An Contact has been assigned to you on vtigerCRM<br>Details of Contact are :<br><br>" . "Contact Id:" . '<b>$contact_no</b><br>' . "LastName:" . '<b>$lastname</b><br>' . "FirstName:" . '<b>$firstname</b><br>' . "Lead Source:" . '<b>$leadsource</b><br>' . "Department:" . '<b>$department</b><br>' . "Description:" . '<b>$description</b><br><br><br>' . "Thank You<br>Admin";
$task->summary = "An contact has been created ";
$tm->saveTask($task);
$adb->pquery("update com_vtiger_workflows set defaultworkflow=? where workflow_id=?", array(1, $id1));
// Creating Workflow for Contacts when PortalUser is true
$vtcWorkFlow = new VTWorkflowManager($adb);
$conpuWorkFlow = $vtcWorkFlow->newWorkFlow("Contacts");
$conpuWorkFlow->test = '[{"fieldname":"portal","operation":"is","value":"true:boolean"}]';
$conpuWorkFlow->description = "Send Email to user when Portal User is True";
$conpuWorkFlow->executionCondition = 2;
$conpuWorkFlow->defaultworkflow = 1;
$vtcWorkFlow->save($conpuWorkFlow);
$id1 = $conpuWorkFlow->id;
$tm = new VTTaskManager($adb);
$task = $tm->createTask('VTEmailTask', $conpuWorkFlow->id);
$task->active = true;
$task->methodName = "NotifyOwner";
$task->recepient = "\$(assigned_user_id : (Users) email1)";
$task->subject = "Regarding Contact Assignment";
$task->content = "An Contact has been assigned to you on vtigerCRM<br>Details of Contact are :<br><br>" . "Contact Id:" . '<b>$contact_no</b><br>' . "LastName:" . '<b>$lastname</b><br>' . "FirstName:" . '<b>$firstname</b><br>' . "Lead Source:" . '<b>$leadsource</b><br>' . "Department:" . '<b>$department</b><br>' . "Description:" . '<b>$description</b><br><br><br>' . "And <b>CustomerPortal Login Details</b> is sent to the " . "EmailID :-" . '$email<br>' . "<br>Thank You<br>Admin";
$task->summary = "An contact has been created ";
$tm->saveTask($task);
$adb->pquery("update com_vtiger_workflows set defaultworkflow=? where workflow_id=?", array(1, $id1));
// Creating Workflow for Potentials
$vtcWorkFlow = new VTWorkflowManager($adb);
$potentialWorkFlow = $vtcWorkFlow->newWorkFlow("Potentials");
$potentialWorkFlow->description = "Send Email to users on Potential creation";
$potentialWorkFlow->executionCondition = 1;
$potentialWorkFlow->defaultworkflow = 1;
$vtcWorkFlow->save($potentialWorkFlow);
$id1 = $potentialWorkFlow->id;
$tm = new VTTaskManager($adb);
$task = $tm->createTask('VTEmailTask', $potentialWorkFlow->id);
$task->active = true;
$task->recepient = "\$(assigned_user_id : (Users) email1)";
$task->subject = "Regarding Potential Assignment";
$task->content = "An Potential has been assigned to you on vtigerCRM<br>Details of Potential are :<br><br>" . "Potential No:" . '<b>$potential_no</b><br>' . "Potential Name:" . '<b>$potentialname</b><br>' . "Amount:" . '<b>$amount</b><br>' . "Expected Close Date:" . '<b>$closingdate</b><br>' . "Type:" . '<b>$opportunity_type</b><br><br><br>' . "Description :" . '$description<br>' . "<br>Thank You<br>Admin";
$task->summary = "An Potential has been created ";
$tm->saveTask($task);
$workflowManager = new VTWorkflowManager($adb);
$taskManager = new VTTaskManager($adb);
// Contact workflow on creation/modification
$contactWorkFlow = $workflowManager->newWorkFlow("Contacts");
$contactWorkFlow->test = '';
$contactWorkFlow->description = "Workflow for Contact Creation or Modification";
$contactWorkFlow->executionCondition = VTWorkflowManager::$ON_EVERY_SAVE;
$contactWorkFlow->defaultworkflow = 1;
$workflowManager->save($contactWorkFlow);
//.........这里部分代码省略.........
示例5: populateDefaultWorkflows
function populateDefaultWorkflows($adb)
{
require_once "modules/com_vtiger_workflow/include.inc";
require_once "modules/com_vtiger_workflow/tasks/VTEntityMethodTask.inc";
require_once "modules/com_vtiger_workflow/VTEntityMethodManager.inc";
//added column defaultworkflow
//For default workflows it sets column defaultworkflow=true
$column_name = "defaultworkflow";
$adb->pquery("alter table com_vtiger_workflows add column {$column_name} int(1)", array());
// Creating Workflow for Accounts when Notifyowner is true
$vtaWorkFlow = new VTWorkflowManager($adb);
$accWorkFlow = $vtaWorkFlow->newWorkFlow("Accounts");
$accWorkFlow->test = '[{"fieldname":"notify_owner","operation":"is","value":"true:boolean"}]';
$accWorkFlow->description = "Send Email to user when Notifyowner is True";
$accWorkFlow->executionCondition = 2;
$vtaWorkFlow->save($accWorkFlow);
$id1 = $accWorkFlow->id;
$tm = new VTTaskManager($adb);
$task = $tm->createTask('VTEmailTask', $accWorkFlow->id);
$task->active = true;
$task->methodName = "NotifyOwner";
$task->recepient = "\$(assigned_user_id : (Users) email1)";
$task->subject = "Regarding Account Creation";
$task->content = "An Account has been assigned to you on vtigerCRM<br>Details of account are :<br><br>" . "AccountId:" . '<b>$account_no</b><br>' . "AccountName:" . '<b>$accountname</b><br>' . "Rating:" . '<b>$rating</b><br>' . "Industry:" . '<b>$industry</b><br>' . "AccountType:" . '<b>$accounttype</b><br>' . "Description:" . '<b>$description</b><br><br><br>' . "Thank You<br>Admin";
$task->summary = "An account has been created ";
$tm->saveTask($task);
$adb->pquery("update com_vtiger_workflows set defaultworkflow=? where workflow_id=?", array(1, $id1));
// Creating Workflow for Contacts when Notifyowner is true
$vtcWorkFlow = new VTWorkflowManager($adb);
$conWorkFlow = $vtcWorkFlow->newWorkFlow("Contacts");
$conWorkFlow->summary = "Test accounut";
$conWorkFlow->executionCondition = 2;
$conWorkFlow->test = '[{"fieldname":"notify_owner","operation":"is","value":"true:boolean"}]';
$conWorkFlow->description = "Send Email to user when Notifyowner is True";
$vtcWorkFlow->save($conWorkFlow);
$id1 = $conWorkFlow->id;
$tm = new VTTaskManager($adb);
$task = $tm->createTask('VTEmailTask', $conWorkFlow->id);
$task->active = true;
$task->methodName = "NotifyOwner";
$task->recepient = "\$(assigned_user_id : (Users) email1)";
$task->subject = "Regarding Contact Creation";
$task->content = "An Contact has been assigned to you on vtigerCRM<br>Details of Contact are :<br><br>" . "Contact Id:" . '<b>$contact_no</b><br>' . "LastName:" . '<b>$lastname</b><br>' . "FirstName:" . '<b>$firstname</b><br>' . "Lead Source:" . '<b>$leadsource</b><br>' . "Department:" . '<b>$department</b><br>' . "Description:" . '<b>$description</b><br><br><br>' . "Thank You<br>Admin";
$task->summary = "An contact has been created ";
$tm->saveTask($task);
$adb->pquery("update com_vtiger_workflows set defaultworkflow=? where workflow_id=?", array(1, $id1));
// Creating Workflow for Contacts when PortalUser is true
$vtcWorkFlow = new VTWorkflowManager($adb);
$conpuWorkFlow = $vtcWorkFlow->newWorkFlow("Contacts");
$conpuWorkFlow->test = '[{"fieldname":"portal","operation":"is","value":"true:boolean"}]';
$conpuWorkFlow->description = "Send Email to user when Portal User is True";
$conpuWorkFlow->executionCondition = 2;
$vtcWorkFlow->save($conpuWorkFlow);
$id1 = $conpuWorkFlow->id;
$tm = new VTTaskManager($adb);
$task = $tm->createTask('VTEmailTask', $conpuWorkFlow->id);
$task->active = true;
$task->methodName = "NotifyOwner";
$task->recepient = "\$(assigned_user_id : (Users) email1)";
$task->subject = "Regarding Contact Assignment";
$task->content = "An Contact has been assigned to you on vtigerCRM<br>Details of Contact are :<br><br>" . "Contact Id:" . '<b>$contact_no</b><br>' . "LastName:" . '<b>$lastname</b><br>' . "FirstName:" . '<b>$firstname</b><br>' . "Lead Source:" . '<b>$leadsource</b><br>' . "Department:" . '<b>$department</b><br>' . "Description:" . '<b>$description</b><br><br><br>' . "And <b>CustomerPortal Login Details</b> is sent to the " . "EmailID :-" . '$email<br>' . "<br>Thank You<br>Admin";
$task->summary = "An contact has been created ";
$tm->saveTask($task);
$adb->pquery("update com_vtiger_workflows set defaultworkflow=? where workflow_id=?", array(1, $id1));
// Creating Workflow for Potentials
$vtcWorkFlow = new VTWorkflowManager($adb);
$potentialWorkFlow = $vtcWorkFlow->newWorkFlow("Potentials");
$potentialWorkFlow->description = "Send Email to user on Potential creation";
$potentialWorkFlow->executionCondition = 1;
$vtcWorkFlow->save($potentialWorkFlow);
$id1 = $potentialWorkFlow->id;
$tm = new VTTaskManager($adb);
$task = $tm->createTask('VTEmailTask', $potentialWorkFlow->id);
$task->active = true;
$task->recepient = "\$(assigned_user_id : (Users) email1)";
$task->subject = "Regarding Potential Assignment";
$task->content = "An Potential has been assigned to you on vtigerCRM<br>Details of Potential are :<br><br>" . "Potential No:" . '<b>$potential_no</b><br>' . "Potential Name:" . '<b>$potentialname</b><br>' . "Amount:" . '<b>$amount</b><br>' . "Expected Close Date:" . '<b>$closingdate</b><br>' . "Type:" . '<b>$opportunity_type</b><br><br><br>' . "Description :" . '$description<br>' . "<br>Thank You<br>Admin";
$task->summary = "An Potential has been created ";
$tm->saveTask($task);
$adb->pquery("update com_vtiger_workflows set defaultworkflow=? where workflow_id=?", array(1, $id1));
}
示例6: VARCHAR
$field4->name = 'balance';
$field4->label = 'Balance';
$field4->table = 'vtiger_purchaseorder';
$field4->uitype = 72;
$field4->typeofdata = 'N~O';
$field4->defaultvalue = 0;
$field4->displaytype = 3;
$POBlockInstance->addField($field4);
}
$sqltimelogTable = "CREATE TABLE vtiger_sqltimelog ( id integer, type VARCHAR(10),\r\n\t\t\t\t\tdata text, started decimal(18,2), ended decimal(18,2), loggedon datetime)";
Migration_Index_View::ExecuteQuery($sqltimelogTable, array());
$moduleName = 'PurchaseOrder';
$emm = new VTEntityMethodManager($adb);
$emm->addEntityMethod($moduleName, "UpdateInventory", "include/InventoryHandler.php", "handleInventoryProductRel");
$vtWorkFlow = new VTWorkflowManager($adb);
$poWorkFlow = $vtWorkFlow->newWorkFlow($moduleName);
$poWorkFlow->description = "Update Inventory Products On Every Save";
$poWorkFlow->defaultworkflow = 1;
$poWorkFlow->executionCondition = 3;
$vtWorkFlow->save($poWorkFlow);
$tm = new VTTaskManager($adb);
$task = $tm->createTask('VTEntityMethodTask', $poWorkFlow->id);
$task->active = true;
$task->summary = "Update Inventory Products";
$task->methodName = "UpdateInventory";
$tm->saveTask($task);
// Add Tag Cloud widget.
$homeModule = Vtiger_Module::getInstance('Home');
$homeModule->addLink('DASHBOARDWIDGET', 'Tag Cloud', 'index.php?module=Home&view=ShowWidget&name=TagCloud');
// Schema changed for capturing Dashboard widget positions
Migration_Index_View::ExecuteQuery('ALTER TABLE vtiger_module_dashboard_widgets ADD COLUMN position VARCHAR(50)', array());
示例7: IN
ExecuteQuery("UPDATE vtiger_blocks SET blocklabel = '' WHERE blocklabel = 'LBL_DESCRIPTION_INFORMATION' AND tabid = '9'");
ExecuteQuery("UPDATE vtiger_blocks SET blocklabel = '' WHERE blocklabel = 'LBL_DESCRIPTION_INFORMATION' AND tabid = '16'");
ExecuteQuery("UPDATE vtiger_blocks SET blocklabel = '' WHERE blocklabel = 'LBL_REMINDER_INFORMATION' AND tabid = 16");
ExecuteQuery("UPDATE vtiger_field SET block = '41' WHERE tabid = '16' and fieldname NOT IN('reminder_time','contact_id')");
ExecuteQuery("UPDATE vtiger_field SET block = '19' WHERE tabid = '16' and fieldname = 'contact_id'");
// Change HelpDesk Workflows
global $adb;
$workflowManager = new VTWorkflowManager($adb);
$taskManager = new VTTaskManager($adb);
$wfrs = $adb->query("SELECT workflow_id,summary FROM com_vtiger_workflows WHERE module_name='HelpDesk'");
while ($wfid = $adb->fetch_array($wfrs)) {
deleteWorkflow($wfid['workflow_id']);
putMsg('Workflow "' . $wfid['summary'] . '" deleted!');
}
// Trouble Tickets workflow on creation from Customer Portal
$helpDeskWorkflow = $workflowManager->newWorkFlow("HelpDesk");
$helpDeskWorkflow->test = '[{"fieldname":"from_portal","operation":"is","value":"true:boolean"}]';
$helpDeskWorkflow->description = "Workflow for Ticket Created from Portal";
$helpDeskWorkflow->executionCondition = VTWorkflowManager::$ON_FIRST_SAVE;
$helpDeskWorkflow->defaultworkflow = 1;
$workflowManager->save($helpDeskWorkflow);
$task = $taskManager->createTask('VTEntityMethodTask', $helpDeskWorkflow->id);
$task->active = true;
$task->summary = 'Notify Record Owner and the Related Contact when Ticket is created from Portal';
$task->methodName = "NotifyOnPortalTicketCreation";
$taskManager->saveTask($task);
putMsg('Workflow "' . $helpDeskWorkflow->description . '" created!');
// Trouble Tickets workflow on ticket update from Customer Portal
$helpDeskWorkflow = $workflowManager->newWorkFlow("HelpDesk");
$helpDeskWorkflow->test = '[{"fieldname":"from_portal","operation":"is","value":"true:boolean"}]';
$helpDeskWorkflow->description = "Workflow for Ticket Updated from Portal";
示例8: populateDefaultWorkflows
function populateDefaultWorkflows($adb)
{
require_once "modules/com_vtiger_workflow/include.inc";
require_once "modules/com_vtiger_workflow/tasks/VTEntityMethodTask.inc";
require_once "modules/com_vtiger_workflow/VTEntityMethodManager.inc";
// Creating Workflow for Updating Inventory Stock for Invoice
$vtWorkFlow = new VTWorkflowManager($adb);
$invWorkFlow = $vtWorkFlow->newWorkFlow("Invoice");
$invWorkFlow->test = '[{"fieldname":"subject","operation":"does not contain","value":"`!`"}]';
$invWorkFlow->description = "UpdateInventoryProducts On Every Save";
$vtWorkFlow->save($invWorkFlow);
$tm = new VTTaskManager($adb);
$task = $tm->createTask('VTEntityMethodTask', $invWorkFlow->id);
$task->active = true;
$task->methodName = "UpdateInventory";
$tm->saveTask($task);
// Creating Workflow for Accounts when Notifyowner is true
$vtaWorkFlow = new VTWorkflowManager($adb);
$accWorkFlow = $vtaWorkFlow->newWorkFlow("Accounts");
$accWorkFlow->test = '[{"fieldname":"notify_owner","operation":"is","value":"true:boolean"}]';
$accWorkFlow->description = "Send Email to user when Notifyowner is True";
$accWorkFlow->executionCondition = 2;
$vtaWorkFlow->save($accWorkFlow);
$id1 = $accWorkFlow->id;
$tm = new VTTaskManager($adb);
$task = $tm->createTask('VTEmailTask', $accWorkFlow->id);
$task->active = true;
$task->methodName = "NotifyOwner";
$task->recepient = "\$(assigned_user_id : (Users) email1)";
$task->subject = "Regarding Account Creation";
// JFV - add Japanese localization to email notification
$task->subject = "顧客企業が作成されました / " . $task->subject;
// JFV END
$task->content = "An Account has been assigned to you on vtigerCRM<br>Details of account are :<br><br>" . "AccountId:" . '<b>$account_no</b><br>' . "AccountName:" . '<b>$accountname</b><br>' . "Rating:" . '<b>$rating</b><br>' . "Industry:" . '<b>$industry</b><br>' . "AccountType:" . '<b>$accounttype</b><br>' . "Description:" . '<b>$description</b><br><br><br>' . "Thank You<br>Admin";
// JFV - add Japanese localization to email notification
$task->content = "vtigerCRM にて顧客企業があなたに割り当てられました。<br>顧客企業の詳細は次のとおりです:<br><br>" . "顧客企業 No:" . '<b>$account_no</b><br>' . "顧客企業名:" . '<b>$accountname</b><br>' . "各付け:" . '<b>$rating</b><br>' . "業界:" . '<b>$industry</b><br>' . "タイプ:" . '<b>$accounttype</b><br>' . "詳細:" . '<b>$description</b><br><br><br>' . "宜しくお願いします<br>管理者" . "<br><br>---------------<br>" . $task->content;
// JFV END
$task->summary = "An account has been created ";
$tm->saveTask($task);
$adb->pquery("update com_vtiger_workflows set defaultworkflow=? where workflow_id=?", array(1, $id1));
// Creating Workflow for Contacts when Notifyowner is true
$vtcWorkFlow = new VTWorkflowManager($adb);
$conWorkFlow = $vtcWorkFlow->newWorkFlow("Contacts");
$conWorkFlow->summary = "A contact has been created ";
$conWorkFlow->executionCondition = 2;
$conWorkFlow->test = '[{"fieldname":"notify_owner","operation":"is","value":"true:boolean"}]';
$conWorkFlow->description = "Send Email to user when Notifyowner is True";
$vtcWorkFlow->save($conWorkFlow);
$id1 = $conWorkFlow->id;
$tm = new VTTaskManager($adb);
$task = $tm->createTask('VTEmailTask', $conWorkFlow->id);
$task->active = true;
$task->methodName = "NotifyOwner";
$task->recepient = "\$(assigned_user_id : (Users) email1)";
$task->subject = "Regarding Contact Creation";
// JFV - add Japanese localization to email notification
$task->subject = "顧客担当者が作成されました / " . $task->subject;
// JFV END
$task->content = "An Contact has been assigned to you on vtigerCRM<br>Details of Contact are :<br><br>" . "Contact Id:" . '<b>$contact_no</b><br>' . "LastName:" . '<b>$lastname</b><br>' . "FirstName:" . '<b>$firstname</b><br>' . "Lead Source:" . '<b>$leadsource</b><br>' . "Department:" . '<b>$department</b><br>' . "Description:" . '<b>$description</b><br><br><br>' . "Thank You<br>Admin";
// JFV - add Japanese localization to email notification
$task->content = "vtigerCRM にて顧客担当者があなたに割り当てられました。<br>詳細は次のとおりです:<br><br>" . "顧客担当者 ID:" . '<b>$contact_no</b><br>' . "姓:" . '<b>$lastname</b><br>' . "名:" . '<b>$firstname</b><br>' . "紹介元:" . '<b>$leadsource</b><br>' . "部門:" . '<b>$department</b><br>' . "詳細:" . '<b>$description</b><br><br><br>' . "宜しくお願いします<br>管理者" . "<br><br>---------------<br>" . $task->content;
// JFV END
$task->summary = "An contact has been created ";
$tm->saveTask($task);
$adb->pquery("update com_vtiger_workflows set defaultworkflow=? where workflow_id=?", array(1, $id1));
// Creating Workflow for Contacts when PortalUser is true
$vtcWorkFlow = new VTWorkflowManager($adb);
$conpuWorkFlow = $vtcWorkFlow->newWorkFlow("Contacts");
$conpuWorkFlow->test = '[{"fieldname":"portal","operation":"is","value":"true:boolean"}]';
$conpuWorkFlow->description = "Send Email to user when Portal User is True";
$conpuWorkFlow->executionCondition = 2;
$vtcWorkFlow->save($conpuWorkFlow);
$id1 = $conpuWorkFlow->id;
$tm = new VTTaskManager($adb);
$task = $tm->createTask('VTEmailTask', $conpuWorkFlow->id);
$task->active = true;
$task->methodName = "NotifyOwner";
$task->recepient = "\$(assigned_user_id : (Users) email1)";
$task->subject = "Regarding Contact Assignment";
// JFV - add Japanese localization to email notification
$task->subject = "顧客担当者が割り当てられました / " . $task->subject;
// JFV END
$task->content = "An Contact has been assigned to you on vtigerCRM<br>Details of Contact are :<br><br>" . "Contact Id:" . '<b>$contact_no</b><br>' . "LastName:" . '<b>$lastname</b><br>' . "FirstName:" . '<b>$firstname</b><br>' . "Lead Source:" . '<b>$leadsource</b><br>' . "Department:" . '<b>$department</b><br>' . "Description:" . '<b>$description</b><br><br><br>' . "And <b>CustomerPortal Login Details</b> is sent to the " . "EmailID :-" . '$email<br>' . "<br>Thank You<br>Admin";
// JFV - add Japanese localization to email notification
$task->content = "vtigerCRM にて顧客担当者があなたに割り当てられました。<br>詳細は次のとおりです<br><br>" . "顧客担当者 ID:" . '<b>$contact_no</b><br>' . "姓:" . '<b>$lastname</b><br>' . "名:" . '<b>$firstname</b><br>' . "紹介元:" . '<b>$leadsource</b><br>' . "部門:" . '<b>$department</b><br>' . "詳細:" . '<b>$description</b><br><br><br>' . "また、<b>顧客ポータルのログインの詳細は</b>、次に送信しました:" . "電子メール :-" . '$email<br>' . "<br>宜しくお願いします<br>管理者" . "<br><br>---------------<br>" . $task->content;
// JFV END
$task->summary = "An contact has been created ";
$tm->saveTask($task);
$adb->pquery("update com_vtiger_workflows set defaultworkflow=? where workflow_id=?", array(1, $id1));
// Creating Workflow for Potentials
$vtcWorkFlow = new VTWorkflowManager($adb);
$potentialWorkFlow = $vtcWorkFlow->newWorkFlow("Potentials");
$potentialWorkFlow->description = "Send Email to users on Potential creation";
$potentialWorkFlow->executionCondition = 1;
$vtcWorkFlow->save($potentialWorkFlow);
$id1 = $potentialWorkFlow->id;
$tm = new VTTaskManager($adb);
$task = $tm->createTask('VTEmailTask', $potentialWorkFlow->id);
$task->active = true;
$task->recepient = "\$(assigned_user_id : (Users) email1)";
//.........这里部分代码省略.........
示例9: addWorkflow
private function addWorkflow($moduleName)
{
vimport('~~modules/com_vtiger_workflow/include.inc');
vimport('~~modules/com_vtiger_workflow/tasks/VTEntityMethodTask.inc');
vimport('~~modules/com_vtiger_workflow/VTEntityMethodManager.inc');
$db = PearDatabase::getInstance();
$functionName = 'UpdateBalance';
$emm = new VTEntityMethodManager($db);
$emm->addEntityMethod($moduleName, $functionName, "modules/PaymentsIn/workflow/UpdateBalance.php", $functionName);
$workflowManager = new VTWorkflowManager($db);
$taskManager = new VTTaskManager($db);
$newWorkflow = $workflowManager->newWorkFlow($moduleName);
$newWorkflow->test = '[]';
$newWorkflow->defaultworkflow = 0;
$newWorkflow->description = "{$moduleName} - UpdateBalance";
$newWorkflow->executionCondition = 3;
$workflowManager->save($newWorkflow);
$task = $taskManager->createTask('VTEntityMethodTask', $newWorkflow->id);
$task->active = true;
$task->summary = 'UpdateBalance';
$task->methodName = $functionName;
$taskManager->saveTask($task);
}
示例10: populateDefaultWorkflows
function populateDefaultWorkflows($adb)
{
require_once "modules/com_vtiger_workflow/include.inc";
require_once "modules/com_vtiger_workflow/tasks/VTEntityMethodTask.inc";
require_once "modules/com_vtiger_workflow/VTEntityMethodManager.inc";
// Creating Workflow for Updating Inventory Stock for Invoice
$vtWorkFlow = new VTWorkflowManager($adb);
$invWorkFlow = $vtWorkFlow->newWorkFlow("Invoice");
$invWorkFlow->test = '[{"fieldname":"subject","operation":"does not contain","value":"`!`"}]';
$invWorkFlow->description = "UpdateInventoryProducts On Every Save";
$vtWorkFlow->save($invWorkFlow);
$tm = new VTTaskManager($adb);
$task = $tm->createTask('VTEntityMethodTask', $invWorkFlow->id);
$task->active = true;
$task->methodName = "UpdateInventory";
$tm->saveTask($task);
}
示例11: populateDefaultWorkflows
/**
* Function adds default system workflows
* @param <PearDatabase> $adb
*/
static function populateDefaultWorkflows($adb)
{
vimport("~~modules/com_vtiger_workflow/include.inc");
vimport("~~modules/com_vtiger_workflow/tasks/VTEntityMethodTask.inc");
vimport("~~modules/com_vtiger_workflow/VTEntityMethodManager.inc");
vimport("~~modules/com_vtiger_workflow/VTTaskManager.inc");
// register the workflow tasks
$taskTypes = array();
$defaultModules = array('include' => array(), 'exclude' => array());
$createToDoModules = array('include' => array("Leads", "Accounts", "Potentials", "Contacts", "HelpDesk", "Campaigns", "Quotes", "PurchaseOrder", "SalesOrder", "Invoice"), 'exclude' => array("Calendar", "FAQ", "Events"));
$createEventModules = array('include' => array("Leads", "Accounts", "Potentials", "Contacts", "HelpDesk", "Campaigns"), 'exclude' => array("Calendar", "FAQ", "Events"));
$taskTypes[] = array("name" => "VTEmailTask", "label" => "Send Mail", "classname" => "VTEmailTask", "classpath" => "modules/com_vtiger_workflow/tasks/VTEmailTask.inc", "templatepath" => "com_vtiger_workflow/taskforms/VTEmailTask.tpl", "modules" => $defaultModules, "sourcemodule" => '');
$taskTypes[] = array("name" => "VTEntityMethodTask", "label" => "Invoke Custom Function", "classname" => "VTEntityMethodTask", "classpath" => "modules/com_vtiger_workflow/tasks/VTEntityMethodTask.inc", "templatepath" => "com_vtiger_workflow/taskforms/VTEntityMethodTask.tpl", "modules" => $defaultModules, "sourcemodule" => '');
$taskTypes[] = array("name" => "VTCreateTodoTask", "label" => "Create Todo", "classname" => "VTCreateTodoTask", "classpath" => "modules/com_vtiger_workflow/tasks/VTCreateTodoTask.inc", "templatepath" => "com_vtiger_workflow/taskforms/VTCreateTodoTask.tpl", "modules" => $createToDoModules, "sourcemodule" => '');
$taskTypes[] = array("name" => "VTCreateEventTask", "label" => "Create Event", "classname" => "VTCreateEventTask", "classpath" => "modules/com_vtiger_workflow/tasks/VTCreateEventTask.inc", "templatepath" => "com_vtiger_workflow/taskforms/VTCreateEventTask.tpl", "modules" => $createEventModules, "sourcemodule" => '');
$taskTypes[] = array("name" => "VTUpdateFieldsTask", "label" => "Update Fields", "classname" => "VTUpdateFieldsTask", "classpath" => "modules/com_vtiger_workflow/tasks/VTUpdateFieldsTask.inc", "templatepath" => "com_vtiger_workflow/taskforms/VTUpdateFieldsTask.tpl", "modules" => $defaultModules, "sourcemodule" => '');
$taskTypes[] = array("name" => "VTCreateEntityTask", "label" => "Create Entity", "classname" => "VTCreateEntityTask", "classpath" => "modules/com_vtiger_workflow/tasks/VTCreateEntityTask.inc", "templatepath" => "com_vtiger_workflow/taskforms/VTCreateEntityTask.tpl", "modules" => $defaultModules, "sourcemodule" => '');
$taskTypes[] = array("name" => "VTSMSTask", "label" => "SMS Task", "classname" => "VTSMSTask", "classpath" => "modules/com_vtiger_workflow/tasks/VTSMSTask.inc", "templatepath" => "com_vtiger_workflow/taskforms/VTSMSTask.tpl", "modules" => $defaultModules, "sourcemodule" => 'SMSNotifier');
foreach ($taskTypes as $taskType) {
VTTaskType::registerTaskType($taskType);
}
// Creating Workflow for Updating Inventory Stock for Invoice
$vtWorkFlow = new VTWorkflowManager($adb);
$invWorkFlow = $vtWorkFlow->newWorkFlow("Invoice");
$invWorkFlow->test = '[{"fieldname":"subject","operation":"does not contain","value":"`!`"}]';
$invWorkFlow->description = "UpdateInventoryProducts On Every Save";
$invWorkFlow->defaultworkflow = 1;
$vtWorkFlow->save($invWorkFlow);
$tm = new VTTaskManager($adb);
$task = $tm->createTask('VTEntityMethodTask', $invWorkFlow->id);
$task->active = true;
$task->methodName = "UpdateInventory";
$tm->saveTask($task);
// Creating Workflow for Accounts when Notifyowner is true
$vtaWorkFlow = new VTWorkflowManager($adb);
$accWorkFlow = $vtaWorkFlow->newWorkFlow("Accounts");
$accWorkFlow->test = '[{"fieldname":"notify_owner","operation":"is","value":"true:boolean"}]';
// SalesPlatform.ru begin
$accWorkFlow->description = "Отправить Email пользователю, если указано Уведомлять ответственного";
//$accWorkFlow->description = "Send Email to user when Notifyowner is True";
// SalesPlatform.ru end
$accWorkFlow->executionCondition = 2;
$accWorkFlow->defaultworkflow = 1;
$vtaWorkFlow->save($accWorkFlow);
$id1 = $accWorkFlow->id;
$tm = new VTTaskManager($adb);
$task = $tm->createTask('VTEmailTask', $accWorkFlow->id);
$task->active = true;
$task->methodName = "NotifyOwner";
$task->recepient = "\$(assigned_user_id : (Users) email1)";
// SalesPlatform.ru begin
$task->subject = "Уведомление о назначении Контрагента";
$task->content = "В системе vtigerCRM Вам был назначен контрагент<br>Информация о контрагенте :<br><br>" . "Контрагент №:" . '<b>$account_no</b><br>' . "Контрагент:" . '<b>$accountname</b><br>' . "Рейтинг:" . '<b>$rating</b><br>' . "Отрасль:" . '<b>$industry</b><br>' . "Тип:" . '<b>$accounttype</b><br>' . "Описание:" . '<b>$description</b><br><br><br>' . "Спасибо,<br>Admin";
$task->summary = "Создан Контрагент ";
//$task->subject = "Regarding Account Creation";
//$task->content = "An Account has been assigned to you on vtigerCRM<br>Details of account are :<br><br>".
// "AccountId:".'<b>$account_no</b><br>'."AccountName:".'<b>$accountname</b><br>'."Rating:".'<b>$rating</b><br>'.
// "Industry:".'<b>$industry</b><br>'."AccountType:".'<b>$accounttype</b><br>'.
// "Description:".'<b>$description</b><br><br><br>'."Thank You<br>Admin";
//$task->summary="An account has been created ";
// SalesPlatform.ru end
$tm->saveTask($task);
$adb->pquery("update com_vtiger_workflows set defaultworkflow=? where workflow_id=?", array(1, $id1));
// Creating Workflow for Contacts when Notifyowner is true
$vtcWorkFlow = new VTWorkflowManager($adb);
$conWorkFlow = $vtcWorkFlow->newWorkFlow("Contacts");
// SalesPlatform.ru begin
$conWorkFlow->summary = "Создан Контакт ";
//$conWorkFlow->summary="A contact has been created ";
// SalesPlatform.ru end
$conWorkFlow->executionCondition = 2;
$conWorkFlow->test = '[{"fieldname":"notify_owner","operation":"is","value":"true:boolean"}]';
// SalesPlatform.ru begin
$conWorkFlow->description = "Отправить Email пользователю, если указано Уведомлять ответственного";
//$conWorkFlow->description = "Send Email to user when Notifyowner is True";
// SalesPlatform.ru end
$conWorkFlow->defaultworkflow = 1;
$vtcWorkFlow->save($conWorkFlow);
$id1 = $conWorkFlow->id;
$tm = new VTTaskManager($adb);
$task = $tm->createTask('VTEmailTask', $conWorkFlow->id);
$task->active = true;
$task->methodName = "NotifyOwner";
$task->recepient = "\$(assigned_user_id : (Users) email1)";
// SalesPlatform.ru begin
$task->subject = "Уведомление о назначении Контакта";
$task->content = "В системе vtigerCRM Вам был назначен контакт<br>Информация о контакте :<br><br>" . "Контакт №:" . '<b>$contact_no</b><br>' . "Фамилия:" . '<b>$lastname</b><br>' . "Имя:" . '<b>$firstname</b><br>' . "Источник:" . '<b>$leadsource</b><br>' . "Отдел:" . '<b>$department</b><br>' . "Описание:" . '<b>$description</b><br><br><br>' . "Спасибо,<br>Admin";
$task->summary = "Создан Контакт ";
//$task->subject = "Regarding Contact Creation";
//$task->content = "An Contact has been assigned to you on vtigerCRM<br>Details of Contact are :<br><br>".
// "Contact Id:".'<b>$contact_no</b><br>'."LastName:".'<b>$lastname</b><br>'."FirstName:".'<b>$firstname</b><br>'.
// "Lead Source:".'<b>$leadsource</b><br>'.
// "Department:".'<b>$department</b><br>'.
// "Description:".'<b>$description</b><br><br><br>'."Thank You<br>Admin";
//$task->summary="An contact has been created ";
// SalesPlatform.ru end
//.........这里部分代码省略.........
示例12: VARCHAR
Migration_Index_View::ExecuteQuery("ALTER TABLE vtiger_products CHANGE COLUMN `1c_id` `one_s_id` VARCHAR(255) NULL DEFAULT NULL", array());
Migration_Index_View::ExecuteQuery("ALTER TABLE vtiger_salesorder CHANGE COLUMN `1c_id` `one_s_id` VARCHAR(255) NULL DEFAULT NULL", array());
Migration_Index_View::ExecuteQuery("ALTER TABLE vtiger_service CHANGE COLUMN `1c_id` `one_s_id` VARCHAR(255) NULL DEFAULT NULL", array());
Migration_Index_View::ExecuteQuery("UPDATE vtiger_field SET columnname='one_s_id', fieldname='one_s_id', fieldlabel='1C ID' WHERE " . "tablename IN('vtiger_account','vtiger_pricebook','vtiger_products','vtiger_salesorder','vtiger_service') AND fieldname='1c_id'", array());
//End
/* Duplicates workflows for Calendar and Events */
/* Delete broken worflows and tasks */
$brokenWorkflowsResult = $adb->pquery("SELECT workflow_id FROM com_vtiger_workflows WHERE (module_name=? AND summary IN(?,?)) OR (module_name=? AND summary IN(?,?))", array('Calendar', 'Автоматические обработчики для задач Календаря при выбранной опции Отправить уведомление', 'Workflow for Calendar Todos when Send Notification is True', 'Events', 'Автоматические обработчики для событий при выбранной опции Отправить уведомление', 'Workflow for Events when Send Notification is True'));
while ($brokenWorkflowRow = $adb->fetchByAssoc($brokenWorkflowsResult)) {
$adb->pquery('DELETE FROM com_vtiger_workflows WHERE workflow_id=?', array($brokenWorkflowRow['workflow_id']));
$adb->pquery('DELETE FROM com_vtiger_workflowtasks WHERE workflow_id=?', array($brokenWorkflowRow['workflow_id']));
}
/* Recreate normal */
$workflowManager = new VTWorkflowManager($adb);
$taskManager = new VTTaskManager($adb);
$eventsWorkflow = $workflowManager->newWorkFlow("Events");
$eventsWorkflow->test = '[{"fieldname":"sendnotification","operation":"is","value":"true:boolean"}]';
$eventsWorkflow->description = "Автоматические обработчики для событий при выбранной опции Отправить уведомление";
$eventsWorkflow->executionCondition = VTWorkflowManager::$ON_EVERY_SAVE;
$eventsWorkflow->defaultworkflow = 1;
$workflowManager->save($eventsWorkflow);
$task = $taskManager->createTask('VTEmailTask', $eventsWorkflow->id);
$task->active = true;
$task->summary = 'Отправляет письмо с уведомлением приглашенным пользователям';
$task->recepient = "\$(assigned_user_id : (Users) email1)";
$task->subject = "Событие : \$subject";
$task->content = '$(assigned_user_id : (Users) first_name) $(assigned_user_id : (Users) last_name) ,<br/>' . '<b>Детали события:</b><br/>' . 'Название события : $subject<br/>' . 'Дата и Время Начала : $date_start $time_start ( $(general : (__VtigerMeta__) dbtimezone) ) <br/>' . 'Дата и Время Окончания : $due_date $time_end ( $(general : (__VtigerMeta__) dbtimezone) ) <br/>' . 'Статус : $eventstatus <br/>' . 'Приоритет : $taskpriority <br/>' . 'Относится к : $(parent_id : (Leads) lastname) $(parent_id : (Leads) firstname) $(parent_id : (Accounts) accountname) ' . '$(parent_id : (Potentials) potentialname) $(parent_id : (HelpDesk) ticket_title) <br/>' . 'Контакты : $(contact_id : (Contacts) lastname) $(contact_id : (Contacts) firstname) <br/>' . 'Место проведения : $location <br/>' . 'Описание : $description';
$taskManager->saveTask($task);
/* Calendar workflow when Send Notification is checked */
$calendarWorkflow = $workflowManager->newWorkFlow("Calendar");
$calendarWorkflow->test = '[{"fieldname":"sendnotification","operation":"is","value":"true:boolean"}]';
示例13: addWorkflow
public function addWorkflow()
{
global $log, $adb;
$workflow = array();
$result = $adb->query("SELECT * FROM `com_vtiger_workflows` WHERE summary = 'Update Closed Time';");
if ($adb->num_rows($result) == 0) {
$workflow[] = array(54, 'HelpDesk', 'Update Closed Time', '[{"fieldname":"ticketstatus","operation":"is","value":"Rejected","valuetype":"rawtext","joincondition":"or","groupjoin":null,"groupid":"1"},{"fieldname":"ticketstatus","operation":"is","value":"Closed","valuetype":"rawtext","joincondition":"","groupjoin":null,"groupid":"1"}]', 2, NULL, 'basic', 6, NULL, NULL, NULL, NULL, NULL, NULL);
}
$result = $adb->query("SELECT * FROM `com_vtiger_workflows` WHERE summary = 'Generate mail address book';");
if ($adb->num_rows($result) == 0) {
$workflow[] = array(55, 'Contacts', 'Generate mail address book', '[]', 3, NULL, 'basic', 6, NULL, NULL, NULL, NULL, NULL, NULL);
}
$workflowTask = array();
$workflowTask[] = array(121, 54, 'Update Closed Time', 'O:18:"VTUpdateClosedTime":6:{s:18:"executeImmediately";b:1;s:10:"workflowId";s:2:"54";s:7:"summary";s:18:"Update Closed Time";s:6:"active";b:1;s:7:"trigger";N;s:2:"id";i:121;}');
$workflowTask[] = array(123, 55, 'Generate mail address book', 'O:17:"VTAddressBookTask":7:{s:18:"executeImmediately";b:0;s:10:"workflowId";s:2:"55";s:7:"summary";s:26:"Generate mail address book";s:6:"active";b:1;s:7:"trigger";N;s:4:"test";s:0:"";s:2:"id";i:123;}');
require_once 'modules/com_vtiger_workflow/include.inc';
require_once 'modules/com_vtiger_workflow/tasks/VTEntityMethodTask.inc';
require_once 'modules/com_vtiger_workflow/VTEntityMethodManager.inc';
$workflowManager = new VTWorkflowManager($adb);
$taskManager = new VTTaskManager($adb);
foreach ($workflow as $record) {
$newWorkflow = $workflowManager->newWorkFlow($record[1]);
$newWorkflow->description = $record[2];
$newWorkflow->test = $record[3];
$newWorkflow->executionCondition = $record[4];
$newWorkflow->defaultworkflow = $record[5];
$newWorkflow->type = $record[6];
$newWorkflow->filtersavedinnew = $record[7];
$workflowManager->save($newWorkflow);
foreach ($workflowTask as $indexTask) {
if ($indexTask[1] == $record[0]) {
$task = $taskManager->unserializeTask($indexTask[3]);
$task->id = '';
$task->workflowId = $newWorkflow->id;
$taskManager->saveTask($task);
}
}
}
}
示例14: applyChange
function applyChange()
{
global $adb;
if ($this->hasError()) {
$this->sendError();
}
if ($this->isApplied()) {
$this->sendMsg('Changeset ' . get_class($this) . ' already applied!');
} else {
global $adb;
$modname = 'CobroPago';
$module = Vtiger_Module::getInstance($modname);
$block = Vtiger_Block::getInstance('LBL_COBROPAGO_INFORMATION', $module);
$fld_ref = Vtiger_Field::getInstance('reference', $module);
$this->ExecuteQuery("UPDATE vtiger_field SET typeofdata='V~O' WHERE fieldid={$fld_ref->id}");
$this->ExecuteQuery("UPDATE vtiger_field SET sequence=sequence+1 WHERE block={$block->id} AND sequence>1");
$field = Vtiger_Field::getInstance('cyp_no', $module);
if (!$field) {
$field1 = new Vtiger_Field();
$field1->name = 'cyp_no';
$field1->label = 'CyP No';
$field1->column = 'cyp_no';
$field1->columntype = 'VARCHAR(50)';
$field1->sequence = 2;
$field1->uitype = 4;
$field1->typeofdata = 'V~M';
$field1->displaytype = 1;
$field1->presence = 0;
$block->addField($field1);
}
$fld_due = Vtiger_Field::getInstance('duedate', $module);
$qry = "SELECT sequence FROM vtiger_field WHERE fieldid={$fld_due->id}";
$res = $adb->query($qry);
$seq = $adb->query_result($res, 0, 'sequence');
$this->ExecuteQuery("UPDATE vtiger_field SET sequence=sequence+1 WHERE block={$block->id} AND sequence>{$seq}");
$field = Vtiger_Field::getInstance('paymentdate', $module);
if (!$field) {
$field1 = new Vtiger_Field();
$field1->name = 'paymentdate';
$field1->label = 'PaymentDate';
$field1->column = 'paymentdate';
$field1->columntype = 'DATE';
$field1->sequence = $seq + 1;
$field1->uitype = 5;
$field1->typeofdata = 'D~O';
$field1->displaytype = 1;
$field1->presence = 0;
$block->addField($field1);
}
$res_ui4 = $adb->pquery("SELECT * FROM vtiger_field WHERE tabid=? AND uitype=? AND fieldname<>?", array($module->id, '4', 'cyp_no'));
if ($adb->num_rows($res_ui4) != 0) {
$fld_ui4_id = $adb->query_result($res_ui4, 0, 'fieldid');
$fld_ui4_name = $adb->query_result($res_ui4, 0, 'fieldname');
$fld_ui4_colname = $adb->query_result($res_ui4, 0, 'columnname');
$this->ExecuteQuery("UPDATE vtiger_field SET uitype=? WHERE fieldid=?", array('1', $fld_ui4_id));
}
$res = $adb->query("SELECT * FROM vtiger_modentity_num WHERE semodule='CobroPago'");
if ($adb->num_rows($res) == 0) {
$focus = CRMEntity::getInstance($modname);
$focus->setModuleSeqNumber('configure', $modname, 'PAY-', '0000001');
$focus->updateMissingSeqNumber($modname);
} elseif (!is_null($fld_ui4_colname)) {
$this->ExecuteQuery("UPDATE vtiger_cobropago SET cyp_no={$fld_ui4_colname}");
//Workflow, copy CyP No to Reference
$vtWorkFlow = new VTWorkflowManager($adb);
$invWorkFlow = $vtWorkFlow->newWorkFlow('CobroPago');
$invWorkFlow->description = "Number to Reference";
$invWorkFlow->executionCondition = 3;
$invWorkFlow->defaultworkflow = 1;
$vtWorkFlow->save($invWorkFlow);
$tm = new VTTaskManager($adb);
$task = $tm->createTask('VTUpdateFieldsTask', $invWorkFlow->id);
$task->active = true;
$task->summary = "Number to Reference";
$task->field_value_mapping = '[{"fieldname":"' . $fld_ui4_name . '","valuetype":"fieldname","value":"cyp_no "}]';
$tm->saveTask($task);
}
$this->ExecuteQuery("UPDATE vtiger_entityname SET fieldname=CONCAT(fieldname,',cyp_no') WHERE tabid={$module->id}");
$this->ExecuteQuery("UPDATE vtiger_cobropago SET paymentdate=duedate");
$this->sendMsg('Changeset ' . get_class($this) . ' applied!');
$this->markApplied();
}
$this->finishExecution();
}
示例15: array
/**
* Invoked when special actions are performed on the module.
* @param String Module name
* @param String Event Type (module.postinstall, module.disabled, module.enabled, module.preuninstall)
*/
function vtlib_handler($modulename, $event_type)
{
global $adb;
require_once 'include/events/include.inc';
include_once 'vtlib/Vtiger/Module.php';
if ($event_type == 'module.postinstall') {
// TODO Handle post installation actions
$modAccounts = Vtiger_Module::getInstance('Accounts');
$modContacts = Vtiger_Module::getInstance('Contacts');
$modInvD = Vtiger_Module::getInstance('InventoryDetails');
$modIss = Vtiger_Module::getInstance('Issuecards');
if ($modAccounts) {
$modAccounts->setRelatedList($modIss, 'Issuecards', array('ADD'), 'get_dependents_list');
}
if ($modContacts) {
$modContacts->setRelatedList($modIss, 'Issuecards', array('ADD'), 'get_dependents_list');
}
if ($modInvD) {
$field = Vtiger_Field::getInstance('related_to', $modInvD);
$field->setRelatedModules(array('Issuecards'));
$modIss->setRelatedList($modInvD, 'InventoryDetails', array(''), 'get_dependents_list');
}
//Add Gendoc to Issuecards
if (vtlib_isModuleActive("evvtgendoc")) {
$modIss->addLink('LISTVIEWBASIC', 'Generate Document', "javascript:showgendoctemplates('\$MODULE\$');");
$modIss->addLink('DETAILVIEWWIDGET', 'Generate Document', "module=evvtgendoc&action=evvtgendocAjax&file=DetailViewWidget&formodule=\$MODULE\$&forrecord=\$RECORD\$", 'modules/evvtgendoc/evvtgendoc.gif');
}
$emm = new VTEntityMethodManager($adb);
// Adding EntityMethod for Updating Products data after updating PurchaseOrder
$emm->addEntityMethod("Issuecards", "UpdateInventory", "include/InventoryHandler.php", "handleInventoryProductRel");
// Creating Workflow for Updating Inventory Stock on Issuecards
$vtWorkFlow = new VTWorkflowManager($adb);
$invWorkFlow = $vtWorkFlow->newWorkFlow("Issuecards");
$invWorkFlow->test = '[{"fieldname":"pslip_no","operation":"does not contain","value":"`!`"}]';
$invWorkFlow->description = "UpdateInventoryProducts On Every Save";
$invWorkFlow->defaultworkflow = 1;
$vtWorkFlow->save($invWorkFlow);
$tm = new VTTaskManager($adb);
$task = $tm->createTask('VTEntityMethodTask', $invWorkFlow->id);
$task->active = true;
$task->methodName = "UpdateInventory";
$task->summary = "Update product stock";
$tm->saveTask($task);
$this->setModuleSeqNumber('configure', $modulename, 'pslip-', '0000001');
} else {
if ($event_type == 'module.disabled') {
// TODO Handle actions when this module is disabled.
} else {
if ($event_type == 'module.enabled') {
// TODO Handle actions when this module is enabled.
} else {
if ($event_type == 'module.preuninstall') {
// TODO Handle actions when this module is about to be deleted.
} else {
if ($event_type == 'module.preupdate') {
// TODO Handle actions before this module is updated.
} else {
if ($event_type == 'module.postupdate') {
// TODO Handle actions after this module is updated.
$modInvD = Vtiger_Module::getInstance('InventoryDetails');
$modIss = Vtiger_Module::getInstance('Issuecards');
//Add subject field to can import and export
$block = Vtiger_Block::getInstance('LBL_ISSUECARDS_INFO', $modIss);
$field = Vtiger_Field::getInstance('subject', $modIss);
if (!$field) {
$field1 = new Vtiger_Field();
$field1->name = 'subject';
$field1->label = 'subject';
$field1->table = 'vtiger_issuecards';
$field1->column = 'subject';
$field1->columntype = 'VARCHAR(100)';
$field1->sequence = 3;
$field1->uitype = 1;
$field1->typeofdata = 'V~O';
$field1->displaytype = 1;
$field1->presence = 0;
$block->addField($field1);
}
if ($modInvD) {
$field = Vtiger_Field::getInstance('related_to', $modInvD);
$field->setRelatedModules(array('Issuecards'));
$modIss->setRelatedList($modInvD, 'InventoryDetails', array(''), 'get_dependents_list');
}
//Add Gendoc to Issuecards
if (vtlib_isModuleActive("evvtgendoc")) {
$modIss->addLink('LISTVIEWBASIC', 'Generate Document', "javascript:showgendoctemplates('\$MODULE\$');");
$modIss->addLink('DETAILVIEWWIDGET', 'Generate Document', "module=evvtgendoc&action=evvtgendocAjax&file=DetailViewWidget&formodule=\$MODULE\$&forrecord=\$RECORD\$", 'modules/evvtgendoc/evvtgendoc.gif');
}
$emm = new VTEntityMethodManager($adb);
// Adding EntityMethod for Updating Products data after updating Issuecards
$emm->addEntityMethod("Issuecards", "UpdateInventory", "include/InventoryHandler.php", "handleInventoryProductRel");
// Creating Workflow for Updating Inventory Stock on Issuecards
$vtWorkFlow = new VTWorkflowManager($adb);
$invWorkFlow = $vtWorkFlow->newWorkFlow("Issuecards");
$invWorkFlow->test = '[{"fieldname":"pslip_no","operation":"does not contain","value":"`!`"}]';
//.........这里部分代码省略.........