Compare commits

..

6 Commits

Author SHA1 Message Date
6ef6ed128a wip 2025-10-29 00:06:05 +05:00
f537e9526b wip 2025-10-28 23:57:23 +05:00
144ecd94fe wip 2025-10-28 23:27:42 +05:00
02b555d7ce code improvements 2025-10-28 23:27:38 +05:00
75dfed138a same for composer suggestions 2025-10-28 23:23:05 +05:00
2b88bd80be same for composer suggestions 2025-10-28 23:22:49 +05:00
6 changed files with 43 additions and 28 deletions

View File

@@ -2,6 +2,8 @@
namespace App\Modules\CardBalance;
use App\Modules\Core\ModulePackage;
use App\Modules\Core\ModulePackageType;
use App\Modules\Makeable;
use App\Modules\ModuleContract;
@@ -51,7 +53,12 @@ class CardBalanceModule implements ModuleContract
*/
public function getComposerRequirements(): array
{
return [];
return [
new ModulePackage(
type: ModulePackageType::MODULE,
name: 'Card',
),
];
}
/**

View File

@@ -6,8 +6,10 @@ use App\Modules\Card\Models\Card;
use App\Modules\CardTransaction\Repositories\CardTransactionRepository;
use App\Modules\Makeable;
use Filament\Notifications\Notification;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Str;
use Livewire\Component;
use PhpOffice\PhpWord\TemplateProcessor;
class CardRequisiteRepository
{
@@ -61,26 +63,25 @@ class CardRequisiteRepository
/**
* Generate file
*
* @param \App\Models\Order\Card\Requisite\CardRequisite $model
* @param \App\Nova\Resources\Order\Card\CardTransaction\Actions\ResponseTypes\AzatApiClientInfoAllResponse $data
* @param \App\Modules\CardTransaction\Types\CardTransactionResponse $response
* @return string
*/
public function generateFile($model, $data)
public function generateFile(Card $model, object $response)
{
$doc_path = app_path('Nova/Resources/Order/Card/Requisite/Docs/card-requisite.docx');
$doc_path = modules_path('CardRequisite/Resources/Docs/card-requisite.docx');
$templateProcessor = new TemplateProcessor($doc_path);
$templateProcessor->setValues([
'year' => date('Y'),
'name' => $data->clientName,
'contract' => $data->cardAccountNumber,
'bank' => $data->depName,
'hasap' => $data->accountNumber,
'sb' => $data->inn,
'bab' => $data->mfo,
'card_type' => $data->cardName,
'card_number' => $data->cardPan,
'phone' => $data->mobilPhone ?? '-',
'name' => $response->clientName,
'contract' => $response->cardAccountNumber,
'bank' => $response->depName,
'hasap' => $response->accountNumber,
'sb' => $response->inn,
'bab' => $response->mfo,
'card_type' => $response->cardName,
'card_number' => $response->cardPan,
'phone' => $response->mobilPhone ?? '-',
'contract_date' => '---YOK---',
'card_order_date' => '---YOK---',
'card_given_date' => '---YOK---',

View File

@@ -7,7 +7,7 @@ class ModulePackage
public function __construct(
public ModulePackageType $type,
public string $name,
public string $message,
public string $message = '',
public string $version = '',
) {}
}

View File

@@ -129,8 +129,6 @@ class ModuleRepository
/**
* Check if module exists
*
* @param string $moduleName
*/
public function moduleExists(string $moduleName): bool
{

View File

@@ -2,7 +2,6 @@
namespace App\Modules;
use App\Modules\Core\ModulePackage;
use App\Modules\Core\ModulePackageType;
use Composer\Composer;
use Composer\InstalledVersions;
@@ -62,19 +61,18 @@ class ModuleServiceProvider extends ServiceProvider
public function verifyModuleComposerRequirements(BaseModule $module): void
{
foreach ($module->app->getComposerRequirements() as $package) {
$missingPackage = match ($package->type) {
$packageInstalled = match ($package->type) {
ModulePackageType::PACKAGE => InstalledVersions::isInstalled($package->name),
ModulePackageType::MODULE => module_exists($package->name),
ModulePackageType::MODULE => module_exists($package->name), // @phpstan-ignore-line
default => true,
};
if (! $missingPackage) {
abort(
500,
"{$package->name} {$package->version} {$package->type->value} must be installed (module: {$module->name}) \n
abort_if(
boolean: ! $packageInstalled,
code: 500,
message: "{$package->name} {$package->version} {$package->type->value} must be installed (module: {$module->name}) \n
{$package->message}"
);
}
);
}
}
@@ -83,7 +81,18 @@ class ModuleServiceProvider extends ServiceProvider
*/
public function suggestModuleComposerSuggestions(BaseModule $module): void
{
// foreach ($module->app->getComposerSuggestions() as $suggestion) {
foreach ($module->app->getComposerRequirements() as $package) {
$packageInstalled = match ($package->type) {
ModulePackageType::PACKAGE => InstalledVersions::isInstalled($package->name),
ModulePackageType::MODULE => module_exists($package->name), // @phpstan-ignore-line
default => true,
};
if (! $packageInstalled) {
echo "{$package->name} {$package->version} {$package->type->value} must be installed (module: {$module->name}) \n
{$package->message}";
}
}
}
/**

View File

@@ -49,7 +49,7 @@ function emptyModule(): ModuleContract
/**
* Module exists
*/
function module_exists(string $moduleName)
function module_exists(string $moduleName): bool
{
return modular()->moduleExists($moduleName);
}