fixed_asset_id)) { return (int) $equipment->fixed_asset_id; } if (! class_exists(\Modules\AssetManagement\Entities\Asset::class) || ! $this->maintenanceUtil->isAssetManagementEnabled($businessId)) { return null; } $settings = $this->maintenanceUtil->getMaintenanceSettings($businessId); if (empty($settings['auto_create_asset'])) { return null; } $assetCode = $equipment->code; $exists = \Modules\AssetManagement\Entities\Asset::where('business_id', $businessId) ->where('asset_code', $assetCode) ->exists(); if ($exists) { $assetCode = $assetCode.'-'.substr(uniqid(), -4); } $asset = \Modules\AssetManagement\Entities\Asset::create([ 'business_id' => $businessId, 'asset_code' => $assetCode, 'name' => $equipment->name, 'quantity' => 1, 'model' => $equipment->model, 'serial_no' => $equipment->serial_number, 'category_id' => $settings['default_asset_category_id'] ?? null, 'project_id' => $equipment->project_id, 'purchase_date' => $equipment->installation_date, 'unit_price' => 0, 'is_allocatable' => 0, 'description' => 'ایجاد خودکار از تجهیز CMMS: '.$equipment->code, 'created_by' => $userId, 'purchase_type' => 'owned', ]); if ($equipment->warranty_expires_at && class_exists(\Modules\AssetManagement\Entities\AssetWarranty::class) && $equipment->installation_date) { \Modules\AssetManagement\Entities\AssetWarranty::create([ 'asset_id' => $asset->id, 'start_date' => $equipment->installation_date, 'end_date' => $equipment->warranty_expires_at, 'additional_note' => 'گارانتی همگام‌شده از CMMS', ]); } return (int) $asset->id; } public function updateLinkedAsset(Equipment $equipment): void { if (empty($equipment->fixed_asset_id) || ! class_exists(\Modules\AssetManagement\Entities\Asset::class)) { return; } $asset = \Modules\AssetManagement\Entities\Asset::find($equipment->fixed_asset_id); if (! $asset) { return; } $asset->update([ 'name' => $equipment->name, 'model' => $equipment->model, 'serial_no' => $equipment->serial_number, 'project_id' => $equipment->project_id, 'purchase_date' => $equipment->installation_date, ]); if ($equipment->warranty_expires_at && $equipment->installation_date && class_exists(\Modules\AssetManagement\Entities\AssetWarranty::class)) { $warranty = \Modules\AssetManagement\Entities\AssetWarranty::where('asset_id', $asset->id)->first(); $payload = [ 'start_date' => $equipment->installation_date, 'end_date' => $equipment->warranty_expires_at, 'additional_note' => 'گارانتی همگام‌شده از CMMS', ]; if ($warranty) { $warranty->update($payload); } else { \Modules\AssetManagement\Entities\AssetWarranty::create(array_merge($payload, ['asset_id' => $asset->id])); } } } }