feat: implement AdminController for CMS management and AppServiceProvider for application bootstrapping

This commit is contained in:
Ümit Tunç
2026-04-28 23:12:07 +03:00
parent 382469d16c
commit c510b18f42
151 changed files with 5 additions and 20197 deletions
-1
View File
@@ -18,7 +18,6 @@ use App\DevExtreme\Utils;
use App\DevExtreme\FilterHelper;
use App\DevExtreme\DbSet;
use App\Models\NaksCertificate;
use Illuminate\Auth\Events\Registered;
use Maatwebsite\Excel\Facades\Excel;
use App\Imports\ImportExcel;
-50
View File
@@ -1,50 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Annotation extends Model
{
use HasFactory;
protected $fillable = [
'shape_id',
'spool_no',
'joint_type',
'type_of_welds',
'classification',
'page_number',
'x_coordinate',
'y_coordinate',
'width',
'height',
'shape_type',
'qr_code_data',
'pdf_file_path',
'created_by',
'original_start_point',
'connected_shape_id',
'version',
'is_active',
'parent_id',
'updated_by',
'welder_id',
'stroke_color',
'stroke_width'
];
protected $casts = [
'x_coordinate' => 'decimal:2',
'y_coordinate' => 'decimal:2',
'width' => 'decimal:2',
'height' => 'decimal:2',
];
public function updatedUser()
{
return $this->belongsTo(User::class, 'updated_by');
}
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Beveeling extends Model
{
use HasFactory;
protected $guarded = [];
}
-83
View File
@@ -1,83 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Carbon\Carbon;
class CalibrationLog extends Model
{
use HasFactory;
protected $table = 'calibration_logs';
protected $fillable = [
'certification_document',
'user_guide',
'instrument',
'discipline',
'description',
'item_no',
'equipment_name',
'manufacturer',
'model_no',
'serial_no',
'quantity',
'passport_certificate_no',
'place_of_calibration_verification',
'calibrated_by',
'calibration_frequency',
'calibration_certificate',
'calibration_certificate_no',
'calibration_date',
'calibration_due_date',
'deviation_ratio',
'status',
'remarks',
'comments',
'download',
'source_id',
'source_module',
];
/**
* Calculate calibration_due_date when calibration_date or calibration_frequency changes
*/
protected function calculateDueDate()
{
if ($this->calibration_date && $this->calibration_frequency) {
try {
$calibrationDate = Carbon::parse($this->calibration_date);
$frequency = (int) $this->calibration_frequency;
if ($frequency > 0) {
$this->calibration_due_date = $calibrationDate->copy()->addDays($frequency)->format('Y-m-d');
}
} catch (\Exception $e) {
// If date parsing fails, don't set due_date
// Log error if needed: \Log::error('Calibration date calculation failed: ' . $e->getMessage());
}
}
}
/**
* Mutator: Calculate due_date when calibration_date is set
*/
public function setCalibrationDateAttribute($value)
{
$this->attributes['calibration_date'] = $value;
$this->calculateDueDate();
}
/**
* Mutator: Calculate due_date when calibration_frequency is set
*/
public function setCalibrationFrequencyAttribute($value)
{
$this->attributes['calibration_frequency'] = $value;
$this->calculateDueDate();
}
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class ColorSystem extends Model
{
use HasFactory;
protected $guarded = [];
}
-34
View File
@@ -1,34 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class ColumnComment extends Model
{
use HasFactory;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'table_name',
'record_id',
'column_name',
'comment',
'column_value',
'user_id',
'ip_address',
];
/**
* Get the user that created the comment.
*/
public function user()
{
return $this->belongsTo(User::class);
}
}
-11
View File
@@ -1,11 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class ColumnDescription extends Model
{
use HasFactory;
}
-11
View File
@@ -1,11 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class ConstructionPaintLog extends Model
{
use HasFactory;
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class CurrentType extends Model
{
use HasFactory;
protected $guarded = [];
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class CutList extends Model
{
use HasFactory;
protected $guarded = [];
}
-11
View File
@@ -1,11 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Defect extends Model
{
use HasFactory;
}
-11
View File
@@ -1,11 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class DeletedJoint extends Model
{
use HasFactory;
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Discipline extends Model
{
use HasFactory;
protected $guarded = [];
}
-31
View File
@@ -1,31 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class DocumentHistory extends Model
{
protected $table = 'document_history';
protected $fillable = [
'table_name',
'column_name',
'row_id',
'user_name',
'action',
'file_name',
'file_size',
'moved_from',
'moved_to',
'action_date',
'file_path',
'notes'
];
protected $dates = [
'action_date',
'created_at',
'updated_at'
];
}
-153
View File
@@ -1,153 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Log;
class DocumentManagerPermission extends Model
{
use HasFactory;
protected $table = 'document_manager_permissions';
protected $fillable = [
'user_level',
'folder_path',
'permission_type',
'is_allowed'
];
protected $casts = [
'is_allowed' => 'boolean',
];
/**
* Get permissions for a specific user level and folder (with caching)
*/
public static function getUserFolderPermissions($userLevel, $folderPath)
{
$cacheKey = "doc_perms_{$userLevel}_{$folderPath}";
return Cache::remember($cacheKey, 3600, function() use ($userLevel, $folderPath) {
return self::where('user_level', $userLevel)
->where('folder_path', $folderPath)
->where('is_allowed', true)
->pluck('permission_type')
->toArray();
});
}
/**
* Check if user has specific permission for folder (with caching)
*/
public static function hasPermission($userLevel, $folderPath, $permissionType)
{
$cacheKey = "doc_perm_check_{$userLevel}_{$folderPath}_{$permissionType}";
return Cache::remember($cacheKey, 3600, function() use ($userLevel, $folderPath, $permissionType) {
return self::where('user_level', $userLevel)
->where('folder_path', $folderPath)
->where('permission_type', $permissionType)
->where('is_allowed', true)
->exists();
});
}
/**
* Get all permissions for a user level (with caching)
* Returns both allowed and denied permissions to handle inheritance correctly
*/
public static function getUserLevelPermissions($userLevel)
{
$cacheKey = "doc_perms_user_{$userLevel}";
return Cache::remember($cacheKey, 3600, function() use ($userLevel) {
return self::where('user_level', $userLevel)
// Removed where('is_allowed', true) to allow checking for explicit denies
->get()
->groupBy('folder_path');
});
}
/**
* Get all folder paths that have permissions
*/
public static function getFolderPaths()
{
return self::distinct()
->pluck('folder_path')
->toArray();
}
/**
* Get all user levels that have permissions
*/
public static function getUserLevels()
{
return self::distinct()
->pluck('user_level')
->toArray();
}
/**
* Clear cache for specific user level
*/
public static function clearUserLevelCache($userLevel)
{
$cacheKeys = [
"doc_perms_user_{$userLevel}",
"doc_perms_{$userLevel}_*",
"doc_perm_check_{$userLevel}_*"
];
foreach ($cacheKeys as $pattern) {
if (strpos($pattern, '*') !== false) {
// Clear pattern-based cache keys
Cache::flush();
break;
} else {
Cache::forget($pattern);
}
}
}
/**
* Clear all document manager permission caches
*/
public static function clearAllCaches()
{
Cache::flush();
}
/**
* Clear cache when permissions are updated
* @param string $userLevel - User level to clear cache for
* @param string|null $folderPath - Specific folder path to clear (optional)
*/
public static function clearPermissionCache($userLevel, $folderPath = null)
{
if ($folderPath) {
// Clear specific folder cache
Cache::forget("doc_perms_{$userLevel}_{$folderPath}");
Cache::forget("doc_perms_user_{$userLevel}");
// Clear all permission checks for this folder
$permissionTypes = ['read', 'write', 'edit'];
foreach ($permissionTypes as $type) {
Cache::forget("doc_perm_check_{$userLevel}_{$folderPath}_{$type}");
}
Log::info("Permission cache cleared for specific folder", [
'user_level' => $userLevel,
'folder_path' => $folderPath
]);
} else {
// Clear all cache for user level
self::clearUserLevelCache($userLevel);
Log::info("Permission cache cleared for user level", ['user_level' => $userLevel]);
}
}
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class DocumentProcedure extends Model
{
use HasFactory;
protected $guarded = [];
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class DocumentRevision extends Model
{
use HasFactory;
protected $guarded = [];
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class DutyType extends Model
{
use HasFactory;
protected $guarded = [];
}
-11
View File
@@ -1,11 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class DyePenetrantTest extends Model
{
use HasFactory;
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class ElectrodeCoating extends Model
{
use HasFactory;
protected $guarded = [];
}
-35
View File
@@ -1,35 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Element extends Model
{
use HasFactory;
protected $table = 'pdfm_elements';
protected $fillable = [
'element_code',
'element_name',
'element_type',
'material',
'diameter',
'thickness',
'classification',
'weight'
];
// Relationships
public function jointsFrom()
{
return $this->hasMany(Joint::class, 'element_from', 'element_code');
}
public function jointsTo()
{
return $this->hasMany(Joint::class, 'element_to', 'element_code');
}
}
-18
View File
@@ -1,18 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class FeedbackReport extends Model
{
protected $fillable = [
'user_id',
'title',
'description',
'screenshot_path',
'status',
'username',
];
}
-11
View File
@@ -1,11 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Ferrit extends Model
{
use HasFactory;
}
-11
View File
@@ -1,11 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class FitUpWeldingFollowUp extends Model
{
use HasFactory;
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class GeneralDiscipline extends Model
{
use HasFactory;
protected $guarded = [];
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Handover extends Model
{
use HasFactory;
protected $guarded = [];
}
-11
View File
@@ -1,11 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class HardnessTest extends Model
{
use HasFactory;
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class HazardClass extends Model
{
use HasFactory;
protected $guarded = [];
}
-11
View File
@@ -1,11 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class ITP extends Model
{
use HasFactory;
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class IncomingControl extends Model
{
use HasFactory;
protected $guarded = [];
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class IncomingControlPaint extends Model
{
use HasFactory;
protected $guarded = [];
}
-43
View File
@@ -1,43 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class InspectionHistory extends Model
{
use HasFactory;
/**
* The table associated with the model.
*
* @var string
*/
protected $table = 'inspection_history';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'table_name',
'record_id',
'column_name',
'comment',
'file_path',
'file_name',
'file_size',
'user_id',
'ip_address',
];
/**
* Get the user that created the inspection history.
*/
public function user()
{
return $this->belongsTo(User::class);
}
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class JobDescription extends Model
{
use HasFactory;
protected $guarded = [];
}
-45
View File
@@ -1,45 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Joint extends Model
{
use HasFactory;
protected $table = 'pdfm_joints';
protected $fillable = [
'joint_no',
'spool_no',
'element_from',
'element_to',
'joint_type',
'welding_type',
'classification',
'status'
];
// Relationships
public function spool()
{
return $this->belongsTo(Spool::class, 'spool_no', 'spool_no');
}
public function elementFrom()
{
return $this->belongsTo(Element::class, 'element_from', 'element_code');
}
public function elementTo()
{
return $this->belongsTo(Element::class, 'element_to', 'element_code');
}
public function welderAssignments()
{
return $this->hasMany(WelderAssignment::class, 'joint_no', 'joint_no');
}
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class JointType extends Model
{
use HasFactory;
protected $guarded = [];
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class JointView extends Model
{
use HasFactory;
protected $guarded = [];
}
-11
View File
@@ -1,11 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class LineList extends Model
{
use HasFactory;
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class LineListCategory extends Model
{
use HasFactory;
protected $guarded = [];
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class LineListGroup extends Model
{
use HasFactory;
protected $guarded = [];
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Location extends Model
{
use HasFactory;
protected $guarded = [];
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class MTO extends Model
{
use HasFactory;
protected $guarded = [];
}
-11
View File
@@ -1,11 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class MagneticTest extends Model
{
use HasFactory;
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Material extends Model
{
use HasFactory;
protected $guarded = [];
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class MaterialGroupMap extends Model
{
use HasFactory;
protected $guarded = [];
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class MaterialGroupTestPiece extends Model
{
use HasFactory;
protected $guarded = [];
}
-11
View File
@@ -1,11 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class MaterialPlaning extends Model
{
use HasFactory;
}
-11
View File
@@ -1,11 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class MaterialPlaningDetail extends Model
{
use HasFactory;
}
-11
View File
@@ -1,11 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class NCRLog extends Model
{
use HasFactory;
}
-11
View File
@@ -1,11 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class NDT extends Model
{
use HasFactory;
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class NaksCenter extends Model
{
use HasFactory;
protected $guarded = [];
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class NaksCertificate extends Model
{
use HasFactory;
protected $guarded = [];
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class NaksConsumable extends Model
{
use HasFactory;
protected $guarded = [];
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class NaksWelder extends Model
{
use HasFactory;
protected $guarded = [];
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class NdeMatrix extends Model
{
use HasFactory;
protected $guarded = [];
}
-110
View File
@@ -1,110 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class Notification extends Model
{
protected $table = 'notifications';
protected $fillable = [
'user_id',
'notification_code',
'title',
'message',
'link',
'is_read',
'filter_params',
];
protected $casts = [
'is_read' => 'boolean',
'created_at' => 'datetime',
'updated_at' => 'datetime',
'filter_params' => 'array',
];
/**
* Get the user that owns the notification
* Performance: Use only when needed with eager loading
*/
public function user(): BelongsTo
{
return $this->belongsTo(User::class);
}
/**
* Scope: Get only unread notifications
* Performance: Uses index on is_read column
*/
public function scopeUnread($query)
{
return $query->where('is_read', false);
}
/**
* Scope: Get notifications for specific user
* Performance: Uses composite index on (user_id, is_read)
*/
public function scopeForUser($query, $userId)
{
return $query->where('user_id', $userId);
}
/**
* Scope: Get recent notifications (last 30 days)
* Performance: Uses index on created_at column
*/
public function scopeRecent($query, $days = 30)
{
return $query->where('created_at', '>=', now()->subDays($days));
}
/**
* Mark notification as read
* Performance: Single update query without model events
*/
public function markAsRead(): bool
{
if ($this->is_read) {
return true; // Already read, skip update
}
return $this->update(['is_read' => true]);
}
/**
* Mark multiple notifications as read (bulk operation)
* Performance: Single bulk update query
*/
public static function markMultipleAsRead(array $ids): int
{
return self::whereIn('id', $ids)
->where('is_read', false)
->update(['is_read' => true]);
}
/**
* Get unread count for user
* Performance: Count query without loading records
*/
public static function getUnreadCount($userId): int
{
return self::where('user_id', $userId)
->where('is_read', false)
->count();
}
/**
* Delete old notifications (cleanup)
* Performance: Bulk delete with date filter
*/
public static function deleteOldNotifications($days = 90): int
{
return self::where('created_at', '<', now()->subDays($days))
->delete();
}
}
-11
View File
@@ -1,11 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class PMITest extends Model
{
use HasFactory;
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class PNumber extends Model
{
use HasFactory;
protected $guarded = [];
}
-11
View File
@@ -1,11 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class PTLog extends Model
{
use HasFactory;
}
-11
View File
@@ -1,11 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class PWHT extends Model
{
use HasFactory;
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class PaintFollowUp extends Model
{
use HasFactory;
protected $guarded = [];
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class PaintMatrix extends Model
{
use HasFactory;
protected $guarded = [];
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class PaintSystem extends Model
{
use HasFactory;
protected $guarded = [];
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class PerformedWorkType extends Model
{
use HasFactory;
protected $guarded = [];
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class PipingType extends Model
{
use HasFactory;
protected $guarded = [];
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class ProductType extends Model
{
use HasFactory;
protected $guarded = [];
}
@@ -1,11 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class ProsedureQualificationRecord extends Model
{
use HasFactory;
}
-11
View File
@@ -1,11 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class PunchDescription extends Model
{
use HasFactory;
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class PunchList extends Model
{
use HasFactory;
protected $guarded = [];
}
-11
View File
@@ -1,11 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class PunchListComment extends Model
{
use HasFactory;
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class QCActivity extends Model
{
use HasFactory;
protected $guarded = [];
}
-13
View File
@@ -1,13 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class RFI extends Model
{
use HasFactory;
protected $guarded = [];
}
-11
View File
@@ -1,11 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class RadiographicTest extends Model
{
use HasFactory;
}
-13
View File
@@ -1,13 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class RegisterOfExpert extends Model
{
use HasFactory;
protected $table = 'register_of_experts';
protected $guarded = [];
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Result extends Model
{
use HasFactory;
protected $guarded = [];
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class RuWeldingGeometry extends Model
{
use HasFactory;
protected $guarded = [];
}
-35
View File
@@ -1,35 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Spool extends Model
{
use HasFactory;
protected $table = 'pdfm_spools';
protected $fillable = [
'spool_no',
'description',
'material',
'diameter',
'thickness',
'length',
'classification',
'status'
];
// Relationships
public function joints()
{
return $this->hasMany(Joint::class, 'spool_no', 'spool_no');
}
public function annotations()
{
return $this->hasMany(Annotation::class, 'spool_no', 'spool_no');
}
}
-11
View File
@@ -1,11 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Subcontractor extends Model
{
use HasFactory;
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Support extends Model
{
use HasFactory;
protected $guarded = [];
}
-79
View File
@@ -1,79 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class SurfaceAreaConstant extends Model
{
use HasFactory;
protected $table = 'surface_area_constants';
protected $fillable = [
'standard',
'general_name',
'element_name_en',
'element_name_ru',
'product_standard',
'dia_inch',
'dia_mm',
'surface_area_m2',
// 'is_active',
];
protected $casts = [
'dia_mm' => 'decimal:2',
'surface_area_m2' => 'decimal:6',
// 'is_active' => 'boolean',
];
/**
* Get surface area constants by standard
*/
public static function byStandard($standard)
{
return self::where('standard', $standard)
// ->where('is_active', true)
->get();
}
/**
* Get surface area for specific element
*/
public static function getSurfaceArea($standard, $elementNameEn, $diaMm)
{
return self::where('standard', $standard)
->where('element_name_en', $elementNameEn)
->where('dia_mm', $diaMm)
->first();
}
/**
* Get unique diameters
*/
public static function getUniqueDiameters()
{
return self::select('dia_inch', 'dia_mm')
->distinct()
->orderBy('dia_mm')
->get();
}
/**
* Get unique element types
*/
public static function getUniqueElements($standard = null)
{
$query = self::select('element_name_en')
// ->where('is_active', true)
->distinct();
if ($standard) {
$query->where('standard', $standard);
}
return $query->pluck('element_name_en');
}
}
-21
View File
@@ -1,21 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class TestPackBaseStatus extends Model
{
use HasFactory;
protected $guarded = [];
/**
* The attributes that should be cast.
*
* @var array
*/
protected $casts = [
'is_manual' => 'boolean',
];
}
-21
View File
@@ -1,21 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class TestPackage extends Model
{
use HasFactory;
protected $guarded = [];
/**
* The attributes that should be cast.
*
* @var array
*/
protected $casts = [
'is_manual' => 'boolean',
];
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class TypeOfConsumable extends Model
{
use HasFactory;
protected $guarded = [];
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class UTType extends Model
{
use HasFactory;
protected $guarded = [];
}
-11
View File
@@ -1,11 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class UltrasonicTest extends Model
{
use HasFactory;
}
-11
View File
@@ -1,11 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class VTLog extends Model
{
use HasFactory;
}
-11
View File
@@ -1,11 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class WPS extends Model
{
use HasFactory;
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class WeldLog extends Model
{
use HasFactory;
protected $guarded = [];
}
-11
View File
@@ -1,11 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class WeldMap extends Model
{
use HasFactory;
}
-27
View File
@@ -1,27 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Welder extends Model
{
use HasFactory;
protected $table = 'pdfm_welders';
protected $fillable = [
'welder_code',
'name',
'certification',
'specialization',
'status'
];
// Relationships
public function welderAssignments()
{
return $this->hasMany(WelderAssignment::class, 'welder_code', 'welder_code');
}
}
-32
View File
@@ -1,32 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class WelderAssignment extends Model
{
use HasFactory;
protected $table = 'pdfm_welder_assignments';
protected $fillable = [
'joint_no',
'welder_code',
'assigned_date',
'completed_date',
'status'
];
// Relationships
public function joint()
{
return $this->belongsTo(Joint::class, 'joint_no', 'joint_no');
}
public function welder()
{
return $this->belongsTo(Welder::class, 'welder_code', 'welder_code');
}
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class WelderConfirmCheck extends Model
{
use HasFactory;
protected $guarded = [];
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class WelderLocation extends Model
{
use HasFactory;
protected $guarded = [];
}
-14
View File
@@ -1,14 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class WelderTest extends Model
{
use HasFactory;
protected $table = 'welder_tests';
protected $guarded = [];
}
-11
View File
@@ -1,11 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class WelderTestPlan extends Model
{
use HasFactory;
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class WeldingConsumable extends Model
{
use HasFactory;
protected $guarded = [];
}
-13
View File
@@ -1,13 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class WeldingEquipment extends Model
{
use HasFactory;
protected $table = 'welding_equipment';
protected $guarded = [];
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class WeldingMachineType extends Model
{
use HasFactory;
protected $guarded = [];
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class WeldingMaterialsBrend extends Model
{
use HasFactory;
protected $guarded = [];
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class WeldingMethod extends Model
{
use HasFactory;
protected $guarded = [];
}
-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class WeldingPosition extends Model
{
use HasFactory;
protected $guarded = [];
}

Some files were not shown because too many files have changed in this diff Show More