modelCustomer = $modelCustomer; $this->modelAgent = $modelAgent; $this->modelAgentUser = $modelAgentUser; } /** * Summary of createCustomer * @param array $input * @return array */ public function createCustomer($input) { // format data input $dataInput = $this->formatCreateCustomer($input); // check agent user with code input $checkAgentUser = $this->modelAgentUser->where('code', $dataInput['agents_code'])->first(); if (empty($checkAgentUser)) { return array('status' => false, 'msg' => $this->getMessageReturn('no_data_agent')); } $agentId = $checkAgentUser->agent_id; \DB::beginTransaction(); try { $checkHasAgent = $this->modelCustomer->where('agent_id', $agentId)->latest()->first(); if (empty($checkHasAgent)) { $dataInsert = Arr::except($dataInput, ['agents_code']); $dataInsert['agent_id'] = $agentId; $result = $this->modelCustomer->insert($dataInsert); \DB::commit(); return ['status' => true, 'msg' => $this->getMessageReturn('success_insert_customer')]; }else{ $dataInsert = Arr::except($dataInput, ['agents_code']); $dataInsert['agent_id'] = $agentId; $result = $this->modelCustomer->insert($dataInsert); \DB::commit(); return ['status' => true, 'msg' => $this->getMessageReturn('success_insert_customer')]; } } catch (\Exception $e) { \DB::rollBack(); } return ['status' => false, 'msg' => $this->getMessageReturn('failed_insert')]; } /** * Summary of formatCreateCustomer * @param array $data * @return array */ public function formatCreateCustomer($data) { $format = []; if (!empty($data['agents_code'])) { $format['agents_code'] = $data['agents_code']; } if (!empty($data['guest_name'])) { $format['name'] = $data['guest_name']; } if (!empty($data['phone'])) { $format['phone'] = $data['phone']; } if (!empty($data['email'])) { $format['email'] = $data['email']; } if (!empty($data['grade'])) { $format['grade'] = $data['grade']; } if (!empty($data['grade'])) { $format['grade'] = $data['grade']; } if (!empty($data['message'])) { $format['msg'] = $data['message']; } return $format; } /** * Summary of getMessageReturn * @param mixed $errorKey * @return array */ public function getMessageReturn($errorKey) { $msgArr = [ 'no_data_agent' => 'Đại lý không tồn tại.', 'success_insert_customer' => 'Thêm khách hàng thành công.', 'failed_insert' => 'Thêm khách hàng thành công.', ]; return $msgArr[$errorKey] ?? "Không có dữ liệu."; } }