230 lines
13 KiB
Markdown
230 lines
13 KiB
Markdown
# Ü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 -->
|