{ "ListFormCode": "App.DevRequests", "KeyFieldName": "Id", "GeneratedAt": "2026-10-06T21:01:13.15342Z", "Order": 0, "Rows": [ { "Id": "53294e77-a4fb-45e4-a80e-acf07b5d75be", "TenantId": null, "UserName": "system@sozsoft.com", "RequestDate": null, "Status": "Ready to Start", "Title": "Satınalma -> Malzeme Talepleri", "Description": "
Malzeme Talepleri : Satınalma yapılması için departmantların iç ve dış olmak üzere talep ettikleri ürünlerin kaydıdır. Talep eden, Talep Eden Departman, Mal Alımı olduğu zaman konulacak Depo ve Konum bilgisi ve Talep Tarihi bilgilerinden sonra Ürün ve talep edilen miktar bilgisi girilmeli. Ürün tanımında yer alan Birim bilgisi yine sistemle entegre şekilde gelmektedir. Termin Tarihi ürünün ne zaman ihtiyaç olduğu ve Talep Nedeni olarak ne amaçla istediği belirtilmelidir. Yine bu kaydın üst kısmında Taslak, Departman Onayı, Satınalma Onayı, Onaylandı, İşlemde, Tamamlandı gibi durumları da onay mekanizması Workflow gibi bir yöntemle yönetmeliyiz. Talepten sonra hemen talep edenin Departman Onaycısı onaylayacak bir liste üzerinden görmeli ve onaylamalı. Bu kişi Adm_T_Approver entity içerisindeki Onay Yeri : Satınalma ve Departman bazında gösterilecek) Sonrasında kayıt Satınalma departmanına düşmeli ondan sonra bu kayıt Satınalma Sorumlusu kabul etmeli ve Satınalma ile ilgili teklif toplama süreci başlamalı.
Taleplerim, Departman Onayı Bekleyenler, Satınalma Onayı Bekleyenler, Planlama Bekleyenler, Tüm Talepler listesinden oluşmalı.
Red Nedenleri : Bazı Satınalma talepleri hem departman onaycısı hemde satınalma tarafından reddedilebilir. Reddetme sebepleri aşağıadki gibidir. Bu liste Satınalma -> Tanımlamalar menüsüne yerleştirilmelidir.
Departmanların satınalınacak malzemeleri kayıt altına alması, talebin önce departman satınalma onaycısı, sonra satınalma birimi tarafından onaylanması ve onaylı talebin teklif toplama sürecine aktarılması. Kullanıcılar: talep eden personel, departman onaycıları, satınalma ekibi.
\n\nWizard List ekranları + WorkflowDto onay akışı (§10.7 onaylı talep kalıbı). Talep başlığı ve satırları iki tablo; satırlar menüsüz alt form (List sekmesi). Beş liste görünümü aynı başlık tablosuna bağlı ayrı ListForm'lardır, her biri sabit DefaultFilter ile. Departman onaycıları kayıt sonrası prosedürle (InsertAfterCommand/UpdateAfterCommand) Yönetim › Tanımlamalar › Onaycılar ekranından (Adm_T_Approver, ApprovalArea = 'Purchase', talebin departmanı, aktif satırlar) okunup gizli DeptApproverUserNames kolonuna | ile birleştirilmiş kullanıcı adları olarak yazılır; akışta @DeptApproverUserNames olarak kullanılır.
Satınalma › Malzeme Talepleri › Taleplerim / Departman Onayı Bekleyenler / Satınalma Onayı Bekleyenler / Planlama Bekleyenler / Tüm Talepler ve Satınalma › Tanımlamalar › Red Nedenleri
| Seviye | Kod | Ad (TR / EN) | İkon | Durum |
|---|---|---|---|---|
| Kök | App.Prc | Satınalma / Purchasing | — | Var |
| Ara | App.Prc.Definitions | Tanımlamalar / Definitions | — | Var |
| Ekran | App.Prc.RejectionReason | Red Nedenleri / Rejection Reasons | FcCancel | Yeni |
| Ara | App.Prc.MaterialRequests | Malzeme Talepleri / Material Requests | FcList | Yeni |
| Ekran | App.Prc.MyMaterialRequest | Taleplerim / My Requests | FcDocument | Yeni |
| Ekran | App.Prc.MaterialRequestDeptApproval | Departman Onayı Bekleyenler / Awaiting Department Approval | FcApproval | Yeni |
| Ekran | App.Prc.MaterialRequestPurchaseApproval | Satınalma Onayı Bekleyenler / Awaiting Purchasing Approval | FcApproval | Yeni |
| Ekran | App.Prc.MaterialRequestPlanning | Planlama Bekleyenler / Awaiting Planning | FcPlanner | Yeni |
| Ekran | App.Prc.MaterialRequest | Tüm Talepler / All Requests | FcList | Yeni |
ModuleId: Prc · İzin grubu: App.Prc · Route: /admin/list/{ListFormCode}
Yetki: App.Prc › App.Prc.Definitions (Var) › App.Prc.RejectionReason (Yeni); App.Prc › App.Prc.MaterialRequests (Yeni) › her ekran (Yeni) › App.Prc.MaterialRequest › App.Prc.MaterialRequestLine (alt form).
\n\nTümü yeni, tenant + audit + soft delete.
\nPrc_T_RejectionReason — Tanım tablosu: Evet (red işleminde seçilir). Kolonlar: Name nvarchar(128) ✓, IsActive bit ✓ DEFAULT 1.
\nPrc_T_MaterialRequest — Tanım tablosu: Hayır (hareket kaydı).
\n| Kolon | Tip | Zorunlu | Not |
|---|---|---|---|
| RequestNo | nvarchar(32) | ✓ | SRO/00001, InsertBefore ile kiracı içinde sıralı |
| BranchId | uniqueidentifier | ✓ | → Sas_T_Branch (Şirket) |
| RequesterUserId | uniqueidentifier | ✓ | → AbpUsers, varsayılan @USERID |
| DepartmentId | uniqueidentifier | ✓ | → Hr_T_Department, şubeye cascade; varsayılan kullanıcının DepartmentId |
| WarehouseId | uniqueidentifier | → Inv_T_Warehouse, şubeye cascade | |
| LocationId | uniqueidentifier | → Inv_T_Location, depoya cascade | |
| RequestDate | datetime2 | ✓ | varsayılan @NOW |
| Description | nvarchar(MAX) | Genel Açıklama (dxTextArea) | |
| Status | nvarchar(32) | ✓ | Draft / DeptApproval / PurchaseApproval / Approved / InProgress / PartiallyDone / Done / Rejected; DEFAULT 'Draft' |
| DeptApproverUserNames | nvarchar(512) | Prosedür Adm_T_Approver'dan doldurur; formda \"Departman Onaycıları\" (salt okunur) | |
| ApproverId / ApprovalDate / ApprovalNote | uniqueidentifier / datetime2 / nvarchar(MAX) | Akışın son adım alanları | |
| DeptApprovedById / DeptApprovalDate / DeptApprovalNote | uniqueidentifier / datetime2 / nvarchar(MAX) | Departman adımı kopyası (prosedür) | |
| PurchaseApprovedById / PurchaseApprovalDate / PurchaseApprovalNote | uniqueidentifier / datetime2 / nvarchar(MAX) | Satınalma adımı kopyası (prosedür) | |
| RejectionReasonId | uniqueidentifier | → Prc_T_RejectionReason |
Prc_T_MaterialRequestLine — Tanım tablosu: Hayır.
\n| Kolon | Tip | Zorunlu | Not |
|---|---|---|---|
| MaterialRequestId | uniqueidentifier | ✓ | → Prc_T_MaterialRequest |
| ProductId | uniqueidentifier | ✓ | → Inv_T_Product (aktif) |
| Quantity | decimal(18,4) | ✓ | > 0 |
| UomId | nvarchar(64) | ✓ | → Adm_T_Uom; ürün seçilince üründen dolar |
| FulfillmentType | nvarchar(16) | ✓ | Purchase / Stock (Satınalma / Stoktan), DEFAULT 'Purchase' |
| DueDate | date | Termin Tarihi | |
| RequestReason | nvarchar(512) | Talep Nedeni | |
| PurchaserUserId | uniqueidentifier | Satınalma Sorumlusu → AbpUsers |
Var olan, yalnız okunur: Adm_T_Approver (onaycı kaynağı), Hr_T_Department, Inv_T_Warehouse, Inv_T_Location, Inv_T_Product, Adm_T_Uom.
| Sekme | Hedef | TabType | Menü | İlişki | Ekle / Düzenle / Sil | Yetki yolu |
|---|---|---|---|---|---|---|
| Talep Satırları | App.Prc.MaterialRequestLine | List | Menüsüz | Id → MaterialRequestId | ✓ / ✓ / ✓ | App.Prc › App.Prc.MaterialRequests › App.Prc.MaterialRequest › App.Prc.MaterialRequestLine |
Beş listenin hepsi aynı alt formu taşır. Onay / Red Bilgileri ana formda salt okunur ikinci grup.
\n\nPrc_SP_MaterialRequestAfterSave: talep no, onaycıları Adm_T_Approver'dan doldurma, durum ve adım kopyaları), 7 yeni ekran (Red Nedenleri, 5 liste, satır alt formu).RequesterUserId = @USERID; Departman Onayı Bekleyenler Status = 'DeptApproval' + ApprovalIsFilterUserName; Satınalma Onayı Bekleyenler Status = 'PurchaseApproval'; Planlama Bekleyenler Status IN ('Approved','InProgress','PartiallyDone'); Tüm Talepler filtresiz.@DeptApproverUserNames) → Approval \"Satınalma Onayı\" (rol Satınalma) → Inform talep sahibi → End \"Onaylandı\"; her ret → Inform → End \"Reddedildi\". ApprovalIsResetWorkflow: true.Prc_T_, kod App.Prc.* — mevcut Satınalma ekranlarıyla aynı.App.Prc.MaterialRequests başlıktaki \"Satınalma -> Malzeme Talepleri\" yolundan; beş liste onun altında.Adm_T_Approver'dan (Onay Yeri = Satınalma, talebin departmanı); birden çok onaycıdan herhangi biri onaylayabilir.Satınalma rolündeki kullanıcılar.SRO/ + 5 haneli kiracı sırası.Evet
" } ] }