Bakım Talimatları

This commit is contained in:
Sedat Öztürk 2026-10-18 02:59:45 +03:00
parent 569fc80f12
commit c72881622d
26 changed files with 12347 additions and 10 deletions

View file

@ -1290,7 +1290,7 @@ ekranın kendi ayrıntılı açıklamasını gösterir (`DescTr`/`DescEn`, `lowc
| [App.Prc.md](configs/seeds/docs/modules/App.Prc.md) | Satınalma (`App.Prc`) | Tanımlamalar (ödeme/teslimat koşulları, ödeme/teslim yöntemleri, red nedenleri) · Talepler · Siparişler (sözleşme, tedarikçi bazlı teklif talebi ihalesi + fiyat/termin kıyası, satınalma siparişi) |
| [App.Inventory.md](configs/seeds/docs/modules/App.Inventory.md) | Envanter (`App.Inventory`) | Tanımlamalar (ürün kategorileri, nitelikler, ürünler ve varyantlar, reçeteler, reçete patlatma, depolar, konumlar, operasyon türleri), Operasyonlar (alım, teslimat, iç transfer; lot/seri, backorder, iade), Raporlama (stok, hareketler) |
| [App.Production.md](configs/seeds/docs/modules/App.Production.md) | Üretim (`App.Production`) | Tanımlamalar (iş merkezi etiketleri, iş merkezleri, operasyonlar) |
| [App.Maintenance.md](configs/seeds/docs/modules/App.Maintenance.md) | Bakım (`App.Maintenance`) | Tanımlamalar |
| [App.Maintenance.md](configs/seeds/docs/modules/App.Maintenance.md) | Bakım (`App.Maintenance`) | Tanımlamalar, Bakım |
---

View file

@ -19503,6 +19503,436 @@
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.Operations",
"ParentName": null,
"DisplayName": "App.Maintenance.Operations",
"Order": 2,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstruction",
"ParentName": "App.Maintenance.Operations",
"DisplayName": "App.Maintenance.MaintenanceInstruction",
"Order": 1,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstruction.Create",
"ParentName": "App.Maintenance.MaintenanceInstruction",
"DisplayName": "App.Platform.Create",
"Order": 1,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstruction.Update",
"ParentName": "App.Maintenance.MaintenanceInstruction",
"DisplayName": "App.Platform.Update",
"Order": 2,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstruction.Delete",
"ParentName": "App.Maintenance.MaintenanceInstruction",
"DisplayName": "App.Platform.Delete",
"Order": 3,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstruction.Export",
"ParentName": "App.Maintenance.MaintenanceInstruction",
"DisplayName": "App.Platform.Export",
"Order": 4,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstruction.Import",
"ParentName": "App.Maintenance.MaintenanceInstruction",
"DisplayName": "App.Platform.Import",
"Order": 5,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstruction.Note",
"ParentName": "App.Maintenance.MaintenanceInstruction",
"DisplayName": "App.Platform.Note",
"Order": 6,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstructionMaterial",
"ParentName": "App.Maintenance.MaintenanceInstruction",
"DisplayName": "App.Maintenance.MaintenanceInstructionMaterial",
"Order": 7,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstructionMaterial.Create",
"ParentName": "App.Maintenance.MaintenanceInstructionMaterial",
"DisplayName": "App.Platform.Create",
"Order": 1,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstructionMaterial.Update",
"ParentName": "App.Maintenance.MaintenanceInstructionMaterial",
"DisplayName": "App.Platform.Update",
"Order": 2,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstructionMaterial.Delete",
"ParentName": "App.Maintenance.MaintenanceInstructionMaterial",
"DisplayName": "App.Platform.Delete",
"Order": 3,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstructionMaterial.Export",
"ParentName": "App.Maintenance.MaintenanceInstructionMaterial",
"DisplayName": "App.Platform.Export",
"Order": 4,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstructionMaterial.Import",
"ParentName": "App.Maintenance.MaintenanceInstructionMaterial",
"DisplayName": "App.Platform.Import",
"Order": 5,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstructionMaterial.Note",
"ParentName": "App.Maintenance.MaintenanceInstructionMaterial",
"DisplayName": "App.Platform.Note",
"Order": 6,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstructionCheck",
"ParentName": "App.Maintenance.MaintenanceInstruction",
"DisplayName": "App.Maintenance.MaintenanceInstructionCheck",
"Order": 8,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstructionCheck.Create",
"ParentName": "App.Maintenance.MaintenanceInstructionCheck",
"DisplayName": "App.Platform.Create",
"Order": 1,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstructionCheck.Update",
"ParentName": "App.Maintenance.MaintenanceInstructionCheck",
"DisplayName": "App.Platform.Update",
"Order": 2,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstructionCheck.Delete",
"ParentName": "App.Maintenance.MaintenanceInstructionCheck",
"DisplayName": "App.Platform.Delete",
"Order": 3,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstructionCheck.Export",
"ParentName": "App.Maintenance.MaintenanceInstructionCheck",
"DisplayName": "App.Platform.Export",
"Order": 4,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstructionCheck.Import",
"ParentName": "App.Maintenance.MaintenanceInstructionCheck",
"DisplayName": "App.Platform.Import",
"Order": 5,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstructionCheck.Note",
"ParentName": "App.Maintenance.MaintenanceInstructionCheck",
"DisplayName": "App.Platform.Note",
"Order": 6,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstructionDocument",
"ParentName": "App.Maintenance.MaintenanceInstruction",
"DisplayName": "App.Maintenance.MaintenanceInstructionDocument",
"Order": 9,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstructionDocument.Create",
"ParentName": "App.Maintenance.MaintenanceInstructionDocument",
"DisplayName": "App.Platform.Create",
"Order": 1,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstructionDocument.Update",
"ParentName": "App.Maintenance.MaintenanceInstructionDocument",
"DisplayName": "App.Platform.Update",
"Order": 2,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstructionDocument.Delete",
"ParentName": "App.Maintenance.MaintenanceInstructionDocument",
"DisplayName": "App.Platform.Delete",
"Order": 3,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstructionDocument.Export",
"ParentName": "App.Maintenance.MaintenanceInstructionDocument",
"DisplayName": "App.Platform.Export",
"Order": 4,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstructionDocument.Import",
"ParentName": "App.Maintenance.MaintenanceInstructionDocument",
"DisplayName": "App.Platform.Import",
"Order": 5,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstructionDocument.Note",
"ParentName": "App.Maintenance.MaintenanceInstructionDocument",
"DisplayName": "App.Platform.Note",
"Order": 6,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstructionGeneral",
"ParentName": "App.Maintenance.MaintenanceInstruction",
"DisplayName": "App.Maintenance.MaintenanceInstructionGeneral",
"Order": 10,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstructionGeneral.Create",
"ParentName": "App.Maintenance.MaintenanceInstructionGeneral",
"DisplayName": "App.Platform.Create",
"Order": 1,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstructionGeneral.Update",
"ParentName": "App.Maintenance.MaintenanceInstructionGeneral",
"DisplayName": "App.Platform.Update",
"Order": 2,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstructionGeneral.Delete",
"ParentName": "App.Maintenance.MaintenanceInstructionGeneral",
"DisplayName": "App.Platform.Delete",
"Order": 3,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstructionGeneral.Export",
"ParentName": "App.Maintenance.MaintenanceInstructionGeneral",
"DisplayName": "App.Platform.Export",
"Order": 4,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstructionGeneral.Import",
"ParentName": "App.Maintenance.MaintenanceInstructionGeneral",
"DisplayName": "App.Platform.Import",
"Order": 5,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstructionGeneral.Note",
"ParentName": "App.Maintenance.MaintenanceInstructionGeneral",
"DisplayName": "App.Platform.Note",
"Order": 6,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstructionApproval",
"ParentName": "App.Maintenance.MaintenanceInstruction",
"DisplayName": "App.Maintenance.MaintenanceInstructionApproval",
"Order": 11,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstructionApproval.Create",
"ParentName": "App.Maintenance.MaintenanceInstructionApproval",
"DisplayName": "App.Platform.Create",
"Order": 1,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstructionApproval.Update",
"ParentName": "App.Maintenance.MaintenanceInstructionApproval",
"DisplayName": "App.Platform.Update",
"Order": 2,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstructionApproval.Delete",
"ParentName": "App.Maintenance.MaintenanceInstructionApproval",
"DisplayName": "App.Platform.Delete",
"Order": 3,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstructionApproval.Export",
"ParentName": "App.Maintenance.MaintenanceInstructionApproval",
"DisplayName": "App.Platform.Export",
"Order": 4,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstructionApproval.Import",
"ParentName": "App.Maintenance.MaintenanceInstructionApproval",
"DisplayName": "App.Platform.Import",
"Order": 5,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
},
{
"GroupName": "App.Maintenance",
"Name": "App.Maintenance.MaintenanceInstructionApproval.Note",
"ParentName": "App.Maintenance.MaintenanceInstructionApproval",
"DisplayName": "App.Platform.Note",
"Order": 6,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Mm"
}
]
}

View file

@ -62,6 +62,16 @@
"BeforeSp": "Hr_S_TimesheetNightly",
"AfterSp": null,
"IsActive": true
},
{
"Id": "963041da-7736-556f-b710-d7522cbb4ce4",
"Name": "Maintenance Instruction Schedule",
"Cron": "0 1 * * *",
"WorkerType": 2,
"Scope": 3,
"BeforeSp": "Mm_S_MaintenanceInstructionSchedule",
"AfterSp": null,
"IsActive": true
}
]
}

View file

@ -10,6 +10,13 @@
"ApprovalArea": "Purchase",
"ApprovalUserName": "system@sozsoft.com",
"IsActive": true
},
{
"Id": "2c4c2ae4-82ba-4ec2-abb8-36d587d522e4",
"DepartmentId": "8f14e45f-ea2d-4d9f-9f1d-1a2b3c4d5e6f",
"ApprovalArea": "Maintenance",
"ApprovalUserName": "system@sozsoft.com",
"IsActive": true
}
]
}

View file

@ -213,6 +213,20 @@
"StartNumber": 1,
"LastPeriodKey": null,
"FormatTemplate": "{Prefix}{Number}{Suffix}"
},
{
"Id": "0edec5d0-7850-5b97-bbd0-91353c10ec5a",
"Name": "Mm.MaintenanceInstruction",
"Prefix": "BKM",
"Suffix": "",
"IsActive": true,
"PaddingSize": 5,
"IncrementStep": 1,
"NextNumber": 1,
"ResetPeriod": 0,
"StartNumber": 1,
"LastPeriodKey": null,
"FormatTemplate": "{Prefix}{Number}{Suffix}"
}
]
}

View file

@ -39734,7 +39734,7 @@
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.Version",
"Value": "Version"
"Value": "Versiyon"
},
{
"Id": "55155fe8-9c7c-5cce-b2a4-077cdffd22ca",
@ -93039,14 +93039,14 @@
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Definitions.Approver.Desc",
"Value": "Approvers — the single list of who approves what for each department across the application.\nWhere: Administration › Definitions › Approvers.\nFields: department (shown as Branch - Department), approval area (Purchasing / Warehouse / Human Resources / Finance), approver user, active.\nUsed by: approval workflows read the approvers of the record's department and area. Purchasing › Material Requests: the department approval uses area Purchasing for the requester's department; the purchasing approval is not defined here: it goes to users with update permission on Awaiting Purchasing Approval (directly or through their role). Several approvers may be defined for the same department and area; any one of them can approve. Passive rows are ignored by workflows."
"Value": "Approvers — the single list of who approves what for each department across the application.\nWhere: Administration › Definitions › Approvers.\nFields: department (shown as Branch - Department), approval area (Purchasing / Warehouse / Human Resources / Finance / Maintenance), approver user, active.\nUsed by: approval workflows read the approvers of the record's department and area. Purchasing › Material Requests: the department approval uses area Purchasing for the requester's department; the purchasing approval is not defined here: it goes to users with update permission on Awaiting Purchasing Approval (directly or through their role). Several approvers may be defined for the same department and area; any one of them can approve. Maintenance › Maintenance Instructions: the department approval uses area Maintenance for the equipment's department. Passive rows are ignored by workflows."
},
{
"Id": "3663c5aa-4036-5381-810f-8acee720724c",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Definitions.Approver.Desc",
"Value": "Onaycılar — uygulamadaki tüm onay adımlarında her departman için kimin onaylayacağını tutan tek liste.\nNerede: Yönetim › Tanımlamalar › Onaycılar.\nAlanlar: departman (Şube - Departman olarak gösterilir), onay yeri (Satınalma / Depo / İnsan Kaynakları / Finans), onaylayacak kişi, aktif.\nKullanıldığı yer: onay akışları kaydın departmanı ve onay yerine göre onaycıları buradan okur. Satınalma › Talepler: departman onayı talep edenin departmanındaki Satınalma satırlarını, satınalma onayı burada tanımlanmaz: Satınalma Onayı Bekleyenler ekranında güncelleme yetkisi olan kullanıcılar (doğrudan ya da rolüyle) onaylar. Aynı departman ve onay yerine birden çok onaycı girilebilir; herhangi birinin onayı yeterlidir. Pasif satırlar akışlarda kullanılmaz."
"Value": "Onaycılar — uygulamadaki tüm onay adımlarında her departman için kimin onaylayacağını tutan tek liste.\nNerede: Yönetim › Tanımlamalar › Onaycılar.\nAlanlar: departman (Şube - Departman olarak gösterilir), onay yeri (Satınalma / Depo / İnsan Kaynakları / Finans / Bakım), onaylayacak kişi, aktif.\nKullanıldığı yer: onay akışları kaydın departmanı ve onay yerine göre onaycıları buradan okur. Satınalma › Talepler: departman onayı talep edenin departmanındaki Satınalma satırlarını, satınalma onayı burada tanımlanmaz: Satınalma Onayı Bekleyenler ekranında güncelleme yetkisi olan kullanıcılar (doğrudan ya da rolüyle) onaylar. Aynı departman ve onay yerine birden çok onaycı girilebilir; herhangi birinin onayı yeterlidir. Bakım › Bakım Talimatları: departman onayı ekipmanın departmanındaki Bakım satırlarını kullanır. Pasif satırlar akışlarda kullanılmaz."
},
{
"Id": "cd7ff644-eefa-516e-8c8c-8b4fa0ec76f8",
@ -98116,6 +98116,552 @@
"Key": "App.Maintenance.RejectReason.Desc",
"Value": "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).\nNerede: Bakım › Tanımlamalar › Red Nedenleri.\nAlanlar: kod (benzersiz), red nedeni, açıklama, sıra, aktif.\nKullanıldığı yer: bakım ve hizmet talepleri/iş emirleri reddedilirken neden buradan seçilir. Liste sıraya göre dizilir; kullanılmış neden silinmez, pasife alınır."
},
{
"Id": "548264bc-02af-5659-b92e-2a0e6a72d8cb",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.MaintenanceName",
"Value": "Maintenance Name"
},
{
"Id": "7be26e97-bd07-5c4b-af29-5687af746fff",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.MaintenanceName",
"Value": "Bakım Adı"
},
{
"Id": "4d69993a-0461-5055-aefa-197748bde2f5",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.MaintenanceCode",
"Value": "Maintenance Code"
},
{
"Id": "50ddec32-ab5f-586f-9dcb-e9e32e4d2cec",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.MaintenanceCode",
"Value": "Bakım Kodu"
},
{
"Id": "8e9e0628-e8d6-5bf2-8671-33063f756c10",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.Equipment",
"Value": "Equipment"
},
{
"Id": "83ec4d03-aa25-543b-9a0f-3181de9c1899",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.Equipment",
"Value": "Ekipman"
},
{
"Id": "08f8e6b0-84de-5446-8147-c249a5b3c1b2",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.PeriodUnit",
"Value": "Period Unit"
},
{
"Id": "263875a2-6a33-50e6-a794-62c8d0e877ea",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.PeriodUnit",
"Value": "Periyot Birimi"
},
{
"Id": "aa1239fe-d1ee-508e-b20e-8d61ce7c20d9",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.NextDueDate",
"Value": "Next Maintenance"
},
{
"Id": "7be68872-8051-53e8-b134-4a69b7ae8c67",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.NextDueDate",
"Value": "Sonraki Bakım"
},
{
"Id": "6d05a216-6307-5d7f-b581-1793b7b0ed64",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.InstructionText",
"Value": "Maintenance Instruction"
},
{
"Id": "81ef977d-1abb-563f-a5d7-52f84922b821",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.InstructionText",
"Value": "Bakım Talimatı"
},
{
"Id": "ff638523-39d8-5887-9e24-612307b6e22b",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.Material",
"Value": "Material"
},
{
"Id": "b077ff7f-588c-53af-8797-6a26591b5cd5",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.Material",
"Value": "Malzeme"
},
{
"Id": "c1e7ce3a-7d31-5abd-9d33-b9a179ae84e4",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.CheckItem",
"Value": "Check Item"
},
{
"Id": "f83dd11c-eb80-5e16-9746-159789a43d41",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.CheckItem",
"Value": "Kontrol Maddesi"
},
{
"Id": "6c883fff-ecf5-5550-bb88-ad793f85e0bd",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.DocumentName",
"Value": "Document Name"
},
{
"Id": "289fcfe1-9cd9-5330-a7ac-5c1617dc558a",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.DocumentName",
"Value": "Doküman Adı"
},
{
"Id": "61e91e1b-8c66-5805-90d4-4ad299339983",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.StaticLookup.Day",
"Value": "Day"
},
{
"Id": "80152cc2-bc17-5c4c-83f8-15a6e19144a5",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.StaticLookup.Day",
"Value": "Gün"
},
{
"Id": "d94e05db-99f3-54ac-8f68-aaa74b0efc0f",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.StaticLookup.Week",
"Value": "Week"
},
{
"Id": "80f8a285-371e-57a5-bbeb-43c37a3278f1",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.StaticLookup.Week",
"Value": "Hafta"
},
{
"Id": "5c996f8a-069c-5732-baa1-538a965cc90b",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.StaticLookup.Month",
"Value": "Month"
},
{
"Id": "5dc945b2-8034-5337-b6ae-642a2c6f5bd6",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.StaticLookup.Month",
"Value": "Ay"
},
{
"Id": "ec28b13c-4b4c-5b20-acda-03d6f3fd036c",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.StaticLookup.Year",
"Value": "Year"
},
{
"Id": "a0aa6825-0bd9-586f-bcb9-a98759d46a4a",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.StaticLookup.Year",
"Value": "Yıl"
},
{
"Id": "be7a638f-ab7c-5ce3-ba16-54e02662a9c6",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.StaticLookup.UserManual",
"Value": "User Manual"
},
{
"Id": "34cb5828-39d4-5efc-8234-885d320a4df5",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.StaticLookup.UserManual",
"Value": "Kullanım Kılavuzu"
},
{
"Id": "9b9d9be0-8cdc-5254-9f91-17637aaa5349",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.StaticLookup.Procedure",
"Value": "Procedure"
},
{
"Id": "54d3a877-bdce-5219-a4e4-ddf1c79d5e33",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.StaticLookup.Procedure",
"Value": "Prosedür"
},
{
"Id": "c3afeb0e-fe79-5fdf-b82e-959ae81e93e7",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.StaticLookup.TechnicalDrawing",
"Value": "Technical Drawing"
},
{
"Id": "f382a95c-c3ec-5970-93a5-22534c5092de",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.StaticLookup.TechnicalDrawing",
"Value": "Teknik Çizim"
},
{
"Id": "a02b45b4-73f4-51ca-a425-795dcd4215d9",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.StaticLookup.Certificate",
"Value": "Certificate"
},
{
"Id": "b5ec9c29-bcc7-57dc-872e-49ad37d38e58",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.StaticLookup.Certificate",
"Value": "Sertifika"
},
{
"Id": "ce58cd81-214e-5205-af7e-65ff02dee8c3",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.StaticLookup.MaintenanceArea",
"Value": "Maintenance"
},
{
"Id": "7e918e40-663d-5f65-8489-13d22796b453",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.StaticLookup.MaintenanceArea",
"Value": "Bakım"
},
{
"Id": "45f19b44-f686-50dc-a5e1-1ada9d9461fa",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Widget.AwaitingApproval",
"Value": "Awaiting Approval"
},
{
"Id": "5e19117f-67d6-58ab-978b-6f7c664fe0b7",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Widget.AwaitingApproval",
"Value": "Onay Bekleyen"
},
{
"Id": "b1a387c0-b26a-58af-9934-7e959210c57a",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Widget.Approved",
"Value": "Approved"
},
{
"Id": "5697307c-a15d-5e51-9f10-9b807d6e7fde",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Widget.Approved",
"Value": "Onaylanan"
},
{
"Id": "c55bf0d5-62cb-5c94-aa32-e52957c614c8",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Maintenance.Operations",
"Value": "Maintenance"
},
{
"Id": "8770041b-8154-517b-9af5-2753e40e3ab0",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Maintenance.Operations",
"Value": "Bakım"
},
{
"Id": "a006ae51-8178-56e0-bfd4-91c615b24a64",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Maintenance.MaintenanceInstructionMaterial",
"Value": "Materials to Use"
},
{
"Id": "c26b11ba-e43d-55e4-a007-fa40eb8ff08b",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Maintenance.MaintenanceInstructionMaterial",
"Value": "Kullanılacak Malzemeler"
},
{
"Id": "e3144f42-315b-5770-9ae6-fdcaa870d596",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Maintenance.MaintenanceInstructionMaterial.Title",
"Value": "Materials to Use"
},
{
"Id": "9e9a9b9c-0710-59d2-a5a8-86325cc469ca",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Maintenance.MaintenanceInstructionMaterial.Title",
"Value": "Kullanılacak Malzemeler"
},
{
"Id": "b1b0fa17-85dc-5176-be3a-3a11ef6db7de",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Maintenance.MaintenanceInstructionMaterial.Desc",
"Value": "Materials to Use — the spare parts and consumables a maintenance instruction needs.\nWhere: Maintenance › Maintenance › Maintenance Instructions › Materials to Use tab (no menu of its own).\nFields: material (from Products, shown as [internal reference] name), quantity, unit (from Units of Measure; filled from the product when the material is selected), description, active.\nThe branch and the instruction come from the instruction; the work order created from the instruction will take its material list from here."
},
{
"Id": "15096e7f-a83d-5ef1-a466-b54d7006500a",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Maintenance.MaintenanceInstructionMaterial.Desc",
"Value": "Kullanılacak Malzemeler — bakım talimatının gerektirdiği yedek parça ve sarf malzemeleri.\nNerede: Bakım › Bakım › Bakım Talimatları › Kullanılacak Malzemeler sekmesi (kendi menüsü yoktur).\nAlanlar: malzeme (Ürünler'den, [iç referans] ad olarak), miktar, birim (Ölçü Birimleri'nden; malzeme seçilince üründen dolar), açıklama, aktif.\nŞube ve talimat talimattan gelir; talimattan açılacak iş emri malzeme listesini buradan alacaktır."
},
{
"Id": "091902f9-d3bd-5013-8159-5fa1dd457cfa",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Maintenance.MaintenanceInstructionCheck",
"Value": "Checklist"
},
{
"Id": "abaf8ffe-eb8d-5912-830a-a4e2adc88bd9",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Maintenance.MaintenanceInstructionCheck",
"Value": "Kontrol Listesi"
},
{
"Id": "0620e049-7a4c-5166-a0b4-2cce8acebd1c",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Maintenance.MaintenanceInstructionCheck.Title",
"Value": "Checklist"
},
{
"Id": "6a93d7a1-cb27-54d7-9609-b66db09ce06d",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Maintenance.MaintenanceInstructionCheck.Title",
"Value": "Kontrol Listesi"
},
{
"Id": "effa716b-461b-5af8-8ccf-e496abea05ba",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Maintenance.MaintenanceInstructionCheck.Desc",
"Value": "Checklist — the items the technician checks while carrying out the maintenance instruction.\nWhere: Maintenance › Maintenance › Maintenance Instructions › Checklist tab (no menu of its own).\nFields: check item, description, required (the item cannot be skipped on the work order), active.\nThe branch and the instruction come from the instruction; the work order created from the instruction will copy these items."
},
{
"Id": "ca4158b0-f0b3-5ea5-be3f-6586579727d3",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Maintenance.MaintenanceInstructionCheck.Desc",
"Value": "Kontrol Listesi — bakım talimatı uygulanırken teknisyenin kontrol ettiği maddeler.\nNerede: Bakım › Bakım › Bakım Talimatları › Kontrol Listesi sekmesi (kendi menüsü yoktur).\nAlanlar: kontrol maddesi, açıklama, zorunlu (iş emrinde atlanamaz), aktif.\nŞube ve talimat talimattan gelir; talimattan açılacak iş emri bu maddeleri kopyalayacaktır."
},
{
"Id": "df276329-9ab3-50b5-b348-747b1169621e",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Maintenance.MaintenanceInstructionDocument",
"Value": "Documents"
},
{
"Id": "c28ea25f-abe9-52b6-b762-275294893436",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Maintenance.MaintenanceInstructionDocument",
"Value": "Dokümanlar"
},
{
"Id": "8e9e03b8-7374-5743-b8c6-144462333da4",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Maintenance.MaintenanceInstructionDocument.Title",
"Value": "Documents"
},
{
"Id": "25fbed89-9aca-5304-a378-e7a094a81abb",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Maintenance.MaintenanceInstructionDocument.Title",
"Value": "Dokümanlar"
},
{
"Id": "4fbeac8d-c9c9-5cbf-9c0a-5b23ef1bca5e",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Maintenance.MaintenanceInstructionDocument.Desc",
"Value": "Documents — manuals, procedures, drawings and certificates attached to a maintenance instruction.\nWhere: Maintenance › Maintenance › Maintenance Instructions › Documents tab (no menu of its own).\nFields: document name, document type (user manual / procedure / technical drawing / certificate / other), file, version, active.\nThe file is stored with the record; a new version is added as a new row so the previous one stays available."
},
{
"Id": "73d640a4-05b5-5c45-991b-47b04d6e97db",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Maintenance.MaintenanceInstructionDocument.Desc",
"Value": "Dokümanlar — bakım talimatına eklenen kılavuz, prosedür, çizim ve sertifikalar.\nNerede: Bakım › Bakım › Bakım Talimatları › Dokümanlar sekmesi (kendi menüsü yoktur).\nAlanlar: doküman adı, doküman tipi (kullanım kılavuzu / prosedür / teknik çizim / sertifika / diğer), dosya, versiyon, aktif.\nDosya kayıtla birlikte saklanır; yeni versiyon yeni satır olarak eklenir, önceki versiyon erişilebilir kalır."
},
{
"Id": "6e909899-a36b-5d3a-b710-e17308a7e74d",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Maintenance.MaintenanceInstructionGeneral",
"Value": "General"
},
{
"Id": "feaef8c3-7d0c-563b-8236-fe749ea57a35",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Maintenance.MaintenanceInstructionGeneral",
"Value": "Genel"
},
{
"Id": "28c7a74d-d11d-517d-b4d1-46bcba296365",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Maintenance.MaintenanceInstructionGeneral.Title",
"Value": "General"
},
{
"Id": "05e8b9f7-c4a6-58b2-b6e6-8e49d594d9e2",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Maintenance.MaintenanceInstructionGeneral.Title",
"Value": "Genel"
},
{
"Id": "ec9fce3f-8a4d-5c86-b498-a0883fac3792",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Maintenance.MaintenanceInstructionGeneral.Desc",
"Value": "Maintenance Instruction General — the written maintenance instruction.\nWhere: Maintenance › Maintenance › Maintenance Instructions › General tab (no menu of its own; edits the instruction record itself).\nFields: maintenance instruction (rich text: steps, safety notes, tools).\nThe text is shown to the technician on the work order created from the instruction."
},
{
"Id": "dae53801-c04e-590f-8ea0-0571a9bfcc8e",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Maintenance.MaintenanceInstructionGeneral.Desc",
"Value": "Bakım Talimatı Genel — bakım talimatının yazılı metni.\nNerede: Bakım › Bakım › Bakım Talimatları › Genel sekmesi (kendi menüsü yoktur; talimat kaydının kendisini düzenler).\nAlanlar: bakım talimatı (zengin metin: adımlar, güvenlik notları, gerekli aletler).\nMetin, talimattan açılacak iş emrinde teknisyene gösterilecektir."
},
{
"Id": "dec80f7f-20ca-5110-aa90-406895fde045",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Maintenance.MaintenanceInstructionApproval",
"Value": "Approval Information"
},
{
"Id": "2ba4e12f-69e8-55dd-a4f2-e5b1bf51988e",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Maintenance.MaintenanceInstructionApproval",
"Value": "Onay Bilgileri"
},
{
"Id": "5db53549-b255-5fcd-be17-18a9825dde09",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Maintenance.MaintenanceInstructionApproval.Title",
"Value": "Approval Information"
},
{
"Id": "d3c25bb5-1447-5a05-b35d-9fadff5fd7d0",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Maintenance.MaintenanceInstructionApproval.Title",
"Value": "Onay Bilgileri"
},
{
"Id": "d89c4d14-5a84-5775-aa9e-c6bb4d174e29",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Maintenance.MaintenanceInstructionApproval.Desc",
"Value": "Maintenance Instruction Approval Information — approval state of the instruction (read only).\nWhere: Maintenance › Maintenance › Maintenance Instructions › Approval Information tab (no menu of its own; shows the instruction record itself).\nFields: approval status (workflow step), approver user name, approval date, approval description (rejection reason included), department approvers.\nThe workflow writes these fields; department approvers are the Approvers defined for the equipment's department in the Maintenance approval area."
},
{
"Id": "4e952dd1-178c-5efb-9157-50b0faf4f822",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Maintenance.MaintenanceInstructionApproval.Desc",
"Value": "Bakım Talimatı Onay Bilgileri — talimatın onay durumu (salt okunur).\nNerede: Bakım › Bakım › Bakım Talimatları › Onay Bilgileri sekmesi (kendi menüsü yoktur; talimat kaydının kendisini gösterir).\nAlanlar: onay durumu (akış adımı), onaylayan kullanıcı, onay tarihi, onay açıklaması (red nedeni dahil), departman onaycıları.\nAlanları iş akışı yazar; departman onaycıları Onaycılar ekranında ekipmanın departmanı için Bakım onay yerine tanımlı kişilerdir."
},
{
"Id": "e774e7d8-a2bd-555b-a4d0-40fe634881c7",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Maintenance.MaintenanceInstruction",
"Value": "Maintenance Instructions"
},
{
"Id": "7a5c15f8-de7d-5b50-bfd0-94b11fec11d7",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Maintenance.MaintenanceInstruction",
"Value": "Bakım Talimatları"
},
{
"Id": "c1f70f2f-966a-5269-9dea-a6ad6c4d2f83",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Maintenance.MaintenanceInstruction.Title",
"Value": "Maintenance Instructions"
},
{
"Id": "ba272a13-5bc0-5ee9-a354-0e7c85451d5b",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Maintenance.MaintenanceInstruction.Title",
"Value": "Bakım Talimatları"
},
{
"Id": "7bf9bea3-e7c1-541e-be88-25d891479a40",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Maintenance.MaintenanceInstruction.Desc",
"Value": "Maintenance Instructions — periodic maintenance plans of equipment.\nWhere: Maintenance › Maintenance › Maintenance Instructions; tabs: Materials to Use, Checklist, Documents, General (instruction text), Approval Information.\nFields: branch, maintenance code (automatic), maintenance name, maintenance type, equipment (only products with an equipment category, shown as name [internal reference]/serial number), maintenance teams (teams of the selected branch), period (every N days / weeks / months / years), start date, end date, next maintenance (read only), active.\nBehaviour: the instruction is sent to department approval with the start button; approvers are the Approvers defined for the equipment's department in the Maintenance approval area, and the rejection reason is chosen from Maintenance › Reject Reasons. The Maintenance Instruction Schedule job recalculates the next maintenance date every night (start date + k × period, cleared after the end date); work orders will be opened from approved instructions when the work order screen is added."
},
{
"Id": "136c9c70-e347-5192-920f-668f705019af",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Maintenance.MaintenanceInstruction.Desc",
"Value": "Bakım Talimatları — ekipmanların periyodik bakım planları.\nNerede: Bakım › Bakım › Bakım Talimatları; sekmeler: Kullanılacak Malzemeler, Kontrol Listesi, Dokümanlar, Genel (talimat metni), Onay Bilgileri.\nAlanlar: şube, bakım kodu (otomatik), bakım adı, bakım tipi, ekipman (yalnız ekipman kategorisi olan ürünler; ad [iç referans]/seri no olarak), bakım ekipleri (seçili şubenin ekipleri), periyot (her N gün / hafta / ay / yıl), başlangıç tarihi, bitiş tarihi, sonraki bakım (salt okunur), aktif.\nDavranış: talimat başlat düğmesiyle departman onayına gönderilir; onaycılar Onaycılar ekranında ekipmanın departmanı için Bakım onay yerine tanımlı kişilerdir, red nedeni Bakım › Red Nedenleri'nden seçilir. Maintenance Instruction Schedule işi sonraki bakım tarihini her gece yeniden hesaplar (başlangıç + k × periyot, bitiş tarihinden sonra boşalır); iş emri ekranı eklendiğinde onaylı talimatlardan iş emri açılacaktır."
},
{
"Id": "e2bef9f5-5268-5ebf-b563-78c13b5d3b29",
"CultureName": "en",

View file

@ -3258,6 +3258,36 @@
"IsDisabled": false,
"ElementId": null,
"ModuleId": "Mm"
},
{
"Id": "276a1f9f-a837-580d-a9c1-79034511ceea",
"Code": "App.Maintenance.Operations",
"DisplayName": "App.Maintenance.Operations",
"Order": 2,
"Url": null,
"Icon": "FcAutomatic",
"ParentCode": "App.Maintenance",
"RequiredPermissionName": null,
"CssClass": null,
"Target": null,
"IsDisabled": false,
"ElementId": null,
"ModuleId": "Mm"
},
{
"Id": "99158ebe-9344-51f3-b5fd-18312a11aea5",
"Code": "App.Maintenance.MaintenanceInstruction",
"DisplayName": "App.Maintenance.MaintenanceInstruction",
"Order": 1,
"Url": "/admin/list/App.Maintenance.MaintenanceInstruction",
"Icon": "FcRules",
"ParentCode": "App.Maintenance.Operations",
"RequiredPermissionName": "App.Maintenance.MaintenanceInstruction",
"CssClass": null,
"Target": null,
"IsDisabled": false,
"ElementId": null,
"ModuleId": "Mm"
}
]
}

View file

@ -31,7 +31,7 @@ Onaylanan analiz (talep "Satınalma Onaycıları"):
- Ekran adı "Onaycılar" (`App.Definitions.Approver`, `Adm_T_Approver`): başlık "Satınalma Onaycıları" olsa da açıklama tüm onayların burada toplanacağını söyler.
- Onaycı departman + onay yeri bazındadır; platform tablosu `Hr_T_Department`'a kolon eklenmez (entity tablosu, çerçeve dışı).
- Onay Yeri seçenekleri: Satınalma (`Purchase`), Depo (`Warehouse`), İnsan Kaynakları (`HumanResources`), Finans (`Finance`) (onaylı).
- Onay Yeri seçenekleri: Satınalma (`Purchase`), Depo (`Warehouse`), İnsan Kaynakları (`HumanResources`), Finans (`Finance`) (onaylı), Bakım (`Maintenance`; Bakım Talimatları'nın departman onayı, 2026-10-18).
- Şube kolonu tutulmaz; departmandan gelir. Demo veri yazılmadı (departman/kullanıcı Id'leri kiracıya özgü).
### 3. Menü ve ekranlar
@ -190,7 +190,7 @@ Dış entegrasyon yok. Ülke/Şehir/İlçe, Para Birimi, Dil, Sektör, Kullanıc
| Alan | Başlık | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- |
| `DepartmentId` | Departman | dxSelectBox | ✓ | ✓ | sorgu: Hr_T_Department |
| `ApprovalArea` | Onay Yeri | dxSelectBox | ✓ | ✓ | liste: Purchase, Warehouse, HumanResources, Finance |
| `ApprovalArea` | Onay Yeri | dxSelectBox | ✓ | ✓ | liste: Purchase, Warehouse, HumanResources, Finance, Maintenance |
| `ApprovalUserName` | Onaylayacak Kişi | dxSelectBox | ✓ | ✓ | sorgu: AbpUsers |
| `IsActive` | Aktif | dxCheckBox | ✓ | ✓ | |

View file

@ -77,6 +77,87 @@ Ekipman Kategorileri, Envanter › Ürünler › Ekipman sekmesinin kategori se
- 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:section App.Maintenance.Operations -->
## 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.
<!-- module-doc:auto:begin -->
## Ek — Ekran envanteri (otomatik)
@ -241,4 +322,157 @@ Ekipman Kategorileri, Envanter › Ürünler › Ekipman sekmesinin kategori se
| `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 | | ✓ | |
<!-- module-doc:auto:end -->

View file

@ -0,0 +1,51 @@
-- Zamanlanmış işin BeforeSp'si PostgreSQL'de "SELECT * FROM public.<ad>()" ile çağrıldığı için
-- prosedür değil, void dönen fonksiyondur.
CREATE OR REPLACE FUNCTION public."Mm_S_MaintenanceInstructionSchedule"()
RETURNS void
LANGUAGE plpgsql
AS $$
DECLARE
v_Today date := LOCALTIMESTAMP::date;
BEGIN
-- Zamanlanmış iş (Maintenance Instruction Schedule, her gece 01:00). Aktif bakım talimatlarının
-- sonraki bakım tarihini Başlangıç Tarihi + k × periyot dizisinde bugüne eşit ya da bugünden sonraki
-- ilk tarihe taşır; Bitiş Tarihi geçmişse ya da talimat pasifse tarih boşalır. İş emri tablosu
-- geldiğinde vadesi gelen ve onaylanmış talimattan iş emri bu fonksiyonda açılır.
-- İş host ve her kiracı için çağrılır, fonksiyon parametre almaz; bütün kiracıların satırlarını işler
-- ve aynı gün tekrar çalışması sonucu değiştirmez.
UPDATE "Mm_T_MaintenanceInstruction" i SET
"NextDueDate" = CASE WHEN n."NextDate" > i."EndDate" THEN NULL ELSE n."NextDate" END
FROM (
SELECT c."Id",
CASE
WHEN c."StartDate" >= v_Today THEN c."StartDate"
WHEN c."Candidate" >= v_Today THEN c."Candidate"
WHEN c."IsMonth" THEN (c."StartDate" + make_interval(months => (c."K" + 1) * c."Step"))::date
ELSE c."StartDate" + (c."K" + 1) * c."Step"
END AS "NextDate"
FROM (
SELECT k.*,
CASE WHEN k."IsMonth" THEN (k."StartDate" + make_interval(months => k."K" * k."Step"))::date
ELSE k."StartDate" + k."K" * k."Step" END AS "Candidate"
FROM (
SELECT s.*,
(CASE WHEN s."IsMonth"
THEN ((EXTRACT(YEAR FROM v_Today) - EXTRACT(YEAR FROM s."StartDate")) * 12
+ EXTRACT(MONTH FROM v_Today) - EXTRACT(MONTH FROM s."StartDate"))::integer
ELSE v_Today - s."StartDate" END) / s."Step" AS "K"
FROM (
SELECT x."Id", x."StartDate",
x."PeriodUnit" IN ('Month', 'Year') AS "IsMonth",
CASE x."PeriodUnit" WHEN 'Week' THEN 7 * x."PeriodValue" WHEN 'Year' THEN 12 * x."PeriodValue" ELSE x."PeriodValue" END AS "Step"
FROM "Mm_T_MaintenanceInstruction" x
WHERE x."IsDeleted" = FALSE AND x."IsActive" = TRUE AND x."PeriodValue" > 0
) s
) k
) c
) n
WHERE n."Id" = i."Id";
UPDATE "Mm_T_MaintenanceInstruction" SET "NextDueDate" = NULL
WHERE "NextDueDate" IS NOT NULL AND ("IsDeleted" = TRUE OR "IsActive" = FALSE OR "PeriodValue" <= 0);
END;
$$;

View file

@ -0,0 +1,31 @@
CREATE TABLE IF NOT EXISTS public."Mm_T_MaintenanceInstruction"
(
"Id" uuid NOT NULL DEFAULT gen_random_uuid(),
"TenantId" uuid NULL,
"BranchId" uuid NOT NULL,
"Code" varchar(32) NULL,
"Name" varchar(256) NOT NULL,
"MaintenanceTypeId" uuid NULL,
"EquipmentId" uuid NOT NULL,
"TeamIds" text NULL,
"PeriodValue" integer NOT NULL DEFAULT 1,
"PeriodUnit" varchar(16) NOT NULL DEFAULT 'Month',
"StartDate" date NOT NULL,
"EndDate" date NULL,
"NextDueDate" date NULL,
"InstructionText" text NULL,
"DeptApproverUserNames" text NULL,
"ApprovalUserName" varchar(256) NULL,
"ApprovalStatus" varchar(50) NULL,
"ApprovalDate" timestamp NULL,
"ApprovalDescription" varchar(200) NULL,
"IsActive" boolean NOT NULL DEFAULT TRUE,
"CreationTime" timestamp NOT NULL DEFAULT (NOW() AT TIME ZONE 'UTC'),
"CreatorId" uuid NULL,
"LastModificationTime" timestamp NULL,
"LastModifierId" uuid NULL,
"IsDeleted" boolean NOT NULL DEFAULT FALSE,
"DeletionTime" timestamp NULL,
"DeleterId" uuid NULL,
CONSTRAINT "PK_Mm_T_MaintenanceInstruction" PRIMARY KEY ("Id")
);

View file

@ -0,0 +1,18 @@
CREATE TABLE IF NOT EXISTS public."Mm_T_MaintenanceInstructionCheck"
(
"Id" uuid NOT NULL DEFAULT gen_random_uuid(),
"TenantId" uuid NULL,
"MaintenanceInstructionId" uuid NOT NULL,
"Name" varchar(256) NOT NULL,
"Description" varchar(512) NULL,
"IsRequired" boolean NOT NULL DEFAULT FALSE,
"IsActive" boolean NOT NULL DEFAULT TRUE,
"CreationTime" timestamp NOT NULL DEFAULT (NOW() AT TIME ZONE 'UTC'),
"CreatorId" uuid NULL,
"LastModificationTime" timestamp NULL,
"LastModifierId" uuid NULL,
"IsDeleted" boolean NOT NULL DEFAULT FALSE,
"DeletionTime" timestamp NULL,
"DeleterId" uuid NULL,
CONSTRAINT "PK_Mm_T_MaintenanceInstructionCheck" PRIMARY KEY ("Id")
);

View file

@ -0,0 +1,19 @@
CREATE TABLE IF NOT EXISTS public."Mm_T_MaintenanceInstructionDocument"
(
"Id" uuid NOT NULL DEFAULT gen_random_uuid(),
"TenantId" uuid NULL,
"MaintenanceInstructionId" uuid NOT NULL,
"Name" varchar(256) NOT NULL,
"DocumentType" varchar(32) NOT NULL DEFAULT 'Other',
"FileContent" text NULL,
"Version" varchar(32) NULL,
"IsActive" boolean NOT NULL DEFAULT TRUE,
"CreationTime" timestamp NOT NULL DEFAULT (NOW() AT TIME ZONE 'UTC'),
"CreatorId" uuid NULL,
"LastModificationTime" timestamp NULL,
"LastModifierId" uuid NULL,
"IsDeleted" boolean NOT NULL DEFAULT FALSE,
"DeletionTime" timestamp NULL,
"DeleterId" uuid NULL,
CONSTRAINT "PK_Mm_T_MaintenanceInstructionDocument" PRIMARY KEY ("Id")
);

View file

@ -0,0 +1,19 @@
CREATE TABLE IF NOT EXISTS public."Mm_T_MaintenanceInstructionMaterial"
(
"Id" uuid NOT NULL DEFAULT gen_random_uuid(),
"TenantId" uuid NULL,
"MaintenanceInstructionId" uuid NOT NULL,
"ProductId" uuid NOT NULL,
"Quantity" numeric(18, 4) NOT NULL DEFAULT 1,
"UomId" varchar(64) NOT NULL DEFAULT 'Adet',
"Description" varchar(256) NULL,
"IsActive" boolean NOT NULL DEFAULT TRUE,
"CreationTime" timestamp NOT NULL DEFAULT (NOW() AT TIME ZONE 'UTC'),
"CreatorId" uuid NULL,
"LastModificationTime" timestamp NULL,
"LastModifierId" uuid NULL,
"IsDeleted" boolean NOT NULL DEFAULT FALSE,
"DeletionTime" timestamp NULL,
"DeleterId" uuid NULL,
CONSTRAINT "PK_Mm_T_MaintenanceInstructionMaterial" PRIMARY KEY ("Id")
);

View file

@ -0,0 +1,41 @@
CREATE OR ALTER PROCEDURE [dbo].[Mm_S_MaintenanceInstructionSchedule]
AS
BEGIN
SET NOCOUNT ON;
-- Zamanlanmış iş (Maintenance Instruction Schedule, her gece 01:00). Aktif bakım talimatlarının
-- sonraki bakım tarihini Başlangıç Tarihi + k × periyot dizisinde bugüne eşit ya da bugünden sonraki
-- ilk tarihe taşır; Bitiş Tarihi geçmişse ya da talimat pasifse tarih boşalır. İş emri tablosu
-- geldiğinde vadesi gelen ve onaylanmış talimattan iş emri bu yordamda açılır.
-- İş host ve her kiracı için çağrılır, yordam parametre almaz; bütün kiracıların satırlarını işler
-- ve aynı gün tekrar çalışması sonucu değiştirmez.
DECLARE @Today date = CAST(GETDATE() AS date);
UPDATE i SET
NextDueDate = CASE WHEN n.NextDate > i.EndDate THEN NULL ELSE n.NextDate END
FROM Mm_T_MaintenanceInstruction i
CROSS APPLY (
SELECT
CASE WHEN i.PeriodUnit IN ('Month', 'Year') THEN 1 ELSE 0 END AS IsMonth,
CASE i.PeriodUnit WHEN 'Week' THEN 7 * i.PeriodValue WHEN 'Year' THEN 12 * i.PeriodValue ELSE i.PeriodValue END AS Step
) s
CROSS APPLY (
SELECT CASE WHEN s.IsMonth = 1 THEN DATEDIFF(month, i.StartDate, @Today) ELSE DATEDIFF(day, i.StartDate, @Today) END / s.Step AS K
) k
CROSS APPLY (
SELECT CASE WHEN s.IsMonth = 1 THEN DATEADD(month, k.K * s.Step, i.StartDate) ELSE DATEADD(day, k.K * s.Step, i.StartDate) END AS Candidate
) c
CROSS APPLY (
SELECT CASE
WHEN i.StartDate >= @Today THEN i.StartDate
WHEN c.Candidate >= @Today THEN c.Candidate
WHEN s.IsMonth = 1 THEN DATEADD(month, (k.K + 1) * s.Step, i.StartDate)
ELSE DATEADD(day, (k.K + 1) * s.Step, i.StartDate)
END AS NextDate
) n
WHERE i.IsDeleted = 0 AND i.IsActive = 1 AND i.PeriodValue > 0;
UPDATE Mm_T_MaintenanceInstruction SET NextDueDate = NULL
WHERE NextDueDate IS NOT NULL AND (IsDeleted = 1 OR IsActive = 0 OR PeriodValue <= 0);
END
GO

View file

@ -0,0 +1,38 @@
IF OBJECT_ID(N'[dbo].[Mm_T_MaintenanceInstruction]', 'U') IS NULL
BEGIN
CREATE TABLE [dbo].[Mm_T_MaintenanceInstruction]
(
[Id] uniqueidentifier NOT NULL DEFAULT NEWID(),
[TenantId] uniqueidentifier NULL,
[BranchId] uniqueidentifier NOT NULL,
[Code] nvarchar(32) NULL,
[Name] nvarchar(256) NOT NULL,
[MaintenanceTypeId] uniqueidentifier NULL,
[EquipmentId] uniqueidentifier NOT NULL,
[TeamIds] nvarchar(MAX) NULL,
[PeriodValue] int NOT NULL DEFAULT 1,
[PeriodUnit] nvarchar(16) NOT NULL DEFAULT 'Month',
[StartDate] date NOT NULL,
[EndDate] date NULL,
[NextDueDate] date NULL,
[InstructionText] nvarchar(MAX) NULL,
[DeptApproverUserNames] nvarchar(MAX) NULL,
[ApprovalUserName] nvarchar(256) NULL,
[ApprovalStatus] nvarchar(50) NULL,
[ApprovalDate] datetime NULL,
[ApprovalDescription] nvarchar(200) NULL,
[IsActive] bit NOT NULL DEFAULT 1,
[CreationTime] datetime2 NOT NULL DEFAULT GETUTCDATE(),
[CreatorId] uniqueidentifier NULL,
[LastModificationTime] datetime2 NULL,
[LastModifierId] uniqueidentifier NULL,
[IsDeleted] bit NOT NULL DEFAULT 0,
[DeletionTime] datetime2 NULL,
[DeleterId] uniqueidentifier NULL,
CONSTRAINT [PK_Mm_T_MaintenanceInstruction] PRIMARY KEY NONCLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
END
GO

View file

@ -0,0 +1,25 @@
IF OBJECT_ID(N'[dbo].[Mm_T_MaintenanceInstructionCheck]', 'U') IS NULL
BEGIN
CREATE TABLE [dbo].[Mm_T_MaintenanceInstructionCheck]
(
[Id] uniqueidentifier NOT NULL DEFAULT NEWID(),
[TenantId] uniqueidentifier NULL,
[MaintenanceInstructionId] uniqueidentifier NOT NULL,
[Name] nvarchar(256) NOT NULL,
[Description] nvarchar(512) NULL,
[IsRequired] bit NOT NULL DEFAULT 0,
[IsActive] bit NOT NULL DEFAULT 1,
[CreationTime] datetime2 NOT NULL DEFAULT GETUTCDATE(),
[CreatorId] uniqueidentifier NULL,
[LastModificationTime] datetime2 NULL,
[LastModifierId] uniqueidentifier NULL,
[IsDeleted] bit NOT NULL DEFAULT 0,
[DeletionTime] datetime2 NULL,
[DeleterId] uniqueidentifier NULL,
CONSTRAINT [PK_Mm_T_MaintenanceInstructionCheck] PRIMARY KEY NONCLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
END
GO

View file

@ -0,0 +1,26 @@
IF OBJECT_ID(N'[dbo].[Mm_T_MaintenanceInstructionDocument]', 'U') IS NULL
BEGIN
CREATE TABLE [dbo].[Mm_T_MaintenanceInstructionDocument]
(
[Id] uniqueidentifier NOT NULL DEFAULT NEWID(),
[TenantId] uniqueidentifier NULL,
[MaintenanceInstructionId] uniqueidentifier NOT NULL,
[Name] nvarchar(256) NOT NULL,
[DocumentType] nvarchar(32) NOT NULL DEFAULT 'Other',
[FileContent] nvarchar(MAX) NULL,
[Version] nvarchar(32) NULL,
[IsActive] bit NOT NULL DEFAULT 1,
[CreationTime] datetime2 NOT NULL DEFAULT GETUTCDATE(),
[CreatorId] uniqueidentifier NULL,
[LastModificationTime] datetime2 NULL,
[LastModifierId] uniqueidentifier NULL,
[IsDeleted] bit NOT NULL DEFAULT 0,
[DeletionTime] datetime2 NULL,
[DeleterId] uniqueidentifier NULL,
CONSTRAINT [PK_Mm_T_MaintenanceInstructionDocument] PRIMARY KEY NONCLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
END
GO

View file

@ -0,0 +1,26 @@
IF OBJECT_ID(N'[dbo].[Mm_T_MaintenanceInstructionMaterial]', 'U') IS NULL
BEGIN
CREATE TABLE [dbo].[Mm_T_MaintenanceInstructionMaterial]
(
[Id] uniqueidentifier NOT NULL DEFAULT NEWID(),
[TenantId] uniqueidentifier NULL,
[MaintenanceInstructionId] uniqueidentifier NOT NULL,
[ProductId] uniqueidentifier NOT NULL,
[Quantity] decimal(18, 4) NOT NULL DEFAULT 1,
[UomId] nvarchar(64) NOT NULL DEFAULT 'Adet',
[Description] nvarchar(256) NULL,
[IsActive] bit NOT NULL DEFAULT 1,
[CreationTime] datetime2 NOT NULL DEFAULT GETUTCDATE(),
[CreatorId] uniqueidentifier NULL,
[LastModificationTime] datetime2 NULL,
[LastModifierId] uniqueidentifier NULL,
[IsDeleted] bit NOT NULL DEFAULT 0,
[DeletionTime] datetime2 NULL,
[DeleterId] uniqueidentifier NULL,
CONSTRAINT [PK_Mm_T_MaintenanceInstructionMaterial] PRIMARY KEY NONCLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
END
GO

View file

@ -32,8 +32,8 @@
"MenuTr": "Onaycılar",
"TitleEn": "Approvers",
"TitleTr": "Onaycılar",
"DescEn": "Approvers — the single list of who approves what for each department across the application.\nWhere: Administration › Definitions › Approvers.\nFields: department (shown as Branch - Department), approval area (Purchasing / Warehouse / Human Resources / Finance), approver user, active.\nUsed by: approval workflows read the approvers of the record's department and area. Purchasing › Material Requests: the department approval uses area Purchasing for the requester's department; the purchasing approval is not defined here: it goes to users with update permission on Awaiting Purchasing Approval (directly or through their role). Several approvers may be defined for the same department and area; any one of them can approve. Passive rows are ignored by workflows.",
"DescTr": "Onaycılar — uygulamadaki tüm onay adımlarında her departman için kimin onaylayacağını tutan tek liste.\nNerede: Yönetim › Tanımlamalar › Onaycılar.\nAlanlar: departman (Şube - Departman olarak gösterilir), onay yeri (Satınalma / Depo / İnsan Kaynakları / Finans), onaylayacak kişi, aktif.\nKullanıldığı yer: onay akışları kaydın departmanı ve onay yerine göre onaycıları buradan okur. Satınalma › Talepler: departman onayı talep edenin departmanındaki Satınalma satırlarını, satınalma onayı burada tanımlanmaz: Satınalma Onayı Bekleyenler ekranında güncelleme yetkisi olan kullanıcılar (doğrudan ya da rolüyle) onaylar. Aynı departman ve onay yerine birden çok onaycı girilebilir; herhangi birinin onayı yeterlidir. Pasif satırlar akışlarda kullanılmaz.",
"DescEn": "Approvers — the single list of who approves what for each department across the application.\nWhere: Administration › Definitions › Approvers.\nFields: department (shown as Branch - Department), approval area (Purchasing / Warehouse / Human Resources / Finance / Maintenance), approver user, active.\nUsed by: approval workflows read the approvers of the record's department and area. Purchasing › Material Requests: the department approval uses area Purchasing for the requester's department; the purchasing approval is not defined here: it goes to users with update permission on Awaiting Purchasing Approval (directly or through their role). Several approvers may be defined for the same department and area; any one of them can approve. Maintenance › Maintenance Instructions: the department approval uses area Maintenance for the equipment's department. Passive rows are ignored by workflows.",
"DescTr": "Onaycılar — uygulamadaki tüm onay adımlarında her departman için kimin onaylayacağını tutan tek liste.\nNerede: Yönetim › Tanımlamalar › Onaycılar.\nAlanlar: departman (Şube - Departman olarak gösterilir), onay yeri (Satınalma / Depo / İnsan Kaynakları / Finans / Bakım), onaylayacak kişi, aktif.\nKullanıldığı yer: onay akışları kaydın departmanı ve onay yerine göre onaycıları buradan okur. Satınalma › Talepler: departman onayı talep edenin departmanındaki Satınalma satırlarını, satınalma onayı burada tanımlanmaz: Satınalma Onayı Bekleyenler ekranında güncelleme yetkisi olan kullanıcılar (doğrudan ya da rolüyle) onaylar. Aynı departman ve onay yerine birden çok onaycı girilebilir; herhangi birinin onayı yeterlidir. Bakım › Bakım Talimatları: departman onayı ekipmanın departmanındaki Bakım satırlarını kullanır. Pasif satırlar akışlarda kullanılmaz.",
"Texts": [
{
"Key": "App.StaticLookup.Purchase",
@ -54,6 +54,11 @@
"Key": "App.StaticLookup.Finance",
"En": "Finance",
"Tr": "Finans"
},
{
"Key": "App.StaticLookup.MaintenanceArea",
"En": "Maintenance",
"Tr": "Bakım"
}
]
},
@ -1060,7 +1065,7 @@
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": null,
"LookupQuery": "[{\"key\":\"Purchase\",\"name\":\"App.StaticLookup.Purchase\"},{\"key\":\"Warehouse\",\"name\":\"App.StaticLookup.Warehouse\"},{\"key\":\"HumanResources\",\"name\":\"App.StaticLookup.HumanResources\"},{\"key\":\"Finance\",\"name\":\"App.StaticLookup.Finance\"}]"
"LookupQuery": "[{\"key\":\"Purchase\",\"name\":\"App.StaticLookup.Purchase\"},{\"key\":\"Warehouse\",\"name\":\"App.StaticLookup.Warehouse\"},{\"key\":\"HumanResources\",\"name\":\"App.StaticLookup.HumanResources\"},{\"key\":\"Finance\",\"name\":\"App.StaticLookup.Finance\"},{\"key\":\"Maintenance\",\"name\":\"App.StaticLookup.MaintenanceArea\"}]"
},
"ValidationRuleDto": [
{
@ -1412,7 +1417,8 @@
"App.StaticLookup.HumanResources",
"App.StaticLookup.Finance",
"App.Listform.ListformField.ApprovalArea",
"App.Listform.ListformField.ApproverUser"
"App.Listform.ListformField.ApproverUser",
"App.StaticLookup.MaintenanceArea"
],
"PermissionGroupNames": [],
"PermissionNames": [

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,938 @@
{
"Wizard": {
"ComponentKind": 0,
"WizardName": "Mm_MaintenanceInstructionGeneral",
"WizardCode": "App.Maintenance.MaintenanceInstructionGeneral",
"SeededAt": "2026-10-17T23:34:48.008862Z",
"CustomComponentName": null,
"PermissionGroupName": "App.Maintenance",
"ModuleId": "Mm",
"Menu": {
"MenuParentPath": [
{
"Code": "App.Maintenance",
"Icon": "FcServices",
"En": "Maintenance",
"Tr": "Bakım"
}
],
"MenuParentCode": "App.Maintenance.Operations",
"MenuParentIcon": "FcAutomatic",
"CreateMenu": false,
"MenuCode": "App.Maintenance.MaintenanceInstructionGeneral",
"MenuOrder": 0,
"MenuUrl": "/admin/list/App.Maintenance.MaintenanceInstructionGeneral",
"MenuIcon": "FcList"
},
"Language": {
"MenuParentEn": "Maintenance",
"MenuParentTr": "Bakım",
"PermissionGroupEn": "Maintenance",
"PermissionGroupTr": "Bakım",
"MenuEn": "General",
"MenuTr": "Genel",
"TitleEn": "General",
"TitleTr": "Genel",
"DescEn": "Maintenance Instruction General — the written maintenance instruction.\nWhere: Maintenance › Maintenance › Maintenance Instructions › General tab (no menu of its own; edits the instruction record itself).\nFields: maintenance instruction (rich text: steps, safety notes, tools).\nThe text is shown to the technician on the work order created from the instruction.",
"DescTr": "Bakım Talimatı Genel — bakım talimatının yazılı metni.\nNerede: Bakım › Bakım › Bakım Talimatları › Genel sekmesi (kendi menüsü yoktur; talimat kaydının kendisini düzenler).\nAlanlar: bakım talimatı (zengin metin: adımlar, güvenlik notları, gerekli aletler).\nMetin, talimattan açılacak iş emrinde teknisyene gösterilecektir."
},
"Groups": [
{
"Items": [
{
"FieldName": "Id",
"CaptionName": "App.Listform.ListformField.Id",
"En": "Id",
"Tr": "Kimlik"
},
{
"FieldName": "InstructionText",
"CaptionName": "App.Listform.ListformField.InstructionText",
"En": "Maintenance Instruction",
"Tr": "Bakım Talimatı"
}
]
}
]
},
"ListForm": {
"EditType": null,
"DataSourceCode": "Default",
"KeyFieldDbSourceType": 9,
"TableName": null,
"DefaultFilter": "\"IsDeleted\" = 'false'",
"SelectCommand": "Mm_T_MaintenanceInstruction",
"SelectCommandType": 1,
"SelectFieldsDefaultValueDto": [],
"SeedFilePath": null,
"SeedSyncInsert": false,
"SeedSyncUpdate": false,
"SeedSyncDelete": false,
"DeleteCommand": "UPDATE \"Mm_T_MaintenanceInstruction\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\" IN @Id",
"DeleteBeforeCommand": null,
"DeleteAfterCommand": null,
"DeleteFieldsDefaultValueDto": [
{
"FieldName": "DeleterId",
"FieldDbType": 9,
"Value": "@USERID",
"CustomValueType": 2,
"SqlQuery": null
},
{
"FieldName": "Id",
"FieldDbType": 9,
"Value": "@ID",
"CustomValueType": 2,
"SqlQuery": null
}
],
"InsertCommand": null,
"InsertBeforeCommand": null,
"InsertAfterCommand": null,
"InsertFieldsDefaultValueDto": [
{
"FieldName": "CreationTime",
"FieldDbType": 6,
"Value": "@NOW",
"CustomValueType": 2,
"SqlQuery": null
},
{
"FieldName": "CreatorId",
"FieldDbType": 9,
"Value": "@USERID",
"CustomValueType": 2,
"SqlQuery": null
},
{
"FieldName": "IsDeleted",
"FieldDbType": 3,
"Value": "false",
"CustomValueType": 1,
"SqlQuery": null
},
{
"FieldName": "Id",
"FieldDbType": 9,
"Value": "@NEWID",
"CustomValueType": 2,
"SqlQuery": null
}
],
"UpdateCommand": null,
"UpdateBeforeCommand": null,
"UpdateAfterCommand": null,
"UpdateFieldsDefaultValueDto": [
{
"FieldName": "LastModificationTime",
"FieldDbType": 6,
"Value": "@NOW",
"CustomValueType": 2,
"SqlQuery": null
},
{
"FieldName": "LastModifierId",
"FieldDbType": 9,
"Value": "@USERID",
"CustomValueType": 2,
"SqlQuery": null
}
],
"FormFieldsDefaultValueDto": [],
"WidgetsDto": [],
"ExtraFilterEditDto": [],
"ListFormCode": "App.Maintenance.MaintenanceInstructionGeneral",
"CultureName": "en",
"Name": "App.Maintenance.MaintenanceInstructionGeneral",
"KeyFieldName": "Id",
"Title": "App.Maintenance.MaintenanceInstructionGeneral.Title",
"SortMode": "single",
"PageSize": 10,
"Width": 0,
"Height": 0,
"FullHeight": false,
"Description": "App.Maintenance.MaintenanceInstructionGeneral.Desc",
"FilterRowDto": {
"Visible": true,
"ApplyFilter": "auto",
"AllowUserUiFilterSave": true
},
"RowDto": {
"RowHeight": "auto",
"WhiteSpace": "normal",
"OverflowWrap": "break-word"
},
"HeaderFilterDto": {
"Visible": true,
"AllowSearch": false,
"Height": 325,
"SearchTimeout": 500,
"Width": 252
},
"FilterPanelDto": {
"Visible": false,
"Texts": null,
"FilterEnabled": false,
"CustomizeText": null
},
"SearchPanelDto": {
"Visible": true,
"Width": 160
},
"GroupPanelDto": {
"Visible": true,
"AutoExpandAll": false
},
"SelectionDto": {
"Mode": "none",
"AllowSelectAll": false,
"SelectAllMode": "allPages",
"ShowCheckBoxesMode": "always"
},
"ColumnOptionDto": {
"ShowBorders": true,
"ShowRowLines": true,
"ShowColumnLines": false,
"RowAlternationEnabled": true,
"AllowColumnReordering": true,
"AllowColumnResizing": true,
"ColumnResizingMode": "widget",
"ColumnAutoWidth": true,
"RtlEnabled": false,
"ColumnFixingEnabled": true,
"ColumnChooserEnabled": true,
"ColumnChooserMode": "dragAndDrop",
"HoverStateEnabled": false,
"ColumnHidingEnabled": true,
"FocusedRowEnabled": true,
"ShowColumnHeaders": true
},
"PivotOptionDto": {
"ColumnChooserEnabled": false,
"AllowFieldDragging": true,
"ShowFieldPanel": true,
"ShowDataFields": true,
"ShowColumnFields": true,
"ShowRowFields": true,
"ShowFilterFields": true,
"ShowChart": false,
"ChartHeight": 320,
"ChartCommonSeriesType": "bar"
},
"TreeOptionDto": {
"KeyExpr": null,
"ParentIdExpr": null,
"HasItemsExpr": null,
"RootValue": null,
"ExpandedRowKeys": [],
"AutoExpandAll": false,
"RecursiveSelection": false,
"TitleExpr": null,
"StartExpr": null,
"EndExpr": null,
"ProgressExpr": null
},
"GanttOptionDto": {
"KeyExpr": null,
"ParentIdExpr": null,
"HasItemsExpr": null,
"RootValue": null,
"ExpandedRowKeys": [],
"AutoExpandAll": false,
"RecursiveSelection": false,
"TitleExpr": null,
"ScaleType": "weeks",
"StartExpr": null,
"EndExpr": null,
"ProgressExpr": null,
"EditingEnabled": false,
"AllowTaskAdding": false,
"AllowTaskUpdating": false,
"AllowTaskResourceUpdating": false,
"AllowTaskDeleting": false,
"AllowDependencyAdding": false,
"AllowDependencyDeleting": false,
"AllowResourceAdding": false,
"AllowResourceUpdating": false,
"AllowResourceDeleting": false
},
"SchedulerOptionDto": {
"TextExpr": null,
"UserNameExpr": null,
"DescriptionExpr": null,
"StartDateExpr": null,
"EndDateExpr": null,
"AllDayExpr": null,
"RecurrenceRuleExpr": null,
"RecurrenceExceptionExpr": null,
"StartDayHour": 8,
"EndDayHour": 20,
"DefaultView": "week",
"ShowAllDayPanel": true,
"CellDuration": 30,
"FirstDayOfWeek": 1,
"CrossScrollingEnabled": false,
"AllowResizing": false,
"AllowDragging": false,
"AllowDeleting": false,
"AllowEditing": false,
"AllowAdding": false
},
"TodoOptionDto": {
"TitleExpr": null,
"StatusExpr": null,
"DescriptionExpr": null,
"AnalysisExpr": null,
"DueDateExpr": null,
"TagExpr": null,
"AssigneeExpr": null,
"PriorityExpr": null,
"CompletedExpr": null,
"OrderExpr": null,
"TimesheetExpr": null,
"SubTaskExpr": null,
"StatusOrder": null,
"AllowDragging": true
},
"PagerOptionDto": {
"Visible": true,
"ShowPageSizeSelector": true,
"ShowInfo": false,
"ShowNavigationButtons": true,
"AllowedPageSizes": "10,20,50,100",
"InfoText": "Page {0} of {1} ({2} items)",
"DisplayMode": "adaptive",
"ScrollingMode": "standard",
"LoadPanelEnabled": "auto",
"LoadPanelText": "Loading..."
},
"EditingOptionDto": {
"Mode": "popup",
"RefreshMode": "full",
"AllowUpdating": true,
"AllowDetail": false,
"AllowDeleting": false,
"AllowAllDeleting": false,
"AllowAdding": false,
"AllowDuplicate": false,
"OpenDetailAfterInsert": false,
"UseIcons": false,
"ConfirmDelete": true,
"NewRowPosition": "viewportTop",
"SelectTextOnEditStart": false,
"StartEditAction": "click",
"EditColumnName": null,
"Popup": {
"Title": "App.Maintenance.MaintenanceInstructionGeneral.Title",
"ShowTitle": true,
"Width": 900,
"Height": 480,
"FullScreen": false,
"HideOnOutsideClick": true,
"ResizeEnabled": true,
"DragEnabled": true,
"RestorePosition": true,
"Position": "center"
},
"SendOnlyChangedFormValuesUpdate": false,
"AddPageUrl": null,
"AddDialogName": null,
"AddDialogParameters": null
},
"EditingFormDto": [
{
"Order": 1,
"ItemType": "group",
"Caption": "",
"ColCount": 2,
"ColSpan": 2
}
],
"PermissionDto": {
"C": "App.Maintenance.MaintenanceInstructionGeneral.Create",
"R": "App.Maintenance.MaintenanceInstructionGeneral",
"U": "App.Maintenance.MaintenanceInstructionGeneral.Update",
"D": "App.Maintenance.MaintenanceInstructionGeneral.Delete",
"E": "App.Maintenance.MaintenanceInstructionGeneral.Export",
"I": "App.Maintenance.MaintenanceInstructionGeneral.Import",
"N": "App.Maintenance.MaintenanceInstructionGeneral.Note"
},
"CommandColumnDto": [],
"StateStoringDto": {
"Enabled": true,
"Type": "custom",
"StorageKey": "listFormGridStorage-App.Maintenance.MaintenanceInstructionGeneral",
"SavingTimeout": 5000
},
"CustomJsSources": [],
"CustomStyleSources": [],
"UpdateServiceAddress": "list-form-data/update",
"InsertServiceAddress": "list-form-data/insert",
"DeleteServiceAddress": "list-form-data/delete",
"IsTenant": true,
"IsBranch": false,
"IsOrganizationUnit": false,
"ListFormType": "List",
"IsSubForm": false,
"ShowNote": false,
"SubFormsListFormType": "Form",
"SubFormsDto": [],
"ExtraFilterDto": [],
"LayoutDto": {
"Grid": true,
"Card": true,
"Pivot": true,
"Chart": true,
"Tree": false,
"Gantt": false,
"Scheduler": false,
"Todo": false,
"DefaultLayout": "grid"
},
"WorkflowDto": {
"ApprovalUserFieldName": null,
"ApprovalDateFieldName": null,
"ApprovalStatusFieldName": null,
"ApprovalDescriptionFieldName": null,
"ApprovalIsFilterUserName": false,
"ApprovalIsResetWorkflow": false,
"ApprovalIsManualStart": false,
"Criteria": []
},
"UserId": null,
"RoleId": null,
"CommonDto": {
"AdjustOnZoom": true,
"ContainerBackgroundColor": "#FFFFFF",
"Palette": "Material",
"PaletteExtensionMode": "blend",
"DefaultPane": null,
"Disabled": false,
"Theme": "generic.light"
},
"AdaptivelayoutDto": {
"Height": 80,
"Width": 80,
"KeepLabels": true
},
"AnimationDto": {
"Duration": 1000,
"Easing": "easeOutCubic",
"Enabled": true,
"MaxPointCountSupported": 300
},
"AnnotationsDto": [],
"ArgumentAxisDto": {
"ArgumentType": null,
"AggregationInterval": null,
"Grid": {
"Color": "#d3d3d3",
"Visible": false,
"Width": 1
},
"HoverMode": "none",
"Label": {
"DisplayMode": "standard",
"RotationAngle": 90,
"OverlappingBehavior": "hide"
},
"Position": "bottom",
"Title": null,
"Visible": true,
"Width": 1,
"WorkdaysOnly": false
},
"CommonAnnotationSettingsDto": {
"Argument": null,
"Border": {
"Color": "#d3d3d3",
"CornerRadius": 0,
"DashStyle": "solid",
"Visible": false,
"Width": 1
},
"Color": "#ffffff",
"Description": null,
"Font": {
"Color": "#FFFFFF",
"Family": "\"Segoe UI\", \"Helvetica Neue\", \"Trebuchet MS\", Verdana, sans-serif",
"Size": 12,
"Weight": 400
},
"Height": -1,
"Image": null,
"OffsetX": -1,
"OffsetY": -1,
"PaddingLeftRight": 10,
"PaddingTopBottom": 10,
"Series": null,
"Text": null,
"TooltipEnabled": true,
"Type": null,
"Value": null,
"Width": 0,
"WordWrap": "normal",
"X": 0,
"Y": 0
},
"CommonAxisSettingsDto": {
"Grid": {
"Color": "#d3d3d3",
"Visible": false,
"Width": 1
},
"Title": null,
"Visible": true,
"Width": 1
},
"CommonPaneSettingsDto": {
"BackgroundColor": null
},
"CommonSeriesSettingsDto": {
"ArgumentField": "arg",
"Axis": null,
"BarOverlapGroup": null,
"BarPadding": 0,
"BarWidth": 0,
"Color": null,
"CornerRadius": 0,
"DashStyle": "solid",
"IgnoreEmptyPoints": false,
"Pane": null,
"RangeValue1Field": "val1",
"RangeValue2Field": "val2",
"SelectionMode": "none",
"ShowInLegend": true,
"Type": null,
"ValueField": null,
"Visible": true,
"Width": 2,
"Label": null
},
"CrosshairDto": {
"Color": "#f05b41",
"DashStyle": "dot",
"Enabled": false,
"Width": 1,
"HorizontalLine": {
"Color": "#f05b41",
"DashStyle": "dot",
"Label": {
"BackgroundColor": "#f05b41",
"CustomizeText": null,
"Font": {
"Color": "#FFFFFF",
"Family": "\"Segoe UI\", \"Helvetica Neue\", \"Trebuchet MS\", Verdana, sans-serif",
"Size": 12,
"Weight": 400
},
"Visible": false,
"Format": null
},
"Visible": true,
"Width": 1
},
"Label": {
"BackgroundColor": "#f05b41",
"CustomizeText": null,
"Font": {
"Color": "#FFFFFF",
"Family": "\"Segoe UI\", \"Helvetica Neue\", \"Trebuchet MS\", Verdana, sans-serif",
"Size": 12,
"Weight": 400
},
"Visible": false,
"Format": null
},
"VerticalLine": {
"Color": "#f05b41",
"DashStyle": "dot",
"Label": {
"BackgroundColor": "#f05b41",
"CustomizeText": null,
"Font": {
"Color": "#FFFFFF",
"Family": "\"Segoe UI\", \"Helvetica Neue\", \"Trebuchet MS\", Verdana, sans-serif",
"Size": 12,
"Weight": 400
},
"Visible": false,
"Format": null
},
"Visible": true,
"Width": 1
}
},
"ExportDto": {
"BackgroundColor": "#FFFFFF",
"Enabled": true,
"AllowExportSelectedData": false,
"Margin": 10,
"PrintingEnabled": true
},
"LegendDto": {
"BackgroundColor": null,
"Border": {
"Color": "#d3d3d3",
"CornerRadius": 0,
"DashStyle": "solid",
"Visible": false,
"Width": 1
},
"ColumnCount": 0,
"Orientation": "vertical",
"Position": "outside",
"RowCount": 0,
"Title": null,
"Visible": true
},
"MarginDto": {
"Bottom": 0,
"Left": 0,
"Right": 0,
"Top": 0
},
"PanesDto": [],
"ScrollBarDto": {
"Color": "gray",
"Offset": 5,
"Position": "top",
"Visible": false,
"Width": 10
},
"SeriesDto": [],
"SizeDto": {
"UseSize": false,
"Width": 400,
"Height": 200
},
"TitleDto": {
"Text": null,
"VerticalAlignment": "top",
"HorizontalAlignment": "center",
"Subtitle": null,
"TextOverflow": "ellipsis",
"WordWrap": null
},
"TooltipDto": {
"ArgumentFormat": null,
"ArrowLength": 10,
"Border": {
"Color": "#d3d3d3",
"CornerRadius": 0,
"DashStyle": "solid",
"Visible": false,
"Width": 1
},
"Color": "#ffffff",
"Enabled": false,
"Font": {
"Color": "#000000",
"Family": "\"Segoe UI\", \"Helvetica Neue\", \"Trebuchet MS\", Verdana, sans-serif",
"Size": 12,
"Weight": 400
},
"Format": null,
"Location": "center",
"PaddingLeftRight": 18,
"PaddingTopBottom": 15,
"Shared": false
},
"ValueAxisDto": [],
"ZoomAndPanDto": {
"AllowMouseWheel": true,
"AllowTouchGestures": true,
"ArgumentAxis": "none",
"DragToZoom": false,
"PanKey": "shift",
"ValueAxis": "none",
"DragBoxStyle": {
"Color": null,
"Opacity": 0
}
},
"LastModificationTime": null,
"LastModifierId": null,
"CreationTime": "0001-01-01T00:00:00",
"CreatorId": null,
"Id": "00000000-0000-0000-0000-000000000000"
},
"Fields": [
{
"EditType": null,
"ListFormCode": "App.Maintenance.MaintenanceInstructionGeneral",
"RoleId": null,
"UserId": null,
"ColumnJoinTableDto": {
"JoinType": null,
"TableName": null,
"JoinFieldName": null,
"BaseTableJoinFieldName": null,
"SelectFieldName": null,
"FieldNameAlias": null,
"JoinCondition2": "AND",
"JoinFieldName2": null,
"BaseTableJoinFieldName2_OrValue": null
},
"FieldName": "Id",
"CaptionName": "App.Listform.ListformField.Id",
"PlaceHolder": null,
"ReadOnly": false,
"Visible": false,
"IsActive": true,
"Width": 0,
"ListOrderNo": 1,
"SourceDbType": 9,
"CultureName": "en",
"DataType": "string",
"SortIndex": 0,
"SortDirection": null,
"AllowSearch": true,
"AllowEditing": true,
"AllowAdding": true,
"ColumnCssClass": null,
"ColumnCssValue": null,
"BandName": null,
"ColumnFilterDto": {
"AllowFiltering": true,
"FilterOperations": null,
"SelectedFilterOperation": null,
"FilterValue": null
},
"ColumnHeaderDto": {
"AllowHeaderFiltering": true,
"AllowSearch": false,
"DataSource": null,
"DataSourceString": ""
},
"ColumnGroupingDto": {
"AllowGrouping": true,
"GroupIndex": null,
"AutoExpandGroup": false
},
"ColumnCustomizationDto": {
"Fixed": false,
"FixedPosition": "left",
"AllowReordering": true
},
"ColumnTotalSummaryDto": {
"SummaryType": null,
"ValueFormat": null,
"ShowInGroupFooter": false,
"AlignByColumn": false,
"DisplayFormat": null,
"ShowInColumn": null
},
"ColumnGroupSummaryDto": {
"SummaryType": null,
"ValueFormat": null,
"ShowInGroupFooter": false,
"AlignByColumn": false,
"DisplayFormat": null,
"ShowInColumn": null
},
"LookupDto": {
"DataSourceType": 0,
"ValueExpr": "Key",
"DisplayExpr": "Name",
"CascadeRelationField": null,
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": null,
"LookupQuery": null
},
"ValidationRuleDto": [],
"ColumnStylingDto": [],
"PermissionDto": {
"Deny": false,
"C": "App.Maintenance.MaintenanceInstructionGeneral.Create",
"R": "App.Maintenance.MaintenanceInstructionGeneral",
"U": "App.Maintenance.MaintenanceInstructionGeneral.Update",
"E": true,
"I": true
},
"CanRead": false,
"CanCreate": false,
"CanUpdate": false,
"CanExport": false,
"DefaultValue": null,
"DefaultValueType": 0,
"PivotSettingsDto": {
"IsPivot": true,
"Expanded": false,
"SortOrder": "asc",
"Area": "filter",
"Format": null,
"SummaryType": null,
"GroupInterval": "",
"WordWrapEnabled": false
},
"Alignment": null,
"Format": null,
"EditOrderNo": null,
"EditGroupOrderNo": null,
"EditorType2": "dxTextBox",
"ColSpan": 1,
"EditorOptions": null,
"GridBoxOptions": null,
"TagBoxOptions": null,
"ImageUploadOptions": null,
"EditorScript": null,
"LastModificationTime": null,
"LastModifierId": null,
"CreationTime": "0001-01-01T00:00:00",
"CreatorId": null,
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"EditType": null,
"ListFormCode": "App.Maintenance.MaintenanceInstructionGeneral",
"RoleId": null,
"UserId": null,
"ColumnJoinTableDto": {
"JoinType": null,
"TableName": null,
"JoinFieldName": null,
"BaseTableJoinFieldName": null,
"SelectFieldName": null,
"FieldNameAlias": null,
"JoinCondition2": "AND",
"JoinFieldName2": null,
"BaseTableJoinFieldName2_OrValue": null
},
"FieldName": "InstructionText",
"CaptionName": "App.Listform.ListformField.InstructionText",
"PlaceHolder": null,
"ReadOnly": false,
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 2,
"SourceDbType": 16,
"CultureName": "en",
"DataType": "string",
"SortIndex": 0,
"SortDirection": null,
"AllowSearch": true,
"AllowEditing": true,
"AllowAdding": true,
"ColumnCssClass": null,
"ColumnCssValue": null,
"BandName": null,
"ColumnFilterDto": {
"AllowFiltering": true,
"FilterOperations": null,
"SelectedFilterOperation": null,
"FilterValue": null
},
"ColumnHeaderDto": {
"AllowHeaderFiltering": true,
"AllowSearch": false,
"DataSource": null,
"DataSourceString": ""
},
"ColumnGroupingDto": {
"AllowGrouping": true,
"GroupIndex": null,
"AutoExpandGroup": false
},
"ColumnCustomizationDto": {
"Fixed": false,
"FixedPosition": "left",
"AllowReordering": true
},
"ColumnTotalSummaryDto": {
"SummaryType": null,
"ValueFormat": null,
"ShowInGroupFooter": false,
"AlignByColumn": false,
"DisplayFormat": null,
"ShowInColumn": null
},
"ColumnGroupSummaryDto": {
"SummaryType": null,
"ValueFormat": null,
"ShowInGroupFooter": false,
"AlignByColumn": false,
"DisplayFormat": null,
"ShowInColumn": null
},
"LookupDto": {
"DataSourceType": 0,
"ValueExpr": "Key",
"DisplayExpr": "Name",
"CascadeRelationField": null,
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": null,
"LookupQuery": null
},
"ValidationRuleDto": [],
"ColumnStylingDto": [],
"PermissionDto": {
"Deny": false,
"C": "App.Maintenance.MaintenanceInstructionGeneral.Create",
"R": "App.Maintenance.MaintenanceInstructionGeneral",
"U": "App.Maintenance.MaintenanceInstructionGeneral.Update",
"E": true,
"I": true
},
"CanRead": false,
"CanCreate": false,
"CanUpdate": false,
"CanExport": false,
"DefaultValue": null,
"DefaultValueType": 0,
"PivotSettingsDto": {
"IsPivot": true,
"Expanded": false,
"SortOrder": "asc",
"Area": "filter",
"Format": null,
"SummaryType": null,
"GroupInterval": "",
"WordWrapEnabled": false
},
"Alignment": "left",
"Format": null,
"EditOrderNo": 1,
"EditGroupOrderNo": 1,
"EditorType2": "dxHtmlEditor",
"ColSpan": 2,
"EditorOptions": "{\"height\":320}",
"GridBoxOptions": null,
"TagBoxOptions": null,
"ImageUploadOptions": null,
"EditorScript": null,
"LastModificationTime": null,
"LastModifierId": null,
"CreationTime": "0001-01-01T00:00:00",
"CreatorId": null,
"Id": "00000000-0000-0000-0000-000000000000"
}
],
"IsDeletedField": true,
"IsCreatedField": true,
"InsertedRecords": {
"LanguageKeys": [
"App.Maintenance.MaintenanceInstructionGeneral",
"App.Maintenance.MaintenanceInstructionGeneral.Title",
"App.Maintenance.MaintenanceInstructionGeneral.Desc",
"App.Listform.ListformField.InstructionText"
],
"PermissionGroupNames": [],
"PermissionNames": [
"App.Maintenance.MaintenanceInstructionGeneral",
"App.Maintenance.MaintenanceInstructionGeneral.Create",
"App.Maintenance.MaintenanceInstructionGeneral.Update",
"App.Maintenance.MaintenanceInstructionGeneral.Delete",
"App.Maintenance.MaintenanceInstructionGeneral.Export",
"App.Maintenance.MaintenanceInstructionGeneral.Import",
"App.Maintenance.MaintenanceInstructionGeneral.Note"
],
"MenuCodes": [],
"DataSourceCodes": [],
"ModuleIds": []
}
}

File diff suppressed because it is too large Load diff