id();
$user = Staff::with('StaffDetail')->find($id);
$pp = count(WorkOrder::where('status','Pending Non Prelaid')->get());
$sp = count(WorkOrder::where('status','Success Non Prelaid')->get());
$rs = count(WorkOrder::where('status','Reschedule')->get());
$ss = count(WorkOrder::where('status','Suspend')->get());
$cm = count(WorkOrder::where('status','Completed')->get());
return view('customer-service.view_contractor',compact('user','pp','sp','rs','ss','cm'));
}
public function getCustomerContractor()
{
$id = Auth::guard('cs')->id();
$user = Staff::with('StaffDetail')->find($id);
$agent = Staff::with('Company','StaffDetail')->where('roles_access','Contractor')->orderBy('created_at', 'desc')->get();
$curr = Carbon::now()->getTimestamp();
$i = 0;
$nested_data = array();
foreach ($agent as $a)
{
$i++;
$n1 = '';
$reg_time = $a->updated_at;
$expiry_date = $reg_time->addDays(3);
$expiry_date = $expiry_date->getTimestamp();
if($curr < $expiry_date) {
$n1 = "New/";
}
array_push($nested_data, array(
'index' => $n1.$i,
'user_pic' => $a->StaffDetail->user_pic,
'name' => $a->StaffDetail->name,
'ic' => $a->StaffDetail->ic,
'email' => $a->StaffDetail->email,
'phone' => $a->StaffDetail->phone,
'company_id' => $a->Company->name,
'position' => $a->StaffDetail->position,
'action' => $a->_id
));
}
return \DataTables::of($nested_data)->make(true);
}
public function viewCustomerContractorForm()
{
$id = Auth::guard('cs')->id();
$user = Staff::with('StaffDetail')->find($id);
$pp = count(WorkOrder::where('status','Pending Non Prelaid')->get());
$sp = count(WorkOrder::where('status','Success Non Prelaid')->get());
$rs = count(WorkOrder::where('status','Reschedule')->get());
$ss = count(WorkOrder::where('status','Suspend')->get());
$cm = count(WorkOrder::where('status','Completed')->get());
$company = Company::where('team','CBB')->get();
return view('customer-service.view_contractor_form',compact('user','pp','sp','rs','ss','cm','company'));
}
public function requestAddContractor(Request $request){
$validator = Validator::make($request->all(), [
'password' => 'min:5|confirmed',
]);
if ($validator->fails()) {
return redirect()->back()->withInput()->withErrors($validator);
}
$encrP = $this->encryptPassword('encrypt', $request->password);
$company = Company::where('_id',$request->vendor)->first();
$exist = Staff::with('StaffDetail')->where('email',$request->email)->where('roles_access','Contractor')->first();
if(empty($exist)){
$sl = Staff::create([
'email' => $request->email,
'password' => $encrP,
'roles_access' => 'Contractor',
'company_id' => $request->vendor,
'last_login_at' => '',
'last_login_ip'=> ''
]);
$sdl = new StaffDetail();
$sdl->name = $request->aname;
$sdl->ic = $request->ic;
$sdl->email = $request->email;
$sdl->phone = $request->phone;
$sdl->company_id = $request->vendor;
$sdl->color = $company->color;
$sdl->position = 'Contractor';
$sdl->password = $encrP;
$sdl->user_pic = 'assets/avatar/user.png';
$company->staff()->save($sl);
$company->save();
$sl->staffdetail()->save($sdl);
return redirect()->back()->with('success_msg', 'Success! add '.$request->get('aname').' as new contractor ');
}else {
return redirect()->back()->withInput()->withErrors('Email already exist');
}
}
public function editContractor($contractor)
{
$id = Auth::guard('cs')->id();
$user = Staff::with('StaffDetail')->find($id);
$pp = count(WorkOrder::where('status','Pending Non Prelaid')->get());
$sp = count(WorkOrder::where('status','Success Non Prelaid')->get());
$rs = count(WorkOrder::where('status','Reschedule')->get());
$ss = count(WorkOrder::where('status','Suspend')->get());
$cm = count(WorkOrder::where('status','Completed')->get());
$company = Company::where('team','CBB')->get();
$contractor = Staff::with('StaffDetail')->where('_id',$contractor)->first();
return view('customer-service.edit_contractor',compact('user','pp','sp','rs','ss','cm','company','contractor'));
}
public function requestEditContractor(Request $request){
$exist = Staff::with('StaffDetail')->where('_id',$request->contractor_id)->first();
$company = Company::where('_id',$request->vendor)->first();
if(empty($exist)){
return redirect()->back()->withInput()->withErrors('Contractor not found');
}else {
$exist->email = $request->email;
$exist->company_id = $request->vendor;
$exist->save();
$exist->StaffDetail->name = $request->aname;
$exist->StaffDetail->ic = $request->ic;
$exist->StaffDetail->email = $request->email;
$exist->StaffDetail->phone = $request->phone;
$exist->StaffDetail->company_id = $request->vendor;
$exist->StaffDetail->save();
$company->staff()->save($exist);
$company->save();
return redirect()->back()->with('success_msg', 'Success! update '.$request->get('aname').' as new contractor ');
}
}
public function viewCustomerVendor()
{
$id = Auth::guard('cs')->id();
$user = Staff::with('StaffDetail')->find($id);
$pp = count(WorkOrder::where('status','Pending Non Prelaid')->get());
$sp = count(WorkOrder::where('status','Success Non Prelaid')->get());
$rs = count(WorkOrder::where('status','Reschedule')->get());
$ss = count(WorkOrder::where('status','Suspend')->get());
$cm = count(WorkOrder::where('status','Completed')->get());
return view('customer-service.view_vendor',compact('user','pp','sp','rs','ss','cm'));
}
public function getCustomerVendor() {
$i=0;
$team = Company::where('team','CBB')->get();
$nested_data = array();
foreach ($team as $a)
{
$i++; $n1 = '';
array_push($nested_data, array(
'index' => $n1.$i,
'name' => $a->name,
'address' => $a->address,
'city' => $a->city,
'state' => $a->state,
'postcode' => $a->postcode,
'action' => $a->_id
));
}
return \DataTables::of($nested_data)->make(true);
}
function random_color_part() {
return str_pad( dechex( mt_rand( 0, 255 ) ), 2, '0', STR_PAD_LEFT);
}
function random_color() {
return $this->random_color_part() . $this->random_color_part() . $this->random_color_part();
}
public function viewCustomerVendorForm()
{
$id = Auth::guard('cs')->id();
$user = Staff::with('StaffDetail')->find($id);
$pp = count(WorkOrder::where('status','Pending Non Prelaid')->get());
$sp = count(WorkOrder::where('status','Success Non Prelaid')->get());
$rs = count(WorkOrder::where('status','Reschedule')->get());
$ss = count(WorkOrder::where('status','Suspend')->get());
$cm = count(WorkOrder::where('status','Completed')->get());
$colors = array();
for($i = 0; $i < 19; $i++){
$colors[] = '#'.$this->random_color();
}
return view('customer-service.view_vendor_form', compact('user','pp','sp','rs','ss','cm','colors'));
}
public function requesAddVendor(Request $request){
$sl = Company::create([
'name' => $request->cname,
"address" => $request->address,
"city" => $request->city,
"state" => $request->state,
"postcode" => $request->postcode,
"color" => $request->color,
"team" => "CBB",
]);
return redirect()->back()->with('success_msg', 'Success! add '.$request->get('cname').' as new vendor ');
}
public function editVendor($vendor){
$id = Auth::guard('cs')->id();
$user = Staff::with('StaffDetail')->find($id);
$pp = count(WorkOrder::where('status','Pending Non Prelaid')->get());
$sp = count(WorkOrder::where('status','Success Non Prelaid')->get());
$rs = count(WorkOrder::where('status','Reschedule')->get());
$ss = count(WorkOrder::where('status','Suspend')->get());
$cm = count(WorkOrder::where('status','Completed')->get());
$vendor = Company::find($vendor);
return view('customer-service.edit_vendor', compact('user','pp','sp','rs','ss','cm','vendor'));
}
public function requesEditVendor(Request $request){
$company = Company::where('_id',$request->company_id)->first();
if(!empty($company)){
$company->name = $request->cname;
$company->address = $request->address;
$company->city = $request->city;
$company->state = $request->state;
$company->postcode = $request->postcode;
$company->save();
return redirect()->back()->with('success_msg', 'Success! update '.$request->get('cname').' detail ');
}else {
return redirect()->back()->with('error_msg', 'Failed! update '.$request->get('cname').' detail. No company exist!');
}
}
public function requestDeleteVendor(Request $request)
{
$company = Company::where('_id',$request->id)->first();
if(!empty($company)){
$company->delete();
return 'true';
}else {
return 'false';
}
}
public function requestDeleteContractor(Request $request)
{
$staff = Staff::where('_id',$request->id)->first();
if(!empty($staff)){
$staff->delete();
return 'true';
}else {
return 'false';
}
}
}