+ Update method user wallet to cart
This commit is contained in:
parent
f208af131a
commit
fd7e7fead5
|
@ -21,6 +21,7 @@ use App\Traits\Helper;
|
|||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use function DeepCopy\deep_copy;
|
||||
use function GuzzleHttp\Promise\all;
|
||||
|
||||
class iLinkTransactionController extends Controller
|
||||
|
@ -220,9 +221,11 @@ class iLinkTransactionController extends Controller
|
|||
|
||||
if ($code == 200) {
|
||||
$walletUser->balance -= $transaction->montant;
|
||||
//Emettre une trame SSL pour recharger le compte de la banque partenaire du montant de sa commission
|
||||
$transaction->commission_banque = $frais * $config->taux_com_banque_envoi_wallet_carte_ilink / 100 ;
|
||||
|
||||
$walletHyperviseur->balance_com += $frais;
|
||||
$transaction->commission_hyp = $frais;
|
||||
$transaction->commission_hyp = $frais * $config->taux_com_hyp_envoi_wallet_carte_ilink / 100 ;
|
||||
$walletHyperviseur->balance_com += $transaction->commission_hyp;
|
||||
$transaction->id_wallet_hyp = $walletHyperviseur->id;
|
||||
$transaction->frais = $frais;
|
||||
$transaction->date = new \DateTime();
|
||||
|
@ -334,6 +337,7 @@ class iLinkTransactionController extends Controller
|
|||
if ($request->montant > $walletUser->balance) {
|
||||
return $this->errorResponse(trans('errors.insufficient_balance'));
|
||||
} else {
|
||||
$transaction->final_country = $init_country;
|
||||
$transaction->frais = $frais = $this->calculateFees($plr_user_wallet_cash_national, $request->montant);
|
||||
$transaction->taxe = $taxe = $this->calculateTax($taxesNationales, $frais);
|
||||
$transaction->montant_net = $montantRetrait = $transaction->montant - $frais - $taxe;
|
||||
|
@ -357,7 +361,7 @@ class iLinkTransactionController extends Controller
|
|||
$message = trans('messages.successful_user_remove_from_wallet_to_cash',
|
||||
['id_transaction' => $transaction->id_transaction, 'amount' => $this->toMoney($transaction->montant, $init_country), 'net' => $this->toMoney($montantRetrait, $init_country),
|
||||
'fees' => $this->toMoney($frais + $taxe, $init_country), 'code' => wordwrap($code_retrait, 4, ' ', true),
|
||||
'sender_code' => $user->user_code]);
|
||||
'sender_code' => $user->user_code , 'init_country' => $this->getCountryName($init_country),]);
|
||||
$this->sendMail($user->email, trans('messages.successful_transaction'), $message);
|
||||
return $this->successResponse($message . trans('messages.sent_by_mail'));
|
||||
}
|
||||
|
@ -475,35 +479,47 @@ class iLinkTransactionController extends Controller
|
|||
$this->validate($request, $transaction->remove_cash_rules());
|
||||
$agent = AgentPlus::findOrFail($network_agent->agent_id);
|
||||
if ($this->checkPassword($request->password, $agent->encrypted_password, $agent->salt)) {
|
||||
$transaction = WalletIlinkTransaction::find($request->id_transaction);
|
||||
$transaction = WalletIlinkTransaction::where('id_transaction',$request->id_transaction)->first();
|
||||
if ($transaction) {
|
||||
if ($transaction->status_retrait == 0) {
|
||||
if ($this->checkPassword($request->code_retrait, $transaction->encrypted_code_retrait, $transaction->code_retrait_salt)) {
|
||||
if ($transaction->montant_net == $request->montant) {
|
||||
$part_ag = floatval($transaction->frais * $config->taux_com_ag_retrait_cash / 100);
|
||||
$part_sup = floatval($transaction->frais * $config->taux_com_sup_retrait_cash / 100);
|
||||
$transactionRetrait = $transaction->replicate();
|
||||
$transactionRetrait->id = null;
|
||||
$transactionRetrait->id_transaction = $this->getTransactionID();
|
||||
|
||||
$transactionRetrait->commission_ag = floatval($transaction->frais * $config->taux_com_ag_retrait_cash / 100);
|
||||
$transactionRetrait->commission_sup = floatval($transaction->frais * $config->taux_com_sup_retrait_cash / 100);
|
||||
$transactionRetrait->commission_hyp = $transaction->frais - $transactionRetrait->commission_ag - $transactionRetrait->commission_sup;
|
||||
$walletAgent->balance_princ += $transaction->montant_net;
|
||||
$walletAgent->balance_com += $part_ag;
|
||||
$walletSuperviseur->balance_com += $part_sup;
|
||||
$walletHyperviseur->balance_com -= ($part_ag + $part_sup);
|
||||
$transaction->status_retrait = 1;
|
||||
$transaction->date_retrait = new \DateTime();
|
||||
$walletAgent->balance_com += $transactionRetrait->commission_ag;
|
||||
$walletSuperviseur->balance_com += $transactionRetrait->commission_sup;
|
||||
$walletHyperviseur->balance_com -= ( $transactionRetrait->commission_ag + $transactionRetrait->commission_sup);
|
||||
$transactionRetrait->status_retrait = $transaction->status_retrait = 1;
|
||||
$transactionRetrait->date_retrait = $transaction->date_retrait = new \DateTime();
|
||||
$transactionRetrait->date = new \DateTime();
|
||||
$walletAgent->save();
|
||||
$walletSuperviseur->save();
|
||||
$walletHyperviseur->save();
|
||||
$transaction->save();
|
||||
return $this->successResponse(trans('messages.successful_transaction'));
|
||||
$transactionRetrait->save();
|
||||
$message = trans('messages.successful_agent_remove_cash',
|
||||
['id_transaction' => $transactionRetrait->id_transaction, 'amount' => $this->toMoney($request->montant, $init_country),
|
||||
'commission' => $this->toMoney($transactionRetrait->commission_ag, $init_country), 'code' => wordwrap($request->code_retrait, 4, ' ', true),
|
||||
'id_transaction_retrait' => $transaction->id_transaction]);
|
||||
$this->sendMail($agent->email, trans('messages.successful_transaction'), $message);
|
||||
return $this->successResponse($message . trans('messages.sent_by_mail'));
|
||||
} else {
|
||||
return $this->errorResponse('Montant de retrait incorrect');
|
||||
return $this->errorResponse(trans('errors.incorrect_withdrawal_amount'));
|
||||
}
|
||||
} else {
|
||||
return $this->errorResponse('Code de retrait invalide');
|
||||
return $this->errorResponse(trans('errors.invalid_withdrawal_code'));
|
||||
}
|
||||
} else {
|
||||
return $this->errorResponse('Retrait déjà éffectuée');
|
||||
return $this->errorResponse(trans('errors.withdrawal_already_made'));
|
||||
}
|
||||
} else {
|
||||
return $this->errorResponse('Cette transaction n\'existe pas', Response::HTTP_NOT_FOUND);
|
||||
return $this->errorResponse(trans('errors.transaction_not_exist'), Response::HTTP_NOT_FOUND);
|
||||
}
|
||||
} else {
|
||||
return $this->errorResponse(trans('messages.incorrect_user_password'));
|
||||
|
@ -896,6 +912,28 @@ class iLinkTransactionController extends Controller
|
|||
|
||||
}
|
||||
|
||||
public function getTransactionRetrait(Request $request){
|
||||
$this->validate($request, [
|
||||
'id_transaction' =>'required',
|
||||
]);
|
||||
$transaction = WalletIlinkTransaction::select('nom_destinataire' , 'prenom_destinataire' ,'type_document_destinataire','id_document_destinataire' ,'type',
|
||||
'id_wallet_user')->where('id_transaction',$request->id_transaction)->first();
|
||||
if(!$transaction)
|
||||
return $this->errorResponse(trans('errors.transaction_not_exist'), Response::HTTP_NOT_FOUND);
|
||||
|
||||
if ($transaction->status_retrait != 0)
|
||||
return $this->errorResponse(trans('errors.withdrawal_already_made'));
|
||||
|
||||
$data = $transaction->replicate();
|
||||
if($transaction->type == 9){
|
||||
$data->nom_destinataire = $transaction->wallet_user->user->lastname;
|
||||
$data->prenom_destinataire = $transaction->wallet_user->user->firstname;
|
||||
$data->user_code = $transaction->wallet_user->user->user_code;
|
||||
}
|
||||
|
||||
return $this->successResponse($data);
|
||||
}
|
||||
|
||||
|
||||
private function getPaliers(array $paliers, $type)
|
||||
{
|
||||
|
|
|
@ -157,7 +157,7 @@ class WalletIlinkTransaction extends Model
|
|||
return $this->belongsTo(Wallet::class, 'id_wallet_hyp_payeur');
|
||||
}
|
||||
|
||||
public function wallets_user()
|
||||
public function wallet_user()
|
||||
{
|
||||
return $this->belongsTo(WalletsUser::class, 'id_wallet_user');
|
||||
}
|
||||
|
@ -218,7 +218,7 @@ class WalletIlinkTransaction extends Model
|
|||
|
||||
public function remove_cash_rules(){
|
||||
return [
|
||||
'id_transaction' =>'required|integer|min:0|not_in:0',
|
||||
'id_transaction' =>'required',
|
||||
'code_retrait' =>'required|size:16',
|
||||
];
|
||||
}
|
||||
|
|
|
@ -13,5 +13,9 @@ return [
|
|||
'insufficient_balance'=> 'The balance is insufficient to complete this transaction',
|
||||
'no_ilink_network' => 'Sorry, there is no iLink World network in your country',
|
||||
'wallet_country_not_match' => 'This recipient wallet code is not registered in the country :country',
|
||||
'no_bank_card_attached' => 'No bank card is attached to your account'
|
||||
'no_bank_card_attached' => 'No bank card is attached to your account',
|
||||
'transaction_not_exist' => 'This transaction does not exist',
|
||||
'withdrawal_already_made' => 'Withdrawal already made',
|
||||
'invalid_withdrawal_code' => 'Invalid withdrawal code',
|
||||
'incorrect_withdrawal_amount'=> 'Incorrect withdrawal amount',
|
||||
];
|
||||
|
|
|
@ -85,7 +85,9 @@ Transaction information:
|
|||
- Number : :id_transaction
|
||||
- Amount of the transaction : :amount
|
||||
- Fees and Taxes: :fees
|
||||
- Country of departure: :init_country
|
||||
- Net withdrawal amount : :net
|
||||
- Country of destination: :init_country
|
||||
- Issuer account : :sender_code
|
||||
- Withdrawal code : :code',
|
||||
'successful_user_remove_from_cart_to_wallet'=>'Withdrawing money from your card to your account
|
||||
|
@ -102,7 +104,7 @@ Transaction information :
|
|||
- Amount of the transaction: :amount
|
||||
- Fees: :fees
|
||||
- Net withdrawal amount: :net
|
||||
- Issuer account : :sender_code
|
||||
- User code : :sender_code
|
||||
- Card number : :cart_number
|
||||
- Withdrawal code : :code',
|
||||
];
|
||||
|
|
|
@ -13,5 +13,9 @@ return [
|
|||
'insufficient_balance'=> 'Le solde est insuffisant pour effectuer cette transaction',
|
||||
'no_ilink_network' => 'Désolé , il n\'existe pas de reseau iLink World dans votre pays',
|
||||
'wallet_country_not_match' => 'Ce code wallet destinataire n\'est pas enregistré dans le pays :country',
|
||||
'no_bank_card_attached' => 'Aucune carte bancaire n\'est rattachée à votre compte'
|
||||
'no_bank_card_attached' => 'Aucune carte bancaire n\'est rattachée à votre compte',
|
||||
'transaction_not_exist' => 'Cette transaction n\'existe pas',
|
||||
'withdrawal_already_made' => 'Retrait déjà éffectuée',
|
||||
'invalid_withdrawal_code' => 'Code de retrait invalide',
|
||||
'incorrect_withdrawal_amount'=> 'Montant de retrait incorrect',
|
||||
];
|
||||
|
|
|
@ -85,7 +85,9 @@ Informations de la transaction :
|
|||
- Numéro : :id_transaction
|
||||
- Montant de la transaction : :amount
|
||||
- Frais et Taxes: :fees
|
||||
- Pays de départ : :init_country
|
||||
- Montant net de retrait: :net
|
||||
- Pays de destination : :init_country
|
||||
- Compte émetteur : :sender_code
|
||||
- Code de retrait : :code',
|
||||
'successful_user_remove_from_cart_to_wallet'=>'Retrait d\'argent de votre carte vers votre compte
|
||||
|
@ -102,7 +104,14 @@ Informations de la transaction :
|
|||
- Montant de la transaction : :amount
|
||||
- Frais : :fees
|
||||
- Montant net de retrait: :net
|
||||
- Compte émetteur : :sender_code
|
||||
- Code utilisateur : :sender_code
|
||||
- Numero de la carte : :cart_number
|
||||
- Code de retrait : :code',
|
||||
'successful_agent_remove_cash'=>'Retrait d\'argent
|
||||
Informations de la transaction :
|
||||
- Numéro : :id_transaction
|
||||
- Montant de retrait : :amount
|
||||
- Votre commission : :commission
|
||||
- Numero de transaction de retrait : :id_transaction_retrait
|
||||
- Code de retrait : :code'
|
||||
];
|
||||
|
|
|
@ -33,6 +33,7 @@ $router->group(['prefix' => '/transactions'] , function () use ($router){
|
|||
$router->post('commission','iLinkTransactionController@calculateCommission');
|
||||
$router->get('user/{id_wallet_user}','iLinkTransactionController@lastUserTransactions');
|
||||
$router->get('agent/{id_wallet_agent}','iLinkTransactionController@lastAgentTransactions');
|
||||
$router->post('check_retraits','iLinkTransactionController@getTransactionRetrait');
|
||||
});
|
||||
});
|
||||
|
||||
|
|
Loading…
Reference in New Issue