From: marina Date: Tue, 3 Dec 2024 13:49:01 +0000 (+0300) Subject: ERP-243 Действия по замене (II этап) X-Git-Tag: 1.7~198^2 X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=00b5f12577ff018c6f6f8958ca8c9f67eea5d421;p=erp24_rep%2Fyii-erp24%2F.git ERP-243 Действия по замене (II этап) --- diff --git a/erp24/controllers/ShiftTransferController.php b/erp24/controllers/ShiftTransferController.php index dbe69cca..bff9fb0f 100644 --- a/erp24/controllers/ShiftTransferController.php +++ b/erp24/controllers/ShiftTransferController.php @@ -174,6 +174,8 @@ class ShiftTransferController extends Controller } elseif ($action === 'rejection') { $model->updateAttributes(['status_id' => ShiftTransfer::STATUS_ID_TRANSFER_ACTIONS]); } + + $this->redirect(Yii::$app->request->referrer); } $shiftTransfer = ShiftTransfer::findOne($id); diff --git a/erp24/records/ReplacementInvoice.php b/erp24/records/ReplacementInvoice.php index e088fd0e..556ef76f 100644 --- a/erp24/records/ReplacementInvoice.php +++ b/erp24/records/ReplacementInvoice.php @@ -87,7 +87,6 @@ class ReplacementInvoice extends \yii\db\ActiveRecord 'created_admin_id' => $shiftTransfer->end_shift_admin_id, 'updated_admin_id' => $shiftTransfer->start_shift_admin_id, 'confirm_admin_id' => $shiftTransfer->start_shift_admin_id, - 'number' => $guid, 'store_id' => $storeId, 'store_guid' => $shiftTransfer->store_guid, 'date' => $shiftTransfer->date, @@ -98,6 +97,9 @@ class ReplacementInvoice extends \yii\db\ActiveRecord if ($model->validate()) { $model->save(); + $model->update([ + 'number' => 'ЕРП_ПС_' . date("Y-m-d_H-i") . $model->id, + ]); ReplacementInvoiceProducts::setData($model, $shiftTransfer); } else { var_dump($model->getErrors()); diff --git a/erp24/records/ReplacementInvoiceProducts.php b/erp24/records/ReplacementInvoiceProducts.php index 2f8065e7..c06dfbb5 100644 --- a/erp24/records/ReplacementInvoiceProducts.php +++ b/erp24/records/ReplacementInvoiceProducts.php @@ -141,24 +141,24 @@ class ReplacementInvoiceProducts extends \yii\db\ActiveRecord { return [ 'id' => 'ID', - 'replacement_invoice_id' => 'Replacement Invoice ID', - 'name' => 'Name', - 'product_id' => 'Product ID', - 'direction_id' => 'Direction ID', - 'quantity' => 'Quantity', - 'price' => 'Price', - 'price_retail' => 'Price Retail', - 'price_self_cost' => 'Price Self Cost', - 'summ' => 'Summ', - 'summ_retail' => 'Summ Retail', - 'summ_self_cost' => 'Summ Self Cost', - 'active_product' => 'Active Product', - 'created_at' => 'Created At', - 'updated_at' => 'Updated At', - 'deleted_at' => 'Deleted At', - 'created_admin_id' => 'Created Admin ID', - 'updated_admin_id' => 'Updated Admin ID', - 'deleted_admin_id' => 'Deleted Admin ID', + 'replacement_invoice_id' => 'ID заменяющего счета', + 'name' => 'Название товара', + 'product_id' => 'GUID товара', + 'direction_id' => 'Направление передачи товара', + 'quantity' => 'Количество', + 'price' => 'Цена', + 'price_retail' => 'Розничная цена', + 'price_self_cost' => 'Себестоимость', + 'summ' => 'Сумма', + 'summ_retail' => 'Сумма по розничной цене', + 'summ_self_cost' => 'Сумма себестоимости', + 'active_product' => 'Активность товара', + 'created_at' => 'Дата создания', + 'updated_at' => 'Дата обновления', + 'deleted_at' => 'Дата удаления', + 'created_admin_id' => 'Создан пользователем', + 'updated_admin_id' => 'Изменен пользователем', + 'deleted_admin_id' => 'Удален пользователем', ]; } diff --git a/erp24/records/StoreBalance.php b/erp24/records/StoreBalance.php index 83a9a532..61ed1f83 100644 --- a/erp24/records/StoreBalance.php +++ b/erp24/records/StoreBalance.php @@ -37,23 +37,26 @@ class StoreBalance extends \yii\db\ActiveRecord public static function setData($shiftTransfer) { - $equalizationData = EqualizationRemains::find() ->where(['shift_id' => $shiftTransfer->id]) + ->leftJoin('products_1c AS product', 'product.id = equalization_remains.product_id') + ->leftJoin('products_1c AS product_replacement', 'product_replacement.id = equalization_remains.product_replacement_id') ->select([ - 'product_id', - 'product_count', - 'product_price', - 'product_self_cost', - 'product_replacement_id', - 'product_replacement_count', - 'product_replacement_price', - 'product_replacement_self_cost', - 'balance', - 'balance_self_cost' + 'equalization_remains.product_id', + 'product.name AS product_name', + 'equalization_remains.product_count', + 'equalization_remains.product_price', + 'equalization_remains.product_self_cost', + 'equalization_remains.product_replacement_id', + 'product_replacement.name AS product_replacement_name', + 'equalization_remains.product_replacement_count', + 'equalization_remains.product_replacement_price', + 'equalization_remains.product_replacement_self_cost', + 'equalization_remains.balance', + 'equalization_remains.balance_self_cost' ]) ->asArray() - ->all() ?? ''; + ->all(); $articule = implode(';', array_map(fn($equalizationRemain) => $equalizationRemain->product->articule . '=>' . $equalizationRemain->productReplacement->articule, @@ -70,7 +73,7 @@ class StoreBalance extends \yii\db\ActiveRecord ->scalar() ?? '', 'status_id' => self::STATUS_NEW, 'comment' => $shiftTransfer->comment, - 'json' => json_encode($equalizationData), + 'json' => json_encode($equalizationData, JSON_UNESCAPED_UNICODE), 'replace_articule' => $articule, 'type_id' => self::REPLACEMENT_ACTIONS, ]); diff --git a/erp24/views/replacement-invoice/view.php b/erp24/views/replacement-invoice/view.php index c4993b41..e8e735bc 100644 --- a/erp24/views/replacement-invoice/view.php +++ b/erp24/views/replacement-invoice/view.php @@ -106,7 +106,6 @@ $this->params['breadcrumbs'][] = $this->title; return $model->summ_self_cost ?? 'N/A'; }, ], - 'active_product:boolean', 'updated_at:datetime', [ 'attribute' => 'updated_admin_id', @@ -114,7 +113,6 @@ $this->params['breadcrumbs'][] = $this->title; return $model->updatedAdmin->name_full; }, ], - ['class' => 'yii\grid\ActionColumn'], ], ]); ?> diff --git a/erp24/views/shift-transfer/_replacement.php b/erp24/views/shift-transfer/_replacement.php index e22c7c37..f1d2e1ac 100644 --- a/erp24/views/shift-transfer/_replacement.php +++ b/erp24/views/shift-transfer/_replacement.php @@ -228,7 +228,11 @@ if (in_array($shiftTransfer->status_id, [ShiftTransfer::STATUS_ID_TRANSFER_ACTIO 'layout' => '{items}', ]); - if (in_array(Yii::$app->user->id, $usersOnStoreArray) && $shiftTransfer->status_id == ShiftTransfer::STATUS_ID_READY_TO_ACCEPT) { + if ( + in_array(Yii::$app->user->id, $usersOnStoreArray) + && $shiftTransfer->status_id == ShiftTransfer::STATUS_ID_READY_TO_ACCEPT + && Yii::$app->user->id != $shiftTransfer->end_shift_admin_id + ) { echo Html::submitButton('Принять', [ 'class' => 'btn btn-primary float-right', 'name' => 'action', diff --git a/erp24/views/store-balance/index.php b/erp24/views/store-balance/index.php index 55b5f054..c8fd35ff 100644 --- a/erp24/views/store-balance/index.php +++ b/erp24/views/store-balance/index.php @@ -2,6 +2,7 @@ use yii\helpers\Html; use yii\grid\GridView; +use yii_app\records\CityStore; /* @var $this yii\web\View */ /* @var $dataProvider yii\data\ActiveDataProvider */ @@ -16,15 +17,35 @@ $this->params['breadcrumbs'][] = $this->title; $dataProvider, 'columns' => [ - ['class' => 'yii\grid\SerialColumn'], 'id', - 'store_id', - 'shift_id', + [ + 'attribute' => 'store_id', + 'value' => function ($model) { + return CityStore::findOne(\yii_app\records\ExportImportTable::findOne(['export_val' => $model->store_id])->entity_id)->name; + } + ], + [ + 'attribute' => 'shift_id', + 'format' => 'raw', + 'value' => function ($model) { + return \yii\helpers\Html::a("Передача смены #$model->shift_id", ['shift-transfer/view', 'id' => $model->shift_id]); + } + ], 'date', 'amount', - 'status_id', - 'type_id', + [ + 'attribute' => 'status_id', + 'value' => function ($model) { + return $model->status_id == \yii_app\records\StoreBalance::STATUS_NEW ? 'Новая' : $model->status_id; + } + ], + [ + 'attribute' => 'type_id', + 'value' => function ($model) { + return $model->type_id == \yii_app\records\StoreBalance::REPLACEMENT_ACTIONS ? 'Действия по замене' : $model->type_id; + } + ], 'comment_controler', [ 'class' => 'yii\grid\ActionColumn', diff --git a/erp24/views/store-balance/view.php b/erp24/views/store-balance/view.php index d593eebb..ec596729 100644 --- a/erp24/views/store-balance/view.php +++ b/erp24/views/store-balance/view.php @@ -1,11 +1,13 @@ title = 'Детали баланса магазина: ' . $model->id; +$this->title = 'Детали баланса магазина # ' . $model->id; $this->params['breadcrumbs'][] = ['label' => 'Баланс магазинов', 'url' => ['index']]; $this->params['breadcrumbs'][] = $this->title; ?> @@ -17,54 +19,51 @@ $this->params['breadcrumbs'][] = $this->title; 'btn btn-primary']) ?>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IDid) ?>
Магазинstore_id) ?>
Сменаshift_id) ?>
Датаdate) ?>
Суммаamount) ?>
Статусstatus_id) ?>
Комментарийcomment) ?>
JSONjson) ?>
Заменить товарыreplace_articule) ?>
Комментарий контролераcomment_controler) ?>
ID контролераcontroler_id) ?>
Типtype_id) ?>
+ $model, + 'attributes' => [ + [ + 'attribute' => 'store_id', + 'value' => function ($model) { + // Для отображения магазина с учетом связанной таблицы + return CityStore::findOne(\yii_app\records\ExportImportTable::findOne(['export_val' => $model->store_id])->entity_id)->name; + } + ], + [ + 'attribute' => 'shift_id', + 'value' => function ($model) { + // Если требуется вывести ссылку на смену + return Html::a("Передача смены #$model->shift_id", ['shift-transfer/view', 'id' => $model->shift_id]); + }, + 'format' => 'raw', // Позволяет выводить HTML, то есть ссылку + ], + 'date', + 'amount', + [ + 'attribute' => 'status_id', + 'value' => function ($model) { + return $model->status_id == \yii_app\records\StoreBalance::STATUS_NEW ? 'Новая' : $model->status_id; + } + ], + [ + 'attribute' => 'type_id', + 'value' => function ($model) { + return $model->type_id == \yii_app\records\StoreBalance::REPLACEMENT_ACTIONS ? 'Действия по замене' : $model->type_id; + } + ], + 'comment', + [ + 'attribute' => 'json', + 'value' => function ($model) { + $jsonArray = json_decode($model->json, true); + return Html::tag('pre', json_encode($jsonArray, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE)); + }, + 'format' => 'raw', + ], + 'replace_articule', + 'comment_controler', + 'controler_id', + ], + ]) ?> +