Exemple #1
0
 public function update_csv($file)
 {
     $data = $this->get_file_csv($file);
     //array_shift($data);
     if (!count($data)) {
         return false;
     }
     $model_job = new Model_Job();
     $model_add = new Model_Jobadd();
     $model_rec = new Model_Jobrecruit();
     $k = 1;
     \DB::start_transaction();
     $check = true;
     $no_update = array();
     try {
         foreach ($data as $row) {
             if (!$check) {
                 break;
             }
             $data = self::data_once_csv($row);
             $validate_field = $this->validate($data['job'], $data['job_add'], $data['job_rec'], $k);
             $res = $model_job->update_data_csv($data['job'], $data['job']['job_id'], $validate_field, $no_update, $k);
             if ($res === -1) {
                 $this->error[$k]['job_id'] = $k . '行目:求人情報が存在していません。';
                 $check = false;
             } else {
                 if ($res && $validate_field) {
                     $res_delete_add = $model_add->delete_data($data['job']['job_id']);
                     if ($res_delete_add >= 0) {
                         if (count($data['job_add']) && !$model_add->insert_multi_data($data['job_add'], $model_job)) {
                             $check = false;
                         }
                     }
                     $res_delete_rec = $model_rec->delete_data($data['job']['job_id']);
                     if ($res_delete_rec >= 0) {
                         if (count($data['job_rec']) && !$model_rec->insert_multi_data($data['job_rec'], $model_job)) {
                             $check = false;
                         }
                     }
                 } else {
                     $check = false;
                 }
             }
             ++$k;
         }
         if (!$check) {
             \DB::rollback_transaction();
         } else {
             \DB::commit_transaction();
         }
     } catch (Exception $e) {
         // rollback pending transactional queries
         \DB::rollback_transaction();
         throw $e;
     }
     $this->no_update = $no_update;
     return $check;
 }
Exemple #2
0
 public function approve_data($id)
 {
     try {
         $obj = static::forge()->find_by_pk($id);
         $data = array();
         if (count($obj)) {
             $data_old = $obj->_data;
             $data_job_add = array();
             $data_job_rec = array();
             if ($data_old['edit_data']) {
                 $data = json_decode($data_old['edit_data'], true);
                 if (!Model_Sssale::find_by_pk($data['sssale_id'])) {
                     return 0;
                 }
                 $data_job_add = Utility::set_data_job_add_recruit($data, $id);
                 $data_job_rec = Utility::set_data_job_add_recruit($data, $id, 'job_recruit_sub_title', 'job_recruit_text');
                 $data = Utility::set_standard_data_job($data, true, $this->_data_default);
             } else {
                 $data['updated_at'] = date('Y-m-d H:i');
                 $data['status'] = 1;
                 $obj->set($data);
                 $obj->is_new(false);
                 return (bool) $obj->save();
             }
             DB::start_transaction();
             $data['is_available'] = $data_old['is_available'];
             $data['status'] = 1;
             $data['edit_data'] = null;
             $obj->set($data);
             $obj->is_new(false);
             $res = (bool) $obj->save();
             if ($res) {
                 $obj_add = new Model_Jobadd();
                 $obj_rec = new Model_Jobrecruit();
                 $res_flag = false;
                 if ($obj_add->delete_data($id) >= 0) {
                     $res_flag = true;
                 }
                 if ($res_flag && $obj_add->insert_multi_data($data_job_add, $this) === false) {
                     $res_flag = false;
                 }
                 if ($res_flag && $obj_rec->delete_data($id) >= 0) {
                     $res_flag = true;
                 } else {
                     $res_flag = false;
                 }
                 if ($res_flag && $obj_rec->insert_multi_data($data_job_rec, $this) === false) {
                     $res_flag = false;
                 }
                 if ($res_flag) {
                     \DB::commit_transaction();
                     return true;
                 } else {
                     \DB::rollback_transaction();
                     return false;
                 }
             }
             return false;
         }
         return false;
     } catch (Exception $e) {
         \DB::rollback_transaction();
         throw $e;
         return false;
     }
 }