# Üretim (`App.Production`) > Menünün altındaki her dal bu dosyada bir bölümdür (`module-doc:section`); dosya ve bölümler ilk deploy'da otomatik açılır. `module-doc:todo` işaretli alt bölümleri modülü üreten kişi ya da AI doldurur (`lowcode.instructions.md` §0.13); MCP ile üretimde talep bu bölümler doldurulmadan Testing'e alınamaz. "Ek — Ekran envanteri" bölümü wizard dosyalarından üretilir, elle düzenlenmez. ## Tanımlamalar (`App.Production.Definitions`) ### 1. Amaç ve kapsam Üretimin ana verisi: iş merkezleri (verimlilik, OEE, kurulum/temizlik süresi, saatlik maliyetler, ürün kapasitesi), iş merkezi etiketleri ve operasyonlar (iş merkezi, varsayılan süre, varyant kapsamı, talimatlar). Reçeteler (`App.Inventory.Bom`) bu tanımları kullanır. Kullanıcılar: üretim planlama ve maliyet ekipleri. Üretim emri ve iş emri bu dalın kapsamı dışındadır. ### 2. Analiz ve kararlar - Ekranlar ilk olarak `Envanter › Tanımlamalar` altında üretildi (talep "Inventory -> Tanımlamalar"; analiz `App.Inventory.md` §2). Talep "Production menüsü" ile ayrı modüle taşındı. - Taşıma tam modül taşımasıdır: ekran kodu `App.Inventory.*` → `App.Production.*`, tablo öneki `Inv_T_` → `Prd_T_`, izin grubu `App.Production`, modül `Production`; menü `Üretim › Tanımlamalar` (Envanter'in hemen sağı, kök sıra 7). - Haftalık çalışma saati ayardan (`%WeeklyWorkingTimeLimit%`) okunur, yoksa 40. - Operasyonun "Varyantlara Uygula" seçenekleri Envanter'in nitelik değerlerinden (`Inv_T_AttributeValue`) gelir; modüller arası bağ yalnızca lookup'tır. ### 3. Menü ve ekranlar `Üretim (App.Production) › Tanımlamalar (App.Production.Definitions)` altında sırasıyla: İş Merkezi Etiketleri, İş Merkezleri, Operasyonlar. Sekmeler (menüsüz alt formlar): - İş Merkezleri › Genel Bilgi (aynı satır), Ürün Kapasitesi - Operasyonlar › Açıklamalar ### 4. Veri modeli Tüm tablolar kiracı + tam audit + soft delete, anahtar `Id uniqueidentifier`. | Tablo | İçerik | | --- | --- | | `Prd_T_WorkCenterTag` | Etiket adı, renk | | `Prd_T_WorkCenter` | Ad, kod, etiketler (`|` Id), alternatif iş merkezleri (`|` Id), haftalık saat, verimlilik, OEE, kurulum/temizlik, saatlik maliyetler | | `Prd_T_WorkCenterCapacity` | İş merkezi × ürün (`Inv_T_Product`) kapasitesi | | `Prd_T_Operation` / `Prd_T_OperationInstruction` | Operasyon (iş merkezi, varsayılan süre, varyantlara uygula, maliyet/süre yöntemi) ve talimatları | ### 5. İş kuralları ve hesaplar - **Çoklu değer alanları** (Etiketler, Alternatif İş Merkezleri, Varyantlara Uygula; `dxTagBox`) `|` ile ayrılmış metin kolonunda saklanır. - **Operasyon maliyeti** reçetede hesaplanır: süre ÷ 60 × iş merkezi saatlik maliyeti (`App.Inventory.BomOverview`). - Reçete operasyonunda operasyon seçilince iş merkezi ve varsayılan süre operasyondan dolar (`App.Inventory.BomOperation`). ### 6. Yetki ve görünürlük İzin grubu `App.Production`, modül `Production`. Ekranların okuma yetkisi `App.Production.Definitions` altında; alt formların yetkisi bağlı oldukları listenin altındadır (Genel Bilgi ve Ürün Kapasitesi → `App.Production.WorkCenter`, Açıklamalar → `App.Production.Operation`). Her listede `.Create/.Update/.Delete/.Export/.Import/.Note`. Yetkiler hiçbir role otomatik verilmez; taşıma sonrası eski `App.Inventory.*` yetkileri silindiği için rollere yeniden verilmelidir. Tüm ekranlar kiracı filtrelidir. ### 7. Entegrasyonlar Dış entegrasyon yok. Envanter modülü iki yönde bağlıdır: Ürün Kapasitesi ürünü, Operasyon nitelik değerlerini Envanter'den okur; Reçete Operasyonları, Reçete Bileşenleri ve Reçeteye Genel Bakış iş merkezi ve operasyonları bu modülden okur. ### 8. Akış örneği 1. İş Merkezi Etiketleri'nde "Apre" etiketini aç. 2. İş Merkezleri'nde "ram makinası"nı etiketle, Genel Bilgi sekmesinde saatlik maliyetini gir. 3. Operasyonlar'da "Apre"yi ram makinası, 60 dk olarak tanımla; Açıklamalar sekmesine iş talimatını ekle. 4. Envanter › Reçeteler › Operasyonlar sekmesinde "Apre"yi seç; iş merkezi ve süre dolar, Genel Bakış maliyeti hesaplar. ### 9. Sık sorulanlar - **Menüde ekranlar görünmüyor?** Yetkiler `App.Production.*` adıyla yeniden açıldı; rol ekranından verilmelidir. - **Eski iş merkezi kayıtları nerede?** Veritabanı yeniden kurulmadıysa satırlar eski `Inv_T_*` tablolarında kalır; yeni tablolar `Prd_T_*`'dır. ### 10. Dosyalar ve geri alma - **Tablolar:** `sql/object/Prd_T_*.sql` + `postgres/object/Prd_T_*.sql` (5 tablo). - **Wizard'lar:** WorkCenterTag, WorkCenter, WorkCenterGeneral, WorkCenterCapacity, Operation, OperationInstruction (`.json`). - **Demo veri aynaları:** `data/App.Production.{WorkCenterTag,WorkCenter}.json`. - **Geri alma:** Wizard Manager'da ana ekranlar (WorkCenter, Operation) önce, alt formları sonra silinir; Envanter'in reçete ekranları bu tablolara lookup ile bağlıdır. Tablolar ancak açık onayla `dropTables` ile düşürülür. ## Ek — Ekran envanteri (otomatik) > Wizard dosyalarından üretilir; deploy, silme, tasarımcı kaydı ve import'ta yenilenir. Elle düzenleme bir sonraki yenilemede kaybolur. ### Tanımlamalar (`App.Production.Definitions`) #### İş Merkezi Etiketleri — `App.Production.WorkCenterTag` | Özellik | Değer | | --- | --- | | Wizard | `wizard/Production_WorkCenterTag.json` | | Yol | Liste (Wizard) | | Menü | `App.Production.Definitions` › `App.Production.WorkCenterTag` (sıra 1) | | Yetki | `App.Production.WorkCenterTag` + `.Create`, `.Update`, `.Delete`, `.Export`, `.Import`, `.Note` | | Açıklama | İş Merkezi Etiketleri — iş merkezlerini sınıflandırmak için kullanılan etiketler (boyahane, apre, montaj…). | | Geliştirme talebi | Inventory -> Tanımlamalar | | Kaynak | `Prd_T_WorkCenterTag` · filtre `"IsDeleted" = 'false'` | | Görünümler | Grid, Card, Pivot, Chart (açılış grid) | | Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup | | Kapsam | Kiracı | | Widget'lar | `App.Widget.Total`, `App.Widget.Active`, `App.Widget.Passive` | | Veri aynası | `data/App.Production.WorkCenterTag.json` | | Alan | Başlık | Editör | Zorunlu | Formda | Kaynak | | --- | --- | --- | --- | --- | --- | | `Name` | Ad | dxTextBox | ✓ | ✓ | | | `Color` | Renk | dxColorBox | | ✓ | | | `IsActive` | Aktif | dxCheckBox | ✓ | ✓ | | #### İş Merkezleri — `App.Production.WorkCenter` | Özellik | Değer | | --- | --- | | Wizard | `wizard/Production_WorkCenter.json` | | Yol | Liste (Wizard) | | Menü | `App.Production.Definitions` › `App.Production.WorkCenter` (sıra 2) | | Yetki | `App.Production.WorkCenter` + `.Create`, `.Update`, `.Delete`, `.Export`, `.Import`, `.Note` | | Açıklama | İş Merkezleri — operasyonların yapıldığı makine ya da istasyonlar (ör. ram makinası). | | Geliştirme talebi | Inventory -> Tanımlamalar | | Kaynak | `Prd_T_WorkCenter` · 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.Production.WorkCenterGeneral` (Id → Id), `App.Production.WorkCenterCapacity` (Id → WorkCenterId) | | Widget'lar | `App.Widget.Total`, `App.Widget.Active`, `App.Widget.Passive` | | Form varsayılanları | IsActive=true | | Veri aynası | `data/App.Production.WorkCenter.json` | | Alan | Başlık | Editör | Zorunlu | Formda | Kaynak | | --- | --- | --- | --- | --- | --- | | `Name` | İş Merkezi Adı | dxTextBox | ✓ | ✓ | | | `Code` | Kod | dxTextBox | | ✓ | | | `Tags` | Etiketler | dxTagBox | | ✓ | sorgu: Prd_T_WorkCenterTag | | `WeeklyWorkingHours` | Çalışma Saatleri (Haftalık) | dxNumberBox | ✓ | ✓ | | | `AlternativeWorkCenterIds` | Alternatif İş Merkezleri | dxTagBox | | ✓ | sorgu: Prd_T_WorkCenter | | `IsActive` | Aktif | dxCheckBox | ✓ | ✓ | | #### Operasyonlar — `App.Production.Operation` | Özellik | Değer | | --- | --- | | Wizard | `wizard/Production_Operation.json` | | Yol | Liste (Wizard) | | Menü | `App.Production.Definitions` › `App.Production.Operation` (sıra 3) | | Yetki | `App.Production.Operation` + `.Create`, `.Update`, `.Delete`, `.Export`, `.Import`, `.Note` | | Açıklama | Operasyonlar — bir iş merkezinde yapılan üretim adımları (ör. ram makinasında Apre). | | Geliştirme talebi | Inventory -> Tanımlamalar | | Kaynak | `Prd_T_Operation` · 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.Production.OperationInstruction` (Id → OperationId) | | Widget'lar | `App.Widget.Total`, `App.Widget.Active`, `App.Widget.Passive` | | Form varsayılanları | IsActive=true | | Alan | Başlık | Editör | Zorunlu | Formda | Kaynak | | --- | --- | --- | --- | --- | --- | | `Name` | Operasyon Adı | dxTextBox | ✓ | ✓ | | | `WorkCenterId` | İş Merkezi | dxSelectBox | ✓ | ✓ | sorgu: Prd_T_WorkCenter | | `DefaultDurationMin` | Varsayılan Süre (dk) | dxNumberBox | ✓ | ✓ | | | `ApplyOnVariants` | Varyantlara Uygula | dxTagBox | | ✓ | sorgu: Inv_T_AttributeValue | | `CostBasis` | Maliyete Dayalı | dxRadioGroup | ✓ | ✓ | liste: Actual, Theoretical | | `DurationMode` | Süre Hesaplama | dxRadioGroup | ✓ | ✓ | liste: Fixed, Computed | | `IsActive` | Aktif | dxCheckBox | ✓ | ✓ | | #### Genel Bilgi — `App.Production.WorkCenterGeneral` | Özellik | Değer | | --- | --- | | Wizard | `wizard/Production_WorkCenterGeneral.json` | | Yol | Liste (Wizard) | | Menü | Menüsüz (alt form) | | Yetki | `App.Production.WorkCenterGeneral` + `.Create`, `.Update`, `.Delete`, `.Export`, `.Import`, `.Note` | | Açıklama | İş Merkezi Genel Bilgi — iş merkezinin üretim ve maliyetlendirme bilgileri. | | Geliştirme talebi | Inventory -> Tanımlamalar | | Kaynak | `Prd_T_WorkCenter` · 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 | | --- | --- | --- | --- | --- | --- | | `TimeEfficiency` | Zaman Verimliliği (%) | dxNumberBox | ✓ | ✓ | | | `OeeTarget` | OEE Hedefi (%) | dxNumberBox | ✓ | ✓ | | | `SetupTimeMin` | Kurulum Zamanı (dk) | dxNumberBox | | ✓ | | | `CleanupTimeMin` | Temizlik Zamanı (dk) | dxNumberBox | | ✓ | | | `CostPerHour` | Saat Başına Maliyet (İş Merkezi) | dxNumberBox | | ✓ | | | `EmployeeCostPerHour` | Saat Başına Maliyet (Çalışan) | dxNumberBox | | ✓ | | | `Description` | Açıklama | dxTextArea | | ✓ | | #### Ürün Kapasitesi — `App.Production.WorkCenterCapacity` | Özellik | Değer | | --- | --- | | Wizard | `wizard/Production_WorkCenterCapacity.json` | | Yol | Liste (Wizard) | | Menü | Menüsüz (alt form) | | Yetki | `App.Production.WorkCenterCapacity` + `.Create`, `.Update`, `.Delete`, `.Export`, `.Import`, `.Note` | | Açıklama | İş Merkezi Ürün Kapasitesi — iş merkezinin bir çevrimde bir üründen kaç birim işleyebildiği. | | Geliştirme talebi | Inventory -> Tanımlamalar | | Kaynak | `Prd_T_WorkCenterCapacity` · 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 | | --- | --- | --- | --- | --- | --- | | `WorkCenterId` | İş Merkezi | dxSelectBox | | | sorgu: Prd_T_WorkCenter | | `ProductId` | Ürün | dxSelectBox | ✓ | ✓ | sorgu: Inv_T_Product | | `Capacity` | Kapasite | dxNumberBox | ✓ | ✓ | | | `UomId` | Birim | dxSelectBox | | ✓ | sorgu: Adm_T_Uom | | `SetupTimeMin` | Kurulum Zamanı (dk) | dxNumberBox | | ✓ | | | `CleanupTimeMin` | Temizlik Zamanı (dk) | dxNumberBox | | ✓ | | #### Açıklamalar — `App.Production.OperationInstruction` | Özellik | Değer | | --- | --- | | Wizard | `wizard/Production_OperationInstruction.json` | | Yol | Liste (Wizard) | | Menü | Menüsüz (alt form) | | Yetki | `App.Production.OperationInstruction` + `.Create`, `.Update`, `.Delete`, `.Export`, `.Import`, `.Note` | | Açıklama | Operasyon Açıklamaları — bir operasyonda operatöre gösterilen iş talimatları. | | Geliştirme talebi | Inventory -> Tanımlamalar | | Kaynak | `Prd_T_OperationInstruction` · 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 | | --- | --- | --- | --- | --- | --- | | `OperationId` | Operasyon | dxSelectBox | | | sorgu: Prd_T_Operation | | `Title` | Başlık | dxTextBox | ✓ | ✓ | | | `InstructionType` | Tip | dxSelectBox | ✓ | ✓ | liste: Text, Pdf, Image, Link | | `Reference` | Referans | dxTextBox | | ✓ | | | `Note` | Not | dxTextArea | | ✓ | | | `SortOrder` | Sıra | dxNumberBox | | ✓ | |