diff --git a/models/Order.php b/models/Order.php index 9c6cbf6..67dcb13 100755 --- a/models/Order.php +++ b/models/Order.php @@ -129,24 +129,72 @@ return $result; } + /** + * @param string $attr + * @param array $values + * + * @return array + * Return array in form ['old'=>'old value ...', 'new' => 'new value ...'] + */ public function getLogAttributes(string $attr, array $values) { - $labels = Label::find()->with('lang')->indexBy('id')->all(); if ($attr == 'deadline') { return [ - 'old' => empty($values['old']) ? '' : date('d.m.Y', $values['old']), - 'new' => empty($values['new']) ? '' : date('d.m.Y', $values['new']), + 'old' => empty($values[ 'old' ]) ? '' : date('d.m.Y', $values[ 'old' ]), + 'new' => empty($values[ 'new' ]) ? '' : date('d.m.Y', $values[ 'new' ]), + ]; + } elseif ($attr == 'reason') { + return [ + 'old' => empty($values[ 'old' ]) ? '' : self::REASONS[ $values[ 'old' ] ], + 'new' => empty($values[ 'new' ]) ? '' : self::REASONS[ $values[ 'new' ] ], + ]; + } elseif ($attr == 'label') { + $labels = Label::find() + ->with('lang') + ->indexBy('id') + ->all(); + return [ + 'old' => empty($values[ 'old' ]) ? '' : $labels[ $values[ 'old' ] ]->lang->title, + 'new' => empty($values[ 'new' ]) ? '' : $labels[ $values[ 'new' ] ]->lang->title, ]; - } elseif ($attr = 'reason') { + } elseif ($attr == 'delivery') { + $deliveries = Delivery::find() + ->with('lang') + ->indexBy('id') + ->all(); return [ - 'old' => empty($values['old']) ? '' : self::REASONS[$values['old']], - 'new' => empty($values['new']) ? '' : self::REASONS[$values['new']], + 'old' => empty($values[ 'old' ]) ? '' : $deliveries[ $values[ 'old' ] ]->lang->title, + 'new' => empty($values[ 'new' ]) ? '' : $deliveries[ $values[ 'new' ] ]->lang->title, ]; - } elseif ($attr = 'label') { + } elseif ($attr == 'manager_id') { + $users = User::find() + ->indexBy('id') + ->all(); return [ - 'old' => empty($values['old']) ? '' : $labels[$values['old']]->lang->title, - 'new' => empty($values['new']) ? '' : $labels[$values['new']]->lang->title, + 'old' => empty($values[ 'old' ]) ? '' : $users[ $values[ 'old' ] ]->username, + 'new' => empty($values[ 'new' ]) ? '' : $users[ $values[ 'new' ] ]->username, ]; + } elseif ($attr == 'payment') { + $payment = OrderPayment::find() + ->with('lang') + ->indexBy('id') + ->all(); + return [ + 'old' => empty($values[ 'old' ]) ? '' : $payment[ $values[ 'old' ] ]->lang->title, + 'new' => empty($values[ 'new' ]) ? '' : $payment[ $values[ 'new' ] ]->lang->title, + ]; + } elseif ($attr == 'shipping_by') { + return [ + 'old' => empty($values[ 'old' ]) ? '' : self::SHIPPING_BY[ $values[ 'old' ] ][ 'label' ], + 'new' => empty($values[ 'new' ]) ? '' : self::SHIPPING_BY[ $values[ 'new' ] ][ 'label' ], + ]; + } elseif ($attr == 'pay') { + return [ + 'old' => ($values[ 'old' ] == true) ? 'Оплачен' : 'Не оплачен', + 'new' => ($values[ 'new' ] == true) ? 'Оплачен' : 'Не оплачен', + ]; + } else { + return $values; } } @@ -263,13 +311,17 @@ public function afterSave($insert, $changedAttributes) { +// VarDumper::dump($changedAttributes, 10, true);die(); $data = []; foreach ($changedAttributes as $key => $attribute) { if ($this->oldAttributes[ $key ] != $attribute) { - $data[ $key ] = [ - 'old' => $attribute, - 'new' => $this->oldAttributes[ $key ], - ]; + $data[ $key ] = $this->getLogAttributes( + $key, + [ + 'old' => $attribute, + 'new' => $this->oldAttributes[ $key ], + ] + ); } } diff --git a/views/order/_log_item.php b/views/order/_log_item.php index 8bd37ee..6eca842 100644 --- a/views/order/_log_item.php +++ b/views/order/_log_item.php @@ -12,18 +12,18 @@
Поле | -с | -на | +Старое значение | +Новое значение |
---|