$sales = [];
$phoneByAmoIdMap = [];
- if ($action == 'show') {
- $sales = Sales::find()->select(['id', 'order_id'])->where(['between', 'date', $model->date_from, $model->date_to])
+ if ($action == 'show' || $action == 'update') {
+ $sales = Sales::find()->select(['id', 'order_id', 'date'])->where(['between', 'date', $model->date_from, $model->date_to])
->andWhere(['not in', 'order_id', ['', null]])
->andWhere(['phone' => 0])
->all();
$orderIds = ArrayHelper::getColumn($sales, 'order_id');
+ $orderIdsClean = [];
+ foreach ($orderIds as $orderId) {
+ if (is_int($orderId)) {
+ $orderIdsClean[] = $orderId;
+ }
+ }
$ordersAmo = OrdersAmo::find()->select(['amo_id', 'phone'])
- ->where(['amo_id' => $orderIds])
+ ->where(['amo_id' => $orderIdsClean])
->andWhere(['not in', 'phone', ['', null]])
->all();
$phoneByAmoIdMap = ArrayHelper::map($ordersAmo, 'amo_id', 'phone');
+ if ($action == 'update') {
+ foreach ($sales as $sale) {
+ /** @var $sale Sales */
+ if (!empty($phoneByAmoIdMap[$sale->order_id]) && is_int($phoneByAmoIdMap[$sale->order_id])) {
+ Sales::updateAll(['phone' => $phoneByAmoIdMap[$sale->order_id]], ['order_id' => $sale->order_id]);
+ }
+ }
+ }
}
return $this->controller->render('fill-phone',
<?php if (!empty($phoneByAmoIdMap[$sale->order_id])): ?>
<tr>
<td><?= $sale->id ?></td>
- <td><?= $sale->order_id ?></td>
<td><?= $phoneByAmoIdMap[$sale->order_id] ?></td>
+ <td><?= $sale->order_id ?></td>
+ <td><?= $sale->date ?></td>
</tr>
<?php endif; ?>
<?php endforeach; ?>
<thead>
<tr>
<th>guid</th>
- <th>order_id</th>
<th>phone</th>
+ <th>order_id</th>
+ <th>date</th>
</tr>
</thead>
<tbody>
<?php foreach($sales as $sale): /** @var $sale Sales */ ?>
<tr>
<td><?= $sale->id ?></td>
- <td><?= $sale->order_id ?></td>
<td><?= $phoneByAmoIdMap[$sale->order_id] ?? 'missing' ?></td>
+ <td><?= $sale->order_id ?></td>
+ <td><?= $sale->date ?></td>
</tr>
<?php endforeach; ?>
</tbody>