wip
This commit is contained in:
@@ -1,38 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Order\Card\CardTransaction\CardTransaction;
|
||||
use App\Nova\Resources\Order\Card\CardTransaction\Actions\DownloadCardTransaction;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class CardTransactionController extends Controller
|
||||
{
|
||||
public function show(CardTransaction $transaction)
|
||||
{
|
||||
// $a = new DownloadCardTransaction;
|
||||
|
||||
// $start_date = Carbon::create(date('Y-m-d', strtotime('-12 months')));
|
||||
// $end_date = Carbon::create(date('Y-m-d'));
|
||||
|
||||
// $response = $a->fetchApi(
|
||||
// passport_serie: $transaction->passport_serie,
|
||||
// passport_id: $transaction->passport_id,
|
||||
// card_number_masked: Str::mask($transaction->card_number, '*', 6, 6),
|
||||
// card_expire_date: $transaction->card_month.'/'.substr($transaction->card_year, 2),
|
||||
// start_date: $start_date->format('d.m.Y'),
|
||||
// end_date: $end_date->format('d.m.Y'),
|
||||
// );
|
||||
|
||||
// /** @var ResponseTypes\AzatApiClientInfoAllResponse */
|
||||
// $data = Str::isJson($response)
|
||||
// ? json_decode($response)
|
||||
// : emptyClass(errCode: 1, message: 'Connection issue to VP');
|
||||
|
||||
// return view('orders.cards.card-transaction.download-card-transaction', [
|
||||
// 'transaction' => $data
|
||||
// ]);
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,8 @@
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Blade;
|
||||
use Mpdf\Mpdf;
|
||||
|
||||
class ApiTesterController extends Controller
|
||||
{
|
||||
|
||||
25
app/Models/Order/Card/CardBalance/CardBalance.php
Normal file
25
app/Models/Order/Card/CardBalance/CardBalance.php
Normal file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Order\Card\CardBalance;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Laravel\Nova\Actions\Actionable;
|
||||
|
||||
/**
|
||||
* @property int $id
|
||||
* @property string $passport_serie
|
||||
* @property string $passport_id
|
||||
* @property string $card_number
|
||||
* @property string $card_month
|
||||
* @property string $card_year
|
||||
* @property \Illuminate\Support\Carbon $created_at
|
||||
* @property \Illuminate\Support\Carbon $updated_at
|
||||
*/
|
||||
class CardBalance extends Model
|
||||
{
|
||||
use Actionable;
|
||||
use HasFactory;
|
||||
use SoftDeletes;
|
||||
}
|
||||
@@ -36,7 +36,7 @@ use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
* @property string $ready_files
|
||||
* @property \Illuminate\Support\Carbon $created_at
|
||||
* @property \Illuminate\Support\Carbon $updated_at
|
||||
*/
|
||||
*/
|
||||
class CardRequisite extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
|
||||
@@ -0,0 +1,94 @@
|
||||
<?php
|
||||
|
||||
namespace App\Nova\Resources\Order\Card\CardBalance\Actions;
|
||||
|
||||
use App\Nova\Resources\Order\Card\CardTransaction\Actions\DownloadCardTransaction;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Queue\InteractsWithQueue;
|
||||
use Illuminate\Support\Collection;
|
||||
use Illuminate\Support\Facades\Blade;
|
||||
use Illuminate\Support\Facades\File;
|
||||
use Illuminate\Support\Str;
|
||||
use Laravel\Nova\Actions\Action;
|
||||
use Laravel\Nova\Actions\ActionResponse;
|
||||
use Laravel\Nova\Fields\ActionFields;
|
||||
use Laravel\Nova\Fields\Date;
|
||||
use Laravel\Nova\Http\Requests\NovaRequest;
|
||||
use Markwalet\NovaModalResponse\ModalResponse;
|
||||
use Mpdf\Mpdf;
|
||||
|
||||
class DownloadCardBalance extends Action
|
||||
{
|
||||
use InteractsWithQueue, Queueable;
|
||||
|
||||
/**
|
||||
* Name.
|
||||
*/
|
||||
public function name(): string
|
||||
{
|
||||
return __('Download');
|
||||
}
|
||||
|
||||
/**
|
||||
* Perform the action on the given models.
|
||||
*
|
||||
* @param \Laravel\Nova\Fields\ActionFields $fields
|
||||
* @param \Illuminate\Support\Collection $models
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle(ActionFields $fields, Collection $models)
|
||||
{
|
||||
/** @var \App\Models\Order\Card\CardBalance\CardBalance */
|
||||
$model = $models->first();
|
||||
|
||||
/** @var \App\Nova\Resources\Order\Card\CardTransaction\Actions\ResponseTypes\AzatApiClientInfoAllResponse */
|
||||
$data = $this->fetchApi($model);
|
||||
|
||||
if ($data->errCode != 0) {
|
||||
return ActionResponse::danger($data->message);
|
||||
}
|
||||
|
||||
return Action::modal('modal-response', [
|
||||
'title' => __('Card balance'),
|
||||
'html' => Blade::render(
|
||||
file_get_contents(app_path('Nova/Resources/Order/Card/CardBalance/Views/card-balance.blade.php')),
|
||||
['data' => $data]
|
||||
)
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the fields available on the action.
|
||||
*
|
||||
* @param \Laravel\Nova\Http\Requests\NovaRequest $request
|
||||
* @return array
|
||||
*/
|
||||
public function fields(NovaRequest $request)
|
||||
{
|
||||
return [];
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch api
|
||||
*
|
||||
* @param \App\Models\Order\Card\Requisite\CardRequisite $model
|
||||
*/
|
||||
public function fetchApi($model)
|
||||
{
|
||||
$date = today()->format('d.m.Y');
|
||||
|
||||
$response = DownloadCardTransaction::make()->fetchApi(
|
||||
passport_serie: $model->passport_serie,
|
||||
passport_id: $model->passport_id,
|
||||
card_number_masked: Str::mask($model->card_number, '*', 6, 6),
|
||||
card_expire_date: $model->card_month.'/'.substr($model->card_year, 2),
|
||||
start_date: $date,
|
||||
end_date: $date,
|
||||
);
|
||||
|
||||
return Str::isJson($response)
|
||||
? json_decode($response)
|
||||
: emptyClass(errCode: 1, message: 'Connection issue to VP');
|
||||
}
|
||||
}
|
||||
174
app/Nova/Resources/Order/Card/CardBalance/CardBalance.php
Normal file
174
app/Nova/Resources/Order/Card/CardBalance/CardBalance.php
Normal file
@@ -0,0 +1,174 @@
|
||||
<?php
|
||||
|
||||
namespace App\Nova\Resources\Order\Card\CardBalance;
|
||||
|
||||
use App\Modules\DateHelper\Repositories\DateHelperRepository;
|
||||
use App\Nova\Resource;
|
||||
use App\Nova\Resources\Order\Card\CardBalance\Actions\DownloadCardBalance;
|
||||
use App\Repos\System\Settings\Legal\PassportRepo;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Http\Request;
|
||||
use Laravel\Nova\Fields\Hidden;
|
||||
use Laravel\Nova\Fields\ID;
|
||||
use Laravel\Nova\Fields\Select;
|
||||
use Laravel\Nova\Http\Requests\NovaRequest;
|
||||
use Nurmuhammet\NovaInputmask\NovaInputmask;
|
||||
|
||||
class CardBalance extends Resource
|
||||
{
|
||||
/**
|
||||
* The model the resource corresponds to.
|
||||
*
|
||||
* @var class-string<\App\Models\Order\Card\CardBalance\CardBalance>
|
||||
*/
|
||||
public static $model = \App\Models\Order\Card\CardBalance\CardBalance::class;
|
||||
|
||||
/**
|
||||
* The single value that should be used to represent the resource when being displayed.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public static $title = 'unique_id';
|
||||
|
||||
/**
|
||||
* The columns that should be searched.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public static $search = [
|
||||
'unique_id',
|
||||
];
|
||||
|
||||
/**
|
||||
* Get the displayable label of the resource.
|
||||
*/
|
||||
public static function label(): string
|
||||
{
|
||||
return __('Card balances');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the displayable singular label of the resource.
|
||||
*/
|
||||
public static function singularLabel(): string
|
||||
{
|
||||
return __('Card balance');
|
||||
}
|
||||
|
||||
/**
|
||||
* Build an "index" query for the given resource.
|
||||
*
|
||||
* @param \Illuminate\Database\Eloquent\Builder<\App\Models\Order\Card\CardBalance\CardBalance> $query
|
||||
* @return \Illuminate\Database\Eloquent\Builder<\App\Models\Order\Card\CardBalance\CardBalance>
|
||||
*/
|
||||
public static function indexQuery(NovaRequest $request, $query): Builder
|
||||
{
|
||||
/** @var \App\Models\User */
|
||||
$user = $request->user();
|
||||
|
||||
if ($user->isAdmin()) {
|
||||
return $query;
|
||||
}
|
||||
|
||||
if ($user->isOperator() && count($user->branches()->pluck('branches.id')) < 1) {
|
||||
return $query->whereIn('branch_id', $user->branches()->pluck('branches.id'));
|
||||
}
|
||||
|
||||
return $query->where('user_id', $user->id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the fields displayed by the resource.
|
||||
*
|
||||
* @param \Laravel\Nova\Http\Requests\NovaRequest $request
|
||||
* @return array
|
||||
*/
|
||||
public function fields(NovaRequest $request): array
|
||||
{
|
||||
return [
|
||||
ID::make()->sortable(),
|
||||
|
||||
Hidden::make('user_id')
|
||||
->default(auth()->id())
|
||||
->hideWhenUpdating(),
|
||||
|
||||
Select::make(__('Passport serie'), 'passport_serie')
|
||||
->displayUsingLabels()
|
||||
->searchable()
|
||||
->options(PassportRepo::values())
|
||||
->size('w-1/2')
|
||||
->rules('required'),
|
||||
|
||||
NovaInputmask::make(__('Passport id'), 'passport_id')
|
||||
->mask('999999')
|
||||
->size('w-1/2')
|
||||
->rules('required', 'numeric', 'digits:6'),
|
||||
|
||||
NovaInputmask::make(__('Card number'), 'card_number')
|
||||
->mask('9999-9999-9999-9999')
|
||||
->storeRawValue()
|
||||
->size('md:w-1/2')
|
||||
->rules('required', 'digits:16'),
|
||||
|
||||
Select::make(__('Card').' '.__('Expiration month'), 'card_month')
|
||||
->searchable()
|
||||
->options(DateHelperRepository::staticNumberMonths())
|
||||
->size('md:w-1/4')
|
||||
->rules('required'),
|
||||
|
||||
Select::make(__('Card').' '.__('Expiration year'), 'card_year')
|
||||
->searchable()
|
||||
->options(DateHelperRepository::staticNumberYears())
|
||||
->size('md:w-1/4')
|
||||
->rules('required'),
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the cards available for the request.
|
||||
*
|
||||
* @param \Laravel\Nova\Http\Requests\NovaRequest $request
|
||||
* @return array
|
||||
*/
|
||||
public function cards(NovaRequest $request)
|
||||
{
|
||||
return [];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the filters available for the resource.
|
||||
*
|
||||
* @param \Laravel\Nova\Http\Requests\NovaRequest $request
|
||||
* @return array
|
||||
*/
|
||||
public function filters(NovaRequest $request)
|
||||
{
|
||||
return [];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the lenses available for the resource.
|
||||
*
|
||||
* @param \Laravel\Nova\Http\Requests\NovaRequest $request
|
||||
* @return array
|
||||
*/
|
||||
public function lenses(NovaRequest $request)
|
||||
{
|
||||
return [];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the actions available for the resource.
|
||||
*
|
||||
* @param \Laravel\Nova\Http\Requests\NovaRequest $request
|
||||
* @return array
|
||||
*/
|
||||
public function actions(NovaRequest $request)
|
||||
{
|
||||
return [
|
||||
DownloadCardBalance::make()
|
||||
->icon('arrow-down-tray')
|
||||
->sole(),
|
||||
];
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
@@ -5,7 +5,6 @@ namespace App\Nova\Resources\Order\Card\Requisite\Actions;
|
||||
use App\Nova\Resources\Order\Card\CardTransaction\Actions\DownloadCardTransaction;
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Queue\InteractsWithQueue;
|
||||
use Illuminate\Support\Carbon;
|
||||
use Illuminate\Support\Collection;
|
||||
use Illuminate\Support\Facades\File;
|
||||
use Illuminate\Support\Str;
|
||||
@@ -77,7 +76,7 @@ class DownloadCardRequisite extends Action
|
||||
|
||||
return Str::isJson($response)
|
||||
? json_decode($response)
|
||||
: emptyClass(errCode: 1, message: 'Connection issue to VP');;
|
||||
: emptyClass(errCode: 1, message: 'Connection issue to VP');
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -13,7 +13,6 @@ use App\Nova\Resources\Order\Card\Requisite\Actions\DownloadCardRequisite;
|
||||
use App\Nova\Resources\Order\Card\Requisite\Concerns\CardRequisiteFieldsForDetail;
|
||||
use App\Nova\Resources\Order\Card\Requisite\Concerns\CardRequisiteFieldsForIndex;
|
||||
use App\Repos\Order\Card\CardOrderRepo;
|
||||
use App\Repos\Order\Card\CardTypeRepo;
|
||||
use App\Repos\Order\OrderRepo;
|
||||
use App\Repos\System\Nova\NovaRepo;
|
||||
use App\Repos\System\Settings\Legal\PassportRepo;
|
||||
@@ -23,7 +22,6 @@ use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Support\Facades\Gate;
|
||||
use Laravel\Nova\Fields\Date;
|
||||
use Laravel\Nova\Fields\File;
|
||||
use Laravel\Nova\Fields\Hidden;
|
||||
use Laravel\Nova\Fields\ID;
|
||||
use Laravel\Nova\Fields\Image;
|
||||
|
||||
@@ -4,7 +4,6 @@ namespace App\Nova\Resources\Order\Card\Requisite\Concerns;
|
||||
|
||||
use App\Modules\DateHelper\Repositories\DateHelperRepository;
|
||||
use App\Nova\Resources\Branch\Branch;
|
||||
use App\Nova\Resources\Order\Card\CardType;
|
||||
use App\Nova\User;
|
||||
use App\Repos\Order\OrderRepo;
|
||||
use App\Repos\System\Settings\Legal\PassportRepo;
|
||||
@@ -13,7 +12,6 @@ use Laravel\Nova\Fields\Badge;
|
||||
use Laravel\Nova\Fields\BelongsTo;
|
||||
use Laravel\Nova\Fields\Date;
|
||||
use Laravel\Nova\Fields\DateTime;
|
||||
use Laravel\Nova\Fields\File;
|
||||
use Laravel\Nova\Fields\ID;
|
||||
use Laravel\Nova\Fields\Image;
|
||||
use Laravel\Nova\Fields\Number;
|
||||
@@ -60,7 +58,7 @@ class CardRequisiteFieldsForDetail
|
||||
->options(DateHelperRepository::staticNumberMonths()),
|
||||
|
||||
Select::make(__('Card').' '.__('Expiration year'), 'card_year')
|
||||
->options(DateHelperRepository::staticNumberYears())
|
||||
->options(DateHelperRepository::staticNumberYears()),
|
||||
]),
|
||||
|
||||
new Panel(__('Location'), [
|
||||
|
||||
@@ -9,6 +9,7 @@ use App\Nova\Dashboards\Main;
|
||||
use App\Nova\Resources\Branch\Branch;
|
||||
use App\Nova\Resources\CurrencyRate;
|
||||
use App\Nova\Resources\NovaVisaMasterSetting;
|
||||
use App\Nova\Resources\Order\Card\CardBalance\CardBalance;
|
||||
use App\Nova\Resources\Order\Card\CardOrder;
|
||||
use App\Nova\Resources\Order\Card\CardState;
|
||||
use App\Nova\Resources\Order\Card\CardTransaction\CardTransaction;
|
||||
@@ -59,6 +60,7 @@ class NovaMenuRepo
|
||||
MenuItem::resource(CardOrder::class)->name(__('Order new card')),
|
||||
MenuItem::resource(CardTransaction::class),
|
||||
MenuItem::resource(CardRequisite::class),
|
||||
MenuItem::resource(CardBalance::class),
|
||||
MenuItem::resource(CardPin::class),
|
||||
])->collapsedByDefault(),
|
||||
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('card_balances', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->string('unique_id')->nullable()->unique();
|
||||
|
||||
$table->string('passport_serie');
|
||||
$table->string('passport_id');
|
||||
$table->string('card_number');
|
||||
$table->string('card_month');
|
||||
$table->string('card_year');
|
||||
|
||||
$table->foreignId('user_id')->constrained('users')->restrictOnDelete();
|
||||
|
||||
$table->timestamps();
|
||||
$table->softDeletes();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('card_balances');
|
||||
}
|
||||
};
|
||||
@@ -344,5 +344,9 @@
|
||||
"Loan order updated": "Karz sargydy üýtgedildi",
|
||||
"Loan order deleted": "Karz sargydy pozuldy",
|
||||
"Card transaction": "Kart herekedi",
|
||||
"Card transactions": "Kart hereketleri"
|
||||
"Card transactions": "Kart hereketleri",
|
||||
"Card balance": "Kart galyndysy",
|
||||
"Card balances": "Kart galyndylary",
|
||||
"Card holder name": "Kartyň eýesiniň ady",
|
||||
"Money Balance": "Galyndy"
|
||||
}
|
||||
|
||||
12
ok.html
12
ok.html
@@ -1,12 +0,0 @@
|
||||
|
||||
|
||||
$printLocation = "/var/www/sirk/backend/storage/app/public/tickets/{$booking->orderId}.pdf";
|
||||
$url = route('booking-ticket', ['q' => $request->q]);
|
||||
|
||||
$result = Process::run("/home/ubuntu/chrome-linux/chrome --headless --print-to-pdf=$printLocation $url --no-sandbox");
|
||||
|
||||
if ($result->successful()) {
|
||||
return redirect("https://atchylyksirk.gov.tm/storage/tickets/{$booking->orderId}.pdf");
|
||||
} else {
|
||||
return back();
|
||||
}
|
||||
Reference in New Issue
Block a user