Хочу сделать проверку при оплате счета, кто оплатил, и в случае если не бухгалтер - откатывать.
У меня срабатывает только лог, если лог подключить после reqire он тоже не срабатывает, не пойму в чем дело. Скрипты, которые по крону, работают с require, а вот с этим проблемка какая-то, пните куда смотреть. Спасибо. Сам вебхук:
в логе видно, что он идет ровно до require
------------------------
2022.04.09 16:42:38
new
Array
(
[event] => ONCRMINVOICEUPDATE
[data] => Array
(
[FIELDS] => Array
(
[ID] => 12079
)
)
[ts] => 1649511758
[auth] => Array
(
[domain] => bitrix.my-site.ru
[client_endpoint] => .my-site.ru/rest/
[server_endpoint] =>
[member_id] => qp5jmkjiapofbmd6jjs7a96o8gwq7c25
[application_token] => a3v944zhfisk3o3puklwrummvzxp6r3b
)
)
------------------------
before
У меня срабатывает только лог, если лог подключить после reqire он тоже не срабатывает, не пойму в чем дело. Скрипты, которые по крону, работают с require, а вот с этим проблемка какая-то, пните куда смотреть. Спасибо. Сам вебхук:
| Код |
|---|
print_r($_REQUEST);
writeToLog($_REQUEST, 'new');
function writeToLog($data, $title = '') {
$log = "\n------------------------\n";
$log .= date("Y.m.d G:i:s") . "\n";
$log .= (strlen($title) > 0 ? $title : 'DEBUG') . "\n";
$log .= print_r($data, 1);
$log .= "\n------------------------\n";
file_put_contents(getcwd() . '/hook.log', $log, FILE_APPEND);
return true;
}
file_put_contents(getcwd() . '/hook.log', "\n before", FILE_APPEND);
//require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include.php");
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
file_put_contents(getcwd() . '/hook.log', "\n after", FILE_APPEND);
use Bitrix\Main\Loader;
Loader::includeModule("iblock");
Loader::includeModule('crm');
$request = $_REQUEST;
$invoice_id = $request['data']['FIELDS']['ID'];
$invalid_status = [ "STATUS_ID" => "N" ];
$arOrder = ["ID" => "DESC"];
$arFilter = ["ID" => $invoice_id];
$arSelect = ["STATUS_ID", "EMP_STATUS_ID", "EMP_PAYED_ID", "CREATED_BY", "RESPONSIBLE_ID"];
$getInvoice = CCrmInvoice::GetList($arOrder, $arFilter, false, false, $arSelect);
$arinvoice = $getInvoice->fetch();
$status = $arinvoice['STATUS_ID'];
$status_change = $arinvoice['EMP_STATUS_ID'];
$pay_change = $arinvoice['EMP_PAYED_ID'];
$assigned = $arinvoice['RESPONSIBLE_ID'];
if ($status == 'P' || $status == 'D') {
if ($pay_change !== '100') {
$invoice = new CCrmInvoice($invoice_id);
$invoice->Upd ate($invoice_id, $invalid_status); //se t status 'NEW'
}
}
|
в логе видно, что он идет ровно до require
------------------------
2022.04.09 16:42:38
new
Array
(
[event] => ONCRMINVOICEUPDATE
[data] => Array
(
[FIELDS] => Array
(
[ID] => 12079
)
)
[ts] => 1649511758
[auth] => Array
(
[domain] => bitrix.my-site.ru
[client_endpoint] => .my-site.ru/rest/
[server_endpoint] =>
[member_id] => qp5jmkjiapofbmd6jjs7a96o8gwq7c25
[application_token] => a3v944zhfisk3o3puklwrummvzxp6r3b
)
)
------------------------
before