$statusParams['REASON_MARKED'] = isset($_REQUEST['REASON_MARKED_SUCCESS']) ? substr(trim($_REQUEST['REASON_MARKED_SUCCESS']), 0, 255) : ''; } elseif ($statusParams['STATE_FAILED']) { $statusParams['DATE_MARKED'] = isset($_REQUEST['DATE_MARKED']) ? trim($_POST['DATE_MARKED']) : null; $statusParams['REASON_MARKED'] = isset($_REQUEST['REASON_MARKED']) ? substr(trim($_REQUEST['REASON_MARKED']), 0, 255) : ''; } $targetTypeName = CCrmOwnerType::ResolveName(CCrmOwnerType::Invoice); if ($statusID === '' || $ID <= 0 || $typeName !== $targetTypeName) { return; } $entityAttrs = $userPerms->GetEntityAttr($targetTypeName, array($ID)); if (!$userPerms->CheckEnityAccess($targetTypeName, 'WRITE', $entityAttrs[$ID])) { return; } if (empty($errMessage)) { $CCrmInvoice = new CCrmInvoice(false); if (!$CCrmInvoice->SetStatus($ID, $statusID, $statusParams, array('SYNCHRONIZE_LIVE_FEED' => true))) { $errMessage = 'Status error!'; } } $APPLICATION->RestartBuffer(); Header('Content-Type: application/x-javascript; charset=' . LANG_CHARSET); if (empty($errMessage)) { $data = array('TYPE' => $targetTypeName, 'ID' => $ID, 'VALUE' => $statusID, 'STATE_SUCCESS' => $statusParams['STATE_SUCCESS'] ? 'Y' : 'N', 'STATE_FAILED' => $statusParams['STATE_FAILED'] ? 'Y' : 'N'); if ($statusParams['STATE_SUCCESS']) { $data['PAY_VOUCHER_NUM'] = $statusParams['PAY_VOUCHER_NUM']; $data['PAY_VOUCHER_DATE'] = $statusParams['PAY_VOUCHER_DATE']; $data['REASON_MARKED_SUCCESS'] = $statusParams['REASON_MARKED']; } elseif ($statusParams['STATE_FAILED']) { $data['DATE_MARKED'] = $statusParams['DATE_MARKED']; $data['REASON_MARKED'] = $statusParams['REASON_MARKED']; }
$isSuccess = CCrmStatusInvoice::isStatusSuccess($statusID); $isFail = CCrmStatusInvoice::isStatusFailed($statusID); $statusParams = array('STATE_SUCCESS' => $isSuccess, 'STATE_FAILED' => $isFail); if ($isSuccess) { $timestamp = isset($additionalData['PAYMENT_TIME_STAMP']) ? max(intval($additionalData['PAYMENT_TIME_STAMP']), 0) : 0; $statusParams['PAY_VOUCHER_DATE'] = $timestamp > 0 ? ConvertTimeStamp($timestamp, 'SHORT', SITE_ID) : null; $statusParams['PAY_VOUCHER_NUM'] = isset($additionalData['PAYMENT_DOC']) ? substr(trim($additionalData['PAYMENT_DOC']), 0, 20) : ''; $statusParams['REASON_MARKED'] = isset($additionalData['PAYMENT_COMMENT']) ? substr(trim($additionalData['PAYMENT_COMMENT']), 0, 255) : ''; } elseif ($isFail) { $timestamp = isset($additionalData['CANCEL_TIME_STAMP']) ? max(intval($additionalData['CANCEL_TIME_STAMP']), 0) : 0; $statusParams['DATE_MARKED'] = $timestamp > 0 ? ConvertTimeStamp($timestamp, 'SHORT', SITE_ID) : null; $statusParams['REASON_MARKED'] = isset($additionalData['CANCEL_REASON']) ? substr(trim($additionalData['CANCEL_REASON']), 0, 255) : ''; } //$DB->StartTransaction(); $CCrmInvoice = new CCrmInvoice(false); $successed = $CCrmInvoice->SetStatus($ID, $statusID, $statusParams); if ($successed) { //$DB->Commit(); $dbRes = CCrmInvoice::GetList(array(), array('ID' => $ID)); $currentItem = $dbRes->GetNext(); $formatParams = isset($_REQUEST['FORMAT_PARAMS']) ? $_REQUEST['FORMAT_PARAMS'] : array(); CCrmMobileHelper::PrepareInvoiceItem($currentItem, $formatParams, array(), array('ENABLE_MULTI_FIELDS' => true, 'ENABLE_PAYER_INFO' => true)); __CrmMobileInvoiceEditEndResonse(array('SAVED_ENTITY_ID' => $ID, 'SAVED_ENTITY_DATA' => CCrmMobileHelper::PrepareInvoiceData($currentItem))); } else { //$DB->Rollback(); __CrmMobileInvoiceEditEndResonse(array('ERROR' => GetMessage('CRM_INVOICE_COULD_NOT_SAVE_STATUS'))); } } elseif ($action === 'RECALCULATE') { // Refresh invoice data according to client settings __IncludeLang(dirname(__FILE__) . '/lang/' . LANGUAGE_ID . '/' . basename(__FILE__)); $data = isset($_REQUEST['SOURCE_DATA']) && is_array($_REQUEST['SOURCE_DATA']) ? $_REQUEST['SOURCE_DATA'] : array();