$loadDataShiftRemains = null;
if ($shiftTransfer->load(Yii::$app->request->post())) {
$postShiftTransfer = Yii::$app->request->post('ShiftTransfer');
- $loadDataShiftRemains = ArrayHelper::getValue($postShiftTransfer, 'shiftRemainsCopy');
-
- if ($shiftTransfer->id || ($shiftTransfer->validate() && $shiftTransfer->save())) {
- ShiftRemains::deleteAll(['shift_transfer_id' => $shiftTransfer->id]);
- $modelsShiftRemains = MultipleModel::createMultipleModel(ShiftRemains::class,
- 'ShiftTransfer', 'shiftRemainsCopy');
- if (!empty($loadDataShiftRemains)) {
- MultipleModel::loadMultipleFromArray($modelsShiftRemains, $loadDataShiftRemains, '', []);
- }
+ $action = Yii::$app->request->post('action');
+ if ($action == 'applyGroups') {
+ $data = self::buildLoadDataShiftRemains(array_merge(empty($postShiftTransfer['groups1']) ? [] : $postShiftTransfer['groups1'],
+ empty($postShiftTransfer['groups2']) ? [] : $postShiftTransfer['groups2']), $postShiftTransfer['store_guid']);
+ $loadDataShiftRemains = $data['loadDataShiftRemains'];
+ $productGuids = $data['productGuids'];
+ } else {
+ $loadDataShiftRemains = ArrayHelper::getValue($postShiftTransfer, 'shiftRemainsCopy');
+
+ if ($shiftTransfer->id || ($shiftTransfer->validate() && $shiftTransfer->save())) {
+ ShiftRemains::deleteAll(['shift_transfer_id' => $shiftTransfer->id]);
+ $modelsShiftRemains = MultipleModel::createMultipleModel(ShiftRemains::class,
+ 'ShiftTransfer', 'shiftRemainsCopy');
+ if (!empty($loadDataShiftRemains)) {
+ MultipleModel::loadMultipleFromArray($modelsShiftRemains, $loadDataShiftRemains, '', []);
+ }
- foreach ($modelsShiftRemains as $modelsShiftRemain) {
- $modelsShiftRemain->shift_transfer_id = $shiftTransfer->id;
- if ($modelsShiftRemain->validate()) {
- $modelsShiftRemain->save();
- } else {
- var_dump($modelsShiftRemain->getErrors());
- die;
+ $discrepancy_rubles = 0;
+ foreach ($modelsShiftRemains as $modelsShiftRemain) {
+ /* @var $modelsShiftRemain ShiftRemains */
+ $modelsShiftRemain->shift_transfer_id = $shiftTransfer->id;
+ if ($modelsShiftRemain->validate()) {
+ $discrepancy_rubles += $modelsShiftRemain->retail_price * ($modelsShiftRemain->remains_count - $modelsShiftRemain->remains_1c);
+ $modelsShiftRemain->save();
+ } else {
+ var_dump($modelsShiftRemain->getErrors());
+ die;
+ }
}
- }
-
+
+ EqualizationRemains::setData($shiftTransfer);
+
- if ($shiftTransfer->validate()) {
- $shiftTransfer->goods_transfer_summ = array_sum(ArrayHelper::getColumn($shiftTransfer->shiftRemains, 'remains_summ'));
- $shiftTransfer->goods_transfer_count = array_sum(ArrayHelper::getColumn($shiftTransfer->shiftRemains, 'remains_count'));
- $shiftTransfer->discrepancy_pieces = array_sum(ArrayHelper::getColumn($shiftTransfer->shiftRemains, 'fact_and_1c_diff'));
- $shiftTransfer->discrepancy_rubles = array_sum(ArrayHelper::getColumn($shiftTransfer->shiftRemains, 'remains_1c'));
- $shiftTransfer->status_id = ShiftTransfer::STATUS_ID_TRANSFER_ACTIONS;
- $shiftTransfer->save();
+ if ($shiftTransfer->validate()) {
+ $shiftTransfer->goods_transfer_count = array_sum(ArrayHelper::getColumn($shiftTransfer->shiftRemains, 'remains_count'));
+ $shiftTransfer->discrepancy_pieces = array_sum(ArrayHelper::getColumn($shiftTransfer->shiftRemains, 'fact_and_1c_diff'));
+ $shiftTransfer->discrepancy_rubles = $discrepancy_rubles;
+ $shiftTransfer->status_id = ShiftTransfer::STATUS_ID_TRANSFER_ACTIONS;
+ $shiftTransfer->setProductGroups();
+ $shiftTransfer->save();
- Yii::$app->session->setFlash('info', 'Документ передачи смены успешно сохранён. Сейчас документ находится в статусе Действия по замене.<br>' .
- 'Для продолжения оформления документа в таблице возможных замен добавьте замену недостающего товара.');
+ Yii::$app->session->setFlash('info', 'Документ передачи смены успешно сохранён. Сейчас документ находится в статусе Действия по замене.<br>' .
+ 'Для продолжения оформления документа в таблице возможных замен добавьте замену недостающего товара.');
- return $this->redirect(['/shift-transfer/view', 'id' => $shiftTransfer->id]);
- }
+ return $this->redirect(['/shift-transfer/view', 'id' => $shiftTransfer->id]);
+ }
+ }
}
+ } else {
+ $data = self::buildLoadDataShiftRemains(explode(',', $shiftTransfer->product_groups), $shiftTransfer->store_guid);
+ $productGuids = $data['productGuids'];
+ $shiftTransfer->setGroups();
}
$isCreate = false;