Merge branch 'feature/CreateUserManagement' into 'develop'

write event for harim

See merge request witelgroup/rms_v2!162
This commit is contained in:
2025-08-25 05:37:48 +00:00
12 changed files with 336 additions and 7 deletions

View File

@@ -0,0 +1,16 @@
<?php
namespace App\Events\V3\Dashboard\Harim;
use App\Models\Harim;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;
class ConfirmGuaranteeLetterNeedEvent
{
use Dispatchable, InteractsWithSockets, SerializesModels;
public function __construct(public Harim $harim){}
}

View File

@@ -0,0 +1,16 @@
<?php
namespace App\Events\V3\Dashboard\Harim;
use App\Models\Harim;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;
class ConfirmNoRoadAccessNeedEvent
{
use Dispatchable, InteractsWithSockets, SerializesModels;
public function __construct(public Harim $harim){}
}

View File

@@ -0,0 +1,18 @@
<?php
namespace App\Events\V3\Dashboard\Harim;
use App\Models\Harim;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;
class ConfirmRoadAccessEditNeedEvent
{
use Dispatchable, InteractsWithSockets, SerializesModels;
/**
* Create a new event instance.
*/
public function __construct(public Harim $harim){}
}

View File

@@ -0,0 +1,18 @@
<?php
namespace App\Events\V3\Dashboard\Harim;
use App\Models\Harim;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;
class ConfirmRoadAccessNeedEvent
{
use Dispatchable, InteractsWithSockets, SerializesModels;
/**
* Create a new event instance.
*/
public function __construct(public Harim $harim){}
}

View File

@@ -0,0 +1,18 @@
<?php
namespace App\Events\V3\Dashboard\Harim;
use App\Models\Harim;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;
class RejectRequestEvent
{
use Dispatchable, InteractsWithSockets, SerializesModels;
/**
* Create a new event instance.
*/
public function __construct(public Harim $harim){}
}

View File

@@ -4,6 +4,11 @@ namespace App\Http\Controllers\V3\Dashboard\Harim;
use App\Enums\HarimAction;
use App\Enums\HarimStates;
use App\Events\V3\Dashboard\Harim\ConfirmGuaranteeLetterNeedEvent;
use App\Events\V3\Dashboard\Harim\ConfirmNoRoadAccessNeedEvent;
use App\Events\V3\Dashboard\Harim\ConfirmRoadAccessEditNeedEvent;
use App\Events\V3\Dashboard\Harim\ConfirmRoadAccessNeedEvent;
use App\Events\V3\Dashboard\Harim\RejectRequestEvent;
use App\Facades\DataTable\DataTableFacade;
use App\Http\Controllers\Controller;
use App\Http\Requests\V3\Dashboard\Harim\GeneralManager\ConfirmRoadAccessEditNeedRequest;
@@ -40,8 +45,10 @@ class GeneralManagerController extends Controller
public function rejectRequest(RejectRequest $request, Harim $harim): JsonResponse
{
DB::transaction(function () use ($request, $harim) {
DB::transaction(function () use ($request, $harim)
{
$action = HarimAction::CONFIRM->value;
$harim->histories()->create([
'expert_id' => auth()->user()->id,
'previous_state_id' => $harim->state_id,
@@ -57,14 +64,19 @@ class GeneralManagerController extends Controller
'state_id' => $state,
'state_name' => HarimStates::name($state),
]);
RejectRequestEvent::dispatch($harim);
});
return $this->successResponse();
}
public function referRequest(ReferRequest $request, Harim $harim): JsonResponse
{
DB::transaction(function () use ($request, $harim) {
DB::transaction(function () use ($request, $harim)
{
$action = HarimAction::REFER->value;
$harim->histories()->create([
'expert_id'=> auth()->user()->id,
'previous-state_id' => $harim->state_id,
@@ -81,13 +93,16 @@ class GeneralManagerController extends Controller
'state_name' => HarimStates::name($state),
]);
});
return $this->successResponse();
}
public function referFile(ReferFileRequest $request, Harim $harim): JsonResponse
{
DB::transaction(function () use ($request, $harim) {
DB::transaction(function () use ($request, $harim)
{
$action = HarimAction::REFER->value;
$harim->histories()->create([
'expert_id'=> auth()->user()->id,
'previous-state_id' => $harim->state_id,
@@ -104,13 +119,16 @@ class GeneralManagerController extends Controller
'state_name' => HarimStates::name($state),
]);
});
return $this->successResponse();
}
public function confirmRoadAccessNeed(ConfirmRoadAccessNeedRequest $request, Harim $harim): JsonResponse
{
DB::transaction(function () use ($request, $harim) {
DB::transaction(function () use ($request, $harim)
{
$action = HarimAction::CONFIRM->value;
$harim->histories()->create([
'expert_id' => auth()->user()->id,
'previous_state_id' => $harim->state_id,
@@ -121,18 +139,24 @@ class GeneralManagerController extends Controller
]);
$state = HarimStates::ERSAL_BE_PANJAREH_VAHED_NIAZ_BE_RAH_DASTRASI->value;
$harim->update([
'state_id' => $state,
'state_name' => HarimStates::name($state),
]);
ConfirmRoadAccessNeedEvent::dispatch($harim);
});
return $this->successResponse();
}
public function confirmNoRoadAccessNeed(ConfirmNoRoadAccessNeedRequest $request, Harim $harim): JsonResponse
{
DB::transaction(function () use ($request, $harim) {
DB::transaction(function () use ($request, $harim)
{
$action = HarimAction::CONFIRM->value;
$harim->histories()->create([
'expert_id' => auth()->user()->id,
'previous_state_id' => $harim->state_id,
@@ -143,18 +167,25 @@ class GeneralManagerController extends Controller
]);
$state = HarimStates::ERSAL_BE_PANJAREH_VAHED_BEDONEH_NIAZ_BE_RAH_DASTRASI->value;
$harim->update([
'state_id' => $state,
'state_name' => HarimStates::name($state),
]);
ConfirmNoRoadAccessNeedEvent::dispatch($harim);
});
return $this->successResponse();
}
public function confirmRoadAccessEditNeed(ConfirmRoadAccessEditNeedRequest $request, Harim $harim): JsonResponse
{
DB::transaction(function () use ($request, $harim) {
DB::transaction(function () use ($request, $harim)
{
$action = HarimAction::CONFIRM->value;
$harim->histories()->create([
'expert_id' => auth()->user()->id,
'previous_state_id' => $harim->state_id,
@@ -165,18 +196,24 @@ class GeneralManagerController extends Controller
]);
$state = HarimStates::UPDATE_FILE_BARGOZARE_SHODE->value;
$harim->update([
'state_id' => $state,
'state_name' => HarimStates::name($state),
]);
ConfirmRoadAccessEditNeedEvent::dispatch($harim);
});
return $this->successResponse();
}
public function confirmGuaranteeLetterNeed(ConfirmGuaranteeLetterNeedRequest $request, Harim $harim): JsonResponse
{
DB::transaction(function () use ($request, $harim) {
DB::transaction(function () use ($request, $harim)
{
$action = HarimAction::CONFIRM->value;
$harim->histories()->create([
'expert_id' => auth()->user()->id,
'previous_state_id' => $harim->state_id,
@@ -187,11 +224,15 @@ class GeneralManagerController extends Controller
]);
$state = HarimStates::ERSAL_ZEMANAT_NAME_TAVASOTE_KARBAR->value;
$harim->update([
'state_id' => $state,
'state_name' => HarimStates::name($state),
]);
ConfirmGuaranteeLetterNeedEvent::dispatch($harim);
});
return $this->successResponse();
}
public function show(ShowRequest $request, Harim $harim): JsonResponse

View File

@@ -0,0 +1,33 @@
<?php
namespace App\Listeners\V3\Dashboard\Harim;
use App\Events\V3\Dashboard\Harim\ConfirmGuaranteeLetterNeedEvent;
use Illuminate\Support\Facades\Http;
class ConfirmGuaranteeLetterNeedListener
{
protected string $url;
protected string $password;
protected string $username;
public function __construct()
{
$this->url = config('harim_web_services.reject.url');
$this->username = config('harim_web_services.reject.username');
$this->password = config('harim_web_services.reject.password');
}
public function handle(ConfirmGuaranteeLetterNeedEvent $event): void
{
Http::post($this->url,
array(
'' => $event->harim->id,
'' => $event->harim->id,
'' => $event->harim->id,
'' => $event->harim->id,
'' => $event->harim->id,
'' => $event->harim->id,
' ' => $event->harim->id,
))->throw();
}
}

View File

@@ -0,0 +1,34 @@
<?php
namespace App\Listeners\V3\Dashboard\Harim;
use App\Events\V3\Dashboard\Harim\ConfirmNoRoadAccessNeedEvent;
use Illuminate\Support\Facades\Http;
class ConfirmNoRoadAccessNeedListener
{
protected string $url;
protected string $password;
protected string $username;
public function __construct()
{
$this->url = config('harim_web_services.reject.url');
$this->username = config('harim_web_services.reject.username');
$this->password = config('harim_web_services.reject.password');
}
public function handle(ConfirmNoRoadAccessNeedEvent $event): void
{
Http::post($this->url,
array(
'' => $event->harim->id,
'' => $event->harim->id,
'' => $event->harim->id,
'' => $event->harim->id,
'' => $event->harim->id,
'' => $event->harim->id,
'' => $event->harim->id,
))->throw();
}
}

View File

@@ -0,0 +1,34 @@
<?php
namespace App\Listeners\V3\Dashboard\Harim;
use App\Events\V3\Dashboard\Harim\ConfirmRoadAccessEditNeedEvent;
use Illuminate\Support\Facades\Http;
class ConfirmRoadAccessEditNeedListener
{
protected string $url;
protected string $password;
protected string $username;
public function __construct()
{
$this->url = config('harim_web_services.reject.url');
$this->username = config('harim_web_services.reject.username');
$this->password = config('harim_web_services.reject.password');
}
public function handle(ConfirmRoadAccessEditNeedEvent $event): void
{
Http::post($this->url,
array(
'' => $event->harim->id,
'' => $event->harim->id,
'' => $event->harim->id,
'' => $event->harim->id,
'' => $event->harim->id,
'' => $event->harim->id,
'' => $event->harim->id,
))->throw();
}
}

View File

@@ -0,0 +1,37 @@
<?php
namespace App\Listeners\V3\Dashboard\Harim;
use App\Events\V3\Dashboard\Harim\ConfirmRoadAccessNeedEvent;
use Illuminate\Support\Facades\Http;
class ConfirmRoadAccessNeedListener
{
protected string $url;
protected string $password;
protected string $username;
public function __construct()
{
$this->url = config('harim_web_services.reject.url');
$this->username = config('harim_web_services.reject.username');
$this->password = config('harim_web_services.reject.password');
}
/**
* Handle the event.
*/
public function handle(ConfirmRoadAccessNeedEvent $event): void
{
Http::post($this->url,
array(
'' => $event->harim->id,
'' => $event->harim->id,
'' => $event->harim->id,
'' => $event->harim->id,
'' => $event->harim->id,
'' => $event->harim->id,
'' => $event->harim->id,
))->throw();
}
}

View File

@@ -0,0 +1,38 @@
<?php
namespace App\Listeners\V3\Dashboard\Harim;
use App\Events\V3\Dashboard\Harim\RejectRequestEvent;
use Illuminate\Http\Client\RequestException;
use Illuminate\Support\Facades\Http;
class RejectRequestListener
{
protected string $url;
protected string $password;
protected string $username;
public function __construct()
{
$this->url = config('harim_web_services.reject.url');
$this->username = config('harim_web_services.reject.username');
$this->password = config('harim_web_services.reject.password');
}
/**
* @throws RequestException
*/
public function handle(RejectRequestEvent $event): void
{
Http::post($this->url,
array(
'' => $event->harim->id,
'' => $event->harim->id,
'' => $event->harim->id,
'' => $event->harim->id,
'' => $event->harim->id,
'' => $event->harim->id,
'' => $event->harim->id,
))->throw();
}
}

View File

@@ -2,6 +2,16 @@
namespace App\Providers;
use App\Events\V3\Dashboard\Harim\ConfirmGuaranteeLetterNeedEvent;
use App\Events\V3\Dashboard\Harim\ConfirmNoRoadAccessNeedEvent;
use App\Events\V3\Dashboard\Harim\ConfirmRoadAccessEditNeedEvent;
use App\Events\V3\Dashboard\Harim\ConfirmRoadAccessNeedEvent;
use App\Events\V3\Dashboard\Harim\RejectRequestEvent;
use App\Listeners\V3\Dashboard\Harim\ConfirmGuaranteeLetterNeedListener;
use App\Listeners\V3\Dashboard\Harim\ConfirmNoRoadAccessNeedListener;
use App\Listeners\V3\Dashboard\Harim\ConfirmRoadAccessEditNeedListener;
use App\Listeners\V3\Dashboard\Harim\ConfirmRoadAccessNeedListener;
use App\Listeners\V3\Dashboard\Harim\RejectRequestListener;
use Illuminate\Auth\Events\Registered;
use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
@@ -25,6 +35,22 @@ class EventServiceProvider extends ServiceProvider
'Illuminate\Auth\Events\Login' => [
'App\Listeners\LogSuccessfulLogin',
],
RejectRequestEvent::class => [
RejectRequestListener::class
],
ConfirmRoadAccessNeedEvent::class => [
ConfirmRoadAccessNeedListener::class
],
ConfirmNoRoadAccessNeedEvent::class => [
ConfirmNoRoadAccessNeedListener::class
],
ConfirmRoadAccessEditNeedEvent::class => [
ConfirmRoadAccessEditNeedListener::class
],
ConfirmGuaranteeLetterNeedEvent::class => [
ConfirmGuaranteeLetterNeedListener::class
]
];
/**