Bu sayfa Hatalar sayfasının devamıdır. src/cluster_erp/core/errors.py dosyasının CRM'den satın almaya iş bölümlerindeki kod sabitlerini; orada anlatılan sözdizimi ağacı taramasıyla bulunan durum, atma konumu sayısı, ilk konum ve iletiyle listeler. Atma konumu olmayan kod tanımlıdır ama taranan hiçbir çağrı onu atmaz.
İş alanına göre kodlar¶
Dosyanın her yorum bölümü için bir tablo.
CRM¶
| Kod | Tanım yeri | HTTP durumu | Atma konumu | İlk konum | İlk konumdaki ileti |
|---|---|---|---|---|---|
RFQ_INVALID_STATUS |
src/cluster_erp/core/errors.py:88 |
409 |
1 | src/cluster_erp/modules/crm/rfqs/services.py:291 |
Action '{action}' is not allowed while the RFQ is '{rfq.status}' |
RFQ_PACKAGE_INCOMPLETE |
src/cluster_erp/core/errors.py:89 |
- | 0 | - | - |
RFQ_INCOMPLETE |
src/cluster_erp/core/errors.py:90 |
409 |
1 | src/cluster_erp/modules/crm/rfqs/services.py:340 |
'RFQ is incomplete: ' + '; '.join((r.label_en for r in missing)) |
PRFQ_INVALID_STATUS |
src/cluster_erp/core/errors.py:92 |
409 |
12 | src/cluster_erp/modules/procurement/purchase_rfqs/services.py:188 |
Cannot edit an RFQ in status '{rfq.status}' |
PRFQ_INCOMPLETE |
src/cluster_erp/core/errors.py:93 |
409 |
1 | src/cluster_erp/modules/procurement/purchase_rfqs/services.py:299 |
'RFQ is incomplete: ' + '; '.join((r.label_en for r in missing)) |
PRFQ_AWARD_INVALID |
src/cluster_erp/core/errors.py:94 |
422 |
5 | src/cluster_erp/modules/procurement/purchase_rfqs/services.py:778 |
Quotation line references a line not in this RFQ |
PURQ_INVALID_STATUS |
src/cluster_erp/core/errors.py:96 |
409 |
4 | src/cluster_erp/modules/purchasing_quotations/quotations/services.py:233 |
Cannot delete a quotation in status '{q.status}' |
PURQ_INCOMPLETE |
src/cluster_erp/core/errors.py:97 |
409 |
1 | src/cluster_erp/modules/purchasing_quotations/quotations/services.py:276 |
'Quotation is incomplete: ' + '; '.join((r.label_en for r in missing)) |
PURQ_AWARD_INVALID |
src/cluster_erp/core/errors.py:98 |
422 |
2 | src/cluster_erp/modules/purchasing_quotations/quotations/services.py:305 |
Award references a line not in this quotation |
PCON_INVALID_STATUS |
src/cluster_erp/core/errors.py:100 |
409 |
3 | src/cluster_erp/modules/procurement/purchase_contracts/services.py:203 |
Cannot delete a contract in status '{c.status}' |
PCON_INCOMPLETE |
src/cluster_erp/core/errors.py:101 |
409 |
1 | src/cluster_erp/modules/procurement/purchase_contracts/services.py:246 |
'Contract is incomplete: ' + '; '.join((r.label_en for r in missing)) |
RFQ_DECLINED |
src/cluster_erp/core/errors.py:102 |
- | 0 | - | - |
RFQ_ARIBA_DUE_DATE_IMMUTABLE |
src/cluster_erp/core/errors.py:103 |
400 |
1 | src/cluster_erp/modules/crm/rfqs/services.py:225 |
Due date cannot be changed for Ariba-sourced RFQs |
RFQ_DUPLICATE_SUBJECT |
src/cluster_erp/core/errors.py:104 |
409 |
1 | src/cluster_erp/modules/crm/rfqs/services.py:521 |
An RFQ with the same subject for this customer exists within the last {window_days} days |
Teklifler¶
| Kod | Tanım yeri | HTTP durumu | Atma konumu | İlk konum | İlk konumdaki ileti |
|---|---|---|---|---|---|
QUOTE_INVALID_STATUS |
src/cluster_erp/core/errors.py:107 |
400, 409 |
8 | src/cluster_erp/modules/quotations/quotes/services.py:474 |
Quote must be in pending_mgmt_approval status |
QUOTE_NOT_APPROVED |
src/cluster_erp/core/errors.py:108 |
400 |
2 | src/cluster_erp/modules/quotations/quotes/services.py:564 |
Management approval is required before sending |
QUOTE_IMMUTABLE_AFTER_SENT |
src/cluster_erp/core/errors.py:109 |
400 |
3 | src/cluster_erp/modules/quotations/line_items/services.py:266 |
Line items cannot be modified after the quote is sent |
QUOTE_ACTIVE_EXISTS |
src/cluster_erp/core/errors.py:110 |
409 |
1 | src/cluster_erp/modules/quotations/quotes/services.py:1312 |
An active quote already exists for this RFQ |
QUOTE_FEASIBILITY_NOT_DONE |
src/cluster_erp/core/errors.py:111 |
- | 0 | - | - |
QUOTE_BOM_REQUIRED |
src/cluster_erp/core/errors.py:112 |
- | 0 | - | - |
QUOTE_COSTING_REQUIRED |
src/cluster_erp/core/errors.py:113 |
- | 0 | - | - |
QUOTE_MGMT_APPROVAL_REQUIRED |
src/cluster_erp/core/errors.py:114 |
400 |
1 | src/cluster_erp/modules/quotations/quotes/services.py:505 |
Management approval meeting must be scheduled first |
QUOTE_INCOMPLETE |
src/cluster_erp/core/errors.py:117 |
409 |
1 | src/cluster_erp/modules/quotations/quotes/services.py:583 |
'Quotation is incomplete: ' + '; '.join((r.label_en for r in missing)) |
Satış siparişleri¶
| Kod | Tanım yeri | HTTP durumu | Atma konumu | İlk konum | İlk konumdaki ileti |
|---|---|---|---|---|---|
ORDER_INVALID_STATUS |
src/cluster_erp/core/errors.py:120 |
400, 409, 422 |
25 | src/cluster_erp/modules/sales_orders/orders/services.py:194 |
Quote must be sent before a sales order can reference it |
ORDER_PO_CHECK_REQUIRED |
src/cluster_erp/core/errors.py:121 |
400 |
1 | src/cluster_erp/modules/sales_orders/orders/services.py:603 |
A passing PO check is required before accepting the order |
ORDER_ALREADY_OPENED |
src/cluster_erp/core/errors.py:122 |
- | 0 | - | - |
UNIT_LIMIT_EXCEEDED |
src/cluster_erp/core/errors.py:124 |
409, 422 |
3 | src/cluster_erp/modules/sales_orders/units/services.py:201 |
Order line {line.line_no} has a fractional quantity ({ordered}); units exist only for whol... |
UNIT_FROZEN |
src/cluster_erp/core/errors.py:125 |
409 |
1 | src/cluster_erp/modules/sales_orders/units/services.py:283 |
Unit {unit.code} is {unit.status}: its identifiers are printed on issued documents and can... |
SHIPMENT_INVALID_STATUS |
src/cluster_erp/core/errors.py:126 |
400 |
2 | src/cluster_erp/modules/sales_orders/shipments/services.py:1062 |
Cannot move shipment {shipment.code} from '{shipment.status}' to '{target}' |
SHIPMENT_CHECK_FAILED |
src/cluster_erp/core/errors.py:127 |
409, 422 |
4 | src/cluster_erp/modules/sales_orders/shipments/services.py:810 |
Unit {unit.code} is {unit.status} and cannot be shipped again |
TRADE_DOCUMENT_BLOCKED |
src/cluster_erp/core/errors.py:128 |
404, 422 |
5 | src/cluster_erp/modules/sales_orders/trade_documents/services.py:66 |
The document number template {template} needs {name} but the shipment has no value for i... |
PDF_RENDERER_UNAVAILABLE |
src/cluster_erp/core/errors.py:129 |
503 |
2 | src/cluster_erp/core/pdf_render.py:73 |
PDF rendering needs the playwright package (see pyproject) |
Projeler¶
| Kod | Tanım yeri | HTTP durumu | Atma konumu | İlk konum | İlk konumdaki ileti |
|---|---|---|---|---|---|
PROJECT_INVALID_STATUS |
src/cluster_erp/core/errors.py:132 |
400 |
1 | src/cluster_erp/modules/projects/projects/services.py:305 |
Cannot transition from '{project.status}' to '{target}' |
PROJECT_KICKOFF_NOT_DONE |
src/cluster_erp/core/errors.py:133 |
- | 0 | - | - |
PROJECT_SCHEDULE_NOT_DRAFT |
src/cluster_erp/core/errors.py:134 |
400 |
4 | src/cluster_erp/modules/projects/schedules/services.py:78 |
Only draft schedules can be updated |
PROJECT_ACTION_ALREADY_CLOSED |
src/cluster_erp/core/errors.py:135 |
400 |
1 | src/cluster_erp/modules/projects/actions/services.py:161 |
Action is already in terminal status '{action.status}' |
PROJECT_ACTIVITY_INVALID |
src/cluster_erp/core/errors.py:136 |
404, 422 |
6 | src/cluster_erp/modules/projects/activities/services.py:100 |
Schedule not found |
PROJECT_ACTIVITY_CYCLE |
src/cluster_erp/core/errors.py:137 |
422 |
2 | src/cluster_erp/modules/projects/activities/services.py:186 |
An activity cannot depend on itself |
PROJECT_ACTION_INVALID_TRANSITION |
src/cluster_erp/core/errors.py:138 |
400 |
1 | src/cluster_erp/modules/projects/actions/services.py:167 |
Cannot transition from '{action.status}' to '{target}' |
PROJECT_FIXTURE_INVALID_TRANSITION |
src/cluster_erp/core/errors.py:139 |
400 |
1 | src/cluster_erp/modules/projects/fixtures/services.py:139 |
Cannot transition from '{fixture.status}' to '{target}' |
Ürün ağacı¶
| Kod | Tanım yeri | HTTP durumu | Atma konumu | İlk konum | İlk konumdaki ileti |
|---|---|---|---|---|---|
BOM_INVALID_STATUS |
src/cluster_erp/core/errors.py:142 |
400 |
9 | src/cluster_erp/modules/bom/bom_versions/services.py:314 |
Only draft versions can be deleted. |
BOM_ACTIVE_VERSION_EXISTS |
src/cluster_erp/core/errors.py:143 |
400 |
1 | src/cluster_erp/modules/bom/bom_versions/services.py:439 |
This BOM already has an active version. Supersede it before activating a new one. |
BOM_ACTIVE_VERSION_LOCKED |
src/cluster_erp/core/errors.py:144 |
400 |
3 | src/cluster_erp/modules/bom/bom_items/services.py:415 |
BOM version is '{version.status}'. Only draft versions can be modified. |
BOM_LABOR_MISSING |
src/cluster_erp/core/errors.py:145 |
- | 0 | - | - |
BOM_MAX_DEPTH_EXCEEDED |
src/cluster_erp/core/errors.py:146 |
400 |
8 | src/cluster_erp/modules/bom/bom_items/services.py:174 |
Maximum BOM depth of {MAX_BOM_DEPTH} levels exceeded. |
BOM_INVALID_QTY |
src/cluster_erp/core/errors.py:147 |
400 |
4 | src/cluster_erp/modules/bom/bom_items/services.py:142 |
BOM item quantity must be greater than zero. |
BOM_TEMPLATE_EMPTY |
src/cluster_erp/core/errors.py:148 |
400 |
1 | src/cluster_erp/modules/bom/bom_versions/services.py:569 |
The template has no items to copy. |
BOM_VERSION_EMPTY |
src/cluster_erp/core/errors.py:151 |
422 |
1 | src/cluster_erp/modules/bom/bom_versions/services.py:664 |
This BOM version has no items; add components before releasing it. |
Tasarım ve mühendislik¶
| Kod | Tanım yeri | HTTP durumu | Atma konumu | İlk konum | İlk konumdaki ileti |
|---|---|---|---|---|---|
DESIGN_INVALID_STATUS |
src/cluster_erp/core/errors.py:154 |
400 |
3 | src/cluster_erp/modules/design_engineering/designs/services.py:230 |
Only draft designs can be deleted. |
DESIGN_LOCKED_APPROVED |
src/cluster_erp/core/errors.py:155 |
400 |
2 | src/cluster_erp/modules/design_engineering/designs/services.py:191 |
Approved designs cannot be edited. Use ECN for changes. |
DESIGN_CONCEPT_NO_APPROVAL |
src/cluster_erp/core/errors.py:156 |
400 |
1 | src/cluster_erp/modules/design_engineering/designs/services.py:284 |
Concept designs cannot be approved. They are for quotation phase only. |
DESIGN_NOT_APPROVED_FOR_BOM |
src/cluster_erp/core/errors.py:157 |
- | 0 | - | - |
ECN_INVALID_STATUS |
src/cluster_erp/core/errors.py:158 |
400 |
4 | src/cluster_erp/modules/design_engineering/ecns/services.py:151 |
Only proposed ECNs can be edited. |
ECN_DESIGN_NOT_APPROVED |
src/cluster_erp/core/errors.py:159 |
400 |
1 | src/cluster_erp/modules/design_engineering/ecns/services.py:107 |
ECN can only be created for approved designs. |
Ürünler ve malzemeler¶
| Kod | Tanım yeri | HTTP durumu | Atma konumu | İlk konum | İlk konumdaki ileti |
|---|---|---|---|---|---|
PRODUCT_INVALID_MATERIAL_TYPE |
src/cluster_erp/core/errors.py:162 |
- | 0 | - | - |
PRODUCT_CAPABILITY_VIOLATION |
src/cluster_erp/core/errors.py:163 |
400 |
1 | src/cluster_erp/modules/products_and_services/products/services.py:679 |
Material type '{material_type}' requires {flag}={required} |
PRODUCT_NOT_PURCHASABLE |
src/cluster_erp/core/errors.py:164 |
- | 0 | - | - |
PRODUCT_NOT_SELLABLE |
src/cluster_erp/core/errors.py:165 |
- | 0 | - | - |
PRODUCT_NOT_MANUFACTURABLE |
src/cluster_erp/core/errors.py:166 |
- | 0 | - | - |
PRODUCT_NOT_STOCKABLE |
src/cluster_erp/core/errors.py:167 |
- | 0 | - | - |
PRODUCT_BLOCKED |
src/cluster_erp/core/errors.py:168 |
- | 0 | - | - |
PRODUCT_INVALID_STATUS |
src/cluster_erp/core/errors.py:169 |
- | 0 | - | - |
PRODUCT_IN_ACTIVE_BOM |
src/cluster_erp/core/errors.py:172 |
422 |
1 | src/cluster_erp/modules/products_and_services/products/services.py:620 |
The product is a component of an active BOM version; supersede or archive that BOM first. |
PRODUCT_MODEL_DEFAULT_PROTECTED |
src/cluster_erp/core/errors.py:176 |
409 |
4 | src/cluster_erp/modules/products_and_services/product_models/services.py:123 |
The default model cannot be demoted; set another model as default instead |
PRODUCT_VERSION_DEFAULT_PROTECTED |
src/cluster_erp/core/errors.py:177 |
409 |
4 | src/cluster_erp/modules/products_and_services/product_versions/services.py:102 |
The default version cannot be demoted; set another version as default instead |
PRODUCT_MODEL_PRODUCT_MISMATCH |
src/cluster_erp/core/errors.py:178 |
- | 0 | - | - |
PRODUCT_VERSION_MODEL_MISMATCH |
src/cluster_erp/core/errors.py:179 |
- | 0 | - | - |
Envanter¶
| Kod | Tanım yeri | HTTP durumu | Atma konumu | İlk konum | İlk konumdaki ileti |
|---|---|---|---|---|---|
INVENTORY_INSUFFICIENT_STOCK |
src/cluster_erp/core/errors.py:182 |
400 |
8 | src/cluster_erp/modules/inventory/stock/services.py:853 |
Insufficient stock in the source segment |
INVENTORY_INVALID_MOVEMENT_TYPE |
src/cluster_erp/core/errors.py:183 |
400 |
1 | src/cluster_erp/modules/inventory/stock/services.py:332 |
Invalid movement type: {movement_type} |
INVENTORY_INVALID_MOVEMENT |
src/cluster_erp/core/errors.py:184 |
409, 422 |
5 | src/cluster_erp/modules/inventory/stock/services.py:553 |
Source and target stock ownership are the same |
INVENTORY_PROJECT_TRANSFER_DISABLED |
src/cluster_erp/core/errors.py:185 |
403 |
1 | src/cluster_erp/modules/inventory/stock/services.py:563 |
Project-to-project stock transfer is disabled by configuration |
INVENTORY_BATCH_REQUIRED |
src/cluster_erp/core/errors.py:186 |
400 |
1 | src/cluster_erp/modules/inventory/stock/services.py:2143 |
Batch ID is required for batch-managed products |
INVENTORY_SERIAL_REQUIRED |
src/cluster_erp/core/errors.py:187 |
400 |
1 | src/cluster_erp/modules/inventory/stock/services.py:2149 |
Serial number is required for serial-tracked products |
INVENTORY_BATCH_EXPIRED |
src/cluster_erp/core/errors.py:188 |
400 |
2 | src/cluster_erp/modules/inventory/stock/services.py:2166 |
Batch is blocked |
INVENTORY_SERIAL_ALREADY_USED |
src/cluster_erp/core/errors.py:189 |
409 |
2 | src/cluster_erp/modules/inventory/batches/services.py:349 |
Serial number '{serial_number}' already exists |
INVENTORY_PRODUCT_NOT_STOCKABLE |
src/cluster_erp/core/errors.py:190 |
400 |
3 | src/cluster_erp/modules/inventory/batches/services.py:210 |
Product is not stockable |
INVENTORY_MOVEMENT_ALREADY_REVERSED |
src/cluster_erp/core/errors.py:191 |
400 |
2 | src/cluster_erp/modules/inventory/stock/services.py:1742 |
This movement has already been reversed |
INVENTORY_PO_RECEIPT_REQUIRES_PO_FLOW |
src/cluster_erp/core/errors.py:192 |
409 |
1 | src/cluster_erp/modules/inventory/stock/routes.py:174 |
Goods for a purchase order must be received via the purchase-order receive flow, not the r... |
INVENTORY_RESERVATION_NOT_FOUND |
src/cluster_erp/core/errors.py:193 |
404 |
2 | src/cluster_erp/modules/inventory/stock/services.py:1985 |
Reservation not found |
INVENTORY_RESERVATION_ALREADY_CONSUMED |
src/cluster_erp/core/errors.py:194 |
400 |
1 | src/cluster_erp/modules/inventory/stock/services.py:1992 |
Reservation already consumed |
INVENTORY_RESERVATION_ALREADY_CANCELLED |
src/cluster_erp/core/errors.py:195 |
400 |
2 | src/cluster_erp/modules/inventory/stock/services.py:1998 |
Reservation already cancelled |
INVENTORY_NEGATIVE_STOCK |
src/cluster_erp/core/errors.py:196 |
- | 0 | - | - |
INVENTORY_INVALID_STOCK_CATEGORY |
src/cluster_erp/core/errors.py:197 |
400 |
4 | src/cluster_erp/modules/inventory/stock/services.py:1211 |
Invalid source stock category: {data.from_category} |
INVENTORY_INVALID_CATEGORY_TRANSFER |
src/cluster_erp/core/errors.py:198 |
400 |
1 | src/cluster_erp/modules/inventory/stock/services.py:1223 |
Transfer from '{data.from_category}' to '{data.to_category}' is not permitted |
INVENTORY_INVALID_DECISION_CODE |
src/cluster_erp/core/errors.py:199 |
400 |
1 | src/cluster_erp/modules/inventory/stock/services.py:1502 |
Invalid decision code: {data.decision_code} |
INVENTORY_MOVEMENT_NOT_DECIDABLE |
src/cluster_erp/core/errors.py:200 |
400 |
1 | src/cluster_erp/modules/inventory/stock/services.py:1515 |
Only GR blocked or goods receipt movements can have usage decisions |
INVENTORY_DECISION_QTY_EXCEEDS |
src/cluster_erp/core/errors.py:201 |
400 |
1 | src/cluster_erp/modules/inventory/stock/services.py:1527 |
Decision quantity exceeds remaining undecided quantity |
INVENTORY_INVALID_ORIGIN_TYPE |
src/cluster_erp/core/errors.py:202 |
400 |
1 | src/cluster_erp/modules/inventory/batches/services.py:189 |
Invalid origin type: {origin_type} |
Üretim¶
| Kod | Tanım yeri | HTTP durumu | Atma konumu | İlk konum | İlk konumdaki ileti |
|---|---|---|---|---|---|
PRODUCTION_ORDER_INVALID_STATUS |
src/cluster_erp/core/errors.py:205 |
400, 422 |
11 | src/cluster_erp/modules/production/production_orders/services.py:450 |
Production order can only be updated in planned or released status |
PRODUCTION_WORK_ORDER_INVALID_STATUS |
src/cluster_erp/core/errors.py:206 |
422 |
5 | src/cluster_erp/modules/production/scheduling/services.py:324 |
Only pending work orders can be scheduled. |
PRODUCTION_WORK_ORDER_QTY_EXCEEDED |
src/cluster_erp/core/errors.py:207 |
422 |
2 | src/cluster_erp/modules/production/work_orders/services.py:372 |
Completed + scrapped quantity cannot exceed the work order quantity. |
CRM_RFQ_LINE_NO_PRODUCT |
src/cluster_erp/core/errors.py:208 |
422 |
1 | src/cluster_erp/modules/crm/rfq_line_materials/services.py:108 |
The RFQ line is not linked to a product (via a customer part), so no BOM can be resolved. |
PROJECTS_ITEM_NO_PRODUCT |
src/cluster_erp/core/errors.py:209 |
422 |
1 | src/cluster_erp/modules/projects/items/routes.py:119 |
The project item needs a product (with its model/version breakdown) and a positive quantit... |
PRODUCTION_ORDER_EXISTS_FOR_PROJECT_PRODUCT |
src/cluster_erp/core/errors.py:210 |
422 |
1 | src/cluster_erp/modules/production/module.py:675 |
An open production order ({existing.order_no}) already exists for this project and product... |
CRM_RFQ_BOM_MATERIALS_EMPTY |
src/cluster_erp/core/errors.py:211 |
422 |
1 | src/cluster_erp/modules/crm/rfq_line_materials/services.py:119 |
The product has no active BOM or its BOM carries no material specifications. |
SALES_ORDER_LINE_NO_PRODUCT |
src/cluster_erp/core/errors.py:214 |
422 |
1 | src/cluster_erp/modules/sales_orders/order_lines/routes.py:143 |
The order line needs a catalogue product with its model/version breakdown before a bill of... |
PRODUCTION_PRODUCT_NOT_MANUFACTURABLE |
src/cluster_erp/core/errors.py:215 |
400 |
2 | src/cluster_erp/modules/production/production_orders/services.py:152 |
Product is not manufacturable |
PRODUCTION_BOM_REQUIRED |
src/cluster_erp/core/errors.py:216 |
422 |
2 | src/cluster_erp/modules/production/routings/scaffold.py:199 |
No active BOM version exists for this product breakdown. |
PRODUCTION_BOM_EMPTY |
src/cluster_erp/core/errors.py:219 |
422 |
1 | src/cluster_erp/modules/production/routings/scaffold.py:207 |
The active BOM version has no live items. |
PRODUCTION_WORK_CENTER_REQUIRED |
src/cluster_erp/core/errors.py:220 |
- | 0 | - | - |
PRODUCTION_OPERATION_NO_MATERIAL_IO |
src/cluster_erp/core/errors.py:221 |
422 |
1 | src/cluster_erp/modules/production/component_allocations/services.py:513 |
Operation type '{op_type.code}' is a process step and does not stage material inputs/outpu... |
PRODUCTION_ROUTING_REQUIRED |
src/cluster_erp/core/errors.py:222 |
400 |
1 | src/cluster_erp/modules/production/routings/services.py:621 |
Cannot transition routing from '{routing.status}' to '{new_status}' |
PRODUCTION_ORDER_NO_COMPONENTS |
src/cluster_erp/core/errors.py:223 |
- | 0 | - | - |
PRODUCTION_MATERIAL_CONSUMPTION_FAILED |
src/cluster_erp/core/errors.py:224 |
400 |
1 | src/cluster_erp/modules/production/production_orders/services.py:798 |
Failed to issue goods from inventory: {e} |
PRODUCTION_INSUFFICIENT_MATERIAL |
src/cluster_erp/core/errors.py:225 |
400 |
1 | src/cluster_erp/modules/production/production_orders/services.py:763 |
Consumption qty exceeds remaining requirement |
PRODUCTION_ROUTING_INCOMPLETE |
src/cluster_erp/core/errors.py:230 |
422 |
2 | src/cluster_erp/modules/production/routings/scaffold.py:1703 |
The routing has no live operation to attach new inputs to. |
ROUTING_OP_NO_WORK_CENTER |
src/cluster_erp/core/errors.py:231 |
- | 0 | - | - |
ROUTING_OP_NO_TYPE |
src/cluster_erp/core/errors.py:232 |
- | 0 | - | - |
ROUTING_OP_NO_TIME |
src/cluster_erp/core/errors.py:233 |
- | 0 | - | - |
ROUTING_PREP_NO_TYPE |
src/cluster_erp/core/errors.py:238 |
- | 0 | - | - |
SCAFFOLD_PLAN_STALE |
src/cluster_erp/core/errors.py:244 |
409 |
3 | src/cluster_erp/modules/production/routings/scaffold.py:1065 |
The BOM changed after this plan was prepared. Refresh the plan. |
SCAFFOLD_ANSWER_REQUIRED |
src/cluster_erp/core/errors.py:245 |
422 |
6 | src/cluster_erp/modules/production/routings/scaffold.py:1099 |
A routing name is required to create the routing. |
SCAFFOLD_ROUTING_EXISTS |
src/cluster_erp/core/errors.py:246 |
409 |
2 | src/cluster_erp/modules/production/routings/scaffold.py:1144 |
A live routing already exists for this product breakdown. |
SCAFFOLD_CHANGE_PROTECTED |
src/cluster_erp/core/errors.py:249 |
422 |
1 | src/cluster_erp/modules/production/routings/scaffold.py:1806 |
A user-touched row can only be flagged, never overwritten. |
SCAFFOLD_TEMPLATE_AMBIGUOUS |
src/cluster_erp/core/errors.py:254 |
422 |
1 | src/cluster_erp/modules/production/routings/scaffold.py:522 |
More than one routing template matches this product at the same specificity. Disambiguate ... |
SCAFFOLD_COPY_SAME_TARGET |
src/cluster_erp/core/errors.py:258 |
422 |
1 | src/cluster_erp/modules/production/routings/scaffold.py:2124 |
The copy target is the same product breakdown the source routing already builds. |
PRODUCTION_CUT_RULE_EXISTS |
src/cluster_erp/core/errors.py:261 |
422 |
1 | src/cluster_erp/modules/production/routing_templates/services.py:268 |
A live cut technology rule already exists for this material type and stock form. |
PRODUCTION_SCHEDULE_NO_SLOT |
src/cluster_erp/core/errors.py:262 |
422 |
1 | src/cluster_erp/modules/production/scheduling/services.py:716 |
No free working-time slot was found within the search horizon. |
PRODUCTION_SCHEDULE_INVALID_RANGE |
src/cluster_erp/core/errors.py:263 |
422 |
2 | src/cluster_erp/modules/production/scheduling/routes.py:58 |
date_to must be after date_from. |
PRODUCTION_SCHEDULE_INVALID_TIMEZONE |
src/cluster_erp/core/errors.py:264 |
- | 0 | - | - |
Yerleşim¶
| Kod | Tanım yeri | HTTP durumu | Atma konumu | İlk konum | İlk konumdaki ileti |
|---|---|---|---|---|---|
NESTING_INVALID_STATUS |
src/cluster_erp/core/errors.py:267 |
400 |
11 | src/cluster_erp/modules/nesting/integration/services.py:179 |
Cannot import results in '{job.status}' status |
NESTING_LOW_UTILIZATION |
src/cluster_erp/core/errors.py:268 |
400 |
1 | src/cluster_erp/modules/nesting/nesting_jobs/services.py:333 |
Utilization is {job.utilization_pct}%, below {self._low_util_threshold}% threshold. Acknow... |
NESTING_PART_TOO_LARGE |
src/cluster_erp/core/errors.py:269 |
400 |
2 | src/cluster_erp/modules/nesting/nesting_parts/services.py:100 |
Part bounding box ({data.part_length_mm}x{data.part_width_mm}) exceeds usable sheet area (... |
NESTING_NO_PARTS |
src/cluster_erp/core/errors.py:270 |
400 |
1 | src/cluster_erp/modules/nesting/nesting_jobs/services.py:692 |
No source orders linked to this nesting job |
NESTING_NOT_COMPLETED |
src/cluster_erp/core/errors.py:271 |
400 |
2 | src/cluster_erp/modules/nesting/nesting_jobs/services.py:321 |
Only completed jobs can be approved |
NESTING_ALREADY_APPROVED |
src/cluster_erp/core/errors.py:272 |
400 |
1 | src/cluster_erp/modules/nesting/nesting_jobs/services.py:323 |
Job is already approved |
NESTING_ORDER_MATERIAL_MISMATCH |
src/cluster_erp/core/errors.py:273 |
400 |
1 | src/cluster_erp/modules/nesting/nesting_jobs/services.py:728 |
Order {order_data.get('order_no', order_id)} material ({order_material}/{order_thickness}m... |
NESTING_IMPORT_INVALID_PARTS |
src/cluster_erp/core/errors.py:274 |
400 |
6 | src/cluster_erp/modules/nesting/integration/services.py:91 |
Placed part {pl.nesting_part_id} extends outside the sheet |
NESTING_IMPORT_FAILED |
src/cluster_erp/core/errors.py:275 |
400 |
1 | src/cluster_erp/modules/nesting/integration/services.py:345 |
Failed to import nesting result: {exc} |
NESTING_REMNANT_INVALID_STATUS |
src/cluster_erp/core/errors.py:276 |
400 |
2 | src/cluster_erp/modules/nesting/nesting_remnants/services.py:189 |
Cannot consume remnant in '{remnant.status}' status |
NESTING_MATERIAL_NOT_RESERVED |
src/cluster_erp/core/errors.py:277 |
400 |
1 | src/cluster_erp/modules/nesting/nesting_jobs/services.py:478 |
Material must be reserved before consuming |
NESTING_MATERIAL_ALREADY_RESERVED |
src/cluster_erp/core/errors.py:278 |
400 |
1 | src/cluster_erp/modules/nesting/nesting_jobs/services.py:410 |
Material is already reserved for this job |
NESTING_MATERIAL_ALREADY_CONSUMED |
src/cluster_erp/core/errors.py:279 |
400 |
1 | src/cluster_erp/modules/nesting/nesting_jobs/services.py:476 |
Material already consumed for this job |
NESTING_COST_MISSING_UNIT_PRICE |
src/cluster_erp/core/errors.py:280 |
400 |
1 | src/cluster_erp/modules/nesting/nesting_jobs/services.py:588 |
Cost per unit area is not set and could not be derived |
Maliyetlendirme¶
| Kod | Tanım yeri | HTTP durumu | Atma konumu | İlk konum | İlk konumdaki ileti |
|---|---|---|---|---|---|
COSTING_NOT_FOUND |
src/cluster_erp/core/errors.py:283 |
404 |
3 | src/cluster_erp/modules/costing/costing_analyses/services.py:103 |
Costing analysis not found |
COSTING_INVALID_STATUS |
src/cluster_erp/core/errors.py:284 |
400 |
2 | src/cluster_erp/modules/costing/costing_analyses/services.py:113 |
Cannot transition from '{current}' to '{target}' |
COSTING_BOM_NOT_FOUND |
src/cluster_erp/core/errors.py:285 |
404 |
1 | src/cluster_erp/modules/costing/costing_analyses/services.py:272 |
BOM version not found or has no explosion data |
COSTING_BOM_NOT_ACTIVE |
src/cluster_erp/core/errors.py:286 |
- | 0 | - | - |
COSTING_BOM_NO_ITEMS |
src/cluster_erp/core/errors.py:287 |
400 |
1 | src/cluster_erp/modules/costing/costing_analyses/services.py:287 |
BOM explosion returned no items to cost |
COSTING_CURRENCY_MISMATCH |
src/cluster_erp/core/errors.py:288 |
422 |
1 | src/cluster_erp/modules/costing/costing_analyses/services.py:307 |
Rate currency '{r_cur}' does not match the analysis currency '{analysis.currency}'. |
AUTH_SELF_APPROVAL_FORBIDDEN |
src/cluster_erp/core/errors.py:289 |
403 |
3 | src/cluster_erp/modules/auth/approvals/services.py:314 |
You cannot decide your own approval request. |
COSTING_NOT_CALCULATED |
src/cluster_erp/core/errors.py:290 |
- | 0 | - | - |
COSTING_FINAL_PRICE_REQUIRED |
src/cluster_erp/core/errors.py:291 |
400 |
1 | src/cluster_erp/modules/costing/costing_analyses/services.py:751 |
Either final_price or suggested_price must be set before submission |
COSTING_IMMUTABLE |
src/cluster_erp/core/errors.py:292 |
400 |
2 | src/cluster_erp/modules/costing/costing_analyses/services.py:120 |
Analysis in '{analysis.status}' status cannot be modified |
COSTING_RATE_NOT_FOUND |
src/cluster_erp/core/errors.py:293 |
- | 0 | - | - |
COSTING_RATE_OVERLAP |
src/cluster_erp/core/errors.py:294 |
- | 0 | - | - |
COSTING_RATE_INVALID_DATES |
src/cluster_erp/core/errors.py:295 |
400 |
2 | src/cluster_erp/modules/costing/labor_rates/services.py:160 |
valid_to must be on or after valid_from |
COSTING_COMPARE_MIN_ITEMS |
src/cluster_erp/core/errors.py:296 |
400 |
1 | src/cluster_erp/modules/costing/costing_analyses/services.py:976 |
At least 2 analyses required for comparison |
COSTING_COMPARE_MAX_ITEMS |
src/cluster_erp/core/errors.py:297 |
400 |
1 | src/cluster_erp/modules/costing/costing_analyses/services.py:967 |
Cannot compare more than 5 analyses |
COSTING_SCENARIO_SOURCE_INVALID |
src/cluster_erp/core/errors.py:298 |
400 |
1 | src/cluster_erp/modules/costing/costing_analyses/services.py:1039 |
Source analysis must be calculated or approved |
COSTING_SUPERSEDE_SAME_BOM |
src/cluster_erp/core/errors.py:299 |
400 |
1 | src/cluster_erp/modules/costing/costing_analyses/services.py:874 |
Superseding analysis must reference the same BOM |
Satın alma¶
| Kod | Tanım yeri | HTTP durumu | Atma konumu | İlk konum | İlk konumdaki ileti |
|---|---|---|---|---|---|
PR_INVALID_STATUS |
src/cluster_erp/core/errors.py:302 |
400 |
7 | src/cluster_erp/modules/procurement/purchase_requests/services.py:115 |
Cannot transition from '{current}' to '{target}' |
PR_NO_ITEMS |
src/cluster_erp/core/errors.py:303 |
400 |
1 | src/cluster_erp/modules/procurement/purchase_requests/services.py:469 |
Cannot remove the last item from a purchase request |
PR_APPROVAL_THRESHOLD |
src/cluster_erp/core/errors.py:304 |
- | 0 | - | - |
PO_INVALID_STATUS |
src/cluster_erp/core/errors.py:305 |
400, 409 |
11 | src/cluster_erp/modules/procurement/purchase_orders/services.py:86 |
Cannot transition from '{current}' to '{target}' |
PO_VENDOR_BLACKLISTED |
src/cluster_erp/core/errors.py:306 |
400 |
1 | src/cluster_erp/modules/procurement/purchase_orders/services.py:233 |
Vendor is blacklisted |
PO_NO_TECHNICAL_ATTACHMENT |
src/cluster_erp/core/errors.py:307 |
400 |
1 | src/cluster_erp/modules/procurement/purchase_orders/services.py:637 |
Purchase order requires a technical attachment before sending |
PO_NO_ORDER_DATE |
src/cluster_erp/core/errors.py:308 |
400 |
1 | src/cluster_erp/modules/procurement/purchase_orders/services.py:630 |
Purchase order requires an order date before sending |
PO_RECEIVE_QTY_EXCEEDS |
src/cluster_erp/core/errors.py:309 |
400 |
1 | src/cluster_erp/modules/procurement/purchase_orders/services.py:743 |
Received qty ({new_received}) exceeds ordered qty ({item.qty_ordered}) |
PO_ITEM_ALREADY_RECEIVED |
src/cluster_erp/core/errors.py:310 |
400 |
1 | src/cluster_erp/modules/procurement/purchase_orders/services.py:735 |
Item has already been fully received |
PO_GOODS_RECEIPT_FAILED |
src/cluster_erp/core/errors.py:311 |
400 |
2 | src/cluster_erp/modules/procurement/purchase_orders/services.py:821 |
Goods receipt posting failed |
MRP_RUN_FAILED |
src/cluster_erp/core/errors.py:312 |
400, 500 |
4 | src/cluster_erp/modules/procurement/mrp/engine.py:3931 |
Product has no default model/version breakdown; every product must carry one |
MRP_RUN_IN_PROGRESS |
src/cluster_erp/core/errors.py:313 |
409 |
3 | src/cluster_erp/modules/procurement/mrp/services.py:172 |
An MRP run is already in progress |
MRP_RUN_NOT_COMPLETED |
src/cluster_erp/core/errors.py:314 |
409 |
5 | src/cluster_erp/modules/procurement/mrp/services.py:341 |
Cannot create PR from run with status '{run.status}' |
MRP_NO_PRODUCTS_IN_SCOPE |
src/cluster_erp/core/errors.py:315 |
- | 0 | - | - |
MRP_ITEMS_ALREADY_ACTIONED |
src/cluster_erp/core/errors.py:316 |
409 |
3 | src/cluster_erp/modules/procurement/mrp/services.py:370 |
{len(actioned)} item(s) already have actions taken |
MRP_RUN_STALE |
src/cluster_erp/core/errors.py:317 |
409 |
1 | src/cluster_erp/modules/procurement/mrp/services.py:347 |
MRP run data is stale — re-run MRP before creating purchase requests |
MRP_ITEMS_ALREADY_FIRMED |
src/cluster_erp/core/errors.py:318 |
409 |
1 | src/cluster_erp/modules/procurement/mrp/services.py:1314 |
{len(already_firmed)} item(s) already firmed |
SUBSTITUTION_GROUP_DUPLICATE_PRODUCT |
src/cluster_erp/core/errors.py:319 |
409 |
1 | src/cluster_erp/modules/procurement/substitution_groups/services.py:221 |
Product already exists in this substitution group |
SUBSTITUTION_GROUP_SINGLE_MEMBER |
src/cluster_erp/core/errors.py:320 |
400 |
1 | src/cluster_erp/modules/procurement/substitution_groups/services.py:317 |
Cannot remove the last member from a substitution group |
CRITICAL_MATERIAL_ALREADY_EXISTS |
src/cluster_erp/core/errors.py:321 |
409 |
1 | src/cluster_erp/modules/procurement/critical_materials/services.py:86 |
Product is already registered as a critical material |
İlgili sayfalar¶
92f8051 numaralı commit ile 2026-11-13 tarihinde doğrulandı.