Bu sayfa procurement modülünün mrp alt modülündeki 44 uç noktayı /api/v1/procurement altında listeler. Kapsam: Kalemler, özet, kalem eylemleri, satın alma talebi oluşturma, zaman evreli ve bağlantı okumaları, sabitleme, üretim emrine dönüştürme, karşılaştırma ve somutlaştırmayla MRP çalıştırmaları (ön planda ve arka planda); ayrıca KPI, planlı bağımsız ihtiyaçlar, netleştirme grupları, stok ihtiyaçları, planlama dosyası, analizler, tamponlar, emniyet süresi dönemleri, kotalar ve ATP. 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 | 1 dosyada 1 yönlendirici nesnesi; Uç noktalar bölümünde listelenir | src/cluster_erp/modules/procurement/module.py:35 |
| Uç noktalar | 44; 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/mrp/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ı | 44 yolun 44 tanesi require_permission bildirir |
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/mrp/runs |
list_runs |
mrp_run.read |
yok | status, limit, offset |
dict |
200 (varsayılan) | src/cluster_erp/modules/procurement/mrp/routes.py:57 |
POST |
/api/v1/procurement/mrp/runs |
execute_run |
mrp_run.create |
MrpRunCreate |
yok | MrpRunRead |
201 |
src/cluster_erp/modules/procurement/mrp/routes.py:105 |
POST |
/api/v1/procurement/mrp/runs/background |
execute_run_background |
mrp_run.create |
MrpRunCreate |
yok | MrpRunRead |
202 |
src/cluster_erp/modules/procurement/mrp/routes.py:121 |
GET |
/api/v1/procurement/mrp/runs/{run_id} |
get_run |
mrp_run.read |
yok | yok | MrpRunRead |
200 (varsayılan) | src/cluster_erp/modules/procurement/mrp/routes.py:140 |
GET |
/api/v1/procurement/mrp/runs/{run_id}/items |
get_run_items |
mrp_run.read |
yok | exception_only, planned_order_only, product_id, project_id, mrp_controller, limit, offset |
dict |
200 (varsayılan) | src/cluster_erp/modules/procurement/mrp/routes.py:156 |
GET |
/api/v1/procurement/mrp/runs/{run_id}/summary |
get_run_summary |
mrp_run.read |
yok | yok | MrpRunSummary |
200 (varsayılan) | src/cluster_erp/modules/procurement/mrp/routes.py:193 |
GET |
/api/v1/procurement/mrp/runs/{run_id}/items/{item_id} |
get_run_item |
mrp_run.read |
yok | yok | MrpRunItemRead |
200 (varsayılan) | src/cluster_erp/modules/procurement/mrp/routes.py:205 |
PATCH |
/api/v1/procurement/mrp/runs/{run_id}/items/{item_id}/action |
action_item |
mrp_run.create |
MrpItemActionRequest |
yok | MrpRunItemRead |
200 (varsayılan) | src/cluster_erp/modules/procurement/mrp/routes.py:223 |
POST |
/api/v1/procurement/mrp/runs/{run_id}/items/bulk-action |
bulk_action_items |
mrp_run.create |
MrpBulkActionRequest |
yok | dict |
200 (varsayılan) | src/cluster_erp/modules/procurement/mrp/routes.py:240 |
POST |
/api/v1/procurement/mrp/runs/{run_id}/create-pr |
create_pr_from_items |
mrp_run.create |
CreatePrFromMrpRequest |
yok | dict |
201 |
src/cluster_erp/modules/procurement/mrp/routes.py:255 |
DELETE |
/api/v1/procurement/mrp/runs/{run_id} |
delete_run |
mrp_run.delete |
yok | yok | yok | 204 |
src/cluster_erp/modules/procurement/mrp/routes.py:274 |
GET |
/api/v1/procurement/mrp/runs/{run_id}/products/{product_id}/time-phased |
get_time_phased |
mrp_run.read |
yok | yok | TimePhasedResponse |
200 (varsayılan) | src/cluster_erp/modules/procurement/mrp/routes.py:286 |
GET |
/api/v1/procurement/mrp/runs/{run_id}/products/{product_id}/pegging |
get_pegging |
mrp_run.read |
yok | yok | PeggingResponse |
200 (varsayılan) | src/cluster_erp/modules/procurement/mrp/routes.py:302 |
POST |
/api/v1/procurement/mrp/runs/{run_id}/items/firm |
firm_items |
mrp_run.create |
MrpFirmRequest |
yok | dict |
200 (varsayılan) | src/cluster_erp/modules/procurement/mrp/routes.py:318 |
POST |
/api/v1/procurement/mrp/runs/{run_id}/items/unfirm |
unfirm_items |
mrp_run.create |
MrpFirmRequest |
yok | dict |
200 (varsayılan) | src/cluster_erp/modules/procurement/mrp/routes.py:334 |
POST |
/api/v1/procurement/mrp/runs/{run_id}/items/{item_id}/convert-to-order |
convert_item_to_production_order |
mrp_run.create |
yok | force |
dict |
201 |
src/cluster_erp/modules/procurement/mrp/routes.py:359 |
GET |
/api/v1/procurement/mrp/runs/{run_id}/compare/{other_run_id} |
compare_runs |
mrp_run.read |
yok | yok | dict |
200 (varsayılan) | src/cluster_erp/modules/procurement/mrp/routes.py:448 |
POST |
/api/v1/procurement/mrp/runs/{run_id}/materialize |
materialize_simulation |
mrp_run.create |
yok | yok | MrpRunRead |
201 |
src/cluster_erp/modules/procurement/mrp/routes.py:545 |
GET |
/api/v1/procurement/mrp/kpi |
mrp_kpi |
mrp_run.read |
yok | runs_window |
dict |
200 (varsayılan) | src/cluster_erp/modules/procurement/mrp/routes.py:594 |
GET |
/api/v1/procurement/mrp/pirs |
list_pirs |
mrp_run.read |
yok | product_id, limit, offset |
dict |
200 (varsayılan) | src/cluster_erp/modules/procurement/mrp/routes.py:725 |
POST |
/api/v1/procurement/mrp/pirs |
create_pir |
mrp_run.create |
PirCreate |
yok | PirRead |
201 |
src/cluster_erp/modules/procurement/mrp/routes.py:768 |
PUT |
/api/v1/procurement/mrp/pirs/{pir_id} |
update_pir |
mrp_run.create |
PirUpdate |
yok | PirRead |
200 (varsayılan) | src/cluster_erp/modules/procurement/mrp/routes.py:816 |
DELETE |
/api/v1/procurement/mrp/pirs/{pir_id} |
delete_pir |
mrp_run.create |
yok | yok | yok | 204 |
src/cluster_erp/modules/procurement/mrp/routes.py:850 |
GET |
/api/v1/procurement/mrp/netting-groups |
list_netting_groups |
mrp_run.read |
yok | yok | dict |
200 (varsayılan) | src/cluster_erp/modules/procurement/mrp/routes.py:872 |
POST |
/api/v1/procurement/mrp/netting-groups |
create_netting_group |
mrp_run.create |
NettingGroupCreate |
yok | dict |
201 |
src/cluster_erp/modules/procurement/mrp/routes.py:918 |
POST |
/api/v1/procurement/mrp/netting-groups/{group_id}/projects |
assign_netting_group_project |
mrp_run.create |
NettingGroupAssign |
yok | dict |
201 |
src/cluster_erp/modules/procurement/mrp/routes.py:933 |
GET |
/api/v1/procurement/mrp/stock-requirements |
get_stock_requirements |
mrp_run.read |
yok | product_id |
dict |
200 (varsayılan) | src/cluster_erp/modules/procurement/mrp/routes.py:976 |
GET |
/api/v1/procurement/mrp/planning-file |
list_planning_file |
mrp_run.read |
yok | product_id, include_processed, limit, offset |
dict |
200 (varsayılan) | src/cluster_erp/modules/procurement/mrp/routes.py:991 |
POST |
/api/v1/procurement/mrp/analysis/xyz |
analyze_xyz |
mrp_run.create |
XyzAnalysisRequest |
yok | dict |
200 (varsayılan) | src/cluster_erp/modules/procurement/mrp/routes.py:1047 |
GET |
/api/v1/procurement/mrp/analysis/lead-time |
analyze_lead_time |
mrp_run.read |
yok | product_id |
dict |
200 (varsayılan) | src/cluster_erp/modules/procurement/mrp/routes.py:1197 |
GET |
/api/v1/procurement/mrp/runs/{run_id}/products/{product_id}/pegging-chain |
get_pegging_chain |
mrp_run.read |
yok | max_depth |
dict |
200 (varsayılan) | src/cluster_erp/modules/procurement/mrp/routes.py:1328 |
POST |
/api/v1/procurement/mrp/analysis/buffer-suggestions |
buffer_suggestions |
mrp_run.read |
XyzAnalysisRequest |
yok | dict |
200 (varsayılan) | src/cluster_erp/modules/procurement/mrp/routes.py:1347 |
POST |
/api/v1/procurement/mrp/ddmrp/apply-buffers |
apply_buffers |
mrp_run.create |
ApplyBuffersRequest |
yok | dict |
200 (varsayılan) | src/cluster_erp/modules/procurement/mrp/routes.py:1499 |
GET |
/api/v1/procurement/mrp/analysis/decoupling-candidates |
decoupling_candidates |
mrp_run.read |
yok | limit |
dict |
200 (varsayılan) | src/cluster_erp/modules/procurement/mrp/routes.py:1554 |
GET |
/api/v1/procurement/mrp/safety-time-periods |
list_safety_time_periods |
mrp_run.read |
yok | product_id, limit, offset |
dict |
200 (varsayılan) | src/cluster_erp/modules/procurement/mrp/routes.py:1696 |
POST |
/api/v1/procurement/mrp/safety-time-periods |
create_safety_time_period |
mrp_run.create |
StpCreate |
yok | StpRead |
201 |
src/cluster_erp/modules/procurement/mrp/routes.py:1732 |
PUT |
/api/v1/procurement/mrp/safety-time-periods/{stp_id} |
update_safety_time_period |
mrp_run.create |
StpUpdate |
yok | StpRead |
200 (varsayılan) | src/cluster_erp/modules/procurement/mrp/routes.py:1766 |
DELETE |
/api/v1/procurement/mrp/safety-time-periods/{stp_id} |
delete_safety_time_period |
mrp_run.create |
yok | yok | yok | 204 |
src/cluster_erp/modules/procurement/mrp/routes.py:1806 |
GET |
/api/v1/procurement/mrp/quotas |
list_quotas |
mrp_run.read |
yok | product_id, limit, offset |
dict |
200 (varsayılan) | src/cluster_erp/modules/procurement/mrp/routes.py:1834 |
POST |
/api/v1/procurement/mrp/quotas |
create_quota |
mrp_run.create |
QuotaCreate |
yok | QuotaRead |
201 |
src/cluster_erp/modules/procurement/mrp/routes.py:1871 |
PUT |
/api/v1/procurement/mrp/quotas/{quota_id} |
update_quota |
mrp_run.create |
QuotaUpdate |
yok | QuotaRead |
200 (varsayılan) | src/cluster_erp/modules/procurement/mrp/routes.py:1955 |
DELETE |
/api/v1/procurement/mrp/quotas/{quota_id} |
delete_quota |
mrp_run.create |
yok | yok | yok | 204 |
src/cluster_erp/modules/procurement/mrp/routes.py:1997 |
GET |
/api/v1/procurement/mrp/atp/{product_id} |
get_atp |
mrp_run.read |
yok | horizon_days |
dict |
200 (varsayılan) | src/cluster_erp/modules/procurement/mrp/routes.py:2214 |
POST |
/api/v1/procurement/mrp/atp/check |
atp_check |
mrp_run.read |
AtpCheckRequest |
yok | dict |
200 (varsayılan) | src/cluster_erp/modules/procurement/mrp/routes.py:2231 |
Hata kodları¶
Tablo, src/cluster_erp/modules/procurement/mrp/ 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 |
routes |
src/cluster_erp/modules/procurement/mrp/routes.py:832 |
MRP_ITEMS_ALREADY_ACTIONED |
409 |
services |
src/cluster_erp/modules/procurement/mrp/services.py:370 |
MRP_ITEMS_ALREADY_FIRMED |
409 |
services |
src/cluster_erp/modules/procurement/mrp/services.py:1314 |
MRP_ITEM_OUTSIDE_OPENING_PERIOD |
422 |
routes |
src/cluster_erp/modules/procurement/mrp/routes.py:399 |
MRP_RUN_FAILED |
400, 500 |
engine, services |
src/cluster_erp/modules/procurement/mrp/engine.py:3931 |
MRP_RUN_IN_PROGRESS |
409 |
services |
src/cluster_erp/modules/procurement/mrp/services.py:172 |
MRP_RUN_NOT_COMPLETED |
409 |
services |
src/cluster_erp/modules/procurement/mrp/services.py:341 |
MRP_RUN_STALE |
409 |
services |
src/cluster_erp/modules/procurement/mrp/services.py:347 |
RESOURCE_NOT_FOUND |
404 |
routes, services |
src/cluster_erp/modules/procurement/mrp/routes.py:102 |
VALIDATION_ERROR |
409, 422 |
routes, services |
src/cluster_erp/modules/procurement/mrp/routes.py:386 |
İlgili sayfalar¶
92f8051 numaralı commit ile 2026-11-13 tarihinde doğrulandı.