{ "ListFormCode": "App.DevRequests", "KeyFieldName": "Id", "GeneratedAt": "2026-10-06T21:01:53.4632621Z", "Order": 0, "Rows": [ { "Id": "5d11851e-5f00-4a0b-b5a3-b8211e56c8b5", "TenantId": null, "UserName": "system@sozsoft.com", "RequestDate": null, "Status": "Ready to Start", "Title": "Inventory -> Tanımlamalar", "Description": "

Ürünler : Ürün listesi ve detayı aşağıdaki örneklendirilmiştir. Ürünler Satış, Masraflar, Satınalma olarak 3 seçeneği var. Satış seçerse sadece Satış siparişlerinde görünür. Satınalma seçerse Satınalınabilir anlamına gelir. Ürün Türü Mal veya Hizmet olabilir. Envanter Takibi yapılıp yapılmayacağı seçilebilir. Eğer takip edilecekse Seri No, Lot Numarası veya Miktara göre seklinden seçilecek.


Nitelikler ve Varyantlar seçeneğinde yazılabilecek değerler Nitelik olarak tanımlanmalı. İçerisindeki değerleri de tanımlanabilir. Nitelik seçilip değerleri birden fazla şekilde yapılabilir. Eğer nitelikli bir ürün tanımlanırsa o varyantlı ürün listeler de seçilecektir.


Satınalma kısmında o ürünü hangi tedarikçiden hangi bedele aldığımızı belirtiyoruz. Ürün ve reçetede kullanılan Birim sütunun Adm_T_Uom tablosu ile ilişkili olmalı. Adm_T_Uom tablosundaki Id bilgisi nvarchar(64)



Ürün listesinde ürün adı, resmi, Satış, Masraflar ve Satınalma sütunlarından oluşmalı. Ayrıca yukarıdaki Ürün lisesindeki sütunlar olabilir. Diğer bilgiler Ürün listesindeki Detay ksımında Tablar şeklinde resimdeki gibi görüntülenmeli. App.Definitions.Contact gibi olabilir.



Nitelikler kısmı Nitelik kısmında seçilmeli ve Değerler birden fazla seçebilecek bir sütundan oluşmalı.




Reçeteler : Ürünlerin hammadde ve yarı mamülerin ve tüketim miktarlarının belirlendiği kısımdır. Ayrıca tanımlanan operasyonların tanımlandığı listedir. Hangi bileşenlerin hangi operasyon ile tüketildiği belirlenecektir. Ürün bazında da reçete yazılabilir. Her bir ürünün Varyantı bazında da reçete yazılabilri. Bom türü eklenmeyecek


İş Merkezi tanımlamaları : Inventory -> Tanımlamalar menüsünde yer alacaktır.İş Merkezi lsitesinde iş merkezi adı, etiketler, çalışma saatleri (Weekly working time limit (h) ile setting kısmından alınabilir.)İş Merkezi lsitesinde iş merkezi adı, etiketler, çalışma saatleri (Weekly working time limit (h) ile setting kısmından alınabilir.) İş merkezi lsitesinin detayında Genel Bİlgi, Ürün kapasitesi bilgilerini tab olarak göstermeli


Operasyonlar : Inventory -> Tanımlamalar menüsünde yer alacaktır.Operasyon Listesinde Operasyon Adı, İş Merkezi Adı, Varsayılan Süre sütunlarından oluşmalı. Detay butonu ile Açıklamalar listesinde yer almalı



Eğer nitelikli bir ürün tanımlanırsa o zaman Varyantlı liste oluşur ve tüm sistem varyantlı seçeneker çalışır. Eğer nitelik tanımlamazsa ana ürün seçilecektir.

Ürün reçetesine genel bakış raporu bu ERP ssitemlerdeki BOM ile aynı. Reçetelerin malzemelerinde recursive şekilde iç içe kullanılan diğer malzemeler ve miktarların hesaplanması gerekiyor. Bu ksıım Tree Layout olarak sunulmalı.




", "DueDate": "2026-10-06T21:02:00", "Tags": "IN", "Assignees": "system@sozsoft.com", "Priority": "5", "Completed": false, "SortOrder": 0, "Timesheets": "[{\"id\":\"09379560-7e9f-fa43-dfd3-3a2429dc2afe\",\"date\":\"2026-10-07\",\"userName\":\"system@sozsoft.com\",\"description\":\"Talep analiz edildi\",\"duration\":0.0167}]", "SubTasks": null, "Analysis": "

1. Amaç

\n

Envanter ve üretim modülünün ana verisini kurmak: ürün kartı (satış/masraf/satınalma bayrakları, tür, envanter takibi, nitelik–varyant, tedarikçi fiyatları), ölçü birimi bağlı reçeteler (bileşen + operasyon, ürün ya da varyant bazında), iş merkezleri, operasyonlar ve çok seviyeli reçete patlatma raporu. Kullanıcı: stok, satınalma ve üretim planlama ekipleri.

\n\n

2. Görsel analizi

\n\n\n

3. Çözüm yolu

\n

Tüm tanım ve kart ekranları Wizard List + alt formlar (Contact kartındaki gibi; tek kaydı düzenleyen sekmeler aynı tabloya bağlı Form alt formu). Varyant listesi ve reçete patlatma raporu Query kaynaklı Wizard List (SelectCommandType: 4): varyantlar nitelik satırlarından kartezyen üretilir, rapor özyinelemeli CTE ile çok seviyeli patlatılır ve Tree görünümünde sunulur. Kalıcı varyant tablosu ve SP gerekmez; tüm adımlar create_table + deploy_wizard ile yapılır.

\n\n

4. Menü yeri

\n

Envanter › Tanımlamalar › {Ekran}

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
SeviyeKodAd (TR / EN)İkonDurum
KökApp.InventoryEnvanter / InventoryFcPackageYeni
AraApp.Inventory.DefinitionsTanımlamalar / DefinitionsFcSettingsYeni
EkranApp.Inventory.ProductCategoryÜrün Kategorileri / Product CategoriesFcFolderYeni
EkranApp.Inventory.AttributeNitelikler / AttributesFcListYeni
EkranApp.Inventory.WorkCenterTagİş Merkezi Etiketleri / Work Center TagsFcBookmarkYeni
EkranApp.Inventory.WorkCenterİş Merkezleri / Work CentersFcFactoryYeni
EkranApp.Inventory.OperationOperasyonlar / OperationsFcProcessYeni
EkranApp.Inventory.ProductÜrünler / ProductsFcShopYeni
EkranApp.Inventory.ProductVariantÜrün Varyantları / Product VariantsFcGridYeni
EkranApp.Inventory.BomReçeteler / Bills of MaterialsFcDocumentYeni
EkranApp.Inventory.BomOverviewReçeteye Genel Bakış / BoM OverviewFcTreeStructureYeni
\n

ModuleId: Inventory · İzin grubu: App.Inventory (Yeni) · Route: /admin/list/{ListFormCode}. Kök veya Tanımlamalar dalı menü seed'inde aynı adla varsa deploy var olana bağlar.

\n

Yetki: App.Inventory › App.Inventory.Definitions (Yeni) › {ListFormCode}; alt formlar kendi listelerinin altında (ör. … › App.Inventory.Product › App.Inventory.ProductSupplier).

\n\n

5. Veri modeli

\n

Tümü kiracı (TenantId) + audit + soft delete (IsDeleted) kolonlu, anahtar Id uniqueidentifier. Birim kolonları UomId nvarchar(64) → Adm_T_Uom.Id; tedarikçi Adm_T_Contact; para birimi Sas_H_Currency.

\n

Inv_T_ProductCategory — Tanım tablosu: Evet (görselde Kategori seçimi). Name nvarchar(128) zorunlu, ParentId uniqueidentifier null (→ kendisi), IsActive bit NOT NULL DEFAULT 1.

\n

Inv_T_Attribute — Tanım tablosu: Evet (talep: \"Nitelik olarak tanımlanmalı\"). Name nvarchar(128) zorunlu, DisplayType nvarchar(16) zorunlu (Radio/Pills/Select/Color/Multi/Image, varsayılan Radio), VariantCreation nvarchar(16) zorunlu (Always/Dynamic/Never, varsayılan Always), IsActive bit.

\n

Inv_T_AttributeValue — Tanım tablosu: Evet. AttributeId uniqueidentifier zorunlu, Name nvarchar(128) zorunlu, IsCustom bit (Serbest metin) DEFAULT 0, ExtraPrice decimal(18,2) DEFAULT 0, ColorCode nvarchar(16) null, SortOrder int, IsActive bit.

\n

Inv_T_WorkCenterTag — Tanım: Evet. Name nvarchar(64) zorunlu, Color nvarchar(16), IsActive bit.

\n

Inv_T_WorkCenter — Tanım: Evet (operasyon ve reçetede lookup kaynağı). Name nvarchar(128) zorunlu, Code nvarchar(32), Tags nvarchar(1000) (dxTagBox, | ayrımlı Inv_T_WorkCenterTag Id), AlternativeWorkCenterIds nvarchar(2000) (dxTagBox), WeeklyWorkingHours decimal(5,2) zorunlu, TimeEfficiency decimal(5,2) DEFAULT 100, OeeTarget decimal(5,2) DEFAULT 90, SetupTimeMin decimal(9,2) DEFAULT 0, CleanupTimeMin decimal(9,2) DEFAULT 0, CostPerHour decimal(18,2) DEFAULT 0, EmployeeCostPerHour decimal(18,2) DEFAULT 0, Description nvarchar(MAX), IsActive bit.

\n

Inv_T_WorkCenterCapacity — Tanım: Hayır. WorkCenterId zorunlu, ProductId uniqueidentifier zorunlu, UomId nvarchar(64), Capacity decimal(18,4) zorunlu, SetupTimeMin decimal(9,2), CleanupTimeMin decimal(9,2).

\n

Inv_T_Operation — Tanım: Evet (reçete operasyonlarının kaynağı). Name nvarchar(128) zorunlu, WorkCenterId zorunlu, ApplyOnVariants nvarchar(4000) (dxTagBox, AttributeValue Id), CostBasis nvarchar(16) (Actual/Theoretical, varsayılan Actual), DurationMode nvarchar(16) (Fixed/Computed, varsayılan Fixed), DefaultDurationMin decimal(9,2) DEFAULT 60, IsActive bit.

\n

Inv_T_OperationInstruction — Tanım: Hayır. OperationId zorunlu, Title nvarchar(256) zorunlu, InstructionType nvarchar(16) (Text/Pdf/Image/Link), Reference nvarchar(1000), Note nvarchar(MAX), SortOrder int.

\n

Inv_T_Product — Tanım: Evet (tüm modüllerin ürün kaynağı). Name nvarchar(256) zorunlu, Image nvarchar(MAX) (dxImageUpload), IsFavorite bit DEFAULT 0, CanBeSold bit DEFAULT 1, CanBeExpensed bit DEFAULT 0, CanBePurchased bit DEFAULT 1, ProductType nvarchar(16) zorunlu (Wares/Service, varsayılan Wares), TrackInventory bit DEFAULT 0, TrackingMethod nvarchar(16) null (Serial/Lot/Quantity), InternalReference nvarchar(64), Barcode nvarchar(64), GtipCode nvarchar(32), CategoryId uniqueidentifier, UomId nvarchar(64) zorunlu, PurchaseUomId nvarchar(64), SalesPrice decimal(18,4) DEFAULT 0, Cost decimal(18,4) DEFAULT 0, SalesTaxRate decimal(5,2) DEFAULT 20, PurchaseTaxRate decimal(5,2) DEFAULT 20, InternalNotes nvarchar(MAX), ResponsibleUserId uniqueidentifier (→ AbpUsers), Weight decimal(18,4), Volume decimal(18,4), OriginCountryId (→ Sas_H_Country), LotValuation bit DEFAULT 0, CustomLotSerial nvarchar(64), ReceiptNote / DeliveryNote / InternalTransferNote nvarchar(MAX), PurchaseControlPolicy nvarchar(16) (Ordered/Received, varsayılan Received), PurchaseDescription nvarchar(MAX), IncomeAccount nvarchar(64), ExpenseAccount nvarchar(64), IsActive bit.

\n

Inv_T_ProductAttributeLine — Tanım: Hayır. ProductId zorunlu, AttributeId zorunlu, ValueIds nvarchar(4000) zorunlu (dxTagBox, | ayrımlı AttributeValue Id; seçili niteliğe göre süzülür). Benzersizlik: (ProductId, AttributeId).

\n

Inv_T_ProductSupplier — Tanım: Hayır. ProductId zorunlu, ContactId zorunlu (→ Adm_T_Contact), MinQuantity decimal(18,4) DEFAULT 1, UomId nvarchar(64), Price decimal(18,4) zorunlu, CurrencyId (→ Sas_H_Currency), LeadTimeDays int DEFAULT 0, VariantKey nvarchar(450) null.

\n

Inv_T_Bom — Tanım: Evet (bileşen olarak alt reçete aranır). ProductId zorunlu, VariantKey nvarchar(450) null (boşsa tüm varyantlar), Quantity decimal(18,4) DEFAULT 1 zorunlu, UomId nvarchar(64) zorunlu, Reference nvarchar(64), ReadyToProduce nvarchar(16) (AllAvailable/FirstOperation), FlexibleConsumption nvarchar(16) (Allowed/Warning/Blocked, varsayılan Warning), ProductionLeadDays int DEFAULT 0, PreparationDays int DEFAULT 0, BatchSize decimal(18,4) null, IsActive bit. BoM Türü kolonu açılmaz (talep).

\n

Inv_T_BomComponent — Tanım: Hayır. BomId zorunlu, ProductId zorunlu, VariantKey nvarchar(450) null, Quantity decimal(18,4) zorunlu, UomId nvarchar(64) zorunlu, BomOperationId uniqueidentifier null (Operasyonda Tüketilenler), SortOrder int.

\n

Inv_T_BomOperation — Tanım: Hayır. BomId zorunlu, OperationId zorunlu, WorkCenterId zorunlu (operasyondan dolar), DurationMin decimal(9,2) zorunlu, SortOrder int.

\n

Varyant anahtarı: varyant kalıcı tabloda tutulmaz. VariantKey = ürünün nitelik satırlarındaki seçili değer Id'lerinin sıralı | birleşimi; aynı kombinasyon her zaman aynı anahtarı üretir. Query kaynakları (T‑SQL):

\n\n\n

6. Alt form ağacı

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
SekmeHedef ListFormCodeTabTypeMenüİlişkiEkle / Düzenle / SilYetki yolu
Nitelik DeğerleriApp.Inventory.AttributeValueListMenüsüzId → AttributeId✓ / ✓ / ✓… › Attribute › AttributeValue
İş Merkezi › Genel BilgiApp.Inventory.WorkCenterGeneral (Inv_T_WorkCenter)FormMenüsüzId → Id✓ / ✓ / –… › WorkCenter › WorkCenterGeneral
İş Merkezi › Ürün KapasitesiApp.Inventory.WorkCenterCapacityListMenüsüzId → WorkCenterId✓ / ✓ / ✓… › WorkCenter › WorkCenterCapacity
Operasyon › AçıklamalarApp.Inventory.OperationInstructionListMenüsüzId → OperationId✓ / ✓ / ✓… › Operation › OperationInstruction
Ürün › Genel BilgiApp.Inventory.ProductGeneral (Inv_T_Product)FormMenüsüzId → Id✓ / ✓ / –… › Product › ProductGeneral
Ürün › Nitelik & VaryantlarApp.Inventory.ProductAttributeLineListMenüsüzId → ProductId✓ / ✓ / ✓… › Product › ProductAttributeLine
Ürün › VaryantlarApp.Inventory.ProductVariantListMenülüId → ProductId– / – / –kendi dalı
Ürün › SatınalmaApp.Inventory.ProductSupplierListMenüsüzId → ProductId✓ / ✓ / ✓… › Product › ProductSupplier
Ürün › StokApp.Inventory.ProductStock (Inv_T_Product)FormMenüsüzId → Id✓ / ✓ / –… › Product › ProductStock
Ürün › MuhasebeApp.Inventory.ProductAccounting (Inv_T_Product)FormMenüsüzId → Id✓ / ✓ / –… › Product › ProductAccounting
Ürün › ReçetelerApp.Inventory.BomListMenülüId → ProductId✓ / ✓ / ✓kendi dalı
Reçete › BileşenlerApp.Inventory.BomComponentListMenüsüzId → BomId✓ / ✓ / ✓… › Bom › BomComponent
Reçete › OperasyonlarApp.Inventory.BomOperationListMenüsüzId → BomId✓ / ✓ / ✓… › Bom › BomOperation
Reçete › DiğerApp.Inventory.BomOther (Inv_T_Bom)FormMenüsüzId → Id✓ / ✓ / –… › Bom › BomOther
Reçete › Genel BakışApp.Inventory.BomOverviewListMenülüId → BomId– / – / –kendi dalı
\n\n

7. Etkilenen kısımlar

\n\n\n

8. Görünümler ve davranış

\n\n\n

9. Kararlar

\n\n\n

10. Üretim planı

\n
    \n
  1. create_table: Inv_T_ProductCategory
  2. \n
  3. create_table: Inv_T_Attribute
  4. \n
  5. create_table: Inv_T_AttributeValue
  6. \n
  7. create_table: Inv_T_WorkCenterTag
  8. \n
  9. create_table: Inv_T_WorkCenter
  10. \n
  11. create_table: Inv_T_WorkCenterCapacity
  12. \n
  13. create_table: Inv_T_Operation
  14. \n
  15. create_table: Inv_T_OperationInstruction
  16. \n
  17. create_table: Inv_T_Product
  18. \n
  19. create_table: Inv_T_ProductAttributeLine
  20. \n
  21. create_table: Inv_T_ProductSupplier
  22. \n
  23. create_table: Inv_T_Bom
  24. \n
  25. create_table: Inv_T_BomComponent
  26. \n
  27. create_table: Inv_T_BomOperation
  28. \n
  29. deploy_wizard: ProductCategory.json
  30. \n
  31. deploy_wizard: AttributeValue.json
  32. \n
  33. deploy_wizard: Attribute.json
  34. \n
  35. deploy_wizard: WorkCenterTag.json
  36. \n
  37. deploy_wizard: WorkCenterGeneral.json
  38. \n
  39. deploy_wizard: WorkCenterCapacity.json
  40. \n
  41. deploy_wizard: WorkCenter.json
  42. \n
  43. deploy_wizard: OperationInstruction.json
  44. \n
  45. deploy_wizard: Operation.json
  46. \n
  47. deploy_wizard: ProductVariant.json
  48. \n
  49. deploy_wizard: BomComponent.json
  50. \n
  51. deploy_wizard: BomOperation.json
  52. \n
  53. deploy_wizard: BomOther.json
  54. \n
  55. deploy_wizard: BomOverview.json
  56. \n
  57. deploy_wizard: Bom.json
  58. \n
  59. deploy_wizard: ProductGeneral.json
  60. \n
  61. deploy_wizard: ProductAttributeLine.json
  62. \n
  63. deploy_wizard: ProductSupplier.json
  64. \n
  65. deploy_wizard: ProductStock.json
  66. \n
  67. deploy_wizard: ProductAccounting.json
  68. \n
  69. deploy_wizard: Product.json
  70. \n
\n\n

11. Üretime hazır

\n

Evet

" } ] }