sozsoft-platform/configs/seeds/docs/modules/App.Maintenance.md
2026-10-15 01:42:19 +03:00

14 KiB
Raw Blame History

Bakım (App.Maintenance)

Menünün altındaki her dal bu dosyada bir bölümdür (module-doc:section); dosya ve bölümler ilk deploy'da otomatik açılır. module-doc:todo işaretli alt bölümleri modülü üreten kişi ya da AI doldurur (lowcode.instructions.md §0.13); MCP ile üretimde talep bu bölümler doldurulmadan Testing'e alınamaz. "Ek — Ekran envanteri" bölümü wizard dosyalarından üretilir, elle düzenlenmez.

Tanımlamalar (App.Maintenance.Definitions)

1. Amaç ve kapsam

Bakım modülünün (KADİFETEKS Odoo Bakım modülünden taşınan) tanım listeleri: ekipman kategorileri, bakım ekipleri, bakım tipleri, hizmet tipleri, arıza tipleri ve red nedenleri. Kullanıcılar bakım ve bilgi işlem yöneticileridir. Bakım/hizmet iş emirleri, bakım talimatları ve hizmet talepleri bu bölümün kapsamında değildir; bu ekranlar onların lookup kaynağıdır.

2. Analiz ve kararlar

  • Modül kodu Mm, tablo öneki Mm_T_, ekran kökü App.Maintenance (kullanıcı onayı).
  • Sorumlu, Ekip Yöneticisi ve Ekip Üyeleri AbpUsers'tan seçilir (kullanıcı onayı); Ekip Üyeleri çoklu seçimdir (dxTagBox, | ile ayrılmış Id'ler).
  • Şube bilgisi BranchId'dir (Ekipman Kategorileri ve Bakım Ekipleri); demo satırlar Branch1'e yazıldı (kullanıcı onayı).
  • Hizmet Tipleri tablosundaki "Bakım Tipi" başlıklı kolon hizmetin adıdır → Name / "Hizmet Tipi"; Bakım Tipleri'ne lookup yoktur (kullanıcı onayı).
  • Odoo'daki "Satış Ekip Üyeleri" etiketi hatalıdır; alan "Ekip Üyeleri" olarak açıldı.
  • Red Nedenleri, Satınalma'daki App.Prc.RejectReason ile birleştirilmedi; Bakım'a ait kodlu ayrı liste.
  • Ürün kartına ekipman işareti/kategorisi eklenmesi bu bölümün kapsamında değildir.

3. Menü ve ekranlar

Bakım (App.Maintenance) › Tanımlamalar (App.Maintenance.Definitions):

Ekran Kod Not
Ekipman Kategorileri App.Maintenance.EquipmentCategory şube kapsamlı, 84 demo satır
Bakım Ekipleri App.Maintenance.Team şube kapsamlı, 5 demo satır; Bakım/Hizmet Tipleri'nin lookup kaynağı
Bakım Tipleri App.Maintenance.MaintenanceType 11 demo satır
Hizmet Tipleri App.Maintenance.ServiceType 79 demo satır (ST01–ST79)
Arıza Tipleri App.Maintenance.FailureType 8 demo satır
Red Nedenleri App.Maintenance.RejectReason 8 demo satır

4. Veri modeli

Tüm tablolar kiracı (TenantId) + tam audit + soft delete taşır.

  • Mm_T_EquipmentCategory (BranchId, Name, ResponsibleUserId → AbpUsers, IsActive)
  • Mm_T_Team (BranchId, Name, ManagerUserId → AbpUsers, MemberUserIds nvarchar(MAX) | listesi, IsActive)
  • Mm_T_MaintenanceType (Code null olabilir, Name, TeamIds nvarchar(MAX) | listesi → Mm_T_Team, Description, SortOrder, IsActive)
  • Mm_T_ServiceType (SortOrder, Code, Name, TeamIds, Description, IsActive) — UQ (TenantId, Code)
  • Mm_T_FailureType (Code, Name, Description, SortOrder, IsActive) — UQ (TenantId, Code)
  • Mm_T_RejectReason (Code, Name, Description, SortOrder, IsActive) — UQ (TenantId, Code)

5. İş kuralları ve hesaplar

  • Lookup'lar yalnızca silinmemiş kayıtları, ekip lookup'ı ayrıca yalnız aktif ekipleri listeler; kullanılmış tanım silinmez, pasife alınır.
  • Bakım Tipleri, Hizmet Tipleri, Arıza Tipleri ve Red Nedenleri SortOrder'a göre artan sıralı açılır.
  • Hizmet/Arıza/Red kodu kiracı içinde benzersizdir (soft delete edilmiş kayıt da kodu tutar).
  • Hesaplanan alan yoktur.

6. Yetki ve görünürlük

Yetki ağacı: App.Maintenance › App.Maintenance.Definitions › her ekran (+ Create/Update/Delete/Export/Import/Note). Ekipman Kategorileri ve Bakım Ekipleri şube kapsamlıdır (IsBranch), diğerleri yalnız kiracı kapsamlıdır. Widget'lar: her ekranda Toplam · Aktif · Pasif.

7. Entegrasyonlar

Yok. Kullanıcı lookup'ları AbpUsers'tan, şube lookup'ı kullanıcıya atanmış aktif şubelerdir (Sas_T_Branch ⋈ Sas_T_BranchUsers, kiracıya süzülü; LookupQueryValues.UserBranchValues), yeni kayıt ilk şubeyle açılır (UserDefaultBranchValue).

8. Akış örneği

  1. Bakım › Tanımlamalar › Bakım Ekipleri'nde "elektrik bakım" ekibi açılır; Ekip Yöneticisi ve Ekip Üyeleri kullanıcılardan seçilir.
  2. Bakım Tipleri'nde "ELEKTRİK & ELEKTRONİK BAKIMLAR" düzenlenir, Bakım Ekipleri'ne "elektrik bakım" eklenir.
  3. Hizmet Tipleri'nde ST07 "Elektrik Arızası ( Tesisat )" satırına aynı ekip eklenir; hizmet talebinde bu tip seçildiğinde ilgili ekip önerilir.

9. Sık sorulanlar

  • Ekipman kategorisi neden başka şubede görünmüyor? Liste seçili şubeye süzülür; kategori kaydedildiği şubeye aittir.
  • Bakım tiplerinin demo verisinde ekipler neden boş? Demo ekiplerin Id'si migrate'te üretildiği için bağlantılar ekrandan elle kurulur.
  • ST02 ile ST06 aynı ad mı? Evet, talepteki veri böyle; kodları farklıdır.

10. Dosyalar ve geri alma

  • Tablolar: sql/object/Mm_T_EquipmentCategory.sql, Mm_T_Team.sql, Mm_T_MaintenanceType.sql, Mm_T_ServiceType.sql, Mm_T_FailureType.sql, Mm_T_RejectReason.sql.
  • Wizard'lar: Mm_EquipmentCategory.json, Mm_Team.json, Mm_MaintenanceType.json, Mm_ServiceType.json, Mm_FailureType.json, Mm_RejectReason.json.
  • Demo veri: data/App.Maintenance.{EquipmentCategory,Team,MaintenanceType,ServiceType,FailureType,RejectReason}.json.
  • Geri alma: ekranlar delete_wizard ile silinir (önce Bakım/Hizmet Tipleri, sonra Bakım Ekipleri); tablolar yalnızca açık onayla dropTables: true ile düşürülür.

Ek — Ekran envanteri (otomatik)

Wizard dosyalarından üretilir; deploy, silme, tasarımcı kaydı ve import'ta yenilenir. Elle düzenleme bir sonraki yenilemede kaybolur.

Tanımlamalar (App.Maintenance.Definitions)

Ekipman Kategorileri — App.Maintenance.EquipmentCategory

Özellik Değer
Wizard wizard/Mm_EquipmentCategory.json
Yol Liste (Wizard)
Menü App.Maintenance.Definitions › App.Maintenance.EquipmentCategory (sıra 1)
Yetki App.Maintenance.EquipmentCategory + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama Ekipman Kategorileri — ekipman olan ürünlerin bağlı olduğu gruplar (dokuma makineleri, kompresörler, bilgisayarlar, taşıtlar…).
Geliştirme talebi Bakım Modülü
Kaynak Mm_T_EquipmentCategory · filtre "IsDeleted" = 'false'
Görünümler Grid, Card, Pivot, Chart (açılış grid)
Düzenleme ekle ✓ · düzenle ✓ · sil ✓ · popup
Kapsam Kiracı
Widget'lar App.Widget.Total, App.Widget.Active, App.Widget.Passive
Form varsayılanları IsActive=true
Veri aynası data/App.Maintenance.EquipmentCategory.json
Alan Başlık Editör Zorunlu Formda Kaynak
BranchId Şube Adı dxSelectBox ✓ ✓ sorgu: kullanıcının şubeleri (Sas_T_Branch ⋈ Sas_T_BranchUsers), varsayılan ilk şube
Name Kategori Adı dxTextBox ✓ ✓
ResponsibleUserId Sorumlu dxSelectBox ✓ sorgu: AbpUsers
IsActive Aktif dxCheckBox ✓ ✓

Bakım Ekipleri — App.Maintenance.Team

Özellik Değer
Wizard wizard/Mm_Team.json
Yol Liste (Wizard)
Menü App.Maintenance.Definitions › App.Maintenance.Team (sıra 2)
Yetki App.Maintenance.Team + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama Bakım Ekipleri — bakım yapacak kişilerin grupları (iç bakım, mekanik, elektrik, dış bakım/tedarikçi).
Geliştirme talebi Bakım Modülü
Kaynak Mm_T_Team · filtre "IsDeleted" = 'false'
Görünümler Grid, Card, Pivot, Chart (açılış grid)
Düzenleme ekle ✓ · düzenle ✓ · sil ✓ · popup
Kapsam Kiracı
Widget'lar App.Widget.Total, App.Widget.Active, App.Widget.Passive
Form varsayılanları IsActive=true
Veri aynası data/App.Maintenance.Team.json
Alan Başlık Editör Zorunlu Formda Kaynak
BranchId Şube Adı dxSelectBox ✓ ✓ sorgu: kullanıcının şubeleri (Sas_T_Branch ⋈ Sas_T_BranchUsers), varsayılan ilk şube
Name Ekip Adı dxTextBox ✓ ✓
ManagerUserId Ekip Yöneticisi dxSelectBox ✓ sorgu: AbpUsers
MemberUserIds Ekip Üyeleri dxTagBox ✓ sorgu: AbpUsers
IsActive Aktif dxCheckBox ✓ ✓

Bakım Tipleri — App.Maintenance.MaintenanceType

Özellik Değer
Wizard wizard/Mm_MaintenanceType.json
Yol Liste (Wizard)
Menü App.Maintenance.Definitions › App.Maintenance.MaintenanceType (sıra 3)
Yetki App.Maintenance.MaintenanceType + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama Bakım Tipleri — bakım işinin türleri (mekanik, elektrik & elektronik, genel temizlik, ölçüm & kalibrasyon, periyodik, bilgi işlem donanım…).
Geliştirme talebi Bakım Modülü
Kaynak Mm_T_MaintenanceType · filtre "IsDeleted" = 'false'
Görünümler Grid, Card, Pivot, Chart (açılış grid)
Düzenleme ekle ✓ · düzenle ✓ · sil ✓ · popup
Kapsam Kiracı
Widget'lar App.Widget.Total, App.Widget.Active, App.Widget.Passive
Form varsayılanları SortOrder=0, IsActive=true
Veri aynası data/App.Maintenance.MaintenanceType.json
Alan Başlık Editör Zorunlu Formda Kaynak
Code Kod dxTextBox ✓
Name Bakım Tipi dxTextBox ✓ ✓
TeamIds Bakım Ekipleri dxTagBox ✓ sorgu: Mm_T_Team
Description Açıklama dxTextArea ✓
SortOrder Sıra dxNumberBox ✓ ✓
IsActive Aktif dxCheckBox ✓ ✓

Hizmet Tipleri — App.Maintenance.ServiceType

Özellik Değer
Wizard wizard/Mm_ServiceType.json
Yol Liste (Wizard)
Menü App.Maintenance.Definitions › App.Maintenance.ServiceType (sıra 4)
Yetki App.Maintenance.ServiceType + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama Hizmet Tipleri — bölümlerin talep edebileceği hizmet türleri (mekanik/elektrik arıza, bilgi işlem destek, yazıcı servisi, sunucu işleri, dokuma özel işlemleri…).
Geliştirme talebi Bakım Modülü
Kaynak Mm_T_ServiceType · filtre "IsDeleted" = 'false'
Görünümler Grid, Card, Pivot, Chart (açılış grid)
Düzenleme ekle ✓ · düzenle ✓ · sil ✓ · popup
Kapsam Kiracı
Widget'lar App.Widget.Total, App.Widget.Active, App.Widget.Passive
Form varsayılanları SortOrder=0, IsActive=true
Veri aynası data/App.Maintenance.ServiceType.json
Alan Başlık Editör Zorunlu Formda Kaynak
SortOrder Sıra dxNumberBox ✓ ✓
Code Kod dxTextBox ✓ ✓
Name Hizmet Tipi dxTextBox ✓ ✓
TeamIds Bakım Ekipleri dxTagBox ✓ sorgu: Mm_T_Team
Description Açıklama dxTextArea ✓
IsActive Aktif dxCheckBox ✓ ✓

Arıza Tipleri — App.Maintenance.FailureType

Özellik Değer
Wizard wizard/Mm_FailureType.json
Yol Liste (Wizard)
Menü App.Maintenance.Definitions › App.Maintenance.FailureType (sıra 5)
Yetki App.Maintenance.FailureType + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama Arıza Tipleri — hizmet talebinde bildirilen arızanın sınıflandırması (mekanik, elektrik, pnömatik, hidrolik, yazılım/PLC, sensör, aşınma, diğer).
Geliştirme talebi Bakım Modülü
Kaynak Mm_T_FailureType · filtre "IsDeleted" = 'false'
Görünümler Grid, Card, Pivot, Chart (açılış grid)
Düzenleme ekle ✓ · düzenle ✓ · sil ✓ · popup
Kapsam Kiracı
Widget'lar App.Widget.Total, App.Widget.Active, App.Widget.Passive
Form varsayılanları SortOrder=0, IsActive=true
Veri aynası data/App.Maintenance.FailureType.json
Alan Başlık Editör Zorunlu Formda Kaynak
Code Kod dxTextBox ✓ ✓
Name Arıza Tipi dxTextBox ✓ ✓
Description Açıklama dxTextArea ✓
SortOrder Sıra dxNumberBox ✓ ✓
IsActive Aktif dxCheckBox ✓ ✓

Red Nedenleri — App.Maintenance.RejectReason

Özellik Değer
Wizard wizard/Mm_RejectReason.json
Yol Liste (Wizard)
Menü App.Maintenance.Definitions › App.Maintenance.RejectReason (sıra 6)
Yetki App.Maintenance.RejectReason + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama Red Nedenleri — bakım ve hizmet iş taleplerinin reddedilme sebepleri (kullanıcı hatası, arıza bulunamadı, garanti, dış firma, hurda, mükerrer, bakım gerekmiyor, diğer).
Geliştirme talebi Bakım Modülü
Kaynak Mm_T_RejectReason · filtre "IsDeleted" = 'false'
Görünümler Grid, Card, Pivot, Chart (açılış grid)
Düzenleme ekle ✓ · düzenle ✓ · sil ✓ · popup
Kapsam Kiracı
Widget'lar App.Widget.Total, App.Widget.Active, App.Widget.Passive
Form varsayılanları SortOrder=0, IsActive=true
Veri aynası data/App.Maintenance.RejectReason.json
Alan Başlık Editör Zorunlu Formda Kaynak
Code Kod dxTextBox ✓ ✓
Name Red Nedeni dxTextBox ✓ ✓
Description Açıklama dxTextArea ✓
SortOrder Sıra dxNumberBox ✓ ✓
IsActive Aktif dxCheckBox ✓ ✓