From 3e01f4e3b971f36bf6ef8e0ebfd05197483307f6 Mon Sep 17 00:00:00 2001 From: joddyabott Date: Tue, 27 May 2025 14:21:01 +0330 Subject: [PATCH 1/6] create new dependensy for accident controller --- .../Dashboard/AccidentReceiptController.php | 5 +++- .../ConfirmPaymentInfoRequest.php | 6 ++-- .../V3/AccidentReceipt/UpdateRequest.php | 14 ++++++---- ...3805_add_is_foreign_to_accidents_table.php | 28 +++++++++++++++++++ 4 files changed, 44 insertions(+), 9 deletions(-) create mode 100644 database/migrations/2025_05_27_133805_add_is_foreign_to_accidents_table.php diff --git a/app/Http/Controllers/V3/Dashboard/AccidentReceiptController.php b/app/Http/Controllers/V3/Dashboard/AccidentReceiptController.php index 3b314a2d..aa4555c9 100644 --- a/app/Http/Controllers/V3/Dashboard/AccidentReceiptController.php +++ b/app/Http/Controllers/V3/Dashboard/AccidentReceiptController.php @@ -202,7 +202,10 @@ class AccidentReceiptController extends Controller public function destroy(Accident $accident): JsonResponse { - FileFacade::deleteDirectory('receipts_files/'.$accident->id); + + abort_if($accident->status === AccidentStates::BEDON_EGHDAM->value, 422); + + FileFacade::deleteDirectory('receipts_files/' . $accident->id); DB::transaction(function () use ($accident) { diff --git a/app/Http/Requests/V3/AccidentReceipt/ConfirmPaymentInfoRequest.php b/app/Http/Requests/V3/AccidentReceipt/ConfirmPaymentInfoRequest.php index 3b079953..63839c30 100644 --- a/app/Http/Requests/V3/AccidentReceipt/ConfirmPaymentInfoRequest.php +++ b/app/Http/Requests/V3/AccidentReceipt/ConfirmPaymentInfoRequest.php @@ -2,6 +2,8 @@ namespace App\Http\Requests\V3\AccidentReceipt; +use App\Enums\AccidentStates; +use App\Models\Accident; use Illuminate\Foundation\Http\FormRequest; class ConfirmPaymentInfoRequest extends FormRequest @@ -9,9 +11,9 @@ class ConfirmPaymentInfoRequest extends FormRequest /** * Determine if the user is authorized to make this request. */ - public function authorize(): bool + public function authorize(Accident $accident): bool { - return true; + return $accident->status === AccidentStates::SODOR_NAME_BIME_VA_DAGHI->value; } /** diff --git a/app/Http/Requests/V3/AccidentReceipt/UpdateRequest.php b/app/Http/Requests/V3/AccidentReceipt/UpdateRequest.php index 3160896d..bdf9908c 100644 --- a/app/Http/Requests/V3/AccidentReceipt/UpdateRequest.php +++ b/app/Http/Requests/V3/AccidentReceipt/UpdateRequest.php @@ -2,6 +2,8 @@ namespace App\Http\Requests\V3\AccidentReceipt; +use App\Enums\AccidentStates; +use App\Models\Accident; use Illuminate\Foundation\Http\FormRequest; class UpdateRequest extends FormRequest @@ -9,9 +11,9 @@ class UpdateRequest extends FormRequest /** * Determine if the user is authorized to make this request. */ - public function authorize(): bool + public function authorize(Accident $accident): bool { - return true; + return $accident->status === AccidentStates::BEDON_EGHDAM->value; } /** @@ -25,10 +27,10 @@ class UpdateRequest extends FormRequest 'province_id' => 'required|integer|exists:provinces,id', 'city_id' => 'required|integer|exists:cities,id', 'axis_name' => 'required|string', - 'driver_name' => 'required|string', - 'plaque' => 'required|string', - 'driver_national_code' => 'required|string', - 'driver_phone_number' => 'required|string', + 'driver_name' => 'required_if:is_foreign,0|string', + 'plaque' => 'required_if:is_foreign,0|string', + 'driver_national_code' => 'required_if:is_foreign,0|string', + 'driver_phone_number' => 'required_if:is_foreign,0|string', 'lat' => 'required|numeric', 'lng' => 'required|numeric', 'accident_type' => 'required|integer', diff --git a/database/migrations/2025_05_27_133805_add_is_foreign_to_accidents_table.php b/database/migrations/2025_05_27_133805_add_is_foreign_to_accidents_table.php new file mode 100644 index 00000000..eb239e41 --- /dev/null +++ b/database/migrations/2025_05_27_133805_add_is_foreign_to_accidents_table.php @@ -0,0 +1,28 @@ +boolean('is_foreign')->default(false); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('accidents', function (Blueprint $table) { + $table->dropColumn('is_foreign'); + }); + } +}; From 151d7ed566ac5719dd6407c99c2099f11bb5534b Mon Sep 17 00:00:00 2001 From: joddyabott Date: Tue, 27 May 2025 15:41:48 +0330 Subject: [PATCH 2/6] fix form request --- .../V3/AccidentReceipt/ConfirmPaymentInfoRequest.php | 4 ++-- app/Http/Requests/V3/AccidentReceipt/UpdateRequest.php | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/app/Http/Requests/V3/AccidentReceipt/ConfirmPaymentInfoRequest.php b/app/Http/Requests/V3/AccidentReceipt/ConfirmPaymentInfoRequest.php index 63839c30..0bbed211 100644 --- a/app/Http/Requests/V3/AccidentReceipt/ConfirmPaymentInfoRequest.php +++ b/app/Http/Requests/V3/AccidentReceipt/ConfirmPaymentInfoRequest.php @@ -11,9 +11,9 @@ class ConfirmPaymentInfoRequest extends FormRequest /** * Determine if the user is authorized to make this request. */ - public function authorize(Accident $accident): bool + public function authorize(): bool { - return $accident->status === AccidentStates::SODOR_NAME_BIME_VA_DAGHI->value; + return $this->accident->status === AccidentStates::SODOR_NAME_BIME_VA_DAGHI->value; } /** diff --git a/app/Http/Requests/V3/AccidentReceipt/UpdateRequest.php b/app/Http/Requests/V3/AccidentReceipt/UpdateRequest.php index bdf9908c..c73a9bc8 100644 --- a/app/Http/Requests/V3/AccidentReceipt/UpdateRequest.php +++ b/app/Http/Requests/V3/AccidentReceipt/UpdateRequest.php @@ -3,7 +3,6 @@ namespace App\Http\Requests\V3\AccidentReceipt; use App\Enums\AccidentStates; -use App\Models\Accident; use Illuminate\Foundation\Http\FormRequest; class UpdateRequest extends FormRequest @@ -11,9 +10,9 @@ class UpdateRequest extends FormRequest /** * Determine if the user is authorized to make this request. */ - public function authorize(Accident $accident): bool + public function authorize(): bool { - return $accident->status === AccidentStates::BEDON_EGHDAM->value; + return $this->accident->status === AccidentStates::BEDON_EGHDAM->value; } /** From 9ca86bd924d0bc453364dffa02416421505c0ab3 Mon Sep 17 00:00:00 2001 From: joddyabott Date: Tue, 27 May 2025 15:54:14 +0330 Subject: [PATCH 3/6] fix delete controller --- .../Controllers/V3/Dashboard/AccidentReceiptController.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/V3/Dashboard/AccidentReceiptController.php b/app/Http/Controllers/V3/Dashboard/AccidentReceiptController.php index aa4555c9..1b1bf2d7 100644 --- a/app/Http/Controllers/V3/Dashboard/AccidentReceiptController.php +++ b/app/Http/Controllers/V3/Dashboard/AccidentReceiptController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers\V3\Dashboard; use App\Enums\AccidentStates; +use App\Exceptions\ProhibitedAction; use App\Exports\V3\AccidentReceipt\DataTableReport; use App\Facades\DataTable\DataTableFacade; use App\Facades\File\FileFacade; @@ -26,6 +27,7 @@ use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\DB; use Maatwebsite\Excel\Facades\Excel; use Symfony\Component\HttpFoundation\BinaryFileResponse; +use Throwable; class AccidentReceiptController extends Controller { @@ -200,10 +202,13 @@ class AccidentReceiptController extends Controller return $this->successResponse(); } + /** + * @throws Throwable + */ public function destroy(Accident $accident): JsonResponse { - abort_if($accident->status === AccidentStates::BEDON_EGHDAM->value, 422); + throw_if($accident->status != AccidentStates::BEDON_EGHDAM->value, new ProhibitedAction('قابلیت حذف در این مرحله وجود ندارد')); FileFacade::deleteDirectory('receipts_files/' . $accident->id); From ff17aefac566f7fcf11dcecd0edf29bc854c5bed Mon Sep 17 00:00:00 2001 From: joddyabott Date: Tue, 27 May 2025 16:15:42 +0330 Subject: [PATCH 4/6] change ci --- .gitlab-ci.yml | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c5b6229b..263025f7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -28,8 +28,8 @@ services: before_script: - apk update - - coman=$(ls && pwd) - - echo "'$coman'" + - command=$(ls && pwd) + - echo "'$command'" - cp .env.example .env - composer install - php artisan key:generate @@ -49,7 +49,7 @@ test: - sed -i "s/DB_PASSWORD=/DB_PASSWORD=$MYSQL_ROOT_PASSWORD/" .env.testing - cat .env.testing - php artisan key:generate --env=testing - - php artisan migrate --env=testing --force + - php artisan migrate --path=/database/old_migrations/ --path=database/migrations --env=testing --force - php artisan test rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' @@ -71,21 +71,21 @@ test: when: always allow_failure: true -deploy: - stage: deploy - script: - - apt-get update && add --no-cache openssh-client - - chmod og-rwx $ID_RSA - - ssh -i $ID_RSA -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP " - echo -e '$SHECAN_DNS' | sudo tee /etc/resolv.conf && - dns=\$(cat /etc/resolv.conf) && - echo \"\$dns\" && - cd $PROJECT_PATH && - git checkout $TARGET_BRANCH_NAME && - ssh -T git@gitlab.com && - git pull ssh-origin $TARGET_BRANCH_NAME && - echo -e '$DEFAULT_DNS' | sudo tee /etc/resolv.conf" - resource_group: develop_deploy - rules: - - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_NAME == "develop"' +#deploy: +# stage: deploy +# script: +# - apt-get update && add --no-cache openssh-client +# - chmod og-rwx $ID_RSA +# - ssh -i $ID_RSA -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP " +# echo -e '$SHECAN_DNS' | sudo tee /etc/resolv.conf && +# dns=\$(cat /etc/resolv.conf) && +# echo \"\$dns\" && +# cd $PROJECT_PATH && +# git checkout $TARGET_BRANCH_NAME && +# ssh -T git@gitlab.com && +# git pull ssh-origin $TARGET_BRANCH_NAME && +# echo -e '$DEFAULT_DNS' | sudo tee /etc/resolv.conf" +# resource_group: develop_deploy +# rules: +# - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_NAME == "develop"' From d990b0b6da15f49d8c7505a41681458f1e62e058 Mon Sep 17 00:00:00 2001 From: joddyabott Date: Wed, 28 May 2025 15:02:29 +0330 Subject: [PATCH 5/6] add some tittle for table --- .../Cartables/AccidentReceiptTableService.php | 16 +++++++++++-- .../AccidentReceipt/CountryReport.blade.php | 23 +++++++++++++++---- .../AccidentReceipt/ProvinceReport.blade.php | 23 +++++++++++++++---- 3 files changed, 50 insertions(+), 12 deletions(-) diff --git a/app/Services/Cartables/AccidentReceiptTableService.php b/app/Services/Cartables/AccidentReceiptTableService.php index 4f251709..69ab80d3 100644 --- a/app/Services/Cartables/AccidentReceiptTableService.php +++ b/app/Services/Cartables/AccidentReceiptTableService.php @@ -46,6 +46,9 @@ class AccidentReceiptTableService "کشوری" as province_fa, -1 as province_id, COUNT(id) AS tedade, + COUNT(CASE WHEN STATUS =0 THEN 1 END ) AS egdam, + COUNT(CASE WHEN STATUS IN (1,2,3,4) THEN 1 END) AS pardakht, + COUNT(CASE WHEN STATUS =5 THEN 1 END ) AS khatm, COUNT(CASE WHEN report_base = 0 THEN 1 END) AS police_rah, COUNT(CASE WHEN report_base = 1 THEN 1 END) AS gozaresh_gasht, SUM(`sum`) AS kol_sabt_shode, @@ -60,6 +63,9 @@ class AccidentReceiptTableService province_fa, province_id, COUNT(id) AS tedade, + COUNT(CASE WHEN STATUS =0 THEN 1 END ) AS egdam, + COUNT(CASE WHEN STATUS IN (1,2,3,4) THEN 1 END) AS pardakht, + COUNT(CASE WHEN STATUS =5 THEN 1 END ) AS khatm, COUNT(CASE WHEN report_base = 0 THEN 1 END) AS police_rah, COUNT(CASE WHEN report_base = 1 THEN 1 END) AS gozaresh_gasht, SUM(`sum`) AS kol_sabt_shode, @@ -86,7 +92,10 @@ class AccidentReceiptTableService 'SELECT "استانی" as city_fa, -1 as city_id, - COUNT(id) AS tedade, + COUNT(id) AS tedade, + COUNT(CASE WHEN STATUS =0 THEN 1 END ) AS egdam, + COUNT(CASE WHEN STATUS IN (1,2,3,4) THEN 1 END) AS pardakht, + COUNT(CASE WHEN STATUS =5 THEN 1 END ) AS khatm, COUNT(CASE WHEN report_base = 0 THEN 1 END) AS police_rah, COUNT(CASE WHEN report_base = 1 THEN 1 END) AS gozaresh_gasht, SUM(`sum`) AS kol_sabt_shode, @@ -100,7 +109,10 @@ class AccidentReceiptTableService SELECT city_fa, city_id, - COUNT(id) AS tedade, + COUNT(id) AS tedade, + COUNT(CASE WHEN STATUS =0 THEN 1 END ) AS egdam, + COUNT(CASE WHEN STATUS IN (1,2,3,4) THEN 1 END) AS pardakht, + COUNT(CASE WHEN STATUS =5 THEN 1 END ) AS khatm, COUNT(CASE WHEN report_base = 0 THEN 1 END) AS police_rah, COUNT(CASE WHEN report_base = 1 THEN 1 END) AS gozaresh_gasht, SUM(`sum`) AS kol_sabt_shode, diff --git a/resources/views/v3/Reports/AccidentReceipt/CountryReport.blade.php b/resources/views/v3/Reports/AccidentReceipt/CountryReport.blade.php index c5745eb6..f4837f48 100644 --- a/resources/views/v3/Reports/AccidentReceipt/CountryReport.blade.php +++ b/resources/views/v3/Reports/AccidentReceipt/CountryReport.blade.php @@ -14,19 +14,19 @@ - - - - + + + @@ -86,7 +95,11 @@ + {{ $road['egdam'] }} + +
تاریخ دریافت گزارش: {{ verta()->now()->format('Y/m/d H:i') }}
گزارش خسارات وارده به ابنیه فنی و تاسیسات راه از تاریخ {{ verta($fromDate)->format('Y/n/j') }} @@ -42,7 +42,7 @@ اداره کل + تعداد کل @@ -59,6 +59,15 @@
+ در دست اقدام + + در حال فرایند پرداخت + + خاتمه یافته + گزارش پلیس راه {{ $road['name'] }} - {{ $road['tedade'] }} + {{ $road['pardakht'] }} + {{ $road['khatm'] }} {{ $road['police_rah'] }} diff --git a/resources/views/v3/Reports/AccidentReceipt/ProvinceReport.blade.php b/resources/views/v3/Reports/AccidentReceipt/ProvinceReport.blade.php index 501f8ce4..be9a6556 100644 --- a/resources/views/v3/Reports/AccidentReceipt/ProvinceReport.blade.php +++ b/resources/views/v3/Reports/AccidentReceipt/ProvinceReport.blade.php @@ -14,19 +14,19 @@ - - - - + + + @@ -86,8 +95,12 @@ + < + {{ $road['pardakht'] }} +
تاریخ دریافت گزارش: {{ verta()->now()->format('Y/m/d H:i') }}
گزارش خسارات وارده به ابنیه فنی و تاسیسات راه از تاریخ {{ verta($fromDate)->format('Y/n/j') }} @@ -43,7 +43,7 @@ اداره کل + تعداد کل @@ -60,6 +60,15 @@
+ در دست اقدام + + در حال فرایند پرداخت + + خاتمه یافته + گزارش پلیس راه
{{ $road['name'] }} + {{ $road['egdam'] }} - {{ $road['tedade'] }} + {{ $road['khatm'] }} {{ $road['police_rah'] }} From 24130b53aa9826f7928452bf43d45ed8496084b2 Mon Sep 17 00:00:00 2001 From: joddyabott Date: Wed, 28 May 2025 16:06:55 +0330 Subject: [PATCH 6/6] chenge calcher accident --- .../Dashboard/{ => Accident}/AccidentReceiptController.php | 4 +--- .../AccidentReceiptReportController.php | 4 ++-- routes/v3.php | 7 +++---- 3 files changed, 6 insertions(+), 9 deletions(-) rename app/Http/Controllers/V3/Dashboard/{ => Accident}/AccidentReceiptController.php (99%) rename app/Http/Controllers/V3/Dashboard/{Reports => Accident}/AccidentReceiptReportController.php (97%) diff --git a/app/Http/Controllers/V3/Dashboard/AccidentReceiptController.php b/app/Http/Controllers/V3/Dashboard/Accident/AccidentReceiptController.php similarity index 99% rename from app/Http/Controllers/V3/Dashboard/AccidentReceiptController.php rename to app/Http/Controllers/V3/Dashboard/Accident/AccidentReceiptController.php index 1b1bf2d7..154701ad 100644 --- a/app/Http/Controllers/V3/Dashboard/AccidentReceiptController.php +++ b/app/Http/Controllers/V3/Dashboard/Accident/AccidentReceiptController.php @@ -1,11 +1,10 @@