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; }
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; } }