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.
98 lines
3.4 KiB
98 lines
3.4 KiB
<?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();
|
|
}
|
|
}
|
|
|