Esempio n. 1
0
 public function Delete($ID)
 {
     /** @global CUserTypeManager $USER_FIELD_MANAGER */
     global $USER_FIELD_MANAGER;
     if (!CModule::IncludeModule('sale')) {
         return false;
     }
     $dealID = 0;
     $dbResult = CCrmInvoice::GetList(array(), array('ID' => $ID, 'CHECK_PERMISSIONS' => 'N'), false, false, array('ID', 'UF_DEAL_ID'));
     $fields = is_object($dbResult) ? $dbResult->Fetch() : null;
     if (is_array($fields)) {
         $dealID = isset($fields['UF_DEAL_ID']) ? $fields['UF_DEAL_ID'] : 0;
     }
     $CSaleOrder = new CSaleOrder();
     $result = $CSaleOrder->Delete($ID);
     if ($result) {
         $USER_FIELD_MANAGER->Delete(self::$sUFEntityID, $ID);
         CCrmProductRow::DeleteSettings('I', $ID);
         self::UnregisterLiveFeedEvent($ID);
         CCrmSonetSubscription::UnRegisterSubscriptionByEntity(CCrmOwnerType::Invoice, $ID);
         if ($dealID > 0) {
             Bitrix\Crm\Statistics\DealInvoiceStatisticEntry::register($dealID);
         }
         CCrmSearch::DeleteSearch('INVOICE', $ID);
     }
     return $result;
 }
Esempio n. 2
0
 public static function RebuildStatistics(array $IDs)
 {
     $dbResult = self::GetListEx(array(), array('@ID' => $IDs, 'CHECK_PERMISSIONS' => 'N'), false, false, array('ID', 'DATE_CREATE', 'DATE_MODIFY', 'STAGE_ID', 'ASSIGNED_BY_ID', 'BEGINDATE', 'CLOSEDATE', 'CURRENCY_ID', 'OPPORTUNITY', 'UF_*'));
     if (!is_object($dbResult)) {
         return;
     }
     while ($fields = $dbResult->Fetch()) {
         $ID = (int) $fields['ID'];
         //--> History
         if (!Bitrix\Crm\History\DealStageHistoryEntry::isRegistered($ID)) {
             $created = isset($fields['DATE_CREATE']) ? $fields['DATE_CREATE'] : '';
             $createdTime = null;
             try {
                 $createdTime = new Bitrix\Main\Type\DateTime($created, Bitrix\Main\Type\DateTime::convertFormatToPhp(FORMAT_DATETIME));
             } catch (Bitrix\Main\ObjectException $e) {
             }
             $modified = isset($fields['DATE_MODIFY']) ? $fields['DATE_MODIFY'] : '';
             $modifiedTime = null;
             if ($modified !== '') {
                 try {
                     $modifiedTime = new Bitrix\Main\Type\DateTime($modified, Bitrix\Main\Type\DateTime::convertFormatToPhp(FORMAT_DATETIME));
                 } catch (Bitrix\Main\ObjectException $e) {
                 }
             }
             if ($createdTime && $modifiedTime && $createdTime->getTimestamp() !== $modifiedTime->getTimestamp()) {
                 Bitrix\Crm\History\DealStageHistoryEntry::register($ID, $fields, array('IS_NEW' => false, 'TIME' => $modifiedTime));
             } elseif ($createdTime) {
                 Bitrix\Crm\History\DealStageHistoryEntry::register($ID, $fields, array('IS_NEW' => true, 'TIME' => $createdTime));
             }
         }
         //<-- History
         //--> Statistics
         if (!Bitrix\Crm\Statistics\DealSumStatisticEntry::isRegistered($ID)) {
             Bitrix\Crm\Statistics\DealSumStatisticEntry::register($ID, $fields);
         }
         if (!Bitrix\Crm\Statistics\DealInvoiceStatisticEntry::isRegistered($ID)) {
             Bitrix\Crm\Statistics\DealInvoiceStatisticEntry::register($ID, $fields);
         }
         $timeline = Bitrix\Crm\Statistics\DealActivityStatisticEntry::prepareTimeline($ID);
         foreach ($timeline as $date) {
             Bitrix\Crm\Statistics\DealActivityStatisticEntry::register($ID, $fields, array('DATE' => $date));
         }
         //<-- Statistics
     }
 }
Esempio n. 3
0
 public function Delete($ID)
 {
     /** @global CUserTypeManager $USER_FIELD_MANAGER */
     /** @global CMain $APPLICATION */
     /** @var CApplicationException $ex */
     global $USER_FIELD_MANAGER, $APPLICATION;
     $APPLICATION->ResetException();
     foreach (GetModuleEvents('crm', 'OnBeforeCrmInvoiceDelete', true) as $arEvent) {
         if (ExecuteModuleEventEx($arEvent, array($ID)) === false) {
             $err = GetMessage('CRM_INVOICE_DELETE_CANCELED') . ' ' . $arEvent['TO_NAME'];
             if ($ex = $APPLICATION->GetException()) {
                 $err .= ': ' . $ex->GetString();
             }
             $APPLICATION->throwException($err);
             return false;
         }
     }
     if (!CModule::IncludeModule('sale')) {
         return false;
     }
     $dealID = 0;
     $dbResult = CCrmInvoice::GetList(array(), array('ID' => $ID, 'CHECK_PERMISSIONS' => 'N'), false, false, array('ID', 'UF_DEAL_ID'));
     $fields = is_object($dbResult) ? $dbResult->Fetch() : null;
     if (is_array($fields)) {
         $dealID = isset($fields['UF_DEAL_ID']) ? $fields['UF_DEAL_ID'] : 0;
     }
     $CSaleOrder = new CSaleOrder();
     $result = $CSaleOrder->Delete($ID);
     if ($result) {
         $USER_FIELD_MANAGER->Delete(self::$sUFEntityID, $ID);
         CCrmProductRow::DeleteSettings('I', $ID);
         self::UnregisterLiveFeedEvent($ID);
         CCrmSonetSubscription::UnRegisterSubscriptionByEntity(CCrmOwnerType::Invoice, $ID);
         if ($dealID > 0) {
             Bitrix\Crm\Statistics\DealInvoiceStatisticEntry::register($dealID);
         }
         CCrmSearch::DeleteSearch('INVOICE', $ID);
         foreach (GetModuleEvents('crm', 'OnAfterCrmInvoiceDelete', true) as $arEvent) {
             ExecuteModuleEventEx($arEvent, array($ID));
         }
     }
     return $result;
 }