$marketplaceOrders = MarketplaceOrders::find()->with('items')
->where([
'status_1c' => MarketplaceOrders::STATUSES_1C_CREATED_IN_ERP
- ])->andWhere([
+ ])
+ ->andWhere(['readyto_1c' => 1])
+ ->andWhere([
'between',
'creation_date',
date('Y-m-d 00:00:00', strtotime('-3 weeks', time())),
$marketplaceOrderDelivery = MarketplaceOrderDelivery::find()->where(['order_id' => $marketplaceOrder->id])->one();
/* @var $marketplaceOrderDelivery MarketplaceOrderDelivery */
$delivery_type = $marketplaceOrderDelivery && $marketplaceOrderDelivery->type == 'DELIVERY' ? 1 : 2;
+
+ $deliveryToDate = null;
+ $deliveryToTime = null;
+ if ($marketplaceOrder->delivery_to) {
+ $deliveryTo = explode(' ', $marketplaceOrder->delivery_to);
+ $deliveryToDate = $deliveryTo[0];
+ $deliveryToTime = $deliveryTo[1];
+ }
+
$result[] = [
'id' => $marketplaceOrder->guid,
'store_id' => $store_id,
'marketplace_name' => $marketplaceOrder->marketplace_name ?? 'ЯндексМаркет',
'link' => $marketplaceOrder->order_link ?? '',
'order_number' => $marketplaceOrder->marketplace_order_id,
- 'delivery_date' => '',
- 'delivery_time' => '',
+ 'delivery_date' => $deliveryToDate ?? '',
+ 'delivery_time' => $deliveryToTime ?? '',
'delivery_type' => $delivery_type,
'items' => $itemsFiltered,
// 'marketplace_order_id' => $marketplaceOrder->marketplace_order_id,
--- /dev/null
+<?php
+
+use yii\db\Migration;
+
+class m250425_084749_add_column_readyto_1c_to_marketplace_orders_table extends Migration
+{
+ const TABLE_NAME = 'erp24.marketplace_orders';
+ /**
+ * {@inheritdoc}
+ */
+ public function safeUp()
+ {
+ $table = $this->db->schema->getTableSchema(self::TABLE_NAME);
+ if ($table === null) {
+ return;
+ }
+
+ if (!$this->db->schema->getTableSchema(self::TABLE_NAME, true)->getColumn('readyto_1c')) {
+ $this->addColumn(
+ self::TABLE_NAME,
+ 'readyto_1c',
+ $this->tinyInteger()->defaultValue(0)->comment('готовность к отправке в 1С'),
+ );
+ }
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function safeDown()
+ {
+ if ($this->db->schema->getTableSchema(self::TABLE_NAME, true)->getColumn('readyto_1c')) {
+ $this->dropColumn(self::TABLE_NAME, 'readyto_1c');
+ }
+ }
+
+ /*
+ // Use up()/down() to run migration code without a transaction.
+ public function up()
+ {
+
+ }
+
+ public function down()
+ {
+ echo "m250425_084749_add_column_readyto_1c_to_marketplace_orders_table cannot be reverted.\n";
+
+ return false;
+ }
+ */
+}
$deliveryModel->longitude = $gps->getLongitude();
}
}
+ $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
+ )
+ );
+ }
+ }
+
+ }
$dates = $delivery->getDates();
if ($dates) {
$deliveryModel->delivery_start = date(
$marketplaceOrder->status_id = (int)$statusId;
$marketplaceOrder->substatus_id = (int)$substatusId;
$marketplaceOrder->updated_at = date('Y-m-d H:i:s', strtotime($order->getUpdatedAt()));
+ $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
+ )
+ );
+ }
+ }
+
+ }
if (!$marketplaceOrder->save()) {
Yii::error(
'Ошибка сохранения: ' . json_encode(
return $model->status1c->status ?? null;
}
],
+ [
+ 'attribute' => 'readyto_1c',
+ 'value' => function ($model) {
+ return $model->readyto_1c == 0 ? 'Не готов' : 'Готов';
+ }
+ ],
[
'template' => '{view}',
'class' => ActionColumn::class,
'guid',
'marketplace_name',
'marketplace_id',
+ [
+ 'attribute' => 'readyto_1c',
+ 'value' => function ($model) {
+ return $model->readyto_1c == 0 ? 'Не готов' : 'Готов';
+ }
+ ],
[
'attribute' => 'status_1c',
'value' => function ($model) {