diff --git a/app/Http/Controllers/iLinkTransactionController.php b/app/Http/Controllers/iLinkTransactionController.php index 328f2f0..2d6ccc3 100755 --- a/app/Http/Controllers/iLinkTransactionController.php +++ b/app/Http/Controllers/iLinkTransactionController.php @@ -783,12 +783,47 @@ class iLinkTransactionController extends Controller $frais = ($init_country != $request->final_country) ? $this->calculateFees($plr_agent_cash_cash, $request->montant) : $this->calculateFees($plr_agent_cash_cash_national, $request->montant); $taxe = ($init_country != $request->final_country) ? $this->calculateTax($taxesInternationales, $frais) : $this->calculateTax($taxesNationales, $frais); $montantRetrait = $request->montant - $frais - $taxe; - $commisionAgent = floatval($frais * $config->taux_com_ag_envoi_cash / 100); - $commisionSuper = floatval($frais * $config->taux_com_sup_envoi_cash / 100); - $commisionHyper = floatval($frais * $config->taux_com_hyp_envoi_cash / 100); - $transaction->montant_net = $montantRetrait; $transaction->montant_net_final_country = $this->toMoneyAmount($transaction->montant_net, $init_country, $request->final_country); + + $configPayeur = ConfigWallet::where('id_network', $request->network_destinataire)->firstOrFail(); + if ($init_country != $request->final_country) { + $reseauPayeur = PayingNetwork::where('id_network', $request->network_destinataire)->where('id_configWallet', $config->id)->firstOrFail(); + $transaction->part_reseau_payeur = $frais * $reseauPayeur->taux_partage / 100; + $transaction->part_reseau_emetteur = $frais - $transaction->part_reseau_payeur; + } else { + $transaction->part_reseau_payeur = 0; + $transaction->part_reseau_emetteur = $frais; + } + + $transaction->part_reseau_payeur_final_country = $this->toMoneyAmount($transaction->part_reseau_payeur, $init_country, $request->final_country); + if (isset($reseauPayeur)) + $reseauPayeur->balance_com += $transaction->part_reseau_payeur_final_country; + + if ($configPayeur->type == 'ilink') { + //Hyperviseur payeur + $hyperviseurPayeur = AgentPlus::where('category', 'hyper')->where('network_id', $request->network_destinataire)->firstOrFail(); + if ($hyperviseurPayeur->id == $hyperviseur->id) { //Si c'est le reseau payeur est aussi emetteur + $walletHyperviseur->balance_com += $transaction->part_reseau_payeur; + $transaction->id_wallet_hyp_payeur = $walletHyperviseur->id; + } else { + $wallet_agent_hypPayeur = WalletAgent::where('agent_id', $hyperviseurPayeur->id)->firstOrFail(); + $walletHyperviseurPayeur = Wallet::findOrFail($wallet_agent_hypPayeur->wallet_id); + $walletHyperviseurPayeur->balance_com += $this->toMoneyAmount($transaction->part_reseau_payeur, $init_country, $request->final_country); + $transaction->id_wallet_hyp_payeur = $walletHyperviseurPayeur->id; + $walletHyperviseurPayeur->save(); + } + } else { + //Emettre requete SSL vers wallet extene correspondant pour recharger le compte dont l'id est : +// $transaction->id_destinataire ; + // et le montant est: +// $montantDepot; + } + + $commisionAgent = floatval($transaction->part_reseau_emetteur * $config->taux_com_ag_envoi_cash / 100); + $commisionSuper = floatval($transaction->part_reseau_emetteur * $config->taux_com_sup_envoi_cash / 100); + $commisionHyper = floatval($transaction->part_reseau_emetteur * $config->taux_com_hyp_envoi_cash / 100); + $walletAgent->balance_com += $commisionAgent; $transaction->commission_ag = $commisionAgent; $walletSuperviseur->balance_com += $commisionSuper; @@ -810,6 +845,8 @@ class iLinkTransactionController extends Controller $transaction->taxe = $taxe; $transaction->date = new \DateTime(); $transaction->status_retrait = 0; + if (isset($reseauPayeur)) + $reseauPayeur->save(); $walletAgent->save(); $walletSuperviseur->save(); $walletHyperviseur->save();