public function actionCreate()
{
$shiftTransfer = new ShiftTransfer;
+ $shiftTransfer->date = date('Y-m-d H:i:s');
+ $shiftTransfer->date_start = $shiftTransfer->date;
$isCreate = true;
if (!$shiftTransfer) {
$shiftTransfer = new ShiftTransfer;
}
- if ($shiftTransfer->load(Yii::$app->request->post()) && $shiftTransfer->validate()) {
- $shiftTransfer->save();
- ShiftRemains::deleteAll(['shift_transfer_id' => $shiftTransfer->id]);
- $modelsShiftRemains = MultipleModel::createMultipleModel(ShiftRemains::class,
- 'ShiftTransfer', 'shiftRemainsCopy');
+ $loadDataShiftRemains = null;
+ if ($shiftTransfer->load(Yii::$app->request->post())) {
$postShiftTransfer = Yii::$app->request->post('ShiftTransfer');
$loadDataShiftRemains = ArrayHelper::getValue($postShiftTransfer, '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;
+
+ 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;
+ }
+ }
+
+ 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->save();
+ return $this->redirect(['/shift-transfer/view', 'id' => $shiftTransfer->id]);
+ }
}
- return $this->redirect(['/shift-transfer/view', 'id' => $shiftTransfer->id]);
}
$isCreate = false;
$admins = self::getAdminsWithDrugieLast();
+ $shiftTransfer->shiftRemainsCopy = $loadDataShiftRemains ?? $shiftTransfer->shiftRemains;
+
return $this->render('update', compact('shiftTransfer', 'isCreate', 'storeNameById',
'admins'));
}