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() : []; $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; // $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); // 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); 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; } } //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'; // 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); $configuration = new PDOProviderConfiguration(); $configuration->tableName = 'exchange_rate'; $configuration->exchangeRateColumnName = 'exchange_rate'; $configuration->targetCurrencyColumnName = 'target_currency'; $configuration->sourceCurrencyCode = $baseCurrency; // this provider loads exchange rates from your database $provider = new PDOProvider($pdo, $configuration); // this provider calculates exchange rates relative to the base currency $provider = new BaseCurrencyProvider($provider, $baseCurrency); // this currency converter can now handle any currency pair $converter = new CurrencyConverter($provider); //$money = Money::of('1', 'USD'); //$mone2 = $converter->convert($money, 'XAF', RoundingMode::DOWN); ?>

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

Erreur!

Success!

num_rows(); if ($numrows > 0) { ?> lang->line('no_country'); } ?> lang->line('no_country'); } ?>
0) { ?> lang->line('no_operation'); } ?> lang->line('no_operation'); } ?>
num_rows(); if ($numrows > 0) { ?> lang->line('no_country'); } ?> lang->line('no_country'); } ?>
id == $operation; }); $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) { return $c->id == $final_country; }); $op = reset($r1); $d = reset($r2); $f = reset($r3); ?>