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: Wallets.php
<?php namespace App\Controllers; class Wallets extends BaseController { //Wallet 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 = 'wallets/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; $data['role_d'] = $role_d; $table = 'wallets'; $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'] = rtrim($form_link,'/'); /////// CHECK PAYMENT RESPONSE ////// $tx_ref = $this->request->getVar('tx_ref'); $transaction_id = $this->request->getVar('transaction_id'); $status = $this->request->getVar('status'); if ($tx_ref && $transaction_id && $status) { if ($status == 'successful') { // run order script echo '<script>setTimeout(function(){ fund(); }, 2000);</script>'; } } //////////////////////////////////// // 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 == 'withdraw'){ if($this->request->getMethod() == 'post'){ $user_id = $this->request->getVar('user_id'); $balance = $this->request->getVar('balance'); $withdraw_type = $this->request->getVar('withdraw_type'); $withdraw_amount = $this->request->getVar('withdraw_amount'); $threshold = $this->Crud->read_field('name', 'threshold', 'setting', 'value'); $balance = 0; $wallet = $this->Crud->read_single('user_id', $user_id, 'wallet'); if(!empty($wallet)){ foreach($wallet as $po){ if($po->type == 'credit'){ $balance += (float)$po->amount; } if($po->type == 'debit'){ $balance -= (float)$po->amount; } } } if($balance <= 0){ echo $this->Crud->msg('danger', 'No Money in wallet'); die; } if($withdraw_type == 'partial' && $balance <= $withdraw_amount){ echo $this->Crud->msg('danger', 'Insufficient Balance in wallet'); die; } if($withdraw_type == 'partial'){ $amount = $withdraw_amount; } if($withdraw_type == 'all'){ $amount = $balance; } if($amount < $threshold){ $status = true; $this->Crud->msg('danger', 'You must have more than N5,000 in wallet to withdraw'); } else { $paystack_balancez = 0; $paystack_balance = $this->Crud->paystack_balance(); // Assuming this function returns a raw API response // Decode the response from Paystack $paystack_balance = json_decode($paystack_balance); // Check if the JSON response is valid if ($paystack_balance === null) { echo "Error decoding JSON response from Paystack."; die; } if (isset($paystack_balance->status) && $paystack_balance->status == true && isset($paystack_balance->data[0]->balance)) { $paystack_balancez = $paystack_balance->data[0]->balance; } else { echo "Error: Unable to retrieve Paystack balance. Response: " . json_encode($paystack_balance); die; } if($paystack_balancez <= $amount) { echo $this->Crud->msg('danger', 'Paystack Insufficient Balance'); } else { echo $this->Crud->msg('danger', 'Coming soon!!'); } } die; } } elseif($param2 == 'fund'){ if ($_POST) { $user_id = $this->request->getPost('user_id'); $amount = $this->request->getPost('tot_amount'); $r_amount = $this->request->getPost('amount'); if($r_amount < 5000){ echo $this->Crud->msg('danger', 'Minimum Amount of 5000 for Funding Wallet'); } else { ////// FORMAT PAYMENT $pay_script = ''; if ($amount > 0) { $ref = 'FYP-' . time() . rand(0, 9) . rand(1, 9); $this->session->set('ord_ref', $ref); $this->session->set('is_card', 1); $redir = site_url('wallets/list/fund'); $user_id = $this->session->get('fls_id'); $user = $this->Crud->read_field('id', $user_id, 'user', 'fullname'); $phone = $this->Crud->read_field('id', $user_id, 'user', 'phone'); $email = $this->Crud->read_field('id', $user_id, 'user', 'email'); $this->session->set('f_amount', $r_amount); $user_ids = $user_id; $user = ucwords($user); $customer['name'] = ucwords($user); $customer['email'] = $email; $customer['phone_number'] = $phone; $customize['title'] = 'Fuel Yapa Wallet Funding'; $customize['description'] = 'Wallet Funding by ' . $user; $customize['logo'] = site_url('assets/media/logos/fuelyapa(4).png'); $meta['user_id'] = $user_ids; $pay_script = $this->Crud->paystack_inline($ref, $redir, $customize, $amount, $customer, $meta); echo $pay_script; echo '<script>setTimeout(function(){ payWithPaystack(); }, 2000);</script>'; } else { $this->session->set('is_card', ''); } //////////////////// } 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_name'] = $e->name; $data['e_product'] = $e->product; $data['e_price'] = $e->price; } } } } 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; } } } // fund wallet if($param1 == 'fund') { if($_POST) { $reference = $this->request->getVar('reference'); $amount = $this->session->get('f_amount'); $customer_email = $this->request->getVar('customer_email'); $user_id = $this->Crud->read_field('email', $customer_email, 'user', 'id'); if(!$user_id || !$amount) { echo $this->Crud->msg('danger', 'Account and Amount required'); } else { $amount = $this->Crud->to_number($amount); if(empty($remark)) { $remark = 'Wallet Funding'; } $v_ins['user_id'] = $user_id; $v_ins['type'] = 'credit'; $v_ins['reference'] = $reference; $v_ins['amount'] = $amount; $v_ins['item'] = 'fund'; $v_ins['remark'] = $remark; $v_ins['reg_date'] = date(fdate); $v_id = $this->Crud->create('wallet', $v_ins); if($v_id > 0) { echo $this->Crud->msg('success', 'Wallet Funded!'); // notify add $customer = $this->Crud->read_field('id', $user_id, 'user', 'fullname'); $user_role_id = $this->Crud->read_field('id', $user_id, 'user', 'role_id'); $user_role = $this->Crud->read_field('id', $user_role_id, 'access_role', 'name'); ///// store activities $action = $customer.' funded wallet with ₦'.number_format($amount,2); $this->Crud->activity('wallet', $v_id, $action); echo '<script>location.reload(false);</script>'; } else { echo $this->Crud->msg('warning', 'Failed to credit Wallet! Please try later'); } } die; } } if($param1 == 'get_balance'){ $user_id = $this->request->getPost('user_id'); $balance = 0; $wallet = $this->Crud->read_single('user_id', $user_id, 'wallet'); if(!empty($wallet)){ foreach($wallet as $po){ if($po->type == 'credit'){ $balance += (float)$po->amount; } if($po->type == 'debit'){ $balance -= (float)$po->amount; } } } echo $balance; die; } // wallet statement if($param1 == 'statement') { $data['statement_id'] = $param2; } // record listing if($param1 == 'load') { $limit = $param2; $offset = $param3; $count = 0; $rec_limit = 125; $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_wallet($limit, $offset, $log_id, $type, $search, $start_date, $end_date); $all_rec = $this->Crud->filter_wallet('', '', $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($role != 'developer' && $role != 'administrator'){ $wallet = $this->Crud->read_single('user_id', $log_id, 'wallet'); } else { $wallet = $this->Crud->read('wallet'); } if(!empty($wallet)){ foreach($wallet as $po){ if($po->type == 'credit'){ $credit += (float)$po->amount; } if($po->type == 'debit'){ $debit += (float)$po->amount; } } } if(!empty($query)) { foreach($query as $q) { $id = $q->id; $user_id = $q->user_id; $type = $q->type; $mod = $q->item; $remark = $q->remark; $amount = number_format((float)$q->amount, 2); $reg_date = date('M d, Y h:i A', strtotime($q->reg_date)); if($q->type == 'credit'){ $typ = '<div class="badge badge-light-primary fs-7">CREDIT</div>'; } if($q->type == 'debit'){ $typ = '<div class="badge badge-light-danger fs-7">DEBIT</div>'; } $item .= ' <tr> <td>'.$reg_date.'</td> <td> '.$typ.' </td> <td> <a href="javascript:;" class="text-gray-600 text-hover-success mb-1">'.curr.($amount).'</a> </td> <td>'.ucwords($remark).'</td> </tr> '; } } } $balance = $credit - $debit; if($balance < 0)$balance = 0; 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 Wallet Returned </div></td></tr> '; } else { $resp['item'] = $item; } $more_record = $count - ($offset + $rec_limit); $resp['left'] = $more_record; $resp['credit'] = $curr . number_format($credit, 2); $resp['debit'] = $curr . number_format($debit, 2); $resp['balance'] = $curr . number_format($balance, 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') { // view for form data posting return view($mod.'_form', $data); } else { // view for main page $data['title'] = 'Wallet - '.app_name; $data['page_active'] = $mod; return view($mod, $data); } } public function fuel_price($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 = 'wallets/fuel_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 = 'price_change'; $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; } } } } if($this->request->getMethod() == 'post'){ $price_id = $this->request->getVar('price_id'); $price = $this->request->getVar('price'); $rec = $this->Crud->read_single('current', 1, $table); if(!empty($rec)){ foreach($rec as $r){ $this->Crud->updates('id', $r->id, $table, array('current'=>0)); } } $ins_data['price'] = $price; $ins_data['current'] = 1; $ins_data['reg_date'] = date(fdate); $ins_rec = $this->Crud->create($table, $ins_data); if($ins_rec > 0) { echo $this->Crud->msg('success', 'Fuel Price Update'); ///// store activities $by = $this->Crud->read_field('id', $log_id, 'user', 'fullname'); $action = $by.' updated Fuel Price to ('.$price.')'; $this->Crud->activity('fuel_price', $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('end_date'))) { $end_date = $this->request->getVar('end_date'); } else { $end_date = ''; } 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->date_range($start_date, 'reg_date', $end_date, 'reg_date',$table, $limit, $offset); $all_rec = $this->Crud->date_range($start_date, 'reg_date', $end_date, 'reg_date',$table, '', ''); if(!empty($all_rec)) { $count = count($all_rec); } else { $count = 0; } if(!empty($query)) { foreach($query as $q) { $id = $q->id; $current = $q->current; $amount = number_format((float)$q->price, 2); $reg_date = date('M d, Y h:i A', strtotime($q->reg_date)); $typ = '<div class="badge badge-light-primary fs-7">CURRENT PRICE</div>'; if($q->current == 0){ $typ = '<div class="badge badge-light-danger fs-7">-</div>'; } $item .= ' <tr> <td>'.$reg_date.'</td> <td> <a href="javascript:;" class="text-gray-600 text-hover-success mb-1">'.curr.($amount).'</a> </td> <td>'.($typ).'</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 Price 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 Price - '.app_name; $data['page_active'] = $mod; return view($mod, $data); } } public function price_structure($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 = 'wallets/price_structure'; $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 = 'price_structure'; $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_name'] = $e->name; $data['e_diesel_keg'] = json_decode($e->diesel_keg, true); $data['e_keg'] = json_decode($e->keg, true); $data['e_gas'] = json_decode($e->gas, true); $data['e_price'] = $e->price; $data['e_diesel_price'] = $e->diesel; $data['e_minimum'] = $e->minimum; } } } } if($this->request->getMethod() == 'post'){ $structure_id = $this->request->getVar('structure_id'); $keg_price = $this->request->getVar('keg_price'); $keg_liters = $this->request->getVar('keg_liters'); $diesel_price = $this->request->getVar('diesel_price'); $diesel_liters = $this->request->getVar('diesel_liters'); $gas_price = $this->request->getVar('gas_price'); $gas_liters = $this->request->getVar('gas_liters'); $price = $this->request->getVar('price'); $diesel_price = $this->request->getVar('diesel_price'); $minimum = $this->request->getVar('minimum'); $name = $this->request->getVar('name'); if(empty($price)){ echo $this->Crud->msg('danger', 'Enter Price'); die; } if($name == 'Pickup'){ $ins_data['price'] = $price; $ins_data['diesel'] = $diesel_price; } if($name == 'Bulk'){ if(empty($minimum)){ echo $this->Crud->msg('danger', 'Enter Minimum Liter to Qualify for Bulk!'); die; } $ins_data['price'] = $price; $ins_data['minimum'] = $minimum; } if($name == 'Trade'){ if(empty($minimum)){ echo $this->Crud->msg('danger', 'Enter Minimum Liter that Seller can Trad!'); die; } $ins_data['price'] = $price; $ins_data['minimum'] = $minimum; } if($name == 'Express Delivery' || $name == 'Subscription Delivery'){ $ins_data['price'] = $price; // Initialize an array for kegs $keg_data = []; // Ensure arrays have valid data if (!empty($keg_liters) && !empty($keg_price) && is_array($keg_liters) && is_array($keg_price)) { foreach ($keg_liters as $index => $liters) { $liters = floatval($liters); $price = floatval($keg_price[$index]); if ($liters > 0 && $price > 0) { $keg_data[] = [ 'liters' => $liters, 'price' => $price ]; } } } // Convert keg data to JSON $keg_json = json_encode($keg_data); $ins_data['keg'] = $keg_json; // Initialize an array for kegs $diesel_data = []; // Ensure arrays have valid data if (!empty($diesel_liters) && !empty($diesel_price) && is_array($diesel_liters) && is_array($diesel_price)) { foreach ($diesel_liters as $index => $liters) { $liters = floatval($liters); $price = floatval($diesel_price[$index]); if ($liters > 0 && $price > 0) { $diesel_data[] = [ 'liters' => $liters, 'price' => $price ]; } } } // Convert keg data to JSON $diesel_json = json_encode($diesel_data); $ins_data['diesel_keg'] = $diesel_json; } $gas_data = []; // Ensure arrays have valid data if (!empty($gas_liters) && !empty($gas_price) && is_array($gas_liters) && is_array($gas_price)) { foreach ($gas_liters as $index => $liters) { $liters = floatval($liters); $price = floatval($gas_price[$index]); if ($liters > 0 && $price > 0) { $gas_data[] = [ 'liters' => $liters, 'price' => $price ]; } } } // Convert keg data to JSON $gas_json = json_encode($gas_data); $ins_data['gas'] = $gas_json; $ins_rec = $this->Crud->updates('id', $structure_id, $table, $ins_data); if($ins_rec > 0) { echo $this->Crud->msg('success', 'Price Structure Updated'); ///// store activities $by = $this->Crud->read_field('id', $log_id, 'user', 'fullname'); $action = $by.' updated Price Structure ('.$name.')'; $this->Crud->activity('fuel_price', $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('end_date'))) { $end_date = $this->request->getVar('end_date'); } else { $end_date = ''; } 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->read_order($table, 'name', 'asc', $limit, $offset); $all_rec = $this->Crud->read_order($table, '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; $amount = number_format((float)$q->price, 2); $diesel = number_format((float)$q->diesel, 2); $item .= ' <tr> <td>'.$name.'</td> <td> <a href="javascript:;" class="text-gray-600 text-hover-success mb-1">'.curr.($amount).'</a> </td> <td> <a href="javascript:;" class="text-gray-600 text-hover-success mb-1">'.curr.($diesel).'</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 '.$name.'" pagesize="modal-lg" data-bs-toggle="tooltip" data-bs-placement="top" title="Edit " 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> '; } } } 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 Price Structure 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'] = 'Price Structure - '.app_name; $data['page_active'] = $mod; return view($mod, $data); } } public function trade($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 = 'wallets/trade'; $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 = 'trade'; $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'); $by = $this->Crud->read_field('id', $log_id, 'user', 'fullname'); $action = $by.' deleted Fuel Sale Request '; if($this->Crud->deletes('id', $del_id, $table) > 0) { ///// store activities $this->Crud->activity('trade', $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 == 'confirm') { 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; $data['e_status'] = $e->status; } } if($this->request->getMethod() == 'post'){ $del_id = $this->request->getVar('trade_id'); $status = $this->request->getVar('status'); if($status == 'under_review'){ $inz['review_date'] = date(fdate); } if($status == 'approved' || $status == 'declined'){ $inz['approved_date'] = date(fdate); } $by = $this->Crud->read_field('id', $log_id, 'user', 'fullname'); $action = $by.' Updated Fuel Sale Request '; $inz['status'] = $status; if($this->Crud->updates('id', $del_id, $table, $inz) > 0) { $to = $this->Crud->read_field('id', $del_id, 'user', 'seller_id'); switch (strtolower($status)) { case 'under review': $content = "Your trade request (ID: $del_id) is currently under review. We will update you soon."; break; case 'approved': $content = "Congratulations! Your trade request (ID: $del_id) has been approved. You can proceed with the next steps."; break; case 'declined': $content = "We regret to inform you that your trade request (ID: $del_id) has been declined. Please contact support for more details."; break; case 'pending': $content = "Your trade request (ID: $del_id) is pending. Please wait while we process it."; break; default: $content = "Your trade request (ID: $del_id) has been updated. Please check your dashboard for details."; break; } $this->Crud->notify(0, $to, $content, 'Trade Request', $del_id); ///// store activities $this->Crud->activity('trade', $del_id, $action); echo $this->Crud->msg('success', 'Request Status Updated'); echo '<script>location.reload(false);</script>'; } else { echo $this->Crud->msg('danger', 'Please try later'); } die; } } } else { // 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['fullname'] = $this->Crud->read_field('id', $e->seller_id, 'user', 'fullname'); $data['email'] = $this->Crud->read_field('id', $e->seller_id, 'user', 'email'); $data['phone'] = $this->Crud->read_field('id', $e->seller_id, 'user', 'phone'); } } } } // 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_name'] = $e->name; $data['e_keg'] = json_decode($e->keg, true); $data['e_price'] = $e->price; $data['e_minimum'] = $e->minimum; } } } } if($this->request->getMethod() == 'post'){ $structure_id = $this->request->getVar('structure_id'); $keg_price = $this->request->getVar('keg_price'); $keg_liters = $this->request->getVar('keg_liters'); $price = $this->request->getVar('price'); $minimum = $this->request->getVar('minimum'); $name = $this->request->getVar('name'); if(empty($price)){ echo $this->Crud->msg('danger', 'Enter Price'); die; } if($name == 'Pickup'){ $ins_data['price'] = $price; } if($name == 'Bulk'){ if(empty($minimum)){ echo $this->Crud->msg('danger', 'Enter Minimum Liter to Qualify for Bulk!'); die; } $ins_data['price'] = $price; $ins_data['minimum'] = $minimum; } if($name == 'Trade'){ if(empty($minimum)){ echo $this->Crud->msg('danger', 'Enter Minimum Liter that Seller can Trad!'); die; } $ins_data['price'] = $price; $ins_data['minimum'] = $minimum; } if($name == 'Delivery'){ $ins_data['price'] = $price; // Initialize an array for kegs $keg_data = []; // Ensure arrays have valid data if (!empty($keg_liters) && !empty($keg_price) && is_array($keg_liters) && is_array($keg_price)) { foreach ($keg_liters as $index => $liters) { $liters = floatval($liters); $price = floatval($keg_price[$index]); if ($liters > 0 && $price > 0) { $keg_data[] = [ 'liters' => $liters, 'price' => $price ]; } } } // Convert keg data to JSON $keg_json = json_encode($keg_data); $ins_data['keg'] = $keg_json; } $ins_rec = $this->Crud->updates('id', $structure_id, $table, $ins_data); if($ins_rec > 0) { echo $this->Crud->msg('success', 'Price Structure Updated'); ///// store activities $by = $this->Crud->read_field('id', $log_id, 'user', 'fullname'); $action = $by.' updated Price Structure to ('.$price.')'; $this->Crud->activity('fuel_price', $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('end_date'))) { $end_date = $this->request->getVar('end_date'); } else { $end_date = ''; } 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_trade($limit, $offset, $log_id, ''); $all_rec = $this->Crud->filter_trade('', '', $log_id, ''); if(!empty($all_rec)) { $count = count($all_rec); } else { $count = 0; } if (!empty($query)) { foreach ($query as $q) { $id = $q->id; $seller_name = $this->Crud->read_field('id', $q->seller_id, 'user', 'fullname'); // Get seller's name $price_per_liter = number_format((float)$q->sale_price, 2); $total_liters = number_format((float)$q->quantity, 2); $status_label = ($q->status == 'approved') ? 'text-primary' : 'text-danger'; // Highlight status if($q->status == 'under_review'){ $status_label = 'text-warning'; } $item .= ' <tr> <td>' . date('d M Y, h:i:sA', strtotime($q->reg_date)) . '</td> <td><a href="javascript:;" class="pop" data-bs-toggle="tooltip" data-bs-placement="top" title="View Vendor" pageTitle="View Vendor '.$seller_name.'" pageName="'.site_url($mod.'/manage/view/'.$id).'"><b><i class="fas fa-eye text-primary mx-1"></i>' . ucwords($seller_name) . '</b></a></td> <td><a href="javascript:;" class="text-gray-600 text-hover-success mb-1">' . curr . $price_per_liter . '</a></td> <td>' . $total_liters . ' LTR</td> <td class="' . $status_label . '">' . ucwords(str_replace('_', ' ', $q->status)) . '</td> <td> <div class="d-flex justify-content-end flex-shrink-0">'; // Only show buttons if status is not "confirmed" if ($q->status != 'approved' && $q->status != 'declined') { if($role == 'developer' || $role == 'administrator'){ $item .= ' <!-- Confirm Request Button --> <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="Confirm Request" pageTitle="Confirm Request " pageName="'.site_url($mod.'/manage/confirm/'.$id).'"> <i class="ki-duotone ki-check fs-2"></i> </button>'; } $item .= ' <!-- Delete Button --> <a href="javascript:;" class="pop btn btn-icon btn-danger btn-active-color-light btn-sm me-2" data-bs-toggle="tooltip" data-bs-placement="top" title="Delete Request" pageTitle="Delete Request " 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>'; } $item .= ' </div> </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 Trade Request 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 Trade Request - '.app_name; $data['page_active'] = $mod; return view($mod, $data); } } }
Upload File
Create Folder