sozsoft-platform/configs/seeds/docs/modules/Prd.md
2026-10-19 17:35:08 +03:00

230 lines
13 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Üretim (`Prd`)
> Menünün altındaki her dal bu dosyada bir bölümdür (`module-doc:section`); dosya ve bölümler ilk deploy'da otomatik açılır. `module-doc:todo` işaretli alt bölümleri modülü üreten kişi ya da AI doldurur (`lowcode.instructions.md` §0.13); MCP ile üretimde talep bu bölümler doldurulmadan Testing'e alınamaz. "Ek — Ekran envanteri" bölümü wizard dosyalarından üretilir, elle düzenlenmez.
<!-- module-doc:section Prd.Definitions -->
## Tanımlamalar (`Prd.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 (`Stk.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 `Stk.md` §2). Talep "Production menüsü" ile ayrı modüle taşındı.
- Taşıma tam modül taşımasıdır: ekran kodu `Stk.*` → `Prd.*`, tablo öneki `Stk_T_` → `Prd_T_`, izin grubu `Prd`, modül `Prd`; 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 (`Stk_T_AttributeValue`) gelir; modüller arası bağ yalnızca lookup'tır.
### 3. Menü ve ekranlar
`Üretim (Prd) › Tanımlamalar (Prd.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 (`Stk_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 (`Stk.BomOverview`).
- Reçete operasyonunda operasyon seçilince iş merkezi ve varsayılan süre operasyondan dolar (`Stk.BomOperation`).
### 6. Yetki ve görünürlük
İzin grubu `Prd`, modül `Prd`. Ekranların okuma yetkisi `Prd.Definitions` altında; alt formların yetkisi bağlı oldukları listenin altındadır (Genel Bilgi ve Ürün Kapasitesi → `Prd.WorkCenter`, Açıklamalar → `Prd.Operation`). Her listede `.Create/.Update/.Delete/.Export/.Import/.Note`. Yetkiler hiçbir role otomatik verilmez; taşıma sonrası eski `Stk.*` 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 `Prd.*` adıyla yeniden açıldı; rol ekranından verilmelidir.
- **Eski iş merkezi kayıtları nerede?** Veritabanı yeniden kurulmadıysa satırlar eski `Stk_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/Prd.{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.
<!-- module-doc:auto:begin -->
## Ek — Ekran envanteri (otomatik)
> Wizard dosyalarından üretilir; deploy, silme, tasarımcı kaydı ve import'ta yenilenir. Elle düzenleme bir sonraki yenilemede kaybolur.
### Tanımlamalar (`Prd.Definitions`)
#### İş Merkezi Etiketleri — `Prd.WorkCenterTag`
| Özellik | Değer |
| --- | --- |
| Wizard | `wizard/Prd_WorkCenterTag.json` |
| Yol | Liste (Wizard) |
| Menü | `Prd.Definitions` › `Prd.WorkCenterTag` (sıra 1) |
| Yetki | `Prd.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 | `Sas.Widget.Total`, `Sas.Widget.Active`, `Sas.Widget.Passive` |
| Veri aynası | `data/Prd.WorkCenterTag.json` |
| Alan | Başlık | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- |
| `Name` | Ad | dxTextBox | ✓ | ✓ | |
| `Color` | Renk | dxColorBox | | ✓ | |
| `IsActive` | Aktif | dxCheckBox | ✓ | ✓ | |
#### İş Merkezleri — `Prd.WorkCenter`
| Özellik | Değer |
| --- | --- |
| Wizard | `wizard/Prd_WorkCenter.json` |
| Yol | Liste (Wizard) |
| Menü | `Prd.Definitions` › `Prd.WorkCenter` (sıra 2) |
| Yetki | `Prd.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 | `Prd.WorkCenterGeneral` (Id → Id), `Prd.WorkCenterCapacity` (Id → WorkCenterId) |
| Widget'lar | `Sas.Widget.Total`, `Sas.Widget.Active`, `Sas.Widget.Passive` |
| Form varsayılanları | IsActive=true |
| Veri aynası | `data/Prd.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 — `Prd.Operation`
| Özellik | Değer |
| --- | --- |
| Wizard | `wizard/Prd_Operation.json` |
| Yol | Liste (Wizard) |
| Menü | `Prd.Definitions` › `Prd.Operation` (sıra 3) |
| Yetki | `Prd.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 | `Prd.OperationInstruction` (Id → OperationId) |
| Widget'lar | `Sas.Widget.Total`, `Sas.Widget.Active`, `Sas.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: Stk_T_AttributeValue |
| `CostBasis` | Maliyete Dayalı | dxRadioGroup | ✓ | ✓ | liste: Actual, Theoretical |
| `DurationMode` | Süre Hesaplama | dxRadioGroup | ✓ | ✓ | liste: Fixed, Computed |
| `IsActive` | Aktif | dxCheckBox | ✓ | ✓ | |
#### Genel Bilgi — `Prd.WorkCenterGeneral`
| Özellik | Değer |
| --- | --- |
| Wizard | `wizard/Prd_WorkCenterGeneral.json` |
| Yol | Liste (Wizard) |
| Menü | Menüsüz (alt form) |
| Yetki | `Prd.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 — `Prd.WorkCenterCapacity`
| Özellik | Değer |
| --- | --- |
| Wizard | `wizard/Prd_WorkCenterCapacity.json` |
| Yol | Liste (Wizard) |
| Menü | Menüsüz (alt form) |
| Yetki | `Prd.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: Stk_T_Product |
| `Capacity` | Kapasite | dxNumberBox | ✓ | ✓ | |
| `UomId` | Birim | dxSelectBox | | ✓ | sorgu: Adm_T_Uom |
| `SetupTimeMin` | Kurulum Zamanı (dk) | dxNumberBox | | ✓ | |
| `CleanupTimeMin` | Temizlik Zamanı (dk) | dxNumberBox | | ✓ | |
#### Açıklamalar — `Prd.OperationInstruction`
| Özellik | Değer |
| --- | --- |
| Wizard | `wizard/Prd_OperationInstruction.json` |
| Yol | Liste (Wizard) |
| Menü | Menüsüz (alt form) |
| Yetki | `Prd.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 | | ✓ | |
<!-- module-doc:auto:end -->