389 lines
12 KiB
Markdown
389 lines
12 KiB
Markdown
# 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)
|