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
{
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();
} 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);
--- /dev/null
+<?php
+
+use yii\db\Migration;
+
+/**
+ * Class m241210_102844_change_column_name_on_equalization_remains
+ */
+class m241210_102844_change_column_name_on_equalization_remains extends Migration
+{
+ /**
+ * {@inheritdoc}
+ */
+
+ public function safeUp()
+ {
+ if ($this->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');
+ }
+ }
+}
* 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 Цена товара розничная
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'],
{
return [
'id' => 'ID записи',
- 'shift_id' => 'ID записи передачи смены',
+ 'shift_transfer_id' => 'ID записи передачи смены',
'product_id' => 'ID товара с недостатком',
'product_count' => 'Количество товара с недостатком',
'product_price' => 'Цена товара розничная',
];
}
- 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;
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'],
*/
public function getShiftTransfer()
{
- return $this->hasMany(ShiftTransfer::class, ['id' => 'shift_id']);
+ return $this->hasMany(ShiftTransfer::class, ['id' => 'shift_transfer_id']);
}
/**
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([
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;
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татус формирования излишков и недостачи',
];
}
*/
public function getEqualizationRemains()
{
- return $this->hasMany(EqualizationRemains::class, ['shift_id' => 'id']);
+ return $this->hasMany(EqualizationRemains::class, ['shift_transfer_id' => 'id']);
}
}
*
* @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 проверено
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([
$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,
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'],
return [
'id' => 'ID',
'store_id' => 'GUID магазина',
- 'shift_id' => 'ID смены',
+ 'shift_transfer_id' => 'ID смены',
'date' => 'Дата и время внесения',
'amount' => 'Сумма остатков',
'status_id' => 'Статус записи',
'iconSource' => 'fa',
])->label('Таблица возможных замен');
- echo $btn = Html::submitButton('СоÑ\85Ñ\80анить', [
+ echo $btn = Html::submitButton('Ð\9fÑ\80одолжить', [
'class' => 'btn btn-primary float-right',
'name' => 'action',
- 'value' => 'save'
+ 'value' => 'resume'
]);
+
} else {
echo Html::label('Таблица возможных замен');
echo GridView::widget([
'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
}
],
[
- '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',
}
],
[
- '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',
],