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"' diff --git a/app/Http/Controllers/V3/Dashboard/AccidentReceiptController.php b/app/Http/Controllers/V3/Dashboard/Accident/AccidentReceiptController.php similarity index 97% rename from app/Http/Controllers/V3/Dashboard/AccidentReceiptController.php rename to app/Http/Controllers/V3/Dashboard/Accident/AccidentReceiptController.php index 3b314a2d..154701ad 100644 --- a/app/Http/Controllers/V3/Dashboard/AccidentReceiptController.php +++ b/app/Http/Controllers/V3/Dashboard/Accident/AccidentReceiptController.php @@ -1,10 +1,10 @@ successResponse(); } + /** + * @throws Throwable + */ public function destroy(Accident $accident): JsonResponse { - FileFacade::deleteDirectory('receipts_files/'.$accident->id); + + throw_if($accident->status != AccidentStates::BEDON_EGHDAM->value, new ProhibitedAction('قابلیت حذف در این مرحله وجود ندارد')); + + FileFacade::deleteDirectory('receipts_files/' . $accident->id); DB::transaction(function () use ($accident) { diff --git a/app/Http/Controllers/V3/Dashboard/Reports/AccidentReceiptReportController.php b/app/Http/Controllers/V3/Dashboard/Accident/AccidentReceiptReportController.php similarity index 97% rename from app/Http/Controllers/V3/Dashboard/Reports/AccidentReceiptReportController.php rename to app/Http/Controllers/V3/Dashboard/Accident/AccidentReceiptReportController.php index e9a29694..6669bfed 100644 --- a/app/Http/Controllers/V3/Dashboard/Reports/AccidentReceiptReportController.php +++ b/app/Http/Controllers/V3/Dashboard/Accident/AccidentReceiptReportController.php @@ -1,9 +1,9 @@ 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..c73a9bc8 100644 --- a/app/Http/Requests/V3/AccidentReceipt/UpdateRequest.php +++ b/app/Http/Requests/V3/AccidentReceipt/UpdateRequest.php @@ -2,6 +2,7 @@ namespace App\Http\Requests\V3\AccidentReceipt; +use App\Enums\AccidentStates; use Illuminate\Foundation\Http\FormRequest; class UpdateRequest extends FormRequest @@ -11,7 +12,7 @@ class UpdateRequest extends FormRequest */ public function authorize(): bool { - return true; + return $this->accident->status === AccidentStates::BEDON_EGHDAM->value; } /** @@ -25,10 +26,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/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/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'); + }); + } +}; 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'] }} diff --git a/routes/v3.php b/routes/v3.php index a4239c48..3a49cc51 100644 --- a/routes/v3.php +++ b/routes/v3.php @@ -3,6 +3,8 @@ use App\Http\Controllers\V3\Auth\LogoutController; use App\Http\Controllers\V3\CMMSMachinesController; use App\Http\Controllers\V3\DamageManagementController; +use App\Http\Controllers\V3\Dashboard\Accident\AccidentReceiptController; +use App\Http\Controllers\V3\Dashboard\Accident\AccidentReceiptReportController; use App\Http\Controllers\V3\Dashboard\Azmayesh\AzmayeshController; use App\Http\Controllers\V3\Dashboard\Azmayesh\AzmayeshSampleController; use App\Http\Controllers\V3\Dashboard\Azmayesh\AzmayeshTypeController; @@ -12,19 +14,16 @@ use App\Http\Controllers\V3\Dashboard\Mission\DetailController; use App\Http\Controllers\V3\Dashboard\Mission\RequestPortalController; use App\Http\Controllers\V3\Dashboard\Mission\TransportationUnitController; use App\Http\Controllers\V3\Dashboard\ObservedItemController; -use App\Http\Controllers\V3\Dashboard\AccidentReceiptController; use App\Http\Controllers\V3\Dashboard\OtpManagementController; -use App\Http\Controllers\V3\Dashboard\RoadMaintenanceStationController; -use App\Http\Controllers\V3\Dashboard\Reports\AccidentReceiptReportController; use App\Http\Controllers\V3\Dashboard\Reports\RoadItemsReportController; use App\Http\Controllers\V3\Dashboard\Reports\RoadPatrolReportController; use App\Http\Controllers\V3\Dashboard\RoadItemsProjectController; +use App\Http\Controllers\V3\Dashboard\RoadMaintenanceStationController; use App\Http\Controllers\V3\Dashboard\RoadObservationController; use App\Http\Controllers\V3\Dashboard\RoadPatrolProjectController; use App\Http\Controllers\V3\Dashboard\SafetyAndPrivacy\OperatorController; use App\Http\Controllers\V3\Dashboard\SafetyAndPrivacy\OperatorReportController; use App\Http\Controllers\V3\Dashboard\SafetyAndPrivacy\SupervisorController; -use App\Http\Controllers\V3\Dashboard\SafetyAndPrivacy\SupervisorReportController; use App\Http\Controllers\V3\FMSVehicleManagementController; use App\Http\Controllers\V3\Harim\DivarkeshiController; use App\Http\Controllers\V3\LogListManagementController;