/** * store a ContractElement of an org * * 1. Save ContractElement * 2. Save Contacs * @return Response */ public function store($org_id = null) { if (!Input::has('contractelement')) { return new JSend('error', (array) Input::all(), 'Tidak ada data contractelement.'); } $errors = new MessageBag(); $contact = []; DB::beginTransaction(); //1. Validate contract_element Parameter $contract_element = Input::get('contractelement'); if (is_null($contract_element['id'])) { $is_new = true; } else { $is_new = false; } $contract_element_rules = ['organisation_id' => 'exists:hrom_organisations,id|' . ($is_new ? '' : 'in:' . $org_id), 'name' => 'required|max:255']; //1a. Get original data $contract_element_data = \App\ThunderID\EmploymentSystemV1\Models\ContractElement::findornew($contract_element['id']); //1b. Validate Basic contract_element Parameter $validator = Validator::make($contract_element, $contract_element_rules); if (!$validator->passes()) { $errors->add('contract_element', $validator->errors()); } else { $contract_element_data['organisation_id'] = $org_id; $contract_element_data = $contract_element_data->fill($contract_element); if (!$contract_element_data->save()) { $errors->add('contract_element', $contract_element_data->getError()); } } //End of validate contract_element if ($errors->count()) { DB::rollback(); return new JSend('error', (array) Input::all(), $errors); } DB::commit(); $final_ContractElement = \App\ThunderID\EmploymentSystemV1\Models\ContractElement::id($contract_element_data['id'])->organisationid($org_id)->first()->toArray(); return new JSend('success', (array) $final_ContractElement); }