Bu sayfa procurement modülünün purchase_rfqs alt modülündeki 35 uç noktayı /api/v1/procurement altında listeler. Kapsam: İki yönlendirici: gönderme, değerlendirme, ihale, kapatma, iptal, yeniden açma, kalemler, davetli satıcılar, teklifler, ölçütler, puanlama ve karşılaştırmayla teklif talebi kayıtları; ve yolunda belirteç bulunan portal_routes.py içindeki tedarikçi portalı yönlendiricisi. Modül giriş sayfası Procurement API sayfasıdır.
Grup olguları¶
| Öğe | Değer | Kaynak |
|---|---|---|
| Temel yol | /api/v1/procurement |
src/cluster_erp/core/module_base.py:37-38, src/cluster_erp/modules/procurement/module.py:70 |
| Yönlendiriciler | 2 dosyada 2 yönlendirici nesnesi; Uç noktalar bölümünde listelenir | src/cluster_erp/modules/procurement/module.py:35 |
| Uç noktalar | 35; register_routes ile bağlanan yönlendiricilerin yol dekoratörleri ve add_api_route çağrılarından sayıldı |
src/cluster_erp/modules/procurement/purchase_rfqs/portal_routes.py, src/cluster_erp/modules/procurement/purchase_rfqs/routes.py |
| Kimlik doğrulama | Bearer başlığı veya oturum çerezi, get_current_user ile çözülür; bkz. Kimlik doğrulama ve başlıklar |
src/cluster_erp/modules/auth/guards.py:85-167 |
| Yetki koruması | 35 yolun 32 tanesi require_permission bildirir; diğer yollar korumalarını tablolarda gösterir |
src/cluster_erp/modules/auth/guards.py:205-240 |
| Uygulama yetkilendirme kapısı | bağlanan her yönlendiricide require_app("procurement") |
src/cluster_erp/modules/procurement/module.py:82 |
| Hata biçimi | JSON gövdesi {"error": {...}}; bkz. Hatalar |
src/cluster_erp/server/error_handler.py:33-46 |
Uç noktalar¶
| Yöntem | Yol | İşleyici | Yetki | İstek | Sorgu | Yanıt | Durum | Kaynak |
|---|---|---|---|---|---|---|---|---|
GET |
/api/v1/procurement/purchase-rfqs/ |
list_rfqs |
purchase_rfq.read |
yok | search, status, vendor_party_id, limit, offset |
dict |
200 (varsayılan) | src/cluster_erp/modules/procurement/purchase_rfqs/routes.py:66 |
POST |
/api/v1/procurement/purchase-rfqs/ |
create_rfq |
purchase_rfq.create |
PurchaseRfqCreate |
yok | PurchaseRfqRead |
201 |
src/cluster_erp/modules/procurement/purchase_rfqs/routes.py:102 |
GET |
/api/v1/procurement/purchase-rfqs/{rfq_id} |
get_rfq |
purchase_rfq.read |
yok | yok | PurchaseRfqRead |
200 (varsayılan) | src/cluster_erp/modules/procurement/purchase_rfqs/routes.py:113 |
PUT |
/api/v1/procurement/purchase-rfqs/{rfq_id} |
update_rfq |
purchase_rfq.update |
PurchaseRfqUpdate |
yok | PurchaseRfqRead |
200 (varsayılan) | src/cluster_erp/modules/procurement/purchase_rfqs/routes.py:126 |
DELETE |
/api/v1/procurement/purchase-rfqs/{rfq_id} |
delete_rfq |
purchase_rfq.delete |
yok | yok | yok | 204 |
src/cluster_erp/modules/procurement/purchase_rfqs/routes.py:140 |
POST |
/api/v1/procurement/purchase-rfqs/bulk-delete |
bulk_delete_rfqs |
purchase_rfq.delete |
BulkDeleteRequest |
yok | BulkDeleteResponse |
200 (varsayılan) | src/cluster_erp/modules/procurement/purchase_rfqs/routes.py:151 |
GET |
/api/v1/procurement/purchase-rfqs/{rfq_id}/completeness |
get_completeness |
purchase_rfq.read |
yok | yok | dict |
200 (varsayılan) | src/cluster_erp/modules/procurement/purchase_rfqs/routes.py:166 |
POST |
/api/v1/procurement/purchase-rfqs/{rfq_id}/send |
send_rfq |
purchase_rfq.send |
RfqTransition |
yok | PurchaseRfqRead |
200 (varsayılan) | src/cluster_erp/modules/procurement/purchase_rfqs/routes.py:181 |
POST |
/api/v1/procurement/purchase-rfqs/{rfq_id}/start-evaluation |
start_evaluation |
purchase_rfq.evaluate |
RfqTransition |
yok | PurchaseRfqRead |
200 (varsayılan) | src/cluster_erp/modules/procurement/purchase_rfqs/routes.py:193 |
POST |
/api/v1/procurement/purchase-rfqs/{rfq_id}/reopen-bidding |
reopen_bidding |
purchase_rfq.evaluate |
RfqTransition |
yok | PurchaseRfqRead |
200 (varsayılan) | src/cluster_erp/modules/procurement/purchase_rfqs/routes.py:207 |
POST |
/api/v1/procurement/purchase-rfqs/{rfq_id}/award |
award_rfq |
purchase_rfq.award |
PurchaseRfqAwardRequest |
yok | PurchaseRfqRead |
200 (varsayılan) | src/cluster_erp/modules/procurement/purchase_rfqs/routes.py:221 |
POST |
/api/v1/procurement/purchase-rfqs/{rfq_id}/close |
close_rfq |
purchase_rfq.evaluate |
RfqTransition |
yok | PurchaseRfqRead |
200 (varsayılan) | src/cluster_erp/modules/procurement/purchase_rfqs/routes.py:240 |
POST |
/api/v1/procurement/purchase-rfqs/{rfq_id}/cancel |
cancel_rfq |
purchase_rfq.cancel |
RfqReasonTransition |
yok | PurchaseRfqRead |
200 (varsayılan) | src/cluster_erp/modules/procurement/purchase_rfqs/routes.py:252 |
POST |
/api/v1/procurement/purchase-rfqs/{rfq_id}/reopen |
reopen_rfq |
purchase_rfq.update |
RfqTransition |
yok | PurchaseRfqRead |
200 (varsayılan) | src/cluster_erp/modules/procurement/purchase_rfqs/routes.py:266 |
GET |
/api/v1/procurement/purchase-rfqs/{rfq_id}/lines |
list_lines |
purchase_rfq.read |
yok | search |
list[PurchaseRfqLineRead] |
200 (varsayılan) | src/cluster_erp/modules/procurement/purchase_rfqs/routes.py:279 |
POST |
/api/v1/procurement/purchase-rfqs/{rfq_id}/lines |
add_line |
purchase_rfq.update |
PurchaseRfqLineCreate |
yok | PurchaseRfqLineRead |
201 |
src/cluster_erp/modules/procurement/purchase_rfqs/routes.py:291 |
PUT |
/api/v1/procurement/purchase-rfq-lines/{line_id} |
update_line |
purchase_rfq.update |
PurchaseRfqLineUpdate |
yok | PurchaseRfqLineRead |
200 (varsayılan) | src/cluster_erp/modules/procurement/purchase_rfqs/routes.py:303 |
DELETE |
/api/v1/procurement/purchase-rfq-lines/{line_id} |
delete_line |
purchase_rfq.update |
yok | yok | yok | 204 |
src/cluster_erp/modules/procurement/purchase_rfqs/routes.py:317 |
GET |
/api/v1/procurement/purchase-rfqs/{rfq_id}/vendors |
list_vendors |
purchase_rfq.read |
yok | search |
list[PurchaseRfqVendorRead] |
200 (varsayılan) | src/cluster_erp/modules/procurement/purchase_rfqs/routes.py:329 |
POST |
/api/v1/procurement/purchase-rfqs/{rfq_id}/vendors |
invite_vendor |
purchase_rfq.update |
PurchaseRfqVendorInvite |
yok | PurchaseRfqVendorRead |
201 |
src/cluster_erp/modules/procurement/purchase_rfqs/routes.py:341 |
DELETE |
/api/v1/procurement/purchase-rfq-vendors/{vendor_id} |
remove_vendor |
purchase_rfq.update |
yok | yok | yok | 204 |
src/cluster_erp/modules/procurement/purchase_rfqs/routes.py:357 |
GET |
/api/v1/procurement/purchase-rfq-vendors/{vendor_id}/portal-token |
get_vendor_portal_token |
purchase_rfq.update |
yok | yok | PurchaseRfqVendorPortalToken |
200 (varsayılan) | src/cluster_erp/modules/procurement/purchase_rfqs/routes.py:368 |
GET |
/api/v1/procurement/purchase-rfqs/{rfq_id}/quotations |
list_quotations |
purchase_rfq.read |
yok | yok | list[PurchaseRfqQuotationRead] |
200 (varsayılan) | src/cluster_erp/modules/procurement/purchase_rfqs/routes.py:398 |
POST |
/api/v1/procurement/purchase-rfqs/{rfq_id}/quotations |
create_quotation |
purchase_rfq.update |
PurchaseRfqQuotationCreate |
yok | PurchaseRfqQuotationRead |
201 |
src/cluster_erp/modules/procurement/purchase_rfqs/routes.py:412 |
DELETE |
/api/v1/procurement/purchase-rfq-quotations/{quotation_id} |
delete_quotation |
purchase_rfq.update |
yok | yok | yok | 204 |
src/cluster_erp/modules/procurement/purchase_rfqs/routes.py:428 |
GET |
/api/v1/procurement/purchase-rfqs/{rfq_id}/criteria |
list_criteria |
purchase_rfq.read |
yok | search |
list[PurchaseRfqCriterionRead] |
200 (varsayılan) | src/cluster_erp/modules/procurement/purchase_rfqs/routes.py:440 |
POST |
/api/v1/procurement/purchase-rfqs/{rfq_id}/criteria |
add_criterion |
purchase_rfq.update |
PurchaseRfqCriterionCreate |
yok | PurchaseRfqCriterionRead |
201 |
src/cluster_erp/modules/procurement/purchase_rfqs/routes.py:452 |
PUT |
/api/v1/procurement/purchase-rfq-criteria/{criterion_id} |
update_criterion |
purchase_rfq.update |
PurchaseRfqCriterionUpdate |
yok | PurchaseRfqCriterionRead |
200 (varsayılan) | src/cluster_erp/modules/procurement/purchase_rfqs/routes.py:468 |
DELETE |
/api/v1/procurement/purchase-rfq-criteria/{criterion_id} |
delete_criterion |
purchase_rfq.update |
yok | yok | yok | 204 |
src/cluster_erp/modules/procurement/purchase_rfqs/routes.py:485 |
PUT |
/api/v1/procurement/purchase-rfqs/{rfq_id}/quotations/{quotation_id}/score |
set_score |
purchase_rfq.evaluate |
PurchaseRfqScoreSet |
yok | yok | 204 |
src/cluster_erp/modules/procurement/purchase_rfqs/routes.py:496 |
GET |
/api/v1/procurement/purchase-rfqs/{rfq_id}/scoring |
scoring |
purchase_rfq.read |
yok | yok | dict |
200 (varsayılan) | src/cluster_erp/modules/procurement/purchase_rfqs/routes.py:508 |
GET |
/api/v1/procurement/purchase-rfqs/{rfq_id}/comparison |
comparison |
purchase_rfq.read |
yok | yok | dict |
200 (varsayılan) | src/cluster_erp/modules/procurement/purchase_rfqs/routes.py:519 |
GET |
/api/v1/procurement/portal/rfqs/{token} |
portal_view |
yolda portal belirteci | yok | yok | dict |
200 (varsayılan) | src/cluster_erp/modules/procurement/purchase_rfqs/portal_routes.py:34 |
POST |
/api/v1/procurement/portal/rfqs/{token}/quotation |
portal_submit |
yolda portal belirteci | PortalQuotationSubmit |
yok | dict |
200 (varsayılan) | src/cluster_erp/modules/procurement/purchase_rfqs/portal_routes.py:45 |
POST |
/api/v1/procurement/portal/rfqs/{token}/decline |
portal_decline |
yolda portal belirteci | PortalDeclineRequest |
yok | dict |
200 (varsayılan) | src/cluster_erp/modules/procurement/purchase_rfqs/portal_routes.py:56 |
Hata kodları¶
Tablo, src/cluster_erp/modules/procurement/purchase_rfqs/ altındaki kodun attığı hata kodlarını listeler. Kodlar, AppError(...) çağrıları, src/cluster_erp/core/errors.py içindeki fabrikalar (not_found, conflict, protected, permission_denied, privilege_escalation, check_version) ve HTTPException(...) için yapılan bir sözdizimi ağacı taramasıyla bulundu. 400 durumu AppError varsayılanıdır (src/cluster_erp/core/errors.py:23). Koruma hataları (401, 403), yetkilendirme kodları ve doğrulama hataları (422) her yol için geçerlidir ve Hatalar sayfasında listelenir.
| Kod | HTTP durumu | Atıldığı yer | İlk konum |
|---|---|---|---|
CONCURRENCY_VERSION_CONFLICT |
409 |
services |
src/cluster_erp/modules/procurement/purchase_rfqs/services.py:237 |
PRFQ_AWARD_INVALID |
422 |
services |
src/cluster_erp/modules/procurement/purchase_rfqs/services.py:778 |
PRFQ_INCOMPLETE |
409 |
services |
src/cluster_erp/modules/procurement/purchase_rfqs/services.py:299 |
PRFQ_INVALID_STATUS |
409 |
services |
src/cluster_erp/modules/procurement/purchase_rfqs/services.py:188 |
RESOURCE_NOT_FOUND |
404 |
routes, services |
src/cluster_erp/modules/procurement/purchase_rfqs/routes.py:122 |
İlgili sayfalar¶
92f8051 numaralı commit ile 2026-11-13 tarihinde doğrulandı.