CModule::IncludeModule("sale"); $personTypes = CCrmPaySystem::getPersonTypeIDs(); $arFields = array("ORDER_TOPIC" => GetMessage("CRM_DEMO_INVOCIE_1_SUBJ"), "STATUS_ID" => "P", "DATE_INSERT" => ConvertTimeStamp(time() + CTimeZone::GetOffset(), 'FULL'), "DATE_BILL" => ConvertTimeStamp(time() + CTimeZone::GetOffset(), 'SHORT'), "PAY_VOUCHER_DATE" => ConvertTimeStamp(time() + CTimeZone::GetOffset(), 'FULL'), "DATE_PAY_BEFORE" => ConvertTimeStamp(time() + 8000009 + CTimeZone::GetOffset(), 'SHORT'), "RESPONSIBLE_ID" => 1, "UF_CONTACT_ID" => $arContacts["45"]['ID'], "PAY_VOUCHER_NUM" => 456, "DATE_MARKED" => ConvertTimeStamp(time() + CTimeZone::GetOffset(), 'FULL'), "PRODUCT_ROWS" => array(array("ID" => 0, "PRODUCT_ID" => $arProduct["ID"], "PRODUCT_NAME" => $arProduct["NAME"], "QUANTITY" => 1, "PRICE" => $arProduct["PRICE"])), "PERSON_TYPE_ID" => $personTypes["CONTACT"], "INVOICE_PROPERTIES" => array()); $paySystems = CCrmPaySystem::GetPaySystems($personTypes["CONTACT"]); foreach ($paySystems as $id => $paySystem) { $arFields["PAY_SYSTEM_ID"] = $id; } $arAllProps = CCrmInvoice::GetPropertiesInfo($personTypes["CONTACT"]); foreach ($arAllProps as $arProps) { foreach ($arProps as $key => $prop) { if ($key == "FIO") { $arFields["INVOICE_PROPERTIES"][$prop["ID"]] = $arContacts["45"]["LAST_NAME"]; } } } $arInvoices[] = $arFields; $arFields = array("ORDER_TOPIC" => GetMessage("CRM_DEMO_INVOCIE_2_SUBJ"), "STATUS_ID" => "N", "DATE_INSERT" => ConvertTimeStamp(time() + CTimeZone::GetOffset(), 'FULL'), "DATE_BILL" => ConvertTimeStamp(time() + CTimeZone::GetOffset(), 'SHORT'), "PAY_VOUCHER_DATE" => ConvertTimeStamp(time() + CTimeZone::GetOffset(), 'FULL'), "DATE_PAY_BEFORE" => ConvertTimeStamp(time() + 8000009 + CTimeZone::GetOffset(), 'SHORT'), "RESPONSIBLE_ID" => 1, "UF_COMPANY_ID" => $arCompany["38"]['ID'], "PRODUCT_ROWS" => array(array("ID" => 0, "PRODUCT_ID" => $arProduct["ID"], "PRODUCT_NAME" => $arProduct["NAME"], "QUANTITY" => 1, "PRICE" => $arProduct["PRICE"])), "PERSON_TYPE_ID" => $personTypes["COMPANY"], "INVOICE_PROPERTIES" => array()); $paySystems = CCrmPaySystem::GetPaySystems($personTypes["COMPANY"]); foreach ($paySystems as $id => $paySystem) { $arFields["PAY_SYSTEM_ID"] = $id; } $arAllProps = CCrmInvoice::GetPropertiesInfo($personTypes["COMPANY"]); foreach ($arAllProps as $arProps) { foreach ($arProps as $key => $prop) { if ($key == "COMPANY") { $arFields["INVOICE_PROPERTIES"][$prop["ID"]] = $arCompany["38"]["TITLE"]; } } } $arInvoices[] = $arFields; }
public static function __MakePayerInfoString($arInvoiceProperties) { $strPayerInfo = ''; if (!self::$INVOICE_PROPERTY_INFOS) { self::$INVOICE_PROPERTY_INFOS = CCrmInvoice::GetPropertiesInfo(0, true); } $i = 0; foreach (self::$INVOICE_PROPERTY_INFOS as $person => $props) { $index = 0; foreach ($props as $code => $fields) { if ($fields['TYPE'] === 'TEXT' || $fields['TYPE'] === 'TEXTAREA') { $value = trim($arInvoiceProperties['PR_INVOICE_' . $fields['ID']]['VALUE']); if ($value != '') { if ($i > 0) { $strPayerInfo .= ', '; } $strPayerInfo .= $value; $i++; } } } } return $strPayerInfo; }
// PAYER PROPERTIES //foreach ($arInvoiceProperties as $propertyId => $property) //{ // if ($property['FIELDS']['CODE'] !== 'LOCATION') // { // $arResult['FIELDS']['tab_1'][] = array( // 'id' => $propertyId, // 'name' => $property['FIELDS']['NAME'], // 'type' => ToLower($property['FIELDS']['TYPE']), // 'value' => $property['VALUE'] // ); // } //} // ----------- Payer info dialog settings -----------> $dlgSettings = array('personTypeId' => $personTypeId); $arInvoicePropertiesInfo = CCrmInvoice::GetPropertiesInfo(0, true); $index = 0; foreach ($arInvoicePropertiesInfo as $person => $props) { $index = 0; foreach ($props as $code => $fields) { if ($fields['TYPE'] === 'TEXT' || $fields['TYPE'] === 'TEXTAREA') { $dlgSettings[$person][$index++] = array('ID' => $fields['ID'], 'CODE' => $fields['CODE'], 'TYPE' => $fields['TYPE'], 'NAME' => $fields['NAME'], 'SIZE1' => $fields['SIZE1'], 'SIZE2' => $fields['SIZE2'], 'SORT' => $fields['SORT'], 'PROPS_GROUP_ID' => $fields['PROPS_GROUP_ID'], 'GROUP_NAME' => $fields['GROUP_NAME'], 'GROUP_SORT' => $fields['GROUP_SORT']); } } } $dlgSettings['personTypes'] = $arPersonTypes; $dlgSettings['FORM_ID'] = $arResult['FORM_ID']; $dlgSettings['PAYER_INFO_EDIT_LINK_ID'] = $arResult['PAYER_INFO_EDIT_LINK_ID']; $dlgSettings['INVOICE_PROPS_DIV_ID'] = $arResult['INVOICE_PROPS_DIV_ID']; $dlgSettings['PAYER_INFO_FIELD_ID'] = $arResult['PAYER_INFO_FIELD_ID']; $dlgSettings['messages'] = array('TITLE' => GetMessage('CRM_INVOICE_PROPS_DLG_TITLE'), 'SAVE' => GetMessage('CRM_INVOICE_PROPS_DLG_SAVE'), 'CANCEL' => GetMessage('CRM_INVOICE_PROPS_DLG_CANCEL'));
public static function PrepareInvoiceClientInfoFormat($personTypeID) { $personTypeID = intval($personTypeID); if ($personTypeID <= 0) { return ''; } if (!self::$INVOICE_PROPERTY_INFOS) { self::$INVOICE_PROPERTY_INFOS = CCrmInvoice::GetPropertiesInfo(0, true); } $propertyInfos = isset(self::$INVOICE_PROPERTY_INFOS[$personTypeID]) ? self::$INVOICE_PROPERTY_INFOS[$personTypeID] : null; if (!is_array($propertyInfos)) { return ''; } $result = array(); foreach ($propertyInfos as $code => &$fields) { $type = $fields['TYPE']; if ($type !== 'TEXT' && $type !== 'TEXTAREA') { continue; } $result[] = $code; } unset($fields); return implode(',', $result); }
private static function getInvoiceDataByID($ID) { $arInvoice = CCrmInvoice::GetByID($ID); if (!is_array($arInvoice)) { throw new RestException('Not found.'); } $arProperties = CCrmInvoice::GetProperties($ID, $arInvoice['PERSON_TYPE_ID']); $arAllowedProperties = CCrmInvoice::GetPropertiesInfo($arInvoice['PERSON_TYPE_ID'], true); $arAllowedProperties = is_array($arAllowedProperties[$arInvoice['PERSON_TYPE_ID']]) ? array_keys($arAllowedProperties[$arInvoice['PERSON_TYPE_ID']]) : array(); $arPropertiesResult = array(); foreach ($arProperties as $k => $v) { if ($k !== 'PR_LOCATION') { if (in_array($v['FIELDS']['CODE'], $arAllowedProperties)) { $arPropertiesResult[$v['FIELDS']['CODE']] = $v['VALUE']; } } else { $arInvoice['PR_LOCATION'] = $v['VALUE']; } } $arProducts = CCrmInvoice::GetProductRows($ID); $result = $arInvoice; if (count($arPropertiesResult) > 0) { // ua company name hack if (!isset($arPropertiesResult['COMPANY']) && isset($arPropertiesResult['COMPANY_NAME'])) { $arPropertiesResult['COMPANY'] = $arPropertiesResult['COMPANY_NAME']; unset($arPropertiesResult['COMPANY_NAME']); } $result['INVOICE_PROPERTIES'] = $arPropertiesResult; } if (count($arProducts) > 0) { $result['PRODUCT_ROWS'] = $arProducts; } return $result; }