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; namespace App\Modules\CardBalance;
use App\Modules\Core\ModulePackage;
use App\Modules\Core\ModulePackageType;
use App\Modules\Makeable; use App\Modules\Makeable;
use App\Modules\ModuleContract; use App\Modules\ModuleContract;
@@ -51,7 +53,12 @@ class CardBalanceModule implements ModuleContract
*/ */
public function getComposerRequirements(): array 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\CardTransaction\Repositories\CardTransactionRepository;
use App\Modules\Makeable; use App\Modules\Makeable;
use Filament\Notifications\Notification; use Filament\Notifications\Notification;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Str; use Illuminate\Support\Str;
use Livewire\Component; use Livewire\Component;
use PhpOffice\PhpWord\TemplateProcessor;
class CardRequisiteRepository class CardRequisiteRepository
{ {
@@ -61,26 +63,25 @@ class CardRequisiteRepository
/** /**
* Generate file * Generate file
* *
* @param \App\Models\Order\Card\Requisite\CardRequisite $model * @param \App\Modules\CardTransaction\Types\CardTransactionResponse $response
* @param \App\Nova\Resources\Order\Card\CardTransaction\Actions\ResponseTypes\AzatApiClientInfoAllResponse $data
* @return string * @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 = new TemplateProcessor($doc_path);
$templateProcessor->setValues([ $templateProcessor->setValues([
'year' => date('Y'), 'year' => date('Y'),
'name' => $data->clientName, 'name' => $response->clientName,
'contract' => $data->cardAccountNumber, 'contract' => $response->cardAccountNumber,
'bank' => $data->depName, 'bank' => $response->depName,
'hasap' => $data->accountNumber, 'hasap' => $response->accountNumber,
'sb' => $data->inn, 'sb' => $response->inn,
'bab' => $data->mfo, 'bab' => $response->mfo,
'card_type' => $data->cardName, 'card_type' => $response->cardName,
'card_number' => $data->cardPan, 'card_number' => $response->cardPan,
'phone' => $data->mobilPhone ?? '-', 'phone' => $response->mobilPhone ?? '-',
'contract_date' => '---YOK---', 'contract_date' => '---YOK---',
'card_order_date' => '---YOK---', 'card_order_date' => '---YOK---',
'card_given_date' => '---YOK---', 'card_given_date' => '---YOK---',

View File

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

View File

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

View File

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