diff --git a/application/config/config.php b/application/config/config.php index 8541342d..d2683fb9 100755 --- a/application/config/config.php +++ b/application/config/config.php @@ -23,7 +23,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); | a PHP script and you can easily do that on your own. | */ -$config['base_url'] = 'https://'.$_SERVER['SERVER_NAME'].'/backofficeiLinkTest'; +$config['base_url'] = 'http://'.$_SERVER['SERVER_NAME'].'/backofficeiLinkTest'; /* |-------------------------------------------------------------------------- diff --git a/application/config/database.php b/application/config/database.php index 71db97d3..32380b0f 100755 --- a/application/config/database.php +++ b/application/config/database.php @@ -76,9 +76,9 @@ $query_builder = TRUE; $db['default'] = array( 'dsn' => '', 'hostname' => 'localhost', - 'username' => 'root', - 'password' => 'vps@2017GA', - 'database' => 'iLink_preprod', + 'username' => 'djery-tom', + 'password' => 'root', + 'database' => 'iLink_test2', 'wallet_service_url' => 'http://localhost:8081', 'dbdriver' => 'mysqli', 'dbprefix' => '', diff --git a/application/controllers/Gestion.php b/application/controllers/Gestion.php index 19630c42..85bf1ad4 100755 --- a/application/controllers/Gestion.php +++ b/application/controllers/Gestion.php @@ -1589,6 +1589,8 @@ class Gestion extends CI_Controller $data['taux_sup_r_cart'] = $taux->taux_com_sup_retrait_carte_cash; $data['taux_hyp_r_cart'] = $taux->taux_com_hyp_retrait_carte_cash; $data['taux_bq_r_cart'] = $taux->taux_com_banque_retrait_carte_cash; + $data['taux_hyp_r_cart_ilink'] = $taux->taux_com_hyp_retrait_carte_cash_ilink; + $data['taux_bq_r_cart_ilink'] = $taux->taux_com_banque_retrait_carte_cash_ilink; } $data['transactions'] = $this->user_model->getTransactions(null,null,$network_id); @@ -1710,7 +1712,8 @@ class Gestion extends CI_Controller $this->insertPalier($plr_agent_cash_cash_national,"agent_cash_cash_national", $idConfig); $this->user_model->updateConfigWalletIlink($rows['taux_u_w_cart'],$rows['taux_u_c_w'],$rows['taux_u_c_c'],$rows['taux_ag_d_c_c'],$rows['taux_ag_cart_c'],$rows['taux_ag_cash_c'],$rows['taux_ag_s_c'],$rows['taux_sup_s_c'],$rows['taux_hyp_s_c'],$rows['taux_ag_r_c'],$rows['taux_sup_r_c'], - $rows['taux_hyp_r_c'],$rows['taux_ag_d_c'],$rows['taux_sup_d_c'],$rows['taux_hyp_d_c'],$rows['taux_bq_d_c'], $rows['taux_ag_r_cart'],$rows['taux_sup_r_cart'],$rows['taux_hyp_r_cart'],$rows['taux_bq_r_cart'],$idConfig); + $rows['taux_hyp_r_c'],$rows['taux_ag_d_c'],$rows['taux_sup_d_c'],$rows['taux_hyp_d_c'],$rows['taux_bq_d_c'], $rows['taux_ag_r_cart'],$rows['taux_sup_r_cart'],$rows['taux_hyp_r_cart'],$rows['taux_bq_r_cart'], + $rows['taux_hyp_r_cart_ilink'],$rows['taux_bq_r_cart_ilink'],$idConfig); $res = true; } diff --git a/application/controllers/Hyperviseur_dash.php b/application/controllers/Hyperviseur_dash.php index 9776d74f..d98b070f 100755 --- a/application/controllers/Hyperviseur_dash.php +++ b/application/controllers/Hyperviseur_dash.php @@ -368,6 +368,8 @@ class Hyperviseur_dash extends CI_Controller $data['taux_sup_r_cart'] = $taux->taux_com_sup_retrait_carte_cash; $data['taux_hyp_r_cart'] = $taux->taux_com_hyp_retrait_carte_cash; $data['taux_bq_r_cart'] = $taux->taux_com_banque_retrait_carte_cash; + $data['taux_hyp_r_cart_ilink'] = $taux->taux_com_hyp_retrait_carte_cash_ilink; + $data['taux_bq_r_cart_ilink'] = $taux->taux_com_banque_retrait_carte_cash_ilink; } //Create wallet if it not exist @@ -650,19 +652,217 @@ class Hyperviseur_dash extends CI_Controller $data['country'] = $this->session->userdata('current_pays'); $data['network_id'] = $this->session->userdata('network_id'); $data['countries'] = $this->user_model->getWalletsCountries(); - $data['plr_user_wallet_wallet'] = $this->user_model->getPalierConfigWallet("user_wallet_wallet_international", $data['idConfig']); - $data['plr_user_wallet_cash'] = $this->user_model->getPalierConfigWallet("user_wallet_cash_international", $data['idConfig']); - $data['plr_agent_depot_wallet_ilink'] = $this->user_model->getPalierConfigWallet("agent_depot_wallet_ilink_international" , $data['idConfig']); - $data['plr_agent_depot_autre_wallet'] = $this->user_model->getPalierConfigWallet("agent_depot_autre_wallet_international" , $data['idConfig']); - $data['plr_agent_cash_cash'] = $this->user_model->getPalierConfigWallet("agent_cash_cash_international", $data['idConfig']); + $showResult = false; + $frais = 0; + $taxe = 0; + $config = $data['hasWallet']->first_row(); - $data['plr_user_wallet_wallet_national'] = $this->user_model->getPalierConfigWallet("user_wallet_wallet_national", $data['idConfig']); - $data['plr_user_wallet_cash_national'] = $this->user_model->getPalierConfigWallet("user_wallet_cash_national", $data['idConfig']); - $data['plr_agent_depot_wallet_ilink_national'] = $this->user_model->getPalierConfigWallet("agent_depot_wallet_ilink_national" , $data['idConfig']); - $data['plr_agent_depot_autre_wallet_national'] = $this->user_model->getPalierConfigWallet("agent_depot_autre_wallet_national" , $data['idConfig']); - $data['plr_agent_cash_cash_national'] = $this->user_model->getPalierConfigWallet("agent_cash_cash_national", $data['idConfig']); + //Simulateur + $com_ag = $this->session->userdata('com_ag') ? $this->session->userdata('com_ag') : 0 ; + $com_sup = $this->session->userdata('com_sup') ? $this->session->userdata('com_sup') : 0 ; + $com_hyp = $this->session->userdata('com_hyp') ? $this->session->userdata('com_hyp') : 0 ; + $com_bq = $this->session->userdata('com_bq') ? $this->session->userdata('com_bq') : 0 ; +// $frais_retrait = $this->session->userdata('frais_retrait') ? $this->session->userdata('frais_retrait') : 0 ; + + if (isset($_POST)) { + $operation = $this->input->post('operation'); + $montant = $this->input->post('montant'); + $init_country = $this->input->post('init_country'); + $final_country = $this->input->post('final_country'); + $save = $this->input->post('save'); + $code = $this->input->post('code'); + + + $taxes = $this->user_model->getTaxes($data['idConfig']); + + $plr_user_wallet_wallet = $this->user_model->getPalierConfigWallet("user_wallet_wallet_international", $data['idConfig']); + $plr_user_wallet_cash = $this->user_model->getPalierConfigWallet("user_wallet_cash_international", $data['idConfig']); + $plr_agent_depot_wallet_ilink = $this->user_model->getPalierConfigWallet("agent_depot_wallet_ilink_international" , $data['idConfig']); + $plr_agent_depot_autre_wallet = $this->user_model->getPalierConfigWallet("agent_depot_autre_wallet_international" , $data['idConfig']); + $plr_agent_cash_cash = $this->user_model->getPalierConfigWallet("agent_cash_cash_international", $data['idConfig']); + + $plr_user_wallet_wallet_national= $this->user_model->getPalierConfigWallet("user_wallet_wallet_national", $data['idConfig']); + $plr_user_wallet_cash_national = $this->user_model->getPalierConfigWallet("user_wallet_cash_national", $data['idConfig']); + $plr_agent_depot_wallet_ilink_national = $this->user_model->getPalierConfigWallet("agent_depot_wallet_ilink_national" , $data['idConfig']); + $plr_agent_depot_autre_wallet_national = $this->user_model->getPalierConfigWallet("agent_depot_autre_wallet_national" , $data['idConfig']); + $plr_agent_cash_cash_national = $this->user_model->getPalierConfigWallet("agent_cash_cash_national", $data['idConfig']); + + $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_ilink = $plr_agent_depot_wallet_ilink ? $plr_agent_depot_wallet_ilink->result() : []; + $plr_agent_depot_autre_wallet = $plr_agent_depot_autre_wallet ? $plr_agent_depot_autre_wallet->result() : []; + $plr_agent_cash_cash = $plr_agent_cash_cash ? $plr_agent_cash_cash->result() : []; + + $plr_user_wallet_wallet_national = $plr_user_wallet_wallet_national ? $plr_user_wallet_wallet_national->result() : []; + $plr_user_wallet_cash_national = $plr_user_wallet_cash_national ? $plr_user_wallet_cash_national->result() : []; + $plr_agent_depot_wallet_ilink_national = $plr_agent_depot_wallet_ilink_national ? $plr_agent_depot_wallet_ilink_national->result() : []; + $plr_agent_depot_autre_wallet_national = $plr_agent_depot_autre_wallet_national ? $plr_agent_depot_autre_wallet_national->result() : []; + $plr_agent_cash_cash_national = $plr_agent_cash_cash_national ? $plr_agent_cash_cash_national->result() : []; + + $taxes = $taxes ? $taxes->result() : []; + $taxesNationales = array_filter($taxes, function ($tax) { + return $tax->destination == 'national'; + }); + + $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) ? $this->calculateFees1($plr_user_wallet_wallet, $montant) : $this->calculateFees1($plr_user_wallet_wallet_national, $montant); + $taxe = ($init_country != $final_country) ? $this->calculateTax($taxesInternationales , $frais) : $this->calculateTax($taxesNationales ,$frais); + + $com_hyp += $frais ; + $this->session->set_userdata('com_hyp',$com_hyp); + break; + case 2: //Envoi de wallet à carte + $frais = $montant * $config->taux_com_user_wallet_carte / 100; +// $taxe = ($init_country != $final_country) ? $this->calculateTax($taxesInternationales , $frais) : $this->calculateTax($taxesNationales ,$frais); + + $com_hyp += $frais ; + $this->session->set_userdata('com_hyp',$com_hyp); + break; + case 3: //Envoi de wallet à cash + $frais = ($init_country != $final_country) ? $this->calculateFees1($plr_user_wallet_cash, $montant) : $this->calculateFees1($plr_user_wallet_cash_national, $montant); + $taxe = ($init_country != $final_country) ? $this->calculateTax($taxesInternationales , $frais) : $this->calculateTax($taxesNationales ,$frais); + + $com_hyp += $frais ; + $this->session->set_userdata('com_hyp',$com_hyp); +// $this->session->set_userdata('frais_retrait',$frais); + $code = $this->random_string(); + $data['message_code'] = ''.$code; + $this->user_model->insertSimulateur($frais,$montant-$frais-$taxe,$code); + break; + case 4: //Envoi de wallet à banque + // Non disponible + //Pas de taxes + break; +// case 5: //Envoi de carte à wallet +// $frais =$montant * $config->taux_com_user_carte_wallet / 100; +//// $taxe = ($init_country != $final_country) ? $this->calculateTax($taxesInternationales , $frais) : $this->calculateTax($taxesNationales ,$frais); +// break; +// case 6: //Envoi de carte à cash +// $frais =$montant * $config->taux_com_user_carte_cash / 100; +//// $taxe = ($init_country != $final_country) ? $this->calculateTax($taxesInternationales , $frais) : $this->calculateTax($taxesNationales ,$frais); +// break; + case 9: // Retrait de wallet en cash + $frais = ($init_country != $final_country) ? $this->calculateFees1($plr_user_wallet_cash, $montant) : $this->calculateFees1($plr_user_wallet_cash_national, $montant); + $taxe = ($init_country != $final_country) ? $this->calculateTax($taxesInternationales , $frais) : $this->calculateTax($taxesNationales ,$frais); + + $com_hyp += $frais ; + $this->session->set_userdata('com_hyp',$com_hyp); + $code = $this->random_string(); + $data['message_code'] = ''.$code; + $this->user_model->insertSimulateur($frais,$montant-$frais-$taxe,$code); + break; + case 10: //Retrait de carte vers wallet + $frais = $montant * $config->taux_com_user_carte_wallet / 100; + + $com_hyp += $frais * $config->taux_com_hyp_retrait_carte_cash_ilink / 100 ; + $com_bq += $frais * $config->taux_com_banque_retrait_carte_cash_ilink / 100 ; + $this->session->set_userdata('com_hyp',$com_hyp);$this->session->set_userdata('com_bq',$com_bq); + break; + case 11: // Retrait de carte vers cash + $frais = $montant * $config->taux_com_user_carte_cash / 100; + + $com_hyp += $frais * $config->taux_com_hyp_retrait_carte_cash_ilink / 100 ; + $com_bq += $frais * $config->taux_com_banque_retrait_carte_cash_ilink / 100 ; + $this->session->set_userdata('com_hyp',$com_hyp);$this->session->set_userdata('com_bq',$com_bq); + $code = $this->random_string(); + $data['message_code'] = ''.$code; + $this->user_model->insertSimulateur($frais * $config->taux_com_hyp_retrait_carte_cash / 100,$montant-$frais-$taxe,$code); + break; + case 12: // Agent - Retrait en cash +// empty +//Sauvegarder les frais lors de chaque operation d'envoi + if(isset($code)){ + $simulateur = $this->user_model->getSimulateur($code); + if($simulateur){ + $part_ag = $simulateur->first_row()->com_hyp * $config->taux_com_ag_retrait_cash/ 100 ; + $part_sup = $simulateur->first_row()->com_hyp * $config->taux_com_sup_retrait_cash/ 100; + $com_ag += $part_ag; + $com_sup += $part_sup ; + $com_hyp -= ($part_ag + $part_sup); + $this->session->set_userdata('com_ag',$com_ag);$this->session->set_userdata('com_sup',$com_sup); + $this->session->set_userdata('com_hyp',$com_hyp); + }else{ + $data['error_simulateur'] = 'Code de retrait incorrect'; + } + } + + break; + case 13: // Agent - Retrait de la carte vers cash + $frais = $montant * $config->taux_com_wallet_ag_carte_cash / 100; + + $com_ag += $frais * $config->taux_com_ag_retrait_carte_cash/ 100 ; + $com_sup += $frais * $config->taux_com_sup_retrait_carte_cash / 100 ; + $com_hyp += $frais * $config->taux_com_hyp_retrait_carte_cash / 100 ; + $com_bq += $frais * $config->taux_com_banque_retrait_carte_cash / 100 ; + $this->session->set_userdata('com_ag',$com_ag);$this->session->set_userdata('com_sup',$com_sup); + $this->session->set_userdata('com_hyp',$com_hyp);$this->session->set_userdata('com_bq',$com_bq); + break; + case 14: // Agent - Envoi de cash vers wallet iLink + $frais = ($init_country != $final_country) ? $this->calculateFees1($plr_agent_depot_wallet_ilink, $montant) : $this->calculateFees1($plr_agent_depot_wallet_ilink_national, $montant); + $taxe = ($init_country != $final_country) ? $this->calculateTax($taxesInternationales , $frais) : $this->calculateTax($taxesNationales ,$frais); + $com_ag += $frais * $config->taux_com_ag_envoi_cash / 100 ; + $com_sup += $frais * $config->taux_com_sup_envoi_cash / 100 ; + $com_hyp += $frais * $config->taux_com_hyp_envoi_cash / 100 ; + $this->session->set_userdata('com_ag',$com_ag);$this->session->set_userdata('com_sup',$com_sup); + $this->session->set_userdata('com_hyp',$com_hyp); + break; + case 15: // Agent - Envoi de cash vers autre wallet + $frais = ($init_country != $final_country) ? $this->calculateFees1($plr_agent_depot_autre_wallet, $montant) : $this->calculateFees1($plr_agent_depot_autre_wallet_national, $montant); + $taxe = ($init_country != $final_country) ? $this->calculateTax($taxesInternationales , $frais) : $this->calculateTax($taxesNationales ,$frais); + $com_ag += $frais * $config->taux_com_ag_envoi_cash / 100 ; + $com_sup += $frais * $config->taux_com_sup_envoi_cash / 100 ; + $com_hyp += $frais * $config->taux_com_hyp_envoi_cash / 100 ; + $this->session->set_userdata('com_ag',$com_ag);$this->session->set_userdata('com_sup',$com_sup); + $this->session->set_userdata('com_hyp',$com_hyp); + break; + case 16: // Agent - Envoi de cash vers une carte visa + $frais = $montant * $config->taux_com_wallet_ag_envoi_cash_carte / 100; + $com_ag += $frais * $config->taux_com_ag_depot_cash_carte/ 100 ; + $com_sup += $frais * $config->taux_com_sup_depot_cash_carte / 100 ; + $com_hyp += $frais * $config->taux_com_hyp_depot_cash_carte / 100 ; + $com_bq += $frais * $config->taux_com_banque_depot_cash_carte / 100 ; + $this->session->set_userdata('com_ag',$com_ag);$this->session->set_userdata('com_sup',$com_sup); + $this->session->set_userdata('com_hyp',$com_hyp);$this->session->set_userdata('com_bq',$com_bq); + break; + case 17: // Agent - Envoi de cash vers cash + $frais = ($init_country != $final_country) ? $this->calculateFees1($plr_agent_cash_cash, $montant) : $this->calculateFees1($plr_agent_cash_cash_national, $montant); + $taxe = ($init_country != $final_country) ? $this->calculateTax($taxesInternationales , $frais) : $this->calculateTax($taxesNationales ,$frais); + $com_ag += $frais * $config->taux_com_ag_envoi_cash / 100 ; + $com_sup += $frais * $config->taux_com_sup_envoi_cash / 100 ; + $com_hyp += $frais * $config->taux_com_hyp_envoi_cash / 100 ; + $this->session->set_userdata('com_ag',$com_ag);$this->session->set_userdata('com_sup',$com_sup); + $this->session->set_userdata('com_hyp',$com_hyp); + $code = $this->random_string(); + $data['message_code'] = ''.$code; + $this->user_model->insertSimulateur($frais,$montant-$frais-$taxe,$code); + break; + case 18: // Agent - Envoi de cash vers banque + // Indisponible + break; + } + } + } + + $data['showResult'] = $showResult; + $data['frais'] = $frais; + $data['taxe'] = $taxe; + + $data['operation'] = $operation; + $data['init_country'] = $init_country; + $data['final_country'] = $final_country; + + $data['com_ag'] = $com_ag; + $data['com_sup'] = $com_sup; + $data['com_hyp'] = $com_hyp; + $data['com_bq'] = $com_bq; - $data['taxes'] = $this->user_model->getTaxes($data['idConfig']); $operations = [ new Operation(1, $this->lang->line('op1')), new Operation(2, $this->lang->line('op2')), @@ -693,6 +893,71 @@ class Hyperviseur_dash extends CI_Controller $this->load->view('footer'); } } + + //Calcul des frais internationaux + function calculateFees1(array $paliers, $montant) + { + $size = sizeof($paliers); + $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) { + $palier = $p; + break; + } + } + + 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; + } + } + +//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; + else + 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; + } + + public function random_string() + { + $character_set_array = array(); + $character_set_array[] = array('count' => 7, 'characters' => 'abcdefghjkmnpqrstuvwxyz'); + $character_set_array[] = array('count' => 1, 'characters' => '23456789'); + $temp_array = array(); + foreach ($character_set_array as $character_set) { + for ($i = 0; $i < $character_set['count']; $i++) { + $temp_array[] = $character_set['characters'][rand(0, strlen($character_set['characters']) - 1)]; + } + } + shuffle($temp_array); + return implode('', $temp_array); + } } class Operation diff --git a/application/language/french/message_lang.php b/application/language/french/message_lang.php index 7aded7aa..8849f168 100755 --- a/application/language/french/message_lang.php +++ b/application/language/french/message_lang.php @@ -348,6 +348,8 @@ $lang['rate_com_bq_remove_cart'] = 'Taux de commission de la banque sur operation de retrait dans carte '; $lang['rate_com_agent_cart_cash'] = 'Taux de commission de l\'agent géolocalisé sur retrait carte à cash '; $lang['rate_com_agent_cash_cart'] = 'Taux de commission de l\'agent géolocalisé sur depot cash vers carte '; + $lang['rate_com_hyp_remove_cart_ilink'] = 'Taux de commission hyperviseur sur operation de retrait dans carte pour utilisateur '; + $lang['rate_com_bq_remove_cart_ilink'] = 'Taux de commission hyperviseur sur operation de retrait dans carte '; // Gestion de la monnaie $lang['currency'] = 'Monnaie'; @@ -392,5 +394,10 @@ $lang['op15'] = 'Agent - Envoi de cash vers autre wallet'; $lang['op16'] = 'Agent - Envoi de cash vers une carte visa'; $lang['op17'] = 'Agent - Envoi de cash vers cash'; $lang['op18'] = 'Agent - Envoi de cash vers banque'; -$lang['new_tax'] = 'Nouvelle taxe' +$lang['new_tax'] = 'Nouvelle taxe'; +$lang['ilink_first_rule'] = 'La somme des répartitions de commission sur opération d\'envoi d\'argent doit etre égale à 100 %'; +$lang['ilink_second_rule'] = 'La somme des répartitions de commission sur opération de retrait d\'argent doit etre égale à 100 %'; +$lang['ilink_third_rule'] = 'La somme des répartitions de commission sur opération de depot cash vers carte doit etre égale à 100 %'; +$lang['ilink_fourth_rule'] = 'La somme des répartitions de commission sur opération de retrait dans la carte doit etre égale à 100 %'; +$lang['ilink_fifth_rule'] = 'La somme des répartitions de commission sur opération de retrait dans la carte pour utilisateur iLink doit etre égale à 100 %'; ?> diff --git a/application/models/User_model.php b/application/models/User_model.php index c2e2bec2..b1696c8b 100755 --- a/application/models/User_model.php +++ b/application/models/User_model.php @@ -2291,11 +2291,11 @@ class User_model extends CI_Model } public function updateConfigWalletIlink($taux_u_w_cart,$taux_u_c_w,$taux_u_c_c,$taux_ag_d_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){ + $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 ,$taux_hyp_r_cart_ilink,$taux_bq_r_cart_ilink ,$idConfig){ $sql = "UPDATE `configWallet` SET `taux_com_user_wallet_carte` = ?, `taux_com_user_carte_wallet` = ?, `taux_com_user_carte_cash` = ?, `taux_com_wallet_ag_envoi_cash_carte` = ?,`taux_com_wallet_ag_carte_cash` = ?, `taux_com_wallet_ag_depot_carte` = ?, `taux_com_ag_envoi_cash` = ?, `taux_com_sup_envoi_cash` = ?, `taux_com_hyp_envoi_cash` = ?, `taux_com_ag_retrait_cash` = ?, `taux_com_sup_retrait_cash` = ?, `taux_com_hyp_retrait_cash` = ?, - `taux_com_ag_depot_cash_carte` = ?, `taux_com_sup_depot_cash_carte` = ?, `taux_com_hyp_depot_cash_carte` = ?, `taux_com_banque_depot_cash_carte` = ?, `taux_com_ag_retrait_carte_cash` = ?, `taux_com_sup_retrait_carte_cash` = ?, `taux_com_hyp_retrait_carte_cash` = ?, `taux_com_banque_retrait_carte_cash` = ? WHERE (`id` = ?);"; + `taux_com_ag_depot_cash_carte` = ?, `taux_com_sup_depot_cash_carte` = ?, `taux_com_hyp_depot_cash_carte` = ?, `taux_com_banque_depot_cash_carte` = ?, `taux_com_ag_retrait_carte_cash` = ?, `taux_com_sup_retrait_carte_cash` = ?, `taux_com_hyp_retrait_carte_cash` = ?, `taux_com_banque_retrait_carte_cash` = ?, `taux_com_hyp_retrait_carte_cash_ilink` = ?, `taux_com_banque_retrait_carte_cash_ilink` = ? WHERE (`id` = ?);"; $query = $this->db->query($sql , array($taux_u_w_cart,$taux_u_c_w,$taux_u_c_c, $taux_ag_d_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)); + $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 , $taux_hyp_r_cart_ilink,$taux_bq_r_cart_ilink,$idConfig)); return $query; } @@ -2395,4 +2395,19 @@ class User_model extends CI_Model } } + public function insertSimulateur($frais , $montant ,$code){ + $sql = "INSERT INTO `simulateur` (`com_hyp` , `montant_retrait`, `code`) VALUES ( ?, ?, ?);"; + $query = $this->db->query($sql , array($frais,$montant,$code)); + return $query; + } + + public function getSimulateur($code){ + $sql = "SELECT * FROM `simulateur` WHERE `code` = ?;"; + $query = $this->db->query($sql , array($code)); + if($query->num_rows()>0){ + return $query; + }else{ + return false; + } + } } diff --git a/application/views/calculator.php b/application/views/calculator.php index 5e2b0c7d..91f76c48 100755 --- a/application/views/calculator.php +++ b/application/views/calculator.php @@ -14,145 +14,207 @@ use Brick\Money\Money; extract($_POST); -$showResult = false; -$frais = 0; -$taxe = 0; -$config = $hasWallet->first_row(); +//$showResult = false; +//$frais = 0; +//$taxe = 0; +//$config = $hasWallet->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_ilink = $plr_agent_depot_wallet_ilink ? $plr_agent_depot_wallet_ilink->result() : []; -$plr_agent_depot_autre_wallet = $plr_agent_depot_autre_wallet ? $plr_agent_depot_autre_wallet->result() : []; -$plr_agent_cash_cash = $plr_agent_cash_cash ? $plr_agent_cash_cash->result() : []; +////Simulateur +//$com_ag = $this->session->userdata('com_ag') ? $this->session->userdata('com_ag') : 0 ; +//$com_sup = $this->session->userdata('com_sup') ? $this->session->userdata('com_sup') : 0 ; +//$com_hyp = $this->session->userdata('com_hyp') ? $this->session->userdata('com_hyp') : 0 ; +//$com_bq = $this->session->userdata('com_bq') ? $this->session->userdata('com_bq') : 0 ; +//$frais_retrait = $this->session->userdata('frais_retrait') ? $this->session->userdata('frais_retrait') : 0 ; -$plr_user_wallet_wallet_national = $plr_user_wallet_wallet_national ? $plr_user_wallet_wallet_national->result() : []; -$plr_user_wallet_cash_national = $plr_user_wallet_cash_national ? $plr_user_wallet_cash_national->result() : []; -$plr_agent_depot_wallet_ilink_national = $plr_agent_depot_wallet_ilink_national ? $plr_agent_depot_wallet_ilink_national->result() : []; -$plr_agent_depot_autre_wallet_national = $plr_agent_depot_autre_wallet_national ? $plr_agent_depot_autre_wallet_national->result() : []; -$plr_agent_cash_cash_national = $plr_agent_cash_cash_national ? $plr_agent_cash_cash_national->result() : []; - -$taxes = $taxes ? $taxes->result() : []; -$taxesNationales = array_filter($taxes, function ($tax) { - return $tax->destination == 'national'; -}); - -$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) : calculateFees1($plr_user_wallet_wallet_national, $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; +//$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_ilink = $plr_agent_depot_wallet_ilink ? $plr_agent_depot_wallet_ilink->result() : []; +//$plr_agent_depot_autre_wallet = $plr_agent_depot_autre_wallet ? $plr_agent_depot_autre_wallet->result() : []; +//$plr_agent_cash_cash = $plr_agent_cash_cash ? $plr_agent_cash_cash->result() : []; +// +//$plr_user_wallet_wallet_national = $plr_user_wallet_wallet_national ? $plr_user_wallet_wallet_national->result() : []; +//$plr_user_wallet_cash_national = $plr_user_wallet_cash_national ? $plr_user_wallet_cash_national->result() : []; +//$plr_agent_depot_wallet_ilink_national = $plr_agent_depot_wallet_ilink_national ? $plr_agent_depot_wallet_ilink_national->result() : []; +//$plr_agent_depot_autre_wallet_national = $plr_agent_depot_autre_wallet_national ? $plr_agent_depot_autre_wallet_national->result() : []; +//$plr_agent_cash_cash_national = $plr_agent_cash_cash_national ? $plr_agent_cash_cash_national->result() : []; +// +//$taxes = $taxes ? $taxes->result() : []; +//$taxesNationales = array_filter($taxes, function ($tax) { +// return $tax->destination == 'national'; +//}); +// +//$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) : calculateFees1($plr_user_wallet_wallet_national, $montant); // $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) : calculateFees1($plr_user_wallet_cash_national, $montant); - $taxe = ($init_country != $final_country) ? calculateTax($taxesInternationales , $frais) : calculateTax($taxesNationales ,$frais); - break; - case 4: //Envoi de wallet à banque - // Non disponible - //Pas de taxes - 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); +// +// $com_hyp += $frais ; +// $this->session->set_userdata('com_hyp',$com_hyp); // break; -// case 6: //Envoi de carte à cash -// $frais =$montant * $config->taux_com_user_carte_cash / 100; +// 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); +// +// $com_hyp += $frais ; +// $this->session->set_userdata('com_hyp',$com_hyp); // break; - case 9: // Retrait de wallet en cash - $frais = ($init_country != $final_country) ? calculateFees1($plr_user_wallet_cash, $montant) : calculateFees1($plr_user_wallet_cash_national, $montant); - $taxe = ($init_country != $final_country) ? calculateTax($taxesInternationales , $frais) : calculateTax($taxesNationales ,$frais); - 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; - case 12: // Agent - Retrait en cash -// empty - break; - case 13: // Agent - Retrait de la carte vers cash - $frais = $montant * $config->taux_com_wallet_ag_carte_cash / 100; - break; - case 14: // Agent - Envoi de cash vers wallet iLink - $frais = ($init_country != $final_country) ? calculateFees1($plr_agent_depot_wallet_ilink, $montant) : calculateFees1($plr_agent_depot_wallet_ilink_national, $montant); - $taxe = ($init_country != $final_country) ? calculateTax($taxesInternationales , $frais) : calculateTax($taxesNationales ,$frais); - break; - case 15: // Agent - Envoi de cash vers autre wallet - $frais = ($init_country != $final_country) ? calculateFees1($plr_agent_depot_autre_wallet, $montant) : calculateFees1($plr_agent_depot_autre_wallet_national, $montant); - $taxe = ($init_country != $final_country) ? calculateTax($taxesInternationales , $frais) : calculateTax($taxesNationales ,$frais); - break; - case 16: // Agent - Envoi de cash vers une carte visa - $frais = $montant * $config->taux_com_wallet_ag_envoi_cash_carte / 100; - break; - case 17: // Agent - Envoi de cash vers cash - $frais = ($init_country != $final_country) ? calculateFees1($plr_agent_cash_cash, $montant) : calculateFees1($plr_agent_cash_cash_national, $montant); - $taxe = ($init_country != $final_country) ? calculateTax($taxesInternationales , $frais) : calculateTax($taxesNationales ,$frais); - break; - case 18: // Agent - Envoi de cash vers banque - // Indisponible - break; - } -} +// case 3: //Envoi de wallet à cash +// $frais = ($init_country != $final_country) ? calculateFees1($plr_user_wallet_cash, $montant) : calculateFees1($plr_user_wallet_cash_national, $montant); +// $taxe = ($init_country != $final_country) ? calculateTax($taxesInternationales , $frais) : calculateTax($taxesNationales ,$frais); +// +// $com_hyp += $frais ; +// $this->session->set_userdata('com_hyp',$com_hyp); +// $this->session->set_userdata('frais_retrait',$frais); +// break; +// case 4: //Envoi de wallet à banque +// // Non disponible +// //Pas de taxes +// 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 = ($init_country != $final_country) ? calculateFees1($plr_user_wallet_cash, $montant) : calculateFees1($plr_user_wallet_cash_national, $montant); +// $taxe = ($init_country != $final_country) ? calculateTax($taxesInternationales , $frais) : calculateTax($taxesNationales ,$frais); +// +// $com_hyp += $frais ; +// $this->session->set_userdata('com_hyp',$com_hyp); +// break; +// case 10: //Retrait de carte vers wallet +// $frais = $montant * $config->taux_com_user_carte_wallet / 100; +// +// $com_hyp += $frais * $config->taux_com_hyp_retrait_carte_cash / 100 ; +// $com_bq += $frais * $config->taux_com_banque_retrait_carte_cash / 100 ; +// $this->session->set_userdata('com_hyp',$com_hyp);$this->session->set_userdata('com_bq',$com_bq); +// break; +// case 11: // Retrait de carte vers cash +// $frais = $montant * $config->taux_com_user_carte_cash / 100; +// +// $com_hyp += $frais * $config->taux_com_hyp_retrait_carte_cash / 100 ; +// $com_bq += $frais * $config->taux_com_banque_retrait_carte_cash / 100 ; +// $this->session->set_userdata('com_hyp',$com_hyp);$this->session->set_userdata('com_bq',$com_bq); +// break; +// case 12: // Agent - Retrait en cash +//// empty +////Sauvegarder les frais lors de chaque operation d'envoi +// $com_ag += $frais_retrait * $config->taux_com_ag_retrait_cash/ 100 ; +// $com_sup += $frais_retrait * $config->taux_com_sup_retrait_cash/ 100 ; +// $com_hyp -= ($com_ag + $com_sup); +// $this->session->set_userdata('com_ag',$com_ag);$this->session->set_userdata('com_sup',$com_sup); +// $this->session->set_userdata('com_hyp',$com_hyp); +// break; +// case 13: // Agent - Retrait de la carte vers cash +// $frais = $montant * $config->taux_com_wallet_ag_carte_cash / 100; +// +// $com_ag += $frais * $config->taux_com_ag_retrait_carte_cash/ 100 ; +// $com_sup += $frais * $config->taux_com_sup_retrait_carte_cash / 100 ; +// $com_hyp += $frais * $config->taux_com_hyp_retrait_carte_cash / 100 ; +// $com_bq += $frais * $config->taux_com_banque_retrait_carte_cash / 100 ; +// $this->session->set_userdata('com_ag',$com_ag);$this->session->set_userdata('com_sup',$com_sup); +// $this->session->set_userdata('com_hyp',$com_hyp);$this->session->set_userdata('com_bq',$com_bq); +// break; +// case 14: // Agent - Envoi de cash vers wallet iLink +// $frais = ($init_country != $final_country) ? calculateFees1($plr_agent_depot_wallet_ilink, $montant) : calculateFees1($plr_agent_depot_wallet_ilink_national, $montant); +// $taxe = ($init_country != $final_country) ? calculateTax($taxesInternationales , $frais) : calculateTax($taxesNationales ,$frais); +// $com_ag += $frais * $config->taux_com_ag_envoi_cash / 100 ; +// $com_sup += $frais * $config->taux_com_sup_envoi_cash / 100 ; +// $com_hyp += $frais * $config->taux_com_hyp_envoi_cash / 100 ; +// $this->session->set_userdata('com_ag',$com_ag);$this->session->set_userdata('com_sup',$com_sup); +// $this->session->set_userdata('com_hyp',$com_hyp); +// break; +// case 15: // Agent - Envoi de cash vers autre wallet +// $frais = ($init_country != $final_country) ? calculateFees1($plr_agent_depot_autre_wallet, $montant) : calculateFees1($plr_agent_depot_autre_wallet_national, $montant); +// $taxe = ($init_country != $final_country) ? calculateTax($taxesInternationales , $frais) : calculateTax($taxesNationales ,$frais); +// $com_ag += $frais * $config->taux_com_ag_envoi_cash / 100 ; +// $com_sup += $frais * $config->taux_com_sup_envoi_cash / 100 ; +// $com_hyp += $frais * $config->taux_com_hyp_envoi_cash / 100 ; +// $this->session->set_userdata('com_ag',$com_ag);$this->session->set_userdata('com_sup',$com_sup); +// $this->session->set_userdata('com_hyp',$com_hyp); +// break; +// case 16: // Agent - Envoi de cash vers une carte visa +// $frais = $montant * $config->taux_com_wallet_ag_envoi_cash_carte / 100; +// $com_ag += $frais * $config->taux_com_ag_depot_cash_carte/ 100 ; +// $com_sup += $frais * $config->taux_com_sup_depot_cash_carte / 100 ; +// $com_hyp += $frais * $config->taux_com_hyp_depot_cash_carte / 100 ; +// $com_bq += $frais * $config->taux_com_banque_depot_cash_carte / 100 ; +// $this->session->set_userdata('com_ag',$com_ag);$this->session->set_userdata('com_sup',$com_sup); +// $this->session->set_userdata('com_hyp',$com_hyp);$this->session->set_userdata('com_bq',$com_bq); +// break; +// case 17: // Agent - Envoi de cash vers cash +// $frais = ($init_country != $final_country) ? calculateFees1($plr_agent_cash_cash, $montant) : calculateFees1($plr_agent_cash_cash_national, $montant); +// $taxe = ($init_country != $final_country) ? calculateTax($taxesInternationales , $frais) : calculateTax($taxesNationales ,$frais); +// $com_ag += $frais * $config->taux_com_ag_envoi_cash / 100 ; +// $com_sup += $frais * $config->taux_com_sup_envoi_cash / 100 ; +// $com_hyp += $frais * $config->taux_com_hyp_envoi_cash / 100 ; +// $this->session->set_userdata('com_ag',$com_ag);$this->session->set_userdata('com_sup',$com_sup); +// $this->session->set_userdata('com_hyp',$com_hyp); +// break; +// case 18: // Agent - Envoi de cash vers banque +// // Indisponible +// break; +// } +//} -//Calcul des frais internationaux -function calculateFees1(array $paliers, $montant) -{ - $size = sizeof($paliers); - $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) { - $palier = $p; - break; - } - } - - 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; - } -} - -//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; - else - 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; -} +////Calcul des frais internationaux +//function calculateFees1(array $paliers, $montant) +//{ +// $size = sizeof($paliers); +// $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) { +// $palier = $p; +// break; +// } +// } +// +// 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; +// } +//} +// +////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; +// else +// 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'; @@ -223,7 +285,7 @@ $converter = new CurrencyConverter($provider);