]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
feat(BC-248): добавить поле purchase_date в обращения KikFeedback
authorAleksey Filippov <Aleksey.Filippov@erp-flowers.ru>
Wed, 1 Apr 2026 16:08:35 +0000 (19:08 +0300)
committerAleksey Filippov <Aleksey.Filippov@erp-flowers.ru>
Wed, 1 Apr 2026 16:08:35 +0000 (19:08 +0300)
- Миграция: колонка purchase_date (date, nullable) в kik_feedback_request
- Модель KikFeedbackRequest: PHPDoc, rules, attributeLabels
- API2 KikController: приём purchase_date из bodyParams
- API3 KikService + FeedbackInput: приём purchase_date, маппинг max_chatbot
- View: отображение "Дата покупки" в карточке обращения

erp24/api2/controllers/KikController.php
erp24/api3/core/services/KikService.php
erp24/api3/modules/v1/requests/kik/FeedbackInput.php
erp24/migrations/m260401_180000_add_purchase_date_to_kik_feedback_request.php [new file with mode: 0644]
erp24/records/KikFeedbackRequest.php
erp24/views/kik-feedback/view.php

index f615a8ddcb1490b2d651cf566223be0e37819bca..2d3388a3933af5ab977f058e5cb1c6d9225018d0 100644 (file)
@@ -41,6 +41,7 @@ class KikController extends BaseController {
         $request->check_id = $check_id;
         $request->order_id = $order_id;
         $request->store_id = $sale ? $sale->store_id_1c :  ($store_id ?? '');
+        $request->purchase_date = Yii::$app->request->bodyParams['purchase_date'] ?? null;
         $request->client_info = $client_info;
         $request->category = '';
         $request->subcategory = '';
index 6e2c397b9685177cf39680caf485ee375dac6095..3b72194ca3b91216b758d2e844ed31f48f7c47b2 100644 (file)
@@ -27,9 +27,10 @@ class KikService
         $request = new KikFeedbackRequest;
         $request->name = $client_name;
         $request->phone = $phone;
-        $request->source = ['chatbot' => 8][$source_alias] ?? 0;
+        $request->source = ['chatbot' => 8, 'amocrm' => 10, 'max_chatbot' => 11][$source_alias] ?? 0;
         $request->check_id = $check_id;
         $request->store_id = $sale ? $sale->store_id_1c :  ($store_id ?? '');
+        $request->purchase_date = $data->purchase_date ?? null;
         $request->client_info = $client_info;
         $request->category = '';
         $request->subcategory = '';
index 9183d48af78fcc29010f5000d8feba4bb53b5835..21049492c08c2babd238f3d44cd7cf390fd869ba 100644 (file)
@@ -13,6 +13,7 @@ class FeedbackInput extends Model
     public $client_info;
     public $check_id;
     public $store_id;
+    public $purchase_date;
     public $files;
 
     public function rules()
@@ -22,7 +23,7 @@ class FeedbackInput extends Model
             ['phone', PhoneValidator::class],
             [['client_name', 'source_alias', 'client_info'], 'string'],
             [['check_id', 'store_id'], 'string', 'min' => 36, 'max' => 36],
-            [['check_id', 'store_id', 'files'], 'safe'],
+            [['check_id', 'store_id', 'files', 'purchase_date'], 'safe'],
         ];
     }
 }
\ No newline at end of file
diff --git a/erp24/migrations/m260401_180000_add_purchase_date_to_kik_feedback_request.php b/erp24/migrations/m260401_180000_add_purchase_date_to_kik_feedback_request.php
new file mode 100644 (file)
index 0000000..8a30ff9
--- /dev/null
@@ -0,0 +1,23 @@
+<?php
+
+use yii\db\Migration;
+
+/**
+ * BC-248: Добавить поле "Дата покупки" в обращения KikFeedback.
+ */
+class m260401_180000_add_purchase_date_to_kik_feedback_request extends Migration
+{
+    public function safeUp()
+    {
+        $this->addColumn(
+            '{{%erp24.kik_feedback_request}}',
+            'purchase_date',
+            $this->date()->null()->comment('Дата покупки')
+        );
+    }
+
+    public function safeDown()
+    {
+        $this->dropColumn('{{%erp24.kik_feedback_request}}', 'purchase_date');
+    }
+}
index 00ab93b8ad528f82b028901293cb9f44b3a9dda6..084664eca6d3d3b4f74addaacbaba69788318262 100644 (file)
@@ -38,6 +38,7 @@ use yii\helpers\ArrayHelper;
  * @property int $status_5_duration Время нахождения в статусе 5
  * @property int $status_6_duration Время нахождения в статусе 6
  * @property int $status_7_duration Время нахождения в статусе 7
+ * @property string|null $purchase_date Дата покупки
  */
 class KikFeedbackRequest extends \yii\db\ActiveRecord
 {
@@ -99,7 +100,7 @@ class KikFeedbackRequest extends \yii\db\ActiveRecord
                 'status_6_duration',
                 'status_7_duration',
                 ], 'integer'],
-            [['created_at', 'closed_at', 'responsible', 'comment'], 'safe'],
+            [['created_at', 'closed_at', 'responsible', 'comment', 'purchase_date'], 'safe'],
             [['name'], 'string', 'max' => 255],
             [['client_info', 'management_decision', 'verdict_description'], 'string', 'max' => 1000],
             [['check_id', 'phone', 'order_id'], 'string', 'max' => 40],
@@ -143,6 +144,7 @@ class KikFeedbackRequest extends \yii\db\ActiveRecord
             'status_5_duration' => 'status_5_duration',
             'status_6_duration' => 'status_6_duration',
             'status_7_duration' => 'status_7_duration',
+            'purchase_date' => 'Дата покупки',
         ];
     }
 
index 4cac6ca173c33948c9661f693754a40c23360a30..9c950b3de522f6ce34cdee7d6c5aacaa584c4c10 100644 (file)
@@ -162,6 +162,10 @@ function drawComplete($model) {
                         'format' => 'raw',
                         'value' => $model->order_id ?? '',
                     ],
+                    [
+                        'label' => 'Дата покупки',
+                        'value' => $model->purchase_date ? date('d.m.Y', strtotime($model->purchase_date)) : '',
+                    ],
                     [
                         'label' => 'Магазин',
                         'value' => $model->store->name ?? '',