+ Change Agent - Retrait en cash method

This commit is contained in:
Djery-Tom 2020-07-07 19:17:07 +01:00
parent 6c0c4dbbce
commit 95127012a8
4 changed files with 80 additions and 4 deletions

View File

@ -5,6 +5,7 @@ namespace App\Http\Controllers;
use App\Models\ConfigWallet; use App\Models\ConfigWallet;
use App\Models\Network; use App\Models\Network;
use App\Models\NetworksAgent; use App\Models\NetworksAgent;
use App\Models\TransfertCommissionTransaction;
use App\Models\Wallet; use App\Models\Wallet;
use App\Models\WalletTransaction; use App\Models\WalletTransaction;
use App\Traits\ApiResponser; use App\Traits\ApiResponser;
@ -33,9 +34,17 @@ class CommissionController extends Controller
if($wallet->balance_com <=0 ) if($wallet->balance_com <=0 )
return $this->errorResponse(trans('messages.empty_com_balance') , Response::HTTP_BAD_REQUEST); return $this->errorResponse(trans('messages.empty_com_balance') , Response::HTTP_BAD_REQUEST);
$transaction = new TransfertCommissionTransaction();
$transaction->balance_princ_init = $wallet->balance_princ;
$transaction->balance_com_init = $wallet->balance_com;
$wallet->balance_princ += $wallet->balance_com; $wallet->balance_princ += $wallet->balance_com;
$wallet->balance_com = 0; $wallet->balance_com = 0;
$transaction->balance_princ_final = $wallet->balance_princ;
$transaction->balance_com_final = $wallet->balance_com;
$transaction->id_wallet_ag = $wallet->id;
$transaction->date = new \DateTime();
$wallet->save(); $wallet->save();
$transaction->save();
return $this->successResponse($wallet); return $this->successResponse($wallet);

View File

@ -1076,13 +1076,19 @@ class iLinkTransactionController extends Controller
$this->validate($request, [ $this->validate($request, [
'id_transaction' => 'required', 'id_transaction' => 'required',
'id_wallet_agent' => 'required|integer|min:0|not_in:0', 'id_wallet_agent' => 'required|integer|min:0|not_in:0',
'code_retrait' => 'required',
]); ]);
$transaction = WalletIlinkTransaction::select('nom_destinataire', 'prenom_destinataire', 'type_document_destinataire', 'id_document_destinataire', 'type',
'id_wallet_user', 'init_country', 'final_country', 'network_destinataire' ,'id_transaction')->where('id_transaction', $request->id_transaction)->first(); $transaction = WalletIlinkTransaction::select('nom_destinataire', 'prenom_destinataire', 'type_document_destinataire', 'id_document_destinataire', 'type','encrypted_code_retrait','code_retrait_salt',
'id_wallet_user', 'init_country', 'final_country', 'network_destinataire' ,'id_transaction', 'montant_net_final_country')->where('id_transaction', $request->id_transaction)->first();
if (!$transaction) if (!$transaction)
return $this->errorResponse(trans('errors.transaction_not_exist'), Response::HTTP_NOT_FOUND); return $this->errorResponse(trans('errors.transaction_not_exist'), Response::HTTP_NOT_FOUND);
if(!$this->checkPassword($request->code_retrait, $transaction->encrypted_code_retrait, $transaction->code_retrait_salt))
return $this->errorResponse(trans('errors.invalid_withdrawal_code'));
//Verifier que le reseau payeur est de type iLink //Verifier que le reseau payeur est de type iLink
if (in_array($transaction->type, [3, 17])) { if (in_array($transaction->type, [3, 17])) {
$configPayeur = ConfigWallet::where('id_network', $transaction->network_destinataire)->firstOrFail(); $configPayeur = ConfigWallet::where('id_network', $transaction->network_destinataire)->firstOrFail();
@ -1113,7 +1119,9 @@ class iLinkTransactionController extends Controller
$data->id_document_destinataire = $identification->id_identity_document; $data->id_document_destinataire = $identification->id_identity_document;
// $data->user_code = $transaction->wallet_user->user->user_code; // $data->user_code = $transaction->wallet_user->user->user_code;
} }
unset($data->type, $data->init_country, $data->final_country, $data->id_wallet_user, $data->network_destinataire); $data->montant = $transaction->type == 11 ? $transaction->montant_net : $transaction->montant_net_final_country;
unset($data->type, $data->init_country, $data->final_country, $data->id_wallet_user, $data->network_destinataire,$data->code_retrait_salt,
$data->encrypted_code_retrait,$data->montant_net_final_country, $data->montant_net);
return $this->successResponse($data); return $this->successResponse($data);
} }

View File

@ -0,0 +1,59 @@
<?php
/**
* Created by Reliese Model.
*/
namespace App\Models;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Model;
/**
* Class TransfertCommissionTransaction
*
* @property int $id
* @property float $balance_princ_init
* @property float $balance_com_init
* @property float $balance_princ_final
* @property float $balance_com_final
* @property Carbon $date
* @property int $id_wallet_ag
*
* @property Wallet $wallet
*
* @package App\Models
*/
class TransfertCommissionTransaction extends Model
{
protected $table = 'transfert_commission_transaction';
public $incrementing = false;
public $timestamps = false;
protected $casts = [
'id' => 'int',
'balance_princ_init' => 'float',
'balance_com_init' => 'float',
'balance_princ_final' => 'float',
'balance_com_final' => 'float',
'id_wallet_ag' => 'int'
];
protected $dates = [
'date'
];
protected $fillable = [
'balance_princ_init',
'balance_com_init',
'balance_princ_final',
'balance_com_final',
'date',
'id_wallet_ag'
];
public function wallet()
{
return $this->belongsTo(Wallet::class, 'id_wallet_ag');
}
}

View File

@ -40,7 +40,7 @@ $router->group(['prefix' => '/transactions'] , function () use ($router){
// Credits routes // Credits routes
$router->group(['prefix' => '/credits'] , function () use ($router){ $router->group(['prefix' => '/credits'] , function () use ($router){
$router->put('treatDemand/{id_demand}','CreditController@treatDemand'); $router->put('treatDemand/{id_demand}','CreditfController@treatDemand');
$router->put('cancelDemand/{id_demand}','CreditController@cancelDemand'); $router->put('cancelDemand/{id_demand}','CreditController@cancelDemand');
}); });