sozsoft-platform/configs/seeds/docs/modules/App.Prc.md
2026-10-13 00:43:05 +03:00

80 KiB
Raw Blame History

Satınalma (App.Prc)

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.

Tanımlamalar (App.Prc.Definitions)

1. Amaç ve kapsam

Satınalma belgelerinde kullanılacak ödeme koşulu, ödeme yöntemi, teslimat koşulu (Incoterm) ve teslim yöntemi tanımları. Kullanıcılar satınalma ve muhasebe personelidir. Satınalma talebi, teklif, sipariş ve fatura belgeleri bu modülün kapsamında değildir; bu ekranlar onların lookup kaynağıdır.

Tedarikçi kartı (eski App.Prc.Supplier) satış ve satınalmanın ortak kartı olarak Kontaklar adıyla Yönetim › Tanımlamalar'a taşındı; ayrıntı Administration › Tanımlamalar. Kontak kartının Satış ve Satınalma sekmeleri bu modülün tanımlarını lookup olarak kullanır.

2. Analiz ve kararlar

  • Modül kodu Prc, tablo öneki Prc_T_; ekranlar Satınalma › Tanımlamalar altında.
  • Kart, etiket, ilgili kişi ve banka hesabı ekranları Satış tarafı da kullanacağı için Adm modülüne (Adm_T_Contact*, App.Definitions.Contact*) taşındı; bu modülde yalnızca satınalma koşulu tanımları kaldı.

3. Menü ve ekranlar

Satınalma (App.Prc) › Tanımlamalar (App.Prc.Definitions):

Ekran Kod Not
Ödeme Koşulları App.Prc.PaymentTerm tanım, demo veri
Ödeme Yöntemleri App.Prc.PaymentMethod tanım, demo veri
Teslimat Koşulları App.Prc.Incoterm tanım, demo veri
Teslim Yöntemleri App.Prc.DeliveryMethod tanım, demo veri

4. Veri modeli

Tüm tablolar kiracı (TenantId) + tam audit + soft delete taşır.

  • Prc_T_PaymentTerm (Name, DueDays, Description, IsActive)
  • Prc_T_PaymentMethod (Name, Journal, IsActive)
  • Prc_T_Incoterm (Code, Name, IsActive)
  • Prc_T_DeliveryMethod (Name, IsActive)

5. İş kuralları ve hesaplar

  • Tanım lookup'ları yalnızca IsActive = 1 ve silinmemiş kayıtları listeler; kullanılan tanım silinmek yerine pasife alınır.
  • Ödeme koşulu DueDays vade gününü tutar; ay sonu kuralları açıklamada yazılıdır, otomatik vade hesabı yoktur.

6. Yetki ve görünürlük

Yetki ağacı: App.Prc › App.Prc.Definitions › her ekran (+ Create/Update/Delete/Export/Import/Note). Tüm ekranlar kiracı kapsamlıdır, şube filtresi yoktur. Widget'lar: her ekranda Toplam · Aktif · Pasif.

7. Entegrasyonlar

Yok. Tanımlar Yönetim › Tanımlamalar › Kontaklar'ın Satış ve Satınalma sekmelerinde (App.Definitions.ContactSales, App.Definitions.ContactPurchasing) seçilir.

8. Akış örneği

  1. Satınalma › Tanımlamalar › Ödeme Koşulları'nda "30 Gün" aktif durur.
  2. Yönetim › Tanımlamalar › Kontaklar'da "Acme Corporation" açılır; Satınalma sekmesinde Düzenle ile Ödeme Koşulu = 30 Gün seçilip kaydedilir.

9. Sık sorulanlar

  • Tedarikçiler ekranı nerede? Yönetim › Tanımlamalar › Kontaklar; müşteri ve tedarikçi aynı karttadır.
  • Pasife alınan tanım kartta görünüyor mu? Var olan kayıtta değer durur, yeni seçimde listelenmez.

10. Dosyalar ve geri alma

  • Tablolar: sql/object/Prc_T_PaymentTerm.sql, Prc_T_PaymentMethod.sql, Prc_T_Incoterm.sql, Prc_T_DeliveryMethod.sql.
  • Wizard'lar: Prc_PaymentTerm.json, Prc_PaymentMethod.json, Prc_Incoterm.json, Prc_DeliveryMethod.json.
  • Demo veri: data/App.Prc.{PaymentTerm,PaymentMethod,Incoterm,DeliveryMethod}.json.
  • Geri alma: Kontak sekmeleri bu tanımlara bağlı olduğu için önce kontak tarafındaki seçimler temizlenir; ekranlar delete_wizard ile silinir, tablolar yalnızca açık onayla dropTables: true ile düşürülür.

Talepler (App.Prc.MaterialRequests)

1. Amaç ve kapsam

Departmanların iç ve dış ihtiyaç duydukları malzemeleri satınalmaya iletmesi. Talep eden personel talebi ve satırlarını girer, onaya gönderir; talep önce talep edenin departman onaycısına, sonra satınalmaya düşer. Onaylanan talep Tüm Talepler listesinde satınalma ekibinin işine düşer; teklif toplama süreci buradan başlar. Teklif, sipariş, transfer ve stok miktarı bu dalın kapsamında değildir.

2. Analiz ve kararlar

  • Wizard List ekranları + menüsüz satır alt formu + Grid Workflow. Taleplerim ve iki onay listesi aynı tabloyu (Prc_T_MaterialRequest) filtreyle gösterir; Tüm Talepler başlık × kalem görünümünden (Prc_V_MaterialRequestLine) okur, her kalem bir satırdır.
  • Belge no numaratörden: MaterialRequest (MT-YYYY-00001, yıllık sıfırlanır). Şirket alanı açılmadı (kiracı kapsamı).
  • Departman onaycısı: Adm_T_Approver'da Onay Yeri = Satınalma (Purchase) ve talebin departmanı. Satınalma onaycısı Onaycılar'da tanımlanmaz: Satınalma Onayı Bekleyenler ekranında karar verebilen, yani App.Prc.MaterialRequestPurchaseApproval.Update yetkisi doğrudan ya da rolüyle verilmiş aktif kullanıcılardır (satınalma ekibinin rolüne bu yetki verilir). Herhangi bir onaycının onayı yeterli.
  • Taslak aşaması: kayıt Taslak açılır; akış platformun Onaya Gönder işlemiyle başlar (WorkflowDto.ApprovalIsManualStart: true — yoksa yeni kayıt akışı kendiliğinden başlatır ve satır girilemez).
  • Görseldeki "Kendi Depomda" ve "Tüm Depolar" stok kolonları üretilmedi: uygulamada stok miktarı/hareket tablosu yok; stok modülü gelince ayrı talep.
  • Karşılama Şekli: Satınalma / Depodan Transfer.
  • İş akışı kolonları tablo tasarımcısının Workflow şablonundaki dörtlüdür: ApprovalUserName nvarchar(256) (onaycı kullanıcı adları), ApprovalStatus nvarchar(50) (bulunulan düğümün başlığı), ApprovalDate datetime, ApprovalDescription nvarchar(200); dört ekranın WorkflowDto'su bunlara bağlıdır. Departman ve satınalma kararları ayrı kolonda tutulmaz; her karar (karar veren, açıklama, red nedeni) iş akışı notlarına yazılır.
  • Onay ve red bilgileri popup düzenleme formunda yer almaz (iş akışı yazar); listede kolon olarak görünür.
  • Red nedeni ayrı kolonda tutulmaz: onay düğümleri red sırasında Red Nedenleri listesinden (Prc_T_RejectReason, zorunlu) seçim ister; seçilen neden ve not ApprovalDescription'a ve iş akışı notuna yazılır.
  • Satır tablosu Prc_T_MaterialRequestItem adıyla açıldı (birim kolonu Adm_T_Uom.Id ile aynı tipte, nvarchar). İlk açılan Prc_T_MaterialRequestLine scripti (UomId uniqueidentifier) kullanılmıyor.
  • Talebin durumu iş akışından gelir: ApprovalStatus boş (taslak) › Departman Onayı › Satınalma Onayı › Onaylandı ya da Reddedildi. Onaylanan talep satınalmada aynı alanda ilerler: kalemi taslak teklif talebindeyse Teklif Talebi, gönderilmiş (ya da siparişe dönüşmüş) teklif talebindeyse Teklif Talebi Gönderildi, iptal olmayan bir siparişteyse Satınalma Siparişi; kalemler belgelerden çıkarılır ya da belgeler iptal edilirse Onaylandı'ya döner. Kalemler farklı aşamadaysa en ileri aşama yazılır (Prc_P_MaterialRequestSyncStatus). Ayrı Status kolonu yoktur; karşılama satır durumundan (Bekliyor / Tamamlandı / İptal) izlenir.
  • Planlama aşaması kaldırıldı (Planlama Bekleyenler listesi, satırdaki Planlandı durumu ve Planlanacak Miktar).

3. Menü ve ekranlar

Satınalma (App.Prc) › Talepler (App.Prc.MaterialRequests):

Ekran Kod Filtre / not
Taleplerim App.Prc.MyMaterialRequest talep eden = oturumdaki kullanıcı; ekle/sil açık, akış
Departman Onayı Bekleyenler App.Prc.MaterialRequestDeptApproval ApprovalStatus = Departman Onayı; yalnız kendine düşenler
Satınalma Onayı Bekleyenler App.Prc.MaterialRequestPurchaseApproval ApprovalStatus = Satınalma Onayı; yalnız kendine düşenler
Tüm Talepler App.Prc.MaterialRequest filtresiz, kalem kalem; ekle/sil kapalı, yalnız kalemin sorumlusu ve durumu düzenlenir, akış yok

Talep Satırları (App.Prc.MaterialRequestLine) menüsüz alt formdur; Taleplerim ve iki onay listesinde sekmedir (Tüm Talepler kalemleri kolon olarak gösterir). Red Nedenleri (App.Prc.RejectReason) Satınalma › Tanımlamalar altındadır (bkz. Tanımlamalar).

4. Veri modeli

Tüm tablolar kiracı + tam audit + soft delete taşır.

  • Prc_T_MaterialRequest: RequestNo, Priority (0–3), RequesterUserId, BranchId (Sas_T_Branch), DepartmentId, WarehouseId, LocationId, RequestDate, Description, ApprovalUserName, ApprovalStatus, ApprovalDate, ApprovalDescription (iş akışı), DeptApproverUserNames / PurchaseApproverUserNames (| ayrılmış kullanıcı adları).
  • Prc_T_MaterialRequestItem: MaterialRequestId (FK, cascade), ProductId, Quantity, UomId (nvarchar, Adm_T_Uom), FulfillmentMethod (Purchase / Transfer), DueDate, RequestReason, DeliveredQuantity, PurchaseResponsibleUserId, LineStatus (Waiting / Done / Cancelled).
  • Prc_T_RejectReason: Name, SortOrder, IsActive.
  • Görünüm Prc_V_MaterialRequestLine: talep başlığı LEFT JOIN silinmemiş kalemler; Id kalemin Id'si (kalemi olmayan talepte talebin Id'si), MaterialRequestId talep. Tüm Talepler'in kaynağıdır.
  • Prosedürler Prc_P_MaterialRequestAfterSave(@Id), Prc_P_MaterialRequestSyncStatus(@DocId) (teklif/sipariş Recalc'i, durum işlemi ve belge silme sonrasında; @DocId boşsa onaylanmış bütün talepler).

5. İş kuralları ve hesaplar

  • Prc_P_MaterialRequestAfterSave talep kaydı/güncellemesi sonrasında çalışır ve onaycı kullanıcı listelerini (DeptApproverUserNames, PurchaseApproverUserNames) Onaycılar'dan yeniden yazar. Onaycılar sonradan değişirse talep yeniden kaydedilene kadar liste eski kalır. İki liste formda ve listede gizlidir; iş akışı onaycıyı bu alanlardan okur (@DeptApproverUserNames, @PurchaseApproverUserNames).
  • Onaya gönderilmiş talebe satır eklenemez ve satır silinemez (alt form Insert/Delete Before komutu). Onay sürecindeki ya da onaylanmış talep silinemez; reddedilen talep silinebilir.
  • Ürün listesi yalnız aktif ve satın alınabilir ürünleri gösterir; birim ürünün satınalma biriminden (yoksa biriminden) kopyalanır, salt okunurdur.
  • Şube ayrı alandır ve iki zinciri süzer: Şube › Departman, Şube › Depo › Konum; şube değişince departman, depo ve konum, depo değişince konum temizlenir. Talep eden değişince şubesi ve departmanı kullanıcının departmanından gelir; yeni kayıtta şube ve departman oturumdaki kullanıcınınkidir. Açıklama HTML editörüdür, formda tam satırdır.
  • Tüm Talepler'de düzenleme UpdateCommand ile yalnız Prc_T_MaterialRequestItem'ın PurchaseResponsibleUserId ve LineStatus kolonlarını yazar; başlık alanları salt okunurdur. Kartlar kalemi değil talebi sayar (tablodan okur).
  • Onaycı listesi boşsa akış o adımda hata verir: Onaycılar'a ilgili departman için Satınalma satırı tanımlanmalı ve en az bir kullanıcıya (ya da rolüne) Satınalma Onayı Bekleyenler güncelleme yetkisi verilmelidir.

6. Yetki ve görünürlük

Yetki ağacı: App.Prc › App.Prc.MaterialRequests › her liste (+ Create/Update/Delete/Export/Import/Note); alt form App.Prc.MaterialRequestLine listenin altında. Talep edenlere Taleplerim (+Create, +Update), onaycılara ilgili onay listesi (+Update), satınalma ekibine Tüm Talepler verilir; satır alt formunun yetkisi de role verilmelidir. Onay listeleri yalnız kullanıcının onayına düşen kayıtları gösterir. Kiracı kapsamlı, şube filtresi yok.

7. Entegrasyonlar

Yönetim › Tanımlamalar › Onaycılar (onay yeri Satınalma); Yönetim › Roller (Satınalma Onayı Bekleyenler yetkisi); Envanter › Tanımlamalar › Ürünler, Depolar, Konumlar; İK departmanları; Yönetim › Tanımlamalar › Diziler (MaterialRequest). Akış e-posta bildirimi platformun iş akışı altyapısındadır. Teklif/sipariş modülüyle entegrasyon yok.

8. Akış örneği

  1. Onaycılar'da BT departmanı için Satınalma yerinde Ayşe tanımlıdır; Mehmet'in rolünde Satınalma Onayı Bekleyenler güncelleme yetkisi vardır.
  2. BT'den Ali Taleplerim'de yeni talep açar (MT-2026-00001), depo/konum seçer, Talep Satırları'na 10 adet ürün, termin ve neden girer; Onaya Gönder der.
  3. Ayşe Departman Onayı Bekleyenler'de talebi onaylar; talep Satınalma Onayı Bekleyenler'e geçer.
  4. Mehmet onaylar; talep Onaylandı olur, Ali'ye bilgi gider.
  5. Satınalma Tüm Talepler'de satıra sorumluyu atar ve satırı Tamamlandı yapar.

9. Sık sorulanlar

  • Talebim onay listesinde görünmüyor? Onaycılar'da talebin departmanı için aktif Satınalma satırı olmalı; satınalma adımı için en az bir aktif kullanıcının (doğrudan ya da rolüyle) Satınalma Onayı Bekleyenler güncelleme yetkisi olmalıdır. Onaycılar ya da yetkiler talep açıldıktan sonra değiştiyse talebi bir kez kaydedin.
  • Onaya gönderdikten sonra satır ekleyebilir miyim? Hayır; talep reddedilirse ya da akış başa dönerse yeniden düzenlenir.
  • Kendi Depomda / Tüm Depolar miktarları nerede? Stok modülü geldiğinde eklenecek.
  • Red nedeni nereden seçilir? Reddet düğmesinin açtığı karar penceresinde, Satınalma › Tanımlamalar › Red Nedenleri listesinden; neden ve not Onay Açıklaması kolonunda görünür.

10. Dosyalar ve geri alma

  • Tablolar: sql/object/Prc_T_MaterialRequest.sql, Prc_T_MaterialRequestItem.sql, Prc_T_RejectReason.sql (+ postgres eşleri); kullanılmayan Prc_T_MaterialRequestLine.sql.
  • Görünüm: sql/object/Prc_V_MaterialRequestLine.sql (+ postgres).
  • Prosedür: sql/object/Prc_P_MaterialRequestAfterSave.sql (+ postgres).
  • Wizard'lar: Prc_MaterialRequestLine.json, Prc_MyMaterialRequest.json, Prc_MaterialRequestDeptApproval.json, Prc_MaterialRequestPurchaseApproval.json, Prc_MaterialRequest.json, Prc_RejectReason.json; güncellenen Adm_Approver.json.
  • Numaratör: App.Definitions.Sequence › MaterialRequest.
  • Geri alma: Wizard Manager'da talep bazlı silme (alt form en son değil, önce listeler); tablolar yalnız açık onayla düşürülür.

Sözleşmeler (App.Prc.PurchaseAgreement)

1. Amaç ve kapsam

Henüz yazılmadı.

2. Analiz ve kararlar

Henüz yazılmadı.

3. Menü ve ekranlar

Henüz yazılmadı.

4. Veri modeli

Henüz yazılmadı.

5. İş kuralları ve hesaplar

Henüz yazılmadı.

6. Yetki ve görünürlük

Henüz yazılmadı.

7. Entegrasyonlar

Henüz yazılmadı.

8. Akış örneği

Henüz yazılmadı.

9. Sık sorulanlar

Henüz yazılmadı.

10. Dosyalar ve geri alma

Henüz yazılmadı.

Siparişler (App.Prc.Orders)

1. Amaç ve kapsam

Satınalma ekibinin onaylanmış malzeme taleplerinden tedarikçilere teklif talebi (RFQ) açması, aynı ihtiyacı birden fazla tedarikçiye sorarak ihale gibi fiyat toplaması, gelen fiyat ve terminleri kıyaslayıp en uygun teklifi kalem bazında satınalma siparişine dönüştürmesi; gerekirse teklif toplamadan doğrudan sipariş yazması ve tedarikçiyle çerçeve sözleşme yönetmesi. Kullanıcılar satınalma personeli ve alıcılardır. Mal kabul Envanter › Operasyonlar › Alımlar'dadır (App.Inventory.md); onaylanan sipariş orada taslak alım açar ve alınan miktar sipariş kalemine geri yazılır. Tedarikçinin linkten kendi fiyatını girdiği portal, tedarikçi faturası (faturalanan, Fatura Yükle) ve analitik dağılım kapsam dışıdır.

2. Analiz ve kararlar

  • Teklif talebi ve satınalma siparişi ayrı belgelerdir (Prc_T_PurchaseRfq, Prc_T_PurchaseOrder), ayrı numaratörle: Prc.PurchaseRfq (RFQ00001) ve Prc.PurchaseOrder (P00001). Sözleşme Prc.PurchaseAgreement (BO00001).
  • Tedarikçi başına bir teklif belgesi. Aynı ihtiyaç için açılan belgeler bir ihaledir: TenderGroupId ihalenin kök (ilk) belgesinin Id'sidir. Alternatif tedarikçiler Alternatif Oluştur modalında (App.Prc.PurchaseRfqAlternativeSupplier: ihalede belgesi olmayan aktif kontaklar) ListForm'un çoklu seçimiyle seçilir, Seçilenler İçin Oluştur butonu seçili her kontak için o anki kalemleriyle birlikte kopya belge açılır (fiyat tedarikçinin fiyat listesinden, para birimi ve koşullar kontak kartından). Bir tedarikçi ihalede bir kez bulunur.
  • Bir teklif birden fazla malzeme talebinden oluşabilir: belgenin Talep Kalemleri sekmesi aktarılabilir bütün talep kalemlerini talebe göre gruplu listeler; satırlar ListForm'un çoklu seçimiyle (Selection.Mode = multiple, satır başı kutusu) seçilir ve sekmenin araç çubuğundaki Seçilenleri Aktar butonu (Commands, OnClick) seçili her satır için list-form-data/update çağırır; ekranın UpdateCommand'ı (Prc_P_PurchaseImportItem @Id) kalemi kopyalar. Ekran bir modalda açıksa (Talepten Aktar, Alternatif Oluştur) buton işi bitince modalı kapatır ve ana liste yenilenir; sekmede açıksa yalnız listeyi yeniler. Hata olursa modal açık kalır. Ayrı bir işaret kolonu yoktur. Aynı sekme teklifsiz yazılan taslak siparişte de vardır. Talep ilişkisi kalem düzeyindedir (MaterialRequestItemId).
  • Popup (Yeni/Düzenle) formu yalnız belgenin kendi alanlarını taşır; talep aktarımı, alternatif, fiyat girişi ve durum işlemleri liste araç çubuğundaki butonlardadır (sekmelerden de yapılabilir). Vergi hariç / KDV / toplam kalemlerden hesaplandığı için formda değil listede görünür.
  • Hızlı fiyat girişi: Fiyat Karşılaştırması sekmesi toplu düzenleme modundadır; ihalenin bütün tedarikçilerinin birim fiyat, teslim tarihi ve Seçili değerleri tek tabloda satır içinde yazılıp birlikte kaydedilir. Aynı ekran liste araç çubuğundaki ayrı Fiyat Girişi butonuyla modalda da açılır. Satır kaydı Prc_P_PurchaseRfqComparisonSave'dir: batch kaydı satırları eşzamanlı istekle gönderdiği için yordam önce ihalenin kök teklifini kilitler (UPDLOCK/FOR UPDATE, TenderGroupId), sonra satırı günceller ve teklifi yeniden hesaplar; grid ihaledeki bütün tedarikçi tekliflerinin satırlarını taşıdığı için kilit ihale düzeyindedir ve satırlar sırayla işlenir. IX_Prc_T_PurchaseRfqLine_PurchaseRfqId yeniden hesabın tablo taraması yapıp başka tekliflerin satırlarını kilitlemesini önler.
  • Fiyat Girişi'nde birim fiyatı 0'dan büyük kaydedilen teklif, yanıtı Waiting ise kendiliğinden Quoted olur; boşsa Teklif Tarihi kayıt anı, Teklif Geçerliliği sipariş son tarihi (OrderDeadline) yazılır (Prc_P_PurchaseRfqComparisonSave). Elle girilmiş tarih ve NotQuoted yanıtı değişmez.
  • Araç çubuğu butonları ListForm'un Commands (özel buton) kaydıyla, OnClick modunda yazılır; çekirdek değişmez. Talepten Aktar, Alternatif Oluştur ve Fiyat Girişi seçili satırla aynı PurchaseDocGrid diyaloğunu (ui/src/views/purchasing/PurchaseDocGridDialog.tsx) açar; buton listFormCode, başlık (title) ve açıklama (info) dil anahtarını verir. Diyalog belgeye (BaseId) süzülmüş tek ekranı (App.Prc.*ImportItem, App.Prc.PurchaseRfqAlternativeSupplier, App.Prc.PurchaseRfqComparison) platformun Grid bileşeniyle gösterir; ayrı bir uç yoktur.
  • Teklif durumları: Taslak (Teklif Talebi) › Teklif Talebi Gönderildi (tedarikçiye e-posta kuyruğa alındı) › Satınalma Siparişi (dönüştürüldü) / İptal Edildi. Sipariş durumları: Taslak › Onaylandı / İptal; tekliften dönüşen sipariş onaylı açılır.
  • Kıyas (Fiyat Karşılaştırması): fiyat Sas_H_Currency.Rate ile TL'ye çevrilir (kur = 1 birimin TL karşılığı). Puan = Fiyat ağırlığı × (en düşük TL fiyat / TL fiyat) + Termin ağırlığı × (en kısa termin günü / termin günü); termin günü = teslim tarihi − ihalenin açılış günü (en az 1). Ağırlıklar ihale genelinde tektir, varsayılan %70 fiyat / %30 termin, toplamı 100 olmalıdır. En yüksek puan Önerilen'dir. Fiyatı 0, terminsiz, "Teklif Verilmedi" ya da iptal edilmiş belgenin satırı puanlanmaz. Kalemin teslim tarihi boşsa belgenin Beklenen Geliş'i kullanılır.
  • Siparişe Dönüştür kalem bazındadır (ihale genelinde, ihaledeki herhangi bir belgeden): kalemin Seçili satırı varsa o, yoksa Önerilen satır kazanır. Kazanan her teklif belgesi için ayrı satınalma siparişi açılır ve sipariş teklifin şubesini, operasyon türünü ve deposunu taşır; en az bir kalem kazanan teklif Satınalma Siparişi, hiç kazanamayan teklif İptal Edildi olur.
  • Kaynak kolonu: teklifte kalemlerin talep numaraları; tekliften dönüşen siparişte teklif talep no; doğrudan yazılan siparişte talep numaraları.
  • Durum butonları (Gönder, İhaleyi Gönder, Siparişe Dönüştür, Siparişi Onayla, İptal, Taslak olarak ayarla) onay sorar, işlemi gizli PendingAction alanına yazıp ekranın kendi güncelleme ucuyla (list-form-data/update) kaydeder; kayıt sonrası yordam işlemi Prc_P_*SetStatus ile çalıştırır ve alanı temizler. Alan formda görünmez.
  • E-posta, bildirim kuyruğundan (Adm_T_Notification, kanal Mail) tedarikçinin kontak e-postasına gider; teklif e-postası fiyat içermez (ürün, miktar, istenen termin, teklif son tarihi), sipariş e-postası fiyatlı. Kuyruk mesajı 2048 karakterle sınırlıdır; çok kalemli belgede tablo kısalır.
  • SQL tarafında açılan belgelerin (alternatif teklif, dönüşen sipariş) numarası numaratörden Adm_P_SequenceNext ile alınır; biçim Sequence.GetNextSequence ile aynıdır.
  • Kullanıcı kararıyla kapsam dışı: tedarikçi portalı (fiyatı satınalma girer), Alınan/Kalan/Faturalanan ve Fatura Yükle. Firma kolonu açılmadı (kiracı kapsamı). Demo veri girilmedi.

3. Menü ve ekranlar

Satınalma (App.Prc) › Sözleşmeler (App.Prc.PurchaseAgreement, Siparişler'in hemen üstünde; sekme: Ürünler).

Satınalma (App.Prc) › Siparişler (App.Prc.Orders):

Ekran Kod Not
Teklif Talepleri App.Prc.PurchaseRfq tüm durumlar; sekmeler Ürünler, Talep Kalemleri, Tedarikçi Teklifi, Diğer Bilgiler, Teklifler (Ekle = alternatif), Fiyat Karşılaştırması (toplu düzenleme)
Satınalma Siparişleri App.Prc.PurchaseOrder tüm durumlar; ekle/sil (yalnız teklifsiz taslak); sekmeler Ürünler, Talep Kalemleri, Diğer Bilgiler, Teklifler
Sipariş Ürünleri App.Prc.PurchaseOrderProduct sipariş × kalem, her satır bir kalem; tüm durumlar, kalemsiz sipariş yok; salt okunur; satırdaki Siparişi Aç siparişin detay sayfasını açar (/admin/form/App.Prc.PurchaseOrder/@PurchaseOrderId)

Menüsüz alt formlar: teklif tarafında App.Prc.PurchaseRfqLine, App.Prc.PurchaseRfqImportItem, App.Prc.PurchaseRfqQuote, App.Prc.PurchaseRfqOther, App.Prc.PurchaseRfqAlternative, App.Prc.PurchaseRfqAlternativeSupplier (yalnız Alternatif Oluştur modalında), App.Prc.PurchaseRfqComparison; sipariş tarafında App.Prc.PurchaseOrderLine, App.Prc.PurchaseOrderImportItem, App.Prc.PurchaseOrderOther, App.Prc.PurchaseOrderAlternative; sözleşmede App.Prc.PurchaseAgreementLine.

4. Veri modeli

Tüm tablolar kiracı + tam audit + soft delete.

  • Prc_T_PurchaseRfq: RfqNo, TenderGroupId, SupplierId, SupplierReference, AgreementId, BranchId, OperationTypeId, WarehouseId (üçü de zorunlu; Şube › Depo › Operasyon Türü zinciriyle süzülür; alternatife ve siparişe kopyalanır), CurrencyId, OrderDeadline, ExpectedArrival, SupplierResponse (Waiting/Quoted/NotQuoted), QuoteDate, QuoteValidUntil, BuyerUserId, SourceDocument, ProjectId, IncotermId, IncotermLocation, PaymentTermId, Terms, PriceWeight (70), DeliveryWeight (30), UntaxedAmount, TaxAmount, TotalAmount, Status (Draft/Sent/Purchase/Cancelled), PendingAction, LastSentDate.
  • Prc_T_PurchaseRfqLine: PurchaseRfqId (FK cascade), TenderLineId (alternatiflerde aynı kalemi eşler), ProductId, Description, Quantity, UomId, UnitPrice, TaxRate, Amount, DeliveryDate (tedarikçinin termini; aktarımda talebin istenen termini), MaterialRequestItemId, IsSelected.
  • Prc_T_PurchaseOrder: OrderNo, PurchaseRfqId (kaynak teklif), SupplierId, SupplierReference, AgreementId, BranchId, OperationTypeId (Inv_T_OperationType), WarehouseId (teslim alınacak depo, Inv_T_Warehouse; üçü de zorunlu; Şube › Depo › Operasyon Türü zinciriyle süzülür), CurrencyId, ExpectedArrival, ConfirmDate, ArrivalDate, BuyerUserId, SourceDocument, ProjectId, IncotermId, IncotermLocation, PaymentTermId, Terms, tutarlar, Status (Draft/Purchase/Cancelled), PendingAction, LastSentDate.
  • Prc_T_PurchaseOrderLine: PurchaseOrderId (FK cascade), ProductId, Description, Quantity, UomId, UnitPrice, TaxRate, Amount, DeliveryDate, MaterialRequestItemId, PurchaseRfqLineId, ReceivedQuantity (alınan; alımın Doğrula'sı yazar, alım iadesi düşer).
  • Görünümler: Prc_V_MaterialRequestAvailableItem (aktarılabilir talep kalemleri), Prc_V_PurchaseImportItem (Talep Kalemleri sekmesi: kalem alabilen açık belge × aynı şubedeki aktarılabilir kalem, Id = belge|kalem), Prc_V_PurchaseRfqComparison (kıyas ve puan), Prc_V_PurchaseRfqAlternative (ihalenin belgeleri; teklif ve sipariş için BaseId), Prc_V_PurchaseRfqAlternativeSupplier (açık teklif × ihalede belgesi olmayan aktif kontak, Id = teklif|kontak), Prc_V_PurchaseAgreementLine (sözleşmenin sipariş edilen miktarı), Prc_V_PurchaseOrderLine (Sipariş Ürünleri: silinmemiş sipariş × silinmemiş kalem, Id kalemin Id'si; vergi hariç ve KDV kalemin KDV dahil tutarından ayrıştırılır, Talep No kalemin malzeme talebinden).
  • Yordamlar: Prc_P_PurchaseRfq{AfterSave,Recalc,ComparisonSave,CreateAlternative,FromAgreement,Send,SetStatus,Award}, Prc_P_PurchaseOrder{AfterSave,Recalc,Send,SetStatus}, Prc_P_PurchaseImportItem (teklif ve sipariş için ortak, kalem bazlı aktarım), Adm_P_SequenceNext.

5. İş kuralları ve hesaplar

  • Teklif kaydı ve Tedarikçi Teklifi / Diğer Bilgiler sekmesindeki kayıt sonrası Prc_P_PurchaseRfqAfterSave: ağırlık toplamı 100 kontrolü; boş ödeme/teslimat koşulu ve Incoterm konumu tedarikçinin Satınalma sekmesinden (alıcı yalnız ilk kayıtta); yanıt Bekleniyor dışına alınınca boş teklif tarihi; ağırlıkların ihalenin diğer belgelerine yazılması; sözleşme kalemleri (yalnız kalemsiz belgede); tutarlar; buton işlemi (PendingAction).
  • Aktarım (Prc_P_PurchaseImportItem, seçilen her satır için): belge teklif aşamasında (teklif) ya da taslak (sipariş); talep Onaylandı; kalem Karşılama = Satınalma, Durum = Bekliyor; iptal olmayan bir teklifte ya da siparişte yer almıyor. Fiyat: sözleşme kalemi › tedarikçi fiyatı (Inv_T_ProductSupplier) › 0. Kalem bu arada başka belgeye geçmişse hata.
  • Alternatif (Prc_P_PurchaseRfqCreateAlternative @Key, @UserId, @Key = teklif|kontak, seçilen her satır için): belge teklif aşamasında olmalı; tedarikçinin ihalede iptal olmayan belgesi varsa hata.
  • Kalem Tutarı KDV dahildir: Tutar = yuvarla(yuvarla(Miktar × Birim Fiyat) × (1 + Oran/100)); Vergi Hariç = Σ yuvarla(Miktar × Birim Fiyat); KDV = Σ(Tutar − kalemin vergi hariç tutarı); Toplam = Vergi Hariç + KDV = Σ Tutar. Formdaki script ve Prc_P_Purchase{Rfq,Order}Recalc aynı formülü kullanır; kalem her eklenip/değişip/silindiğinde yeniden hesaplanır.
  • Teklif işlemleri: E-posta ile Gönder (taslak ya da gönderilmiş; kalem ve tedarikçi e-postası şart; Taslak → Gönderildi) · İhaleyi Gönder (ihalenin bütün taslak belgeleri) · Siparişe Dönüştür (taslak ya da gönderilmiş; ihale daha önce dönüştürülmemiş olmalı) · İptal (siparişe dönüşmüş teklif iptal edilemez) · Taslak olarak ayarla (yalnız iptalden; ihale siparişe dönüşmüşse olmaz).
  • Sipariş işlemleri: Siparişi Onayla (taslak, kalemli) · E-posta ile Gönder (iptal dışında) · İptal · Taslak olarak ayarla (yalnız iptalden).
  • Alım: Siparişi Onayla ve Siparişe Dönüştür (onaylı açılan sipariş) siparişin operasyon türünde taslak alım açar (Inv_P_TransferFromPurchaseOrder): konumlar operasyon türünden, satırlar envanter takipli kalemlerin alınmamış miktarı, Kaynak Belge = sipariş no. Siparişin iptal olmayan alımı varsa yenisi açılmaz. Yapılmış alımı olan sipariş iptal edilemez; iptal edilen siparişin yapılmamış alımları da iptal olur.
  • Siparişe dönüşmüş ya da iptal edilmiş teklif ve kalemleri değiştirilemez; iptal edilmiş siparişin kalemi değiştirilemez. Gönderilmiş ya da dönüşmüş teklif silinemez; yalnız teklifsiz yazılmış taslak sipariş silinebilir.
  • Fiyat Karşılaştırması sekmesinde birim fiyat, teslim tarihi ve Seçili düzenlenir (ilgili teklifin toplamı yeniden hesaplanır). Siparişe dönüşte kazanan satırlar Seçili olarak işaretlenir.
  • Sözleşmede bitiş tarihi başlangıçtan önce olamaz; sözleşme seçilen boş teklif kalan (siparişe dönüşmemiş) miktarlarla dolar.

6. Yetki ve görünürlük

Yetki ağacı: App.Prc › App.Prc.Orders › teklif ve sipariş listeleri, App.Prc › App.Prc.PurchaseAgreement (+ Create/Update/Delete/Export/Import/Note). Her alt formun yetkisi kendi listesinin altındadır: teklif sekmeleri App.Prc.PurchaseRfq, sipariş sekmeleri App.Prc.PurchaseOrder altında; sekmeler ekranlar arasında paylaşılmaz. Teklif kullanıcısına Fiyat Karşılaştırması'nın Update yetkisi de verilmelidir (fiyat ve seçim buradan girilir). Yetkiler hiçbir role otomatik atanmaz. Kiracı kapsamlı, şube filtresi yok.

7. Entegrasyonlar

Yönetim › Tanımlamalar › Kontaklar (tedarikçi, e-posta, Satınalma sekmesi varsayılanları); Envanter (Ürünler, tedarikçi fiyatları, Operasyon Türleri; Operasyonlar › Alımlar — sipariş onayında taslak alım, alınan miktar); Satınalma › Tanımlamalar (Ödeme Koşulları, Teslimat Koşulları); Proje modülü; Talepler (aktarım); Para Birimleri (kur); Bildirimler: tipler TeklifTalebiGonderildi, SatinalmaSiparisiGonderildi, her birinin Custom/Mail kuralı (kural kapatılırsa e-posta kuyruğa girmez; NotificationWorker gönderir); Diziler (Prc.PurchaseRfq, Prc.PurchaseOrder, Prc.PurchaseAgreement).

8. Akış örneği

  1. Ali'nin MT-2026-00015 ve Ayşe'nin MT-2026-00016 talepleri onaylanır.
  2. Satınalma Teklif Talepleri'nde yeni kayıt açar (tedarikçi "3K Kutu"), kaydeder; detayda Talep Kalemleri sekmesinde iki talebin kalemlerini işaretleyip Kaydet der. Teklifler sekmesinde Ekle ile "5 Mutlu Gıda" ve "Kartela"yı ekler. RFQ00001 (3K) kalemleriyle, RFQ00002 ve RFQ00003 kopya olarak aynı ihalede açılır; Kaynak = MT-2026-00015, MT-2026-00016.
  3. Araç çubuğunda İhaleyi Gönder: üç tedarikçiye fiyatsız teklif e-postası kuyruğa alınır, belgeler Gönderildi olur.
  4. Tedarikçilerin dönüşleri Fiyat Karşılaştırması sekmesinde tek tabloda birim fiyat ve teslim tarihi olarak yazılıp bir kez kaydedilir; her ürün için en yüksek puanlı satır Önerilen işaretlenir. Kullanıcı bir üründe daha pahalı ama güvendiği tedarikçiyi Seçili yapar.
  5. Siparişe Dönüştür butonu: kazanan iki tedarikçiye P00007 ve P00008 açılır (Kaynak RFQ00001 / RFQ00003), RFQ00002 İptal Edildi olur.
  6. Satınalma Siparişleri'nde E-posta ile Gönder butonuyla siparişler tedarikçiye gider; mal gelince Varış girilir.

9. Sık sorulanlar

  • Butonlar nerede? Listede bir belge seçilir; işlemler araç çubuğundadır (detay sayfasının araç çubuğunda da görünür). Buton yetkisi: durum işlemleri ekranın Update, Talepten Aktar ilgili Talep Kalemleri ekranının Update, Alternatif Oluştur Teklifler ekranının Create yetkisi.
  • Talep Kalemleri sekmesi boş? Talep onaylanmış olmalı ve aktarılabilir (Satınalma, Bekliyor, başka açık teklifte ya da siparişte olmayan) kalemi bulunmalı; belge Teklif Talebi / Gönderildi (sipariş için Taslak) durumunda olmalı; belge yalnız kendi şubesindeki taleplerin kalemlerini görür.
  • Talepten Aktar / Alternatif Oluştur / Fiyat Girişi modalı nasıl kullanılır? Talepten Aktar'da aktarılacak satırlar satır başındaki kutuyla seçilir (başlıktaki kutu sayfadakilerin tümünü seçer) ve araç çubuğundaki Seçilenleri Aktar'a basılır. Alternatif Oluştur'da ihaleye eklenecek tedarikçiler satır başındaki kutuyla seçilip Seçilenler İçin Oluştur'a basılır (iki modal da iş bitince kendiliğinden kapanır). Fiyat Girişi ayrı butondur: bütün tedarikçilerin fiyat ve terminleri yazılıp tablonun Kaydet'ine basılır, modal Kapat ile kapanır.
  • Alternatif ekledim, kalemleri eksik? Alternatif, açıldığı andaki kalemleri kopyalar; sonradan eklenen kalem yalnız eklendiği belgededir.
  • Önerilen neden boş? Satırın fiyatı ve teslim tarihi (ya da belgenin Beklenen Geliş'i) girilmiş olmalı; Teklif Verilmedi yanıtlı ya da iptal edilmiş belge kıyasa girmez.
  • E-posta gitmedi? Tedarikçinin kontak e-postasını, Bildirim Kuralları'nda ilgili tipin Mail kuralını ve Bildirimler ekranındaki satırı (IsSent) kontrol edin; NotificationWorker aktif olmalı.
  • Farklı para birimindeki teklif nasıl kıyaslanıyor? Para Birimleri ekranındaki kurla TL'ye çevrilerek; kur güncel değilse kıyas yanıltır.

10. Dosyalar ve geri alma

  • Tablolar: sql/object/Prc_T_PurchaseRfq.sql, Prc_T_PurchaseRfqLine.sql, Prc_T_PurchaseOrder.sql, Prc_T_PurchaseOrderLine.sql, Prc_T_PurchaseAgreement.sql, Prc_T_PurchaseAgreementLine.sql (+ postgres).
  • Görünüm/yordam: Prc_V_MaterialRequestAvailableItem, Prc_V_PurchaseImportItem, Prc_V_PurchaseRfqComparison, Prc_V_PurchaseRfqAlternative, Prc_V_PurchaseRfqAlternativeSupplier, Prc_V_PurchaseAgreementLine, Prc_V_PurchaseOrderLine, Prc_P_PurchaseRfq*, Prc_P_PurchaseOrder*, Prc_P_PurchaseImportItem, Adm_P_SequenceNext (sql + postgres object).
  • Wizard'lar: Prc_PurchaseRfq{,Line,ImportItem,Quote,Other,Alternative,Comparison}.json, Prc_PurchaseOrder{,Line,ImportItem,Other,Alternative,Product}.json, Prc_PurchaseAgreement{,Line}.json.
  • Arayüz: ui/src/views/purchasing/PurchaseDocGridDialog.tsx (kayıt: DialogShowComponent, ad PurchaseDocGrid).
  • Veri: Diziler Prc.PurchaseRfq, Prc.PurchaseOrder, Prc.PurchaseAgreement; Bildirim Türleri ve Kuralları TeklifTalebiGonderildi, SatinalmaSiparisiGonderildi.
  • Geri alma: önce ana ekranlar (Prc_PurchaseRfq, Prc_PurchaseOrder, Prc_PurchaseAgreement), sonra alt formlar delete_wizard ile silinir; tablolar yalnız açık onayla düşürülür.

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 (App.Prc.Definitions)

Ödeme Koşulları — App.Prc.PaymentTerm

Özellik Değer
Wizard wizard/Prc_PaymentTerm.json
Yol Liste (Wizard)
Menü App.Prc.Definitions › App.Prc.PaymentTerm (sıra 1)
Yetki App.Prc.PaymentTerm + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama Ödeme Koşulları — tedarikçi kartlarında ve satınalma belgelerinde kullanılan vade tanımları (peşin, 15/30/45 gün, ay sonu, peşinat + bakiye).
Geliştirme talebi Satınalma Modülü
Kaynak Prc_T_PaymentTerm · 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 App.Widget.Total, App.Widget.Active, App.Widget.Passive
Veri aynası data/App.Prc.PaymentTerm.json
Alan Başlık Editör Zorunlu Formda Kaynak
Name Ad dxTextBox ✓ ✓
DueDays Vade (Gün) dxNumberBox ✓
IsActive Aktif dxCheckBox ✓ ✓
Description Açıklama dxTextArea ✓

Ödeme Yöntemleri — App.Prc.PaymentMethod

Özellik Değer
Wizard wizard/Prc_PaymentMethod.json
Yol Liste (Wizard)
Menü App.Prc.Definitions › App.Prc.PaymentMethod (sıra 2)
Yetki App.Prc.PaymentMethod + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama Ödeme Yöntemleri — tedarikçiye ödemenin nasıl yapılacağı (banka havalesi, çek, nakit kasa, NACHA).
Geliştirme talebi Satınalma Modülü
Kaynak Prc_T_PaymentMethod · 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 App.Widget.Total, App.Widget.Active, App.Widget.Passive
Veri aynası data/App.Prc.PaymentMethod.json
Alan Başlık Editör Zorunlu Formda Kaynak
Name Ad dxTextBox ✓ ✓
Journal Yevmiye dxTextBox ✓
IsActive Aktif dxCheckBox ✓ ✓

Teslimat Koşulları — App.Prc.Incoterm

Özellik Değer
Wizard wizard/Prc_Incoterm.json
Yol Liste (Wizard)
Menü App.Prc.Definitions › App.Prc.Incoterm (sıra 3)
Yetki App.Prc.Incoterm + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama Teslimat Koşulları — taşıma, sigorta ve riskin kimde olduğunu belirleyen uluslararası teslim şekilleri (EXW, FCA, FAS, FOB, CFR, CIF, CPT, CIP).
Geliştirme talebi Satınalma Modülü
Kaynak Prc_T_Incoterm · 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 App.Widget.Total, App.Widget.Active, App.Widget.Passive
Veri aynası data/App.Prc.Incoterm.json
Alan Başlık Editör Zorunlu Formda Kaynak
Code Kod dxTextBox ✓ ✓
Name Ad dxTextBox ✓ ✓
IsActive Aktif dxCheckBox ✓ ✓

Teslim Yöntemleri — App.Prc.DeliveryMethod

Özellik Değer
Wizard wizard/Prc_DeliveryMethod.json
Yol Liste (Wizard)
Menü App.Prc.Definitions › App.Prc.DeliveryMethod (sıra 4)
Yetki App.Prc.DeliveryMethod + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama Teslim Yöntemleri — malın nasıl teslim edileceği (yerel teslimat, kargo, kurye).
Geliştirme talebi Satınalma Modülü
Kaynak Prc_T_DeliveryMethod · 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 App.Widget.Total, App.Widget.Active, App.Widget.Passive
Veri aynası data/App.Prc.DeliveryMethod.json
Alan Başlık Editör Zorunlu Formda Kaynak
Name Ad dxTextBox ✓ ✓
IsActive Aktif dxCheckBox ✓ ✓

Red Nedenleri — App.Prc.RejectReason

Özellik Değer
Wizard wizard/Prc_RejectReason.json
Yol Liste (Wizard)
Menü App.Prc.Definitions › App.Prc.RejectReason (sıra 5)
Yetki App.Prc.RejectReason + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama Red Nedenleri — satınalma taleplerinin reddedilme sebepleri (ihtiyaç yok, miktar uygun değil, yanlış ürün, bütçe uygun değil, diğer).
Geliştirme talebi Satınalma -> Talepler
Kaynak Prc_T_RejectReason · 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 App.Widget.Total, App.Widget.Active, App.Widget.Passive
Form varsayılanları SortOrder=0, IsActive=true
Veri aynası data/App.Prc.RejectReason.json
Alan Başlık Editör Zorunlu Formda Kaynak
Name Red Nedeni dxTextBox ✓ ✓
SortOrder Sıra dxNumberBox ✓ ✓
IsActive Aktif dxCheckBox ✓ ✓

Talepler (App.Prc.MaterialRequests)

Taleplerim — App.Prc.MyMaterialRequest

Özellik Değer
Wizard wizard/Prc_MyMaterialRequest.json
Yol Liste (Wizard)
Menü App.Prc.MaterialRequests › App.Prc.MyMaterialRequest (sıra 1)
Yetki App.Prc.MyMaterialRequest + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama Taleplerim — açtığınız malzeme talepleri, tüm durumlarıyla.
Geliştirme talebi Satınalma -> Talepler
Kaynak Prc_T_MaterialRequest · filtre "IsDeleted" = 'false' AND "RequesterUserId" = '@USERID'
Görünümler Grid, Card, Pivot, Chart (açılış grid)
Düzenleme ekle ✓ · düzenle ✓ · sil ✓ · popup
Kapsam Kiracı
Alt formlar App.Prc.MaterialRequestLine (Id → MaterialRequestId)
Widget'lar App.Prc.MaterialRequest.Widget.Mine, App.Prc.MaterialRequest.Widget.Pending, App.Prc.MaterialRequest.Widget.Approved, App.Prc.MaterialRequest.Widget.Rejected
Komutlar InsertAfter: Prc_P_MaterialRequestAfterSave · UpdateAfter: Prc_P_MaterialRequestAfterSave · DeleteBefore: SQL
Form varsayılanları RequestNo=Prc.MaterialRequest, RequesterUserId=@USERID, BranchId=, DepartmentId=, RequestDate=@NOW, Priority=0
Onay akışı Start 'Onaya Gönderildi' → Approval 'Departman Onayı' → Approval 'Satınalma Onayı' → End 'Onaylandı' → End 'Reddedildi'
Alan Başlık Editör Zorunlu Formda Kaynak
RequestNo Talep No dxTextBox ✓
Priority Öncelik (0-3) dxRating ✓ ✓
RequesterUserId Talep Eden dxSelectBox ✓ ✓ sorgu: AbpUsers · script
BranchId Şube Adı dxSelectBox ✓ ✓ sorgu: Sas_T_Branch
DepartmentId Departman dxSelectBox ✓ ✓ sorgu: Hr_T_Department (← BranchId)
WarehouseId Depo dxSelectBox ✓ ✓ sorgu: Inv_T_Warehouse (← BranchId)
LocationId Konum dxSelectBox ✓ ✓ sorgu: Inv_T_Location (← WarehouseId)
RequestDate Talep Tarihi dxDateBox ✓ ✓
Description Genel Açıklama dxHtmlEditor ✓
ApprovalStatus Onay Durumu dxTextBox
ApprovalUserName Onaylayan Kullanıcı Adı dxTextBox
ApprovalDate Onay Tarihi dxDateBox
ApprovalDescription Onay Açıklaması dxTextBox
PurchaseApproverUserNames Satınalma Onaycıları dxTextBox
DeptApproverUserNames Departman Onaycıları dxTextBox

Departman Onayı Bekleyenler — App.Prc.MaterialRequestDeptApproval

Özellik Değer
Wizard wizard/Prc_MaterialRequestDeptApproval.json
Yol Liste (Wizard)
Menü App.Prc.MaterialRequests › App.Prc.MaterialRequestDeptApproval (sıra 2)
Yetki App.Prc.MaterialRequestDeptApproval + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama Departman Onayı Bekleyenler — departman onaycısının kararını bekleyen malzeme talepleri.
Geliştirme talebi Satınalma -> Talepler
Kaynak Prc_T_MaterialRequest · filtre "IsDeleted" = 'false' AND "ApprovalStatus" = N'Departman Onayı'
Görünümler Grid, Card, Pivot, Chart (açılış grid)
Düzenleme ekle ✗ · düzenle ✓ · sil ✗ · popup
Kapsam Kiracı
Alt formlar App.Prc.MaterialRequestLine (Id → MaterialRequestId)
Widget'lar App.Prc.MaterialRequest.Status.DeptApproval, App.Prc.MaterialRequest.Status.PurchaseApproval, App.Prc.MaterialRequest.Status.Rejected
Komutlar UpdateAfter: Prc_P_MaterialRequestAfterSave
Form varsayılanları Priority=0
Onay akışı Start 'Onaya Gönderildi' → Approval 'Departman Onayı' → Approval 'Satınalma Onayı' → End 'Onaylandı' → End 'Reddedildi'
Alan Başlık Editör Zorunlu Formda Kaynak
RequestNo Talep No dxTextBox ✓
Priority Öncelik (0-3) dxRating ✓ ✓
RequesterUserId Talep Eden dxSelectBox ✓ ✓ sorgu: AbpUsers
BranchId Şube Adı dxSelectBox ✓ ✓ sorgu: Sas_T_Branch
DepartmentId Departman dxSelectBox ✓ ✓ sorgu: Hr_T_Department
WarehouseId Depo dxSelectBox ✓ ✓ sorgu: Inv_T_Warehouse
LocationId Konum dxSelectBox ✓ ✓ sorgu: Inv_T_Location
RequestDate Talep Tarihi dxDateBox ✓ ✓
Description Genel Açıklama dxHtmlEditor ✓
ApprovalStatus Onay Durumu dxTextBox
DeptApproverUserNames Departman Onaycıları dxTextBox
PurchaseApproverUserNames Satınalma Onaycıları dxTextBox
ApprovalUserName Onaylayan Kullanıcı Adı dxTextBox
ApprovalDate Onay Tarihi dxDateBox
ApprovalDescription Onay Açıklaması dxTextBox

Satınalma Onayı Bekleyenler — App.Prc.MaterialRequestPurchaseApproval

Özellik Değer
Wizard wizard/Prc_MaterialRequestPurchaseApproval.json
Yol Liste (Wizard)
Menü App.Prc.MaterialRequests › App.Prc.MaterialRequestPurchaseApproval (sıra 3)
Yetki App.Prc.MaterialRequestPurchaseApproval + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama Satınalma Onayı Bekleyenler — departmanca onaylanmış ve satınalmanın kararını bekleyen malzeme talepleri.
Geliştirme talebi Satınalma -> Talepler
Kaynak Prc_T_MaterialRequest · filtre "IsDeleted" = 'false' AND "ApprovalStatus" = N'Satınalma Onayı'
Görünümler Grid, Card, Pivot, Chart (açılış grid)
Düzenleme ekle ✗ · düzenle ✓ · sil ✗ · popup
Kapsam Kiracı
Alt formlar App.Prc.MaterialRequestLine (Id → MaterialRequestId)
Widget'lar App.Prc.MaterialRequest.Status.PurchaseApproval, App.Prc.MaterialRequest.Status.Approved, App.Prc.MaterialRequest.Status.Rejected
Komutlar UpdateAfter: Prc_P_MaterialRequestAfterSave
Form varsayılanları Priority=0
Onay akışı Start 'Onaya Gönderildi' → Approval 'Departman Onayı' → Approval 'Satınalma Onayı' → End 'Onaylandı' → End 'Reddedildi'
Alan Başlık Editör Zorunlu Formda Kaynak
RequestNo Talep No dxTextBox ✓
Priority Öncelik (0-3) dxRating ✓ ✓
RequesterUserId Talep Eden dxSelectBox ✓ ✓ sorgu: AbpUsers
BranchId Şube Adı dxSelectBox ✓ ✓ sorgu: Sas_T_Branch
DepartmentId Departman dxSelectBox ✓ ✓ sorgu: Hr_T_Department
WarehouseId Depo dxSelectBox ✓ ✓ sorgu: Inv_T_Warehouse
LocationId Konum dxSelectBox ✓ ✓ sorgu: Inv_T_Location
RequestDate Talep Tarihi dxDateBox ✓ ✓
Description Genel Açıklama dxHtmlEditor ✓
ApprovalStatus Onay Durumu dxTextBox
DeptApproverUserNames Departman Onaycıları dxTextBox
PurchaseApproverUserNames Satınalma Onaycıları dxTextBox
ApprovalUserName Onaylayan Kullanıcı Adı dxTextBox
ApprovalDate Onay Tarihi dxDateBox
ApprovalDescription Onay Açıklaması dxTextBox

Tüm Talepler — App.Prc.MaterialRequest

Özellik Değer
Wizard wizard/Prc_MaterialRequest.json
Yol Liste (Wizard)
Menü App.Prc.MaterialRequests › App.Prc.MaterialRequest (sıra 5)
Yetki App.Prc.MaterialRequest + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama Tüm Talepler — kurumun bütün malzeme talepleri, tüm durumlarıyla, kalem kalem; satınalma yönetiminin listesi.
Geliştirme talebi Satınalma -> Talepler
Kaynak Prc_V_MaterialRequestLine · 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 App.Prc.MaterialRequest.Status.DeptApproval, App.Prc.MaterialRequest.Status.PurchaseApproval, App.Prc.MaterialRequest.Status.Approved, App.Prc.MaterialRequest.Status.Rejected
Alan Başlık Editör Zorunlu Formda Kaynak
RequestNo Talep No dxTextBox
Priority Öncelik (0-3) dxRating ✓
RequesterUserId Talep Eden dxSelectBox ✓ sorgu: AbpUsers
BranchId Şube Adı dxSelectBox ✓ sorgu: Sas_T_Branch
DepartmentId Departman dxSelectBox ✓ sorgu: Hr_T_Department
WarehouseId Depo dxSelectBox ✓ sorgu: Inv_T_Warehouse
LocationId Konum dxSelectBox ✓ sorgu: Inv_T_Location (← WarehouseId)
RequestDate Talep Tarihi dxDateBox ✓
Description Genel Açıklama dxHtmlEditor
ApprovalStatus Onay Durumu dxTextBox
ApprovalUserName Onaylayan Kullanıcı Adı dxTextBox
ApprovalDate Onay Tarihi dxDateBox
ApprovalDescription Onay Açıklaması dxTextBox
MaterialRequestId Malzeme Talebi dxTextBox
ProductId Ürün dxSelectBox sorgu: Inv_T_Product
Quantity Miktar dxNumberBox
UomId Birim dxSelectBox sorgu: Adm_T_Uom
FulfillmentMethod Karşılama Şekli dxSelectBox liste: Purchase, Transfer
DueDate Termin Tarihi dxDateBox
RequestReason Talep Nedeni dxTextArea
DeliveredQuantity Teslim dxNumberBox
PurchaseResponsibleUserId Satınalma Sorumlusu dxSelectBox ✓ sorgu: AbpUsers
LineStatus Satır Durumu dxSelectBox ✓ ✓ liste: Waiting, Done, Cancelled

Talep Satırları — App.Prc.MaterialRequestLine

Özellik Değer
Wizard wizard/Prc_MaterialRequestLine.json
Yol Liste (Wizard)
Menü Menüsüz (alt form)
Yetki App.Prc.MaterialRequestLine + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama Talep Satırları — malzeme talebinde istenen ürünler.
Geliştirme talebi Satınalma -> Talepler
Kaynak Prc_T_MaterialRequestItem · filtre "IsDeleted" = 'false'
Görünümler Grid, Card, Pivot, Chart (açılış grid)
Düzenleme ekle ✓ · düzenle ✓ · sil ✓ · popup
Kapsam Kiracı
Komutlar InsertBefore: SQL · DeleteBefore: SQL
Form varsayılanları FulfillmentMethod=Purchase, DeliveredQuantity=0, LineStatus=Waiting, Quantity=1, PurchaseResponsibleUserId=@USERID
Alan Başlık Editör Zorunlu Formda Kaynak
MaterialRequestId Malzeme Talebi dxTextBox
ProductId Ürün dxSelectBox ✓ ✓ sorgu: Inv_T_Product · script
Quantity Miktar dxNumberBox ✓ ✓
UomId Birim dxSelectBox ✓ ✓ sorgu: Adm_T_Uom
FulfillmentMethod Karşılama Şekli dxSelectBox ✓ ✓ liste: Purchase, Transfer
DueDate Termin Tarihi dxDateBox ✓ ✓
RequestReason Talep Nedeni dxTextArea ✓ ✓
DeliveredQuantity Teslim dxNumberBox
PurchaseResponsibleUserId Satınalma Sorumlusu dxSelectBox ✓ sorgu: AbpUsers
LineStatus Satır Durumu dxSelectBox ✓ ✓ liste: Waiting, Done, Cancelled

Sözleşmeler (App.Prc.PurchaseAgreement)

Sözleşmeler — App.Prc.PurchaseAgreement

Özellik Değer
Wizard wizard/Prc_PurchaseAgreement.json
Yol Liste (Wizard)
Menü App.Prc › App.Prc.PurchaseAgreement (sıra 3)
Yetki App.Prc.PurchaseAgreement + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama Sözleşmeler — tedarikçilerle yapılan kapsamlı sipariş ve ihale sözleşmeleri; anlaşılan miktar ve birim fiyatlarıyla.
Geliştirme talebi Satınalma -> Siparişler
Kaynak Prc_T_PurchaseAgreement · 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 App.Prc.PurchaseAgreementLine (Id → AgreementId)
Widget'lar App.Prc.AgreementStatus.Draft, App.Prc.AgreementStatus.Confirmed, App.Prc.AgreementStatus.Closed, App.Prc.AgreementStatus.Cancelled
Komutlar UpdateBefore: SQL
Form varsayılanları AgreementNo=Prc.PurchaseAgreement, BuyerUserId=@USERID, CurrencyId=TRY, StartDate=@NOW, Status=Draft, BranchId=
Alan Başlık Editör Zorunlu Formda Kaynak
SupplierId Tedarikçi dxSelectBox ✓ ✓ sorgu: Adm_T_Contact
BranchId Şube Adı dxSelectBox ✓ ✓ sorgu: Sas_T_Branch
AgreementNo Sözleşme dxTextBox ✓ ✓
BuyerUserId Alıcı dxSelectBox ✓ ✓ sorgu: AbpUsers
AgreementType Sözleşme Türü dxSelectBox ✓ ✓ liste: Blanket, Tender
CurrencyId Kur dxSelectBox ✓ ✓ sorgu: Sas_H_Currency
StartDate Başlama Tarihi dxDateBox ✓
EndDate Bitiş Tarihi dxDateBox ✓
WarehouseId Depo dxSelectBox ✓ ✓ sorgu: Inv_T_Warehouse (← BranchId)
OperationTypeId Operasyon Türü dxSelectBox ✓ sorgu: Inv_T_OperationType (← WarehouseId)
Status Durumu dxSelectBox ✓ ✓ liste: Draft, Confirmed, Closed, Cancelled
Terms Şartlar ve Koşullar dxHtmlEditor ✓

Sözleşme Kalemleri — App.Prc.PurchaseAgreementLine

Özellik Değer
Wizard wizard/Prc_PurchaseAgreementLine.json
Yol Liste (Wizard)
Menü Menüsüz (alt form)
Yetki App.Prc.PurchaseAgreementLine + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama Sözleşme Kalemleri — satınalma sözleşmesinin ürünleri, miktarları ve anlaşılan birim fiyatları.
Geliştirme talebi Satınalma -> Siparişler
Kaynak Prc_T_PurchaseAgreementLine · filtre "IsDeleted" = 'false'
Görünümler Grid, Card, Pivot, Chart (açılış grid)
Düzenleme ekle ✓ · düzenle ✓ · sil ✓ · popup
Kapsam Kiracı
Form varsayılanları Quantity=1
Alan Başlık Editör Zorunlu Formda Kaynak
AgreementId Sözleşme dxTextBox
ProductId Ürün dxSelectBox ✓ ✓ sorgu: Inv_T_Product · script
Quantity Miktar dxNumberBox ✓ ✓
UomId Birim dxSelectBox ✓ ✓ sorgu: Adm_T_Uom
UnitPrice Birim Fiyat dxNumberBox ✓ ✓
Description Açıklama dxTextArea ✓

Siparişler (App.Prc.Orders)

Teklif Talepleri — App.Prc.PurchaseRfq

Özellik Değer
Wizard wizard/Prc_PurchaseRfq.json
Yol Liste (Wizard)
Menü App.Prc.Orders › App.Prc.PurchaseRfq (sıra 1)
Yetki App.Prc.PurchaseRfq + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama Teklif Talepleri — her tedarikçi için ayrı satınalma belgesi; aynı ihtiyaç için açılan belgeler bir ihale oluşturur ve siparişten önce kıyaslanır.
Geliştirme talebi Satınalma -> Siparişler
Kaynak Prc_T_PurchaseRfq · 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 App.Prc.PurchaseRfqLine (Id → PurchaseRfqId), App.Prc.PurchaseRfqImportItem (Id → BaseId), App.Prc.PurchaseRfqQuote (Id → Id), App.Prc.PurchaseRfqOther (Id → Id), App.Prc.PurchaseRfqAlternative (Id → BaseId), App.Prc.PurchaseRfqComparison (Id → BaseId)
Widget'lar App.Widget.Draft, App.Widget.Sent, App.Widget.Expired, App.Widget.Completed
Komutlar InsertAfter: Prc_P_PurchaseRfqAfterSave · UpdateBefore: SQL · UpdateAfter: Prc_P_PurchaseRfqAfterSave · DeleteBefore: SQL
Form varsayılanları RfqNo=Prc.PurchaseRfq, BuyerUserId=@USERID, CurrencyId=TRY, Status=Draft, BranchId=
Butonlar App.Prc.PurchaseRfq.ImportRequests, App.Prc.PurchaseRfq.CreateAlternative, App.Prc.PurchaseRfq.PriceEntry, App.Prc.PurchaseOrder.Action.Send, App.Prc.PurchaseRfq.Action.SendTender, App.Prc.PurchaseRfq.Action.Award, App.Prc.PurchaseOrder.Action.Cancel, App.Prc.PurchaseOrder.Action.Draft
Alan Başlık Editör Zorunlu Formda Kaynak
SupplierId Tedarikçi dxSelectBox ✓ ✓ sorgu: Adm_T_Contact · script
BranchId Şube Adı dxSelectBox ✓ ✓ sorgu: Sas_T_Branch
WarehouseId Depo dxSelectBox ✓ ✓ sorgu: Inv_T_Warehouse (← BranchId)
OperationTypeId Operasyon Türü dxSelectBox ✓ ✓ sorgu: Inv_T_OperationType (← WarehouseId)
RfqNo Teklif Talep No dxTextBox ✓ ✓
Status Durum dxSelectBox ✓ ✓ liste: Draft, Sent, Purchase, Cancelled
OrderDeadline Sipariş Zaman Sınırı dxDateBox ✓
SupplierReference Tedarikçi Referansı dxTextBox ✓
ExpectedArrival Beklenen Geliş dxDateBox ✓
AgreementId Sözleşme dxSelectBox ✓ sorgu: Prc_T_PurchaseAgreement (← SupplierId,BranchId)
CurrencyId Para Birimi dxSelectBox ✓ ✓ sorgu: Sas_H_Currency
PendingAction İşlem dxTextBox
TenderGroupId İhale dxSelectBox sorgu: Prc_T_PurchaseRfq
SupplierResponse Tedarikçi Yanıtı dxSelectBox liste: Waiting, Quoted, NotQuoted
SourceDocument Kaynak dxTextBox
BuyerUserId Alıcı dxSelectBox sorgu: AbpUsers
UntaxedAmount Vergi Hariç Tutar dxNumberBox
TaxAmount Vergi Tutarı dxNumberBox
TotalAmount Toplam Tutar dxNumberBox
LastSentDate Son Gönderim dxDateBox
Terms Şartlar dxHtmlEditor ✓

Satınalma Siparişleri — App.Prc.PurchaseOrder

Özellik Değer
Wizard wizard/Prc_PurchaseOrder.json
Yol Liste (Wizard)
Menü App.Prc.Orders › App.Prc.PurchaseOrder (sıra 2)
Yetki App.Prc.PurchaseOrder + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama Satınalma Siparişleri — tedarikçilere verilen siparişler; teklif talebi ihalesinden dönüştürülür ya da teklif toplamadan doğrudan yazılır.
Geliştirme talebi Satınalma -> Siparişler
Kaynak Prc_T_PurchaseOrder · 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 App.Prc.PurchaseOrderLine (Id → PurchaseOrderId), App.Prc.PurchaseOrderImportItem (Id → BaseId), App.Prc.PurchaseOrderOther (Id → Id), App.Prc.PurchaseOrderAlternative (Id → BaseId)
Widget'lar App.Widget.Draft, App.Prc.PurchaseOrder.Widget.AwaitingArrival, App.Prc.PurchaseOrder.Widget.LateReceipt, App.Widget.TotalRevenue
Komutlar InsertAfter: Prc_P_PurchaseOrderAfterSave · UpdateBefore: SQL · UpdateAfter: Prc_P_PurchaseOrderAfterSave · DeleteBefore: SQL · DeleteAfter: Prc_P_MaterialRequestSyncStatus
Form varsayılanları OrderNo=Prc.PurchaseOrder, BuyerUserId=@USERID, CurrencyId=TRY, Status=Draft, BranchId=
Butonlar App.Prc.PurchaseRfq.ImportRequests, App.Prc.PurchaseOrder.Action.Confirm, App.Prc.PurchaseOrder.Action.Send, App.Prc.PurchaseOrder.Action.Cancel, App.Prc.PurchaseOrder.Action.Draft
Alan Başlık Editör Zorunlu Formda Kaynak
SupplierId Tedarikçi dxSelectBox ✓ ✓ sorgu: Adm_T_Contact · script
OrderNo Referans dxTextBox ✓ ✓
AgreementId Sözleşme dxSelectBox ✓ sorgu: Prc_T_PurchaseAgreement (← SupplierId,BranchId)
BranchId Şube Adı dxSelectBox ✓ ✓ sorgu: Sas_T_Branch
WarehouseId Depo dxSelectBox ✓ ✓ sorgu: Inv_T_Warehouse (← BranchId)
OperationTypeId Operasyon Türü dxSelectBox ✓ ✓ sorgu: Inv_T_OperationType (← WarehouseId)
Status Durum dxSelectBox ✓ ✓ liste: Draft, Purchase, Cancelled
ConfirmDate Onaylama Tarihi dxDateBox ✓
SupplierReference Tedarikçi Referansı dxTextBox ✓
ExpectedArrival Beklenen Geliş dxDateBox ✓
ArrivalDate Varış dxDateBox ✓
CurrencyId Para Birimi dxSelectBox ✓ ✓ sorgu: Sas_H_Currency
PendingAction İşlem dxTextBox
SourceDocument Kaynak dxTextBox
BuyerUserId Alıcı dxSelectBox sorgu: AbpUsers
UntaxedAmount Vergi Hariç Tutar dxNumberBox
TaxAmount Vergi Tutarı dxNumberBox
TotalAmount Toplam Tutar dxNumberBox
LastSentDate Son Gönderim dxDateBox
Terms Şartlar dxHtmlEditor ✓

Sipariş Ürünleri — App.Prc.PurchaseOrderProduct

Özellik Değer
Wizard wizard/Prc_PurchaseOrderProduct.json
Yol Liste (Wizard)
Menü App.Prc.Orders › App.Prc.PurchaseOrderProduct (sıra 3)
Yetki App.Prc.PurchaseOrderProduct + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama Sipariş Ürünleri — satınalma siparişlerinin kalemleri, siparişin başlık bilgileriyle yan yana; her satır bir sipariş kalemidir.
Kaynak Prc_V_PurchaseOrderLine · 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 App.Widget.Total, App.Widget.Draft, App.Prc.PurchaseOrder.Widget.LateReceipt, App.Widget.TotalRevenue
Butonlar App.Prc.PurchaseOrderProduct.OpenOrder
Alan Başlık Editör Zorunlu Formda Kaynak
PurchaseOrderId Satınalma Siparişi dxTextBox
OrderNo Referans dxTextBox
Status Durum dxSelectBox liste: Draft, Purchase, Cancelled
SupplierId Tedarikçi dxSelectBox sorgu: Adm_T_Contact
BranchId Şube Adı dxSelectBox sorgu: Sas_T_Branch
WarehouseId Depo dxSelectBox sorgu: Inv_T_Warehouse
OperationTypeId Operasyon Türü dxSelectBox sorgu: Inv_T_OperationType
ProductId Ürün dxSelectBox sorgu: Inv_T_Product
Description Açıklama dxTextBox
Quantity Miktar dxNumberBox
UomId Birim dxSelectBox sorgu: Adm_T_Uom
UnitPrice Birim Fiyat dxNumberBox
TaxRate Vergi Oran dxNumberBox
UntaxedAmount Vergi Hariç Tutar dxNumberBox
TaxAmount Vergi Tutarı dxNumberBox
Amount Tutar dxNumberBox
CurrencyId Para Birimi dxSelectBox sorgu: Sas_H_Currency
DeliveryDate Teslim Tarihi dxDateBox
ConfirmDate Onaylama Tarihi dxDateBox
ExpectedArrival Beklenen Geliş dxDateBox
ArrivalDate Varış dxDateBox
BuyerUserId Alıcı dxSelectBox sorgu: AbpUsers
RequestNo Talep No dxTextBox
SourceDocument Kaynak dxTextBox

Teklif Kalemleri — App.Prc.PurchaseRfqLine

Özellik Değer
Wizard wizard/Prc_PurchaseRfqLine.json
Yol Liste (Wizard)
Menü Menüsüz (alt form)
Yetki App.Prc.PurchaseRfqLine + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama Teklif Kalemleri — teklif talebinin ürünleri ve tedarikçinin her biri için verdiği fiyat ile termin.
Geliştirme talebi Satınalma -> Siparişler
Kaynak Prc_T_PurchaseRfqLine · filtre "IsDeleted" = 'false'
Görünümler Grid, Card, Pivot, Chart (açılış grid)
Düzenleme ekle ✓ · düzenle ✓ · sil ✓ · popup
Kapsam Kiracı
Komutlar InsertBefore: SQL · InsertAfter: Prc_P_PurchaseRfqRecalc · UpdateBefore: SQL · UpdateAfter: Prc_P_PurchaseRfqRecalc · DeleteBefore: SQL · DeleteAfter: Prc_P_PurchaseRfqRecalc
Form varsayılanları Quantity=1
Alan Başlık Editör Zorunlu Formda Kaynak
PurchaseRfqId Teklif Talebi dxTextBox
ProductId Ürün dxSelectBox ✓ ✓ sorgu: Inv_T_Product · script
Description Açıklama dxTextBox ✓
Quantity Miktar dxNumberBox ✓ ✓ script
UomId Birim dxSelectBox ✓ ✓ sorgu: Adm_T_Uom
UnitPrice Birim Fiyat dxNumberBox ✓ ✓ script
TaxRate Vergi Oran dxNumberBox ✓ ✓ script
Amount Tutar dxNumberBox ✓ script
DeliveryDate Teslim Tarihi dxDateBox ✓
MaterialRequestItemId Talep dxSelectBox ✓ sorgu: Prc_T_MaterialRequestItem

Teklif Talep Kalemleri — App.Prc.PurchaseRfqImportItem

Özellik Değer
Wizard wizard/Prc_PurchaseRfqImportItem.json
Yol Liste (Wizard)
Menü Menüsüz (alt form)
Yetki App.Prc.PurchaseRfqImportItem + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama Teklif Talep Kalemleri — onaylı malzeme taleplerinin henüz teklif istenmemiş kalemleri, açık teklif talebi için listelenir.
Geliştirme talebi Satınalma -> Siparişler
Kaynak Prc_V_PurchaseImportItem
Görünümler Grid, Card, Pivot, Chart (açılış grid)
Düzenleme ekle ✗ · düzenle ✗ · sil ✗ · batch
Kapsam Kiracı
Butonlar App.Prc.PurchaseImportItem.TransferSelected
Alan Başlık Editör Zorunlu Formda Kaynak
BaseId Ana Belge dxTextBox
RequestNo Talep No dxTextBox
RequesterUserId Talep Eden dxSelectBox sorgu: AbpUsers
ProductId Ürün dxSelectBox sorgu: Inv_T_Product
Quantity Miktar dxNumberBox
UomId Birim dxSelectBox sorgu: Adm_T_Uom
DueDate Bitiş Tarihi dxDateBox
RequestReason Talep Nedeni dxTextBox

Tedarikçi Teklifi — App.Prc.PurchaseRfqQuote

Özellik Değer
Wizard wizard/Prc_PurchaseRfqQuote.json
Yol Liste (Wizard)
Menü Menüsüz (alt form)
Yetki App.Prc.PurchaseRfqQuote + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama Tedarikçi Teklifi — tedarikçinin teklif talebine verdiği yanıt.
Geliştirme talebi Satınalma -> Siparişler
Kaynak Prc_T_PurchaseRfq · filtre "IsDeleted" = 'false'
Görünümler Grid, Card, Pivot, Chart (açılış grid)
Düzenleme ekle ✗ · düzenle ✓ · sil ✗ · popup
Kapsam Kiracı
Komutlar UpdateBefore: SQL · UpdateAfter: Prc_P_PurchaseRfqAfterSave
Form varsayılanları SupplierResponse=Waiting
Alan Başlık Editör Zorunlu Formda Kaynak
SupplierResponse Tedarikçi Yanıtı dxSelectBox ✓ ✓ liste: Waiting, Quoted, NotQuoted
QuoteDate Teklif Tarihi dxDateBox ✓
QuoteValidUntil Teklif Geçerliliği dxDateBox ✓

Teklif Diğer Bilgiler — App.Prc.PurchaseRfqOther

Özellik Değer
Wizard wizard/Prc_PurchaseRfqOther.json
Yol Liste (Wizard)
Menü Menüsüz (alt form)
Yetki App.Prc.PurchaseRfqOther + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama Teklif Diğer Bilgiler — teklif talebinin alıcı, proje, ticari koşulları ve kıyas ağırlıkları.
Geliştirme talebi Satınalma -> Siparişler
Kaynak Prc_T_PurchaseRfq · filtre "IsDeleted" = 'false'
Görünümler Grid, Card, Pivot, Chart (açılış grid)
Düzenleme ekle ✗ · düzenle ✓ · sil ✗ · popup
Kapsam Kiracı
Komutlar UpdateBefore: SQL · UpdateAfter: Prc_P_PurchaseRfqAfterSave
Alan Başlık Editör Zorunlu Formda Kaynak
BuyerUserId Alıcı dxSelectBox ✓ ✓ sorgu: AbpUsers
PaymentTermId Ödeme Süresi dxSelectBox ✓ sorgu: Prc_T_PaymentTerm
ProjectId Proje dxSelectBox ✓ sorgu: Prj_T_Project
IncotermId Teslimat Koşulu dxSelectBox ✓ sorgu: Prc_T_Incoterm
IncotermLocation Incoterm Konumu dxTextBox ✓
PriceWeight Fiyat Ağırlığı (%) dxNumberBox ✓ ✓
DeliveryWeight Termin Ağırlığı (%) dxNumberBox ✓ ✓

İhale Teklifleri — App.Prc.PurchaseRfqAlternative

Özellik Değer
Wizard wizard/Prc_PurchaseRfqAlternative.json
Yol Liste (Wizard)
Menü Menüsüz (alt form)
Yetki App.Prc.PurchaseRfqAlternative + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama İhale Teklifleri — aynı ihalenin diğer teklif talepleri.
Geliştirme talebi Satınalma -> Siparişler
Kaynak Prc_V_PurchaseRfqAlternative · 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
BaseId Ana Belge dxTextBox
RfqNo Teklif Talep No dxTextBox
SupplierId Tedarikçi dxSelectBox ✓ ✓ sorgu: Adm_T_Contact
Status Durum dxSelectBox liste: Draft, Sent, Purchase, Cancelled
SupplierResponse Tedarikçi Yanıtı dxSelectBox liste: Waiting, Quoted, NotQuoted
OrderDeadline Sipariş Zaman Sınırı dxDateBox
ExpectedArrival Beklenen Geliş dxDateBox
UntaxedAmount Vergi Hariç Tutar dxNumberBox
TotalAmount Toplam Tutar dxNumberBox
CurrencyId Para Birimi dxTextBox

Fiyat Karşılaştırması — App.Prc.PurchaseRfqComparison

Özellik Değer
Wizard wizard/Prc_PurchaseRfqComparison.json
Yol Liste (Wizard)
Menü Menüsüz (alt form)
Yetki App.Prc.PurchaseRfqComparison + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama Fiyat Karşılaştırması — ihalenin her kalemi tedarikçi bazında yan yana, fiyat ve termine göre puanlanmış.
Geliştirme talebi Satınalma -> Siparişler
Kaynak Prc_V_PurchaseRfqComparison · filtre "IsDeleted" = 'false'
Görünümler Grid, Card, Pivot, Chart (açılış grid)
Düzenleme ekle ✗ · düzenle ✓ · sil ✗ · batch
Kapsam Kiracı
Alan Başlık Editör Zorunlu Formda Kaynak
BaseId Ana Belge dxTextBox
ProductId Ürün dxSelectBox sorgu: Inv_T_Product
RfqNo Teklif Talep No dxTextBox
SupplierId Tedarikçi dxSelectBox sorgu: Adm_T_Contact
Status Durum dxSelectBox liste: Draft, Sent, Purchase, Cancelled
Quantity Miktar dxNumberBox
UomId Birim dxSelectBox sorgu: Adm_T_Uom
UnitPrice Birim Fiyat dxNumberBox ✓ ✓
CurrencyId Para Birimi dxTextBox
PriceTry Fiyat (TL) dxNumberBox
DeliveryDate Teslim Tarihi dxDateBox ✓
LeadDays Termin (Gün) dxNumberBox
Score Puan dxNumberBox
IsRecommended Önerilen dxCheckBox
IsSelected Seçili dxCheckBox ✓

Sipariş Kalemleri — App.Prc.PurchaseOrderLine

Özellik Değer
Wizard wizard/Prc_PurchaseOrderLine.json
Yol Liste (Wizard)
Menü Menüsüz (alt form)
Yetki App.Prc.PurchaseOrderLine + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama Sipariş Kalemleri — satınalma siparişinin ürünleri.
Geliştirme talebi Satınalma -> Siparişler
Kaynak Prc_T_PurchaseOrderLine · filtre "IsDeleted" = 'false'
Görünümler Grid, Card, Pivot, Chart (açılış grid)
Düzenleme ekle ✓ · düzenle ✓ · sil ✓ · popup
Kapsam Kiracı
Komutlar InsertBefore: SQL · InsertAfter: Prc_P_PurchaseOrderRecalc · UpdateBefore: SQL · UpdateAfter: Prc_P_PurchaseOrderRecalc · DeleteBefore: SQL · DeleteAfter: Prc_P_PurchaseOrderRecalc
Form varsayılanları Quantity=1
Alan Başlık Editör Zorunlu Formda Kaynak
PurchaseOrderId Satınalma Siparişi dxTextBox
ProductId Ürün dxSelectBox ✓ ✓ sorgu: Inv_T_Product · script
Description Açıklama dxTextBox ✓
Quantity Miktar dxNumberBox ✓ ✓ script
ReceivedQuantity Alınan dxNumberBox
UomId Birim dxSelectBox ✓ ✓ sorgu: Adm_T_Uom
UnitPrice Birim Fiyat dxNumberBox ✓ ✓ script
TaxRate Vergi Oran dxNumberBox ✓ ✓ script
Amount Tutar dxNumberBox ✓ script
DeliveryDate Teslim Tarihi dxDateBox ✓
MaterialRequestItemId Talep dxSelectBox ✓ sorgu: Prc_T_MaterialRequestItem

Sipariş Talep Kalemleri — App.Prc.PurchaseOrderImportItem

Özellik Değer
Wizard wizard/Prc_PurchaseOrderImportItem.json
Yol Liste (Wizard)
Menü Menüsüz (alt form)
Yetki App.Prc.PurchaseOrderImportItem + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama Sipariş Talep Kalemleri — onaylı malzeme taleplerinin henüz hiçbir teklifte ya da siparişte olmayan kalemleri, teklifsiz yazılan taslak sipariş için listelenir.
Geliştirme talebi Satınalma -> Siparişler
Kaynak Prc_V_PurchaseImportItem
Görünümler Grid, Card, Pivot, Chart (açılış grid)
Düzenleme ekle ✗ · düzenle ✗ · sil ✗ · batch
Kapsam Kiracı
Butonlar App.Prc.PurchaseImportItem.TransferSelected
Alan Başlık Editör Zorunlu Formda Kaynak
BaseId Ana Belge dxTextBox
RequestNo Talep No dxTextBox
RequesterUserId Talep Eden dxSelectBox sorgu: AbpUsers
ProductId Ürün dxSelectBox sorgu: Inv_T_Product
Quantity Miktar dxNumberBox
UomId Birim dxSelectBox sorgu: Adm_T_Uom
DueDate Bitiş Tarihi dxDateBox
RequestReason Talep Nedeni dxTextBox

Diğer Bilgiler — App.Prc.PurchaseOrderOther

Özellik Değer
Wizard wizard/Prc_PurchaseOrderOther.json
Yol Liste (Wizard)
Menü Menüsüz (alt form)
Yetki App.Prc.PurchaseOrderOther + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama Diğer Bilgiler — satınalma siparişinin alıcı, proje ve ticari koşulları.
Geliştirme talebi Satınalma -> Siparişler
Kaynak Prc_T_PurchaseOrder · filtre "IsDeleted" = 'false'
Görünümler Grid, Card, Pivot, Chart (açılış grid)
Düzenleme ekle ✗ · düzenle ✓ · sil ✗ · popup
Kapsam Kiracı
Komutlar UpdateBefore: SQL
Alan Başlık Editör Zorunlu Formda Kaynak
BuyerUserId Alıcı dxSelectBox ✓ ✓ sorgu: AbpUsers
PaymentTermId Ödeme Süresi dxSelectBox ✓ sorgu: Prc_T_PaymentTerm
ProjectId Proje dxSelectBox ✓ sorgu: Prj_T_Project
IncotermId Teslimat Koşulu dxSelectBox ✓ sorgu: Prc_T_Incoterm
IncotermLocation Incoterm Konumu dxTextBox ✓

Kaynak Teklifler — App.Prc.PurchaseOrderAlternative

Özellik Değer
Wizard wizard/Prc_PurchaseOrderAlternative.json
Yol Liste (Wizard)
Menü Menüsüz (alt form)
Yetki App.Prc.PurchaseOrderAlternative + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama Kaynak Teklifler — satınalma siparişinin dönüştürüldüğü ihalenin teklif talepleri.
Geliştirme talebi Satınalma -> Siparişler
Kaynak Prc_V_PurchaseRfqAlternative · 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
BaseId Ana Belge dxTextBox
RfqNo Teklif Talep No dxTextBox
SupplierId Tedarikçi dxSelectBox sorgu: Adm_T_Contact
Status Durum dxSelectBox liste: Draft, Sent, Purchase, Cancelled
SupplierResponse Tedarikçi Yanıtı dxSelectBox liste: Waiting, Quoted, NotQuoted
OrderDeadline Sipariş Zaman Sınırı dxDateBox
ExpectedArrival Beklenen Geliş dxDateBox
UntaxedAmount Vergi Hariç Tutar dxNumberBox
TotalAmount Toplam Tutar dxNumberBox
CurrencyId Para Birimi dxTextBox

Alternatif Tedarikçiler — App.Prc.PurchaseRfqAlternativeSupplier

Özellik Değer
Wizard wizard/Prc_PurchaseRfqAlternativeSupplier.json
Yol Liste (Wizard)
Menü Menüsüz (alt form)
Yetki App.Prc.PurchaseRfqAlternativeSupplier + .Create, .Update, .Delete, .Export, .Import, .Note
Açıklama Alternatif Tedarikçiler — ihalede henüz teklif talebi olmayan aktif kontaklar, açık teklif talebine alternatif eklemek için listelenir.
Geliştirme talebi Satınalma -> Siparişler
Kaynak Prc_V_PurchaseRfqAlternativeSupplier
Görünümler Grid, Card, Pivot, Chart (açılış grid)
Düzenleme ekle ✗ · düzenle ✗ · sil ✗ · batch
Kapsam Kiracı
Butonlar App.Prc.PurchaseRfqAlternativeSupplier.CreateSelected
Alan Başlık Editör Zorunlu Formda Kaynak
BaseId Ana Belge dxTextBox
Name Adı dxTextBox
City Şehir dxTextBox
Phone Telefon dxTextBox
Email E-posta dxTextBox
SupplierCurrency Tedarikçi Para Birimi dxTextBox