Ejemplo n.º 1
0
 public static function PrepareStorageElementInfo(&$arFields)
 {
     $storageTypeID = isset($arFields['STORAGE_TYPE_ID']) ? (int) $arFields['STORAGE_TYPE_ID'] : StorageType::Undefined;
     if (!StorageType::IsDefined($storageTypeID)) {
         $storageTypeID = self::GetDefaultStorageTypeID();
     }
     $storageElementIDs = isset($arFields['STORAGE_ELEMENT_IDS']) && is_array($arFields['STORAGE_ELEMENT_IDS']) ? $arFields['STORAGE_ELEMENT_IDS'] : array();
     if ($storageTypeID === StorageType::File) {
         $arFields['FILES'] = array();
         foreach ($storageElementIDs as $fileID) {
             $arData = CFile::GetFileArray($fileID);
             if (is_array($arData)) {
                 $arFields['FILES'][] = array('fileID' => $arData['ID'], 'fileName' => $arData['FILE_NAME'], 'fileURL' => CCrmUrlUtil::UrnEncode($arData['SRC']), 'fileSize' => $arData['FILE_SIZE']);
             }
         }
     } elseif ($storageTypeID === StorageType::WebDav || $storageTypeID === StorageType::Disk) {
         $infos = array();
         foreach ($storageElementIDs as $elementID) {
             $infos[] = StorageManager::getFileInfo($elementID, $storageTypeID);
         }
         $arFields[$storageTypeID === StorageType::Disk ? 'DISK_FILES' : 'WEBDAV_ELEMENTS'] =& $infos;
         unset($infos);
     }
 }
Ejemplo n.º 2
0
        } elseif (isset($values['HOME'])) {
            $result[] = array('entityId' => $entityID, 'value' => $values['HOME']);
        } elseif (isset($values['OTHER'])) {
            $result[] = array('entityId' => $entityID, 'value' => $values['OTHER']);
        }
    }
    unset($values);
    echo CUtil::PhpToJSObject(array('DATA' => array('ENTITY_TYPE' => $entityType, 'ITEMS' => $result)));
    die;
} elseif ($action == 'GET_WEBDAV_ELEMENT_INFO') {
    $elementID = isset($_POST['ELEMENT_ID']) ? intval($_POST['ELEMENT_ID']) : 0;
    if ($elementID <= 0) {
        echo CUtil::PhpToJSObject(array('ERROR' => 'Invalid data'));
        die;
    }
    echo CUtil::PhpToJSObject(array('DATA' => array('ELEMENT_ID' => $elementID, 'INFO' => \Bitrix\Crm\Integration\StorageManager::getFileInfo($elementID, \Bitrix\Crm\Integration\StorageType::WebDav))));
    die;
} elseif ($action == 'GET_COMMUNICATION_HTML') {
    $typeName = isset($_POST['TYPE_NAME']) ? strval($_POST['TYPE_NAME']) : '';
    $value = isset($_POST['VALUE']) ? strval($_POST['VALUE']) : '';
    echo CUtil::PhpToJSObject(array('DATA' => array('HTML' => CCrmViewHelper::PrepareMultiFieldHtml($typeName, array('VALUE_TYPE_ID' => 'WORK', 'VALUE' => $value)))));
    die;
} elseif ($action == 'PREPARE_MAIL_TEMPLATE') {
    $templateID = isset($_POST['TEMPLATE_ID']) ? intval($_POST['TEMPLATE_ID']) : 0;
    $ownerTypeName = isset($_POST['OWNER_TYPE']) ? strtoupper(strval($_POST['OWNER_TYPE'])) : '';
    $ownerID = isset($_POST['OWNER_ID']) ? intval($_POST['OWNER_ID']) : 0;
    if ($templateID <= 0) {
        echo CUtil::PhpToJSObject(array('ERROR' => 'Invalid data'));
        die;
    }
    $dbResult = CCrmMailTemplate::GetList(array(), array('=ID' => $templateID), false, false, array('OWNER_ID', 'ENTITY_TYPE_ID', 'SCOPE', 'EMAIL_FROM', 'SUBJECT', 'BODY'));
Ejemplo n.º 3
0
        if (!file_exists($actionFilePath)) {
            echo CUtil::PhpToJSObject(array('ERROR' => 'COULD NOT FIND PAYMENT SYSTEM ACTION FILE!'));
            die;
        }
    }
    CSalePaySystemAction::InitParamArrays($paymentData['ORDER'], 0, $paySysActionFields['PARAMS'], array("PROPERTIES" => $paymentData['PROPERTIES'], "BASKET_ITEMS" => $paymentData['CART_ITEMS'], "TAX_LIST" => $paymentData["TAX_LIST"]));
    $pdfContent = (include $actionFilePath);
    $fileName = "quote_{$quoteID}.pdf";
    $fileData = array('name' => $fileName, 'type' => 'file', 'content' => $pdfContent, 'MODULE_ID' => 'crm');
    $fileID = CFile::SaveFile($fileData, 'crm');
    if ($fileID > 0) {
        $fileArray = CFile::GetFileArray($fileID);
        $storageTypeID = \Bitrix\Crm\Integration\StorageType::getDefaultTypeID();
        if ($storageTypeID !== \Bitrix\Crm\Integration\StorageType::File) {
            $storageFileID = \Bitrix\Crm\Integration\StorageManager::saveEmailAttachment($fileArray, $storageTypeID);
            $fileInfo = $storageFileID > 0 ? \Bitrix\Crm\Integration\StorageManager::getFileInfo($storageFileID, $storageTypeID) : null;
            if (is_array($fileInfo)) {
                if ($storageTypeID === \Bitrix\Crm\Integration\StorageType::WebDav) {
                    echo CUtil::PhpToJSObject(array('webdavelement' => $fileInfo));
                } elseif ($storageTypeID === \Bitrix\Crm\Integration\StorageType::Disk) {
                    echo CUtil::PhpToJSObject(array('diskfile' => $fileInfo));
                }
            }
        } else {
            echo CUtil::PhpToJSObject(array('file' => array("fileName" => $fileArray['FILE_NAME'], "fileID" => $fileID, "fileSize" => CFile::FormatSize($fileArray['FILE_SIZE']), "src" => $fileArray['SRC'])));
        }
    }
    die;
}
if ($mode === 'GET_USER_INFO') {
    $result = array();
Ejemplo n.º 4
0
    $actionFilePath = "{$actionPath}/payment.php";
    if (!(is_dir($actionPath) && file_exists($actionFilePath))) {
        __CrmMobileInvoiceEditEndResonse(array('ERROR' => GetMessage('CRM_INVOICE_COULD_NOT_FIND_PAY_SYSTEM_HANDLER')));
    }
    //HACK: params for pdf handler
    $_REQUEST['pdf'] = 'Y';
    $_REQUEST['GET_CONTENT'] = 'Y';
    $content = (include $actionFilePath);
    if ($content === '') {
        __CrmMobileInvoiceEditEndResonse(array('ERROR' => GetMessage('CRM_INVOICE_NO_PDF_CONTENT')));
    }
    $accountNumber = isset($order['ACCOUNT_NUMBER']) ? $order['ACCOUNT_NUMBER'] : '';
    if ($accountNumber !== '') {
        $accountNumber = preg_replace('/[^a-zA-Z0-9_-]/', '', $accountNumber);
    }
    if ($accountNumber === '') {
        $accountNumber = strval($ID);
    }
    $fileID = CFile::SaveFile(array('name' => "invoice_{$accountNumber}.pdf", 'type' => 'file', 'content' => $content, 'MODULE_ID' => 'crm'), 'crm');
    if (!(is_int($fileID) && $fileID > 0)) {
        __CrmMobileInvoiceEditEndResonse(array('ERROR' => GetMessage('CRM_INVOICE_COULD_NOT_CREATE_FILE')));
    }
    $storageTypeID = StorageType::getDefaultTypeID();
    $elementID = StorageManager::saveEmailAttachment(CFile::GetFileArray($fileID), $storageTypeID);
    if (!(is_int($elementID) && $elementID > 0)) {
        __CrmMobileInvoiceEditEndResonse(array('ERROR' => GetMessage('CRM_INVOICE_COULD_NOT_CREATE_WEBDAV_ELEMENT')));
    }
    __CrmMobileInvoiceEditEndResonse(array('RESULT_DATA' => array('ELEMENT_INFO' => StorageManager::getFileInfo($elementID, $storageTypeID))));
} else {
    __CrmMobileInvoiceEditEndResonse(array('ERROR' => 'Action is not supported in current context.'));
}