From: marina Date: Tue, 10 Dec 2024 11:09:17 +0000 (+0300) Subject: ERP-259 Доработка второго шага передачи смен X-Git-Tag: 1.7~180^2~5 X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=cce828194a6b6f6f7a21958d881f42ba4c497974;p=erp24_rep%2Fyii-erp24%2F.git ERP-259 Доработка второго шага передачи смен --- diff --git a/erp24/commands/CronController.php b/erp24/commands/CronController.php index 574a3fcc..de17fde3 100644 --- a/erp24/commands/CronController.php +++ b/erp24/commands/CronController.php @@ -5,6 +5,11 @@ namespace yii_app\commands; use Yii; use yii\console\Controller; use yii\db\Expression; +use yii_app\records\EqualizationRemains; +use yii_app\records\Product1cReplacement; +use yii_app\records\Products1c; +use yii_app\records\ReplacementInvoice; +use yii_app\records\ReplacementInvoiceProducts; class CronController extends Controller { @@ -91,6 +96,49 @@ class CronController extends Controller return 'ok'; } +// public function actionCreateResortings() { +//пересортица +// $req_id=time(); +// +// $replacementInvoice = ReplacementInvoice::findAll(['date' => date('Y-m-d' - '1 days')]); +// if (!empty($replacementInvoice)) { +// $replacementData = ReplacementInvoiceProducts::findAll(['replacement_invoice_id' => $replacementInvoice[0]->id]); +// +// $items = []; +// foreach ($replacementData as $replacement) { +// //equalization_remains +// $product = Products1c::findOne(['id' => $replacement->product_id]); +// $replacement = Product1cReplacement::find()->andWhere(['guid' => $replacement->product_id])->select('guid_replacement')->column(); +// array_intersect() +// $productReplacement = Products1c::findOne(['id' => $replacement->product_id]); +// +// $items[] = [ +// +// //products_1c_additional_characteristics +// 'product_id' => $replacement->product_id, +// 'color' => $replacement->color, +// 'price' => $replacement->price, +// 'new_product_id' => $replacement->new_product_id, +// 'new_color' => $replacement->new_color, +// 'new_price' => $replacement->new_price, +// 'quantity' => $replacement->quantity, +// ]; +// } +// +// $json_post = json_encode([ +// 'request_id' => $req_id, +// 'id' => $replacementInvoice[0]->number, +// 'store_id' => $replacementInvoice[0]->store_guid, +// 'comment' => $replacementInvoice[0]->comment, +// 'items' => $items +// ]); +// } +// +// $this->setApiCron($req_id, $json_post); +// +// return 'ok'; +// } + public function actionBalanceHistory() { $data = Yii::$app->db->createCommand("SELECT * FROM balances")->queryAll(); diff --git a/erp24/controllers/ShiftTransferController.php b/erp24/controllers/ShiftTransferController.php index 36362a9c..ce8298a5 100644 --- a/erp24/controllers/ShiftTransferController.php +++ b/erp24/controllers/ShiftTransferController.php @@ -186,8 +186,11 @@ class ShiftTransferController extends Controller } elseif ($action === 'save') { $model->updateAttributes(['status_id' => ShiftTransfer::STATUS_ID_READY_TO_ACCEPT]); EqualizationRemains::updateData(Yii::$app->request->post()['ShiftTransfer']['equalizationRemains'], $id); - } elseif ($action === 'rejection') { + } elseif ($action === 'rejection' || $action === 'back') { $model->updateAttributes(['status_id' => ShiftTransfer::STATUS_ID_TRANSFER_ACTIONS]); + //удаление данных из табличек с плюсом и минусом + } elseif ($action === 'resume') { + //формирование табличек с минусом и плюсом } $this->redirect(Yii::$app->request->referrer); diff --git a/erp24/migrations/m241210_102844_change_column_name_on_equalization_remains.php b/erp24/migrations/m241210_102844_change_column_name_on_equalization_remains.php new file mode 100644 index 00000000..f2c87a64 --- /dev/null +++ b/erp24/migrations/m241210_102844_change_column_name_on_equalization_remains.php @@ -0,0 +1,38 @@ +db->getTableSchema('erp24.equalization_remains', true)->getColumn('shift_id') !== null) { + $this->renameColumn('erp24.equalization_remains', 'shift_id', 'shift_transfer_id'); + } + + if ($this->db->getTableSchema('erp24.store_balance', true)->getColumn('shift_id') !== null) { + $this->renameColumn('erp24.store_balance', 'shift_id', 'shift_transfer_id'); + } + } + + /** + * {@inheritdoc} + */ + public function safeDown() + { + if ($this->db->getTableSchema('erp24.equalization_remains', true)->getColumn('shift_transfer_id') !== null) { + $this->renameColumn('erp24.equalization_remains', 'shift_transfer_id', 'shift_id'); + } + + if ($this->db->getTableSchema('erp24.store_balance', true)->getColumn('shift_id') !== null) { + $this->renameColumn('erp24.store_balance', 'shift_transfer_id', 'shift_id'); + } + } +} diff --git a/erp24/records/EqualizationRemains.php b/erp24/records/EqualizationRemains.php index 90cd3c32..3762ea0f 100644 --- a/erp24/records/EqualizationRemains.php +++ b/erp24/records/EqualizationRemains.php @@ -12,7 +12,7 @@ use yii\db\Expression; * This is the model class for table "equalization_remains". * * @property int $id ID записи - * @property int $shift_id ID записи передачи смены + * @property int $shift_transfer_id ID записи передачи смены * @property string $product_id ID товара с недостатком * @property float $product_count Количество товара с недостатком * @property float $product_price Цена товара розничная @@ -62,7 +62,7 @@ class EqualizationRemains extends \yii\db\ActiveRecord public function rules() { return [ - [['shift_id', 'created_by', 'updated_by'], 'integer'], + [['shift_transfer_id', 'created_by', 'updated_by'], 'integer'], [['product_count', 'product_price', 'product_self_cost', 'product_replacement_count', 'product_replacement_price', 'product_replacement_self_cost', 'balance', 'balance_self_cost'], 'number'], [['product_count', 'product_price', 'product_self_cost', 'product_replacement_count', 'product_replacement_price', 'product_replacement_self_cost', 'balance', 'balance_self_cost'], 'required'], [['created_at', 'updated_at'], 'safe'], @@ -77,7 +77,7 @@ class EqualizationRemains extends \yii\db\ActiveRecord { return [ 'id' => 'ID записи', - 'shift_id' => 'ID записи передачи смены', + 'shift_transfer_id' => 'ID записи передачи смены', 'product_id' => 'ID товара с недостатком', 'product_count' => 'Количество товара с недостатком', 'product_price' => 'Цена товара розничная', @@ -95,8 +95,8 @@ class EqualizationRemains extends \yii\db\ActiveRecord ]; } - public static function updateData($equalizationRemains, int $shift_id) { - self::deleteAll(['shift_id' => $shift_id]); + public static function updateData($equalizationRemains, int $shift_transfer_id) { + self::deleteAll(['shift_transfer_id' => $shift_transfer_id]); if (!is_array($equalizationRemains) || empty($equalizationRemains)) { return; @@ -105,7 +105,7 @@ class EqualizationRemains extends \yii\db\ActiveRecord foreach ($equalizationRemains as $er) { $equalizationRemain = new EqualizationRemains(); $equalizationRemain->setAttributes([ - 'shift_id' => $shift_id, + 'shift_id' => $shift_transfer_id, 'product_id' => $er['product_id'], 'product_count' => $er['product_replacement_count'], 'product_price' => $er['product_price'], @@ -178,7 +178,7 @@ class EqualizationRemains extends \yii\db\ActiveRecord */ public function getShiftTransfer() { - return $this->hasMany(ShiftTransfer::class, ['id' => 'shift_id']); + return $this->hasMany(ShiftTransfer::class, ['id' => 'shift_transfer_id']); } /** diff --git a/erp24/records/ReplacementInvoiceProducts.php b/erp24/records/ReplacementInvoiceProducts.php index c06dfbb5..06fbd10d 100644 --- a/erp24/records/ReplacementInvoiceProducts.php +++ b/erp24/records/ReplacementInvoiceProducts.php @@ -69,7 +69,7 @@ class ReplacementInvoiceProducts extends \yii\db\ActiveRecord public static function setData($replacementInvoice, $shiftTransfer) { - $equalizationRemains = EqualizationRemains::findAll(['shift_id' => $shiftTransfer->id]); + $equalizationRemains = EqualizationRemains::findAll(['shift_transfer_id' => $shiftTransfer->id]); foreach ($equalizationRemains as $equalizationRemain) { $incoming = new self(); $incoming->setAttributes([ diff --git a/erp24/records/ShiftTransfer.php b/erp24/records/ShiftTransfer.php index 05867dd4..1ab7ece7 100644 --- a/erp24/records/ShiftTransfer.php +++ b/erp24/records/ShiftTransfer.php @@ -28,6 +28,7 @@ class ShiftTransfer extends \yii\db\ActiveRecord const STATUS_ID_INPUT_FACT_REMAINS = 1; const STATUS_ID_TRANSFER_ACTIONS = 2; + const STATUS_OF_THE_FORMATION_OF_SURPLUSES_AND_SHORTAGES = 5; const STATUS_ID_READY_TO_ACCEPT = 3; const STATUS_ID_ACCEPTED = 4; @@ -37,6 +38,7 @@ class ShiftTransfer extends \yii\db\ActiveRecord self::STATUS_ID_TRANSFER_ACTIONS => 'Действия по замене', self::STATUS_ID_READY_TO_ACCEPT => 'Готова к принятию', self::STATUS_ID_ACCEPTED => 'Принято', + self::STATUS_OF_THE_FORMATION_OF_SURPLUSES_AND_SHORTAGES => 'Cтатус формирования излишков и недостачи', ]; } @@ -96,6 +98,6 @@ class ShiftTransfer extends \yii\db\ActiveRecord */ public function getEqualizationRemains() { - return $this->hasMany(EqualizationRemains::class, ['shift_id' => 'id']); + return $this->hasMany(EqualizationRemains::class, ['shift_transfer_id' => 'id']); } } diff --git a/erp24/records/StoreBalance.php b/erp24/records/StoreBalance.php index 61ed1f83..6a8d88a1 100644 --- a/erp24/records/StoreBalance.php +++ b/erp24/records/StoreBalance.php @@ -9,7 +9,7 @@ use Yii; * * @property int $id * @property string $store_id GUID магазина - * @property int $shift_id ID смены по передаче актуальных остатков + * @property int $shift_transfer_id ID смены по передаче актуальных остатков * @property string $date дата и время внесения * @property float $amount Сумма остатков (недостача или излишек) =remains_summ из shift_remains * @property int $status_id статус запись 0 новая 1 в работе (требует разбирательств) 2 проверено @@ -38,7 +38,7 @@ class StoreBalance extends \yii\db\ActiveRecord public static function setData($shiftTransfer) { $equalizationData = EqualizationRemains::find() - ->where(['shift_id' => $shiftTransfer->id]) + ->where(['shift_transfer_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([ @@ -60,15 +60,15 @@ class StoreBalance extends \yii\db\ActiveRecord $articule = implode(';', array_map(fn($equalizationRemain) => $equalizationRemain->product->articule . '=>' . $equalizationRemain->productReplacement->articule, - EqualizationRemains::findAll(['shift_id' => $shiftTransfer->id]))) ?? '' . ';'; + EqualizationRemains::findAll(['shift_transfer_id' => $shiftTransfer->id]))) ?? '' . ';'; $model = new self(); $model->setAttributes([ 'store_id' => $shiftTransfer->store_guid, - 'shift_id' => $shiftTransfer->id, + 'shift_transfer_id' => $shiftTransfer->id, 'date' => $shiftTransfer->date, 'amount' => EqualizationRemains::find() - ->where(['shift_id' => $shiftTransfer->id]) + ->where(['shift_transfer_id' => $shiftTransfer->id]) ->select(['SUM(balance) AS total_balance']) ->scalar() ?? '', 'status_id' => self::STATUS_NEW, @@ -90,9 +90,9 @@ class StoreBalance extends \yii\db\ActiveRecord 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'], + [['store_id', 'shift_transfer_id', 'date', 'amount', 'status_id', 'type_id'], 'required'], + [['shift_transfer_id', 'status_id', 'controler_id', 'type_id'], 'default', 'value' => null], + [['shift_transfer_id', 'status_id', 'controler_id', 'type_id'], 'integer'], [['date'], 'safe'], [['amount'], 'number'], [['comment', 'json', 'replace_articule', 'comment_controler'], 'string'], @@ -108,7 +108,7 @@ class StoreBalance extends \yii\db\ActiveRecord return [ 'id' => 'ID', 'store_id' => 'GUID магазина', - 'shift_id' => 'ID смены', + 'shift_transfer_id' => 'ID смены', 'date' => 'Дата и время внесения', 'amount' => 'Сумма остатков', 'status_id' => 'Статус записи', diff --git a/erp24/views/shift-transfer/_replacement.php b/erp24/views/shift-transfer/_replacement.php index 03a51117..2813c961 100644 --- a/erp24/views/shift-transfer/_replacement.php +++ b/erp24/views/shift-transfer/_replacement.php @@ -141,11 +141,12 @@ if (in_array($shiftTransfer->status_id, [ShiftTransfer::STATUS_ID_TRANSFER_ACTIO 'iconSource' => 'fa', ])->label('Таблица возможных замен'); - echo $btn = Html::submitButton('Сохранить', [ + echo $btn = Html::submitButton('Продолжить', [ 'class' => 'btn btn-primary float-right', 'name' => 'action', - 'value' => 'save' + 'value' => 'resume' ]); + } else { echo Html::label('Таблица возможных замен'); echo GridView::widget([ @@ -222,6 +223,17 @@ if (in_array($shiftTransfer->status_id, [ShiftTransfer::STATUS_ID_TRANSFER_ACTIO 'layout' => '{items}', ]); + //гридвью с двумя таблицами(плюс и минус) + + if ($shiftTransfer->status_id == ShiftTransfer::STATUS_OF_THE_FORMATION_OF_SURPLUSES_AND_SHORTAGES + && Yii::$app->user->id == $shiftTransfer->end_shift_admin_id) { + echo $btn = Html::submitButton('Сохранить', [ + 'class' => 'btn btn-primary float-right', + 'name' => 'action', + 'value' => 'save' + ]); + } + if ( \yii_app\records\AdminStores::find()->andWhere(['store_guid' => $shiftTransfer->store_guid, 'admin_id' => Yii::$app->user->id])->exists() && $shiftTransfer->status_id == ShiftTransfer::STATUS_ID_READY_TO_ACCEPT diff --git a/erp24/views/store-balance/index.php b/erp24/views/store-balance/index.php index 523b8153..9beee42c 100644 --- a/erp24/views/store-balance/index.php +++ b/erp24/views/store-balance/index.php @@ -27,10 +27,10 @@ $this->params['breadcrumbs'][] = $this->title; } ], [ - 'attribute' => 'shift_id', + 'attribute' => 'shift_transfer_id', 'format' => 'raw', 'value' => function ($model) { - return \yii\helpers\Html::a("Передача смены #$model->shift_id", ['shift-transfer/view', 'id' => $model->shift_id]); + return \yii\helpers\Html::a("Передача смены #$model->shift_transfer_id", ['shift-transfer/view', 'id' => $model->shift_transfer_id]); } ], 'date', diff --git a/erp24/views/store-balance/view.php b/erp24/views/store-balance/view.php index 944ff06a..7dac8fd3 100644 --- a/erp24/views/store-balance/view.php +++ b/erp24/views/store-balance/view.php @@ -30,9 +30,9 @@ $this->params['breadcrumbs'][] = $this->title; } ], [ - 'attribute' => 'shift_id', + 'attribute' => 'shift_transfer_id', 'value' => function ($model) { - return Html::a("Передача смены #$model->shift_id", ['shift-transfer/view', 'id' => $model->shift_id]); + return Html::a("Передача смены #$model->shift_transfer_id", ['shift-transfer/view', 'id' => $model->shift_transfer_id]); }, 'format' => 'raw', ],