wip
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Modules\CardTransaction\Repositories;
|
||||
|
||||
use App\Modules\CardTransaction\Types\CardTransactionResponse;
|
||||
use App\Modules\Card\Models\Card;
|
||||
use App\Modules\Makeable;
|
||||
use Illuminate\Support\Carbon;
|
||||
@@ -25,7 +26,7 @@ class CardTransactionRepository
|
||||
$start_date = Carbon::create($data['start_date']);
|
||||
$end_date = Carbon::create($data['end_date']);
|
||||
|
||||
$response = $this->fetchApi(
|
||||
$apiResponse = $this->fetchApi(
|
||||
passport_serie: user()->getOption('passport_serie') ?? 'I',
|
||||
passport_id: user()->getOption('passport_id') ?? '909090',
|
||||
card_number_masked: Str::mask($record->number, '*', 6, 6),
|
||||
@@ -35,19 +36,17 @@ class CardTransactionRepository
|
||||
);
|
||||
|
||||
/** @var \App\Modules\CardTransaction\Types\CardTransactionResponse */
|
||||
$safeResponse = Str::isJson($response)
|
||||
? json_decode($response)
|
||||
$response = Str::isJson($apiResponse)
|
||||
? json_decode($apiResponse)
|
||||
: emptyClass(errCode: 1, message: 'Connection issue to VP');
|
||||
|
||||
if ($safeResponse->errCode != 0) {
|
||||
return view('module.card-transaction::error-response', ['data' => $safeResponse]);
|
||||
if ($response->errCode != 0) {
|
||||
return view('module.card-transaction::error-response', ['data' => $response]);
|
||||
}
|
||||
|
||||
$url = $this->handleFiles($record, $safeResponse);
|
||||
$url = $this->handleFiles($record, $response);
|
||||
|
||||
info($url);
|
||||
|
||||
// return ActionResponse::openInNewTab($url);
|
||||
return response()->download($url);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -90,8 +89,11 @@ class CardTransactionRepository
|
||||
|
||||
/**
|
||||
* Handles all file stuff
|
||||
*
|
||||
* @param Card $model
|
||||
* @param \App\Modules\CardTransaction\Types\CardTransactionResponse $response
|
||||
*/
|
||||
public function handleFiles($model, $data): string
|
||||
public function handleFiles(Card $model, object $response): string
|
||||
{
|
||||
$unique_folder_name = Str::snake(str_replace(':', '-', $model->created_at->toDateTimeString()));
|
||||
$dir = public_path("files/{$unique_folder_name}");
|
||||
@@ -100,7 +102,7 @@ class CardTransactionRepository
|
||||
|
||||
$fileDest = $dir."/{$model->id}.pdf";
|
||||
|
||||
$this->generateFile($data, $fileDest);
|
||||
$this->generateFile($response, $fileDest);
|
||||
|
||||
return url("files/{$unique_folder_name}/{$model->id}.pdf");
|
||||
}
|
||||
@@ -111,14 +113,14 @@ class CardTransactionRepository
|
||||
* @param \App\Modules\CardTransaction\Types\CardTransactionResponse $data
|
||||
* @param string $fileDest
|
||||
*/
|
||||
public function generateFile($data, $fileDest): void
|
||||
public function generateFile(object $response, string $fileDest): void
|
||||
{
|
||||
$mpdf = new Mpdf;
|
||||
|
||||
// Write HTML content...
|
||||
$html = Blade::render('orders.cards.card-transaction.download-card-transaction', [
|
||||
'data' => $data,
|
||||
'extra' => $this->getExtraVariables($data),
|
||||
$html = Blade::render('module.card-transaction::card-transaction-table', [
|
||||
'data' => $response,
|
||||
'extra' => $this->getExtraVariables($response),
|
||||
]);
|
||||
|
||||
$mpdf->WriteHTML($html);
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<style>
|
||||
body {font-family: DejaVu Sans, sans-serif; font-size: 12px; color: #000; margin: 40px; } h1, h2, h3 {margin: 0; padding: 0; } p {margin: 4px 0; } .title {font-weight: bold; font-size: 16px; margin-top: 10px; } .section {margin-top: 20px; } table {width: 100%; border-collapse: collapse; margin-top: 10px; } th, td {border: 1px solid #999; padding: 6px; text-align: left; font-size: 11px; } th {background-color: #f0f0f0; } .summary {margin-top: 20px; } strong {font-weight: bold; } </style>
|
||||
</head>
|
||||
<body>
|
||||
<p>{{ $data->depName }}</p>
|
||||
<p>BAB: <strong>{{ $data->mfo }}</strong></p>
|
||||
|
||||
<div class="section">
|
||||
<p>Sene: <strong>{{ now()->format('d.m.Y') }}</strong></p>
|
||||
<p>№ {{ $data->accountNumber }} belgili kart hasaby boýunça GÖÇÜRME</p>
|
||||
<p>Müşderiniň FAAa: <strong>{{ $data->clientName }}</strong></p>
|
||||
<p>{{ $data->fromDate }} - {{ $data->toDate }} aralygy üçin</p>
|
||||
|
||||
<br>
|
||||
<p>Başdaky galyndy: <strong> {{ $extra->basdakyGalyndy }} </strong></p>
|
||||
<p>Ahyrky galyndy: <strong> {{ $extra->ahyrkyGalyndy }} </strong></p>
|
||||
</div>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Amalyň senesi</th>
|
||||
<th>Tranzaksiýa senesi</th>
|
||||
<th>Kart belgisi</th>
|
||||
<th>Amalyň görnüşi</th>
|
||||
<th>Tranz. geçirilen ýeri</th>
|
||||
<th>Tranz. walýutasy</th>
|
||||
<th>Tranz. wal-da möçberi</th>
|
||||
<th>Hasabyň wal-da möçberi</th>
|
||||
<th>Kart hasabynyň galyndysy</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach($data->transactions as $transaction)
|
||||
@php
|
||||
$operdate = Carbon\Carbon::create($transaction->operdate);
|
||||
$trandate = Carbon\Carbon::create($transaction->trandate);
|
||||
@endphp
|
||||
|
||||
<tr>
|
||||
<th>{{ $operdate->format('d.m.Y') }}</th>
|
||||
<th>{{ $transaction->trantime }}, {{ $trandate->format('d.m.Y') }}</th>
|
||||
<th>{{ $transaction->cardnum }}</th>
|
||||
<th>{{ $transaction->binfo }}</th>
|
||||
<th>{{ $transaction->terminalLocation }}</th>
|
||||
<th>{{ $transaction->currCode }}</th>
|
||||
<th>{{ $transaction->currOperSum }}</th>
|
||||
<th>{{ $transaction->currOperSum }}({{ $transaction->sign }})</th>
|
||||
<th>{{ $transaction->rest }}</th>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<div class="summary">
|
||||
<p>Aralyk boýunça hereket:</p>
|
||||
<p>Girdeji: <strong>{{ $extra->girdeji }}</strong></p>
|
||||
<p>Çykdajy: <strong>{{ $extra->cykdajy }}</strong></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user