$marketplaceOrder->substatus_id = (int)$substatusId;
$marketplaceOrder->raw_data = $newRawData;
$marketplaceOrder->status_1c = MarketplaceOrders::STATUSES_1C_CREATED_IN_ERP;
- $baseUrl = "https://partner.market.yandex.ru/order/";
- $marketplaceOrder->order_link = $baseUrl . $marketplaceOrder->marketplace_order_id . "?tld=ru&partnerId=197274828";
+
if ($marketplaceOrder->save()) {
self::sendMessageToTelegram($marketplaceOrder->guid, "Тестовое сообщение для https://tracker.yandex.ru/ERP-326 из [1]");
}
}
$shipments = $delivery->getShipments();
- Yii::error(
- 'сроки доставки: ' . json_encode(
- $shipments,
- JSON_UNESCAPED_UNICODE
- )
- );
if ($shipments) {
- foreach ($shipments as $shipment) {
- Yii::error(
- 'срок доставки: ' . json_encode(
- $shipment,
- JSON_UNESCAPED_UNICODE
- )
- );
+ foreach ($shipments as $index => $shipment) {
+ Yii::error("срок доставки: {$index}" . json_encode($shipment, JSON_UNESCAPED_UNICODE));
}
- $deliveryDateTo = ($shipments[0])->getShipmentDate();
- $deliveryTimeTo = ($shipments[0])->getShipmentTime();
- if ($deliveryDateTo && $deliveryTimeTo) {
- $datetimeString = $deliveryDateTo . ' ' . $deliveryTimeTo;
- $marketplaceOrder->delivery_to = date('Y-m-d H:i:s', strtotime($datetimeString));
- if (!$marketplaceOrder->save()) {
- Yii::error(
- 'Ошибка сохранения сроков доставки: ' . json_encode(
- $marketplaceOrder->getErrors(),
- JSON_UNESCAPED_UNICODE
- )
- );
+
+ $deliveryDateTo = ($shipments[0])->getShipmentDate() ?? null;
+ $deliveryTimeTo = ($shipments[0])->getShipmentTime() ?? '';
+
+ if ($deliveryDateTo) {
+ $datetimeString = str_replace('-', '.', $deliveryDateTo) . ' ' . $deliveryTimeTo;
+ $timestamp = strtotime($datetimeString);
+
+ if ($timestamp) {
+ $marketplaceOrder->delivery_to = date('Y-m-d H:i:s', $timestamp);
+
+ if (!$marketplaceOrder->save()) {
+ Yii::error('Ошибка сохранения сроков доставки: ' . json_encode($marketplaceOrder->getErrors(), JSON_UNESCAPED_UNICODE));
+ }
+ } else {
+ Yii::error('Ошибка преобразования даты и времени: ' . $datetimeString);
}
+ } else {
+ Yii::error('Отсутствует shipmentDate у первого элемента shipments');
}
-
}
$dates = $delivery->getDates();
if ($dates) {
}
}
// проверяем и устанавливаем ready_to = 1
+ $baseUrl = "https://partner.market.yandex.ru/order/";
+ $marketplaceOrder->order_link = $baseUrl . $marketplaceOrder->marketplace_order_id . "?tld=ru&partnerId=197274828";
+ if (!$marketplaceOrder->save()) {
+ Yii::error(
+ 'Ошибка сохранения заказа при создании ссылки: ' . json_encode(
+ $marketplaceOrder->getErrors(),
+ JSON_UNESCAPED_UNICODE
+ )
+ );
+ }
self::setReadyMarketplaceOrders($marketplaceOrder);
} else {
Yii::error(
$delivery = $order->getDelivery();
$shipments = $delivery->getShipments();
if ($shipments) {
- $deliveryDateTo = $shipments->getShipmentDate();
- $deliveryTimeTo = $shipments->getShipmentTime();
- if ($deliveryDateTo && $deliveryTimeTo) {
- $datetimeString = $deliveryDateTo . ' ' . $deliveryTimeTo;
- $marketplaceOrder->delivery_to = date('Y-m-d H:i:s', strtotime($datetimeString));
- if (!$marketplaceOrder->save()) {
- Yii::error(
- 'Ошибка сохранения сроков доставки: ' . json_encode(
- $marketplaceOrder->getErrors(),
- JSON_UNESCAPED_UNICODE
- )
- );
- }
+ foreach ($shipments as $index => $shipment) {
+ Yii::error("срок доставки: {$index}" . json_encode($shipment, JSON_UNESCAPED_UNICODE));
}
+ $deliveryDateTo = ($shipments[0])->getShipmentDate() ?? null;
+ $deliveryTimeTo = ($shipments[0])->getShipmentTime() ?? '';
+
+ if ($deliveryDateTo) {
+ $datetimeString = str_replace('-', '.', $deliveryDateTo) . ' ' . $deliveryTimeTo;
+ $timestamp = strtotime($datetimeString);
+
+ if ($timestamp) {
+ $marketplaceOrder->delivery_to = date('Y-m-d H:i:s', $timestamp);
+
+ if (!$marketplaceOrder->save()) {
+ Yii::error('Ошибка сохранения сроков доставки: ' . json_encode($marketplaceOrder->getErrors(), JSON_UNESCAPED_UNICODE));
+ }
+ } else {
+ Yii::error('Ошибка преобразования даты и времени: ' . $datetimeString);
+ }
+ } else {
+ Yii::error('Отсутствует shipmentDate у первого элемента shipments');
+ }
}
if (!$marketplaceOrder->save()) {
Yii::error(
}
}
self::setReadyMarketplaceOrders($marketplaceOrder);
+ self::checkAndSetReadyTo1c($marketplaceOrder);
}
return $newOrdersCount;
}
+ public static function checkAndSetReadyTo1c($order): void
+ {
+ if ($order->readyto_1c !== 0) {
+ return;
+ }
+
+ $creationTimestamp = strtotime($order->creation_date);
+ if (!$creationTimestamp) {
+ Yii::error('Ошибка преобразования creation_date у заказа ID ' . $order->id . ': ' . $order->creation_date);
+ return;
+ }
+
+ $currentTimestamp = time();
+ $minutesPassed = ($currentTimestamp - $creationTimestamp) / 60;
+
+ if ($minutesPassed >= 15) {
+ $order->readyto_1c = 1;
+ if (!$order->save()) {
+ Yii::error('Ошибка установки readyto_1c = 1 у заказа ID ' . $order->id . ': ' . json_encode($order->getErrors(), JSON_UNESCAPED_UNICODE));
+ } else {
+ Yii::info('Заказ ID ' . $order->id . ' автоматически помечен как готовый к отправке в 1C.');
+ }
+ }
+ }
+
}