loyaltyCard = $loyaltyCard; $this->cardtype = $cardtype; $this->personalDetails = $personalDetails; $this->mobile_usage = $mobile_usage; $this->user = $user; $this->lcard_logs = $lcard_logs; $this->signupAPICalls = $signupAPICalls; $this->format = $httpStatusCode; $this->module = "SignUp"; $this->model = "LoyaltyCardSignUp"; } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ /* NOTE: THIS FEATURE IS FROM THE INITIAL PLAN FOR CR1 */ // public function index(Request $request) // { // $params = [ // 'search' => ($request->has('_search') ? $request->get('_search') : NULL), // 'page_size' => ($request->has('page_size') ? $request->get('page_size') : 10), // 'page' => ($request->has('page') ? $request->get('page') : 10), // 'sorting' => ParameterHelper::prepareSortingParameter($request), // 'status' => ($request->has('status') ? $request->status : NULL), // ]; // if(count($params['status'])) // { // foreach ($params['status'] as $key => $value) { // $params['status'][$key] = StaticContents::loyalty_card_signup_status($value,true); // } // } // $list = $this->signup->listing($params); // // dd($list); // if(count($list)) // { // $additionals = $this->format->success("Success",[],false); // $data = LoyaltyCardSignUpCMSResource::collection($list)->additional($additionals); // return $data->response()->setStatusCode(200); // } // else // { // return $this->format->success("No records found",[]); // } // } public function check_id_number(MobileSignupIDNumberValidation $request) { $card_details = $this->cardtype->getByField(['cardtype_uuid' => $request->cardtype_uuid]); if(count($card_details) > 0) { $card_details = $card_details[0]; if($card_details->id_number == 1) { $cyware = new CywareLibrary(); $cyware->setCardTypeCode($card_details->code); $cyware->setIDNumber($request->id_number); $cyware->state_id_entry(); if(isset($cyware->response['result'])) { // NOTE : cyware returns sql:success for unused and used id numbers if($cyware->response['status_code'] == "200" && $cyware->response['message'] == "success" && $cyware->response['result'] == "Valid ID Number") { return $this->format->mobile_success($cyware->response['result'],[]); } else { return $this->format->mobile_error($cyware->response['result'],[]); } } else return $this->format->mobile_error($cyware->response['message'],[]); } else { return $this->format->mobile_success('Card Type doesn\'t require ID Number'); } } else { return $this->format->mobile_error('Card Type doesn\'t exists'); } } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { } /** * Store a newly created resource in storage. * * Accessed by MOBILE * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ /* NOTE: THIS FEATURE IS FROM THE INITIAL PLAN FOR CR1 */ public function store(MobileSignupFormValidation $request) { $card_details = $this->cardtype->getByField(['cardtype_uuid' => $request->cardtype_uuid]); if(count($card_details) > 0) { $card_details = $card_details[0]; $user_id = env("USER_ID_PRE_IDENTIFIER", '').date('Ymd').($this->signupAPICalls->count() + 1); $signup_api_id = $this->signupAPICalls->log($user_id); $cyware = new CywareLibrary(); $cyware->setCardTypeCode($card_details->code); $cyware->setIDNumber($request->id_number); $cyware->setFirstName($request->firstname); $cyware->setLastName($request->lastname); $cyware->setBirthday(date('Ymd',strtotime($request->birthdate))); $mobile = strlen($request->mobile) == 12 ? $request->mobile : '63'.$request->mobile; $cyware->setMobile($mobile); $cyware->setEmail($request->email); $cyware->setUserID($user_id); $cyware->state_app_entry(); if($cyware->response['status_code'] == "200" && $cyware->response['message'] == "success") { // save on personal details $pd_id = $this->personalDetails->store_signup($request); // save on loyalty card $lcard_det = $this->loyaltyCard->store_signup($pd_id,(object)[ 'card_number' => $cyware->response['card_number'], 'pin' => $cyware->response['pin'], 'birthdate' => $request->birthdate, 'mobile' => $mobile, 'email' => $request->email, 'card_id' => $card_details->cardtype_id ]); // log user in $this->user->store_member((object)[ 'first_name' => $request->firstname, 'last_name' => $request->lastname, 'card_number' => $cyware->response['card_number'], 'birthdate' => $request->birthdate, ]); $this->mobile_usage->add_active(); $this->signupAPICalls->success($signup_api_id,$lcard_det['lcard_id']); if(Auth::attempt([ 'username' => $cyware->response['card_number'], 'password' => $request->birthdate ])) { $getuserDetails = $this->loyaltyCard->show($lcard_det['lcard_uuid'],['personalDetails','codeVehicleOwn','codeCivilStatus','codeGender','codeCardType','codeCity','codeFuelType']); $data = new MobileUserProfileResource($getuserDetails); $userDetails = null; if($data != null){ $userDetails = $data->toArray($getuserDetails); } $user = Auth::user(); $success['is_valid'] = 1; // $success['lcard_uuid'] = $lcard_det['lcard_uuid']; // $success['birthdate'] = $request->birthdate; // $success['mobile'] = $request->mobile; // $success['card_number'] = $cyware->response['card_number']; // $success['user_id'] = $user['id']; // ---------------------------------------------------------------- new login start $data = [ 'grant_type' => 'password', 'client_id' => env("PASSPORT_ADMIN_CLIENT_ID", 2), 'client_secret' => env("PASSPORT_ADMIN_CLIENT_SECRET", "test"), 'username' => $cyware->response['card_number'], 'password' => $request->birthdate, 'scope' => '' ]; $request = Request::create('/oauth/token', 'POST', $data); $result = app()->handle($request)->getContent(); $result = json_decode($result); $success['token'] = $result->access_token; $userDetails['customer_number'] = $cyware->response['customer_number']; $success['userDetails'] = $userDetails; // ---------------------------------------------------------------- new login end $this->lcard_logs->log($lcard_det['lcard_id'],'SIGNUP','LOGIN','Member successfully signs up'); return $this->format->mobile_success('Success',$success); } } else return $this->format->mobile_error($cyware->response['message']); } else { return $this->format->mobile_error('Card Type doesn\'t exists'); } } // public function store(MobileSignupFormValidation $request) // { // $uuid = $this->signup->store($request); // return $this->format->mobile_success('Success',[ // 'lcard_s_uuid' => $uuid, // ]); // } /* NOTE: THIS FEATURE IS FROM THE INITIAL PLAN FOR CR1 */ // public function upload(Request $request) // { // if($this->signup->upload_document($request)) // return $this->format->mobile_success('Successfully Updated'); // else // return $this->format->mobile_errror('Something went wrong'); // } /* NOTE: THIS FEATURE IS FROM THE INITIAL PLAN FOR CR1 */ // public function signupSubmit($uuid) // { // // check if there's already a reference number // $details = $this->signup->getByField([ // 'lcard_s_uuid' => $uuid // ]); // if($details) // { // if($details[0]->ref_no == '') // { // // create reference number // $count = $this->signup->count_between(date('Y-m-d 00:00:00'), date('Y-m-d 23:59:59')); // $ref_no = 'REF-'.date('Ymd').'-'.str_pad($count, 5, "0", STR_PAD_LEFT); // // send email to Super Admin -- TODO! // if($this->signup->assign_ref_no($uuid,$ref_no)) // return $this->format->mobile_success('Success',['ref_no' => $ref_no]); // else // return $this->format->mobile_errror('Something went wrong'); // } // else // return $this->format->mobile_success('Success',['ref_no' => $details[0]->ref_no]); // } // else // return $this->format->mobile_errror('User does not exists'); // } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ /* NOTE: THIS FEATURE IS FROM THE INITIAL PLAN FOR CR1 */ // public function show($uuid) // { // $details = $this->signup->getByField(['lcard_s_uuid' => $uuid],['codeCardType','idNumberType']); // if($details) // { // $additionals = $this->format->success("Success",[],false); // $data = (new LoyaltyCardSignUpCMSResource($details[0]))->additional($additionals); // return $data->response()->setStatusCode(200); // } // else // return $this->format->notFound(); // } /* NOTE: THIS FEATURE IS FROM THE INITIAL PLAN FOR CR1 */ // public function review($uuid) // { // $details = $this->signup->getByField(['lcard_s_uuid' => $uuid],['codeCardType','idNumberType']); // if($details->count()) // { // $additionals = $this->format->mobile_success("Success",[],false); // $data = (new LoyaltyCardSignUpResource($details[0]))->additional($additionals); // return $data->response()->setStatusCode(200); // } // else // return $this->format->mobile_error('User not found'); // } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { // } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { // } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { // } /* NOTE: THIS FEATURE IS FROM THE INITIAL PLAN FOR CR1 */ // public function reject(Request $request) // { // // reject application // // replace mark ups on SELECTED template // // sms and email // } /* NOTE: THIS FEATURE IS FROM THE INITIAL PLAN FOR CR1 */ // public function approve($uuid) // { // // submit to cyware // // if okay -- approve application // // replace mark ups on FIXED approve template // // sms and email // // return token // } /* NOTE: THIS FEATURE IS FROM THE INITIAL PLAN FOR CR1 */ // public function test() // { // $mail = new PHPMailer(true); // try { // $mail->SMTPDebug = 2; // Enable verbose debug output // $mail->isSMTP(); // Set mailer to use SMTP // // $mail->Host = 'smtp1.example.com;smtp2.example.com'; // Specify main and backup SMTP servers // $mail->Host = 'smtp.gmail.com'; // $mail->SMTPAuth = true; // Enable SMTP authentication // $mail->Username = 'yondutesting@gmail.com'; // SMTP username // $mail->Password = 'myY0nduP@ssword01'; // SMTP password // $mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted // $mail->Port = 587; // TCP port to connect to // } // echo "here"; // } }