X7ROOT File Manager
Current Path:
/home/hamdjcne/app.hamdalillahitravel.com/app/Controllers
home
/
hamdjcne
/
app.hamdalillahitravel.com
/
app
/
Controllers
/
ðŸ“
..
📄
.DS_Store
(6 KB)
📄
Accounts.php
(52.25 KB)
📄
Activity.php
(4.49 KB)
📄
Analytics.php
(12.22 KB)
📄
Api.php
(41.41 KB)
📄
Auth.php
(34.64 KB)
📄
BaseController.php
(1.77 KB)
📄
Dashboard.php
(42.95 KB)
📄
Notification.php
(6.22 KB)
📄
Order.php
(118.16 KB)
📄
Service.php
(61.77 KB)
📄
Settings.php
(40.13 KB)
📄
Staff.php
(67.17 KB)
📄
Tour.php
(32.09 KB)
📄
Wallets.php
(43.15 KB)
📄
Webhook.php
(5.14 KB)
Editing: Order.php
<?php namespace App\Controllers; class Order extends BaseController { //Orders public function list($param1='', $param2='', $param3='') { // check session login if($this->session->get('fls_id') == ''){ $request_uri = uri_string(); $this->session->set('fls_redirect', $request_uri); return redirect()->to(site_url('auth')); } $mod = 'order/list'; $log_id = $this->session->get('fls_id'); $role_id = $this->Crud->read_field('id', $log_id, 'user', 'role_id'); $role = strtolower($this->Crud->read_field('id', $role_id, 'access_role', 'name')); $role_c = $this->Crud->module($role_id, $mod, 'create'); $role_r = $this->Crud->module($role_id, $mod, 'read'); $role_u = $this->Crud->module($role_id, $mod, 'update'); $role_d = $this->Crud->module($role_id, $mod, 'delete'); if($role_r == 0){ return redirect()->to(site_url('dashboard')); } $data['log_id'] = $log_id; $data['role'] = $role; $data['role_c'] = $role_c; $table = 'order'; $form_link = site_url($mod); if($param1){$form_link .= '/'.$param1;} if($param2){$form_link .= '/'.$param2.'/';} if($param3){$form_link .= $param3;} // pass parameters to view $data['param1'] = $param1; $data['param2'] = $param2; $data['param3'] = $param3; $data['form_link'] = $form_link; // manage record if($param1 == 'manage') { // prepare for delete if($param2 == 'delete') { if($param3) { $edit = $this->Crud->read_single('id', $param3, $table); //echo var_dump($edit); if(!empty($edit)) { foreach($edit as $e) { $data['d_id'] = $e->id; } } if($this->request->getMethod() == 'post'){ $del_id = $this->request->getVar('d_pump_id'); $code = $this->Crud->read_field('id', $del_id, 'pump', 'name'); $by = $this->Crud->read_field('id', $log_id, 'user', 'fullname'); $action = $by.' deleted pump ('.$code.')'; if($this->Crud->deletes('id', $del_id, $table) > 0) { ///// store activities $this->Crud->activity('pump', $del_id, $action); echo $this->Crud->msg('success', 'Record Deleted'); echo '<script>location.reload(false);</script>'; } else { echo $this->Crud->msg('danger', 'Please try later'); } die; } } } elseif($param2 == 'assign'){ if($param3) { $edit = $this->Crud->read_single('id', $param3, $table); if(!empty($edit)) { foreach($edit as $e) { $data['e_id'] = $e->id; $data['vindi'] = $this->Crud->read2_order('state_id', $e->state_id, 'is_vindi', 1, 'user', 'company_name', 'asc'); } } } if($this->request->getMethod() == 'post'){ $order_id = $this->request->getVar('order_id'); $merchant_id = $this->request->getVar('merchant_id'); // do create or update if($order_id) { $upd_data['merchant_id'] = $merchant_id; $upd_data['status'] = 'processing'; $upd_rec = $this->Crud->updates('id', $order_id, $table, $upd_data); if($upd_rec > 0) { ///// store activities $by = $this->Crud->read_field('id', $log_id, 'user', 'fullname'); $code = $this->Crud->read_field('id', $merchant_id, 'user', 'company_name'); $action = $by.' assigned Fuel Order to ('.$code.')'; $this->Crud->activity('order', $order_id, $action); echo $this->Crud->msg('success', 'Order Assigned'); echo '<script>location.reload(false);</script>'; } else { echo $this->Crud->msg('info', 'No Changes'); } die; } } } else { // prepare for edit if($param2 == 'edit') { if($param3) { $edit = $this->Crud->read_single('id', $param3, $table); if(!empty($edit)) { foreach($edit as $e) { $data['e_id'] = $e->id; $data['e_code'] = $e->code; $data['e_state'] = $this->Crud->read_field('id', $e->state_id, 'state', 'name'); // currency $curr = '₦'; $data['e_curr'] = $curr; $category_id = $e->category_id; $vendor_id = $e->partner_id; $customer_id = $e->user_id; // category data $category = $this->Crud->read_field('id', $category_id, 'category', 'name'); // vendor data $vendor = $this->Crud->read_field('id', $vendor_id, 'user', 'fullname'); $vendor_address = $this->Crud->read_field('id', $vendor_id, 'user', 'address'); $vendor_phone = $this->Crud->read_field('id', $vendor_id, 'user', 'phone'); $vendor_email = $this->Crud->read_field('id', $vendor_id, 'user', 'email'); $vendor_img_id = $this->Crud->read_field('id', $vendor_id, 'user', 'img_id'); $vendor_img = $this->Crud->image($vendor_img_id, 'big'); // customer data $customer = $this->Crud->read_field('id', $customer_id, 'user', 'fullname'); $customer_address = $this->Crud->read_field('id', $customer_id, 'user', 'address'); $customer_phone = $this->Crud->read_field('id', $customer_id, 'user', 'phone'); $customer_email = $this->Crud->read_field('id', $customer_id, 'user', 'email'); $customer_img_id = $this->Crud->read_field('id', $customer_id, 'user', 'img_id'); $customer_img = $this->Crud->image($customer_img_id, 'big'); $item_name = ''; if($e->litre < 2) { $item_name = $e->litre.' litres of '.$category; } else { $item_name = $e->litre.' litres of '.$category; } $data['e_category'] = $category; $data['e_vendor'] = $vendor; $data['e_vendor_address'] = $vendor_address; $data['e_vendor_phone'] = $vendor_phone; $data['e_vendor_email'] = $vendor_email; $data['e_vendor_img'] = $vendor_img; $data['e_customer'] = $customer; $data['e_customer_address'] = $customer_address; $data['e_customer_phone'] = $customer_phone; $data['e_customer_email'] = $customer_email; $data['e_customer_img'] = $customer_img; $data['e_delivery_date'] = date('M d, Y h:i A', strtotime($e->used_date)); $data['e_item_name'] = $item_name; $data['e_quantity'] = number_format((float)$e->litre); $data['e_sub_total'] = number_format((float)$e->amount, 2); $data['e_vat'] = number_format((float)$e->vat, 2); $data['e_total'] = number_format((float)$e->total, 2); if($e->status) { $status = 'Approved'; } else { $status = $e->status; } $data['e_status'] = $status; $data['e_approved'] = $e->status; $data['e_reg_date'] = date('M d, Y h:i A', strtotime($e->reg_date)); $comms = ''; // vendor commission details $v_acc = $this->Crud->read_field('user_id', $vendor_id, 'account', 'name').'<br/>'.$this->Crud->read_field('user_id', $vendor_id, 'account', 'account').' - '.$this->Crud->read_field('user_id', $vendor_id, 'account', 'bank'); $comms .= ' <tr> <td>'.$vendor.'<div class="small">'.$v_acc.'</div></td> <td><b>FUELING STATION</b></td> <td class="text-right">'.number_format((float)$e->amount, 2).'</td> </tr> '; $data['comms'] = $comms; } } } } if($this->request->getMethod() == 'post'){ $pump_id = $this->request->getVar('pump_id'); $name = $this->request->getVar('name'); $product = $this->request->getVar('product'); $price = $this->request->getVar('price'); // do create or update if($pump_id) { $upd_data['name'] = $name; $upd_data['product'] = $product; $upd_data['price'] = $price; $upd_rec = $this->Crud->updates('id', $pump_id, $table, $upd_data); if($upd_rec > 0) { ///// store activities $by = $this->Crud->read_field('id', $log_id, 'user', 'fullname'); $code = $this->Crud->read_field('id', $pump_id, 'pump', 'name'); $action = $by.' updated Pump ('.$code.') Record'; $this->Crud->activity('pump', $pump_id, $action); echo $this->Crud->msg('success', 'Updated'); echo '<script>location.reload(false);</script>'; } else { echo $this->Crud->msg('info', 'No Changes'); } die; } else { if($this->Crud->check2('name', $name, 'user_id', $log_id, $table) > 0) { echo $this->Crud->msg('warning', 'Record Already Exist'); } else { $ins_data['name'] = $name; $ins_data['product'] = $product; $ins_data['price'] = $price; $ins_data['user_id'] = $log_id; $ins_data['reg_date'] = date(fdate); $ins_rec = $this->Crud->create($table, $ins_data); if($ins_rec > 0) { echo $this->Crud->msg('success', 'Record Created'); ///// store activities $by = $this->Crud->read_field('id', $log_id, 'user', 'fullname'); $code = $this->Crud->read_field('id', $ins_rec, 'pump', 'name'); $action = $by.' created Pump ('.$code.') Record'; $this->Crud->activity('pump', $ins_rec, $action); echo '<script>location.reload(false);</script>'; } else { echo $this->Crud->msg('danger', 'Please try later'); } } }die; } } } // record listing if($param1 == 'load') { $limit = $param2; $offset = $param3; $count = 0; $rec_limit = 150; $item = ''; if($limit == '') {$limit = $rec_limit;} if($offset == '') {$offset = 0;} $type = $this->request->getVar('type'); if(!empty($this->request->getVar('status'))) { $status = $this->request->getVar('status'); } else { $status = ''; } if(!empty($this->request->getVar('fuel_type'))) { $fuel_type = $this->request->getVar('fuel_type'); } else { $fuel_type = ''; } if(!empty($this->request->getVar('state'))) { $state = $this->request->getVar('state'); } else { $state = ''; } if(!empty($this->request->getVar('merchant_id'))) { $merchant_id = $this->request->getVar('merchant_id'); } else { $merchant_id = ''; } if(!empty($this->request->getVar('lga'))) { $lga = $this->request->getVar('lga'); } else { $lga = ''; } if(!empty($this->request->getVar('start_date'))) { $start_date = $this->request->getVar('start_date'); } else { $start_date = ''; } if(!empty($this->request->getVar('end_date'))) { $end_date = $this->request->getVar('end_date'); } else { $end_date = ''; } $search = $this->request->getVar('search'); $total = 0; if(!$log_id) { $item = '<div class="text-center text-muted">Session Timeout! - Please login again</div>'; } else { $query = $this->Crud->filter_order($limit, $offset, $log_id, $status, $merchant_id, $state, $lga, $search, $start_date, $end_date, $type, $fuel_type); $all_rec = $this->Crud->filter_order('', '', $log_id, $status, $merchant_id, $state, $lga, $search, $start_date, $end_date, $type, $fuel_type); if(!empty($all_rec)) { $count = count($all_rec); } else { $count = 0; } $curr = '₦'; if(!empty($query)) { foreach($query as $q) { $id = $q->id; $code = $q->code; $state_id = $q->state_id; $city_id = $q->city_id; $user_id = $q->user_id; $merchant_id = $q->merchant_id; $quantity = $q->litre; $fuel_type = $q->fuel_type; $order_type = $q->order_type; $status = $q->status; $total = $q->amount; $reg_date = date('M d, Y h:i A', strtotime($q->reg_date)); // category $merchant = $this->Crud->read_field('id', $merchant_id, 'user', 'company_name'); // state $state = $this->Crud->read_field('id', $state_id, 'state', 'name'); $city = $this->Crud->read_field('id', $city_id, 'city', 'name'); // user $user = $this->Crud->read_field('id', $user_id, 'user', 'fullname'); $area = ''; $territory = $this->Crud->get_city($state_id, $city_id); $tez = ''; // echo $territory; if($role != 'customer' && $role != 'corporate' && $role != 'driver' && $role != 'staff'){ if(!empty($territory)){ $tez .= ' - '.$territory; } $area = ' <td> '.$city.' '.$tez.' </td> '; } $edit_btn = ''; $order_btn = ''; // if can edit if($role_u) { $code = ' <a href="javascript:;" class="text-success pop" pageTitle="Order Statement" pageName="'.base_url('order/list/manage/edit/'.$id).'" pageSize="modal-lg"> <i class="ni ni-edit"></i> <span class="m-l-3 m-r-10"><b>'.$code.'</b></span> </a> '; if($order_type == 'express' || $order_type == 'subscription'){ if(empty($merchant)){ $edit_btn = ' <a href="javascript:;" class="pop btn btn-icon btn-primary btn-active-color-light btn-sm me-2" data-bs-toggle="tooltip" data-bs-placement="top" title="Assign Fuel Order" pageTitle="Assign Fuel Order" pageName="'.site_url($mod.'/manage/assign/'.$id).'"> <i class="ki-duotone ki-user-tick fs-2"><span class="path1"></span><span class="path2"></span><span class="path3"></span></i> </a> '; } if($status != 'completed'){ $order_btn = ' <a href="javascript:;" class="pop btn btn-icon btn-success btn-active-color-light btn-sm me-2" data-bs-toggle="tooltip" data-bs-placement="top" title="Manager Order" pageTitle="Manager Order" pageName="'.site_url($mod.'/manage/edit/'.$id).'"> <i class="ki-duotone ki-handcart fs-2"></i> </a> '; } } } if(empty($merchant)){ $merchant = '<span class="text-danger">Not Assigned</span>'; } $qt = 'LTR'; if($fuel_type == 'gas')$qt = 'KG'; $st = '<span class="text-warning">Pending</span>'; if($status == 'processing')$st = '<span class="text-success">Processing</span>'; if($status == 'completed')$st = '<span class="text-primary">Completed</span>'; $item .= ' <tr> <td>'.$reg_date.'<br>'.$st.'</td> <td>'.ucwords($fuel_type).'</td> <td>'.ucwords($user).'</td> <td>'.ucwords($merchant).'</td>'.$area.' <td><span class="text-gray-600 text-hover-success mb-1">'.$code.'</span><br><span>'.curr.number_format($total,2).'</span></td> <td>'.number_format($quantity,2).' '.$qt.' </td> <td>'.$edit_btn.''.$order_btn.'</td> </tr> '; } } } if(empty($item)) { $resp['item'] = '<tr><td colspan="8"> <div class="text-center text-muted"> <br/><br/> <i class="ki-duotone ki-wallet fs-5x" style="font-size:150px;"> <span class="path1"></span> <span class="path2"></span> <span class="path3"></span> <span class="path4"></span> </i><br/><br/>No Transaction Returned </div></td></tr> '; } else { $resp['item'] = $item; } $more_record = $count - ($offset + $rec_limit); $resp['left'] = $more_record; $resp['total'] = $curr . number_format($total, 2); if($count > ($offset + $rec_limit)) { // for load more records $resp['limit'] = $rec_limit; $resp['offset'] = $offset + $limit; } else { $resp['limit'] = 0; $resp['offset'] = 0; } echo json_encode($resp); die; } if($param1 == 'manage' || $param1 == 'fund' || $param1 == 'statement') { // view for form data posting return view($mod.'_form', $data); } else { // view for main page $data['title'] = 'Transaction - '.app_name; $data['page_active'] = $mod; return view($mod, $data); } } //Orders public function voucher($param1='', $param2='', $param3='') { // check session login if($this->session->get('fls_id') == ''){ $request_uri = uri_string(); $this->session->set('fls_redirect', $request_uri); return redirect()->to(site_url('auth')); } $mod = 'order/voucher'; $log_id = $this->session->get('fls_id'); $role_id = $this->Crud->read_field('id', $log_id, 'user', 'role_id'); $role = strtolower($this->Crud->read_field('id', $role_id, 'access_role', 'name')); $role_c = $this->Crud->module($role_id, $mod, 'create'); $role_r = $this->Crud->module($role_id, $mod, 'read'); $role_u = $this->Crud->module($role_id, $mod, 'update'); $role_d = $this->Crud->module($role_id, $mod, 'delete'); if($role_r == 0){ return redirect()->to(site_url('dashboard')); } $data['log_id'] = $log_id; $data['role'] = $role; $data['role_c'] = $role_c; $table = 'voucher'; $form_link = site_url($mod); if($param1){$form_link .= '/'.$param1;} if($param2){$form_link .= '/'.$param2.'/';} if($param3){$form_link .= $param3;} // pass parameters to view $data['param1'] = $param1; $data['param2'] = $param2; $data['param3'] = $param3; $data['form_link'] = $form_link; // manage record if($param1 == 'manage') { // prepare for delete if($param2 == 'delete') { if($param3) { $edit = $this->Crud->read_single('id', $param3, $table); //echo var_dump($edit); if(!empty($edit)) { foreach($edit as $e) { $data['d_id'] = $e->id; } } if($this->request->getMethod() == 'post'){ $del_id = $this->request->getVar('d_id'); $code = $this->Crud->read_field('id', $del_id, 'voucher', 'code'); $amount = $this->Crud->read_field('id', $del_id, 'voucher', 'price'); $by = $this->Crud->read_field('id', $log_id, 'user', 'fullname'); $action = $by.' deleted Voucher ('.$code.') and Refunded the Amount to your wallet'; if($this->Crud->deletes('id', $del_id, $table) > 0) { ///// store activities $this->Crud->activity('voucher', $del_id, $action); //debit Account $v_ins['user_id'] = $log_id; $v_ins['type'] = 'credit'; $v_ins['amount'] = $amount; $v_ins['item'] = 'voucher'; $v_ins['remark'] = 'Refund of Fuel Voucher'; $v_ins['reg_date'] = date(fdate); $v_id = $this->Crud->create('wallet', $v_ins); ///// store activities $user = $this->Crud->read_field('id', $log_id, 'user', 'fullname'); $action = $user.' Refunded Fuel Voucher of ₦'.number_format($amount,2).' to wallet'; $this->Crud->activity('voucher', $del_id, $action); $content = 'Credit of ₦'.number_format($amount,2).' to wallet'; $this->Crud->notify(0, $log_id, $content, 'wallet Credited', $v_id); echo $this->Crud->msg('success', 'Voucher Deleted'); echo '<script>location.reload(false);</script>'; } else { echo $this->Crud->msg('danger', 'Please try later'); } die; } } } elseif($param2 == 'transfer') { if($param3){ $edit = $this->Crud->read_single('id', $param3, $table); //echo var_dump($edit); if(!empty($edit)) { foreach($edit as $e) { $data['e_id'] = $e->id; $data['e_code'] = $e->code; $data['e_user_id'] = $e->user_id; $data['e_assigned_id'] = $e->assigned_id; } } if($this->request->getMethod() == 'post'){ $voucher_id = $this->request->getVar('voucher_id'); $staff_id = $this->request->getVar('staff_id'); // do create or update if($voucher_id) { $upd_data['assigned_id'] = $staff_id; $upd_data['assigned_date'] = date(fdate); $upd_rec = $this->Crud->updates('id', $voucher_id, $table, $upd_data); if($upd_rec > 0) { ///// store activities $by = $this->Crud->read_field('id', $log_id, 'user', 'fullname'); $code = $this->Crud->read_field('id', $staff_id, 'user', 'fullname'); $action = $by.' Transferred Voucher to ('.$code.')'; $this->Crud->activity('voucher', $voucher_id, $action); $this->Crud->notify($log_id, $staff_id, $action, 'voucher', $voucher_id); echo $this->Crud->msg('success', 'Voucher Transferred'); echo '<script>location.reload(false);</script>'; } else { echo $this->Crud->msg('info', 'No Changes'); } } die; } } } elseif($param2 == 'reverse') { if($param3){ $edit = $this->Crud->read_single('id', $param3, $table); //echo var_dump($edit); if(!empty($edit)) { foreach($edit as $e) { $data['e_id'] = $e->id; } } if($this->request->getMethod() == 'post'){ $voucher_id = $this->request->getVar('voucher_id'); $staff_id = $this->Crud->read_field('id', $voucher_id, 'voucher', 'assigned_id'); // do create or update if($voucher_id) { $upd_data['assigned_id'] = ''; $upd_data['assigned_date'] = ''; $upd_rec = $this->Crud->updates('id', $voucher_id, $table, $upd_data); if($upd_rec > 0) { ///// store activities $by = $this->Crud->read_field('id', $log_id, 'user', 'fullname'); $staff = $this->Crud->read_field('id', $staff_id, 'user', 'fullname'); $code = $this->Crud->read_field('id', $voucher_id, 'voucher', 'code'); $action = $by.' reversed Voucher ('.$code.') from '.ucwords($staff) ; $this->Crud->activity('voucher', $voucher_id, $action); $this->Crud->notify($log_id, $staff_id, $action, 'voucher', $voucher_id); echo $this->Crud->msg('success', 'Voucher reversed'); echo '<script>location.reload(false);</script>'; } else { echo $this->Crud->msg('info', 'No Changes'); } } die; } } } elseif($param2 == 'reveal_code') { if($param3){ $edit = $this->Crud->read_single('id', $param3, $table); //echo var_dump($edit); if(!empty($edit)) { foreach($edit as $e) { $data['e_id'] = $e->id; } } if($this->request->getMethod() == 'post'){ $voucher_id = $this->request->getVar('voucher_id'); $pin = $this->request->getVar('pin'); $staff_id = $this->Crud->read_field('id', $voucher_id, 'voucher', 'assigned_id'); $user_id = $this->Crud->read_field('id', $voucher_id, 'voucher', 'user_id'); $pin_code = $this->Crud->read_field('id', $user_id, 'user', 'pin'); if(empty($pin)){ echo $this->Crud->msg('danger', 'Enter Pin'); die; } if(empty($pin_code)){ echo $this->Crud->msg('danger', 'Pin has not been set'); die; } if($pin_code != $pin){ echo $this->Crud->msg('danger', 'Invalid Pin, Try Again'); die; } // do create or update if($voucher_id) { $codez = $this->Crud->read_field('id', $voucher_id, 'voucher', 'code'); $amount = $this->Crud->read_field('id', $voucher_id, 'voucher', 'price'); $path = $this->Crud->read_field('id', $voucher_id, 'voucher', 'qrcode'); $qrcode = site_url($path); echo $this->Crud->msg('success', 'Fuel Voucher Display Successfully'); echo '<script>$("#confirm_resp").hide(500);$("#success_resp").show(500); $("#amount_resp").html("Voucher of '.curr.number_format($amount, 2).'");$("#codez").html("'.$codez.'"); $("#qrcode").html(\'<img alt="QR Code" id="qrcode_img" src="' . $qrcode . '" />\'); $("#codezz").val("'.$codez.'");$("#pinz_respz").hide(500);$("#bb_fo_btn").hide(500); </script>'; } die; } } } else { // prepare for edit if($param2 == 'edit') { if($param3) { $edit = $this->Crud->read_single('id', $param3, $table); if(!empty($edit)) { foreach($edit as $e) { $data['e_id'] = $e->id; $data['e_code'] = $e->code; $data['e_state'] = $this->Crud->read_field('id', $e->state_id, 'state', 'name'); // currency $curr = '₦'; $data['e_curr'] = $curr; $category_id = $e->category_id; $vendor_id = $e->partner_id; $customer_id = $e->user_id; // category data $category = $this->Crud->read_field('id', $category_id, 'category', 'name'); // vendor data $vendor = $this->Crud->read_field('id', $vendor_id, 'user', 'fullname'); $vendor_address = $this->Crud->read_field('id', $vendor_id, 'user', 'address'); $vendor_phone = $this->Crud->read_field('id', $vendor_id, 'user', 'phone'); $vendor_email = $this->Crud->read_field('id', $vendor_id, 'user', 'email'); $vendor_img_id = $this->Crud->read_field('id', $vendor_id, 'user', 'img_id'); $vendor_img = $this->Crud->image($vendor_img_id, 'big'); // customer data $customer = $this->Crud->read_field('id', $customer_id, 'user', 'fullname'); $customer_address = $this->Crud->read_field('id', $customer_id, 'user', 'address'); $customer_phone = $this->Crud->read_field('id', $customer_id, 'user', 'phone'); $customer_email = $this->Crud->read_field('id', $customer_id, 'user', 'email'); $customer_img_id = $this->Crud->read_field('id', $customer_id, 'user', 'img_id'); $customer_img = $this->Crud->image($customer_img_id, 'big'); $item_name = ''; if($e->litre < 2) { $item_name = $e->litre.' litres of '.$category; } else { $item_name = $e->litre.' litres of '.$category; } $data['e_category'] = $category; $data['e_vendor'] = $vendor; $data['e_vendor_address'] = $vendor_address; $data['e_vendor_phone'] = $vendor_phone; $data['e_vendor_email'] = $vendor_email; $data['e_vendor_img'] = $vendor_img; $data['e_customer'] = $customer; $data['e_customer_address'] = $customer_address; $data['e_customer_phone'] = $customer_phone; $data['e_customer_email'] = $customer_email; $data['e_customer_img'] = $customer_img; $data['e_delivery_date'] = date('M d, Y h:i A', strtotime($e->used_date)); $data['e_item_name'] = $item_name; $data['e_quantity'] = number_format((float)$e->litre); $data['e_sub_total'] = number_format((float)$e->amount, 2); $data['e_vat'] = number_format((float)$e->vat, 2); $data['e_total'] = number_format((float)$e->total, 2); if($e->status) { $status = 'Approved'; } else { $status = $e->status; } $data['e_status'] = $status; $data['e_approved'] = $e->status; $data['e_reg_date'] = date('M d, Y h:i A', strtotime($e->reg_date)); $comms = ''; // vendor commission details $v_acc = $this->Crud->read_field('user_id', $vendor_id, 'account', 'name').'<br/>'.$this->Crud->read_field('user_id', $vendor_id, 'account', 'account').' - '.$this->Crud->read_field('user_id', $vendor_id, 'account', 'bank'); $comms .= ' <tr> <td>'.$vendor.'<div class="small">'.$v_acc.'</div></td> <td><b>FUELING STATION</b></td> <td class="text-right">'.number_format((float)$e->amount, 2).'</td> </tr> '; $data['comms'] = $comms; } } } } if($this->request->getMethod() == 'post'){ $pump_id = $this->request->getVar('pump_id'); $name = $this->request->getVar('name'); $product = $this->request->getVar('product'); $price = $this->request->getVar('price'); // do create or update if($pump_id) { $upd_data['name'] = $name; $upd_data['product'] = $product; $upd_data['price'] = $price; $upd_rec = $this->Crud->updates('id', $pump_id, $table, $upd_data); if($upd_rec > 0) { ///// store activities $by = $this->Crud->read_field('id', $log_id, 'user', 'fullname'); $code = $this->Crud->read_field('id', $pump_id, 'pump', 'name'); $action = $by.' updated Pump ('.$code.') Record'; $this->Crud->activity('pump', $pump_id, $action); echo $this->Crud->msg('success', 'Updated'); echo '<script>location.reload(false);</script>'; } else { echo $this->Crud->msg('info', 'No Changes'); } die; } else { if($this->Crud->check2('name', $name, 'user_id', $log_id, $table) > 0) { echo $this->Crud->msg('warning', 'Record Already Exist'); } else { $ins_data['name'] = $name; $ins_data['product'] = $product; $ins_data['price'] = $price; $ins_data['user_id'] = $log_id; $ins_data['reg_date'] = date(fdate); $ins_rec = $this->Crud->create($table, $ins_data); if($ins_rec > 0) { echo $this->Crud->msg('success', 'Record Created'); ///// store activities $by = $this->Crud->read_field('id', $log_id, 'user', 'fullname'); $code = $this->Crud->read_field('id', $ins_rec, 'pump', 'name'); $action = $by.' created Pump ('.$code.') Record'; $this->Crud->activity('pump', $ins_rec, $action); echo '<script>location.reload(false);</script>'; } else { echo $this->Crud->msg('danger', 'Please try later'); } } }die; } } } // record listing if($param1 == 'load') { $limit = $param2; $offset = $param3; $count = 0; $rec_limit = 50; $item = ''; if($limit == '') {$limit = $rec_limit;} if($offset == '') {$offset = 0;} $status = $this->request->getVar('status'); $type = $this->request->getVar('type'); if(!empty($this->request->getVar('start_date'))) { $start_date = $this->request->getVar('start_date'); } else { $start_date = ''; } if(!empty($this->request->getVar('end_date'))) { $end_date = $this->request->getVar('end_date'); } else { $end_date = ''; } $search = $this->request->getVar('search'); if(!$log_id) { $item = '<div class="text-center text-muted">Session Timeout! - Please login again</div>'; } else { $query = $this->Crud->filter_voucher($limit, $offset, $log_id, $status, $search, $start_date, $end_date); $all_rec = $this->Crud->filter_voucher('', '', $log_id, $status, $search, $start_date, $end_date); if(!empty($all_rec)) { $count = count($all_rec); } else { $count = 0; } $curr = '₦'; if(!empty($query)) { foreach($query as $q) { $id = $q->id; $code = $q->code; $assigned_id = $q->assigned_id; $user_id = $q->user_id; $price = $q->price; $fuel_type = $q->fuel_type; $order_type = $q->order_type; $status = $q->status; $reg_date = date('M d, Y h:i A', strtotime($q->reg_date)); $used_date = date('M d, Y h:i A', strtotime($q->used_date)); // user $assigned = $this->Crud->read_field('id', $assigned_id, 'user', 'fullname'); $user = $this->Crud->read_field('id', $user_id, 'user', 'fullname'); $user_role_id = $this->Crud->read_field('id', $user_id, 'user', 'role_id'); $user_role = strtoupper($this->Crud->read_field('id', $user_role_id, 'access_role', 'name')); $user_image_id = $this->Crud->read_field('id', $user_id, 'user', 'img_id'); $user_image = $this->Crud->image($user_image_id, 'big'); $stat = '<div class="badge badge-light-danger">Not Used</div>'; if($q->status == 1){ $stat = '<div class="badge badge-light-primary">Used</div>'; } $t_btn = ''; if($assigned_id > 0){ $statz = '<div class=" text-dark">Voucher Transfered to '.ucwords($assigned).'</div>'.$stat; if($q->status <= 0){ if($user_role == 'CORPORATE'){ $t_btn = ' <a href="#" class="btn btn-icon btn-info btn-sm pop me-2" pageTitle="Reverse Voucher Transfer" data-bs-toggle="tooltip" data-bs-placement="top" title="Reverse Voucher Transfer" pageName="'.site_url($mod.'/manage/reverse/'.$id).'"> <i class="ki-duotone ki-share fs-2"><span class="path1"></span><span class="path2"></span><span class="path3"></span><span class="path4"></span><span class="path5"></span><span class="path6"></span></i> </a>'; } } } else { $statz = $stat; if($q->status <= 0){ if($user_role == 'CORPORATE'){ $t_btn = ' <a href="#" class="btn btn-icon btn-primary btn-sm pop me-2" pageTitle="Voucher Transfer '.$code.'" data-bs-toggle="tooltip" data-bs-placement="top" title="Voucher Transfer" pageName="'.site_url($mod.'/manage/transfer/'.$id).'"> <i class="ki-duotone ki-share fs-2"><span class="path1"></span><span class="path2"></span><span class="path3"></span><span class="path4"></span><span class="path5"></span><span class="path6"></span></i> </a>'; } } } $all_btn = ''; if($q->status == 0){ if($assigned_id != $log_id){ $all_btn = ' <div class="d-flex justify-content-end flex-shrink-0"> '.$t_btn.' <a href="#" class="btn btn-icon btn-danger btn-sm pop me-2" pageTitle="Delete '.$code.'" data-bs-toggle="tooltip" data-bs-placement="top" title="Delete '.$code.'" pageName="'.site_url($mod.'/manage/delete/'.$id).'"> <i class="ki-duotone ki-trash fs-2"><span class="path1"></span><span class="path2"></span><span class="path3"></span><span class="path4"></span><span class="path5"></span></i> </a> </div> '; } } if($role != 'developer' && $role != 'administrator'){ $code = ' <a href="javascript:;" class="text-gray-800 text-uppercase text-hover-success mb-0 pop" pageTitle="Show Code" pagesize="modal-md" pageName="'.site_url($mod.'/manage/reveal_code/'.$id).'" data-bs-toggle="tooltip" data-bs-placement="top" title="Show Code"><i class="ki-duotone ki-eye fs-2 me-3"> <span class="path1"></span> <span class="path2"></span> <span class="path3"></span> </i>xxxxxxxx</a> '; } $item .= ' <tr> <td>'.$reg_date.'<br><span class="text-info">'.ucwords($fuel_type).'</span></td> <td> '.$code.' </td> <td> '.ucwords($order_type).' </td> <td> <span class="text-gray-600 text-hover-success mb-1">'.curr.number_format($price,2).'</span> </td> <td>'.$statz.'</td> <td> '.$all_btn.' </td> </tr> '; } } } if(empty($item)) { $resp['item'] = '<tr><td colspan="8"> <div class="text-center text-muted"> <br/><br/> <i class="ki-duotone ki-wallet fs-5x"> <span class="path1"></span> <span class="path2"></span> <span class="path3"></span> <span class="path4"></span> </i><br/><br/>No Voucher Returned </div></td></tr> '; } else { $resp['item'] = $item; } $more_record = $count - ($offset + $rec_limit); $resp['left'] = $more_record; if($count > ($offset + $rec_limit)) { // for load more records $resp['limit'] = $rec_limit; $resp['offset'] = $offset + $limit; } else { $resp['limit'] = 0; $resp['offset'] = 0; } echo json_encode($resp); die; } if($param1 == 'manage' || $param1 == 'statement') { // view for form data posting return view($mod.'_form', $data); } else { // view for main page $data['title'] = 'Voucher - '.app_name; $data['page_active'] = $mod; return view($mod, $data); } } public function pump($param1='', $param2='', $param3='') { // check session login if($this->session->get('fls_id') == ''){ $request_uri = uri_string(); $this->session->set('fls_redirect', $request_uri); return redirect()->to(site_url('auth')); } $mod = 'order/pump'; $log_id = $this->session->get('fls_id'); $role_id = $this->Crud->read_field('id', $log_id, 'user', 'role_id'); $role = strtolower($this->Crud->read_field('id', $role_id, 'access_role', 'name')); $role_c = $this->Crud->module($role_id, $mod, 'create'); $role_r = $this->Crud->module($role_id, $mod, 'read'); $role_u = $this->Crud->module($role_id, $mod, 'update'); $role_d = $this->Crud->module($role_id, $mod, 'delete'); if($role_r == 0){ return redirect()->to(site_url('dashboard')); } $data['log_id'] = $log_id; $data['role'] = $role; $data['role_c'] = $role_c; $table = 'pump'; $form_link = site_url($mod); if($param1){$form_link .= '/'.$param1;} if($param2){$form_link .= '/'.$param2.'/';} if($param3){$form_link .= $param3;} // pass parameters to view $data['param1'] = $param1; $data['param2'] = $param2; $data['param3'] = $param3; $data['form_link'] = $form_link; // manage record if($param1 == 'manage') { // prepare for delete if($param2 == 'delete') { if($param3) { $edit = $this->Crud->read_single('id', $param3, $table); //echo var_dump($edit); if(!empty($edit)) { foreach($edit as $e) { $data['d_id'] = $e->id; } } if($this->request->getMethod() == 'post'){ $del_id = $this->request->getVar('d_pump_id'); $code = $this->Crud->read_field('id', $del_id, 'pump', 'name'); $by = $this->Crud->read_field('id', $log_id, 'user', 'fullname'); $action = $by.' deleted pump ('.$code.')'; if($this->Crud->deletes('id', $del_id, $table) > 0) { ///// store activities $this->Crud->activity('pump', $del_id, $action); echo $this->Crud->msg('success', 'Pump Deleted'); echo '<script>location.reload(false);</script>'; } else { echo $this->Crud->msg('danger', 'Please try later'); } die; } } } else { // prepare for edit if($param2 == 'edit') { if($param3) { $edit = $this->Crud->read_single('id', $param3, $table); if(!empty($edit)) { foreach($edit as $e) { $data['e_id'] = $e->id; $data['e_merchant_id'] = $e->merchant_id; $data['e_name'] = $e->name; } } } } if($this->request->getMethod() == 'post'){ $pump_id = $this->request->getVar('pump_id'); $name = $this->request->getVar('name'); $merchant_id = $this->request->getVar('merchant_id'); $ins_data['name'] = $name; $ins_data['merchant_id'] = $merchant_id; // do create or update if($pump_id) { $upd_rec = $this->Crud->updates('id', $pump_id, $table, $ins_data); if($upd_rec > 0) { ///// store activities $by = $this->Crud->read_field('id', $log_id, 'user', 'fullname'); $code = $this->Crud->read_field('id', $pump_id, 'pump', 'name'); $action = $by.' updated Fuel Pump ('.$code.') Record'; $this->Crud->activity('pump', $pump_id, $action); echo $this->Crud->msg('success', 'Pump Updated'); echo '<script>location.reload(false);</script>'; } else { echo $this->Crud->msg('info', 'No Changes'); } die; } else { if($this->Crud->check2('name', $name, 'merchant_id', $merchant_id, $table) > 0) { echo $this->Crud->msg('warning', 'Record Already Exist'); } else { $ins_data['reg_date'] = date(fdate); $ins_rec = $this->Crud->create($table, $ins_data); if($ins_rec > 0) { echo $this->Crud->msg('success', 'Pump Created'); ///// store activities $by = $this->Crud->read_field('id', $log_id, 'user', 'fullname'); $code = $this->Crud->read_field('id', $ins_rec, 'pump', 'name'); $action = $by.' created Fuel Pump ('.$code.') Record'; $this->Crud->activity('pump', $ins_rec, $action); echo '<script>location.reload(false);</script>'; } else { echo $this->Crud->msg('danger', 'Please try later'); } } }die; } } } // record listing if($param1 == 'load') { $limit = $param2; $offset = $param3; $count = 0; $rec_limit = 25; $item = ''; if($limit == '') {$limit = $rec_limit;} if($offset == '') {$offset = 0;} if(!empty($this->request->getVar('start_date'))) { $start_date = $this->request->getVar('start_date'); } else { $start_date = ''; } if(!empty($this->request->getVar('merchant_id'))) { $merchant_id = $this->request->getVar('merchant_id'); } else { $merchant_id = ''; } if(!empty($this->request->getVar('search'))) { $search = $this->request->getVar('search'); } else { $search = ''; } if(!$log_id) { $item = '<div class="text-center text-muted">Session Timeout! - Please login again</div>'; } else { $query = $this->Crud->filter_pump($limit, $offset, $log_id, $merchant_id, $search); $all_rec = $this->Crud->filter_pump('', '', $log_id, $merchant_id, $search); if(!empty($all_rec)) { $count = count($all_rec); } else { $count = 0; } if(!empty($query)) { foreach($query as $q) { $id = $q->id; $name = $q->name; $merchant = $this->Crud->read_field('id', $q->merchant_id, 'user', 'company_name'); $all_btn = ' <div class="text-center"> <a href="javascript:;" class="text-primary pop" pageTitle="Manage '.$name.'" pageName="'.site_url($mod.'/manage/edit/'.$id).'" data-bs-toggle="tooltip" data-bs-placement="top" title="Edit"> <em class="bi bi-pen fs-2"></em> </a> <a href="javascript:;" class="text-danger pop" pageTitle="Delete '.$name.'" pageName="'.site_url($mod.'/manage/delete/'.$id).'" data-bs-toggle="tooltip" data-bs-placement="top" title="Delete"> <em class="bi bi-trash2 fs-2"></em> </a> </div> '; $item .= ' <tr> <td>'.ucwords($merchant).'</td> <td>'.ucwords($name).'</td> <td>'.$all_btn.'</td> </tr> '; } } } if(empty($item)) { $resp['item'] = '<tr><td colspan="8"> <div class="text-center text-muted"> <br/><br/><br/><br/> <i class="ki-duotone ki-financial-schedule fs-4x"> <span class="path1"></span> <span class="path2"></span> <span class="path3"></span> <span class="path4"></span> </i><br/><br/>No Fuel Pump Returned </div></td></tr> '; } else { $resp['item'] = $item; } $more_record = $count - ($offset + $rec_limit); $resp['left'] = $more_record; if($count > ($offset + $rec_limit)) { // for load more records $resp['limit'] = $rec_limit; $resp['offset'] = $offset + $limit; } else { $resp['limit'] = 0; $resp['offset'] = 0; } echo json_encode($resp); die; } if($param1 == 'manage') { // view for form data posting return view($mod.'_form', $data); } else { // view for main page $data['title'] = 'Fuel Pump - '.app_name; $data['page_active'] = $mod; return view($mod, $data); } } public function assignment($param1='', $param2='', $param3='') { // check session login if($this->session->get('fls_id') == ''){ $request_uri = uri_string(); $this->session->set('fls_redirect', $request_uri); return redirect()->to(site_url('auth')); } $mod = 'order/assignment'; $log_id = $this->session->get('fls_id'); $role_id = $this->Crud->read_field('id', $log_id, 'user', 'role_id'); $role = strtolower($this->Crud->read_field('id', $role_id, 'access_role', 'name')); $role_c = $this->Crud->module($role_id, $mod, 'create'); $role_r = $this->Crud->module($role_id, $mod, 'read'); $role_u = $this->Crud->module($role_id, $mod, 'update'); $role_d = $this->Crud->module($role_id, $mod, 'delete'); if($role_r == 0){ return redirect()->to(site_url('dashboard')); } $data['log_id'] = $log_id; $data['role'] = $role; $data['role_c'] = $role_c; $table = 'pump'; $form_link = site_url($mod); if($param1){$form_link .= '/'.$param1;} if($param2){$form_link .= '/'.$param2.'/';} if($param3){$form_link .= $param3;} // pass parameters to view $data['param1'] = $param1; $data['param2'] = $param2; $data['param3'] = $param3; $data['form_link'] = $form_link; // manage record if($param1 == 'manage') { // prepare for delete if($param2 == 'delete') { if($param3) { $edit = $this->Crud->read_single('id', $param3, $table); //echo var_dump($edit); if(!empty($edit)) { foreach($edit as $e) { $data['d_id'] = $e->id; } } if($this->request->getMethod() == 'post'){ $del_id = $this->request->getVar('d_pump_id'); $code = $this->Crud->read_field('id', $del_id, 'pump', 'name'); $by = $this->Crud->read_field('id', $log_id, 'user', 'fullname'); $action = $by.' deleted pump ('.$code.')'; if($this->Crud->deletes('id', $del_id, $table) > 0) { ///// store activities $this->Crud->activity('pump', $del_id, $action); echo $this->Crud->msg('success', 'Record Deleted'); echo '<script>location.reload(false);</script>'; } else { echo $this->Crud->msg('danger', 'Please try later'); } die; } } } else { // prepare for edit if($param2 == 'edit') { if($param3) { $edit = $this->Crud->read_single('id', $param3, $table); if(!empty($edit)) { foreach($edit as $e) { $data['e_id'] = $e->id; $data['e_merchant_id'] = $e->merchant_id; $data['e_attendant_id'] = $this->Crud->read_field2('pump_id', $e->id, 'current', 1, 'pump_assignment', 'attendant_id'); $data['e_name'] = $e->name; } } } } if($this->request->getMethod() == 'post'){ $pump_id = $this->request->getVar('pump_id'); $merchant_id = $this->request->getVar('merchant_id'); $attendant_id = $this->request->getVar('attendant_id'); $ins_data['attendant_id'] = $attendant_id; $ins_data['merchant_id'] = $merchant_id; $ins_data['pump_id'] = $pump_id; $ins_data['current'] = 1; $ins_data['reg_date'] = date(fdate); $cur = $this->Crud->read2('merchant_id', $merchant_id, 'pump_id', $pump_id, 'pump_assignment'); if(!empty($cur)){ foreach($cur as $c){ $this->Crud->updates('id', $c->id, 'pump_assignment', array('current'=>0)); } } $atz = $this->Crud->read2('attendant_id', $attendant_id, 'current', 1, 'pump_assignment'); if(!empty($atz)){ foreach($atz as $a){ $this->Crud->updates('id', $a->id, 'pump_assignment', array('current'=>0)); } } // do create or update if($pump_id) { $upd_rec = $this->Crud->create('pump_assignment', $ins_data); if($upd_rec > 0) { ///// store activities $by = $this->Crud->read_field('id', $log_id, 'user', 'fullname'); $pump = $this->Crud->read_field('id', $pump_id, 'pump', 'name'); $attendant = $this->Crud->read_field('id', $attendant_id, 'user', 'fullname'); $merchant = $this->Crud->read_field('id', $merchant_id, 'user', 'company_name'); $action = $by.' assigned ('.$pump.') to '.ucwords($merchant).' Fuel Attendant '.ucwords($attendant).''; $this->Crud->activity('pump_assignment', $upd_rec, $action); $content = $pump.' assigned to you'; $this->Crud->notify($log_id, $attendant_id, $content, 'Pump Assignment', $upd_rec); echo $this->Crud->msg('success', 'Pump Assigned Successfully'); echo '<script>location.reload(false);</script>'; } else { echo $this->Crud->msg('info', 'No Changes'); } die; } die; } } } // record listing if($param1 == 'load') { $limit = $param2; $offset = $param3; $count = 0; $rec_limit = 50; $item = ''; if($limit == '') {$limit = $rec_limit;} if($offset == '') {$offset = 0;} if(!empty($this->request->getVar('merchant_id'))) { $merchant_id = $this->request->getVar('merchant_id'); } else { $merchant_id = ''; } if(!$log_id) { $item = '<div class="text-center text-muted">Session Timeout! - Please login again</div>'; } else { $query = $this->Crud->read_single_order('merchant_id', $merchant_id, 'pump', 'name', 'asc', $limit, $offset); $all_rec = $this->Crud->read_single_order('merchant_id', $merchant_id, 'pump', 'name', 'asc', '', ''); if(!empty($all_rec)) { $count = count($all_rec); } else { $count = 0; } if(!empty($query)) { foreach($query as $q) { $id = $q->id; $name = $q->name; $attendant_id = $this->Crud->read_field2('pump_id', $id, 'current', 1, 'pump_assignment', 'attendant_id'); $date = $this->Crud->read_field2('pump_id', $id, 'current', 1, 'pump_assignment', 'reg_date'); $attendant = $this->Crud->read_field('id', $attendant_id, 'user', 'fullname'); if(empty($attendant_id)){ $attendant = 'Not Assigned'; $date = '-'; } $all_btn = ' <div class="text-end"> <a href="javascript:;" class="btn btn-success btn-icon pop" pageTitle="Assign Pump" pageName="'.site_url($mod.'/manage/edit/'.$id).'" data-bs-toggle="tooltip" data-bs-placement="top" title="Assign Pump"> <em class="bi bi-bezier2 fs-2"></em> </a> </div> '; $item .= ' <tr> <td>'.ucwords($name).'</td> <td>'.ucwords($attendant).'</td> <td>'.($date).'</td> <td>'.$all_btn.'</td> </tr> '; } } } if(empty($item)) { $resp['item'] = '<tr><td colspan="8"> <div class="text-center text-muted"> <br/><br/><br/><br/> <i class="ki-duotone ki-financial-schedule fs-4x"> <span class="path1"></span> <span class="path2"></span> <span class="path3"></span> <span class="path4"></span> </i><br/><br/>No Fuel Pump Returned </div></td></tr> '; } else { $resp['item'] = $item; } $more_record = $count - ($offset + $rec_limit); $resp['left'] = $more_record; if($count > ($offset + $rec_limit)) { // for load more records $resp['limit'] = $rec_limit; $resp['offset'] = $offset + $limit; } else { $resp['limit'] = 0; $resp['offset'] = 0; } echo json_encode($resp); die; } if($param1 == 'manage') { // view for form data posting return view($mod.'_form', $data); } else { // view for main page $data['title'] = 'Pump Assignment - '.app_name; $data['page_active'] = $mod; return view($mod, $data); } } public function tank($param1='', $param2='', $param3='') { // check session login if($this->session->get('fls_id') == ''){ $request_uri = uri_string(); $this->session->set('fls_redirect', $request_uri); return redirect()->to(site_url('auth')); } $mod = 'order/tank'; $log_id = $this->session->get('fls_id'); $role_id = $this->Crud->read_field('id', $log_id, 'user', 'role_id'); $role = strtolower($this->Crud->read_field('id', $role_id, 'access_role', 'name')); $role_c = $this->Crud->module($role_id, $mod, 'create'); $role_r = $this->Crud->module($role_id, $mod, 'read'); $role_u = $this->Crud->module($role_id, $mod, 'update'); $role_d = $this->Crud->module($role_id, $mod, 'delete'); if($role_r == 0){ return redirect()->to(site_url('dashboard')); } $data['log_id'] = $log_id; $data['role'] = $role; $data['role_c'] = $role_c; $table = 'tank'; $form_link = site_url($mod); if($param1){$form_link .= '/'.$param1;} if($param2){$form_link .= '/'.$param2.'/';} if($param3){$form_link .= $param3;} // pass parameters to view $data['param1'] = $param1; $data['param2'] = $param2; $data['param3'] = $param3; $data['form_link'] = $form_link; // manage record if($param1 == 'manage') { // prepare for delete if($param2 == 'delete') { if($param3) { $edit = $this->Crud->read_single('id', $param3, $table); //echo var_dump($edit); if(!empty($edit)) { foreach($edit as $e) { $data['d_id'] = $e->id; } } if($this->request->getMethod() == 'post'){ $del_id = $this->request->getVar('d_pump_id'); $code = $this->Crud->read_field('id', $del_id, 'tank', 'name'); $by = $this->Crud->read_field('id', $log_id, 'user', 'fullname'); $action = $by.' deleted tank ('.$code.')'; if($this->Crud->deletes('id', $del_id, $table) > 0) { ///// store activities $this->Crud->activity('tank', $del_id, $action); echo $this->Crud->msg('success', 'Record Deleted'); echo '<script>location.reload(false);</script>'; } else { echo $this->Crud->msg('danger', 'Please try later'); } die; } } } else { // prepare for edit if($param2 == 'edit') { if($param3) { $edit = $this->Crud->read_single('id', $param3, $table); if(!empty($edit)) { foreach($edit as $e) { $data['e_id'] = $e->id; $data['e_merchant_id'] = $e->merchant_id; $data['e_name'] = $e->name; $data['e_capacity'] = $e->capacity; } } } } if($this->request->getMethod() == 'post'){ $tank_id = $this->request->getVar('tank_id'); $name = $this->request->getVar('name'); $merchant_id = $this->request->getVar('merchant_id'); $capacity = $this->request->getVar('capacity'); $ins_data['name'] = $name; $ins_data['merchant_id'] = $merchant_id; $ins_data['capacity'] = $capacity; // do create or update if($tank_id) { $upd_rec = $this->Crud->updates('id', $tank_id, $table, $ins_data); if($upd_rec > 0) { ///// store activities $by = $this->Crud->read_field('id', $log_id, 'user', 'fullname'); $code = $this->Crud->read_field('id', $tank_id, 'tank', 'name'); $action = $by.' updated Fuel Tank ('.$code.') Record'; $this->Crud->activity('tank', $tank_id, $action); echo $this->Crud->msg('success', 'Tank Updated'); echo '<script>location.reload(false);</script>'; } else { echo $this->Crud->msg('info', 'No Changes'); } die; } else { if($this->Crud->check2('name', $name, 'merchant_id', $merchant_id, $table) > 0) { echo $this->Crud->msg('warning', 'Record Already Exist'); } else { $ins_data['reg_date'] = date(fdate); $ins_rec = $this->Crud->create($table, $ins_data); if($ins_rec > 0) { echo $this->Crud->msg('success', 'Tank Created'); ///// store activities $by = $this->Crud->read_field('id', $log_id, 'user', 'fullname'); $code = $this->Crud->read_field('id', $ins_rec, 'tank', 'name'); $action = $by.' created Fuel Tank ('.$code.') Record'; $this->Crud->activity('tank', $ins_rec, $action); echo '<script>location.reload(false);</script>'; } else { echo $this->Crud->msg('danger', 'Please try later'); } } }die; } } } // record listing if($param1 == 'load') { $limit = $param2; $offset = $param3; $count = 0; $rec_limit = 25; $item = ''; if($limit == '') {$limit = $rec_limit;} if($offset == '') {$offset = 0;} if(!empty($this->request->getVar('start_date'))) { $start_date = $this->request->getVar('start_date'); } else { $start_date = ''; } if(!empty($this->request->getVar('merchant_id'))) { $merchant_id = $this->request->getVar('merchant_id'); } else { $merchant_id = ''; } if(!empty($this->request->getVar('search'))) { $search = $this->request->getVar('search'); } else { $search = ''; } if(!$log_id) { $item = '<div class="text-center text-muted">Session Timeout! - Please login again</div>'; } else { $query = $this->Crud->filter_tank($limit, $offset, $log_id, $merchant_id, $search); $all_rec = $this->Crud->filter_tank('', '', $log_id, $merchant_id, $search); if(!empty($all_rec)) { $count = count($all_rec); } else { $count = 0; } if(!empty($query)) { foreach($query as $q) { $id = $q->id; $name = $q->name; $capacity = $q->capacity; $merchant = $this->Crud->read_field('id', $q->merchant_id, 'user', 'company_name'); $all_btn = ' <div class="text-center"> <a href="javascript:;" class="text-primary pop" pageTitle="Manage '.$name.'" pageName="'.site_url($mod.'/manage/edit/'.$id).'" data-bs-toggle="tooltip" data-bs-placement="top" title="Edit"> <em class="bi bi-pen fs-2"></em> </a> <a href="javascript:;" class="text-danger pop" pageTitle="Delete '.$name.'" pageName="'.site_url($mod.'/manage/delete/'.$id).'" data-bs-toggle="tooltip" data-bs-placement="top" title="Delete"> <em class="bi bi-trash2 fs-2"></em> </a> </div> '; $item .= ' <tr> <td>'.ucwords($merchant).'</td> <td>'.ucwords($name).'</td> <td>'.number_format($capacity).'</td> <td>'.$all_btn.'</td> </tr> '; } } } if(empty($item)) { $resp['item'] = '<tr><td colspan="8"> <div class="text-center text-muted"> <br/><br/><br/><br/> <i class="ki-duotone ki-financial-schedule fs-4x"> <span class="path1"></span> <span class="path2"></span> <span class="path3"></span> <span class="path4"></span> </i><br/><br/>No Fuel Tank Returned </div></td></tr> '; } else { $resp['item'] = $item; } $more_record = $count - ($offset + $rec_limit); $resp['left'] = $more_record; if($count > ($offset + $rec_limit)) { // for load more records $resp['limit'] = $rec_limit; $resp['offset'] = $offset + $limit; } else { $resp['limit'] = 0; $resp['offset'] = 0; } echo json_encode($resp); die; } if($param1 == 'manage') { // view for form data posting return view($mod.'_form', $data); } else { // view for main page $data['title'] = 'Fuel Tank - '.app_name; $data['page_active'] = $mod; return view($mod, $data); } } public function stock($param1='', $param2='', $param3='') { // check session login if($this->session->get('fls_id') == ''){ $request_uri = uri_string(); $this->session->set('fls_redirect', $request_uri); return redirect()->to(site_url('auth')); } $mod = 'order/stock'; $log_id = $this->session->get('fls_id'); $role_id = $this->Crud->read_field('id', $log_id, 'user', 'role_id'); $role = strtolower($this->Crud->read_field('id', $role_id, 'access_role', 'name')); $role_c = $this->Crud->module($role_id, $mod, 'create'); $role_r = $this->Crud->module($role_id, $mod, 'read'); $role_u = $this->Crud->module($role_id, $mod, 'update'); $role_d = $this->Crud->module($role_id, $mod, 'delete'); if($role_r == 0){ return redirect()->to(site_url('dashboard')); } $data['log_id'] = $log_id; $data['role'] = $role; $data['role_c'] = $role_c; $table = 'stock'; $form_link = site_url($mod); if($param1){$form_link .= '/'.$param1;} if($param2){$form_link .= '/'.$param2.'/';} if($param3){$form_link .= $param3;} // pass parameters to view $data['param1'] = $param1; $data['param2'] = $param2; $data['param3'] = $param3; $data['form_link'] = $form_link; // manage record if($param1 == 'manage') { // prepare for delete if($param2 == 'delete') { if($param3) { $edit = $this->Crud->read_single('id', $param3, $table); //echo var_dump($edit); if(!empty($edit)) { foreach($edit as $e) { $data['d_id'] = $e->id; } } if($this->request->getMethod() == 'post'){ $del_id = $this->request->getVar('d_pump_id'); $code = $this->Crud->read_field('id', $del_id, 'pump', 'name'); $by = $this->Crud->read_field('id', $log_id, 'user', 'fullname'); $action = $by.' deleted pump ('.$code.')'; if($this->Crud->deletes('id', $del_id, $table) > 0) { ///// store activities $this->Crud->activity('pump', $del_id, $action); echo $this->Crud->msg('success', 'Record Deleted'); echo '<script>location.reload(false);</script>'; } else { echo $this->Crud->msg('danger', 'Please try later'); } die; } } } else { // prepare for edit if($param2 == 'edit') { if($param3) { $edit = $this->Crud->read_single('id', $param3, $table); if(!empty($edit)) { foreach($edit as $e) { $data['e_id'] = $e->id; $data['e_merchant_id'] = $e->merchant_id; $data['e_tank_id'] = $e->tank_id; $data['e_amount'] = $e->amount; $data['e_type'] = $e->type; $data['e_cur_amount'] = $e->cur_amount; $data['e_prev_amount'] = $e->prev_amount; } } } } if($this->request->getMethod() == 'post'){ $stock_id = $this->request->getVar('stock_id'); $amount = $this->request->getVar('amount'); $merchant_id = $this->request->getVar('merchant_id'); $tank_id = $this->request->getVar('tank_id'); $type = $this->request->getVar('type'); $ins_data['amount'] = $amount; $ins_data['type'] = $type; $ins_data['merchant_id'] = $merchant_id; $ins_data['tank_id'] = $tank_id; $cur_amount = $this->Crud->read_field2_order('merchant_id', $merchant_id, 'tank_id', $tank_id, 'stock', 'id', 'asc', 'cur_amount'); if(empty($cur_amount)){ $ins_data['prev_amount'] = 0; if($type == 'sales'){ echo $this->Crud->msg('danger', 'Fuel Tank is Empty, you cannot deduct from it.'); die; } $ins_data['cur_amount'] = $amount; $ro = 'added'; } else { $ins_data['prev_amount'] = $cur_amount; if($type == 'sales'){ $amount = (float)$cur_amount - (float)$amount; $ro = 'deducted'; } if($type == 'intake'){ $amount += (float)$cur_amount; $ro = 'added'; } $ins_data['cur_amount'] = $amount; } $ins_data['reg_date'] = date(fdate); $ins_rec = $this->Crud->create($table, $ins_data); if($ins_rec > 0) { echo $this->Crud->msg('success', 'Fuel Stock Updated'); ///// store activities $by = $this->Crud->read_field('id', $log_id, 'user', 'fullname'); $code = $this->Crud->read_field('id', $ins_rec, 'tank', 'name'); $action = $by.' '.$ro.' Fuel Stock for ('.$code.')'; $this->Crud->activity('stock', $ins_rec, $action); echo '<script>location.reload(false);</script>'; } else { echo $this->Crud->msg('danger', 'Please try later'); } die; } } } if($param1 == 'get_tank'){ $merchantId = $this->request->getPost('merchant_id'); // Get merchant_id from AJAX request // Validate merchant_id presence if (!$merchantId) { echo json_encode([ 'status' => 'error', 'message' => 'Merchant ID is required.' ]); return; // End the execution } // Example of using a CRUD model to fetch tanks by merchant_id $tanks = $this->Crud->read_single('merchant_id', $merchantId, 'tank'); // Adjust this method based on your CRUD implementation // Check if tanks were found if (!empty($tanks)) { $formattedTanks = []; foreach ($tanks as $tank) { $formattedTanks[] = [ 'id' => $tank->id, // Assuming 'id' is the primary key 'name' => $tank->name, // Assuming 'name' is the tank name 'capacity' => $tank->capacity // Assuming 'capacity' is the tank's capacity ]; } echo json_encode([ 'status' => 'success', 'tanks' => $formattedTanks ]); } else { echo json_encode([ 'status' => 'error', 'message' => 'No tanks found for the selected merchant.' ]); } return; // End the execution } // record listing if($param1 == 'load') { $limit = $param2; $offset = $param3; $count = 0; $rec_limit = 60; $item = ''; if($limit == '') {$limit = $rec_limit;} if($offset == '') {$offset = 0;} if(!empty($this->request->getVar('start_date'))) { $start_date = $this->request->getVar('start_date'); } else { $start_date = ''; } if(!empty($this->request->getVar('end_date'))) { $end_date = $this->request->getVar('end_date'); } else { $end_date = ''; } $search = $this->request->getVar('search'); $type = $this->request->getVar('type'); if(!$log_id) { $item = '<div class="text-center text-muted">Session Timeout! - Please login again</div>'; } else { $query = $this->Crud->filter_stock($limit, $offset, $log_id, $type, $search, $start_date, $end_date); $all_rec = $this->Crud->filter_stock('', '', $log_id, $type, $search, $start_date, $end_date); if(!empty($all_rec)) { $count = count($all_rec); } else { $count = 0; } $curr = '₦'; $credit = 0;$debit = 0; if(!empty($query)) { foreach($query as $q) { $id = $q->id; $merchant = $this->Crud->read_field('id', $q->merchant_id, 'user', 'company_name'); $type = $q->type; $tank = $this->Crud->read_field('id', $q->tank_id, 'tank', 'name'); $amount = number_format((float)$q->amount, 2); $prev_amount = number_format((float)$q->prev_amount, 2); $cur_amount = number_format((float)$q->cur_amount, 2); $reg_date = date('M d, Y h:i A', strtotime($q->reg_date)); if($q->type == 'intake'){ $typ = '<div class="badge badge-light-primary fs-7">NEW INTAKE</div>'; $credit += (float)$q->amount; } if($q->type == 'sales'){ $typ = '<div class="badge badge-light-danger fs-7">FUEL SOLD</div>'; $debit += (float)$q->amount; } $item .= ' <tr> <td>'.$reg_date.'</td> <td> '.ucwords($merchant).' </td> <td> '.ucwords($tank).' </td> <td> '.$typ.' </td> <td> <a href="javascript:;" class="text-gray-600 text-hover-success mb-1">'.($amount).' LTR</a> </td> <td> <a href="javascript:;" class="text-gray-600 text-hover-success mb-1">'.($prev_amount).' LTR</a> </td> <td> <a href="javascript:;" class="text-gray-600 text-hover-success mb-1">'.($cur_amount).' LTR</a> </td> <td> <div class="d-flex justify-content-end flex-shrink-0"> <a href="javascript:;" class="pop btn btn-icon btn-success btn-active-color-light btn-sm me-2" pageTitle="Edit Stock" pagesize="modal-md" data-bs-toggle="tooltip" data-bs-placement="top" title="Edit Stock" pageName="'.site_url($mod.'/manage/edit/'.$id).'"> <i class="ki-duotone ki-pencil fs-2"><span class="path1"></span><span class="path2"></span></i> </a> </div> </td> </tr> '; } } } $balance = $credit - $debit; if(empty($item)) { $resp['item'] = '<tr><td colspan="8"> <div class="text-center text-muted"> <br/><br/><br/><br/> <i class="ki-duotone ki-wallet fs-4x"> <span class="path1"></span> <span class="path2"></span> <span class="path3"></span> <span class="path4"></span> </i><br/><br/>No Stock Management Returned </div></td></tr> '; } else { $resp['item'] = $item; } $more_record = $count - ($offset + $rec_limit); $resp['left'] = $more_record; $resp['credit'] = number_format($credit, 2).' LTR'; $resp['debit'] = number_format($debit, 2).' LTR'; $resp['balance'] = number_format($balance, 2).' LTR'; if($count > ($offset + $rec_limit)) { // for load more records $resp['limit'] = $rec_limit; $resp['offset'] = $offset + $limit; } else { $resp['limit'] = 0; $resp['offset'] = 0; } echo json_encode($resp); die; } if($param1 == 'manage') { // view for form data posting return view($mod.'_form', $data); } else { // view for main page $data['title'] = 'Stock - '.app_name; $data['page_active'] = $mod; return view($mod, $data); } } public function reserve($param1='', $param2='', $param3='') { // check session login if($this->session->get('fls_id') == ''){ $request_uri = uri_string(); $this->session->set('fls_redirect', $request_uri); return redirect()->to(site_url('auth')); } $mod = 'order/reserve'; $data['fuel_price'] = $this->Crud->read_field('current', 1, 'price_change', 'price'); $log_id = $this->session->get('fls_id'); $role_id = $this->Crud->read_field('id', $log_id, 'user', 'role_id'); $role = strtolower($this->Crud->read_field('id', $role_id, 'access_role', 'name')); $role_c = $this->Crud->module($role_id, $mod, 'create'); $role_r = $this->Crud->module($role_id, $mod, 'read'); $role_u = $this->Crud->module($role_id, $mod, 'update'); $role_d = $this->Crud->module($role_id, $mod, 'delete'); if($role_r == 0){ return redirect()->to(site_url('dashboard')); } $data['log_id'] = $log_id; $data['role'] = $role; $data['role_c'] = $role_c; $table = 'reservation'; $form_link = site_url($mod); if($param1){$form_link .= '/'.$param1;} if($param2){$form_link .= '/'.$param2.'/';} if($param3){$form_link .= $param3;} // pass parameters to view $data['param1'] = $param1; $data['param2'] = $param2; $data['param3'] = $param3; $data['form_link'] = $form_link; // manage record if($param1 == 'manage') { // prepare for delete if($param2 == 'delete') { if($param3) { $edit = $this->Crud->read_single('id', $param3, $table); //echo var_dump($edit); if(!empty($edit)) { foreach($edit as $e) { $data['d_id'] = $e->id; } } if($this->request->getMethod() == 'post'){ $del_id = $this->request->getVar('d_pump_id'); $code = $this->Crud->read_field('id', $del_id, 'pump', 'name'); $by = $this->Crud->read_field('id', $log_id, 'user', 'fullname'); $action = $by.' deleted pump ('.$code.')'; if($this->Crud->deletes('id', $del_id, $table) > 0) { ///// store activities $this->Crud->activity('pump', $del_id, $action); echo $this->Crud->msg('success', 'Record Deleted'); echo '<script>location.reload(false);</script>'; } else { echo $this->Crud->msg('danger', 'Please try later'); } die; } } } else { // prepare for edit if($param2 == 'reserve') { if($param3) { $edit = $this->Crud->read_single('id', $param3, $table); if(!empty($edit)) { foreach($edit as $e) { $data['e_id'] = $e->id; } } } } if($this->request->getMethod() == 'post'){ $merchant_id = $this->request->getVar('merchant_id'); $liter = $this->request->getVar('liter'); $price = $this->request->getVar('price'); $code = $this->request->getPost('transaction_pin'); $agree = $this->request->getPost('toc'); $Error = ''; if(empty($agree)) {$Error .= 'You must agree to Terms and Conditions';} if($Error) { echo $this->Crud->msg('danger', $Error); die; } $wallets = $this->Crud->read_single('user_id', $log_id, 'wallet'); $wallet = 0; if(!empty($wallets)){ foreach($wallets as $wall){ if($wall->type == 'credit'){ $wallet += (float)$wall->amount; } if($wall->type == 'debit'){ $wallet -= (float)$wall->amount; } } } $my_code = $this->Crud->read_field('id', $log_id, 'user', 'pin'); if(empty($my_code)){ echo $this->Crud->msg('warning', 'You have not set your Pin. <br>Do so before Purchasing your Fuel Voucher'); die; } if($my_code != $code){ echo $this->Crud->msg('danger', 'Incorrect Pin Code. Try Again'); die; } $fuel_bal = 0; $query = $this->Crud->read_single('merchant_id', $merchant_id, 'stock'); if(!empty($query)) { foreach($query as $q) { $id = $q->id; if($q->type == 'intake'){ $fuel_bal += (float)$q->amount; } if($q->type == 'sales'){ $fuel_bal -= (float)$q->amount; } } } if($fuel_bal < 5000){ echo $this->Crud->msg('danger', 'Fuel not Available'); die; } if($fuel_bal < $liter){ echo $this->Crud->msg('danger', 'Insufficient Fuel'); die; } $voucher_id = 0; if($wallet < $price){ echo $this->Crud->msg('danger', 'Insufficient Balance in Wallet. Try Again'); die; } else{ $codez = $this->Crud->generateRandomCode(); // Continue generating a new code if it already exists in the database while ($this->Crud->check('code', $codez, 'voucher') > 0) { $codez = $this->Crud->generateRandomCode(); } $in_data['user_id'] = $log_id; $in_data['code'] = $codez; $in_data['price'] = $price; $in_data['reg_date'] = date(fdate); $linkz = site_url('dashboard/voucher/'.$codez); $qr = $this->Crud->qrcode($linkz); $path = $qr['file']; $in_data['qrcode'] = $path; $inr = $this->Crud->create('voucher', $in_data); if($inr > 0){ $voucher_id = $inr; //debit Account $v_ins['user_id'] = $log_id; $v_ins['type'] = 'debit'; $v_ins['amount'] = $price; $v_ins['item'] = 'voucher'; $v_ins['remark'] = 'Purchase of Fuel Voucher'; $v_ins['reg_date'] = date(fdate); $v_id = $this->Crud->create('wallet', $v_ins); ///// store activities $user = $this->Crud->read_field('id', $log_id, 'user', 'fullname'); $merchant = $this->Crud->read_field('id', $merchant_id, 'user', 'company_name'); $action = $user.' Reserved '.number_format($liter).' of Fuel with '.ucwords($merchant); $this->Crud->activity('voucher', $inr, $action); $content = 'Debit of ₦'.number_format($price,2).' from wallet for the Purchase of Fuel Voucher'; $this->Crud->notify(0, $log_id, $content, 'wallet Debited', $v_id); $qrcode = site_url($path); echo $this->Crud->msg('success', 'Fuel Voucher Created Successfully'); echo '<script>$("#confirm_resp").hide(500);$("#success_resp").show(500); $("#amount_resp").html("Voucher of '.curr.number_format($price, 2).'");$("#codez").html("'.$codez.'"); $("#qrcode").html(\'<img alt="QR Code" id="qrcode_img" src="' . $qrcode . '" />\'); $("#codezz").val("'.$codez.'"); </script>'; } } if($voucher_id <= 0){ echo $this->Crud->msg('danger', 'Error Creating Voucher. Try again Later'); die; } $ins_data['liter'] = $liter; $ins_data['price'] = $price; $ins_data['merchant_id'] = $merchant_id; $ins_data['voucher_id'] = $voucher_id; $ins_data['user_id'] = $log_id; $ins_data['reg_date'] = date(fdate); // Calculate expiry date (3 days from now) $expiryDate = date(fdate, strtotime('+3 days')); $ins_data['expire_date'] = $expiryDate; $ins_rec = $this->Crud->create($table, $ins_data); if($ins_rec > 0) { $content = 'A fuel reservation has been placed by a customer. Details are as follows: Customer Name: ' . ucwords($user) . ', Liters Reserved: ' . number_format($liter, 2) . ' liters. Please process the reservation promptly. Thank you!'; $this->Crud->notify($log_id, $merchant_id, $content, 'Fuel Reservation', $ins_rec); echo $this->Crud->msg('success', 'Fuel Reserved Successfully'); ///// store activities $by = $this->Crud->read_field('id', $log_id, 'user', 'fullname'); $code = $this->Crud->read_field('id', $ins_rec, 'user', 'company_name'); $action = $by.' Reserved '.$liter.' LTR of Fuel at ('.$code.')'; $this->Crud->activity('reservation', $ins_rec, $action); echo '<script>location.reload(false);</script>'; } else { echo $this->Crud->msg('danger', 'Please try later'); } die; } } } if($param1 == 'get_tank'){ $merchantId = $this->request->getPost('merchant_id'); // Get merchant_id from AJAX request // Validate merchant_id presence if (!$merchantId) { echo json_encode([ 'status' => 'error', 'message' => 'Merchant ID is required.' ]); return; // End the execution } // Example of using a CRUD model to fetch tanks by merchant_id $tanks = $this->Crud->read_single('merchant_id', $merchantId, 'tank'); // Adjust this method based on your CRUD implementation // Check if tanks were found if (!empty($tanks)) { $formattedTanks = []; foreach ($tanks as $tank) { $formattedTanks[] = [ 'id' => $tank->id, // Assuming 'id' is the primary key 'name' => $tank->name, // Assuming 'name' is the tank name 'capacity' => $tank->capacity // Assuming 'capacity' is the tank's capacity ]; } echo json_encode([ 'status' => 'success', 'tanks' => $formattedTanks ]); } else { echo json_encode([ 'status' => 'error', 'message' => 'No tanks found for the selected merchant.' ]); } return; // End the execution } if($param1 == 'load') { $limit = $param2; $offset = $param3; $rec_limit = 90; $hload_item = ''; $gload_item = ''; if(empty($limit)) {$limit = $rec_limit;} if(empty($offset)) {$offset = 0;} if(!empty($this->request->getPost('state_id'))) { $state_id = $this->request->getPost('state_id'); } else { $state_id = ''; } if(!empty($this->request->getPost('lga_id'))) { $lga_id = $this->request->getPost('lga_id'); } else { $lga_id = ''; } $search = $this->request->getPost('search'); //echo $status; $log_id = $this->session->get('fls_id'); if(!$log_id) { $hload_item = '<div class="text-center text-muted">Session Timeout! - Please login again</div>'; $gload_item = '<div class="text-center text-muted">Session Timeout! - Please login again</div>'; } else { $all_rec = $this->Crud->filter_merchant('', '', $log_id, $state_id, 1, 1, $search, $lga_id); if(!empty($all_rec)) { $counts = count($all_rec); } else { $counts = 0; } $query = $this->Crud->filter_merchant($limit, $offset, $log_id, $state_id, 1, 1, $search, $lga_id); $data['count'] = $counts; if(!empty($query)) { foreach($query as $q) { $id = $q->id; $fullname = $q->fullname; $company_name = $q->company_name; $email = $q->email; $phone = $q->phone; $lat = $q->lat; $lng = $q->lng; $address = $q->address; $state = $this->Crud->read_field('id', $q->state_id, 'state', 'name'); $country = $this->Crud->read_field('id', $q->country_id, 'country', 'name'); $city = $this->Crud->read_field('id', $q->lga_id, 'city', 'name'); $img = $q->logo; if(empty($img)){ $img = 'assets/media/svg/avatars/blank.svg'; } $merchant_status = $q->merchant_status; $activate = $q->activate; $u_role = $this->Crud->read_field('id', $q->role_id, 'access_role', 'name'); $reg_date = date('M d, Y h:iA', strtotime($q->reg_date)); $hload_item .= ' <div class="col-md-4 col-xxl-3"> <!--begin::Card--> <div class="card "> <!--begin::Card body--> <div class="card-body d-flex flex-center flex-column pt-12 p-9"> <div class="symbol symbol-65px symbol-circle mb-5"> <img src="'.site_url($img).'" alt="image" /> <div class="bg-success position-absolute border border-4 border-body h-15px w-15px rounded-circle translate-middle start-100 top-100 ms-n3 mt-n3"></div> </div> <!--begin::Name--> <a href="javascript:;" class="fs-4 text-gray-800 text-hover-primary fw-bold mb-0">'.ucwords($company_name).'</a> <!--end::Name--> <!--begin::Position--> <div class="fw-semibold text-gray-500 mb-6">'.ucwords($address.' '.$city.' '.$state).'</div> <!--end::Position--> <!--begin::Info--> <div class="d-flex flex-center flex-wrap mt-3"> <a href="javascript:;" class="pop btn btn-success btn-active-color-light btn-sm me-2 my-2 pop" pageTitle=" Reserve Fuel " pagesize="modal-md" pageName="'.site_url($mod.'/manage/reserve/'.$id).'"> <i class="ki-duotone ki-thermometer fs-2"><span class="path1"></span><span class="path2"></span></i> Reserve Fuel </a> <a class="btn btn-danger btn-active-color-light btn-sm me-2 my-2" href="https://www.google.com/maps?q='.$lat.','.$lng.'" target="_blank"> <i class="ki-duotone ki-geolocation fs-2"><span class="path1"></span><span class="path2"></span></i> View on Map </a> </div> <!--end::Info--> </div> <!--end::Card body--> </div> <!--end::Card--> </div> '; $gload_item .= ' <tr> <td> <!--begin::User--> <div class="d-flex align-items-center"> <!--begin::Wrapper--> <div class="me-5 position-relative"> <!--begin::Avatar--> <div class="symbol symbol-35px symbol-circle"> <span class="symbol-label bg-light-info text-info fw-semibold"> A </span> </div> <!--end::Avatar--> <!--begin::Online--> <div class="bg-success position-absolute border border-4 border-body h-15px w-15px rounded-circle translate-middle start-100 top-100 ms-n1 mt-n1"> </div> <!--end::Online--> </div> <!--end::Wrapper--> <!--begin::Info--> <div class="d-flex flex-column justify-content-center"> <a href="#" class="mb-1 text-gray-800 text-hover-primary">Robert Doe</a> <div class="fw-semibold fs-6 text-gray-500"> robert@benko.com</div> </div> <!--end::Info--> </div> <!--end::User--> </td> <td>Dec 20, 2024</td> <td>$764.00</td> <td> <span class="badge badge-light-warning fw-bold px-4 py-3"> Pending </span> </td> <td class="text-end"> <a href="#" class="btn btn-light btn-sm">View</a> </td> </tr> '; } } } if(empty($gload_item)) { $resp['gload_item'] = ' <tr><td colspan="8"><div class="text-center text-muted"> <br/><br/><br/><br/> <i class="ki-duotone ki-profile-user" style="font-size:150px;"> <span class="path1"></span> <span class="path2"></span> <span class="path3"></span> <span class="path4"></span> </i><br/><br/>No Merchant Returned </div></td></tr> '; } else { $resp['gload_item'] = $gload_item; } if(empty($hload_item)) { $resp['hload_item'] = ' <div class="text-center col text-muted"> <br/><br/><br/><br/> <i class="ki-duotone ki-profile-user" style="font-size:150px;"> <span class="path1"></span> <span class="path2"></span> <span class="path3"></span> <span class="path4"></span> </i><br/><br/>No Merchant Returned </div> '; } else { $resp['hload_item'] = $hload_item; } $resp['count'] = $counts.' Items Found'; $more_record = $counts - ($offset + $rec_limit); $resp['left'] = $more_record; if($counts > ($offset + $rec_limit)) { // for load more records $resp['limit'] = $rec_limit; $resp['offset'] = $offset + $limit; } else { $resp['limit'] = 0; $resp['offset'] = 0; } echo json_encode($resp); die; } if($param1 == 'manage') { // view for form data posting return view($mod.'_form', $data); } else { // view for main page $data['title'] = 'Reserve Fuel - '.app_name; $data['page_active'] = $mod; return view($mod, $data); } } public function station($param1='', $param2='', $param3='') { // check session login if($this->session->get('fls_id') == ''){ $request_uri = uri_string(); $this->session->set('fls_redirect', $request_uri); return redirect()->to(site_url('auth')); } $mod = 'order/station'; $data['fuel_price'] = $this->Crud->read_field('current', 1, 'price_change', 'price'); $log_id = $this->session->get('fls_id'); $role_id = $this->Crud->read_field('id', $log_id, 'user', 'role_id'); $role = strtolower($this->Crud->read_field('id', $role_id, 'access_role', 'name')); $role_c = $this->Crud->module($role_id, $mod, 'create'); $role_r = $this->Crud->module($role_id, $mod, 'read'); $role_u = $this->Crud->module($role_id, $mod, 'update'); $role_d = $this->Crud->module($role_id, $mod, 'delete'); if($role_r == 0){ return redirect()->to(site_url('dashboard')); } $data['log_id'] = $log_id; $data['role'] = $role; $data['role_c'] = $role_c; $table = 'reservation'; $form_link = site_url($mod); if($param1){$form_link .= '/'.$param1;} if($param2){$form_link .= '/'.$param2.'/';} if($param3){$form_link .= $param3;} // pass parameters to view $data['param1'] = $param1; $data['param2'] = $param2; $data['param3'] = $param3; $data['form_link'] = $form_link; // manage record if($param1 == 'manage') { // prepare for delete if($param2 == 'delete') { if($param3) { $edit = $this->Crud->read_single('id', $param3, $table); //echo var_dump($edit); if(!empty($edit)) { foreach($edit as $e) { $data['d_id'] = $e->id; } } if($this->request->getMethod() == 'post'){ $del_id = $this->request->getVar('d_pump_id'); $code = $this->Crud->read_field('id', $del_id, 'pump', 'name'); $by = $this->Crud->read_field('id', $log_id, 'user', 'fullname'); $action = $by.' deleted pump ('.$code.')'; if($this->Crud->deletes('id', $del_id, $table) > 0) { ///// store activities $this->Crud->activity('pump', $del_id, $action); echo $this->Crud->msg('success', 'Record Deleted'); echo '<script>location.reload(false);</script>'; } else { echo $this->Crud->msg('danger', 'Please try later'); } die; } } } else { // prepare for edit if($param2 == 'reserve') { if($param3) { $edit = $this->Crud->read_single('id', $param3, $table); if(!empty($edit)) { foreach($edit as $e) { $data['e_id'] = $e->id; } } } } if($this->request->getMethod() == 'post'){ $merchant_id = $this->request->getVar('merchant_id'); $liter = $this->request->getVar('liter'); $price = $this->request->getVar('price'); $code = $this->request->getPost('transaction_pin'); $agree = $this->request->getPost('toc'); $Error = ''; if(empty($agree)) {$Error .= 'You must agree to Terms and Conditions';} if($Error) { echo $this->Crud->msg('danger', $Error); die; } $wallets = $this->Crud->read_single('user_id', $log_id, 'wallet'); $wallet = 0; if(!empty($wallets)){ foreach($wallets as $wall){ if($wall->type == 'credit'){ $wallet += (float)$wall->amount; } if($wall->type == 'debit'){ $wallet -= (float)$wall->amount; } } } $my_code = $this->Crud->read_field('id', $log_id, 'user', 'pin'); if(empty($my_code)){ echo $this->Crud->msg('warning', 'You have not set your Pin. <br>Do so before Purchasing your Fuel Voucher'); die; } if($my_code != $code){ echo $this->Crud->msg('danger', 'Incorrect Pin Code. Try Again'); die; } $fuel_bal = 0; $query = $this->Crud->read_single('merchant_id', $merchant_id, 'stock'); if(!empty($query)) { foreach($query as $q) { $id = $q->id; if($q->type == 'intake'){ $fuel_bal += (float)$q->amount; } if($q->type == 'sales'){ $fuel_bal -= (float)$q->amount; } } } if($fuel_bal < 5000){ echo $this->Crud->msg('danger', 'Fuel not Available'); die; } if($fuel_bal < $liter){ echo $this->Crud->msg('danger', 'Insufficient Fuel'); die; } $voucher_id = 0; if($wallet < $price){ echo $this->Crud->msg('danger', 'Insufficient Balance in Wallet. Try Again'); die; } else{ $codez = $this->Crud->generateRandomCode(); // Continue generating a new code if it already exists in the database while ($this->Crud->check('code', $codez, 'voucher') > 0) { $codez = $this->Crud->generateRandomCode(); } $in_data['user_id'] = $log_id; $in_data['code'] = $codez; $in_data['price'] = $price; $in_data['reg_date'] = date(fdate); $linkz = site_url('dashboard/voucher/'.$codez); $qr = $this->Crud->qrcode($linkz); $path = $qr['file']; $in_data['qrcode'] = $path; $inr = $this->Crud->create('voucher', $in_data); if($inr > 0){ $voucher_id = $inr; //debit Account $v_ins['user_id'] = $log_id; $v_ins['type'] = 'debit'; $v_ins['amount'] = $price; $v_ins['item'] = 'voucher'; $v_ins['remark'] = 'Purchase of Fuel Voucher'; $v_ins['reg_date'] = date(fdate); $v_id = $this->Crud->create('wallet', $v_ins); ///// store activities $user = $this->Crud->read_field('id', $log_id, 'user', 'fullname'); $merchant = $this->Crud->read_field('id', $merchant_id, 'user', 'company_name'); $action = $user.' Reserved '.number_format($liter).' of Fuel with '.ucwords($merchant); $this->Crud->activity('voucher', $inr, $action); $content = 'Debit of ₦'.number_format($price,2).' from wallet for the Purchase of Fuel Voucher'; $this->Crud->notify(0, $log_id, $content, 'wallet Debited', $v_id); $qrcode = site_url($path); echo $this->Crud->msg('success', 'Fuel Voucher Created Successfully'); echo '<script>$("#confirm_resp").hide(500);$("#success_resp").show(500); $("#amount_resp").html("Voucher of '.curr.number_format($price, 2).'");$("#codez").html("'.$codez.'"); $("#qrcode").html(\'<img alt="QR Code" id="qrcode_img" src="' . $qrcode . '" />\'); $("#codezz").val("'.$codez.'"); </script>'; } } if($voucher_id <= 0){ echo $this->Crud->msg('danger', 'Error Creating Voucher. Try again Later'); die; } $ins_data['liter'] = $liter; $ins_data['price'] = $price; $ins_data['merchant_id'] = $merchant_id; $ins_data['voucher_id'] = $voucher_id; $ins_data['user_id'] = $log_id; $ins_data['reg_date'] = date(fdate); // Calculate expiry date (3 days from now) $expiryDate = date(fdate, strtotime('+3 days')); $ins_data['expire_date'] = $expiryDate; $ins_rec = $this->Crud->create($table, $ins_data); if($ins_rec > 0) { $content = 'A fuel reservation has been placed by a customer. Details are as follows: Customer Name: ' . ucwords($user) . ', Liters Reserved: ' . number_format($liter, 2) . ' liters. Please process the reservation promptly. Thank you!'; $this->Crud->notify($log_id, $merchant_id, $content, 'Fuel Reservation', $ins_rec); echo $this->Crud->msg('success', 'Fuel Reserved Successfully'); ///// store activities $by = $this->Crud->read_field('id', $log_id, 'user', 'fullname'); $code = $this->Crud->read_field('id', $ins_rec, 'user', 'company_name'); $action = $by.' Reserved '.$liter.' LTR of Fuel at ('.$code.')'; $this->Crud->activity('reservation', $ins_rec, $action); echo '<script>location.reload(false);</script>'; } else { echo $this->Crud->msg('danger', 'Please try later'); } die; } } } if($param1 == 'get_tank'){ $merchantId = $this->request->getPost('merchant_id'); // Get merchant_id from AJAX request // Validate merchant_id presence if (!$merchantId) { echo json_encode([ 'status' => 'error', 'message' => 'Merchant ID is required.' ]); return; // End the execution } // Example of using a CRUD model to fetch tanks by merchant_id $tanks = $this->Crud->read_single('merchant_id', $merchantId, 'tank'); // Adjust this method based on your CRUD implementation // Check if tanks were found if (!empty($tanks)) { $formattedTanks = []; foreach ($tanks as $tank) { $formattedTanks[] = [ 'id' => $tank->id, // Assuming 'id' is the primary key 'name' => $tank->name, // Assuming 'name' is the tank name 'capacity' => $tank->capacity // Assuming 'capacity' is the tank's capacity ]; } echo json_encode([ 'status' => 'success', 'tanks' => $formattedTanks ]); } else { echo json_encode([ 'status' => 'error', 'message' => 'No tanks found for the selected merchant.' ]); } return; // End the execution } if($param1 == 'load') { $limit = $param2; $offset = $param3; $rec_limit = 90; $hload_item = ''; $gload_item = ''; if(empty($limit)) {$limit = $rec_limit;} if(empty($offset)) {$offset = 0;} if(!empty($this->request->getPost('state_id'))) { $state_id = $this->request->getPost('state_id'); } else { $state_id = ''; } if(!empty($this->request->getPost('lga_id'))) { $lga_id = $this->request->getPost('lga_id'); } else { $lga_id = ''; } $search = $this->request->getPost('search'); //echo $status; $log_id = $this->session->get('fls_id'); if(!$log_id) { $hload_item = '<div class="text-center text-muted">Session Timeout! - Please login again</div>'; $gload_item = '<div class="text-center text-muted">Session Timeout! - Please login again</div>'; } else { $all_rec = $this->Crud->filter_merchant('', '', $log_id, $state_id, 1, 1, $search, $lga_id); if(!empty($all_rec)) { $counts = count($all_rec); } else { $counts = 0; } $query = $this->Crud->filter_merchant($limit, $offset, $log_id, $state_id, 1, 1, $search, $lga_id); $data['count'] = $counts; if(!empty($query)) { foreach($query as $q) { $id = $q->id; $fullname = $q->fullname; $company_name = $q->company_name; $email = $q->email; $phone = $q->phone; $lat = $q->lat; $lng = $q->lng; $address = $q->address; $user_no = $q->user_no; $state = $this->Crud->read_field('id', $q->state_id, 'state', 'name'); $country = $this->Crud->read_field('id', $q->country_id, 'country', 'name'); $city = $this->Crud->read_field('id', $q->lga_id, 'city', 'name'); $img = $q->logo; if(empty($img)){ $img = 'assets/media/svg/avatars/blank.svg'; } $merchant_status = $q->merchant_status; $activate = $q->activate; $u_role = $this->Crud->read_field('id', $q->role_id, 'access_role', 'name'); $reg_date = date('M d, Y h:iA', strtotime($q->reg_date)); $hload_item .= ' <div class="col-md-4 col-xxl-3"> <!--begin::Card--> <div class="card "> <!--begin::Card body--> <div class="card-body d-flex flex-center flex-column pt-12 p-9"> <div class="symbol symbol-65px symbol-circle mb-5"> <img src="'.site_url($img).'" alt="image" /> <div class="bg-success position-absolute border border-4 border-body h-15px w-15px rounded-circle translate-middle start-100 top-100 ms-n3 mt-n3"></div> </div> <!--begin::Name--> <a href="javascript:;" class="fs-3 text-gray-800 text-hover-success fw-bold mb-0">'.ucwords($company_name).'</a> <a href="javascript:;" class="small text-success fw-bold mb-0">'.ucwords($user_no).'</a> <!--end::Name--> <!--begin::Position--> <div class="fw-semibold text-gray-500 mb-6">'.ucwords($address.' '.$city.' '.$state).'</div> <!--end::Position--> <!--begin::Info--> <div class="d-flex flex-center flex-wrap mt-3"> <a class="btn btn-danger btn-active-color-light btn-sm me-2 my-2" href="https://www.google.com/maps?q='.$lat.','.$lng.'" target="_blank"> <i class="ki-duotone ki-geolocation fs-2"><span class="path1"></span><span class="path2"></span></i> View on Map </a> </div> <!--end::Info--> </div> <!--end::Card body--> </div> <!--end::Card--> </div> '; $gload_item .= ' <tr> <td> <!--begin::User--> <div class="d-flex align-items-center"> <!--begin::Wrapper--> <div class="me-5 position-relative"> <!--begin::Avatar--> <div class="symbol symbol-35px symbol-circle"> <span class="symbol-label bg-light-info text-info fw-semibold"> A </span> </div> <!--end::Avatar--> <!--begin::Online--> <div class="bg-success position-absolute border border-4 border-body h-15px w-15px rounded-circle translate-middle start-100 top-100 ms-n1 mt-n1"> </div> <!--end::Online--> </div> <!--end::Wrapper--> <!--begin::Info--> <div class="d-flex flex-column justify-content-center"> <a href="#" class="mb-1 text-gray-800 text-hover-primary">Robert Doe</a> <div class="fw-semibold fs-6 text-gray-500"> robert@benko.com</div> </div> <!--end::Info--> </div> <!--end::User--> </td> <td>Dec 20, 2024</td> <td>$764.00</td> <td> <span class="badge badge-light-warning fw-bold px-4 py-3"> Pending </span> </td> <td class="text-end"> <a href="#" class="btn btn-light btn-sm">View</a> </td> </tr> '; } } } if(empty($gload_item)) { $resp['gload_item'] = ' <tr><td colspan="8"><div class="text-center text-muted"> <br/><br/><br/><br/> <i class="ki-duotone ki-profile-user" style="font-size:150px;"> <span class="path1"></span> <span class="path2"></span> <span class="path3"></span> <span class="path4"></span> </i><br/><br/>No Merchant Returned </div></td></tr> '; } else { $resp['gload_item'] = $gload_item; } if(empty($hload_item)) { $resp['hload_item'] = ' <div class="text-center col text-muted"> <br/><br/><br/><br/> <i class="ki-duotone ki-profile-user" style="font-size:150px;"> <span class="path1"></span> <span class="path2"></span> <span class="path3"></span> <span class="path4"></span> </i><br/><br/>No Merchant Returned </div> '; } else { $resp['hload_item'] = $hload_item; } $resp['count'] = $counts.' Items Found'; $more_record = $counts - ($offset + $rec_limit); $resp['left'] = $more_record; if($counts > ($offset + $rec_limit)) { // for load more records $resp['limit'] = $rec_limit; $resp['offset'] = $offset + $limit; } else { $resp['limit'] = 0; $resp['offset'] = 0; } echo json_encode($resp); die; } if($param1 == 'manage') { // view for form data posting return view($mod.'_form', $data); } else { // view for main page $data['title'] = 'Find Station - '.app_name; $data['page_active'] = $mod; return view($mod, $data); } } public function reservation($param1='', $param2='', $param3='') { // check session login if($this->session->get('fls_id') == ''){ $request_uri = uri_string(); $this->session->set('fls_redirect', $request_uri); return redirect()->to(site_url('auth')); } $mod = 'order/reservation'; $log_id = $this->session->get('fls_id'); $role_id = $this->Crud->read_field('id', $log_id, 'user', 'role_id'); $role = strtolower($this->Crud->read_field('id', $role_id, 'access_role', 'name')); $role_c = $this->Crud->module($role_id, $mod, 'create'); $role_r = $this->Crud->module($role_id, $mod, 'read'); $role_u = $this->Crud->module($role_id, $mod, 'update'); $role_d = $this->Crud->module($role_id, $mod, 'delete'); if($role_r == 0){ return redirect()->to(site_url('dashboard')); } $data['log_id'] = $log_id; $data['role'] = $role; $data['role_c'] = $role_c; $table = 'reservation'; $form_link = site_url($mod); if($param1){$form_link .= '/'.$param1;} if($param2){$form_link .= '/'.$param2.'/';} if($param3){$form_link .= $param3;} // pass parameters to view $data['param1'] = $param1; $data['param2'] = $param2; $data['param3'] = $param3; $data['form_link'] = $form_link; // manage record if($param1 == 'manage') { // prepare for delete if($param2 == 'confirm') { if($param3) { $edit = $this->Crud->read_single('id', $param3, $table); //echo var_dump($edit); if(!empty($edit)) { foreach($edit as $e) { $data['e_id'] = $e->id; } } if($this->request->getMethod() == 'post'){ $reservation_id = $this->request->getVar('reservation_id'); $code = $this->request->getVar('code'); $voucher_id = $this->Crud->read_field('id', $reservation_id, 'reservation', 'voucher_id'); $user_id = $this->Crud->read_field('id', $reservation_id, 'reservation', 'user_id'); $merchant_id = $this->Crud->read_field('id', $reservation_id, 'reservation', 'merchant_id'); $expire_date = $this->Crud->read_field('id', $reservation_id, 'reservation', 'expire_date'); $liter = $this->Crud->read_field('id', $reservation_id, 'reservation', 'liter'); $price = $this->Crud->read_field('id', $reservation_id, 'reservation', 'price'); $voucher_code = $this->Crud->read_field('id', $voucher_id, 'voucher', 'code'); if(empty($voucher_id) || empty($voucher_code)){ echo $this->Crud->msg('danger', 'Voucher not Found'); die; } if($code != $voucher_code){ echo $this->Crud->msg('danger', 'Voucher not Match. Try Again'); die; } if (strtotime($expire_date) < time()) { echo $this->Crud->msg('danger', 'This reservation has expired.'); die; } if($this->Crud->updates('id', $reservation_id, $table, array('status'=>1)) > 0) { ///// store activities $by = $this->Crud->read_field('id', $log_id, 'user', 'fullname'); $code = $this->Crud->read_field('id', $user_id, 'user', 'fullname'); $action = $by.' confirmed Fuel Reervation Pickup for ('.$code.')'; $this->Crud->activity('reservation', $reservation_id, $action); $this->Crud->updates('id', $voucher_id, 'voucher', array('status'=>1, 'used_date'=>date(fdate))); $attendant_id = 0; $pump_id = 0; if($role == 'fuel attendant'){ $attendant_id = $log_id; $pump_id = $this->Crud->read_field2('attendant_id', $attendant_id, 'current', 1, 'pump_assignment', 'pump_id'); } $transactionFeePercentage = 1.25; // 1.25% fee $transactionFixedFee = 50; // ₦50 fixed fee $companyProfit = ($price * ($transactionFeePercentage / 100)) + $transactionFixedFee; // Calculate total profit $merchantAmount = $price - $companyProfit; // Calculate the remaining amount for the merchant //crebit Merchant Account $v_ins['user_id'] = $merchant_id; $v_ins['type'] = 'credit'; $v_ins['amount'] = $merchantAmount; $v_ins['item'] = 'voucher'; $v_ins['remark'] = 'Fuel Voucher Redeemed'; $v_ins['reg_date'] = date(fdate); $v_id = $this->Crud->create('wallet', $v_ins); // Credit Company Account (Profit) $c_ins['user_id'] = 1; // Replace with the company's account ID $c_ins['type'] = 'credit'; $c_ins['amount'] = $companyProfit; // The company's profit $c_ins['item'] = 'profit'; $c_ins['remark'] = 'Profit from Fuel Voucher Redemption'; $c_ins['reg_date'] = date(fdate); $c_id = $this->Crud->create('wallet', $c_ins); //Update tranzactionn table $or_ins['user_id'] = $user_id; $or_ins['state_id'] = $this->Crud->read_field('id', $merchant_id, 'user', 'state_id'); $or_ins['city_id'] = $this->Crud->read_field('id', $merchant_id, 'user', 'lga_id'); $or_ins['attendant_id'] = $attendant_id; $or_ins['pump_id'] = $pump_id; $or_ins['merchant_id'] = $merchant_id; $or_ins['amount'] = $price; $or_ins['litre'] = $liter; $or_ins['code'] = $voucher_code; $or_ins['reg_date'] = date(fdate); $v_id = $this->Crud->create('order', $or_ins); ///// store activities $user = $this->Crud->read_field('id', $log_id, 'user', 'fullname'); $action = 'Fuel Voucher ('.$voucher_code.') of ₦'.number_format($price,2).' has been Utilized'; $this->Crud->activity('voucher', $reservation_id, $action); $this->Crud->notify(0, $attendant_id, 'Fuel Voucher '.$voucher_code.' Redeemed', 'fuel voucher', $v_id); $this->Crud->notify(0, $user_id, 'Fuel Voucher '.$voucher_code.' Utilized', 'fuel voucher', $v_id); echo $this->Crud->msg('success', 'Fuel Reservation Picked Up Successfully'); echo '<script>location.reload(false);</script>'; } else { echo $this->Crud->msg('danger', 'Please try later'); } die; } } } else { // prepare for edit if($param2 == 'edit') { if($param3) { $edit = $this->Crud->read_single('id', $param3, $table); if(!empty($edit)) { foreach($edit as $e) { $data['e_id'] = $e->id; $data['e_merchant_id'] = $e->merchant_id; $data['e_name'] = $e->name; $data['e_capacity'] = $e->capacity; } } } } // prepare for edit if($param2 == 'view') { if($param3) { $edit = $this->Crud->read_single('id', $param3, $table); if(!empty($edit)) { foreach($edit as $e) { $data['e_id'] = $e->id; $data['e_merchant_id'] = $e->merchant_id; $data['e_liter'] = $e->liter; $data['e_price'] = $e->price; $data['e_voucher_id'] = $e->voucher_id; $data['e_expire_date'] = $e->expire_date; $data['e_reg_date'] = $e->reg_date; $data['e_user_id'] = $e->user_id; $data['e_customer'] = $this->Crud->read_field('id', $e->user_id, 'user', 'fullname'); $data['e_merchant'] = $this->Crud->read_field('id', $e->merchant_id, 'user', 'company_name'); if($e->status == 0){ $status = 'Not Picked Up'; } if($e->status == 1){ $status = 'Picked Up'; } if($e->status == 2){ $status = 'Expired'; } $data['e_status'] = $status; $data['e_voucher_code'] = $this->Crud->read_field('id', $e->voucher_id, 'voucher', 'code'); $data['e_qrcode'] = $this->Crud->read_field('id', $e->voucher_id, 'voucher', 'qrcode'); $data['e_used_date'] = $this->Crud->read_field('id', $e->voucher_id, 'voucher', 'used_date'); } } } } if($this->request->getMethod() == 'post'){ $tank_id = $this->request->getVar('tank_id'); $name = $this->request->getVar('name'); $merchant_id = $this->request->getVar('merchant_id'); $capacity = $this->request->getVar('capacity'); $ins_data['name'] = $name; $ins_data['merchant_id'] = $merchant_id; $ins_data['capacity'] = $capacity; // do create or update if($tank_id) { $upd_rec = $this->Crud->updates('id', $tank_id, $table, $ins_data); if($upd_rec > 0) { ///// store activities $by = $this->Crud->read_field('id', $log_id, 'user', 'fullname'); $code = $this->Crud->read_field('id', $tank_id, 'tank', 'name'); $action = $by.' updated Fuel Tank ('.$code.') Record'; $this->Crud->activity('tank', $tank_id, $action); echo $this->Crud->msg('success', 'Tank Updated'); echo '<script>location.reload(false);</script>'; } else { echo $this->Crud->msg('info', 'No Changes'); } die; } else { if($this->Crud->check2('name', $name, 'merchant_id', $merchant_id, $table) > 0) { echo $this->Crud->msg('warning', 'Record Already Exist'); } else { $ins_data['reg_date'] = date(fdate); $ins_rec = $this->Crud->create($table, $ins_data); if($ins_rec > 0) { echo $this->Crud->msg('success', 'Tank Created'); ///// store activities $by = $this->Crud->read_field('id', $log_id, 'user', 'fullname'); $code = $this->Crud->read_field('id', $ins_rec, 'tank', 'name'); $action = $by.' created Fuel Tank ('.$code.') Record'; $this->Crud->activity('tank', $ins_rec, $action); echo '<script>location.reload(false);</script>'; } else { echo $this->Crud->msg('danger', 'Please try later'); } } }die; } } } // record listing if($param1 == 'load') { $limit = $param2; $offset = $param3; $count = 0; $rec_limit = 50; $item = ''; if($limit == '') {$limit = $rec_limit;} if($offset == '') {$offset = 0;} if(!empty($this->request->getVar('start_date'))) { $start_date = $this->request->getVar('start_date'); } else { $start_date = ''; } if(!empty($this->request->getVar('end_date'))) { $end_date = $this->request->getVar('end_date'); } else { $end_date = ''; } if(!empty($this->request->getVar('merchant_id'))) { $merchant_id = $this->request->getVar('merchant_id'); } else { $merchant_id = ''; } if(!empty($this->request->getVar('search'))) { $search = $this->request->getVar('search'); } else { $search = ''; } if(!$log_id) { $item = '<div class="text-center text-muted">Session Timeout! - Please login again</div>'; } else { $query = $this->Crud->filter_reservation($limit, $offset, $log_id, $merchant_id, $search, $start_date, $end_date); $all_rec = $this->Crud->filter_reservation('', '', $log_id, $merchant_id, $search, $start_date, $end_date); if(!empty($all_rec)) { $count = count($all_rec); } else { $count = 0; } if(!empty($query)) { foreach($query as $q) { $id = $q->id; $merchant_id = $q->merchant_id; $liter = $q->liter; $price = $q->price; $voucher_id = $q->voucher_id; $reg_date = date('d F Y, h:iA', strtotime($q->reg_date)); $expire_date = date('d F Y, h:iA', strtotime($q->expire_date)); $merchant = $this->Crud->read_field('id', $q->merchant_id, 'user', 'company_name'); $user = $this->Crud->read_field('id', $q->user_id, 'user', 'fullname'); $cbtn = ''; if (strtotime($q->expire_date) < time() && $q->status == 0) { $this->Crud->updates('id', $q->id, 'reservation', array('status'=>2)); // Calculate the reversal amount $pricePerLiter = $price / $liter; // Calculate the price per liter $chargePerLiter = 20; // Additional charge per liter $reversalPricePerLiter = $pricePerLiter - $chargePerLiter; // Adjust the price per liter $reversalAmount = $reversalPricePerLiter * $liter; // Calculate the total reversal amount //debit Account $v_ins['user_id'] = $q->user_id; $v_ins['type'] = 'credit'; $v_ins['amount'] = $reversalAmount; $v_ins['item'] = 'reversal'; $v_ins['remark'] = 'Reversal of Fuel Reservation'; $v_ins['reg_date'] = date(fdate); $v_id = $this->Crud->create('wallet', $v_ins); $content = 'Credit of ₦'.number_format($reversalAmount,2).' to wallet for Reversal of Fuel Reservation '; $this->Crud->notify(0, $q->user_id, $content, 'wallet credited', $v_id); } if($role == 'developer' || $role == 'administrator' || $role == 'merchant' || $role == 'Fuel Attendant'){ if($q->status == 0){ $cbtn = ' <a href="javascript:;" class="btn btn-success me-2 pop" pageTitle="Confirm " pageName="'.site_url($mod.'/manage/confirm/'.$id).'" data-bs-toggle="tooltip" data-bs-placement="top" title="Confirm"> Confirm Pickup </a> '; } } $all_btn = ' <div class="text-center"> '.$cbtn.' <a href="javascript:;" class="btn btn-primary me-2 pop" pageTitle="View " pageName="'.site_url($mod.'/manage/view/'.$id).'" data-bs-toggle="tooltip" data-bs-placement="top" title="View"> View </a> </div> '; $status = '<label class="text-danger">Not Picked Up</label>'; if($q->status == 1){ $status = '<label class="text-primary">Picked Up</label>'; } if($q->status == 2){ $status = '<label class="text-warning">Expired</label>'; } $item .= ' <tr> <td>'.ucwords($reg_date).'</td> <td>'.ucwords($user).'</td> <td>'.ucwords($merchant).'</td> <td>'.number_format($liter,2).'</td> <td>'.$expire_date.'</td> <td>'.($status).'</td> <td>'.$all_btn.'</td> </tr> '; } } } if(empty($item)) { $resp['item'] = '<tr><td colspan="8"> <div class="text-center text-muted"> <br/><br/><br/><br/> <i class="ki-duotone ki-financial-schedule fs-4x"> <span class="path1"></span> <span class="path2"></span> <span class="path3"></span> <span class="path4"></span> </i><br/><br/>No Fuel Tank Returned </div></td></tr> '; } else { $resp['item'] = $item; } $more_record = $count - ($offset + $rec_limit); $resp['left'] = $more_record; if($count > ($offset + $rec_limit)) { // for load more records $resp['limit'] = $rec_limit; $resp['offset'] = $offset + $limit; } else { $resp['limit'] = 0; $resp['offset'] = 0; } echo json_encode($resp); die; } if($param1 == 'manage') { // view for form data posting return view($mod.'_form', $data); } else { // view for main page $data['title'] = 'Reservation History - '.app_name; $data['page_active'] = $mod; return view($mod, $data); } } }
Upload File
Create Folder