You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					99 lines
				
				3.4 KiB
			
		
		
			
		
	
	
					99 lines
				
				3.4 KiB
			| 
								 
											2 years ago
										 
									 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace App\Http\Controllers;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								use App\Models\DeliveryMan;
							 | 
						||
| 
								 | 
							
								use Brian2694\Toastr\Facades\Toastr;
							 | 
						||
| 
								 | 
							
								use Illuminate\Http\Request;
							 | 
						||
| 
								 | 
							
								use App\CentralLogics\Helpers;
							 | 
						||
| 
								 | 
							
								use App\Models\BusinessSetting;
							 | 
						||
| 
								 | 
							
								use Illuminate\Support\Facades\Mail;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class DeliveryManController extends Controller
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    public function create()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $status = BusinessSetting::where('key', 'toggle_dm_registration')->first();
							 | 
						||
| 
								 | 
							
								        if(!isset($status) || $status->value == '0')
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            Toastr::error(translate('messages.not_found'));
							 | 
						||
| 
								 | 
							
								            return back();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        return view('dm-registration');
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function store(Request $request)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $status = BusinessSetting::where('key', 'toggle_dm_registration')->first();
							 | 
						||
| 
								 | 
							
								        if(!isset($status) || $status->value == '0')
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            Toastr::error(translate('messages.not_found'));
							 | 
						||
| 
								 | 
							
								            return back();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $request->validate([
							 | 
						||
| 
								 | 
							
								            'f_name' => 'required|max:100',
							 | 
						||
| 
								 | 
							
								            'l_name' => 'nullable|max:100',
							 | 
						||
| 
								 | 
							
								            'identity_number' => 'required|max:30',
							 | 
						||
| 
								 | 
							
								            'email' => 'required|email|unique:delivery_men',
							 | 
						||
| 
								 | 
							
								            'phone' => 'required|regex:/^([0-9\s\-\+\(\)]*)$/|min:10|unique:delivery_men',
							 | 
						||
| 
								 | 
							
								            'zone_id' => 'required',
							 | 
						||
| 
								 | 
							
								            'vehicle_id' => 'required',
							 | 
						||
| 
								 | 
							
								            'earning' => 'required',
							 | 
						||
| 
								 | 
							
								            'password'=>'required|min:6',
							 | 
						||
| 
								 | 
							
								            'image' => 'nullable|max:2048',
							 | 
						||
| 
								 | 
							
								            'identity_image.*' => 'nullable|max:2048',
							 | 
						||
| 
								 | 
							
								        ], [
							 | 
						||
| 
								 | 
							
								            'f_name.required' => translate('messages.first_name_is_required'),
							 | 
						||
| 
								 | 
							
								            'zone_id.required' => translate('messages.select_a_zone'),
							 | 
						||
| 
								 | 
							
								            'vehicle_id.required' => translate('messages.select_a_vehicle'),
							 | 
						||
| 
								 | 
							
								            'earning.required' => translate('messages.select_dm_type')
							 | 
						||
| 
								 | 
							
								        ]);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if ($request->has('image')) {
							 | 
						||
| 
								 | 
							
								            $image_name = Helpers::upload('delivery-man/', 'png', $request->file('image'));
							 | 
						||
| 
								 | 
							
								        } else {
							 | 
						||
| 
								 | 
							
								            $image_name = 'def.png';
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $id_img_names = [];
							 | 
						||
| 
								 | 
							
								        if (!empty($request->file('identity_image'))) {
							 | 
						||
| 
								 | 
							
								            foreach ($request->identity_image as $img) {
							 | 
						||
| 
								 | 
							
								                $identity_image = Helpers::upload('delivery-man/', 'png', $img);
							 | 
						||
| 
								 | 
							
								                array_push($id_img_names, $identity_image);
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            $identity_image = json_encode($id_img_names);
							 | 
						||
| 
								 | 
							
								        } else {
							 | 
						||
| 
								 | 
							
								            $identity_image = json_encode([]);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $dm = New DeliveryMan();
							 | 
						||
| 
								 | 
							
								        $dm->f_name = $request->f_name;
							 | 
						||
| 
								 | 
							
								        $dm->l_name = $request->l_name;
							 | 
						||
| 
								 | 
							
								        $dm->email = $request->email;
							 | 
						||
| 
								 | 
							
								        $dm->phone = $request->phone;
							 | 
						||
| 
								 | 
							
								        $dm->identity_number = $request->identity_number;
							 | 
						||
| 
								 | 
							
								        $dm->identity_type = $request->identity_type;
							 | 
						||
| 
								 | 
							
								        $dm->zone_id = $request->zone_id;
							 | 
						||
| 
								 | 
							
								        $dm->vehicle_id = $request->vehicle_id;
							 | 
						||
| 
								 | 
							
								        $dm->identity_image = $identity_image;
							 | 
						||
| 
								 | 
							
								        $dm->image = $image_name;
							 | 
						||
| 
								 | 
							
								        $dm->active = 0;
							 | 
						||
| 
								 | 
							
								        $dm->earning = $request->earning;
							 | 
						||
| 
								 | 
							
								        $dm->password = bcrypt($request->password);
							 | 
						||
| 
								 | 
							
								        $dm->application_status= 'pending';
							 | 
						||
| 
								 | 
							
								        $dm->save();
							 | 
						||
| 
								 | 
							
								        try{
							 | 
						||
| 
								 | 
							
								            if(config('mail.status')){
							 | 
						||
| 
								 | 
							
								                Mail::to($request['email'])->send(new \App\Mail\SelfRegistration('pending', $dm->f_name.' '.$dm->l_name));
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }catch(\Exception $ex){
							 | 
						||
| 
								 | 
							
								            info($ex);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        Toastr::success(translate('messages.application_placed_successfully'));
							 | 
						||
| 
								 | 
							
								        return back();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |