public static function Add($arFields, $bSkipInstanceAdd = false) { global $DB; $e = GetModuleEvents('meeting', 'OnBeforeMeetingItemAdd'); while ($a = $e->Fetch()) { if (false === ExecuteModuleEventEx($a, array(&$arFields))) { return false; } } if (!self::CheckFields('ADD', $arFields)) { return false; } $ID = $DB->Add('b_meeting_item', $arFields, array('DESCRIPTION')); if ($ID > 0) { $arFields['ID'] = $ID; if (isset($arFields['FILES'])) { self::SetFiles($ID, $arFields['FILES']); } $e = GetModuleEvents('meeting', 'OnAfterMeetingItemAdd'); while ($a = $e->Fetch()) { ExecuteModuleEventEx($a, array($arFields)); } if (!$bSkipInstanceAdd && $arFields['MEETING_ID']) { $arFields['ITEM_ID'] = $arFields['ID']; unset($arFields['ID']); CMeetingInstance::Add($arFields); } } return $ID; }
} } } $TASK_ID = $obt->Add($arTaskFields); } if ($TASK_ID > 0) { $arNewAgendaTasks[$key] = $TASK_ID; $arFields['TASK_ID'] = $TASK_ID; } } if ($bNew) { if (!$arFields['ITEM_ID']) { $arFields['ITEM_ID'] = CMeetingItem::Add($arFields, true); $INSTANCE_ID = CMeetingInstance::Add($arFields); } else { $INSTANCE_ID = CMeetingInstance::Add($arFields); } $arNewAgendaMap[$key] = array($INSTANCE_ID, $arFields['ITEM_ID']); } else { if ($arFields['TITLE']) { CMeetingItem::Update($arFields['ITEM_ID'], $arFields); } CMeetingInstance::Update($key, $arFields); } if (isset($arFields['TASK_ID'])) { if (!$arFields['ITEM_ID']) { $arFields['ITEM_ID'] = $arResult['MEETING']['AGENDA'][$key]['ITEM_ID']; } CMeetingItem::AddTask($arFields['ITEM_ID'], $arFields['TASK_ID']); } }