2026-10-14 22:42:19 +00:00
# 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.
<!-- module - doc:section App.Maintenance.Definitions -->
## 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.
2026-10-17 23:15:46 +00:00
- Ü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).
2026-10-14 22:42:19 +00:00
### 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
2026-10-17 23:15:46 +00:00
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`).
2026-10-14 22:42:19 +00:00
### 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.
<!-- module - doc:auto:begin -->
## 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` |
2026-10-17 23:15:46 +00:00
| Form varsayı lanları | IsActive=true, BranchId= |
2026-10-14 22:42:19 +00:00
| Veri aynası | `data/App.Maintenance.EquipmentCategory.json` |
| Alan | Başlı k | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- |
2026-10-17 23:15:46 +00:00
| `BranchId` | Şube Adı | dxSelectBox | ✓ | ✓ | sorgu: Sas_T_Branch |
2026-10-14 22:42:19 +00:00
| `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` |
2026-10-17 23:15:46 +00:00
| Form varsayı lanları | IsActive=true, BranchId= |
2026-10-14 22:42:19 +00:00
| Veri aynası | `data/App.Maintenance.Team.json` |
| Alan | Başlı k | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- |
2026-10-17 23:15:46 +00:00
| `BranchId` | Şube Adı | dxSelectBox | ✓ | ✓ | sorgu: Sas_T_Branch |
2026-10-14 22:42:19 +00:00
| `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 | ✓ | ✓ | |
<!-- module - doc:auto:end -->