From 72180de8e4feaf3ed58003a5a1ef6a44a1d080c5 Mon Sep 17 00:00:00 2001 From: Kwesi Banson Jnr Date: Mon, 16 Mar 2026 16:41:32 +0000 Subject: [PATCH] added logic for updating user profile plus other bug fixes --- app/Http/Controllers/ClientsController.php | 78 ++++-- app/Http/Controllers/DashboardController.php | 2 +- app/Http/Controllers/EmailController.php | 58 +++++ .../Controllers/StaffMembersController.php | 28 +- .../Controllers/SystemUsersController.php | 25 ++ app/Libs/ImapService.php | 57 ++++ app/Models/DailyQoute.php | 12 - app/Models/DailyQuote.php | 10 + app/Models/IncomingEmail.php | 11 + composer.json | 3 +- composer.lock | 160 +++++++++++- config/imap.php | 246 ++++++++++++++++++ issues-20-02-2026.md | 10 + public/assets/img/cml-final-3 copy.png | Bin 0 -> 13255 bytes public/assets/img/cml-final-3_no-bg.png | Bin 0 -> 63034 bytes public/assets/img/cml-logo.png | Bin 0 -> 6369 bytes .../general_files/erp_1771406806bROnEj.xlsx | Bin 0 -> 17640 bytes ...rp_1771406806bROnEj.xlsx_rejected_rows.txt | 16 ++ resources/views/daily_quotes/create.blade.php | 108 ++++++++ resources/views/daily_quotes/edit.blade.php | 105 ++++++++ resources/views/daily_quotes/index.blade.php | 199 ++++++++++++++ .../views/layouts/dashboardmaster.blade.php | 1 + resources/views/layouts/master.blade.php | 105 +++++++- .../views/layouts/partials/sidebar.blade.php | 2 + .../views/layouts/partials/topbar.blade.php | 3 +- resources/views/senderid/index.blade.php | 4 +- .../systemusers/partials/profile.blade.php | 66 +++++ resources/views/systemusers/profile.blade.php | 70 +++++ routes/web.php | 7 + user_password_migration.md | 9 + 30 files changed, 1346 insertions(+), 49 deletions(-) create mode 100644 app/Http/Controllers/EmailController.php create mode 100644 app/Libs/ImapService.php delete mode 100644 app/Models/DailyQoute.php create mode 100644 app/Models/DailyQuote.php create mode 100644 app/Models/IncomingEmail.php create mode 100644 config/imap.php create mode 100644 issues-20-02-2026.md create mode 100644 public/assets/img/cml-final-3 copy.png create mode 100644 public/assets/img/cml-final-3_no-bg.png create mode 100644 public/assets/img/cml-logo.png create mode 100644 public/documents/general_files/erp_1771406806bROnEj.xlsx create mode 100644 public/documents/general_files/erp_1771406806bROnEj.xlsx_rejected_rows.txt create mode 100644 resources/views/daily_quotes/create.blade.php create mode 100644 resources/views/daily_quotes/edit.blade.php create mode 100644 resources/views/daily_quotes/index.blade.php create mode 100644 resources/views/systemusers/partials/profile.blade.php create mode 100644 resources/views/systemusers/profile.blade.php create mode 100644 user_password_migration.md diff --git a/app/Http/Controllers/ClientsController.php b/app/Http/Controllers/ClientsController.php index 2de80f0..9ba49b6 100755 --- a/app/Http/Controllers/ClientsController.php +++ b/app/Http/Controllers/ClientsController.php @@ -39,36 +39,61 @@ class ClientsController extends Controller // dd('foo bar'); return view('client.index-inactive', $data); } - public function indexBak(){ - $client_arr = new Models\Client; - $client_arr = $client_arr->with('auth_user_info','country_info', 'created_by_info')->orderBy('name', 'ASC')->paginate(10); - $data = [ - 'page_title' => 'Clients', - 'current_user' => session('current_user') - ]; - return view('client.index-rawjs', $data); - } public function getClientJson(Request $request){ - + // $this->log_query(); $client_arr = \DB::table('clients') ->join('auth_users AS aumngr', 'aumngr.id', '=', 'clients.auth_user_id') ->join('auth_users AS aumodify', 'aumodify.id', '=', 'clients.last_modified_by') ->join('flags AS flags', 'flags.country', '=', 'clients.country') ->select('clients.id', 'clients.name', 'clients.status','clients.progress_indicator_score', 'clients.country', 'aumngr.name As accountMgr', 'aumodify.name AS modifiedBy', 'flags.url AS theflag') + ->whereRaw("status NOT IN ('inactive', 'Cancelled')") ->orderBy('name', 'ASC') ->get(); // ->paginate(15); if($request->has('keyword')){ $keyword = $request->keyword; - $client_arr = \DB::table('clients') - ->join('auth_users AS aumngr', 'aumngr.id', '=', 'clients.auth_user_id') - ->join('auth_users AS aumodify', 'aumodify.id', '=', 'clients.last_modified_by') - ->join('flags AS flags', 'flags.country', '=', 'clients.country') - ->select('clients.id','clients.name', 'clients.status', 'clients.progress_indicator_score','clients.country', 'aumngr.name As accountMgr', 'aumodify.name AS modifiedBy', 'flags.url AS theflag') - ->whereRaw("clients.name like '%$keyword%' or clients.status like '%$keyword%' OR clients.country like '%$keyword%' OR aumngr.name like '%$keyword%' OR aumodify.name like '%$keyword%' OR clients.progress_indicator_score like '%$keyword%'") - ->orderBy('name', 'ASC') - ->get(); + if (strpos('inactive', $keyword) !== false ) { + // dump('foo bars'); + $client_arr = \DB::table('clients') + ->join('auth_users AS aumngr', 'aumngr.id', '=', 'clients.auth_user_id') + ->join('auth_users AS aumodify', 'aumodify.id', '=', 'clients.last_modified_by') + ->join('flags AS flags', 'flags.country', '=', 'clients.country') + ->select('clients.id','clients.name', 'clients.status', 'clients.progress_indicator_score','clients.country', 'aumngr.name As accountMgr', 'aumodify.name AS modifiedBy', 'flags.url AS theflag') + // ->whereRaw("status IN ('Live', 'Prospective')") + ->whereRaw("status NOT IN ('inactive', 'Cancelled')") + ->whereRaw("clients.name LIKE '%$keyword%' OR clients.country LIKE '%$keyword%' OR aumngr.name like '%$keyword%' OR aumodify.name LIKE '%$keyword%'") + ->orderBy('name', 'ASC') + ->get(); + // foreach ($client_arr as $value) { + // // code... + // dd($value); + // } + dump($client_arr->contains('status', 'inactive')); + } + elseif (strpos('Cancelled', $keyword) !== false ) { + $client_arr = \DB::table('clients') + ->join('auth_users AS aumngr', 'aumngr.id', '=', 'clients.auth_user_id') + ->join('auth_users AS aumodify', 'aumodify.id', '=', 'clients.last_modified_by') + ->join('flags AS flags', 'flags.country', '=', 'clients.country') + ->select('clients.id','clients.name', 'clients.status', 'clients.progress_indicator_score','clients.country', 'aumngr.name As accountMgr', 'aumodify.name AS modifiedBy', 'flags.url AS theflag') + // ->whereRaw("status IN ('Live', 'Prospective')") + ->whereRaw("status NOT IN ('inactive', 'Cancelled')") + ->whereRaw("clients.name LIKE '%$keyword%' OR clients.country LIKE '%$keyword%' OR aumngr.name LIKE '%$keyword%' OR aumodify.name LIKE '%$keyword%'") + ->orderBy('name', 'ASC') + ->get(); + }else{ + $client_arr = \DB::table('clients') + ->join('auth_users AS aumngr', 'aumngr.id', '=', 'clients.auth_user_id') + ->join('auth_users AS aumodify', 'aumodify.id', '=', 'clients.last_modified_by') + ->join('flags AS flags', 'flags.country', '=', 'clients.country') + ->select('clients.id','clients.name', 'clients.status', 'clients.progress_indicator_score','clients.country', 'aumngr.name As accountMgr', 'aumodify.name AS modifiedBy', 'flags.url AS theflag') + ->whereRaw("status IN ('Live', 'Prospective')") + ->whereRaw("clients.name LIKE '%$keyword%' OR clients.status LIKE '%$keyword%' OR clients.country LIKE '%$keyword%' OR aumngr.name LIKE '%$keyword%' OR aumodify.name LIKE '%$keyword%'") + ->orderBy('name', 'ASC') + ->get(); + } + // ->paginate(15); } @@ -82,7 +107,7 @@ class ClientsController extends Controller ->join('auth_users AS aumngr', 'aumngr.id', '=', 'clients.auth_user_id') ->join('auth_users AS aumodify', 'aumodify.id', '=', 'clients.last_modified_by') ->select('clients.id', 'clients.name', 'clients.status', 'clients.country', 'aumngr.name As accountMgr', 'aumodify.name AS modifiedBy') - + ->whereRaw("status <> 'Inactive'") ->paginate(10); if($request->has('keyword')){ @@ -91,7 +116,8 @@ class ClientsController extends Controller ->join('auth_users AS aumngr', 'aumngr.id', '=', 'clients.auth_user_id') ->join('auth_users AS aumodify', 'aumodify.id', '=', 'clients.last_modified_by') ->select('clients.id','clients.name', 'clients.status', 'clients.country', 'aumngr.name As accountMgr', 'aumodify.name AS modifiedBy') - ->whereRaw("clients.name like '%$keyword%' or clients.status like '%$keyword%' OR clients.country like '%$keyword%' OR aumngr.name like '%$keyword%' OR aumodify.name like '%$keyword%'") + ->whereRaw("status <> 'Inactive'") + ->whereRaw("clients.name like '%$keyword%' OR clients.status like '%$keyword%' OR clients.country like '%$keyword%' OR aumngr.name like '%$keyword%' OR aumodify.name like '%$keyword%'") ->paginate(10); } return response()->json($client_arr); @@ -104,7 +130,7 @@ class ClientsController extends Controller ->join('auth_users AS aumodify', 'aumodify.id', '=', 'clients.last_modified_by') ->join('flags AS flags', 'flags.country', '=', 'clients.country') ->select('clients.id', 'clients.name', 'clients.status','clients.progress_indicator_score', 'clients.country', 'aumngr.name As accountMgr', 'aumodify.name AS modifiedBy', 'flags.url AS theflag') - ->whereRaw("status = 'inactive'") + ->whereRaw("status IN ('inactive', 'Cancelled')") ->orderBy('name', 'ASC') ->get(); // ->paginate(15); @@ -116,8 +142,8 @@ class ClientsController extends Controller ->join('auth_users AS aumodify', 'aumodify.id', '=', 'clients.last_modified_by') ->join('flags AS flags', 'flags.country', '=', 'clients.country') ->select('clients.id','clients.name', 'clients.status', 'clients.progress_indicator_score','clients.country', 'aumngr.name As accountMgr', 'aumodify.name AS modifiedBy', 'flags.url AS theflag') - ->whereRaw("status = 'inactive'") - ->whereRaw("clients.name like '%$keyword%' or clients.status like '%$keyword%' OR clients.country like '%$keyword%' OR aumngr.name like '%$keyword%' OR aumodify.name like '%$keyword%' OR clients.progress_indicator_score like '%$keyword%'") + ->whereRaw("status IN ('inactive', 'Cancelled')") + ->whereRaw("clients.name LIKE '%$keyword%' OR clients.status LIKE '%$keyword%' OR clients.country LIKE '%$keyword%' OR aumngr.name LIKE '%$keyword%' OR aumodify.name LIKE '%$keyword%' OR clients.progress_indicator_score LIKE '%$keyword%'") ->orderBy('name', 'ASC') ->get(); // ->paginate(15); @@ -130,7 +156,7 @@ class ClientsController extends Controller ->join('auth_users AS aumngr', 'aumngr.id', '=', 'clients.auth_user_id') ->join('auth_users AS aumodify', 'aumodify.id', '=', 'clients.last_modified_by') ->select('clients.id', 'clients.name', 'clients.status', 'clients.country', 'aumngr.name As accountMgr', 'aumodify.name AS modifiedBy') - ->whereRaw("status = 'inactive'") + ->whereRaw("status = 'Inactive'") ->paginate(10); if($request->has('keyword')){ @@ -140,7 +166,7 @@ class ClientsController extends Controller ->join('auth_users AS aumodify', 'aumodify.id', '=', 'clients.last_modified_by') ->select('clients.id','clients.name', 'clients.status', 'clients.country', 'aumngr.name As accountMgr', 'aumodify.name AS modifiedBy') // ->where('status', 'inactive') - ->whereRaw("status = 'inactive'") + ->whereRaw("status = 'Inactive'") ->whereRaw("clients.name like '%$keyword%' or clients.status like '%$keyword%' OR clients.country like '%$keyword%' OR aumngr.name like '%$keyword%' OR aumodify.name like '%$keyword%'") ->paginate(10); } @@ -159,7 +185,7 @@ class ClientsController extends Controller $service_type = Models\Service::pluck('name', 'name'); $payment_type = ['Prepaid' => 'Prepaid', 'Postpaid' => 'Postpaid']; //Models\PaymentType::pluck('name', 'id'); $auth_users = Models\SystemUser::pluck('name', 'id'); - $status = ['Live' => 'Live', 'inactive' => 'Inactive', 'Prospective' => 'Prospective', 'Cancelled' => 'Cancelled']; + $status = ['Live' => 'Live', 'Inactive' => 'Inactive', 'Prospective' => 'Prospective', 'Cancelled' => 'Cancelled']; $currency = Models\Currency::pluck('name','name'); $company_types = ['Aggregator/Supplier' => 'Aggregator/Supplier', 'Enterprise' => 'Enterprise', 'Hybrid' => 'Hybrid']; $industries = Models\Industry::orderBy('name', 'ASC')->pluck('name', 'name'); diff --git a/app/Http/Controllers/DashboardController.php b/app/Http/Controllers/DashboardController.php index cd3c42b..e8e9e4c 100755 --- a/app/Http/Controllers/DashboardController.php +++ b/app/Http/Controllers/DashboardController.php @@ -24,7 +24,7 @@ class DashboardController extends Controller $recent_clients = Models\Client::with('auth_user_info')->orderBy('id', 'DESC')->take(5)->get(); // $upcoming_birthdays = Models\StaffMember::whereDate('dob', '>=', $currentdate)->orderBy('dob', 'ASC')->take(5)->get(); $upcoming_birthdays = Models\StaffMember::whereRaw("(month(dob) >= month(curdate())) AND day(dob) >= day(curdate())")->orderBy('dob', 'ASC')->take(5)->get(); - $upcoming_hodidays = Models\NationalHoliday::whereRaw("(month(event_date) >= month(curdate()))")->orderBy('event_date', 'ASC')->take(5)->get(); + $upcoming_hodidays = Models\NationalHoliday::whereRaw("(month(event_date) >= month(curdate()))")->whereRaw("(year(event_date) >= year(curdate()))")->orderBy('event_date', 'ASC')->take(15)->get(); // dd($upcoming_hodidays); // $recent_clients = Models\Client::orderBy('id', 'DESC')->take(5)->get(); diff --git a/app/Http/Controllers/EmailController.php b/app/Http/Controllers/EmailController.php new file mode 100644 index 0000000..182b869 --- /dev/null +++ b/app/Http/Controllers/EmailController.php @@ -0,0 +1,58 @@ +getLatestEmails(10); + return response()->json($emails); + // Or for view: return view('emails.index', compact('emails')); + } catch (\Exception $e) { + return response()->json(['error' => $e->getMessage()], 500); + } + } + public function index() + { + try { + // Initialize IMAP client + $client = app(ClientManager::class)->account('default'); + $client->connect(); + + // Get INBOX folder + $folder = $client->getFolder('INBOX'); + + // Fetch last 10 emails (newest first) + $messages = $folder->messages()->unseen()->limit(10)->get(); + + // Prepare data for view + $emails = $messages->map(function ($message) { + return [ + 'subject' => $message->getSubject() ?? '(No Subject)', + 'sender' => $message->getFrom()[0]->mail ?? 'Unknown', + 'email_date' => $message->getDate()->toDateTimeString(), + 'email_body' => substr(strip_tags($message->getTextBody()), 0, 200) . '...', + ]; + }); + + // Disconnect + $client->disconnect(); + dd($emails); + // Return view or JSON + // return view('emails.index', compact('emails')); + // Or for API: return response()->json($emails); + + } catch (ConnectionFailedException $e) { + return response()->json(['error' => 'Failed to connect: ' . $e->getMessage()], 500); + } catch (\Exception $e) { + return response()->json(['error' => 'Error: ' . $e->getMessage()], 500); + } + } +} \ No newline at end of file diff --git a/app/Http/Controllers/StaffMembersController.php b/app/Http/Controllers/StaffMembersController.php index 8071849..bae2769 100644 --- a/app/Http/Controllers/StaffMembersController.php +++ b/app/Http/Controllers/StaffMembersController.php @@ -21,8 +21,6 @@ class StaffMembersController extends Controller } public function profile($staff_member_id){ $staff_member = Models\StaffMember::find($staff_member_id); - // dd($staff_member); - $data = [ 'page_title' => 'Staff Profile', 'staff_member' => $staff_member, @@ -30,6 +28,12 @@ class StaffMembersController extends Controller ]; return view('staff_members.profile', $data); } + public function profile_json(){ + $staff_member_id = session('current_user.id'); + $staff_member = Models\StaffMember::findOrFail($staff_member_id); + + return response()->json(['code' => 1, 'staff_member' => $staff_member]); + } public function indexOld(){ $staff_members_arr = new Models\StaffMember; $data = [ @@ -38,6 +42,26 @@ class StaffMembersController extends Controller ]; return view('staff_members.index', $data); } + public function profileupdate(Request $request) + { + $account_arr = Models\StaffMember::find($request->user_id); + $account_arr->name = $request->name; + $account_arr->email = $request->email; + $account_arr->phone = $request->phone; + $msg_text = 'Staff detials successfully Updated'; + if ($request->password == true) { + $account_arr->password = md5($request->password); + $msg_text = "Staff details and password successfully updated"; + } + $result = $account_arr->save(); + if ($result == true) { + $data = ['code' => 1, 'msg' => $msg_text]; + } + else{ + $data = ['code' => 1, 'msg' => 'Staff details could not be updated at this time. Try again!']; + } + return response()->json($data); + } public function getstaffMemberssJson(Request $request) { #$this->log_query(); diff --git a/app/Http/Controllers/SystemUsersController.php b/app/Http/Controllers/SystemUsersController.php index a8d5e9e..7a5ea7e 100755 --- a/app/Http/Controllers/SystemUsersController.php +++ b/app/Http/Controllers/SystemUsersController.php @@ -53,6 +53,12 @@ class SystemUsersController extends Controller return view('systemusers.index', $data); } + public function profile_json(){ + $staff_member_id = session('current_user.id'); + $staff_member = Models\SystemUser::findOrFail($staff_member_id); + + return response()->json(['code' => 1, 'staff_member' => $staff_member]); + } /** * Show the form for creating a new resource. @@ -156,6 +162,25 @@ class SystemUsersController extends Controller Session::flash('success_message', 'Account successfully Updated'); return redirect(url('systemusers')); } + public function profileupdate(Request $request){ + $account_arr = Models\SystemUser::find($request->user_id); + $account_arr->name = $request->name; + $account_arr->email = $request->email; + $account_arr->phone = $request->phone; + $msg_text = 'Account successfully Updated'; + if ($request->password == true) { + $account_arr->password = md5($request->password); + $msg_text = "Account details and password successfully updated"; + } + $result = $account_arr->save(); + if ($result == true) { + $data = ['code' => 1, 'msg' => $msg_text]; + } + else{ + $data = ['code' => 1, 'msg' => 'Account could not be updated at this time. Try again!']; + } + return response()->json($data); + } /** * Remove the specified resource from storage. diff --git a/app/Libs/ImapService.php b/app/Libs/ImapService.php new file mode 100644 index 0000000..4cea6df --- /dev/null +++ b/app/Libs/ImapService.php @@ -0,0 +1,57 @@ +connection = @imap_open($hostname, $username, $password); + if (!$this->connection) { + throw new \Exception('Cannot connect: ' . imap_last_error()); + } + } + public function getLatestEmails($limit = 10): array + { + $emails = imap_search($this->connection, 'ALL', SE_UID); + + if (!$emails) { + return []; + } + + rsort($emails); // Newest first + $result = []; + + foreach (array_slice($emails, 0, $limit) as $uid) { + $header = imap_headerinfo($this->connection, imap_msgno($this->connection, $uid), FT_UID); + $body = imap_fetchbody($this->connection, imap_msgno($this->connection, $uid), 1, FT_UID); + $body = quoted_printable_decode($body); + + $result[] = [ + 'subject' => isset($header->subject) ? imap_utf8($header->subject) : '(No Subject)', + 'from' => $header->from[0]->mailbox . '@' . $header->from[0]->host, + 'date' => $header->date ?? 'Unknown', + 'body' => substr(strip_tags($body), 0, 200) . '...', + ]; + } + + return $result; + } + + public function __destruct() + { + if ($this->connection) { + imap_close($this->connection); + } + } +} \ No newline at end of file diff --git a/app/Models/DailyQoute.php b/app/Models/DailyQoute.php deleted file mode 100644 index ff1eb8b..0000000 --- a/app/Models/DailyQoute.php +++ /dev/null @@ -1,12 +0,0 @@ -=5.0.0", + "php": ">=5.5.9", + "webklex/php-imap": "^4.1.2" + }, + "type": "library", + "extra": { + "laravel": { + "aliases": { + "Client": "Webklex\\IMAP\\Facades\\Client" + }, + "providers": [ + "Webklex\\IMAP\\Providers\\LaravelServiceProvider" + ] + }, + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "Webklex\\IMAP\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Malte Goldenbaum", + "email": "github@webklex.com", + "role": "Developer" + } + ], + "description": "Laravel IMAP client", + "homepage": "https://github.com/webklex/laravel-imap", + "keywords": [ + "idle", + "imap", + "laravel", + "laravel-imap", + "mail", + "oauth", + "pop3", + "webklex" + ], + "support": { + "issues": "https://github.com/Webklex/laravel-imap/issues", + "source": "https://github.com/Webklex/laravel-imap/tree/4.1.2" + }, + "funding": [ + { + "url": "https://www.buymeacoffee.com/webklex", + "type": "custom" + }, + { + "url": "https://ko-fi.com/webklex", + "type": "ko_fi" + } + ], + "time": "2023-01-18T18:33:20+00:00" + }, + { + "name": "webklex/php-imap", + "version": "4.1.2", + "source": { + "type": "git", + "url": "https://github.com/Webklex/php-imap.git", + "reference": "94bf93ae8868ac1e073cfbaef377f0ca1acac2bc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Webklex/php-imap/zipball/94bf93ae8868ac1e073cfbaef377f0ca1acac2bc", + "reference": "94bf93ae8868ac1e073cfbaef377f0ca1acac2bc", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "ext-iconv": "*", + "ext-json": "*", + "ext-mbstring": "*", + "ext-openssl": "*", + "illuminate/pagination": ">=5.0.0", + "nesbot/carbon": ">=1.0", + "php": ">=7.0.0", + "symfony/http-foundation": ">=2.8.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "suggest": { + "symfony/mime": "Recomended for better extension support" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "Webklex\\PHPIMAP\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Malte Goldenbaum", + "email": "github@webklex.com", + "role": "Developer" + } + ], + "description": "PHP IMAP client", + "homepage": "https://github.com/webklex/php-imap", + "keywords": [ + "imap", + "mail", + "php-imap", + "pop3", + "webklex" + ], + "support": { + "issues": "https://github.com/Webklex/php-imap/issues", + "source": "https://github.com/Webklex/php-imap/tree/4.1.2" + }, + "funding": [ + { + "url": "https://www.buymeacoffee.com/webklex", + "type": "custom" + }, + { + "url": "https://ko-fi.com/webklex", + "type": "ko_fi" + } + ], + "time": "2022-12-14T15:45:15+00:00" } ], "packages-dev": [ diff --git a/config/imap.php b/config/imap.php new file mode 100644 index 0000000..537c46b --- /dev/null +++ b/config/imap.php @@ -0,0 +1,246 @@ + env('IMAP_DEFAULT_ACCOUNT', 'default'), + + /* + |-------------------------------------------------------------------------- + | Default date format + |-------------------------------------------------------------------------- + | + | The default date format is used to convert any given Carbon::class object into a valid date string. + | These are currently known working formats: "d-M-Y", "d-M-y", "d M y" + | + */ + 'date_format' => 'd-M-Y', + + /* + |-------------------------------------------------------------------------- + | Available IMAP accounts + |-------------------------------------------------------------------------- + | + | Please list all IMAP accounts which you are planning to use within the + | array below. + | + */ + 'accounts' => [ + + 'default' => [// account identifier + 'host' => env('IMAP_HOST', 'localhost'), + 'port' => env('IMAP_PORT', 993), + 'protocol' => env('IMAP_PROTOCOL', 'imap'), //might also use imap, [pop3 or nntp (untested)] + 'encryption' => env('IMAP_ENCRYPTION', 'ssl'), // Supported: false, 'ssl', 'tls', 'notls', 'starttls' + 'validate_cert' => env('IMAP_VALIDATE_CERT', true), + 'username' => env('IMAP_USERNAME', 'root@example.com'), + 'password' => env('IMAP_PASSWORD', ''), + 'authentication' => env('IMAP_AUTHENTICATION', null), + 'proxy' => [ + 'socket' => null, + 'request_fulluri' => false, + 'username' => null, + 'password' => null, + ], + "timeout" => 30, + "extensions" => [] + ], + + /* + 'gmail' => [ // account identifier + 'host' => 'imap.gmail.com', + 'port' => 993, + 'encryption' => 'ssl', + 'validate_cert' => true, + 'username' => 'example@gmail.com', + 'password' => 'PASSWORD', + 'authentication' => 'oauth', + ], + + 'another' => [ // account identifier + 'host' => '', + 'port' => 993, + 'encryption' => false, + 'validate_cert' => true, + 'username' => '', + 'password' => '', + 'authentication' => null, + ] + */ + ], + + /* + |-------------------------------------------------------------------------- + | Available IMAP options + |-------------------------------------------------------------------------- + | + | Available php imap config parameters are listed below + | -Delimiter (optional): + | This option is only used when calling $oClient-> + | You can use any supported char such as ".", "/", (...) + | -Fetch option: + | IMAP::FT_UID - Message marked as read by fetching the body message + | IMAP::FT_PEEK - Fetch the message without setting the "seen" flag + | -Fetch sequence id: + | IMAP::ST_UID - Fetch message components using the message uid + | IMAP::ST_MSGN - Fetch message components using the message number + | -Body download option + | Default TRUE + | -Flag download option + | Default TRUE + | -Soft fail + | Default FALSE - Set to TRUE if you want to ignore certain exception while fetching bulk messages + | -RFC822 + | Default TRUE - Set to FALSE to prevent the usage of \imap_rfc822_parse_headers(). + | See https://github.com/Webklex/php-imap/issues/115 for more information. + | -Debug enable to trace communication traffic + | -UID cache enable the UID cache + | -Fallback date is used if the given message date could not be parsed + | -Boundary regex used to detect message boundaries. If you are having problems with empty messages, missing + | attachments or anything like this. Be advised that it likes to break which causes new problems.. + | -Message key identifier option + | You can choose between the following: + | 'id' - Use the MessageID as array key (default, might cause hickups with yahoo mail) + | 'number' - Use the message number as array key (isn't always unique and can cause some interesting behavior) + | 'list' - Use the message list number as array key (incrementing integer (does not always start at 0 or 1) + | 'uid' - Use the message uid as array key (isn't always unique and can cause some interesting behavior) + | -Fetch order + | 'asc' - Order all messages ascending (probably results in oldest first) + | 'desc' - Order all messages descending (probably results in newest first) + | -Disposition types potentially considered an attachment + | Default ['attachment', 'inline'] + | -Common folders + | Default folder locations and paths assumed if none is provided + | -Open IMAP options: + | DISABLE_AUTHENTICATOR - Disable authentication properties. + | Use 'GSSAPI' if you encounter the following + | error: "Kerberos error: No credentials cache + | file found (try running kinit) (...)" + | or ['GSSAPI','PLAIN'] if you are using outlook mail + | + */ + 'options' => [ + 'delimiter' => '/', + 'fetch' => \Webklex\PHPIMAP\IMAP::FT_PEEK, + 'sequence' => \Webklex\PHPIMAP\IMAP::ST_UID, + 'fetch_body' => true, + 'fetch_flags' => true, + 'soft_fail' => false, + 'rfc822' => true, + 'debug' => false, + 'uid_cache' => true, + // 'fallback_date' => "01.01.1970 00:00:00", + 'boundary' => '/boundary=(.*?(?=;)|(.*))/i', + 'message_key' => 'list', + 'fetch_order' => 'asc', + 'dispositions' => ['attachment', 'inline'], + 'common_folders' => [ + "root" => "INBOX", + "junk" => "INBOX/Junk", + "draft" => "INBOX/Drafts", + "sent" => "INBOX/Sent", + "trash" => "INBOX/Trash", + ], + 'open' => [ + // 'DISABLE_AUTHENTICATOR' => 'GSSAPI' + ] + ], + + /** + * |-------------------------------------------------------------------------- + * | Available decoding options + * |-------------------------------------------------------------------------- + * | + * | Available php imap config parameters are listed below + * | -options: Decoder options (currently only the message subject and attachment name decoder can be set) + * | 'utf-8' - Uses imap_utf8($string) to decode a string + * | 'mimeheader' - Uses mb_decode_mimeheader($string) to decode a string + * | -decoder: Decoder to be used. Can be replaced by custom decoders if needed. + * | 'header' - HeaderDecoder + * | 'message' - MessageDecoder + * | 'attachment' - AttachmentDecoder + */ + 'decoding' => [ + 'options' => [ + 'header' => 'utf-8', // mimeheader + 'message' => 'utf-8', // mimeheader + 'attachment' => 'utf-8' // mimeheader + ], + 'decoder' => [ + 'header' => \Webklex\PHPIMAP\Decoder\HeaderDecoder::class, + 'message' => \Webklex\PHPIMAP\Decoder\MessageDecoder::class, + 'attachment' => \Webklex\PHPIMAP\Decoder\AttachmentDecoder::class + ] + ], + + /* + |-------------------------------------------------------------------------- + | Available flags + |-------------------------------------------------------------------------- + | + | List all available / supported flags. Set to null to accept all given flags. + */ + 'flags' => ['recent', 'flagged', 'answered', 'deleted', 'seen', 'draft'], + + /* + |-------------------------------------------------------------------------- + | Available events + |-------------------------------------------------------------------------- + | + */ + 'events' => [ + "message" => [ + 'new' => \Webklex\IMAP\Events\MessageNewEvent::class, + 'moved' => \Webklex\IMAP\Events\MessageMovedEvent::class, + 'copied' => \Webklex\IMAP\Events\MessageCopiedEvent::class, + 'deleted' => \Webklex\IMAP\Events\MessageDeletedEvent::class, + 'restored' => \Webklex\IMAP\Events\MessageRestoredEvent::class, + ], + "folder" => [ + 'new' => \Webklex\IMAP\Events\FolderNewEvent::class, + 'moved' => \Webklex\IMAP\Events\FolderMovedEvent::class, + 'deleted' => \Webklex\IMAP\Events\FolderDeletedEvent::class, + ], + "flag" => [ + 'new' => \Webklex\IMAP\Events\FlagNewEvent::class, + 'deleted' => \Webklex\IMAP\Events\FlagDeletedEvent::class, + ], + ], + + /* + |-------------------------------------------------------------------------- + | Available masking options + |-------------------------------------------------------------------------- + | + | By using your own custom masks you can implement your own methods for + | a better and faster access and less code to write. + | + | Checkout the two examples custom_attachment_mask and custom_message_mask + | for a quick start. + | + | The provided masks below are used as the default masks. + */ + 'masks' => [ + 'message' => \Webklex\PHPIMAP\Support\Masks\MessageMask::class, + 'attachment' => \Webklex\PHPIMAP\Support\Masks\AttachmentMask::class + ] +]; \ No newline at end of file diff --git a/issues-20-02-2026.md b/issues-20-02-2026.md new file mode 100644 index 0000000..42cffd3 --- /dev/null +++ b/issues-20-02-2026.md @@ -0,0 +1,10 @@ +1. The logo looks stretched. Can we get that fixed? resized and repositioned it nut we need a new one +2. ⁠we need to get ERP SSL sorted. -- this needs a domain name +3. ⁠Sam’s message of the day: Sam suggested we have an email that the quotes can be sent to and automatically update on the ERP. +And maybe add other quotes from different people. Not just Sam’s quote. +Have Effie, maybe Mansa, maybe you. And it should be changed to weekly not daily +implemented a solution with the emails +4. ⁠for contract validity (expiry date), add a feature for Auto Renewal which wont be asking for the validity. +This is of contracts that dont expire. done. need to upload +5. ⁠for the Holidays, he asked that I send emails to Country Managers every month asking for the following month holidays of their respective countries +6. How far with the profile page? -- done \ No newline at end of file diff --git a/public/assets/img/cml-final-3 copy.png b/public/assets/img/cml-final-3 copy.png new file mode 100644 index 0000000000000000000000000000000000000000..97f9d124923e62a008ca2560221ddbdce77931cd GIT binary patch literal 13255 zcmZX5by! zf6w#$^PcNEkv%)JvpcghbItxvq^7z8F7_L2004liq$sNm06d31{Z7L~fBNL3XOwyR z!g5hG{0sna(f@Nl^D2@6KQ)rM%Ne-qfIhib8QC9>B09e9i== zRI9devQq0j8uygvyhJ!_4CbfXA8DR{^JivM}9~V$CQ*5qPN@q25WhS8jYIi&{_czSNgorLWL*_lgHzGR?) zd;4Hk_`Yv<4h2~(4D2M4OM6rKW%YS%Ye(LC(8deK@-mXB7f&=SCf0Rx4%$$nS|jcv z&MdooG^05s_o}@CU(KYa$4^%|0n~{lGwu~M;Fe`c2F8C*ZL#>zdMl3;CrWIL`|JN+ z;eF{8;EG$6^i$NB?K*P9nQcNIePBblg?T4XcD|@MU;^V1kSeVR;J;0P@k#6a`*F_)6_5R|{(HCkRYy(J;SzWGmycC#r^CrB z*CL>jqi9a}tABJ40Oak{TA1jpiMtOmk~RkVu9KVj&iSNvo)_)alA1vu{2p$$!x0G; z>sJ5i54e^VlDOGO+zZ0tvWs@iE(=4SjibI%LY}pFY%3fRT9W_E_RFRq6v)+aZF!M> zBtA(3uL@jp*uU&IC(|B?9qU`NrS9ebx8IHfLoqn_>b@Ii?w3x9dOg||yIDZru+PDd zvAIK#|GqKeDAmNzb)$o};n_a~l8tqHY7-nkHL`t_DKoPj1237RJ03i$v|f&J{|u)N zXaZiuqWp(9pu5FmA3CC=k*&S*FxLnz$he2xTm{}nr8c4op7kb{=rL)BeNBZXrFtv3 zYW<^50N|ITYyQco}V8k4E=~-)X+um$d*up2i(MX_{tl|GiuBq%g zmi?Dn+laJg?~(T8E*c7^F#9WdbEkj45^Xocn-id(Yc84l$Xishi{wq3(`?BO=pGO8{4^zcWi@VHc2~bgYhRczpTq zR;k1}2vmrc_+EuW2kE(f6S>xiaj*1fN^v%c0y!j32v@K_VZ&e5m^s?c{{+~g01s+G4NY{Y(CNw^Sx{*QpaKg5seZ5hwjqGifm7U4@HEeN_Ed#6_gbTSG>RcFK% zcFxcdo!ikn0Vxk6qf}f80Jos<@}t9<_aVG==aPynb}O*Y6U|F)-ZYs|I<>b#FW z`$a3z+6ku5uE4NZ+HlYCw#4(WQl)U=SQUCPEhS^^m@2 z+akS2h`vRCsv;|gMTxA?OQbZ|_m>k=YIx-62gx%)b2JeDk4%CCT_uvP;Y56VXe_R8 zmV+7dWEk5aaPQlccp8~KeVv&|KEE455w_%R$fdm+>Z2;^#SNwGr8vm~Dh9!N<5Fq6Mw$x3F=gkgFz4kOA)!HA8vorIrS3_4(eJ2clx#=O`K<<81A20`Jr#^Gf9+h#z@EqpbRmH#&C+(oE!|8e*%|@WR z^LGi~*^1}YKBpkN=vxtng4S52lx9psMp>|V^UdeImn}Cc7?W;qSMK)?461|=%si*- z+mPeIrV8Rr=A{0CkN8De!;jnsg5#bjA(tpZ*$%;{c{EK@q*(h}$sc2L8YsC*HkM%t zNQ3Cg>}hgMok(B}1IY6r%Yf#9R0YX$=Yc~E6pgaE`f4#y+fVu+meh&jusHpVnf5aD zGR7oOJ(+W96n2HSi|S+LypBuJWRl^&o;xNqA!C#iPUyTpD<{HV&YnU)Oxo&K-lVVD zp=a2(gY>mOF^l$>9&oDW%RY4r67Q50zW(|GO#tZ{SWahIT0E|5eT80jTL{*8`)+yT z0$f^qQ5)TN;nS?(3QcnJ^iK$@zxTbW{$v>17{8FRL+7^^jF(Hk4NR#hbs=Ywh0GRy zI~UGUqhg6Yl^t`=w#$s4%*i_~H*WeGSN3tAbHzRL-IY~OsJ-Si7-|mVV>&$1aX0fA z`fN1cW}$?%?^Iwos(3E4MLoIZhA0WNvhO@dSc_cT-=*l}%6+N5_9*BqVB93;nQUvl zi*^4sM#EpAwNA6+L5DQrm$-TBQX#@o>X29TI@9ess{$U###M`~N9v~dw+Fn;{C)~b z{#8!U`A1%O!*C$9!FfuMfyC>3uHAa{5!KWGWmX8o#FDt6o4g&43{-6{_tpxG4#yfT zvmxa*M#LZahuf{3S+3TxIWSnFZ+myvN??S^O^CV2q!^5z9cFcI5kj31_n;K;V<%*S zy!|EQ(Uh)XvFZE~;&I6NR~y-08_BB7!M1oCs94l!9N!8DGDc>`{xW6k8y?67+-KY-NzBX&S*d}VIi3yuuE z9Ja#@B9|5ksw9My?2j_$kKLqwxEUkLJ?Np`0m|=7hTa~?pYqfn@ILehL3cDLNp!wZ$btvNGpdY*#9gXP z%Tu2%P{!{5Moc@0nQ(O)Sc+iei><4?g1>?aM|WJl!{|cjW>dN-+6fRu=s7D;(5?xv zn9A%j5(FGFo@R5_5bhl)l4ZYsj}Ko9dT_?9pp^l&d3v~T@(e_UDm=;o%OXsJ^% z<*t7y)iLN+W2fmLRjdNeOJJ(#-8%8^UEiG31ZN%#RIAS#umkbh48&^x)t5KqWZA3@OItf%lNUEiURE_RF(U!R9tfphaK z+7*X1iV-o8FIw7H3z|7E|A`)2EI^-gRz0Lmg{MTGUg46xNB}i9P5;87m-=)33$yKs z&sg41%u{3=L<+QGVunk6D6_;K)Jno^8F|3#Oi2+hilNRjb6TkxY*I0SgjW0b%@bi^h_j`-b7Y0RJ7JCruPl<1J$oSq=PiPPl0^ACso^FY74i2x|@z=3dfeA+(c!%X~RZ$(Yu*IBjcdT(%^R#HsS6$0Qx1x4}vTYR0T=>*ZgQh%Nw zGO6L)(oovx`fxS&ch!2gX$@u}_Se=^?r|WZCeHgY;85v*@9K)TWbjFG*;vL;2L_KS9Jke zgTG_YdcG31E;4B7lxmxsj3e2ZAmO^#`+pmwKGuU@5|n{B*Oqw~>LOrN%8q#yft+ry`>R{SYPveKZ)BTJ$2$`4TbNfN%P-%!)hG0o@(bWJTZR;##Qq?{blG zL_MCW+zUJ&M3Zc<0xliKjC^PwqP_OUzXN@@sWU~!*Q>B_ZA)@|fIMnyfLpoUW{yhE z{mjE%C1&>J5a5}$2F2BCdU?$AcZcTifVf@*|4w#bF>{{P)>QDWilc!n?&jt`TP15f zQ4l#H36svz`l%re5nWwh+U9BlDq0RC_T-l% z-o2d+1#@k(Q_jsr%z}&DnOF7m&d3QR(q@*qvQn(SND;f{u14-&JYQ zN^VEJVxl`xL%XV$odKNmk*B8aGR#KOp=OHOyd#ENF;=o0OSf(rxTjpuUhrhpPhLjO zEzy=a#a~0T>h?b8qB0Fc@0Gs^qrAit>K7u*?QeDvn#OAV-ey>FIlnbuw<5QTLQt~- zxf>6Vqe2LtEk0?y28VmP15~Xv=j-kwe~LL;?xrqwx}% zxEPtxTF~N^EO7*%W}q5n;$opm|J3*pZ^c;p_3GVgt=H z%gbDP7QtkK0N;5Xnb6jkBFqr~AQ3igrTi+7qZ5y551UW3%LwIg4$HlWuHrPW_==r! z5u&=5{Dg2ciX^4{aU7t{Lvd9tCL-^SWDb9DEP%G__iyqqB;pa#gRMjD@yrY>nKE-2 z!gu{72&6P>UpAyku_HjeBB$Ets}Wd)Rr~nPBMey?{#yC^mWZRVHoh$eYz!J;>iKw+!;-!2E@VcclMJ%3y$zRAn$dq6vkoT~blDQz?^@Q|ca) zbhELQOkQS$H)K#OU>7SyLzDo1@X+s7>%Evvb0S+6Tj~4A-}5I;s|Teh;EXyk3huvT3DX6O>H3*)Z<+trI?JKL*%> z1XDu671p5fEY}U(&q{Ox6hp8^QJZB)SFkkYBB>$sCPV+_)SB~+&sRtw6_JU;Zbbsu zF*=})t5Y*{Wnr)b4h?v~*T^e$PiBHIHfH*_cx!Ja?u~8?!*8ueLYf~D;BwAA54h&) z18hBwBR%%D9wN*UrRMu3549^-=#z+k^qIZcSv^&v0$7H+Jw>*rPH`d}@C0m#1*t~C zNN9tb&0FTUj&;1hSs5raB$q-sSMrxP{&MPcs{uyv^2lA5W%4=>1HW8_UF{rQrCsUU zn_m=t8YJA!ShYsuk$E2JEGMX>ljrw7pa|L@x~uVh$2?Ys0|vw}Ch3{QXkEX?L?bTz zPF{n_3-SmduE138KgCi)e<;dQok^j*v4)##P0JLnf3%78VqGi3_uU8zUzTn*jVkSw zAgE3eCGz$u)2Z|g?KA^EP2#rsn=M{zU?DAeN^OFEHiHI>n?v?BIRP=&kUv2^dce5C zImDYvkun?J%~~(Q+>OxM2K>kuGh@;)yWhHbA3gXcs4On1uYReUO^M#BH4;7|a}1F{i;!E%B{NVm%HHaH#L260?R)Y>m>McLGjgx5R?c$3}bu)YYO z%rmVp1so+1L$wnOnDxPl{+`PkS}-|&@vSPw(7jh*#6G8lV$8TSHd*)(-w2)?EO}j{ zybT-WVm^4&ebTtHhXiq6p>VX#)*fAnumDG!spdAO@IFMAr<^jdjJB96kOF0wT)ya_ z_m|N%lqhR1D23{BSGG$gG{lD{$kwrBFU*C2p_js18!BNOZ$m{z`as$(yjJ;Rpisa3 z;O+6XJNL*v2Y9}speq)+0jOJ6i9SenTiUP!3I%YECN~KjmCzPj`l{0f=&C7tOQV-_ zB?h2a=#yw^m6lMyg1&;`c{+E>vDWFw>TF;8C!0cI-x|nDkk{ZD|4>L`6nG;%-^wdW zJ-2av>1c2GOH*!kr!ayMpr_{FIl#k9$(MXRazBAi7xS`Mk%z+kKTKV6*UlE4wdT{JfjuZG#dH*YtLpj@2m;ldi&LR0<-eKe z`TiuI8HrxtFp>zl4r;%6j0?gbpy=D6W@)EUO^T-3#u{+?nwz@9{b6Lz^^!1dKhEE^ zKd8Q3H8cWf(2%Hw)2uP3w~D%$98x)y*ZCQD6Q*NBi^kK*5}YO#Z%7RNkrHxgDHj6% zg?{(uj2KkP8F_4Byc4ka_49to`To0kN+PW>*m1NwSK;~dP5G<`Z5-Bg7P1ZH>C9ub zk|lLb->ixS@9|K$v6~||N5ed9Snwx@5^RtoYBXc=ldE5NEw6WD>ZO2Qe8Jb&RNuRZ zY1^MDbz(og!s)l?3*AB8K8_}6#AfNboc(_ zlEfczTjIq+tQuUp;a?wWK4*L8x2KIBgv}Dkr!JoF|JrhtS_7$GM49_Jg=JK1l?n=22bN; z=2jyZUdG#bD-8x_gd+B^~)5Z~}8U`cFb!|Gu# z#vOv?Q3uJ80TPHGizY zC-<^`21XZ{P$J1m>(!luC;H5QsnI3NacWQsRf$@FwjbPV$966BTx2I;6jWEQLr~n= zKW9zS9GlHO;QQbdg_X~-Fh6;j&BPJ70{+xG2*n}A`b!bX3A@8~Co(DhE5Dg2qR4YeUt*+|2;CyWW>R`14J@ZF z()_19>JnS=9`jR|s6~^QB?yJw@AuU`!QMh{p7p*Kf(m0I-Ms5ijFuk@wtW6qh12v|qF?yuSV1q@42@SpFJS$ZRt_`;+=H%XTk79ItQ z_$Xsnv8k1s9^AuMuI~bpq?Wg)q@S_GFYw2-z8F@)`LU&q37qIFvuNV(T}J0Om{}Ew zg`apw4_tp?YVx)$xJv1tp*uLLWjrQ4X23-i&vrRJ)>|G&s@uGmj-J=P{rsLDP>Lq~ z_zZTQkI55WG4DYzuk#?W)98vn#uRtx4I|mI`9f69E>{v6b5w8+0#ZoQc^^a@#r5t> zHB;YX7pd@w+JccylgB3KhzFD+k8>EwdwNZx({oG%bY})Yl7`*9FcuJZ1}o0&00>a^ ze*gE%gCQVOC^`&yiavnk6@6h00g_diaRrBP=aD@F)O@QJrXgxefBQL~@=buwgTOcS zpamEWuCdGmjE?s1bPJaZ;W_@NfbzEukK*;boqQh4b&(`Xs8jEyNjGp3-;?wV9hUcv zhylX)W?1yO6k#8(DowtZZ75^o}F(ZquP?vD_`=$)yTBx*IWefz}(=S08x~D|Ig?*);0bN zKX_it)}ivy^k-!yJb6aWR-J?VZ$u~(-g_E!5WX(4pbrH`hwbp8=HV#J361!#m7NXA-U@Ph`HVW+$viC|q>TiQlX{T+D23#~*L$iH&9NYL^_dx@{_Aq(# z3p(Z(0t!zGprdIl^CBdi7-Lnjzwgdv^-k7Zd(&Zg8h%$;A@KKz%*6W_^4yHg%C01) z7p(nmmc1&Z5;}%P>R_AS|D5+1d3SL_6ZIdr*IrFQyVgp@k?hZ2V;%~E^i5>4ks@w` zMn@+Qt6v=6bxhaCqHo=`3U2QKook1RO!D>cBEg^ zU!La#qSiD@Nd<|F7xq3T*ib22A68dqw&zS1_sthR-Wd&*T0x$xm4=CnUhoZVLJUs8 zYdKFlpTD}#X2hlui&deoVSlasQ?=SJ7^dmIn#}_$Mor^aRxJ>3yWsjdwMz57!Zjj| z0g_uVv2uK?ev9Z&n3bWlB=2P@dlSWsQp1_ncGqq5&c;p0K3@qn3c{KUN3)o;PAKgG zTIX}na`U!0`vO$&hbP%D0 zh+0S)(qXc+Obxc^QVr21Of?r=Q?Av#tR*hHObN;4)Z0~ya%;~7w>)i8Rgr7`={3WZ z35stUrb0HfLyj9qf5eYw#6fJ{eAUsCyQqy#ogrf1Lb^DFv?>{jNZ@N=A~0U_%{B6V zL-j)kuVqw-t_)+N1NZ9=cnSHtU;E;}Qh9P^Hk~&Jd|~HP>`xI!r)!C|@-lE@_c)Nu zDw{ew_i~_K)Lbe$Zsf@Pmn2`3Yc<6sk$>!-4V8ZCMMw1k{!hWjcG|~AY(?C0Zu%msMi^86C*vP^}rWpf0qw^kJiy^@NtMMx0CfeXj!i zr7FltM=mTjv1=h9Sk1Qdc0+~oE2S8TnO13@js2Cou|+z)cM=**l}}3D*LE&ub_4t={j?v8dU{e z$m>wL2os0g71)B< ziLHyF=_JBe;7|fQEO`D{D~cBHCyz@8ONB%gebcl>j{@9<^LUCi(O7Ex8ZjbgB=a6xi!}hb_awta&YkS!Ad`n(L4@at+ zzPUR+%Gc^0Zj86@rZX1IA|^d-TxVDPF8c&mOt5?%^<~lrRyU)BWGP)fop|->zyCIw z6R)q2@_8C_N}Md|o6R5bIi0oWLrv`b_SO+I_dl9jiHuMCzL5AgoH|=`1SE8auiVRK z(e)B4J29yl{pu^seAS4>%t5JTPl*Af zv9JyAloXcIo5cKcVR)LJm@Ukp!LlpXvK`c1#in9$BISRI*RLKV3zb0NYW z{ObZ8XdRJT7%{k*h`h1@f| zyjBi18YiagxMYskUHo`<{F5Zfh5Olem7q+FPgo)Rt(5gqgWFI+OJ(6nPS&_tX1WL& zRIb6F$=m@X=MPh?(G|3u7lxwS#--;>lHpvFDLkILC$E#bh+d9wS?4l;*k+--PjHx) z_unRKslGOa5y>cLdmkzqc(q%rZ;Fx)9Ta0g6i#-fkMgBO{Sq_Kc^@_GsF9Vd=;hLrQ{x2}Z%#AtTge{}Fu$if zU11uL_Lb(S`AwHGGF8yGblO*E3hff3oTj}2E!0jfLlGdtfjS$@qV_X#R*K(E$oaG@D54tIAtwEgr{YMx`N zr(25kAt)Cq9sQxv^gHCm8%glZ}QnE#PTw9vpTrJz7|ycGVL}{ZEsY8Dmh>Iil@97UK@w8o7gcE zz%1LX-|^{mhkXV}i;#ZhH`eYNySc~3MAW@)|MX;7)~qB#CMznM1iyyAA9-lyiyK~# z+meMFmoJJ|OB5I6T54!^oc!U)y5wT; zY+!%QehvHE)+Ggzpcd(;oVt|l=k;yu8BZCwmj!>xLkEYc zHCl765#Nm(U!eAN2-p=7jO?c+Uh&$BJPg0y)IHG8cK_bLKLXY<5+PGh^WZ0#H919? zJGSJ@vaU{{M=weZKru<(DM8^JCNA@veLQM5o&-N|!Jftxz!{&UrcER+|CJ?ZeTV>X zh+X>5+i^QTtss+7Bi70a&G8FZ_MKQ^MuaOjo0eL-0!i>BSBHNVQI}}4<~g3vJ-PxH zepi5Yg7e?gUawAN>Q_JR3+PFEq$}0xY79`r8Ez$eo=Mfy(6xrD^pe%^GbU~}`8#>i zsPJOD&Z(i#dGtu}4Jk6yEi@7ik_$f(UvDwD>hB! z?T-sdQv5Lg*0Oj9AEyJ^?%kR^Xhl>y#QLy*|6Ws<# z!yB+kwSCN*Y^(9+IBq47<)?>9ID zMBh26+8mj6AJVC*Invd@+YH8zzBfz_gfgMnR?!VH4a16a?~MKAo_kW z#h&Kv+zC+fxpv&8p+;$st^cm=ubyp2^XWj5ipQ%_9SzP8s;aIM%a^GiMl|TdKZ}Y+ z7o*F9h0twyy6WRysm;Eg4-Ha_8AU~Rhq!bd$XT**FA}4DnKw&q!t1IM(O7Y_3ca44Mq%S;9z<+ROfd3*DY5qT?4*>Wtv{3Rt zu*Uz9e)$g!?*EYfkLmv*{V&u1L;63a|CQ&zr2mu0&6+a`@WsZt?WFjbktmCKRmc4$ zHoddUgaY>Ai?lUfm&wp|8u`>&**-H5A4uSs~<@N5tnC$S=%Rg+ba*b53RI?cLJKidsV?r1IlTSt@d5W_AHoL_~VU% zXC_1rdij=<-xtx6ce^Mb4J%YL&zX9+X0~nS?M`>)ND0v7c*1?Uptpaf*bO?%{&d0^ z9Fun{7%yw5??uB;_dFx?Ol&H))`bw0pGab*#cDG7%8*TcS+%Szx-r1^g5|UPS-s zVJpU3U=<#bu#49nGHwji}gn^?ZENfYI@JPf1kP0o%hwxI#U6rB2|r$2>Qzk3EIu4>P>p_(b1NFNOBc- zF8y>r-tD7`ce$X~Mf;+DBc-Y0T8eSWEv{Ye1OGw&h5Ah!?bjl|KDLRAapZwZEIUFC zniv4D+am34AD{UXJY9a`dUtLGIRSQby}s*t<^nKicqTYwNS!=zF*Dr^cB@*TeQv4k z_qHl|9F!-c;GgThM>^C(&z9~x44j@iZ6H-DsY3dQvrz8OW@!9W_KH#3JX@bFFH58h zna9IdSw6Y+>1G0=4Z2b%)wV&m_lM_x!wT<$W#2_(gLu|(GcXrvZG@JF0`;=fiOBoS zhUSAsr@qT+jDFr~*a%dv)q?gFZd&!x?%4MmaxvHst2sXUQKcfGZ*%9-@ne0ht2b93 z6-RweWJ{OLO8ikUCE&3bkaa{7e;fU-N6vH5tD>W$YREcY$Eh&Ik8i%gf0Tf}ROKLk z5B+CPXgHLQxMS0TWK0R~+2Lk2Z++snJlV!hnX?})@Q>zw=7dg~)w&Bw@#QXEMJ27N zEro)Ofz%SzwJN-WF9KthoSFZsz9xghMU^rP0*}=%L3D`}S+ui$buN zI|YX$Vt+|$AkH@%7DoSb=L(aR8$@sx76FWl9$emU<)+YIdbdapDEUf`1t>FBOuF>W z+&fTSBc+}>-I35OwCn6c+^M2%L6n`BE)^_yUx&(aq>#(GJM9p~uI9_61=Z2DcaeHuF=-41Zf< zcn2|C#({WuS9bG%`$J%OcJmwjz>hAv&j3%3(M8rtVnGUU9O&vtwGQqc_$-)P81y@{ zd=o1Xf3|B_>2ZZA`?@e|zzmaQz1s?J?p%VZ{!d_;vWlZ_7Mk0aK1 zI+{XHpdWsV9m$A?fq66tE*DGIeg^y`yO@1$uj2G_=L!X3|3zP7#;D_}mj#2n{~7`z z_Al7^^86pYY7!Z>t*a9jIuqgxYv;Whk`YvQNIXs2`zu|5D?09@6fK8SG%)ouHEaVe zug6r5-nKJXhX;yy)tJd=;oFwz_$Ab;?-wX1#9LQZr19n(TlaL%JAuN8%|kIp;j*?J zI8{=uPh)UuHtDU_6*u*9uEGLEs5~(6#f$yqT)}NsyUT&-q1@RtwI8Pr6QO4i{84)HC z-=5yTsKJ%gQVd@SNLt<{UVzG0jGbmzd^ymr?IC<_MD&Fa3WlHfa#uFN2uV&`4sgk` z2ILWEcs+PvqmW*H;=@*vyzG~$(E|9+G6`+U&4`m^PhaV5%o(I;JVV@|K(t`wepnrC zm{*hyZOSdYY`(Rs&9iq9CgssTe{a`65XIi0G58SFTdLJ;j|iM4=Pp`$VYiP+`n<$3 zAJ#ZdHDs(Ss5BwB_ObUj=bvRd=uL2M?cc$V>6?C4?fxzetRQlxlzcZ&GqGjyZlnx*~j zG0Hw^pf?j53V1o<$`z+2E@DHC(%~P|JDSP-iQfN5B2~2c{Zf|^g@-sZM3nLcezyE( zaebik*~?*YoQl7BrQFVm^dhd^{@eNf*P1aQ_4C!Qa^9hNZg@}y5BS?`hYGjxOa48Y zniFHQIY?d&`_8|-dzR?z!>)&kYKUtF`-_7Im7l1p4%5bAs6@vdfQj$}bt(5*4^#1^G CHrqh} literal 0 HcmV?d00001 diff --git a/public/assets/img/cml-final-3_no-bg.png b/public/assets/img/cml-final-3_no-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..4840cc747b26d8cf01928ed8678f0e3804f1b8bd GIT binary patch literal 63034 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 literal 0 HcmV?d00001 diff --git a/public/assets/img/cml-logo.png b/public/assets/img/cml-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..65f58ae4114a1005b1042b7fea7281dea96d0e5b GIT binary patch literal 6369 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 literal 0 HcmV?d00001 diff --git a/public/documents/general_files/erp_1771406806bROnEj.xlsx_rejected_rows.txt b/public/documents/general_files/erp_1771406806bROnEj.xlsx_rejected_rows.txt new file mode 100644 index 0000000..3d80ad3 --- /dev/null +++ b/public/documents/general_files/erp_1771406806bROnEj.xlsx_rejected_rows.txt @@ -0,0 +1,16 @@ +{"senderid":"IKKODE","direct_mno":"NO","mno_name":"MOOV(Benin)","supplier_name":null,"status":"Approved on MNO","remarks":null} +{"senderid":"KREEZUS","direct_mno":"NO","mno_name":"MOOV(Benin)","supplier_name":null,"status":"Approved on MNO","remarks":null} +{"senderid":"AIR CI","direct_mno":"NO","mno_name":"MOOV(Benin)","supplier_name":null,"status":"Approved on MNO","remarks":null} +{"senderid":"BENIN CTRL","direct_mno":"NO","mno_name":"MOOV(Benin)","supplier_name":null,"status":"Approved on MNO","remarks":null} +{"senderid":"AMNESTY","direct_mno":"NO","mno_name":"MOOV(Benin)","supplier_name":null,"status":"Approved on MNO","remarks":null} +{"senderid":"Sun King","direct_mno":"NO","mno_name":"MOOV(Benin)","supplier_name":null,"status":"Approved on MNO","remarks":"_"} +{"senderid":"ECOBANK","direct_mno":"NO","mno_name":"MOOV(Benin)","supplier_name":null,"status":"Approved on MNO","remarks":null} +{"senderid":"SGB","direct_mno":"NO","mno_name":"MOOV(Benin)","supplier_name":null,"status":"Approved on MNO","remarks":null} +{"senderid":"SimAU","direct_mno":"NO","mno_name":"MOOV(Benin)","supplier_name":null,"status":"Approved on MNO","remarks":null} +{"senderid":"CORIS MESO","direct_mno":"NO","mno_name":"MOOV(Benin)","supplier_name":null,"status":"Approved on MNO","remarks":null} +{"senderid":"ADKONTACT","direct_mno":"NO","mno_name":"MOOV(Benin)","supplier_name":null,"status":"Approved on MNO","remarks":null} +{"senderid":"Missebo app","direct_mno":"NO","mno_name":"MOOV(Benin)","supplier_name":null,"status":"Approved on MNO","remarks":null} +{"senderid":"Boo co","direct_mno":"NO","mno_name":"MOOV(Benin)","supplier_name":null,"status":"Approved on MNO","remarks":null} +{"senderid":"TransAfrika","direct_mno":"NO","mno_name":"MOOV(Benin)","supplier_name":null,"status":"Approved on MNO","remarks":null} +{"senderid":"MOON","direct_mno":"NO","mno_name":"MOOV(Benin)","supplier_name":null,"status":"Approved on MNO","remarks":null} +{"senderid":"SONAM HONDA","direct_mno":"NO","mno_name":"MOOV(Benin)","supplier_name":null,"status":"Approved on MNO","remarks":null} diff --git a/resources/views/daily_quotes/create.blade.php b/resources/views/daily_quotes/create.blade.php new file mode 100644 index 0000000..4c429cc --- /dev/null +++ b/resources/views/daily_quotes/create.blade.php @@ -0,0 +1,108 @@ +@extends('layouts.master') +@section('page_title') + @if(isset($page_title)) + {{ $page_title }} + @endif +@endsection +@section('content') +
+
+
+ +
+
+
+
+
+
+
+ New Daily Quote + @include('commons.notifications') +
+
+ {{-- start of content --}} +
+
+ {!! Form::open(['url' => 'dailyquotes', 'id' => 'dailyQuoteCreateForm', 'class' => 'form-horizontal form-label-left']) !!} +
+ +
+ +
+ {!! Form::text('quote', old('quote'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter quote , 'id' => 'quoteIDD', 'required' => 'true']) !!} + {!! $errors->first('quote', '

:message

') !!} +
+
+
+ +
+ {!! Form::select('direct_mno', $direct_mno_arr ,old('direct_mno'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Select one ' , 'id' => 'directMno', 'required' => 'true']) !!} + {!! $errors->first('direct_mno', '

:message

') !!} +
+
+ +
+ +
+ {!! Form::select('mno_name', $network_arr, old('mno_name'), ['class' => 'form-control col-md-7 col-xs-12', 'id' => 'networkName', 'placeholder' => '-- Select --', 'required' => 'true', 'style' => 'width:100%;']) !!} + {!! $errors->first('network', '

:message

') !!} +
+
+
+ +
+ + {!! Form::select('supplier_name', $clients, old('supplier_name'), ['class' => 'form-control', 'id' => 'supplierName', 'placeholder' => '-- Select --', 'style' => 'width:100%;']) !!} + {!! $errors->first('client_id', '

:message

') !!} +
+
+
+ +
+ {!! Form::select('status', $status ,old('status'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Select Status ' , 'id' => 'status', 'required' => 'true']) !!} + {!! $errors->first('status', '

:message

') !!} +
+
+
+ +
+ {!! Form::text('remarks', old('remarks'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter remarks here' , 'id' => 'remarks']) !!} + {!! $errors->first('remarks', '

:message

') !!} +
+
+ +
+
+
+ +   + + +
+
+ {!! Form::close() !!} +
+ {{-- end of x_content --}} +
+ {{-- end of x_panel --}} +
+
+ +
+ +@endsection + +@section('javascript') + + +@endsection diff --git a/resources/views/daily_quotes/edit.blade.php b/resources/views/daily_quotes/edit.blade.php new file mode 100644 index 0000000..641ee78 --- /dev/null +++ b/resources/views/daily_quotes/edit.blade.php @@ -0,0 +1,105 @@ +@extends('layouts.master') +@section('page_title') + @if(isset($page_title)) + {{ $page_title }} + @endif +@endsection +@section('content') +
+
+
+ +
+
+
+
+
+
+
+ Update Sender ID + @include('commons.notifications') +
+
+ {{-- start of content --}} +
+
+ {!! Form::model($senderid, [ + 'method' => 'PATCH', + 'url' => ['senderids', $senderid], + 'class' => 'form-horizontal form-label-left' + ]) !!} +
+
+ +
+ {!! Form::text('senderid', old('senderid'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter sender ID' , 'id' => 'senderIddEdit', 'required' => 'true']) !!} + {!! $errors->first('name', '

:message

') !!} +
+
+
+ +
+ {!! Form::select('direct_mno', $direct_mno_arr ,old('direct_mno'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Select one ' , 'id' => 'directMnoEdit', 'required' => 'true']) !!} + {!! $errors->first('direct_mno', '

:message

') !!} +
+
+
" id="mnoDivEdit"> + +
+ {!! Form::select('mno_name', $network_arr, old('mno_name'), ['class' => 'form-control col-md-7 col-xs-12', 'id' => 'networkNameEdit', 'placeholder' => '-- Select --', 'style' => 'width:100%;']) !!} + {!! $errors->first('network', '

:message

') !!} +
+
+
" id="supplierDivEdit"> + +
+ {!! Form::select('supplier_name', $clients, old('supplier_name'), ['class' => 'form-control', 'id' => 'supplierNameEdit', 'placeholder' => '-- Select --', 'style' => 'width:100%;']) !!} + {!! $errors->first('client_id', '

:message

') !!} +
+
+
+ +
+ {!! Form::select('status', $status ,old('status'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Select Status ' , 'id' => 'statusEdit', 'required' => 'true']) !!} + {!! $errors->first('status', '

:message

') !!} +
+
+
+ +
+ {!! Form::text('remarks', old('remarks'), ['class' => 'form-control col-md-7 col-xs-12', 'placeholder'=>'Enter remarks here' , 'id' => 'remarksEdit']) !!} + {!! $errors->first('remarks', '

:message

') !!} +
+
+ +
+
+
+ +
+
+ {!! Form::close() !!} +
+ {{-- end of x_content --}} +
+ {{-- end of x_panel --}} +
+
+ +
+ +@endsection + +@section('javascript') + + +@endsection diff --git a/resources/views/daily_quotes/index.blade.php b/resources/views/daily_quotes/index.blade.php new file mode 100644 index 0000000..700fa56 --- /dev/null +++ b/resources/views/daily_quotes/index.blade.php @@ -0,0 +1,199 @@ +@extends('layouts.master') + @section('page_title') + @if(isset($page_title)) + {{ $page_title }} + @endif + @endsection +@section('css') + +@endsection +@section('content') +
+
+
+
+ +
+
+ +
+
+
+
+ +
+ +
+
+
+
+
+
+
+
+
+ +
+
+ @include('commons.notifications') +
+
+ + +
+ + @if(session('current_user.rejected_rows_filename') !== null) + + @endif + +
+ +
+
+
+
+
+
+
+ +@endsection + +@section('javascript') + + + + + + +@endsection diff --git a/resources/views/layouts/dashboardmaster.blade.php b/resources/views/layouts/dashboardmaster.blade.php index 0bb2fc4..fcfeb23 100755 --- a/resources/views/layouts/dashboardmaster.blade.php +++ b/resources/views/layouts/dashboardmaster.blade.php @@ -35,6 +35,7 @@ + @include('systemusers.partials.profile')