public function actionSchedule() { /** @var ScheduleReport $form */ /** @var ScheduleReportDestination[] $forms_d] */ $forms_s[] = new ScheduleReportToStation(); if (isset($_REQUEST['delete_id'])) { $form = ScheduleReport::model()->findByPk(intval($_REQUEST['delete_id'])); if ($form && $form->delete()) { It::memStatus('schedule_deleted'); $this->redirect($this->createUrl('site/schedule')); } } if (isset($_REQUEST['resend_schedule_id'])) { $form = ScheduleReport::model()->findByPk(intval($_REQUEST['resend_schedule_id'])); } if (isset($_REQUEST['schedule_id'])) { $form = ScheduleReport::model()->findByPk(intval($_REQUEST['schedule_id'])); } if (isset($form)) { $forms_d = ScheduleReportDestination::model()->findAllByAttributes(array('schedule_id' => $form->schedule_id)); $forms_s = ScheduleReportToStation::model()->findAllByAttributes(array('schedule_id' => $form->schedule_id)); } else { $form = new ScheduleReport(); $forms_d = array(); } $valid = true; if (Yii::app()->request->isPostRequest && isset($_POST['ScheduleReport'])) { $form->attributes = $_POST['ScheduleReport']; $valid = $valid & $form->validate(); if (isset($_POST['ScheduleReportDestination'])) { foreach ($_POST['ScheduleReportDestination'] as $key => $value) { if ($value['schedule_destination_id']) { $forms_d[$key] = ScheduleReportDestination::model()->findByPk($value['schedule_destination_id']); } else { $forms_d[$key] = new ScheduleReportDestination(); } $forms_d[$key]->attributes = $value; $valid = $valid & $forms_d[$key]->validate(); } } if (isset($_POST['ScheduleReportToStation'])) { $forms_s = array(); foreach ($_POST['ScheduleReportToStation'] as $key => $value) { if ($value['id']) { $forms_s[$key] = ScheduleReportToStation::model()->findByPk($value['id']); } elseif ($value['remove_id']) { $stationToRemove = ScheduleReportToStation::model()->findByPk($value['remove_id']); $stationToRemove->delete(); unset($forms_s[$key]); continue; } else { $forms_s[$key] = new ScheduleReportToStation(); } $forms_s[$key]->attributes = $value; // $valid = $valid & $forms_s[$key]->validate(); } } if ($valid) { $form->save(false); foreach ($forms_d as $key => $value) { $forms_d[$key]->schedule_id = $form->schedule_id; $forms_d[$key]->save(); } foreach ($forms_s as $key => $value) { $forms_s[$key]->schedule_id = $form->schedule_id; $forms_s[$key]->save(); } // It::memStatus($form->isNewRecord ? 'schedule_added' : 'schedule_updated'); // if ($form->isNewRecord) $this->redirect($this->createUrl('site/schedule')); } } $schedule_list = ScheduleReport::getScheduleList(); $this->render('schedule_report', array('form' => $form, 'forms_d' => $forms_d, 'forms_s' => $forms_s, 'reportsList' => $schedule_list)); }