Merge branch 'feature/ChangeOptionRecipt' into 'develop'

create new option for accident controller

See merge request witelgroup/rms_v2!121
This commit is contained in:
2025-05-31 06:36:55 +00:00
10 changed files with 122 additions and 48 deletions

View File

@@ -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"'

View File

@@ -1,10 +1,10 @@
<?php
namespace App\Http\Controllers\V3\Dashboard;
namespace App\Http\Controllers\V3\Dashboard\Accident;
use App\Enums\AccidentStates;
use App\Exceptions\ProhibitedAction;
use App\Exports\V3\AccidentReceipt\DataTableReport;
use App\Facades\DataTable\DataTableFacade;
use App\Facades\File\FileFacade;
use App\Facades\Sms\Sms;
use App\Http\Controllers\Controller;
@@ -22,10 +22,10 @@ use App\Services\NominatimService;
use App\Services\PaymentService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
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,9 +200,15 @@ class AccidentReceiptController extends Controller
return $this->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) {

View File

@@ -1,9 +1,9 @@
<?php
namespace App\Http\Controllers\V3\Dashboard\Reports;
namespace App\Http\Controllers\V3\Dashboard\Accident;
use App\Exports\V3\AccidentReceipt\ProvinceReport;
use App\Exports\V3\AccidentReceipt\CountryReport;
use App\Exports\V3\AccidentReceipt\ProvinceReport;
use App\Http\Controllers\Controller;
use App\Http\Traits\ApiResponse;
use App\Models\City;

View File

@@ -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
@@ -11,7 +13,7 @@ class ConfirmPaymentInfoRequest extends FormRequest
*/
public function authorize(): bool
{
return true;
return $this->accident->status === AccidentStates::SODOR_NAME_BIME_VA_DAGHI->value;
}
/**

View File

@@ -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',

View File

@@ -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,

View File

@@ -0,0 +1,28 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('accidents', function (Blueprint $table) {
$table->boolean('is_foreign')->default(false);
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('accidents', function (Blueprint $table) {
$table->dropColumn('is_foreign');
});
}
};

View File

@@ -14,19 +14,19 @@
<table>
<thead>
<tr>
<th colspan="9"
<th colspan="11"
style="background-color: #DAEEF3;text-align: center;border-right: 1px solid black;font-weight:bolder;">
تاریخ دریافت گزارش: {{ verta()->now()->format('Y/m/d H:i') }}
</th>
</tr>
<tr>
<th colspan="9"
<th colspan="11"
style="background-color: #DAEEF3;text-align: center;border-right:1px solid black;font-weight:bolder;">
</th>
</tr>
<tr>
<th colspan="9"
<th colspan="11"
style="background-color: #DAEEF3;text-align: center;border-right:1px solid black;font-weight:bolder;font-size: 13;">
گزارش خسارات وارده به ابنیه فنی و تاسیسات راه از تاریخ
{{ verta($fromDate)->format('Y/n/j') }}
@@ -42,7 +42,7 @@
<th rowspan="2" style="border:1px solid black;text-align:center;background-color: #C4D79B;">
اداره کل
</th>
<th rowspan="2" style="border:1px solid black;text-align:center;background-color: #C4D79B;">
<th colspan="3" style="border:1px solid black;text-align:center;background-color: #C4D79B;">
تعداد کل
</th>
<th colspan="2" style="border:1px solid black;text-align:center;background-color: #C4D79B;">
@@ -59,6 +59,15 @@
</th>
</tr>
<tr>
<th style="border:1px solid black;text-align:center;background-color: #EBF1DE;">
در دست اقدام
</th>
<th style="border:1px solid black;text-align:center;background-color: #EBF1DE;">
در حال فرایند پرداخت
</th>
<th style="border:1px solid black;text-align:center;background-color: #EBF1DE;">
خاتمه یافته
</th>
<th style="border:1px solid black;text-align:center;background-color: #EBF1DE;">
گزارش پلیس راه
</th>
@@ -86,7 +95,11 @@
<td style="text-align: center;border:1px solid black;background-color: #DAEEF3;">
{{ $road['name'] }}</td>
<td style="text-align: center;border:1px solid black;background-color: #DAEEF3;">
{{ $road['tedade'] }}</td>
{{ $road['egdam'] }}</td>
<td style="text-align: center;border:1px solid black;background-color: #DAEEF3;">
{{ $road['pardakht'] }}</td>
<td style="text-align: center;border:1px solid black;background-color: #DAEEF3;">
{{ $road['khatm'] }}</td>
<td style="text-align: center;border:1px solid black;background-color: #DAEEF3;">
{{ $road['police_rah'] }}</td>
<td style="text-align: center;border:1px solid black;background-color: #DAEEF3;">

View File

@@ -14,19 +14,19 @@
<table>
<thead>
<tr>
<th colspan="9"
<th colspan="11"
style="background-color: #DAEEF3;text-align: center;border-right: 1px solid black;font-weight:bolder;">
تاریخ دریافت گزارش: {{ verta()->now()->format('Y/m/d H:i') }}
</th>
</tr>
<tr>
<th colspan="9"
<th colspan="11"
style="background-color: #DAEEF3;text-align: center;border-right:1px solid black;font-weight:bolder;">
</th>
</tr>
<tr>
<th colspan="9"
<th colspan="11"
style="background-color: #DAEEF3;text-align: center;border-right:1px solid black;font-weight:bolder;font-size: 13;">
گزارش خسارات وارده به ابنیه فنی و تاسیسات راه از تاریخ
{{ verta($fromDate)->format('Y/n/j') }}
@@ -43,7 +43,7 @@
<th rowspan="2" style="border:1px solid black;text-align:center;background-color: #C4D79B;">
اداره کل
</th>
<th rowspan="2" style="border:1px solid black;text-align:center;background-color: #C4D79B;">
<th colspan="3" style="border:1px solid black;text-align:center;background-color: #C4D79B;">
تعداد کل
</th>
<th colspan="2" style="border:1px solid black;text-align:center;background-color: #C4D79B;">
@@ -60,6 +60,15 @@
</th>
</tr>
<tr>
<th style="border:1px solid black;text-align:center;background-color: #EBF1DE;">
در دست اقدام
</th>
<th style="border:1px solid black;text-align:center;background-color: #EBF1DE;">
در حال فرایند پرداخت
</th>
<th style="border:1px solid black;text-align:center;background-color: #EBF1DE;">
خاتمه یافته
</th>
<th style="border:1px solid black;text-align:center;background-color: #EBF1DE;">
گزارش پلیس راه
</th>
@@ -86,8 +95,12 @@
<tr>
<td style="text-align: center;border:1px solid black;background-color: #DAEEF3;">
{{ $road['name'] }}</td>
<<td style="text-align: center;border:1px solid black;background-color: #DAEEF3;">
{{ $road['egdam'] }}</td>
<td style="text-align: center;border:1px solid black;background-color: #DAEEF3;">
{{ $road['tedade'] }}</td>
{{ $road['pardakht'] }}</td>
<td style="text-align: center;border:1px solid black;background-color: #DAEEF3;">
{{ $road['khatm'] }}</td>
<td style="text-align: center;border:1px solid black;background-color: #DAEEF3;">
{{ $road['police_rah'] }}</td>
<td style="text-align: center;border:1px solid black;background-color: #DAEEF3;">

View File

@@ -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;