/** * 2. Создание/Проверка договора в ОРД * Вызывается перед созданием заказа, если у юзера нет договора */ function ensureOrdContract($userId) { global $pdo; // 1. Берем данные $stmt = $pdo->prepare("SELECT id, inn, ord_organization_id, ord_contract_id, created_at FROM users WHERE id = ?"); $stmt->execute([$userId]); $user = $stmt->fetch(); if (!$user || empty($user['ord_organization_id'])) { // Пробуем сначала получить организацию, если ее нет $sync = syncUserWithOrd($userId); if (isset($sync['error'])) return ['error' => $sync['error']]; // Перезапрашиваем данные $stmt->execute([$userId]); $user = $stmt->fetch(); } // Если договор уже есть - возвращаем его if (!empty($user['ord_contract_id'])) { return ['success' => true, 'id' => $user['ord_contract_id']]; } require_once __DIR__ . '/OzonOrdClient.php'; try { $ord = new OzonOrdClient(); // Параметры договора (Оферта) // Номер: ID-пользователя (например "OFFER-15") // Дата: Дата регистрации пользователя $number = "OFFER-" . $user['id']; $date = date('Y-m-d', strtotime($user['created_at'])); $contractId = $ord->createContract($number, $date, $user['ord_organization_id']); if ($contractId) { $upd = $pdo->prepare("UPDATE users SET ord_contract_id = ? WHERE id = ?"); $upd->execute([$contractId, $userId]); return ['success' => true, 'id' => $contractId]; } else { return ['error' => 'Не удалось создать договор в ОРД']; } } catch (Exception $e) { return ['error' => 'Ошибка ОРД (Договор): ' . $e->getMessage()]; } } Восстановление пароля

Восстановление

Вернуться ко входу