Files
citrus-cms/resources/views/guide/incoming-control-task-analysis-roadmap.md
T
2026-04-28 21:15:09 +03:00

389 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Incoming Control Task Analysis & Roadmap
## 📋 Task Overview
Bu dokümantasyon, Incoming Control modülü için yeni task'ın analizini ve uygulama roadmap'ini içermektedir.
---
## 🔍 Önceki Task'ta Yapılanlar (Tamamlanmış)
### 1. Incoming Control Popup Sistemi
- ✅ Weldlog/Weldmap ekranlarında certificate no ve heat number alanlarına popup eklendi
- ✅ Popup'ta incoming control verilerine erişim sağlandı
- ✅ RFI date > welding date kontrolü ve renklendirme eklendi
- ✅ Seçilen bilgilerin Certificate no ve Heat no'ya yazılması
- ✅ RFI tarihine göre sıralama
### 2. Incoming Control'e Eklenen Yeni Alanlar
- ✅ `inspection_photo_file` - Inspection photo dosyaları (10004_Incoming_inspection_Photos/)
- ✅ `email_tq_file` - Email/TQ agreement dosyaları (10005_Material_Agreement/)
- ✅ `email_tq_number` - Email/TQ takip numarası
- ✅ `osd_defect_akt_file` - OSD Defect AKT dosyaları (10003_Defect_Akt/)
- ✅ `osd_report_date` - OSD rapor tarihi
- ✅ `drawing_number` - Drawing numarası
### 3. MTO Entegrasyonu
- ✅ MTO'dan `drawing_number` sync edildi
- ✅ MTO sync işleminde drawing_number dahil edildi
### 4. Dosya Yükleme Sistemi
- ✅ 3 farklı upload alanı eklendi (inspection photo, email/TQ, OSD defect)
- ✅ Her biri için ayrı klasör yapısı
---
## 🎯 Yeni Task'ta İstenenler
### ✅ Tamamlanması Gerekenler
#### 1. **Dosya Klasör Yapısı Değişiklikleri**
- ❌ **Material Agreement**: `10005_Material_Agreement/` → `002_Project_Materials/005_Material_Agreement/` olmalı
- ❌ **OSD Defect**: `10003_Defect_Akt/` → `002_Project_Materials/006_Defect_Documents/` veya `006_Defect_Akt/` olmalı
- ❌ **Inspection Photo**: Kaldırılacak (removed sub-issue)
#### 2. **PDF Görüntüleme Sistemi**
- ❌ Incoming Control ekranına Weldlog'daki gibi sol tarafta PDF görüntüleme alanı eklenmeli
- ❌ Yüklenen PDF'ler (Material Agreement ve OSD Defect) bu alanda gösterilmeli
- ❌ Sütunlar PDF görüntüleme alanının yanına gelmeli
#### 3. **Sütun İsimlendirme Değişiklikleri**
- ❌ **Drawing**: "Drawing" → "Line" olarak değiştirilmeli
- ❌ **Drawing yanına**: "Project" sütunu eklenmeli
- ❌ **Email/TQ**: "Email / TQ No" → sadece "TQ" olmalı
- ❌ **Zone**: Popup'ta "Zone" olarak gösterilen `project` alanı doğru çalışıyor (değişiklik yok)
#### 4. **Sum/Avg Hesaplamaları**
- ❌ Входящий контроль (Incoming Control) alanında sum/avg gibi hesaplamalar kaldırılmalı
#### 5. **Yetkilendirme Sistemi**
- ❌ Tüm dosya yükleme yetkilendirmeleri `incoming_control_upload_permission` altında toplanmalı
- ❌ Special permissions sayfasında düzenleme yapılmalı
#### 6. **Comments Ekranı Sorunu**
- ❌ Weldlog - Weldmap açılır ekran Comments'te hiçbir veri görüntülenmiyor
- ❌ Mevcut veriler içinde olmasına rağmen gösterilmiyor
---
## 📊 Mevcut Durum Analizi
### Dosya Yapısı
```
Mevcut:
- 10004_Incoming_inspection_Photos/ (KALDIRILACAK)
- 10005_Material_Agreement/ (DEĞİŞTİRİLECEK)
- 10003_Defect_Akt/ (DEĞİŞTİRİLECEK)
Yeni:
- 002_Project_Materials/005_Material_Agreement/
- 002_Project_Materials/006_Defect_Documents/ (veya 006_Defect_Akt/)
```
### Sütun İsimleri
```
Mevcut:
- "Drawing" → "Line" olmalı
- "Email / TQ No" → "TQ" olmalı
- "Project" sütunu eklenmeli (Drawing yanına)
```
### PDF Görüntüleme
- Weldlog'da PDF görüntüleme sistemi mevcut
- Incoming Control'de yok, eklenmeli
### Sum/Avg Hesaplamaları
- `datagrid.blade.php` içinde summary sistemi var
- Incoming Control için devre dışı bırakılmalı
---
## 🗺️ Implementation Roadmap
### Phase 1: Dosya Klasör Yapısı ve Upload Değişiklikleri
#### 1.1. Upload Klasörlerini Güncelle
**Dosya:** `resources/views/admin/type/incoming-control.blade.php`
**Değişiklikler:**
- `$thirdUploadFolder` - Inspection Photo kaldırılacak
- `$fourthUploadFolder`: `10005_Material_Agreement/` → `002_Project_Materials/005_Material_Agreement/`
- `$fifthUploadFolder`: `10003_Defect_Akt/` → `002_Project_Materials/006_Defect_Documents/`
**Etkilenen Alanlar:**
- Upload section HTML
- Block groups (inspection_photo_file kaldırılacak)
- Relation datas (inspection_photo_file kaldırılacak)
#### 1.2. Database Migration (Gerekirse)
- Eğer mevcut dosyalar taşınacaksa migration gerekebilir
- Dosya yollarını güncellemek için script
---
### Phase 2: PDF Görüntüleme Sistemi
#### 2.1. PDF Viewer Component Oluştur
**Yeni Dosya:** `resources/views/components/incoming-control-pdf-viewer.blade.php`
**Özellikler:**
- Sol tarafta PDF görüntüleme alanı
- Material Agreement ve OSD Defect PDF'lerini gösterme
- Weldlog'daki PDF viewer'a benzer yapı
#### 2.2. Incoming Control Layout'u Güncelle
**Dosya:** `resources/views/admin/type/incoming-control.blade.php`
**Değişiklikler:**
- Layout'u iki kolonlu yap (PDF viewer sol, datagrid sağ)
- PDF viewer component'ini dahil et
- Seçili satırdaki PDF'leri göster
#### 2.3. JavaScript Entegrasyonu
- DataGrid'de satır seçildiğinde PDF'leri yükle
- PDF viewer'ı güncelle
---
### Phase 3: Sütun İsimlendirme ve Düzenlemeler
#### 3.1. Incoming Control Ana Ekran
**Dosya:** `resources/views/admin/type/incoming-control.blade.php`
**Değişiklikler:**
- Block groups'da `drawing_number` → "Line" olarak göster
- `project` alanını "Project" olarak ekle (Drawing yanına)
- `email_tq_number` → "TQ" olarak göster
#### 3.2. Popup Ekranı
**Dosya:** `resources/views/components/incoming-control-popup.blade.php`
**Değişiklikler:**
- "Drawing" → "Line" olarak değiştir (satır 220)
- "Email / TQ No" → "TQ" olarak değiştir (satır 262)
- "Zone" zaten `project` alanını gösteriyor, doğru
#### 3.3. AJAX Endpoint
**Dosya:** `resources/views/admin-ajax/get-incoming-for-weldlog.blade.php`
**Değişiklikler:**
- Response'da field isimleri aynı kalacak (sadece caption'lar değişecek)
---
### Phase 4: Sum/Avg Hesaplamalarını Kaldır
#### 4.1. Incoming Control DataGrid Ayarları
**Dosya:** `resources/views/admin/type/incoming-control.blade.php`
**Değişiklikler:**
- `$disableTotalSummary = true;` ekle
- Veya `$limitedSummaryColumns = [];` (boş array)
#### 4.2. Module Block Component
**Dosya:** `resources/views/components/blocks/module-block.blade.php`
**Kontrol:**
- Incoming Control için summary'lerin devre dışı olduğundan emin ol
---
### Phase 5: Yetkilendirme Sistemi
#### 5.1. Upload Permission Kontrolü
**Dosya:** `resources/views/admin-ajax/document-upload.blade.php`
**Mevcut Durum:**
- `incoming_control_upload_permission` zaten tanımlı (satır 215 incoming-control.blade.php'de)
**Kontrol:**
- Tüm upload işlemlerinde bu permission'ın kullanıldığından emin ol
#### 5.2. Special Permissions Sayfası
**Dosya:** `resources/views/admin/type/settings/specific-permissions.blade.php`
**Mevcut Durum:**
- `incoming_control_upload_permission` zaten "Other Upload Permissions" kategorisinde (satır 39)
**Kontrol:**
- Tüm incoming control upload'ları için tek bir permission kullanıldığından emin ol
---
### Phase 6: Comments Ekranı Sorunu
#### 6.1. Comments Ekranını İncele
**Dosya:** `resources/views/admin-ajax/column-history.blade.php`
**Dosya:** `resources/views/admin-ajax/row-history.blade.php`
**Sorun:**
- Weldlog/Weldmap Comments ekranında veri görüntülenmiyor
**Kontrol Edilecekler:**
- DataGrid dataSource doğru mu?
- AJAX endpoint çalışıyor mu?
- Filter/query sorunları var mı?
- Table name ve record ID doğru mu?
#### 6.2. Debug ve Düzeltme
- Console log'ları ekle
- AJAX response'u kontrol et
- DataGrid yapılandırmasını kontrol et
---
## 📝 Detaylı Görev Listesi
### ✅ Yapılacaklar
1. **Dosya Klasör Yapısı**
- [ ] Inspection photo upload'ı kaldır
- [ ] Material Agreement klasörünü güncelle
- [ ] OSD Defect klasörünü güncelle
- [ ] Mevcut dosyaları yeni klasörlere taşı (gerekirse)
2. **PDF Görüntüleme**
- [ ] PDF viewer component oluştur
- [ ] Layout'u iki kolonlu yap
- [ ] JavaScript entegrasyonu
- [ ] Satır seçildiğinde PDF yükleme
3. **Sütun İsimlendirme**
- [ ] Drawing → Line
- [ ] Email/TQ → TQ
- [ ] Project sütunu ekle
- [ ] Popup'ta aynı değişiklikler
4. **Sum/Avg Kaldırma**
- [ ] Incoming Control için summary'leri devre dışı bırak
5. **Yetkilendirme**
- [ ] Tüm upload'ların tek permission kullandığını doğrula
6. **Comments Sorunu**
- [ ] Sorunu tespit et
- [ ] Düzelt
---
## 🔧 Teknik Detaylar
### Dosya Yolları
```php
// Eski
$fourthUploadFolder = '10005_Material_Agreement/';
$fifthUploadFolder = '10003_Defect_Akt/';
// Yeni
$fourthUploadFolder = '002_Project_Materials/005_Material_Agreement/';
$fifthUploadFolder = '002_Project_Materials/006_Defect_Documents/';
```
### Sütun Caption'ları
```php
// Popup'ta
'drawing_number' => 'Line', // Eski: 'Drawing'
'email_tq_number' => 'TQ', // Eski: 'Email / TQ No'
'project' => 'Project', // Zaten var
```
### PDF Viewer Layout
```html
<div class="row">
<div class="col-md-3">
<!-- PDF Viewer -->
</div>
<div class="col-md-9">
<!-- DataGrid -->
</div>
</div>
```
---
## ⚠️ Dikkat Edilmesi Gerekenler
1. **Dosya Taşıma**: Mevcut dosyalar yeni klasörlere taşınırken path'lerin güncellenmesi gerekebilir
2. **Backward Compatibility**: Eski path'lerdeki dosyalara erişim sorunları olabilir
3. **Database**: `incoming_controls` tablosundaki file path'ler güncellenmeli
4. **Permissions**: Upload permission'larının doğru çalıştığından emin ol
5. **Comments**: Weldlog/Weldmap comments sorunu ayrı bir issue olabilir
---
## 📅 Tahmini Süre
- **Phase 1**: 2-3 saat (Dosya yapısı değişiklikleri)
- **Phase 2**: 4-6 saat (PDF viewer)
- **Phase 3**: 1-2 saat (Sütun isimlendirme)
- **Phase 4**: 1 saat (Sum/avg kaldırma)
- **Phase 5**: 1 saat (Yetkilendirme kontrolü)
- **Phase 6**: 2-4 saat (Comments sorunu)
**Toplam**: 11-17 saat
---
## 🎯 Öncelik Sırası
1. **Yüksek Öncelik**: Sütun isimlendirme, Sum/avg kaldırma
2. **Orta Öncelik**: Dosya klasör yapısı, PDF görüntüleme
3. **Düşük Öncelik**: Comments sorunu (ayrı issue olabilir)
---
## 📚 İlgili Dosyalar
### Değiştirilecek Dosyalar
- `resources/views/admin/type/incoming-control.blade.php`
- `resources/views/components/incoming-control-popup.blade.php`
- `resources/views/admin-ajax/get-incoming-for-weldlog.blade.php`
- `resources/views/components/blocks/module-block.blade.php` (gerekirse)
### Yeni Oluşturulacak Dosyalar
- `resources/views/components/incoming-control-pdf-viewer.blade.php`
### Kontrol Edilecek Dosyalar
- `resources/views/admin-ajax/column-history.blade.php`
- `resources/views/admin-ajax/row-history.blade.php`
- `resources/views/admin-ajax/document-upload.blade.php`
- `resources/views/admin/type/settings/specific-permissions.blade.php`
---
## ✅ Test Senaryoları
1. **Dosya Yükleme**
- Material Agreement dosyası yükle → `002_Project_Materials/005_Material_Agreement/` klasörüne gitmeli
- OSD Defect dosyası yükle → `002_Project_Materials/006_Defect_Documents/` klasörüne gitmeli
2. **PDF Görüntüleme**
- Satır seç → PDF viewer'da gösterilmeli
- Material Agreement PDF'i gösterilmeli
- OSD Defect PDF'i gösterilmeli
3. **Sütun İsimleri**
- Ana ekranda "Line" görünmeli (Drawing değil)
- "TQ" görünmeli (Email / TQ No değil)
- "Project" sütunu görünmeli
- Popup'ta aynı isimler görünmeli
4. **Sum/Avg**
- Incoming Control'de sum/avg hesaplamaları görünmemeli
5. **Yetkilendirme**
- Upload permission kontrolü çalışmalı
- İzin olmayan kullanıcı upload yapamamalı
6. **Comments**
- Weldlog/Weldmap Comments ekranında veriler görünmeli
---
## 📝 Notlar
- Inspection photo alanı tamamen kaldırılacak (removed sub-issue)
- Material Agreement ve OSD Defect aynı klasör yapısı altında olacak (`002_Project_Materials/`)
- PDF görüntüleme Weldlog'daki gibi sol tarafta olacak
- Tüm değişiklikler backward compatible olmalı (mümkünse)