Files
backend/app/Models/ContractSubItems.php
2024-02-01 09:53:53 +00:00

242 lines
7.1 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use App\Models\ContractSubItemsHistory;
use App\Http\Controllers\Api\ContractSubItemsController;
class ContractSubItems extends Model
{
public static function boot()
{
parent::boot();
self::creating(function($model){
});
self::created(function($model){
auth()->user()->addActivityComplete(1005,$model);
});
self::updating(function($model){
auth()->user()->addActivityComplete(1006,$model);
});
self::updated(function($model){
});
self::deleting(function($model){
auth()->user()->addActivityComplete(1007,$model);
});
self::deleted(function($model){
});
}
protected $fillable = [
'project_title',
'project_type_id',
'project_type_fa',
'progress_project',
'operation_type_id1',
'operation_type_fa1',
'operation_type_unit1',
'operation_type_amount1',
'operation_type_progress1',
'operation_type_tonaj1',
'operation_type_id2',
'operation_type_fa2',
'operation_type_unit2',
'operation_type_amount2',
'operation_type_progress2',
'operation_type_tonaj2',
'operation_type_id3',
'operation_type_fa3',
'operation_type_unit3',
'operation_type_amount3',
'operation_type_progress3',
'operation_type_tonaj3',
'operation_type_id4',
'operation_type_fa4',
'operation_type_unit4',
'operation_type_amount4',
'operation_type_progress4',
'operation_type_tonaj4',
'project_type_fa_for_chart',
'city_id',
'city_fa',
'province_id',
'province_fa',
'axis_type_id',
'axis_type_fa',
'axis_name_id',
'axis_name_fa',
'start_lat',
'end_lat',
'start_lng',
'end_lng',
'followup_priority_project_id',
'followup_priority_project',
'priority_project',
'priority_project_fa',
'operator_name',
'operator_phone',
'created_at_fa',
'last_status_id',
'last_status_fa',
'last_status_fa_for_chart',
'last_digit_project',
'last_function_operator',
'last_payable_operator',
'complete_payable',
'updated_at_fa',
'image_path1',
'image_path2',
'unique_code',
'required_bitumen',
'used_bitumen',
'bridge_number',
'contract_id',
'contract_date_from_parent_contract',
'start_way_id',
'end_way_id',
'user_id'
];
protected $table = 'contract_subitems';
public function Contracts()
{
return $this->belongsTo(Contracts::class, 'contract_id');
}
public function histories()
{
return $this->hasMany(ContractSubItemsHistory::class, 'subitem_id', 'id');
}
/// Setters
public function setAxisTypeFa($id)
{
if ($id == '1') {
$axis_type_fa = 'آزادراه';
} elseif ($id == '2') {
$axis_type_fa = 'بزرگراه';
} elseif ($id == '3') {
$axis_type_fa = 'اصلی';
} elseif ($id == '4') {
$axis_type_fa = 'فرعی';
} elseif ($id == '5') {
$axis_type_fa = 'روستایی';
} elseif ($id == '0') {
return;
}
$this->attributes['axis_type_fa'] = $axis_type_fa;
}
public function setPriorityProjectFa($id)
{
if ($id == '1') {
$priority_project_fa = 'کم';
} elseif ($id == '2') {
$priority_project_fa = 'متوسط';
} elseif ($id == '3') {
$priority_project_fa = 'زیاد';
} elseif ($id == '0') {
return;
}
$this->attributes['priority_project_fa'] = $priority_project_fa;
}
public function setFollowupPriorityProjectFa($id)
{
if ($id == '1') {
$followup_priority_project = 'کم(ماهیت محلی و منطقه ای بدون پیگیری های ویژه در سطح ملی)';
} elseif ($id == '2') {
$followup_priority_project = 'متوسط (ماهیت ملی یا استانی)';
} elseif ($id == '3') {
$followup_priority_project = 'زیاد (مورد تاکید و پیگیری ویژه مسیولین محلی یا ملی)';
} else {
return;
}
$this->attributes['followup_priority_project'] = $followup_priority_project;
}
public function setProjectTypeFa($id)
{
$this->attributes['project_type_fa'] = (new ContractSubItemsController())->getAllOperationList()[$id]['farsi'];
$this->attributes['project_type_fa_for_chart'] = (new ContractSubItemsController())->getAllOperationList()[$id]['chart'];
}
public function setLastStatusFa($id)
{
if ($id == '1') {
$last_status['fa'] = 'در حال تجهیز کارگاه';
$last_status['chart'] = 'در حال تجهیز کارگاه';
} elseif ($id == '2') {
$last_status['fa'] = 'در حال اجرا';
$last_status['chart'] = 'در حال اجرا';
} elseif ($id == '3') {
$last_status['fa'] = 'خاتمه یافته و بهره برداری شده';
$last_status['chart'] = 'خاتمه یافته';
} elseif ($id == '4') {
$last_status['fa'] = 'در دست مناقصه';
$last_status['chart'] = 'در دست مناقصه';
} elseif ($id == '0') {
return;
}
$this->attributes['last_status_fa'] = $last_status['fa'];
$this->attributes['last_status_fa_for_chart'] = $last_status['chart'];
}
public static function getProjectQuery($id)
{
if ($id == '1') {
$projectQuery = \App\Models\RoadMaintenanceProject::query();
} elseif ($id == '2') {
$projectQuery = \App\Models\RoadDangerPrevention::query();
} elseif ($id == '3') {
$projectQuery = \App\Models\RoadUpgradeSafety::query();
} elseif ($id == '4') {
$projectQuery = \App\Models\RoadTechnicalBuilding::query();
} elseif ($id == '5') {
$projectQuery = \App\Models\RoadTollhouseManagement::query();
} elseif ($id == '0') {
return;
}
return $projectQuery;
}
public static function checkProgressProjectCondition($status_id, $progress)
{
if ($status_id == '1') {
$progress_project = '10';
} elseif ($status_id == '2') {
if ($progress > 10 && $progress <= 99) {
$progress_project = $progress;
} else {
return response()->json(['message' => 'progress project is not valid'], 400);
}
} elseif ($status_id == '3') {
$progress_project = '100';
} elseif ($status_id == '4') {
$progress_project = '5';
} elseif ($status_id == '0') {
return;
}
return $progress_project;
}
}