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(); SendCustomerInvoiceB::dispatch($form, $product, $form->Subscriber->email); 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', 'B')->groupBy('building_name')->orderBy('building_name')->get(); // dd($coverage); return view('sales.form.business_address', compact('coverage', 'package', 'dealer_id')); } public function viewFormApplication(Request $request) { $data = array(); $coverage = Coverage::where('building_name', $request->coverage)->where('street', $request->street)->get(); array_push($data, array( 'coverage' => $coverage[0]['_id'], 'unit' => $request->unit, 'street' => $request->street, 'package' => $request->package )); return view('sales.form.business_application_information', compact('data')); } public function viewFormPackage(Request $request) { $data = array(); array_push($data, array( 'coverage' => $request->coverage, 'unit' => $request->unit, 'street' => $request->street, 'package' => $request->package, 'application' => $request->application, 'company_name' => $request->company_name, 'company_register' => $request->company_register, 'company_number' => $request->company_number, 'company_fax' => $request->company_fax, 'full_name' => $request->full_name, 'nric_passport' => $request->nric_passport, 'designation' => $request->designation, 'contact_primary' => $request->contact_primary, 'contact_secondary' => $request->contact_secondary, 'email' => $request->email, )); $pg = $request->package; return view('sales.form.business_package', compact('data', 'pg')); } public function viewFormPreview(Request $request) { $data = array(); $coverage = Coverage::where('_id', $request->coverage)->first(); $product = Product::where('formT', 'B')->where('package_name', $request->package)->first(); $otc = 0.0; $total_monthly = 0; $gst = ''; $promo_st = ''; $voice = "No"; if ($request->voice == "Yes") { $voice = $request->voice; $voice_price = 20; } else { $voice = "No"; $voice_price = 0; } $ip_fee = 0; $ip_tax = 0; if ($request->ip == "1 Fixed IP RM200/1P/Month") { $ip_fee = 200; $ip_tax = number_format((floatval($ip_fee) * 1.06), 2); } elseif ($request->ip == "5 Fixed IP RM400/1P/Month") { $ip_fee = 400; $ip_tax = number_format((floatval($ip_fee) * 1.06), 2); } if ($request->package != "1Gbps" && $request->subscription == '24') { $promo_price = number_format(floatval($product->retail_price) - 10); $promo_st = number_format(floatval($promo_price) * 1.06, 2); $total_monthly = number_format($promo_st + ($voice_price * 1.06) + $ip_tax, 2); } else if ($request->package == "1Gbps") { if ($request->ip == "1 Fixed IP RM200/1P/Month") { $gst = number_format(floatval($product->retail_price) * 1.06, 2); $total_monthly = 3920.94; } elseif ($request->ip == "5 Fixed IP RM400/1P/Month") { $gst = number_format(floatval($product->retail_price) * 1.06, 2); $total_monthly = 4132.94; } else { $gst = 3708.94; $total_monthly = 3708.94; } } else { $gst = number_format(floatval($product->retail_price) * 1.06, 2); $total_monthly = number_format($gst + ($voice_price * 1.06) + $ip_tax, 2); } if ($request->subscription == '12' && $voice == 'No') { if ($request->package != '50Mbps') { $otc = 400; } else { $otc = 300; } $deposit = $product->deposit; } else if ($request->subscription == '12' && $voice == 'Yes') { $otc = 300 + 100; $deposit = $product->deposit; } else { $otc = 0.0; $deposit = $product->deposit; } $otc_st = number_format(floatval($otc) * 1.06, 2); $upfront_total = number_format(floatval($otc_st) + $deposit, 2); $total = number_format((floatval($product->retail_price) * 1.06) + ($otc * 1.06) + $deposit + $ip_tax, 2); array_push($data, array( 'coverage' => $request->coverage, 'unit' => $request->unit, 'street' => $request->street, 'package' => $request->package, 'application' => $request->application, 'company_name' => $request->company_name, 'company_register' => $request->company_register, 'company_number' => $request->company_number, 'company_fax' => $request->company_fax, 'full_name' => $request->full_name, 'nric_passport' => $request->nric_passport, 'designation' => $request->designation, 'contact_primary' => $request->contact_primary, 'contact_secondary' => $request->contact_secondary, 'email' => $request->email, 'subscription' => $request->subscription, 'billing' => $request->billing, 'voice' => $voice, 'ip' => $request->ip, 'ip_fee' => $ip_fee, 'ip_tax' => $ip_tax, 'thedate' => $request->thedate, )); return view('sales.form.business_preview', compact('data', 'coverage', 'product', 'deposit', 'otc', 'otc_st', 'gst', 'promo_price', 'promo_st', 'total_monthly', 'upfront_total')); } public function storeFormData(Request $request) { $su_id = ''; $pathIconF = ''; $pathIconB = ''; $pathForm9 = ''; do { $su_id = strtoupper('CBB-' . $this->random_code(6) . 'B'); } 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); } if ($request->hasfile('front_ic')) { $icon = $request->file('front_ic'); $icon->move($destinationPath, 'frontic.' . $icon->getClientOriginalExtension()); $pathIconF = '/' . $destinationPath . '/frontic.' . $icon->getClientOriginalExtension(); } if ($request->hasfile('back_ic')) { $icon = $request->file('back_ic'); $icon->move($destinationPath, 'backic.' . $icon->getClientOriginalExtension()); $pathIconB = '/' . $destinationPath . '/backic.' . $icon->getClientOriginalExtension(); } if ($request->hasfile('form9')) { $icon = $request->file('form9'); $icon->move($destinationPath, 'formD.' . $icon->getClientOriginalExtension()); $pathForm9 = '/' . $destinationPath . '/formD.' . $icon->getClientOriginalExtension(); } if ($pathForm9 != '' && $pathIconB != '' && $pathIconF != '') { $coverage = Coverage::where('_id', $request->coverage)->first(); $product = Product::where('formT', 'B')->where('package_name', $request->package)->first(); $sl = Form::create([ 'type_service' => $request->application, 'type_application' => 'B', 'project_type' => $coverage->project_type, 'status_payment' => 'paid', 'status_email' => 'unverified', 'customer_category' => 'Allo', 'remark_form' => '' ]); $sdl = new Subscriber(); $sdl->subscriber_id = $su_id; $sdl->name = $request->full_name; $sdl->ic = $request->nric_passport; $sdl->company_name = $request->company_name; $sdl->company_reg = $request->company_register; $sdl->company_num = $request->company_number; $sdl->company_fax = $request->company_fax; $sdl->designation = $request->designation; $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->form9_44 = $pathForm9; $packageD = new PackageDetail(); $packageD->contract = $request->subscription; $packageD->name = $product->speed; if ($request->gst != null) { $packageD->montly_fee = $request->gst; } else { $packageD->montly_fee = $request->promo_st; } $packageD->voice_fee = $request->voice; $packageD->ip = $request->ip; $packageD->deposit = $request->deposit; $packageD->upfront_payment = $request->otc; $packageD->ip_tax = $request->ip_tax; $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 = 'Submitted'; $stat->desc = 'The form already been submit'; $sl->formstatus()->save($stat); return redirect('http://db.citybroadband.my/business/application-form/success-submit'); } } /*** ** Dealer ***/ public function viewFormAddressD($package, $dealer_id) { $coverage = Coverage::where('Type', 'B')->groupBy('building_name')->orderBy('building_name')->get(); return view('sales.form.dealer.business_address', compact('coverage', 'package', 'dealer_id')); } public function viewFormApplicationD(Request $request) { $data = array(); $coverage = Coverage::where('building_name', $request->coverage)->where('street', $request->street)->get(); array_push($data, array( 'coverage' => $coverage[0]['_id'], 'unit' => $request->unit, 'street' => $request->street, 'package' => $request->package, 'dealer_id' => $request->dealer_id, )); return view('sales.form.dealer.business_application_information', compact('data')); } public function viewFormPackageD(Request $request) { $data = array(); array_push($data, array( 'coverage' => $request->coverage, 'unit' => $request->unit, 'street' => $request->street, 'package' => $request->package, 'application' => $request->application, 'company_name' => $request->company_name, 'company_register' => $request->company_register, 'company_number' => $request->company_number, 'company_fax' => $request->company_fax, 'full_name' => $request->full_name, 'nric_passport' => $request->nric_passport, 'ip' => $request->ip, 'designation' => $request->designation, 'contact_primary' => $request->contact_primary, 'contact_secondary' => $request->contact_secondary, 'email' => $request->email, 'dealer_id' => $request->dealer_id, )); $pg = $request->package; $coverage = Coverage::where('_id', $request->coverage)->first(); $city = $coverage->city; return view('sales.form.dealer.business_package', compact('data', 'pg', 'city')); } public function viewFormPreviewD(Request $request) { $data = array(); $coverage = Coverage::where('_id', $request->coverage)->first(); $product = Product::where('formT', 'B')->where('package_name', $request->package)->first(); $otc = 0.0; $total_monthly = 0; $gst = ''; $promo_st = ''; $voice = "No"; if ($request->voice == "Yes") { $voice = $request->voice; $voice_price = 20; } else { $voice = "No"; $voice_price = 0; } $ip_fee = 0; $ip_tax = 0; if ($request->ip == "1 Fixed IP RM200/1P/Month") { $ip_fee = 200; $ip_tax = number_format((floatval($ip_fee) * 1.06), 2); } elseif ($request->ip == "5 Fixed IP RM400/1P/Month") { $ip_fee = 400; $ip_tax = number_format((floatval($ip_fee) * 1.06), 2); } if ($request->package != "1Gbps" && $request->subscription == '24') { $promo_price = number_format(floatval($product->retail_price) - 10); $promo_st = number_format(floatval($promo_price) * 1.06, 2); $total_monthly = number_format($promo_st + ($voice_price * 1.06) + $ip_tax, 2); } else if ($request->package == "1Gbps") { if ($request->subscription == '24' && $coverage->city == 'CYBERJAYA') { $gst = 1058.94; $total_monthly = 1058.94; } else { $gst = 3708.94; $total_monthly = 3708.94; } } else { $gst = number_format(floatval($product->retail_price) * 1.06, 2); $total_monthly = number_format($gst + ($voice_price * 1.06) + $ip_tax, 2); } if ($request->subscription == '12' && $voice == 'No') { if ($request->package != '50Mbps') { $otc = 400; } else { $otc = 300; } $deposit = $product->deposit; } else if ($request->subscription == '12' && $voice == 'Yes') { $otc = 300 + 100; $deposit = $product->deposit; } else if ($request->subscription == '12' && $request->package != '50Mbps') { $otc = 400; $deposit = $product->deposit; } else { $otc = 0.0; $deposit = $product->deposit; } $otc_st = number_format(floatval($otc) * 1.06, 2); $upfront_total = number_format(floatval($otc_st) + $deposit, 2); $total = number_format((floatval($product->retail_price) * 1.06) + ($otc * 1.06) + $deposit + $ip_tax, 2); if ($coverage->city == 'CYBERJAYA' && $request->subscription == '24') { $ip = $request->ip1; } else { $ip = $request->ip; } array_push($data, array( 'coverage' => $request->coverage, 'unit' => $request->unit, 'street' => $request->street, 'package' => $request->package, 'application' => $request->application, 'company_name' => $request->company_name, 'company_register' => $request->company_register, 'company_number' => $request->company_number, 'company_fax' => $request->company_fax, 'full_name' => $request->full_name, 'nric_passport' => $request->nric_passport, 'designation' => $request->designation, 'contact_primary' => $request->contact_primary, 'contact_secondary' => $request->contact_secondary, 'email' => $request->email, 'subscription' => $request->subscription, 'billing' => $request->billing, 'voice' => $voice, 'ip' => $ip, 'ip_fee' => $ip_fee, 'ip_tax' => $ip_tax, 'thedate' => $request->thedate, 'dealer_id' => $request->dealer_id, )); return view('sales.form.dealer.business_preview', compact('data', 'coverage', 'product', 'deposit', 'otc', 'otc_st', 'gst', 'promo_price', 'promo_st', 'total_monthly', 'upfront_total')); } public function storeFormDataD(Request $request) { $su_id = ''; $pathIconF = ''; $pathIconB = ''; $pathForm9 = ''; $pathPaymentReceipt = ''; $pathSoForm = ''; do { $su_id = strtoupper('CBB-' . $this->random_code(6) . 'B'); } 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); } if ($request->hasfile('front_ic')) { $icon = $request->file('front_ic'); $icon->move($destinationPath, 'frontic.' . $icon->getClientOriginalExtension()); $pathIconF = '/' . $destinationPath . '/frontic.' . $icon->getClientOriginalExtension(); } if ($request->hasfile('back_ic')) { $icon = $request->file('back_ic'); $icon->move($destinationPath, 'backic.' . $icon->getClientOriginalExtension()); $pathIconB = '/' . $destinationPath . '/backic.' . $icon->getClientOriginalExtension(); } if ($request->hasfile('form9')) { $icon = $request->file('form9'); $icon->move($destinationPath, 'formD.' . $icon->getClientOriginalExtension()); $pathForm9 = '/' . $destinationPath . '/formD.' . $icon->getClientOriginalExtension(); } if ($request->hasfile('paymentReceipt')) { $icon = $request->file('paymentReceipt'); $icon->move($destinationPath, 'paymentReceipt.' . $icon->getClientOriginalExtension()); $pathPaymentReceipt = '/' . $destinationPath . '/paymentReceipt.' . $icon->getClientOriginalExtension(); } if ($request->hasfile('soForm')) { $icon = $request->file('soForm'); $icon->move($destinationPath, 'soForm.' . $icon->getClientOriginalExtension()); $pathSoForm = '/' . $destinationPath . '/soForm.' . $icon->getClientOriginalExtension(); } if ($pathForm9 != '' && $pathIconB != '' && $pathIconF != '') { $staff = Staff::with('StaffDetail')->where('_id', $request->dealer_id)->first(); if (!empty($staff)) { $coverage = Coverage::where('_id', $request->coverage)->first(); $product = Product::where('formT', 'B')->where('package_name', $request->package)->first(); $sl = new Form(); $sl->type_service = $request->application; $sl->type_application = 'B'; $sl->project_type = $coverage->project_type; $sl->status_payment = 'paid'; $sl->status_email = 'unverified'; $sl->customer_category = 'Allo'; $sl->remark_form = ''; $sl->dealer_id = $request->dealer_id; $sl->company_id = $staff->StaffDetail->company_id; $staff->form()->save($sl); $sdl = new Subscriber(); $sdl->subscriber_id = $su_id; $sdl->name = $request->full_name; $sdl->ic = $request->nric_passport; $sdl->company_name = $request->company_name; $sdl->company_reg = $request->company_register; $sdl->company_num = $request->company_number; $sdl->company_fax = $request->company_fax; $sdl->designation = $request->designation; $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->form9_44 = $pathForm9; $sdl->paymentReceipt = $pathPaymentReceipt; $sdl->soForm = $pathSoForm; $packageD = new PackageDetail(); $packageD->contract = $request->subscription; $packageD->name = $product->speed; if ($request->gst != null) { $packageD->montly_fee = $request->gst; } else { $packageD->montly_fee = $request->promo_st; } $packageD->voice_fee = $request->voice; $packageD->ip = $request->ip; $packageD->ip_tax = $request->ip_tax; $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 = 'Submitted'; $stat->desc = 'The form already been submit'; $sl->formstatus()->save($stat); return redirect('http://db.citybroadband.my/business/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/business/application-form/success-verified'); } } } } public function resendEmail($subscriber_id) { $f_id = $this->sendInvoice($subscriber_id); return $f_id; } public function checkEmailTemplate($subscriber_id) { $subscriber = Subscriber::where('subscriber_id', $subscriber_id)->first(); if (!empty($subscriber)) { $form = Form::where('_id', $subscriber->_id)->first(); $product = Product::where('speed', $form->PackageDetail->name)->where('formT', $form->type_application)->first(); } return view('email.invoiceb', compact('form', 'product')); } }