diff --git a/app/Exports/RefundAmountImport.php b/app/Exports/RefundAmountExport.php similarity index 89% rename from app/Exports/RefundAmountImport.php rename to app/Exports/RefundAmountExport.php index 61b7413..dfef463 100644 --- a/app/Exports/RefundAmountImport.php +++ b/app/Exports/RefundAmountExport.php @@ -7,7 +7,7 @@ use Maatwebsite\Excel\Concerns\ShouldAutoSize; use Maatwebsite\Excel\Concerns\WithColumnFormatting; use PhpOffice\PhpSpreadsheet\Style\NumberFormat; -class RefundAmountImport implements FromArray, WithColumnFormatting, ShouldAutoSize +class RefundAmountExport implements FromArray, WithColumnFormatting, ShouldAutoSize { protected $data; diff --git a/app/Http/Controllers/HelperController.php b/app/Http/Controllers/HelperController.php index 24a98ce..1605d71 100755 --- a/app/Http/Controllers/HelperController.php +++ b/app/Http/Controllers/HelperController.php @@ -2,7 +2,8 @@ namespace App\Http\Controllers; -use App\Exports\RefundAmountImport; +use App\Exports\RefundAmountExport; +use App\Imports\RefundAmountImport; use App\Jobs\TestJob; use App\Models\AgentPlus; use App\Models\ConfigWallet; @@ -17,7 +18,9 @@ use App\Traits\ApiResponser; use App\Traits\Helper; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; +use Illuminate\Support\Facades\Log; use Maatwebsite\Excel\Facades\Excel; +use Throwable; class HelperController extends Controller { @@ -151,7 +154,7 @@ class HelperController extends Controller return $this->successResponse($codes); } - public function fixTransactionAmount() + public function calculateTransactionAmount() { $data = [['ID Wallet', 'Agent', 'Contact', 'Role', 'Parrain', 'Nombre de transactions', 'Montant à rembourser']]; // Calcul du montant a prelever pour tous les agents loc du reseau iLink World @@ -185,8 +188,37 @@ class HelperController extends Controller } } - $export = new RefundAmountImport($data); + $export = new RefundAmountExport($data); return Excel::download($export, 'refund.xlsx'); } + + public function fixTransactionAmount() + { + $data = Excel::toArray(new RefundAmountImport, storage_path('refund.xlsx')); + $result = []; + foreach ($data[0] as $key => $row) { + if ($key > 0) { + array_push($result, $row); + } + } + + try { + DB::beginTransaction(); + // Fix amount + foreach ($result as $r) { + if (isset($r[6])) { + $wallet = Wallet::find($r[0]); + $wallet->balance_com -= $r[6]; + $wallet->save(); + } + } + DB::commit(); + return $this->successResponse(trans('messages.success_treated_demand')); + } catch (Throwable $exception) { + DB::rollBack(); + Log::error($exception->getMessage()); + return $this->errorResponse(trans('errors.unexpected_error')); + } + } } diff --git a/app/Imports/RefundAmountImport.php b/app/Imports/RefundAmountImport.php new file mode 100644 index 0000000..fcc1715 --- /dev/null +++ b/app/Imports/RefundAmountImport.php @@ -0,0 +1,20 @@ +data = $data; +// } + + public function array(array $array) + { + // TODO: Implement array() method. + } +} diff --git a/app/Traits/ApiResponser.php b/app/Traits/ApiResponser.php index ff4f5f0..17e1300 100755 --- a/app/Traits/ApiResponser.php +++ b/app/Traits/ApiResponser.php @@ -34,16 +34,16 @@ trait ApiResponser public function errorResponse($message, $code = Response::HTTP_BAD_REQUEST) { - return response()->json($this->formatResponse($code,null,$message), $code); + return response()->json($this->formatResponse($code, null, $message), $code); } - public function errorMessage($message , $code) - { - return response($message ,$code)->header('Content-Type', 'application/json'); - } +// public function errorMessage($message , $code) +// { +// return response($message ,$code)->header('Content-Type', 'application/json'); +// } - private function formatResponse(int $status, $response = null , $error = null) + private function formatResponse(int $status, $response = null, $error = null) { - return ['status' => $status , 'response' => $response , 'error' => $error]; + return ['status' => $status, 'response' => $response, 'error' => $error]; } } diff --git a/storage/refund.xlsx b/storage/refund.xlsx new file mode 100644 index 0000000..059ddf0 Binary files /dev/null and b/storage/refund.xlsx differ