Example #1
0
 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));
 }