2021-04-28 20:10:26 +02:00

83 lines
3.3 KiB
PHP

<?php
/*************************************
* SPDX-FileCopyrightText: 2009-2020 Vtenext S.r.l. <info@vtenext.com>
* SPDX-License-Identifier: AGPL-3.0-only
************************************/
/* crmv@92272 */
class PMActionDelete extends SDKExtendableClass {
function edit(&$smarty,$id,$elementid,$retrieve,$action_type,$action_id='') {
$PMUtils = ProcessMakerUtils::getInstance();
$record_involved = '';
if ($action_id != '') {
$vte_metadata = Zend_Json::decode($retrieve['vte_metadata']);
if (!empty($vte_metadata[$elementid])) {
$metadata_action = $vte_metadata[$elementid]['actions'][$action_id];
$record_involved = $metadata_action['record_involved'];
$record_to_load = $metadata_action['record_to_load']; // crmv@200816
}
$smarty->assign('METADATA', $metadata_action);
}
$records_pick = $PMUtils->getRecordsInvolvedOptions($id, $record_involved, false, null, null, true); // crmv@192142
$smarty->assign("RECORDS_INVOLVED", $records_pick);
// crmv@200816
$records_pick = $PMUtils->getRecordsInvolvedOptions($id, $record_to_load, false, null, null, true);
$smarty->assign("RECORD_TO_LOAD", $records_pick);
// crmv@200816e
}
function execute($engine,$actionid) {
$action = $engine->vte_metadata['actions'][$actionid];
// crmv@192142
list($metaid,$module,$reference,$meta_processid,$relatedModule) = explode(':',$action['record_involved']);
$record = $engine->getCrmid($metaid,null,$reference,$meta_processid);
$recordModule = getSalesEntityType($record);
if (!empty($relatedModule)) {
if ($relatedModule != $recordModule) {
$engine->log("Action {$action['action_type']}","action $actionid - {$action['action_title']} FAILED record {$action['record_involved']} do not found");
return;
}
$module = $relatedModule;
} elseif (!empty($reference)) {
$module = $recordModule;
}
if (empty($record)) {
$engine->log("Action {$action['action_type']}","action $actionid - {$action['action_title']} FAILED record {$action['record_involved']} do not found");
} elseif ($record !== false) {
// crmv@192142e
$engine->log("Action {$action['action_type']}","action $actionid - {$action['action_title']}");
$focus = CRMEntity::getInstance($module);
$focus->trash($module, $record);
//crmv@112539
$engine->logElement($engine->elementid, array(
'action_type'=>"{$action['action_type']}",
'action_title'=>$action['action_title'],
'metaid'=>$metaid,
'crmid'=>$record,
'module'=>$module,
));
//crmv@112539e
// crmv@200816
list($r2l_metaid,$r2l_module,$r2l_reference,$r2l_meta_processid,$r2l_relatedModule) = explode(':',$action['record_to_load']);
$r2l_record = $engine->getCrmid($r2l_metaid,null,$r2l_reference,$r2l_meta_processid);
if (!empty($r2l_record)) {
$r2l_recordModule = getSalesEntityType($r2l_record);
// for popup reload
VteSession::set('PM_DELETED_RECORD',$r2l_record);
// for redirect to detailview
if (isset($_REQUEST['return_id']) && $_REQUEST['return_id'] == $record) {
$_REQUEST['return_module'] = getSalesEntityType($r2l_record);
$_REQUEST['return_id'] = $r2l_record;
$_REQUEST['return_viewname'] = '';
$_REQUEST['pagenumber'] = '';
$_REQUEST['search_url'] = '';
$_REQUEST['module'] = ''; // this is for empty from_module
}
}
// crmv@200816e
}
}
}