static function getPresets($entity)
{
static $presets = array();
$types = self::getTypes();
if (!array_key_exists($entity, $presets))
{
$presets[$entity] = array();
$uid = \CCrmSecurityHelper::GetCurrentUserID();
if ($uid)
{
if ($uname = \Cuser::getById($uid)->fetch())
{
$uname = \CUser::FormatName(\CSite::GetNameFormat(false), $uname);
}
}
// lead
if ($entity == $types['lead'])
{
$defaultFilter = array(
'SOURCE_ID' => array(),
'STATUS_ID' => array(),
'COMMUNICATION_TYPE' => array(),
'DATE_CREATE' => '',
'ASSIGNED_BY_ID' => ''
);
$presets[$entity]['filter_my_in_work'] = array(
'name' => Loc::getMessage('CRM_KANBAN_HELPER_LPR_MY_WORK'),
'disallow_for_all' => true,
'fields' => array_merge(
$defaultFilter,
array(
'ASSIGNED_BY_ID_name' => $uname,
'ASSIGNED_BY_ID' => $uid,
'STATUS_SEMANTIC_ID' => array(
\Bitrix\Crm\PhaseSemantics::PROCESS
)
)
)
);
$presets[$entity]['filter_in_work'] = array(
'name' => Loc::getMessage('CRM_KANBAN_HELPER_LPR_WORK'),
'default' => true,
'fields' => array_merge(
$defaultFilter,
array(
'STATUS_SEMANTIC_ID' => array(
\Bitrix\Crm\PhaseSemantics::PROCESS
)
)
)
);
$presets[$entity]['filter_closed'] = array(
'name' => Loc::getMessage('CRM_KANBAN_HELPER_LPR_CLOSED'),
'fields' => array_merge(
$defaultFilter,
array(
'STATUS_SEMANTIC_ID' => array(
\Bitrix\Crm\PhaseSemantics::SUCCESS,
\Bitrix\Crm\PhaseSemantics::FAILURE
)
)
)
);
}
// deal
elseif ($entity == $types['deal'])
{
$presets[$entity]['filter_in_work'] = array(
'name' => Loc::getMessage('CRM_KANBAN_HELPER_DPR_WORK'),
'default' => true,
'fields' => array(
'STAGE_SEMANTIC_ID' => array(
\Bitrix\Crm\PhaseSemantics::PROCESS
)
)
);
$presets[$entity]['filter_my'] = array(
'name' => Loc::getMessage('CRM_KANBAN_HELPER_DPR_WORK_MY'),
'disallow_for_all' => true,
'fields' => array(
'ASSIGNED_BY_ID_name' => $uname,
'ASSIGNED_BY_ID' => $uid,
'STAGE_SEMANTIC_ID' => array(
\Bitrix\Crm\PhaseSemantics::PROCESS
)
)
);
$presets[$entity]['filter_closed'] = array(
'name' => Loc::getMessage('CRM_KANBAN_HELPER_DPR_WON'),
'fields' => array(
'STAGE_SEMANTIC_ID' => array(
[\Bitrix\Crm\PhaseSemantics::SUCCESS, \Bitrix\Crm\PhaseSemantics::FAILURE]
)
)
);
}
// quote
elseif ($entity == $types['quote'])
{
$processStatusIDs = array();
foreach (array_keys(\CCrmQuote::getStatuses()) as $statusID)
{
if (\CCrmQuote::getSemanticID($statusID) === \Bitrix\Crm\PhaseSemantics::PROCESS)
{
$processStatusIDs[] = $statusID;
}
}
$presets[$entity]['filter_new'] = array(
'name' => Loc::getMessage('CRM_KANBAN_HELPER_QT_NEW_MSGVER_1'),
'fields' => array(
'STATUS_ID' => array(
'selDRAFT' => 'DRAFT'
)
)
);
$presets[$entity]['filter_my'] = array(
'name' => Loc::getMessage('CRM_KANBAN_HELPER_QT_MY_MSGVER_1'),
'disallow_for_all' => true,
'fields' => array(
'ASSIGNED_BY_ID_name' => $uname,
'ASSIGNED_BY_ID' => $uid
)
);
$presets[$entity]['filter_my_in_work'] = array(
'name' => Loc::getMessage('CRM_KANBAN_HELPER_QT_MY_WORK'),
'disallow_for_all' => true,
'default' => true,
'fields' => array(
'ASSIGNED_BY_ID_name' => $uname,
'ASSIGNED_BY_ID' => $uid,
'STATUS_ID' => $processStatusIDs
)
);
}
// invoice
elseif ($entity == $types['invoice'])
{
$presets[$entity]['filter_inv1_my'] = array(
'name' => Loc::getMessage('CRM_KANBAN_HELPER_INV_MY'),
'disallow_for_all' => true,
'default' => true,
'fields' => array(
'RESPONSIBLE_ID' => $uid,
'RESPONSIBLE_ID_name' => $uname,
'OVERDUE' => '',
'DATE_PAY_BEFORE' => '',
'PRICE' => ''
)
);
$presets[$entity]['filter_inv2_overdue'] = array(
'name' => Loc::getMessage('CRM_KANBAN_HELPER_INV_OVERDUE'),
'disallow_for_all' => true,
'fields' => array(
'RESPONSIBLE_ID' => $uid,
'RESPONSIBLE_ID_name' => $uname,
'OVERDUE' => 'Y',
'DATE_PAY_BEFORE' => '',
'PRICE' => ''
)
);
}
// order
elseif ($entity == $types['order'])
{
$presets[$entity]['filter_in_work'] = [
'name' => Loc::getMessage('CRM_KANBAN_HELPER_ORDER_PRESET_MY_WORK'),
'default' => true,
'fields' => ['STATUS_ID' => Order\OrderStatus::getSemanticProcessStatuses()]
];
$presets[$entity]['filter_my'] = array(
'name' => Loc::getMessage('CRM_KANBAN_HELPER_ORDER_PRESET_MY'),
'fields' => array(
'RESPONSIBLE_ID_name' => $uname,
'RESPONSIBLE_ID' => $uid,
'STATUS_ID' => Order\OrderStatus::getSemanticProcessStatuses()
)
);
$presets[$entity]['filter_won'] = array(
'name' => Loc::getMessage('CRM_KANBAN_HELPER_ORDER_PRESET_WON'),
'fields' => array('STATUS_ID' => array(Order\OrderStatus::getFinalStatus()))
);
}
}
return $presets[$entity];
}