{ "ListFormCode": "App.DevRequests", "KeyFieldName": "Id", "GeneratedAt": "2026-10-10T22:03:01.2416337Z", "Order": 0, "Rows": [ { "Id": "4784f377-808b-424b-a7e5-13afd94034a3", "TenantId": null, "UserName": "system@sozsoft.com", "RequestDate": null, "Status": "Staging", "Title": "Satınalma -> Siparişler", "Description": "

Alım Teklif Listesi :


Alım Teklif Detayı:



Sözleşme Listesi :


Sözleşme Detayı:


Satınalma Sipariş Listesi:


Satınalma Sipariş Detayı:


", "DueDate": "2026-10-10T21:16:00", "Tags": "PO", "Assignees": "system@sozsoft.com", "Priority": "5", "Completed": true, "SortOrder": 11, "Timesheets": "[{\"id\":\"b090c5f3-7e78-e61b-9a1f-3a2439d72a93\",\"date\":\"2026-10-11\",\"userName\":\"system@sozsoft.com\",\"description\":\"Talep analiz edildi\",\"duration\":0.05},{\"id\":\"6e47873f-cb96-cdf1-a2f0-3a2439fcc685\",\"date\":\"2026-10-11\",\"userName\":\"system@sozsoft.com\",\"description\":\"Prc_T_PurchaseAgreement tablosu olu\\u015Fturuldu\",\"duration\":0.0167},{\"id\":\"792cbfed-054a-4599-dcea-3a2439fcd49c\",\"date\":\"2026-10-11\",\"userName\":\"system@sozsoft.com\",\"description\":\"Prc_T_PurchaseAgreementLine tablosu olu\\u015Fturuldu\",\"duration\":0.0167},{\"id\":\"89751be6-dc2c-f596-d83c-3a2439fcf5aa\",\"date\":\"2026-10-11\",\"userName\":\"system@sozsoft.com\",\"description\":\"Prc_T_PurchaseOrder tablosu olu\\u015Fturuldu\",\"duration\":0.0167},{\"id\":\"e2b18fa5-f434-94b9-f7bd-3a2439fd0699\",\"date\":\"2026-10-11\",\"userName\":\"system@sozsoft.com\",\"description\":\"Prc_T_PurchaseOrderLine tablosu olu\\u015Fturuldu\",\"duration\":0.0167},{\"id\":\"f27b1c6f-6091-cff2-9925-3a2439fd2844\",\"date\":\"2026-10-11\",\"userName\":\"system@sozsoft.com\",\"description\":\"Prc_V_PurchaseAgreementLine SQL nesnesi kaydedildi\",\"duration\":0.0167},{\"id\":\"6b57a538-2933-7e3c-e16f-3a2439fd47f2\",\"date\":\"2026-10-11\",\"userName\":\"system@sozsoft.com\",\"description\":\"Prc_V_PurchaseOrderAlternative SQL nesnesi kaydedildi\",\"duration\":0.0167},{\"id\":\"44272fab-8d19-8273-1ce6-3a2439fd6235\",\"date\":\"2026-10-11\",\"userName\":\"system@sozsoft.com\",\"description\":\"Prc_V_MaterialRequestImportable SQL nesnesi kaydedildi\",\"duration\":0.0167},{\"id\":\"7f1e130d-6366-efdf-e12f-3a2439fd8a75\",\"date\":\"2026-10-11\",\"userName\":\"system@sozsoft.com\",\"description\":\"Prc_P_PurchaseOrderRecalc SQL nesnesi kaydedildi\",\"duration\":0.0167},{\"id\":\"b8dc0103-cd1c-6100-3504-3a2439fdcf44\",\"date\":\"2026-10-11\",\"userName\":\"system@sozsoft.com\",\"description\":\"Prc_P_PurchaseOrderImportRequest SQL nesnesi kaydedildi\",\"duration\":0.0167},{\"id\":\"c963cd09-117a-aca1-8f14-3a2439fdfa15\",\"date\":\"2026-10-11\",\"userName\":\"system@sozsoft.com\",\"description\":\"Prc_P_PurchaseRfqFromAgreement SQL nesnesi kaydedildi\",\"duration\":0.0167},{\"id\":\"dc1cc0ba-682e-be1e-62a3-3a2439fe5213\",\"date\":\"2026-10-11\",\"userName\":\"system@sozsoft.com\",\"description\":\"Prc_P_PurchaseOrderSend SQL nesnesi kaydedildi\",\"duration\":0.0167},{\"id\":\"ae66d8da-94d2-fc81-5e6f-3a2439fe7f6e\",\"date\":\"2026-10-11\",\"userName\":\"system@sozsoft.com\",\"description\":\"Prc_P_PurchaseOrderSetStatus SQL nesnesi kaydedildi\",\"duration\":0.0167},{\"id\":\"628ac417-faea-78ef-d5dc-3a2439fea66f\",\"date\":\"2026-10-11\",\"userName\":\"system@sozsoft.com\",\"description\":\"Prc_P_PurchaseOrderAfterSave SQL nesnesi kaydedildi\",\"duration\":0.0167},{\"id\":\"ec552145-092b-5d87-c2ca-3a2439ff173b\",\"date\":\"2026-10-11\",\"userName\":\"system@sozsoft.com\",\"description\":\"Prc_PurchaseAgreementLine.json wizard\\u0027\\u0131 deploy edildi (0 demo sat\\u0131r)\",\"duration\":0.0167},{\"id\":\"34411293-5062-2d4d-f1ec-3a2439ffc2e0\",\"date\":\"2026-10-11\",\"userName\":\"system@sozsoft.com\",\"description\":\"Prc_PurchaseAgreement.json wizard\\u0027\\u0131 deploy edildi (0 demo sat\\u0131r)\",\"duration\":0.0167},{\"id\":\"83ff13cc-8a45-b9f7-16ab-3a243a004a28\",\"date\":\"2026-10-11\",\"userName\":\"system@sozsoft.com\",\"description\":\"Prc_PurchaseOrderLine.json wizard\\u0027\\u0131 deploy edildi (0 demo sat\\u0131r)\",\"duration\":0.0167},{\"id\":\"39bbdd49-aa1b-94b4-f74a-3a243a00a3cd\",\"date\":\"2026-10-11\",\"userName\":\"system@sozsoft.com\",\"description\":\"Prc_PurchaseOrderQuote.json wizard\\u0027\\u0131 deploy edildi (0 demo sat\\u0131r)\",\"duration\":0.0167},{\"id\":\"31f271a5-8a74-8ff1-41bb-3a243a010904\",\"date\":\"2026-10-11\",\"userName\":\"system@sozsoft.com\",\"description\":\"Prc_PurchaseOrderOther.json wizard\\u0027\\u0131 deploy edildi (0 demo sat\\u0131r)\",\"duration\":0.0167},{\"id\":\"e6c0871a-43af-9484-602e-3a243a0170f2\",\"date\":\"2026-10-11\",\"userName\":\"system@sozsoft.com\",\"description\":\"Prc_PurchaseOrderAlternative.json wizard\\u0027\\u0131 deploy edildi (0 demo sat\\u0131r)\",\"duration\":0.0167},{\"id\":\"2a002298-b9db-af6c-c8bb-3a243a029d1f\",\"date\":\"2026-10-11\",\"userName\":\"system@sozsoft.com\",\"description\":\"Prc_PurchaseRfq.json wizard\\u0027\\u0131 deploy edildi (0 demo sat\\u0131r)\",\"duration\":0.0167},{\"id\":\"bee0726e-b2e1-2a50-adce-3a243a035b30\",\"date\":\"2026-10-11\",\"userName\":\"system@sozsoft.com\",\"description\":\"Prc_PurchaseOrder.json wizard\\u0027\\u0131 deploy edildi (0 demo sat\\u0131r)\",\"duration\":0.0167},{\"id\":\"fc502ae7-243d-d183-7795-3a243a03ddfe\",\"date\":\"2026-10-11\",\"userName\":\"system@sozsoft.com\",\"description\":\"App.Prc mod\\u00FCl dok\\u00FCman\\u0131 kaydedildi\",\"duration\":0.0167},{\"id\":\"e1906058-b09e-5825-dc3d-3a243a03eb85\",\"date\":\"2026-10-11\",\"userName\":\"system@sozsoft.com\",\"description\":\"1 tamamlanm\\u0131\\u015F alt g\\u00F6rev eklendi\",\"duration\":0.0167},{\"id\":\"7aa93016-4507-a099-510e-3a243a0407e4\",\"date\":\"2026-10-11\",\"userName\":\"system@sozsoft.com\",\"description\":\"Analize \\u00FCretim notu eklendi\",\"duration\":0.0167}]", "SubTasks": "[{\"id\":\"4c741007-3ae1-6b6e-d678-3a243a03eb53\",\"title\":\"Yeniden \\u00FCretim (silinen dosyalar): 4 create_table, 3 g\\u00F6r\\u00FCn\\u00FCm, 6 yordam, 8 deploy_wizard, save_module_doc: App.Prc.Orders\",\"assignee\":\"system@sozsoft.com\",\"dueDate\":\"2026-10-11\",\"completed\":true}]", "Analysis": "

1. Amaç

\n

Satınalma ekibinin onaylanmış malzeme taleplerinden tedarikçilere teklif talebi (RFQ) açması, gelen teklifleri işlemesi, teklifi satınalma siparişine çevirmesi ve tedarikçiyle çerçeve sözleşme (kapsamlı sipariş) yönetmesi. Kullanıcılar satınalma personeli ve alıcılardır.

\n\n

2. Görsel analizi

\n\n\n

3. Çözüm yolu

\n

Wizard List ekranları + menüsüz alt formlar + SQL nesneleri (görünüm, saklı yordam) + Custom Endpoint komut butonları + DynamicReport şablonu + bildirim türü. Teklif talebi ve satınalma siparişi tek belgedir (aynı tablo, Status ile ayrılır); Teklif Talepleri tüm durumları, Satınalma Siparişleri yalnız siparişe dönmüşleri gösterir. Tümü çerçeve içidir.

\n\n

4. Menü yeri

\n

Satınalma › Siparişler › {Sözleşmeler, Teklif Talepleri, Satınalma Siparişleri}

\n\n\n\n\n\n\n\n
SeviyeKodAd (TR / EN)İkonDurum
KökApp.PrcSatınalma / Purchasing—Var
AraApp.Prc.OrdersSiparişler / OrdersFcShopYeni
EkranApp.Prc.PurchaseAgreementSözleşmeler / Purchase AgreementsFcRulesYeni
EkranApp.Prc.PurchaseRfqTeklif Talepleri / Requests for QuotationFcDocumentYeni
EkranApp.Prc.PurchaseOrderSatınalma Siparişleri / Purchase OrdersFcPaidYeni
\n

ModuleId Prc, izin grubu App.Prc, route /admin/list/{ListFormCode}. Sözleşmeler sipariş başlığının lookup kaynağı olduğu için üstte durur.

\n

Yetki: App.Prc (Var) › App.Prc.Orders (Yeni) › {PurchaseAgreement, PurchaseRfq, PurchaseOrder}; alt formlar taşındıkları listenin altında.

\n\n

5. Veri modeli

\n

Tüm tablolar kiracı + tam audit + soft delete. Var olan kaynaklar: Adm_T_Contact (tedarikçi, e-posta, Satınalma sekmesi varsayılanları), Inv_T_Product (PurchaseTaxRate, PurchaseDescription, satınalma birimi), Inv_T_ProductSupplier, Adm_T_Uom, Sas_H_Currency, Inv_T_OperationType (Tür = Alım), Prc_T_PaymentTerm, Prc_T_Incoterm, Prj_T_Project, Prc_T_MaterialRequest / Prc_T_MaterialRequestItem, AbpUsers.

\n\n

Prc_T_PurchaseAgreement — Tanım tablosu: Hayır (belge).

\n\n\n\n\n\n\n\n\n\n\n\n\n
KolonTipZorunluNot
AgreementNonvarchar(32)✓Numaratör PurchaseAgreement, BO00001
SupplierIduniqueidentifier✓Adm_T_Contact
BuyerUserIduniqueidentifier✓AbpUsers, varsayılan @USERID
AgreementTypenvarchar(16)✓Blanket (Kapsamlı Sipariş) / Tender (İhale); varsayılan Blanket
CurrencyIdnvarchar(8)✓Sas_H_Currency, varsayılan TRY
StartDate, EndDatedateGeçerlilik
Referencenvarchar(64)
OperationTypeIduniqueidentifierInv_T_OperationType (Alım)
Termsnvarchar(MAX)dxHtmlEditor
Statusnvarchar(16)✓Draft / Confirmed / Closed / Cancelled; varsayılan Draft
\n\n

Prc_T_PurchaseAgreementLine — Tanım tablosu: Hayır. AgreementId (FK, cascade, ✓), ProductId ✓, Description nvarchar(512), Quantity decimal(18,4) ✓, UomId nvarchar ✓, UnitPrice decimal(18,4) ✓. Sipariş Edildi görünümde (Prc_V_PurchaseAgreementLine) Satınalma Siparişi durumundaki kalemlerden (aynı sözleşme + ürün) toplanır.

\n\n

Prc_T_PurchaseOrder (teklif talebi + sipariş) — Tanım tablosu: Hayır.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
KolonTipZorunluNot
OrderNonvarchar(32)✓Numaratör PurchaseOrder, P00001
SupplierIduniqueidentifier✓Adm_T_Contact
SupplierReferencenvarchar(64)
AgreementIduniqueidentifierPrc_T_PurchaseAgreement (aynı tedarikçi, Confirmed)
MaterialRequestIduniqueidentifierAktarılacak malzeme talebi seçimi
CurrencyIdnvarchar(8)✓Tedarikçinin SupplierCurrency'sinden, yoksa TRY
OrderDeadlinedatetimeSipariş Zaman Sınırı
ExpectedArrivaldatetimeBeklenen Geliş
RequireConfirmationbit NOT NULL DEFAULT 0✓Onay İsteyin
OperationTypeIduniqueidentifierTeslim Alacak
ConfirmDatedatetimeOnaylama Tarihi (Siparişi Onayla yazar)
ArrivalDatedatetimeVarış (siparişte elle girilir)
SupplierResponsenvarchar(16)✓Waiting / Quoted / NotQuoted; varsayılan Waiting
QuoteDatedatetime
QuotedByUserIduniqueidentifierTeklifi Veren — AbpUsers
QuoteValidUntildateTeklif Geçerliliği
BuyerUserIduniqueidentifier✓Alıcı; tedarikçinin BuyerUserId'si, yoksa @USERID
SourceDocumentnvarchar(512)Kaynak; kalemlerin talep numaralarından SP yazar
ProjectIduniqueidentifierProje — Prj_T_Project (Diğer Bilgiler)
IncotermId / IncotermLocationuniqueidentifier / nvarchar(128)Tedarikçi varsayılanından
PaymentTermIduniqueidentifierTedarikçi varsayılanından
Termsnvarchar(MAX)Şart ve koşullar
UntaxedAmount, TaxAmount, TotalAmountdecimal(18,2) DEFAULT 0SP hesaplar, salt okunur
Statusnvarchar(16)✓Draft / Sent / Purchase / Cancelled; varsayılan Draft
LastSentDatedatetimeSon e-posta gönderimi
\n\n

Prc_T_PurchaseOrderLine — Tanım tablosu: Hayır. PurchaseOrderId (FK, cascade, ✓), ProductId ✓, Description nvarchar(512), Quantity decimal(18,4) ✓, UomId ✓, UnitPrice decimal(18,4) ✓, TaxRate decimal(5,2) ✓ (ürünün PurchaseTaxRate'i), Amount decimal(18,2) (Quantity × UnitPrice, SP), MaterialRequestItemId uniqueidentifier (Talep).

\n\n

Görünümler / yordamlar: Prc_V_PurchaseOrder (başlık + tedarikçi OTD oranı + geç bayrakları), Prc_V_PurchaseOrderLine (talep no), Prc_V_PurchaseOrderAlternative (Teklifler sekmesi), Prc_V_PurchaseAgreementLine (Sipariş Edildi), Prc_V_MaterialRequestImportable (aktarılabilir talepler); Prc_P_PurchaseOrderRecalc(@Id), Prc_P_PurchaseOrderSetStatus(@Id,@Action), Prc_P_PurchaseOrderSend(@Id), Prc_P_PurchaseOrderImportRequest(@Id), Prc_P_PurchaseAgreementSetStatus(@Id,@Action), Prc_P_PurchaseRfqFromAgreement(@AgreementId).

\n\n

6. Alt form ağacı

\n\n\n\n\n\n\n\n
SekmeHedef ListFormCodeTabTypeMenüİlişkiEkle / Düzenle / SilYetki yolu
Ürünler (Sözleşme)App.Prc.PurchaseAgreementLineListMenüsüzId → AgreementId✓ / ✓ / ✓… › PurchaseAgreement › PurchaseAgreementLine
Ürünler (Teklif & Sipariş)App.Prc.PurchaseOrderLineListMenüsüzId → PurchaseOrderId✓ / ✓ / ✓… › PurchaseRfq › PurchaseOrderLine
Tedarikçi Teklifi (yalnız Teklif)App.Prc.PurchaseOrderQuoteFormMenüsüzId → Id✓ / ✓ / –… › PurchaseRfq › PurchaseOrderQuote
Diğer BilgilerApp.Prc.PurchaseOrderOtherFormMenüsüzId → Id✓ / ✓ / –… › PurchaseRfq › PurchaseOrderOther
TekliflerApp.Prc.PurchaseOrderAlternativeListMenüsüzId → BaseOrderId (görünüm)– / – / –… › PurchaseRfq › PurchaseOrderAlternative
\n

Satınalma Siparişleri aynı alt formları (Tedarikçi Teklifi hariç) taşır. Teklif ve Sözleşme ekranlarında OpenDetailAfterInsert: true.

\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: Prc_T_PurchaseAgreement
  2. \n
  3. create_table: Prc_T_PurchaseAgreementLine
  4. \n
  5. create_table: Prc_T_PurchaseOrder
  6. \n
  7. create_table: Prc_T_PurchaseOrderLine
  8. \n
  9. save_sql_object: Prc_V_PurchaseAgreementLine
  10. \n
  11. save_sql_object: Prc_V_PurchaseOrderLine
  12. \n
  13. save_sql_object: Prc_V_PurchaseOrder
  14. \n
  15. save_sql_object: Prc_V_PurchaseOrderAlternative
  16. \n
  17. save_sql_object: Prc_V_MaterialRequestImportable
  18. \n
  19. save_sql_object: Prc_P_PurchaseOrderRecalc
  20. \n
  21. save_sql_object: Prc_P_PurchaseOrderSetStatus
  22. \n
  23. save_sql_object: Prc_P_PurchaseOrderSend
  24. \n
  25. save_sql_object: Prc_P_PurchaseOrderImportRequest
  26. \n
  27. save_sql_object: Prc_P_PurchaseAgreementSetStatus
  28. \n
  29. save_sql_object: Prc_P_PurchaseRfqFromAgreement
  30. \n
  31. generate_crud_endpoints / Custom Endpoint: durum, gönderim ve aktarım komutları
  32. \n
  33. insert_row: App.Definitions.Sequence — PurchaseOrder, PurchaseAgreement
  34. \n
  35. save_report_template: Prc_PurchaseOrderPrint
  36. \n
  37. bildirim türü/kuralı: Prc.RfqSent, Prc.PurchaseOrderSent
  38. \n
  39. deploy_wizard: Prc_PurchaseAgreementLine.json
  40. \n
  41. deploy_wizard: Prc_PurchaseAgreement.json
  42. \n
  43. deploy_wizard: Prc_PurchaseOrderLine.json
  44. \n
  45. deploy_wizard: Prc_PurchaseOrderQuote.json
  46. \n
  47. deploy_wizard: Prc_PurchaseOrderOther.json
  48. \n
  49. deploy_wizard: Prc_PurchaseOrderAlternative.json
  50. \n
  51. deploy_wizard: Prc_PurchaseRfq.json
  52. \n
  53. deploy_wizard: Prc_PurchaseOrder.json
  54. \n
  55. save_module_doc: App.Prc.Orders
  56. \n
\n\n

11. Üretime hazır

\n

Evet

MCP

\n

Üretilenler: tablolar Prc_T_PurchaseAgreement, Prc_T_PurchaseAgreementLine, Prc_T_PurchaseOrder, Prc_T_PurchaseOrderLine; görünümler Prc_V_PurchaseAgreementLine, Prc_V_PurchaseOrderAlternative, Prc_V_MaterialRequestImportable; yordamlar Prc_P_PurchaseOrder{AfterSave, Recalc, ImportRequest, SetStatus, Send}, Prc_P_PurchaseRfqFromAgreement; ekranlar Satınalma › Siparişler › Sözleşmeler / Teklif Talepleri / Satınalma Siparişleri ve 5 menüsüz sekme; diziler PurchaseOrder1 (P00001), PurchaseAgreement1 (BO00001); bildirim türleri Prc.RfqSent, Prc.PurchaseOrderSent; modül dokümanı App.Prc.Orders.

\n

Analizden sapmalar (platform kısıtı):

\n\n

Kontrol edilecek: ekran komutları (kalem kayıt/silme, AfterSave çağrıları) T-SQL yazıldı, PostgreSQL'de çalışmaz; Adm_T_Notification kolon adları varsayıldı; AgreementId cascade süzmesi.

\n

DB Migrate bekleyen wizard'lar: Prc_PurchaseAgreementLine, Prc_PurchaseAgreement, Prc_PurchaseOrderLine, Prc_PurchaseOrderQuote, Prc_PurchaseOrderOther, Prc_PurchaseOrderAlternative, Prc_PurchaseRfq, Prc_PurchaseOrder.

MCP

\n

Yeniden üretim (kullanıcı ilk üretimin dosyalarını sildi). Onaylı analiz ve ilk üretimin kararları aynen uygulandı; içerik ilk üretimle aynıdır.

\n

Yeniden yazılanlar: tablolar Prc_T_PurchaseAgreement, Prc_T_PurchaseAgreementLine, Prc_T_PurchaseOrder, Prc_T_PurchaseOrderLine; görünümler Prc_V_PurchaseAgreementLine, Prc_V_PurchaseOrderAlternative, Prc_V_MaterialRequestImportable; yordamlar Prc_P_PurchaseOrder{AfterSave, Recalc, ImportRequest, SetStatus, Send}, Prc_P_PurchaseRfqFromAgreement; 8 wizard; modül dokümanı App.Prc.Orders.

\n

Yeniden yazılmayanlar (veritabanında duruyordu): diziler PurchaseOrder1, PurchaseAgreement1; bildirim türleri Prc.RfqSent, Prc.PurchaseOrderSent.

\n

Sapmalar ve açık konular önceki MCP notundaki gibidir: İşlem alanı (buton yerine), e-postada PDF eki yok, Yazdır şablonu migrate sonrası eklenecek, Sözleşme kalemlerinde Sipariş Edildi kolonu yok, ortak sekme yetkileri Teklif Talepleri altında, demo veri yok; komutlar T-SQL.

\n

DB Migrate bekleyen wizard'lar: Prc_PurchaseAgreementLine, Prc_PurchaseAgreement, Prc_PurchaseOrderLine, Prc_PurchaseOrderQuote, Prc_PurchaseOrderOther, Prc_PurchaseOrderAlternative, Prc_PurchaseRfq, Prc_PurchaseOrder.

" } ] }