--- /dev/null
+<?php
+
+use yii\db\Migration;
+
+/**
+ * Class m241118_124938_create_table_store_balance
+ */
+class m241118_124938_create_table_store_balance extends Migration
+{
+ const TABLE_NAME = 'erp24.store_balance';
+
+ /**
+ * {@inheritdoc}
+ */
+ public function safeUp()
+ {
+ $this->createTable(self::TABLE_NAME, [
+ 'id' => $this->primaryKey(),
+ 'store_id' => $this->string(36)->notNull()->comment('GUID магазина'),
+ 'shift_id' => $this->integer()->notNull()->comment('ID смены по передаче актуальных остатков'),
+ 'date' => $this->dateTime()->notNull()->comment('дата и время внесения'),
+ 'amount' => $this->float()->notNull()->comment('Сумма остатков (недостача или излишек) =remains_summ из shift_remains'),
+ 'status_id' => $this->tinyInteger()->notNull()->comment('статус запись 0 новая 1 в работе (требует разбирательств) 2 проверено'),
+ 'comment' => $this->text()->null()->comment('комментарий смены'),
+ 'json' => $this->text()->null()->comment('массив с товарами что на что меняли, с указанием продажной цены'),
+ 'replace_articule' => $this->text()->null()->comment('складывается из артикулов или ID товаров что' .
+ ' на что меняли разделитель - (для будущей аналитики) пример 12-55 . Товар ID=12 заменили на товар ID=55.' .
+ ' Или же эти данные можно разнести по отдельным ячейкам - как выберите при реализации, [{from: to:}, {from: to:}]'),
+ 'comment_controler' => $this->text()->null()->comment('комментарий контроллера'),
+ 'controler_id' => $this->integer()->null()->comment('ID сотрудника кто контролирует статус записи'),
+ 'type_id' => $this->tinyInteger()->notNull()->comment('Тип записи -1 - недостача, 1 излишек,' .
+ '2 действия по замене, 5 компенсация от контролера'),
+ ]);
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function safeDown()
+ {
+ $this->dropTable(self::TABLE_NAME);
+ }
+}
--- /dev/null
+<?php
+
+namespace yii_app\records;
+
+use Yii;
+
+/**
+ * This is the model class for table "store_balance".
+ *
+ * @property int $id
+ * @property string $store_id GUID магазина
+ * @property int $shift_id ID смены по передаче актуальных остатков
+ * @property string $date дата и время внесения
+ * @property float $amount Сумма остатков (недостача или излишек) =remains_summ из shift_remains
+ * @property int $status_id статус запись 0 новая 1 в работе (требует разбирательств) 2 проверено
+ * @property string|null $comment комментарий смены
+ * @property string|null $json массив с товарами что на что меняли, с указанием продажной цены
+ * @property string|null $replace_articule складывается из артикулов или ID товаров что на что меняли разделитель - (для будущей аналитики) пример 12-55 . Товар ID=12 заменили на товар ID=55. Или же эти данные можно разнести по отдельным ячейкам - как выберите при реализации, [{from: to:}, {from: to:}]
+ * @property string|null $comment_controler комментарий контроллера
+ * @property int|null $controler_id ID сотрудника кто контролирует статус записи
+ * @property int $type_id Тип записи -1 - недостача, 1 излишек,2 действия по замене, 5 компенсация от контролера
+ */
+class StoreBalance extends \yii\db\ActiveRecord
+{
+ /**
+ * {@inheritdoc}
+ */
+ public static function tableName()
+ {
+ return 'store_balance';
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function rules()
+ {
+ return [
+ [['store_id', 'shift_id', 'date', 'amount', 'status_id', 'type_id'], 'required'],
+ [['shift_id', 'status_id', 'controler_id', 'type_id'], 'default', 'value' => null],
+ [['shift_id', 'status_id', 'controler_id', 'type_id'], 'integer'],
+ [['date'], 'safe'],
+ [['amount'], 'number'],
+ [['comment', 'json', 'replace_articule', 'comment_controler'], 'string'],
+ [['store_id'], 'string', 'max' => 36],
+ ];
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function attributeLabels()
+ {
+ return [
+ 'id' => 'ID',
+ 'store_id' => 'Store ID',
+ 'shift_id' => 'Shift ID',
+ 'date' => 'Date',
+ 'amount' => 'Amount',
+ 'status_id' => 'Status ID',
+ 'comment' => 'Comment',
+ 'json' => 'Json',
+ 'replace_articule' => 'Replace Articule',
+ 'comment_controler' => 'Comment Controler',
+ 'controler_id' => 'Controler ID',
+ 'type_id' => 'Type ID',
+ ];
+ }
+}