/**
  * 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);
 }