where('subscriber_id',$subscriber_id)->first(); $form = Form::with('Subscriber','PackageDetail')->where('_id',$subscriber->_id)->first(); $product = Product::where('speed',$form->PackageDetail->name)->where('formT',$form->type_application)->first(); SendCustomerInvoice::dispatch($form, $product, $form->Subscriber->email); return $form->_id; } public function sendInvoice1($subscriber_id) { $subscriber = Subscriber::with('Form')->where('subscriber_id',$subscriber_id)->first(); $form = Form::with('Subscriber','PackageDetail')->where('_id',$subscriber->_id)->first(); $product = Product::where('speed',$form->PackageDetail->name)->where('formT',$form->type_application)->first(); SendCustomerInvoice::dispatch($form, $product, 'nsakinahs1991@gmail.com'); return $form->_id; } function random_code($limit) { return substr(base_convert(sha1(uniqid(mt_rand())), 16, 36), 0, $limit); } public function viewFormAddress($package) { $dealer_id = ''; $coverage = Coverage::where('Type','R')->orderBy('building_name')->get(); return view('sales.form.residential_address', compact('coverage','package','dealer_id')); } public function viewFormApplication(Request $request) { $data = array(); array_push($data, array( 'coverage' => $request->coverage, 'unit' => $request->unit, 'street' => $request->street, 'package' => $request->package )); return view('sales.form.residential_application_information', compact('data')); } public function viewFormPackage(Request $request) { $data = array(); $citizen = ''; $street = ''; if($request->citizenship == "Malaysian"){ $citizen = $request->citizenship; } else { $citizen = $request->citizenlist; } if($request->street != null){ $street = $request->street; } array_push($data, array( 'coverage' => $request->coverage, 'unit' => $request->unit, 'street' => $street, 'package' => $request->package, 'application' => $request->application, 'name' => $request->name, 'nric_passport' => $request->nric_passport, 'gender' => $request->gender, 'race' => $request->race, 'contact_primary' => $request->contact_primary, 'contact_secondary' => $request->contact_secondary, 'citizenship' => $citizen, 'email' => $request->email )); $pg = $request->package; return view('sales.form.residential_package', compact('data','pg','citizen')); } public function viewFormPreview(Request $request){ $data = array(); $coverage = Coverage::where('_id',$request->coverage)->first(); $product = Product::where('formT','R')->where('package_name',$request->package)->first(); $otc = 0.0; $deposit = 0.0; $voice = "No"; if($request->has('voice')){ $voice = $request->voice; }else { $voice = "No"; } if($request->citizenship != 'Malaysian' && $request->subscription == '12' && $voice == 'No'){ $otc = 300; $deposit = $product->deposit; }else if($request->citizenship != 'Malaysian' && $request->subscription == '12' && $voice == 'Yes'){ $otc = 300 + 100; $deposit = $product->deposit; }else if($request->citizenship != 'Malaysian' && $request->subscription == '24' && $voice == 'No'){ $otc = 0.0; $deposit = 300; }else if($request->citizenship != 'Malaysian' && $request->subscription == '24' && $voice == 'Yes') { $otc = 0.0; $deposit = 300 + 100; }else if($request->citizenship == 'Malaysian' && $request->subscription == '24'){ $otc = 0.0; $deposit = $product->deposit; }else if($request->citizenship == 'Malaysian' && $request->subscription == '12'){ $otc = 300; $deposit = $product->deposit; } $gst = 0; $total = 0; if($product->promotion_price != '0' && $request->subscription == '24'){ $gst = number_format(floatval($product->promotion_price) * 1.06,2); $total = number_format((floatval($product->promotion_price) * 1.06) + ($otc * 1.06) + $deposit, 2); }else if($product->promotion_price == '0'){ $gst = number_format(floatval($product->retail_price) * 1.06,2); $total = number_format((floatval($product->retail_price) * 1.06) + ($otc * 1.06) + $deposit, 2); } array_push($data, array( 'coverage' => $request->coverage, 'unit' => $request->unit, 'street' => $request->street, 'package' => $request->package, 'application' => $request->application, 'name' => $request->name, 'nric_passport' => $request->nric_passport, 'gender' => $request->gender, 'race' => $request->race, 'contact_primary' => $request->contact_primary, 'contact_secondary' => $request->contact_secondary, 'citizenship' => $request->citizenship, 'email' => $request->email, 'subscription' => $request->subscription, 'billing' => $request->billing, 'voice' => $voice, 'thedate' => $request->thedate, )); return view('sales.form.residential_preview', compact('data','coverage','product','deposit','otc','gst','total')); } public function storeFormData(Request $request){ $su_id = ''; $pathIconF = ''; $pathIconB = ''; $pathVisaF = ''; $pathVisaB = ''; do { $su_id = strtoupper('CBB-'.$this->random_code(6).'R'); } while (Subscriber::where("subscriber_id", "=", $su_id)->first() instanceof Subscriber); $destinationPath = 'document/'.$su_id; // create folder/dir if not exist if(!File::exists(public_path().'/'.$destinationPath)){ File::makeDirectory(public_path().'/'.$destinationPath,0777,true); } $uploaded = public_path().'/'.$destinationPath; // Signature $signature_form = $request->cuss_signature; $signature_form = str_replace('data:image/jpeg;base64,','',$signature_form); $signature_form = str_replace('','+',$signature_form); //convert signature_form $data = base64_decode($signature_form); $file = $uploaded."/signature_form.jpg"; $savetoServer = file_put_contents($file,$data); if (($savetoServer === false) || ($savetoServer == -1)) { print "Couldn't save signature to jpeg"; }else { if($request->hasfile('front_ic')){ $icon = $request->file('front_ic'); $icon->move($destinationPath,'frontic.'.strtolower($icon->getClientOriginalExtension())); $pathIconF = '/'.$destinationPath.'/frontic.'.strtolower($icon->getClientOriginalExtension()); } if($request->hasfile('back_ic')){ $icon = $request->file('back_ic'); $icon->move($destinationPath,'backic.'.strtolower($icon->getClientOriginalExtension())); $pathIconB = '/'.$destinationPath.'/backic.'.strtolower($icon->getClientOriginalExtension()); } if($request->hasfile('visaF')){ $icon = $request->file('visaF'); $icon->move($destinationPath,'visaF.'.strtolower($icon->getClientOriginalExtension())); $pathVisaF = '/'.$destinationPath.'/visaF.'.strtolower($icon->getClientOriginalExtension()); } if($request->hasfile('visaB')){ $icon = $request->file('visaB'); $icon->move($destinationPath,'visaB.'.strtolower($icon->getClientOriginalExtension())); $pathVisaB = '/'.$destinationPath.'/visaB.'.strtolower($icon->getClientOriginalExtension()); } $sl = Form::create([ 'type_service' => $request->application, 'type_application' => 'R', 'status_payment' => 'paid', 'status_email' => 'unverified', 'remark_form' => '' ]); $coverage = Coverage::where('_id',$request->coverage)->first(); $product = Product::where('formT','R')->where('package_name',$request->package)->first(); $sdl = new Subscriber(); $sdl->subscriber_id = $su_id; $sdl->name = $request->name; $sdl->ic = $request->nric_passport; $sdl->citizen = $request->citizenship; $sdl->gender = $request->gender; $sdl->race = $request->race; $sdl->email = $request->email; $sdl->phone1 = $request->contact_primary; $sdl->phone2 = $request->contact_secondary; $sdl->unit_no = $request->unit; $sdl->building_name = $coverage->building_name; $sdl->street = $request->street; $sdl->postcode = $coverage->postcode; $sdl->city = $coverage->city; $sdl->state = $coverage->state; $sdl->front_ic = $pathIconF; $sdl->back_ic = $pathIconB; $sdl->visaF = $pathVisaF; $sdl->visaB = $pathVisaB; $sdl->signature = '/'.$destinationPath.'/signature_form.jpg'; $packageD = new PackageDetail(); $packageD->contract = $request->subscription; $packageD->name = $product->speed; if($request->subscription == '24' && $product->speed == '100'){ $packageD->montly_fee = '1 Month FREE'; }else { $packageD->montly_fee = $request->gst; } $packageD->voice_fee = $request->voice; $packageD->deposit = $request->deposit; $packageD->upfront_payment = $request->otc; $packageD->rfs = $request->rfs; $sl->subscriber()->save($sdl); $sl->packagedetail()->save($packageD); $f_id = $this->sendInvoice($su_id); $stat = new FormStatus(); $stat->form_id = $f_id; $stat->status_id = 1; $stat->date = new \MongoDB\BSON\UTCDateTime(time()*1000); $stat->status = 'Sumbitted'; $stat->desc = 'The form already been submit'; $sl->formstatus()->save($stat); return redirect('http://db.citybroadband.my/residential/application-form/success-submit'); } } /** ** Dealer **/ public function viewFormAddressD($package,$dealer_id) { $coverage = Coverage::where('Type','R')->orderBy('building_name')->get(); return view('sales.form.dealer.residential_address', compact('coverage','package','dealer_id')); } public function viewFormApplicationD(Request $request) { $data = array(); array_push($data, array( 'coverage' => $request->coverage, 'unit' => $request->unit, 'street' => $request->street, 'package' => $request->package, 'dealer_id' => $request->dealer_id )); return view('sales.form.dealer.residential_application_information', compact('data')); } public function viewFormPackageD(Request $request) { $data = array(); $citizen = ''; $street = ''; if($request->citizenship == "Malaysian"){ $citizen = $request->citizenship; } else { $citizen = $request->citizenlist; } if($request->street != null){ $street = $request->street; } array_push($data, array( 'dealer_id' => $request->dealer_id, 'coverage' => $request->coverage, 'unit' => $request->unit, 'street' => $street, 'package' => $request->package, 'application' => $request->application, 'name' => $request->name, 'nric_passport' => $request->nric_passport, 'ip' => $request->ip, 'gender' => $request->gender, 'race' => $request->race, 'contact_primary' => $request->contact_primary, 'contact_secondary' => $request->contact_secondary, 'citizenship' => $citizen, 'email' => $request->email )); $pg = $request->package; return view('sales.form.dealer.residential_package', compact('data','pg','citizen')); } public function viewFormPreviewD(Request $request){ $data = array(); $coverage = Coverage::where('_id',$request->coverage)->first(); $product = Product::where('formT','R')->where('package_name',$request->package)->first(); $otc = 0.0; $deposit = 0.0; $voice = "No"; if($request->has('voice')){ $voice = $request->voice; }else { $voice = "No"; } if($request->citizenship != 'Malaysian' && $request->subscription == '12' && $voice == 'No'){ $otc = 300; $deposit = $product->deposit; }else if($request->citizenship != 'Malaysian' && $request->subscription == '12' && $voice == 'Yes'){ $otc = 300 + 100; $deposit = $product->deposit; }else if($request->citizenship != 'Malaysian' && $request->subscription == '24' && $voice == 'No'){ $otc = 0.0; $deposit = 300; }else if($request->citizenship != 'Malaysian' && $request->subscription == '24' && $voice == 'Yes') { $otc = 0.0; $deposit = 300 + 100; }else if($request->citizenship == 'Malaysian' && $request->subscription == '24'){ $otc = 0.0; $deposit = $product->deposit; }else if($request->citizenship == 'Malaysian' && $request->subscription == '12'){ $otc = 300; $deposit = $product->deposit; } $gst = 0; $total = 0; if($product->promotion_price != '0' && $request->subscription == '24'){ $gst = number_format(floatval($product->promotion_price) * 1.06,2); $total = number_format((floatval($product->promotion_price) * 1.06) + ($otc * 1.06) + $deposit, 2); }else if($product->promotion_price == '0'){ $gst = number_format(floatval($product->retail_price) * 1.06,2); $total = number_format((floatval($product->retail_price) * 1.06) + ($otc * 1.06) + $deposit, 2); } array_push($data, array( 'dealer_id' => $request->dealer_id, 'coverage' => $request->coverage, 'unit' => $request->unit, 'street' => $request->street, 'package' => $request->package, 'application' => $request->application, 'name' => $request->name, 'nric_passport' => $request->nric_passport, 'gender' => $request->gender, 'race' => $request->race, 'contact_primary' => $request->contact_primary, 'contact_secondary' => $request->contact_secondary, 'citizenship' => $request->citizenship, 'email' => $request->email, 'subscription' => $request->subscription, 'billing' => $request->billing, 'voice' => $voice, 'ip' => $request->ip, 'thedate' => $request->thedate, )); return view('sales.form.dealer.residential_preview', compact('data','coverage','product','deposit','otc','gst','total')); } public function storeFormDataD(Request $request){ $su_id = ''; $pathIconF = ''; $pathIconB = ''; $pathVisaF = ''; $pathVisaB = ''; do { $su_id = strtoupper('CBB-'.$this->random_code(6).'R'); } while (Subscriber::where("subscriber_id", "=", $su_id)->first() instanceof Subscriber); $destinationPath = 'document/'.$su_id; // create folder/dir if not exist if(!File::exists(public_path().'/'.$destinationPath)){ File::makeDirectory(public_path().'/'.$destinationPath,0777,true); } $uploaded = public_path().'/'.$destinationPath; // Signature $signature_form = $request->cuss_signature; $signature_form = str_replace('data:image/jpeg;base64,','',$signature_form); $signature_form = str_replace('','+',$signature_form); //convert signature_form $data = base64_decode($signature_form); $file = $uploaded."/signature_form.jpg"; $savetoServer = file_put_contents($file,$data); if (($savetoServer === false) || ($savetoServer == -1)) { print "Couldn't save signature to jpeg"; }else { if($request->hasfile('front_ic')){ $icon = $request->file('front_ic'); $icon->move($destinationPath,'frontic.'.strtolower($icon->getClientOriginalExtension())); $pathIconF = '/'.$destinationPath.'/frontic.'.strtolower($icon->getClientOriginalExtension()); } if($request->hasfile('back_ic')){ $icon = $request->file('back_ic'); $icon->move($destinationPath,'backic.'.strtolower($icon->getClientOriginalExtension())); $pathIconB = '/'.$destinationPath.'/backic.'.strtolower($icon->getClientOriginalExtension()); } if($request->hasfile('visaF')){ $icon = $request->file('visaF'); $icon->move($destinationPath,'visaF.'.strtolower($icon->getClientOriginalExtension())); $pathVisaF = '/'.$destinationPath.'/visaF.'.strtolower($icon->getClientOriginalExtension()); } if($request->hasfile('visaB')){ $icon = $request->file('visaB'); $icon->move($destinationPath,'visaB.'.strtolower($icon->getClientOriginalExtension())); $pathVisaB = '/'.$destinationPath.'/visaB.'.strtolower($icon->getClientOriginalExtension()); } // staff $staff = Staff::with('StaffDetail')->where('_id',$request->dealer_id)->first(); if(!empty($staff)){ $sl = new Form(); $sl->type_service = $request->application; $sl->type_application = 'R'; $sl->status_payment = 'paid'; $sl->status_email = 'unverified'; $sl->remark_form = ''; $sl->dealer_id = $request->dealer_id; $sl->company_id = $staff->StaffDetail->company_id; $staff->form()->save($sl); $coverage = Coverage::where('_id',$request->coverage)->first(); $product = Product::where('formT','R')->where('package_name',$request->package)->first(); $sdl = new Subscriber(); $sdl->subscriber_id = $su_id; $sdl->name = $request->name; $sdl->ic = $request->nric_passport; $sdl->citizen = $request->citizenship; $sdl->gender = $request->gender; $sdl->race = $request->race; $sdl->email = $request->email; $sdl->phone1 = $request->contact_primary; $sdl->phone2 = $request->contact_secondary; $sdl->unit_no = $request->unit; $sdl->building_name = $coverage->building_name; $sdl->street = $request->street; $sdl->postcode = $coverage->postcode; $sdl->city = $coverage->city; $sdl->state = $coverage->state; $sdl->front_ic = $pathIconF; $sdl->back_ic = $pathIconB; $sdl->visaF = $pathVisaF; $sdl->visaB = $pathVisaB; $sdl->signature = '/'.$destinationPath.'/signature_form.jpg'; $packageD = new PackageDetail(); $packageD->contract = $request->subscription; $packageD->name = $product->speed; if($request->subscription == '24' && $product->speed == '100'){ $packageD->montly_fee = '1 Month FREE'; }else { $packageD->montly_fee = $request->gst; } $packageD->voice_fee = $request->voice; $packageD->deposit = $request->deposit; $packageD->upfront_payment = $request->otc; $packageD->rfs = $request->rfs; $sl->subscriber()->save($sdl); $sl->packagedetail()->save($packageD); $f_id = $this->sendInvoice($su_id); $stat = new FormStatus(); $stat->form_id = $f_id; $stat->status_id = 1; $stat->date = new \MongoDB\BSON\UTCDateTime(time()*1000); $stat->status = 'Sumbitted'; $stat->desc = 'The form already been submit'; $sl->formstatus()->save($stat); return redirect('http://db.citybroadband.my/residential/application-form/success-submit'); } } } public function verifyEmail($subscriber_id){ $subscriber = Subscriber::where('subscriber_id',$subscriber_id)->first(); if(!empty($subscriber)){ $form = Form::where('_id',$subscriber->_id)->first(); if(!empty($form)){ if($form->status_email == 'unverified'){ $form->status_email = 'verified'; $form->save(); $stat = new FormStatus(); $stat->form_id = $form->_id; $stat->status_id = 2; $stat->date = new \MongoDB\BSON\UTCDateTime(time()*1000); $stat->status = 'Verified'; $stat->desc = 'Email already been verified by customer'; $form->formstatus()->save($stat); return redirect('http://db.citybroadband.my/residential/application-form/success-verified'); } } } } public function resendEmail($subscriber_id){ $f_id = $this->sendInvoice($subscriber_id); return $f_id; } }