sozsoft-platform/configs/seeds/docs/modules/App.Maintenance.md
2026-10-18 02:59:45 +03:00

30 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; kategori sonradan Envanter › Ürünler › Ekipman sekmesine bağlandı (App.Inventory.md §2).

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

Ekipman Kategorileri, Envanter › Ürünler › Ekipman sekmesinin kategori seçeneğidir (Inv_T_Product.EquipmentCategoryId); kullanılmış kategori silinmez, pasife alınır. 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.

Bakım (App.Maintenance.Operations)

1. Amaç ve kapsam

Ekipmanların periyodik bakım planı: hangi ekipmana, hangi ekiple, hangi malzeme, kontrol listesi ve dokümanlarla, ne sıklıkta bakım yapılacağı. Plan departman onayından geçer; sonraki bakım tarihini zamanlanmış iş her gece hesaplar. Kullanıcılar bakım planlamacıları ve ekipmanın departman onaycılarıdır. Bakım iş emri henüz yoktur; iş emri ekranı geldiğinde vadesi gelen onaylı talimattan iş emri açılır.

2. Analiz ve kararlar

Onaylanan tarif (2026-10-18, görsellerden: talimat formu, Kontrol Listesi ve Dokümanlar sekmeleri):

  • Menü Bakım › Bakım (yeni dal App.Maintenance.Operations, sıra 2) › Bakım Talimatları.
  • Ekipman ayrı bir tablo değildir; Ekipman Kategorisi dolu olan üründür (Inv_T_Product, Ürünler › Ekipman sekmesi). Diğer ürünler ekipman listesinde görünmez (kullanıcı kararı). Seçenek "Ad [İç Referans]/Seri No" olarak gösterilir.
  • Periyot "Her N Gün / Hafta / Ay / Yıl" (kullanıcı kararı).
  • Zamanlanmış iş yalnızca sonraki bakım tarihini hesaplar; iş emri tablosu açılmadı (kullanıcı kararı: "Yalnızca sonraki tarih").
  • Onaycı departman onaycısıdır (kullanıcı kararı): Onaycılar ekranında ekipmanın departmanı (EquipmentDepartmentId) için yeni Bakım onay yeri (Maintenance). Red nedeni Bakım › Red Nedenleri'nden seçilir.
  • Genel sekmesi yalnız zengin metin bakım talimatıdır (kullanıcı kararı). Onay Bilgileri sekmesi akışın dört alanını ve departman onaycılarını salt okunur gösterir.
  • Bakım Kodu otomatik (Mm.MaintenanceInstruction numaratörü, BKM00001). Talimat işlem kaydıdır: BranchId taşır ve şube kapsamlıdır (IsBranch). Sekme tabloları şube kolonu taşımaz; şubeyi bağlı oldukları talimattan alırlar (kullanıcı kararı).
  • Doküman Tipi sabit liste: Kullanım Kılavuzu, Prosedür, Teknik Çizim, Sertifika, Diğer. Dosya kayıtta base64 saklanır.

Üretimde verilen ek kararlar:

  • Kayıt sonrası komutlar yordam çağırmaz, iki sağlayıcıda da çalışan tek bir UPDATE'tir; ekran komutu sağlayıcıya göre çevrilmediği için EXEC kullanılmadı. Tarih aritmetiği sağlayıcıya göre değiştiğinden periyot hesabı yalnız zamanlanmış işin yordamındadır (sql/ + postgres/ eşi).
  • Sonraki bakım tarihi onay durumundan bağımsız hesaplanır; onay şartı iş emri açılırken uygulanacaktır.
  • Güncelleme varsayılanlarına Id = @ID yazılmaz: yazılırsa anahtar tek değer olarak gider ve güncelleme sonrası komuttaki "Id" IN @Id geçersiz SQL olur (Onayla düğmesinde "Incorrect syntax near @Id" hatası). Satır yoksa platform anahtarı liste olarak ekler.

3. Menü ve ekranlar

Bakım (App.Maintenance) › Bakım (App.Maintenance.Operations) › Bakım Talimatları (App.Maintenance.MaintenanceInstruction).

Sekmeler (menüsüz alt formlar), sırasıyla: Kullanılacak Malzemeler, Kontrol Listesi, Dokümanlar (listeler; ilişki Id → MaintenanceInstructionId), Genel, Onay Bilgileri (talimat satırının kendisi, Id → Id).

4. Veri modeli

Tüm tablolar kiracı + tam audit + soft delete + IsActive taşır; şube (BranchId) yalnız talimat tablosundadır.

  • Mm_T_MaintenanceInstruction (Code, Name, MaintenanceTypeId → Mm_T_MaintenanceType, EquipmentId → Inv_T_Product, TeamIds | listesi → Mm_T_Team, PeriodValue int, PeriodUnit Day/Week/Month/Year, StartDate, EndDate, NextDueDate, InstructionText, DeptApproverUserNames, iş akışının dört kolonu)
  • Mm_T_MaintenanceInstructionMaterial (MaintenanceInstructionId, ProductId → Inv_T_Product, Quantity, UomId → Adm_T_Uom, Description)
  • Mm_T_MaintenanceInstructionCheck (MaintenanceInstructionId, Name, Description, IsRequired)
  • Mm_T_MaintenanceInstructionDocument (MaintenanceInstructionId, Name, DocumentType, FileContent, Version)

5. İş kuralları ve hesaplar

  • Sonraki bakım: Başlangıç + k × periyot dizisinde bugüne eşit ya da sonraki ilk tarih. Hafta 7 gün, yıl 12 aydır; ay eklemede ay sonu korunur (31 Ocak › 28 Şubat). Bitiş Tarihi'ni aşan tarih boş kalır. Pasif ya da silinmiş talimatta tarih boştur.
  • Hesaplama zamanı: Maintenance Instruction Schedule işi (her gece 01:00, Mm_S_MaintenanceInstructionSchedule). Kayıtta yalnız Başlangıç Tarihi bugün ya da ileride ise sonraki bakım hemen Başlangıç Tarihi olur; geçmiş başlangıç ve periyot değişikliği gece işlenir.
  • Departman onaycıları: her kayıtta ve akış adımında yeniden yazılır: ekipmanın departmanı için aktif Bakım onaycılarının aktif kullanıcı adları, | ile.
  • Bakım Ekipleri seçili şubenin aktif ekiplerini listeler; şube değişince temizlenir. Malzeme seçilince birim üründen dolar.
  • Varsayılanlar: yeni talimat ilk şube, bugün, Her 1 Ay ve Aktif ile; malzeme 1 Adet; doküman tipi Diğer ile açılır.

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

App.Maintenance › App.Maintenance.Operations › App.Maintenance.MaintenanceInstruction (+ Create/Update/Delete/Export/Import/Note); beş sekmenin yetkisi talimat yetkisinin altındadır. Yetkiler hiçbir role otomatik verilmez. Akışı başlatmak ve karar vermek talimatın Update yetkisini ister; karar yalnız departman onaycılarındadır. Widget'lar: Toplam · Aktif · Onay Bekleyen · Onaylanan.

7. Entegrasyonlar

Ekipman, malzeme ve birim Envanter'den; ekipmanın departmanı İK › Departmanlar'dan; onaycılar Yönetim › Onaycılar'dan (Bakım onay yeri); bakım tipi, ekip ve red nedeni Bakım › Tanımlamalar'dan okunur. Zamanlanmış iş SqlWorker türündedir, kapsamı Host ve Kiracılar'dır.

8. Akış örneği

  1. Ürünler'de "örme motoru"nun Ekipman sekmesinde Ekipman Kategorisi ve Departman seçilir.
  2. Onaycılar'da o departman için Onay Yeri = Bakım satırı eklenir.
  3. Bakım Talimatları'nda "motor yanmış" talimatı açılır: ekipman örme motoru [MTR-001]/MTR-001, Her 60 Gün, başlangıç 18 Eylül. Malzeme, kontrol maddesi ve doküman sekmelerden eklenir.
  4. Başlat düğmesiyle talimat Departman Onayı'na düşer; onaycı onaylar ya da red nedeniyle reddeder.
  5. İş her gece sonraki bakımı ilerletir: 18 Eylül › 17 Kasım.

9. Sık sorulanlar

  • Ekipman listesinde ürünüm yok? Ürünün Ekipman sekmesinde Ekipman Kategorisi seçilmeli ve ürün aktif olmalıdır.
  • Onaya gönderdim ama kimse onaylayamıyor? Ekipmanın departmanı boş ya da o departman için Bakım onay yerinde aktif onaycı yoktur. Onaycıyı ekleyip talimatı kaydedin; liste kayıtta yenilenir.
  • Sonraki Bakım boş? Başlangıç geçmişteyse tarih ilk gece işinde dolar. Bitişi geçmiş ya da pasif talimatta tarih boştur.
  • İş emri neden açılmıyor? İş emri ekranı henüz yoktur; geldiğinde zamanlanmış işin yordamına eklenecektir.

10. Dosyalar ve geri alma

  • Tablolar: sql/object/Mm_T_MaintenanceInstruction{,Material,Check,Document}.sql ve postgres/object/ eşleri.
  • Zamanlanmış iş: sql/object/Mm_S_MaintenanceInstructionSchedule.sql (yordam) + postgres/object/ eşi (void fonksiyon); satır data/App.BackgroundWorkers.RecurringJobs.json.
  • Wizard'lar: Mm_MaintenanceInstruction, …Material, …Check, …Document, …General, …Approval (.json).
  • Numaratör: data/App.Definitions.Sequence.json › Mm.MaintenanceInstruction.
  • Onay yeri: wizard/Adm_Approver.json Onay Yeri listesine Maintenance eklendi.
  • Geri alma: Wizard Manager'da önce Mm_MaintenanceInstruction, sonra beş sekme silinir; zamanlanmış iş satırı ve numaratör dosyadan çıkarılır. Tablolar ancak açık onayla 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, BranchId=
Veri aynası data/App.Maintenance.EquipmentCategory.json
Alan Başlık Editör Zorunlu Formda Kaynak
BranchId Şube Adı dxSelectBox ✓ ✓ sorgu: Sas_T_Branch
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, BranchId=
Veri aynası data/App.Maintenance.Team.json
Alan Başlık Editör Zorunlu Formda Kaynak
BranchId Şube Adı dxSelectBox ✓ ✓ sorgu: Sas_T_Branch
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 ✓ ✓

Bakım (App.Maintenance.Operations)

Bakım Talimatları — App.Maintenance.MaintenanceInstruction

Özellik Değer
Wizard wizard/Mm_MaintenanceInstruction.json
Yol Liste (Wizard)
Menü App.Maintenance.Operations › App.Maintenance.MaintenanceInstruction (sıra 1)
Yetki App.Maintenance.MaintenanceInstruction + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama Bakım Talimatları — ekipmanların periyodik bakım planları.
Kaynak Mm_T_MaintenanceInstruction · filtre "IsDeleted" = 'false'
Görünümler Grid, Card, Pivot, Chart (açılış grid)
Düzenleme ekle ✓ · düzenle ✓ · sil ✓ · popup
Kapsam Kiracı
Alt formlar App.Maintenance.MaintenanceInstructionMaterial (Id → MaintenanceInstructionId, BranchId → BranchId), App.Maintenance.MaintenanceInstructionCheck (Id → MaintenanceInstructionId, BranchId → BranchId), App.Maintenance.MaintenanceInstructionDocument (Id → MaintenanceInstructionId, BranchId → BranchId), App.Maintenance.MaintenanceInstructionGeneral (Id → Id), App.Maintenance.MaintenanceInstructionApproval (Id → Id)
Widget'lar App.Widget.Total, App.Widget.Active, App.Widget.AwaitingApproval, App.Widget.Approved
Komutlar InsertAfter: SQL · UpdateAfter: SQL
Form varsayılanları Code=Mm.MaintenanceInstruction, BranchId=, StartDate=@NOW, PeriodValue=1, PeriodUnit=Month, IsActive=true
Onay akışı Start 'Onaya Gönderildi' → Approval 'Departman Onayı' → End 'Onaylandı' → End 'Reddedildi'
Alan Başlık Editör Zorunlu Formda Kaynak
BranchId Şube Adı dxSelectBox ✓ ✓ sorgu: Sas_T_Branch
Code Bakım Kodu dxTextBox ✓
MaintenanceTypeId Bakım Tipi dxSelectBox ✓ sorgu: Mm_T_MaintenanceType
Name Bakım Adı dxTextBox ✓ ✓
EquipmentId Ekipman dxSelectBox ✓ ✓ sorgu: Inv_T_Product
TeamIds Bakım Ekipleri dxTagBox ✓ sorgu: Mm_T_Team (← BranchId)
PeriodValue Periyot dxNumberBox ✓ ✓
PeriodUnit Periyot Birimi dxSelectBox ✓ ✓ liste: Day, Week, Month, Year
StartDate Başlangıç Tarihi dxDateBox ✓ ✓
EndDate Bitiş Tarihi dxDateBox ✓
NextDueDate Sonraki Bakım dxDateBox
IsActive Aktif dxCheckBox ✓
ApprovalStatus Onay Durumu dxTextBox
ApprovalUserName Onaylayan Kullanıcı Adı dxTextBox
ApprovalDate Onay Tarihi dxDateBox
ApprovalDescription Onay Açıklaması dxTextBox
DeptApproverUserNames Departman Onaycıları dxTextBox

Onay Bilgileri — App.Maintenance.MaintenanceInstructionApproval

Özellik Değer
Wizard wizard/Mm_MaintenanceInstructionApproval.json
Yol Liste (Wizard)
Menü Menüsüz (alt form)
Yetki App.Maintenance.MaintenanceInstructionApproval + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama Bakım Talimatı Onay Bilgileri — talimatın onay durumu (salt okunur).
Kaynak Mm_T_MaintenanceInstruction · filtre "IsDeleted" = 'false'
Görünümler Grid, Card, Pivot, Chart (açılış grid)
Düzenleme ekle ✗ · düzenle ✗ · sil ✗ · popup
Kapsam Kiracı
Alan Başlık Editör Zorunlu Formda Kaynak
ApprovalStatus Onay Durumu dxTextBox ✓
ApprovalUserName Onaylayan Kullanıcı Adı dxTextBox ✓
ApprovalDate Onay Tarihi dxDateBox ✓
ApprovalDescription Onay Açıklaması dxTextArea ✓
DeptApproverUserNames Departman Onaycıları dxTextBox ✓

Kontrol Listesi — App.Maintenance.MaintenanceInstructionCheck

Özellik Değer
Wizard wizard/Mm_MaintenanceInstructionCheck.json
Yol Liste (Wizard)
Menü Menüsüz (alt form)
Yetki App.Maintenance.MaintenanceInstructionCheck + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama Kontrol Listesi — bakım talimatı uygulanırken teknisyenin kontrol ettiği maddeler.
Kaynak Mm_T_MaintenanceInstructionCheck · filtre "IsDeleted" = 'false'
Görünümler Grid, Card, Pivot, Chart (açılış grid)
Düzenleme ekle ✓ · düzenle ✓ · sil ✓ · popup
Kapsam Kiracı
Form varsayılanları IsActive=true, IsRequired=false
Alan Başlık Editör Zorunlu Formda Kaynak
MaintenanceInstructionId Kimlik dxTextBox
Name Kontrol Maddesi dxTextBox ✓ ✓
Description Açıklama dxTextArea ✓
IsRequired Zorunlu dxCheckBox ✓
IsActive Aktif dxCheckBox ✓

Dokümanlar — App.Maintenance.MaintenanceInstructionDocument

Özellik Değer
Wizard wizard/Mm_MaintenanceInstructionDocument.json
Yol Liste (Wizard)
Menü Menüsüz (alt form)
Yetki App.Maintenance.MaintenanceInstructionDocument + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama Dokümanlar — bakım talimatına eklenen kılavuz, prosedür, çizim ve sertifikalar.
Kaynak Mm_T_MaintenanceInstructionDocument · filtre "IsDeleted" = 'false'
Görünümler Grid, Card, Pivot, Chart (açılış grid)
Düzenleme ekle ✓ · düzenle ✓ · sil ✓ · popup
Kapsam Kiracı
Form varsayılanları IsActive=true, DocumentType=Other
Alan Başlık Editör Zorunlu Formda Kaynak
MaintenanceInstructionId Kimlik dxTextBox
BranchId BranchId dxSelectBox sorgu: Sas_T_Branch
Name Doküman Adı dxTextBox ✓ ✓
DocumentType Belge Tipi dxSelectBox ✓ ✓ liste: UserManual, Procedure, TechnicalDrawing, Certificate, Other
FileContent Dosya dxImageUpload ✓
Version Versiyon dxTextBox ✓
IsActive Aktif dxCheckBox ✓

Genel — App.Maintenance.MaintenanceInstructionGeneral

Özellik Değer
Wizard wizard/Mm_MaintenanceInstructionGeneral.json
Yol Liste (Wizard)
Menü Menüsüz (alt form)
Yetki App.Maintenance.MaintenanceInstructionGeneral + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama Bakım Talimatı Genel — bakım talimatının yazılı metni.
Kaynak Mm_T_MaintenanceInstruction · filtre "IsDeleted" = 'false'
Görünümler Grid, Card, Pivot, Chart (açılış grid)
Düzenleme ekle ✗ · düzenle ✓ · sil ✗ · popup
Kapsam Kiracı
Alan Başlık Editör Zorunlu Formda Kaynak
InstructionText Bakım Talimatı dxHtmlEditor ✓

Kullanılacak Malzemeler — App.Maintenance.MaintenanceInstructionMaterial

Özellik Değer
Wizard wizard/Mm_MaintenanceInstructionMaterial.json
Yol Liste (Wizard)
Menü Menüsüz (alt form)
Yetki App.Maintenance.MaintenanceInstructionMaterial + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama Kullanılacak Malzemeler — bakım talimatının gerektirdiği yedek parça ve sarf malzemeleri.
Kaynak Mm_T_MaintenanceInstructionMaterial · filtre "IsDeleted" = 'false'
Görünümler Grid, Card, Pivot, Chart (açılış grid)
Düzenleme ekle ✓ · düzenle ✓ · sil ✓ · popup
Kapsam Kiracı
Form varsayılanları IsActive=true, Quantity=1, UomId=Adet
Alan Başlık Editör Zorunlu Formda Kaynak
MaintenanceInstructionId Kimlik dxTextBox
ProductId Malzeme dxSelectBox ✓ ✓ sorgu: Inv_T_Product · script
Quantity Miktar dxNumberBox ✓ ✓
UomId Birim dxSelectBox ✓ ✓ sorgu: Adm_T_Uom
Description Açıklama dxTextBox ✓
IsActive Aktif dxCheckBox ✓