4.9 KiB
Hand-Over Modülü Dokümantasyonu
Bu belge, resources/views/admin/type/hand-over.blade.php dosyasındaki Hand-Over modülü için sütun yapılarını, veri etkileşimlerini ve otomatik durum (status) mantığını açıklar.
1. Genel Yapı ve Sütun Grupları
Modül, dinamik olarak ayarlanan sayıda (varsayılan: 3) kontrol aşamasından oluşan bir onay sürecini yönetir. Veriler ana gruplar altında toplanır:
General Info (Genel Bilgiler)
Temel proje ve paket bilgilerinin girildiği alandır.
- Object, Location, Work Type, Project: Paketin ait olduğu lokasyon ve proje detayları.
- Volumes (Hacimler):
collected_volumes: Toplanan hacim.not_collected_volumes: Toplanmayan hacim (Varsayılan: 1).total_volumes: Otomatik Hesaplanır. (collected_volumes+not_collected_volumes). Bu alan salt okunurdur.
Control Aşamaları (Control 1, Control 2, ...)
Her bir kontrol aşaması (varsayılan olarak 3 adet) aşağıdaki standart sütunları içerir:
- Controller: Bu aşamadan sorumlu alt yüklenici veya firma (Seçim listesinden atanır).
- Date (1, 2, 3): İşlem tarihleri.
- Status: Aşamanın durumu (
Agreed,Comment,Revision). - Comments: Varsa notlar veya ret nedenleri.
- Responsible: İşlemi yapan kişi.
Otomatik İşlem:
- Bir kontrol aşamasına tarih (
date) girildiğinde,responsiblealanı boş ise, o anki oturum açmış kullanıcının adı otomatik olarak doldurulur.
Location Info
Arşivleme ve konum bilgilerini içerir.
- Archive: Arşiv durumu.
2. Final Status (Nihai Durum) Mantığı
Final Status sütunu, tüm kontrol aşamalarındaki (Control 1, 2, 3...) durumlara bakarak otomatik olarak belirlenir. Bu sütun elle değiştirilemez (salt okunurdur).
Mantık sıralaması aşağıdaki gibidir:
- Hiçbir Kontrolcü Atanmamışsa: Durum boştur.
- Yorum (Comment) Varsa: Herhangi bir aşamada "Comment / замечание" durumu varsa,
Final Status, yorum yapan ilk kontrolcünün (firma) adı olur. (Öncelik yorumlardadır). - Tümü Onaylıysa (Agreed): Atanan tüm kontrolcüler "Agreed / подписано" durumundaysa,
Final Status"Archive" olur. - Sıradaki Kontrolcü: Yukarıdakiler gerçekleşmemişse, sistem sırayla kontrol eder:
- Eğer bir aşama "Agreed" ise ve bir sonraki aşamaya kontrolcü atanmışsa,
Final Statusbir sonraki kontrolcünün adı olur. Bu, dosyanın bir sonraki birime geçtiğini gösterir.
- Eğer bir aşama "Agreed" ise ve bir sonraki aşamaya kontrolcü atanmışsa,
Akış Diyagramı (Flowchart)
Aşağıdaki diyagram updateFinalStatus fonksiyonunun çalışma mantığını özetler:
graph TD
Start[Değişiklik Algılandı] --> CheckController{Kontrolcü\nAtanmış mı?}
CheckController -- Hayır --> StatusEmpty[Durum: Boş]
CheckController -- Evet --> CheckComment{Herhangi biri\n'Comment' mi?}
CheckComment -- Evet --> SetCommenter[Durum: İlk Yorum\nYapanın Adı]
CheckComment -- Hayır --> CheckAllAgreed{HEPSİ\n'Agreed' mi?}
CheckAllAgreed -- Evet --> SetArchive[Durum: 'Archive']
CheckAllAgreed -- Hayır --> FindNext[Sıradaki Aşama Kontrolü]
FindNext --> IsCurrentAgreed{Mevcut Aşama\n'Agreed' mi?}
IsCurrentAgreed -- Evet --> CheckNextAssigned{Sonraki Kontrolcü\nVar mı?}
CheckNextAssigned -- Evet --> SetNext[Durum: Sonraki\nKontrolcünün Adı]
CheckNextAssigned -- Hayır --> KeepCurrent[Durum Değişmez]
IsCurrentAgreed -- Hayır --> KeepCurrent
3. ID Status (Genel Durum) Mantığı
id_status sütunu, satırın genel durumunu temsil eder ve Agreed, Comment, Revision veya Archive değerlerinden birini alır. Bu sütun da otomatik olarak hesaplanır.
Mantık şu şekildedir:
- Tümü Onaylıysa: Tüm kontrol aşamaları (
control*_id_status) "Agreed / подписано" durumundaysa,id_status"Agreed / подписано" olur. - Değilse: Eğer herhangi bir aşama "Agreed" değilse,
id_status"Archive" sütunundaki değeri alır.
ID Status Akış Diyagramı
graph TD
Start[Değişiklik Algılandı] --> CheckMultiAgreed{Tüm Kontroller\n'Agreed' mi?}
CheckMultiAgreed -- Evet --> SetAgreed[Durum: 'Agreed']
CheckMultiAgreed -- Hayır --> GetArchive{Archive Değeri\nNedir?}
GetArchive --> SetFromArchive[Durum: Archive Sütunundaki Değer]
3. Veri Kaynakları ve İlişkiler
Sütunlar aşağıdaki veri kaynaklarından beslenir:
- Object / Project:
weld_logstablosundan dinamik olarak çekilir. - Work Type:
work_typestablosundan gelir. - Controller:
subcontractors(alt yükleniciler) tablosundan listelenir. - Responsible:
work_permit_documentstablosundaki kayıtlı personeller arasından seçilir.
Bu yapı, kullanıcı hatalarını en aza indirmek ve onay sürecinin (kimde olduğu bilgisinin) otomatik olarak takip edilmesini sağlamak amacıyla tasarlanmıştır.