From ef81f8586058ec2147a4521a32420509c45b16b4 Mon Sep 17 00:00:00 2001 From: Alexander Smirnov Date: Tue, 19 Nov 2024 16:37:20 +0300 Subject: [PATCH] =?utf8?q?[ERP-240]=20=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD?= =?utf8?q?=D0=B8=D0=B5=20=D1=82=D0=B0=D0=B1=D0=BB=D0=B8=D1=86=D1=8B=20stor?= =?utf8?q?e=5Fbalance?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- ...1118_124938_create_table_store_balance.php | 43 ++++++++++++ erp24/records/StoreBalance.php | 69 +++++++++++++++++++ 2 files changed, 112 insertions(+) create mode 100755 erp24/migrations/m241118_124938_create_table_store_balance.php create mode 100644 erp24/records/StoreBalance.php diff --git a/erp24/migrations/m241118_124938_create_table_store_balance.php b/erp24/migrations/m241118_124938_create_table_store_balance.php new file mode 100755 index 00000000..d2714333 --- /dev/null +++ b/erp24/migrations/m241118_124938_create_table_store_balance.php @@ -0,0 +1,43 @@ +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); + } +} diff --git a/erp24/records/StoreBalance.php b/erp24/records/StoreBalance.php new file mode 100644 index 00000000..178b85be --- /dev/null +++ b/erp24/records/StoreBalance.php @@ -0,0 +1,69 @@ + 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', + ]; + } +} -- 2.39.5