Exemple #1
0
function checkPayment($sbr_id, $delay = null)
{
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/pskb.php';
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/onlinedengi.php';
    $objResponse = new xajaxResponse();
    $sbr_id = __paramValue('int', $sbr_id);
    if (!$sbr_id) {
        $objResponse->call('finance_raise_err', 'Запрос не может быть обработан.');
        return $objResponse;
    }
    $uid = get_uid(0);
    if (!$uid) {
        $objResponse->redirect('/');
        return $objResponse;
    }
    $sbr = sbr_meta::getInstance();
    if (!$sbr->initFromId($sbr_id)) {
        $objResponse->call('finance_raise_err', 'Запрос не может быть обработан.');
        return $objResponse;
    }
    if ($sbr->status == sbr::STATUS_REFUSED) {
        $objResponse->call('finance_raise_err', 'Запрос не может быть обработан. Исполнитель отказался от сделки.');
        return $objResponse;
    }
    if ($sbr->data['scheme_type'] != sbr::SCHEME_LC) {
        $objResponse->call('finance_raise_err', 'Указанная схема не поддерживается.');
        return $objResponse;
    }
    $pskb = new pskb($sbr);
    $state = $pskb->checkNew();
    if ($state == 'err') {
        $objResponse->call('finance_raise_err', $pskb->getError());
        return $objResponse;
    }
    if ($state == 'form') {
        $objResponse->script("setTimeout(function() { xajax_checkPayment({$sbr_id});}, 2000);");
        return $objResponse;
    }
    if ($state == 'new') {
        $lc = $pskb->getLC();
        if ($lc['ps_emp'] == onlinedengi::BANK_YL) {
            $sbr->getDocs();
            if ($sbr->docs) {
                foreach ($sbr->docs as $doc) {
                    if ($doc['type'] == sbr::DOCS_TYPE_STATEMENT) {
                        $doc_file = new CFile($doc['file_id']);
                        //$doc_file->original_name = $doc['name'];
                        $doc_file->delete($doc['file_id']);
                        $sbr->removeEvent(24);
                    }
                }
            }
            $stage = current($sbr->stages);
            if ($lc['ps_emp'] == onlinedengi::BANK_YL) {
                if ($doc_file = $stage->generateStatement($doc_err, $lc)) {
                    // формируем заявление на аккредитив
                    $doc = array('file_id' => $doc_file->id, 'status' => sbr::DOCS_STATUS_SIGN, 'access_role' => sbr::DOCS_ACCESS_EMP, 'owner_role' => 0, 'type' => sbr::DOCS_TYPE_STATEMENT, 'subtype' => 1);
                    $sbr->addDocR($doc);
                    $doc_file->original_name = $sbr->post_doc['name'];
                }
            }
            $objResponse->script('document.location.reload();');
            return $objResponse;
        }
        if ($lc['ps_emp'] == onlinedengi::CARD) {
            $objResponse->call('pskb_frame', $lc['lc_id'], pskb::getNonceSign($lc['lc_id']));
        } else {
            $objResponse->call('finance_send_frm');
        }
        return $objResponse;
    }
    if ($state == 'cover') {
        $objResponse->script('document.location.reload();');
        return $objResponse;
    }
    //    $objResponse->call('finance_raise_err', 'Указанная схема не поддерживается.');
    return $objResponse;
}