$result = null;
if (!$mpOrder['status']) {
$result['message'] = 'Статус не передан';
- $result['status'] = null;
+ $result['status'] = 'error';
return $result;
}
// статусы маркетплейса
$status = $mpOrder['status'];
$marketplaceOrder = MarketplaceOrders::find()
->where(['guid' => $mpOrder['id']])
- ->andWhere(['<>', 'status_id', $cancelledStatusId])
+ // ->andWhere(['<>', 'status_id', $cancelledStatusId])
->one();
if ($marketplaceOrder) {
if ($marketplaceOrder->fake == 1) {
$debug = true;
}
+ $marketplaceId = $marketplaceOrder->marketplace_id;
+ $cancelledStatusesCode = MarketplaceOrder1cStatuses::find()
+ ->select(['status_id'])
+ ->where(['marketplace_id' => $marketplaceId])
+ ->andWhere(['order_status_id' => $cancelledStatusId])
+ ->scalar();
+
+ $statusId1C = MarketplaceOrder1cStatuses::find()
+ ->where(['marketplace_id' => $marketplaceId])
+ ->andWhere(['status_id' => $status])
+ ->one();
+
+ if ($marketplaceOrder->status_id === $cancelledStatusId && $status !== $cancelledStatusesCode) {
+ $result['message'] = 'Заказ отменен ' . $mpOrder['id'];;
+ $result['status'] = 'cancelled_order';
+ return $result;
+ }
$statuses1cWithCancelledId = ArrayHelper::getColumn(MarketplaceOrder1cStatuses::find()
->select(['status_id'])
$statuses = ArrayHelper::map($statuses, 'code', 'id');
$statusCodes = array_unique(array_keys($statuses));
- $marketplaceId = $marketplaceOrder->marketplace_id;
- $statusId1C = MarketplaceOrder1cStatuses::find()
- ->where(['marketplace_id' => $marketplaceId])
- ->andWhere(['status_id' => $status])
- ->one();
if (empty($statusId1C)) {
$mess["result"] = 'error';
$mess["message_order"] = "Статус не найден";
$marketplaceOrder->status_processing_1c = $statusId1C->id;
$marketplaceOrder->seller_id = $mpOrder['seller_id'] ?? null;
$marketplaceOrder->number_1c = $mpOrder['number'] ?? null;
+
+
if ($marketplaceOrder->save()) {
// Обновляем историю статусов
MarketplaceService::createOrUpdateStatusHistory($marketplaceOrder->id, $status->id, $substatus->id, [