From cc4cd2dd650d42960864fd132c6450f76b7b7f11 Mon Sep 17 00:00:00 2001 From: Djery-Tom Date: Wed, 10 Jun 2020 15:20:30 +0100 Subject: [PATCH] + Update calculator and fix bugs --- application/controllers/Gestion.php | 37 +++ application/controllers/Hyperviseur_dash.php | 28 +- application/controllers/Superviseur_dash.php | 1 + application/language/french/message_lang.php | 13 + application/models/User_model.php | 23 ++ application/views/calculator.php | 222 ++++++++++------ application/views/demande_credit.php | 55 +--- .../views/gestion_wallet_ilink_hyp.php | 244 +++++++++++++++++- application/views/historique_transactions.php | 6 +- 9 files changed, 481 insertions(+), 148 deletions(-) diff --git a/application/controllers/Gestion.php b/application/controllers/Gestion.php index e0060c44..acbc8995 100755 --- a/application/controllers/Gestion.php +++ b/application/controllers/Gestion.php @@ -1559,6 +1559,7 @@ class Gestion extends CI_Controller $data['plr_user_wallet_cash'] = $this->user_model->getPalierConfigWallet("user_wallet_cash" , $data['idConfig']); $data['plr_agent_depot_wallet'] = $this->user_model->getPalierConfigWallet("agent_depot_wallet" , $data['idConfig']); $data['plr_agent_cash_cash'] = $this->user_model->getPalierConfigWallet("agent_cash_cash" , $data['idConfig']); + $data['taxes'] = $this->user_model->getTaxes($data['idConfig']); $data['u_w_w_min'] = $taux->taux_com_user_wallet_wallet_min; $data['u_w_w_max'] = $taux->taux_com_user_wallet_wallet_max; $data['taux_u_w_w'] = $taux->taux_com_user_wallet_wallet; @@ -1715,6 +1716,23 @@ class Gestion extends CI_Controller } + public function saveTaxes(){ + if($this->isLogged()) { + if(isset($_POST)) { + $idConfig = $_POST['id_config']; + $taxes = isset($_POST['taxes']) ? $_POST['taxes'] : null ; + $this->insertTaxes($taxes, $idConfig); + $res = true; + + if ($res) { + echo json_encode("200"); + } else { + echo json_encode("500"); + } + } + } + } + private function insertPalier($palier , $name , $idConfig){ $exist = $this->user_model->getPalierConfigWallet($name , $idConfig); @@ -1734,6 +1752,25 @@ class Gestion extends CI_Controller } } + private function insertTaxes($palier , $idConfig){ + + $exist = $this->user_model->getTaxes($idConfig); + if($exist){ + $this->user_model->deleteTaxes($idConfig); + } + + if($palier) { + foreach ($palier as $p) { + $array = json_decode(json_encode($p), true); + $row = []; + foreach ($array as $key => $value){ + $row[] = $value; + } + $this->user_model->addTaxe($idConfig, $row[0], $row[1], $row[2], $row[3]); + } + } + } + public function delete_config_wallet() { if($this->isLogged()){ diff --git a/application/controllers/Hyperviseur_dash.php b/application/controllers/Hyperviseur_dash.php index 1f5ae26f..3efbe37f 100755 --- a/application/controllers/Hyperviseur_dash.php +++ b/application/controllers/Hyperviseur_dash.php @@ -338,6 +338,7 @@ class Hyperviseur_dash extends CI_Controller $data['plr_user_wallet_cash'] = $this->user_model->getPalierConfigWallet("user_wallet_cash", $data['idConfig']); $data['plr_agent_depot_wallet'] = $this->user_model->getPalierConfigWallet("agent_depot_wallet", $data['idConfig']); $data['plr_agent_cash_cash'] = $this->user_model->getPalierConfigWallet("agent_cash_cash", $data['idConfig']); + $data['taxes'] = $this->user_model->getTaxes($data['idConfig']); $data['u_w_w_min'] = $taux->taux_com_user_wallet_wallet_min; $data['u_w_w_max'] = $taux->taux_com_user_wallet_wallet_max; $data['taux_u_w_w'] = $taux->taux_com_user_wallet_wallet; @@ -656,9 +657,19 @@ class Hyperviseur_dash extends CI_Controller $data['plr_user_wallet_cash'] = $this->user_model->getPalierConfigWallet("user_wallet_cash", $data['idConfig']); $data['plr_agent_depot_wallet'] = $this->user_model->getPalierConfigWallet("agent_depot_wallet", $data['idConfig']); $data['plr_agent_cash_cash'] = $this->user_model->getPalierConfigWallet("agent_cash_cash", $data['idConfig']); + $data['taxes'] = $this->user_model->getTaxes($data['idConfig']); $operations = [ new Operation(1, $this->lang->line('op1')), - new Operation(2, "Retrait d'argent") + new Operation(2, $this->lang->line('op2')), + new Operation(3, $this->lang->line('op3')), +// new Operation(4, $this->lang->line('op4')), + new Operation(5, $this->lang->line('op5')), + new Operation(6, $this->lang->line('op6')), +// new Operation(7, $this->lang->line('op7')), +// new Operation(8, $this->lang->line('op8')), + new Operation(9, $this->lang->line('op9')), + new Operation(10, $this->lang->line('op10')), + new Operation(11, $this->lang->line('op11')), ]; $data['operations'] = $operations; // if (isset($_POST)) { @@ -670,21 +681,6 @@ class Hyperviseur_dash extends CI_Controller $this->load->view('footer'); } } - - public function cancelCreditRequest() - { - if ($this->isLogged()) { - if (isset($_POST)) { - $id_demand = $_POST['id_demand']; - $res = $this->user_model->cancelCreditRequest($id_demand); - if ($res) { - echo json_encode("200"); - } else { - echo json_encode("500"); - } - } - } - } } class Operation diff --git a/application/controllers/Superviseur_dash.php b/application/controllers/Superviseur_dash.php index c1e9a2d2..e5663769 100755 --- a/application/controllers/Superviseur_dash.php +++ b/application/controllers/Superviseur_dash.php @@ -307,6 +307,7 @@ class Superviseur_dash extends CI_Controller $data['hasWallet'] = $this->user_model->getConfigWallet($this->session->userdata('network_id')); $data['country'] = $this->session->userdata('current_pays'); $data['category'] = $this->session->userdata('category'); + $data['geolocated_user'] = $this->user_model->getSuperNameAndCodeForSup($this->session->userdata('member_code')); $this->load->view('header_sup', $data); $this->load->view('historique_transactions'); diff --git a/application/language/french/message_lang.php b/application/language/french/message_lang.php index 2e71955c..dee2906c 100755 --- a/application/language/french/message_lang.php +++ b/application/language/french/message_lang.php @@ -369,5 +369,18 @@ $lang['agent_name'] = 'Nom de l\'agent'; $lang['cancel'] = 'Annuler'; $lang['canceled_transaction'] = 'Transaction annulée'; $lang['canceled_credit_request'] = 'Demande de crédit annulée'; +$lang['edit_tax'] = 'Modifier les taxes'; +$lang['configuration_of_tax'] = 'Configuration des taxes du wallet'; +$lang['transaction_taxes'] = 'Taxes sur les transactions'; $lang['op1'] = 'Envoi de wallet à wallet'; +$lang['op2'] = 'Envoi de wallet à carte'; +$lang['op3'] = 'Envoi de wallet à cash'; +$lang['op4'] = 'Envoi de wallet à Banque'; +$lang['op5'] = 'Envoi de carte à wallet'; +$lang['op6'] = 'Envoi de carte à cash'; +$lang['op7'] = 'Envoi de carte à carte'; +$lang['op8'] = 'Envoi de carte à banque'; +$lang['op9'] = 'Retrait de wallet en cash'; +$lang['op10'] = 'Retrait de carte vers wallet'; +$lang['op11'] = 'Retrait de carte vers cash'; ?> diff --git a/application/models/User_model.php b/application/models/User_model.php index 38fe91dc..f3c5d640 100755 --- a/application/models/User_model.php +++ b/application/models/User_model.php @@ -2234,6 +2234,12 @@ class User_model extends CI_Model return $query; } + public function addTaxe($idConfig ,$nom, $type ,$valeur , $destination){ + $sql = "INSERT INTO `taxes` (`nom`, `type`, `valeur`, `destination`, `idConfig`) VALUES (?,?,?,?,?);"; + $query = $this->db->query($sql , array($nom,$type, $valeur , $destination ,$idConfig)); + return $query; + } + public function updatePalierConfigWallet($id ,$min , $max ,$taux){ $sql = "UPDATE `paliersConfigWallet` SET `min` = ? , `max` = ? , `taux` = ? WHERE (`id` = ?);"; $query = $this->db->query($sql , array($min, $max , $taux , $id)); @@ -2250,6 +2256,16 @@ class User_model extends CI_Model } } + public function getTaxes($idConfig){ + $sql = "SELECT * FROM `taxes` WHERE (`idConfig` = ? );"; + $query = $this->db->query($sql , array($idConfig)); + if($query->num_rows()>0){ + return $query; + }else{ + return false; + } + } + public function getOnePalierConfigWallet($id){ $sql = "SELECT * FROM `paliersConfigWallet` WHERE (`id` = ?);"; $query = $this->db->query($sql , array($id)); @@ -2267,6 +2283,13 @@ class User_model extends CI_Model } + public function deleteTaxes($idConfig){ + $sql = "DELETE FROM `taxes` WHERE (`idConfig` = ? );"; + $query = $this->db->query($sql , array($idConfig)); + return $query; + + } + public function updateConfigWalletIlink($u_w_w_min,$u_w_w_max,$taux_u_w_w,$u_w_c_min,$u_w_c_max,$taux_u_w_c,$taux_u_w_cart,$taux_u_c_w,$taux_u_c_c,$ag_d_w_min,$ag_d_w_max,$taux_ag_d_w, $taux_ag_d_c_c,$ag_c_c_min,$ag_c_c_max,$taux_ag_c_c,$taux_ag_cart_c,$taux_ag_cash_c,$taux_ag_s_c,$taux_sup_s_c,$taux_hyp_s_c,$taux_ag_r_c,$taux_sup_r_c,$taux_hyp_r_c, $taux_ag_d_c,$taux_sup_d_c,$taux_hyp_d_c,$taux_bq_d_c ,$taux_ag_r_cart,$taux_sup_r_cart,$taux_hyp_r_cart,$taux_bq_r_cart ,$idConfig){ diff --git a/application/views/calculator.php b/application/views/calculator.php index 6aaf1acf..72be597e 100755 --- a/application/views/calculator.php +++ b/application/views/calculator.php @@ -4,78 +4,133 @@ href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/0.9.15/css/bootstrap-multiselect.css"> first_row(); $plr_user_wallet_wallet = $plr_user_wallet_wallet ? $plr_user_wallet_wallet->result() : []; $plr_user_wallet_cash = $plr_user_wallet_cash ? $plr_user_wallet_cash->result() : []; $plr_agent_depot_wallet = $plr_agent_depot_wallet ? $plr_agent_depot_wallet->result() : []; $plr_agent_cash_cash = $plr_agent_cash_cash ? $plr_agent_cash_cash->result() : []; +$taxes = $taxes ? $taxes->result() : []; +$taxesNationales = array_filter($taxes, function ($tax) { + return $tax->destination == 'national'; +}); -if(isset($save)) -{ +$taxesInternationales = array_filter($taxes, function ($tax) { + return $tax->destination == 'international'; +}); + +if (isset($save)) { $showResult = true; - switch($operation) { - case 1: //Envoi wallet à wallet - $frais = ($init_country != $final_country) ? calculateFees1($plr_user_wallet_wallet, $montant) : calculateFees2($config->taux_com_user_wallet_wallet_min , $config->taux_com_user_wallet_wallet_max, $config->taux_com_user_wallet_wallet, $montant); - break; - case '-': - $res=$fn-$sn; - break; + switch ($operation) { + case 1: //Envoi wallet à wallet + $frais = ($init_country != $final_country) ? calculateFees1($plr_user_wallet_wallet, $montant) : calculateFees2($config->taux_com_user_wallet_wallet_min, $config->taux_com_user_wallet_wallet_max, $config->taux_com_user_wallet_wallet, $montant); + $taxe = ($init_country != $final_country) ? calculateTax($taxesInternationales , $frais) : calculateTax($taxesNationales ,$frais); + break; + case 2: //Envoi de wallet à carte + $frais = $montant * $config->taux_com_user_wallet_carte / 100; + $taxe = ($init_country != $final_country) ? calculateTax($taxesInternationales , $frais) : calculateTax($taxesNationales ,$frais); + break; + case 3: //Envoi de wallet à cash + $frais = ($init_country != $final_country) ? calculateFees1($plr_user_wallet_cash, $montant) : calculateFees2($config->taux_com_user_wallet_cash_min, $config->taux_com_user_wallet_cash_max, $config->taux_com_user_wallet_cash, $montant); + $taxe = ($init_country != $final_country) ? calculateTax($taxesInternationales , $frais) : calculateTax($taxesNationales ,$frais); + break; + case 4: //Envoi de wallet à banque + // Non disponible + break; + case 5: //Envoi de carte à wallet + $frais =$montant * $config->taux_com_user_carte_wallet / 100; + $taxe = ($init_country != $final_country) ? calculateTax($taxesInternationales , $frais) : calculateTax($taxesNationales ,$frais); + break; + case 6: //Envoi de carte à cash + $frais =$montant * $config->taux_com_user_carte_cash / 100; + $taxe = ($init_country != $final_country) ? calculateTax($taxesInternationales , $frais) : calculateTax($taxesNationales ,$frais); + break; + case 9: // Retrait de wallet en cash + $frais = calculateFees2($config->taux_com_user_wallet_cash_min, $config->taux_com_user_wallet_cash_max, $config->taux_com_user_wallet_cash, $montant); + break; + case 10: //Retrait de carte vers wallet + $frais = $montant * $config->taux_com_user_carte_wallet / 100; + break; + case 11: // Retrait de wallet en cash + $frais = $montant * $config->taux_com_user_carte_cash / 100; + break; } } -function calculateFees1(array $paliers , $montant){ +//Calcul des frais internationaux +function calculateFees1(array $paliers, $montant) +{ $size = sizeof($paliers); - $min = $paliers[0]->min ; - $max= $size > 0 ? $paliers[$size-1]->max : 0; + $min = $paliers[0]->min; + $max = $size > 0 ? $paliers[$size - 1]->max : 0; $palier = null; - foreach ($paliers as $p){ - if($montant >= $p->min && $montant <= $p->max){ + foreach ($paliers as $p) { + if ($montant >= $p->min && $montant <= $p->max) { $palier = $p; break; } } - if($palier){ - return (($palier->min + $palier->max)/2 * $palier->taux /100 ); - }else{ - if($montant < $min) - return $min* $paliers[0]->taux /100; + if ($palier) { + return (($palier->min + $palier->max) / 2 * $palier->taux / 100); + } else { + if ($montant < $min) + return $min * $paliers[0]->taux / 100; else if ($montant > $max) - return $max*$paliers[$size-1]->taux /100; + return $max * $paliers[$size - 1]->taux / 100; } } -function calculateFees2($min , $max , $taux , $montant){ - if($montant < $min) - return $min* $taux /100; +//Calcul des frais nationaux +function calculateFees2($min, $max, $taux, $montant) +{ + if ($montant < $min) + return $min * $taux / 100; else if ($montant > $max) - return $max*$taux /100; + return $max * $taux / 100; else - return $montant * $taux /100; + return $montant * $taux / 100; +} + +//Calcul des taxes +function calculateTax(array $taxes, $frais) +{ + $sommeTaux = 0; + $sommeFixe = 0; + foreach ($taxes as $tax) { + if ($tax->type == '%') + $sommeTaux += $tax->valeur; + + if ($tax->type == 'fixe') + $sommeFixe += $tax->valeur; + } + return ($frais * $sommeTaux / 100) + $sommeFixe; } // set to whatever your rates are relative to $baseCurrency = 'USD'; // use your own credentials, or re-use your existing PDO connection -$pdo = new PDO('mysql:host='.$this->db->hostname.';dbname='.$this->db->database, $this->db->username, $this->db->password); +$pdo = new PDO('mysql:host=' . $this->db->hostname . ';dbname=' . $this->db->database, $this->db->username, $this->db->password); $configuration = new PDOProviderConfiguration(); -$configuration->tableName = 'exchange_rate'; -$configuration->exchangeRateColumnName = 'exchange_rate'; +$configuration->tableName = 'exchange_rate'; +$configuration->exchangeRateColumnName = 'exchange_rate'; $configuration->targetCurrencyColumnName = 'target_currency'; -$configuration->sourceCurrencyCode = $baseCurrency; +$configuration->sourceCurrencyCode = $baseCurrency; // this provider loads exchange rates from your database $provider = new PDOProvider($pdo, $configuration); @@ -137,25 +192,26 @@ $converter = new CurrencyConverter($provider);
- + + name="montant" value="">
num_rows(); + $result = $countries; + if ($result) { + $numrows = $result->num_rows(); if ($numrows > 0) { ?> - + result() as $row) { - echo ""; + echo ""; } ?> - lang->line('no_country'); } ?> @@ -166,17 +222,18 @@ $converter = new CurrencyConverter($provider);
0) { ?> - required> + id . "'>" . $row->name . ""; } ?> - lang->line('no_operation'); } ?> @@ -186,19 +243,20 @@ $converter = new CurrencyConverter($provider);
num_rows(); + $result = $countries; + if ($result) { + $numrows = $result->num_rows(); if ($numrows > 0) { ?> - + result() as $row) { - echo ""; + echo ""; } ?> - lang->line('no_country'); } ?> @@ -208,14 +266,14 @@ $converter = new CurrencyConverter($provider);
- id == $operation; }); - $r2 = array_filter($countries->result() , function ($c) use ($init_country){ + $r2 = array_filter($countries->result(), function ($c) use ($init_country) { return $c->id == $init_country; }); - $r3 = array_filter($countries->result() , function ($c) use ($final_country){ + $r3 = array_filter($countries->result(), function ($c) use ($final_country) { return $c->id == $final_country; }); $op = reset($r1); @@ -223,36 +281,45 @@ $converter = new CurrencyConverter($provider); $f = reset($r3); ?>
-
- +
+
+ +
+
+
+
+ +
@@ -794,6 +802,41 @@
+
+
+
+
+

lang->line('transaction_taxes'); ?>

+
+
+ + + + + + + + + + + result() as $row) { + echo " + + + + ".' + '; + } + } + ?> + +
lang->line('Nom') ; ?> TypeValeurDestination
".$row->nom."".$row->type."".$row->valeur."".$row->destination."
+
+
+
+
@@ -1309,6 +1352,71 @@
+