Factorizer/Cluster ERP WikiCluster ERP English
Ana sayfa / İş modülleri

Referans

Satış siparişleri ve sipariş kalemleri

Sales_orders içindeki orders ve order_lines alt modülleri için başvuru; alanlar, PO kontrolü, PO revizyonları, kilometre taşları, durumlar, aksiyonlar, uçlar ve toplama.

Bu sayfa src/cluster_erp/modules/sales_orders/ içindeki orders ve order_lines alt modüllerini ve rollup.py içindeki başlık toplamasını anlatır. Bir satış siparişi (SalesOrder), bir teklife başvuran müşteri satın alma siparişinden oluşturulur. Sipariş PO kontrol denemelerini, dondurulmuş PO revizyonlarını ve kilometre taşlarını; kalemleri ise tekliften kopyalanan ürünleri ve fiyatları tutar.

Kapsam ve kaynak

  • Tanımlandığı yer: orders/models.py, orders/services.py (SalesOrderService), orders/routes.py, orders/metadata.py, order_lines alt modülünün aynı dosyaları ve rollup.py.
  • Sayım: 6 tablo (5'i orders, 1'i order_lines içinde); 17 sipariş ucu ve 7 kalem ucu (@router. dekoratörleri); siparişlerde 11, kalemlerde 2 ActionMeta girdisi.

Sipariş alanları

Grup Alanlar Kaynak
Kimlik order_no, quote_id, customer_id, project_id, status (varsayılan po_received) src/cluster_erp/modules/sales_orders/orders/models.py:30-77
Müşteri PO'su customer_po_no, customer_po_version, customer_po_date, received_email_id src/cluster_erp/modules/sales_orders/orders/models.py:49-64
Ticari total_price (Numeric(19, 4)), currency, incoterm, payment_terms, delivery_date, qty src/cluster_erp/modules/sales_orders/orders/models.py:81-92
Adresler ship_to_party_id, ship_to_address_id, ship_to_address, bill_to_party_id, bill_to_address_id, bill_to_address src/cluster_erp/modules/sales_orders/orders/models.py:97-106
Yaşam döngüsü kaydı opened_at, opened_by, cancelled_at, cancelled_by, cancel_reason, on_hold_reason, shipped_at, delivered_at, closed_at, notes src/cluster_erp/modules/sales_orders/orders/models.py:109-139

Alt kayıtlar

Varlık Tablo Anahtar alanlar Kaynak
PoCheck so_po_checks sales_order_id, quote_id, attempt_no, mismatch_fields, has_mismatch, overall_result, decision, revision_requested_at src/cluster_erp/modules/sales_orders/orders/models.py:142-185
PoCheckLine so_po_check_lines po_check_id, quote_line_item_id, field_name, quote_value, po_value, is_match src/cluster_erp/modules/sales_orders/orders/models.py:187-209
SalesOrderMilestone so_milestones sales_order_id, milestone_type, planned_at, actual_at, status, notes src/cluster_erp/modules/sales_orders/orders/models.py:211-236
PoRevision so_po_revisions sales_order_id, version_no, customer_po_no, customer_po_date, reason, snapshot, received_at, received_by src/cluster_erp/modules/sales_orders/orders/models.py:238-264
SalesOrderLine so_sales_order_lines line_no, customer_line_no, project_id, part_id, part_model_id, part_version_id, customer_part_id, description, qty, uom, unit_price, currency, line_total, delivery_date, quote_line_item_id, bom_id, status (varsayılan open) src/cluster_erp/modules/sales_orders/order_lines/models.py:22-102

Sipariş durumları ve aksiyonları

Servis şu geçişlere izin verir (src/cluster_erp/modules/sales_orders/orders/services.py:41-55).

stateDiagram-v2
 [*] --> po_received
 po_received --> matched: run_po_check
 po_received --> mismatch: run_po_check
 mismatch --> revision_requested: request_revision
 revision_requested --> po_received: receive_revised_po
 matched --> opened: accept
 opened --> in_production
 opened --> on_hold
 in_production --> ready_to_ship
 in_production --> partially_shipped
 partially_shipped --> ready_to_ship
 ready_to_ship --> shipped
 shipped --> delivered
 delivered --> closed
 on_hold --> opened
 opened --> cancelled

Düz anlatımla: PO kontrolü matched veya mismatch ayarlar; uyumsuzluk bir revizyon talebine ve revize PO'ya götürür, bu da siparişi po_received durumuna döndürür. accept eşleşmiş bir siparişi açar. Sipariş sonra üretim ve sevkiyattan geçerek closed olur. on_hold, opened, in_production, partially_shipped ve ready_to_ship durumlarından; cancelled ise opened, in_production ve ready_to_ship durumlarından ulaşılabilir. closed ve cancelled son durumlardır (src/cluster_erp/modules/sales_orders/orders/services.py:46-57).

Aksiyon Etiket Koşul Uç İzin Kaynak
run_po_check PO Kontrolü Çalıştır status değeri po_received POST /sales-orders/{id}/run-po-check sales_order.create src/cluster_erp/modules/sales_orders/orders/metadata.py:120-130, src/cluster_erp/modules/sales_orders/orders/routes.py:115
request_revision Revizyon İste status değeri mismatch POST /sales-orders/{id}/request-revision sales_order.create src/cluster_erp/modules/sales_orders/orders/metadata.py:131-141, src/cluster_erp/modules/sales_orders/orders/routes.py:148
receive_revised_po Revize PO Al status değeri revision_requested POST /sales-orders/{id}/receive-revised-po sales_order.create src/cluster_erp/modules/sales_orders/orders/metadata.py:142-155, src/cluster_erp/modules/sales_orders/orders/routes.py:164
accept Siparişi Kabul Et status değeri matched POST /sales-orders/{id}/accept sales_order.accept src/cluster_erp/modules/sales_orders/orders/metadata.py:156-166, src/cluster_erp/modules/sales_orders/orders/routes.py:183
advance_in_production, advance_ready_to_ship, advance_shipped, advance_delivered, advance_closed Üretime Al, Sevke Hazır, Sevk Edildi, Teslim Edildi, Siparişi Kapat status değeri opened, in_production, ready_to_ship, shipped, delivered POST /sales-orders/{id}/advance/{target_status} sales_order.create src/cluster_erp/modules/sales_orders/orders/metadata.py:167-221, src/cluster_erp/modules/sales_orders/orders/routes.py:201
cancel Siparişi İptal Et servis tablosunun izin verdiği durumlar POST /sales-orders/{id}/cancel sales_order.cancel src/cluster_erp/modules/sales_orders/orders/metadata.py:222-231, src/cluster_erp/modules/sales_orders/orders/routes.py:220
run_po_check (PO kontrol listesinde) PO Kontrolü Çalıştır üst sipariş POST /sales-orders/{parent_id}/run-po-check sales_order.create src/cluster_erp/modules/sales_orders/orders/metadata.py:670-679
create_bom (kalem) Ürün Ağacı Oluştur yok POST /sales-orders/lines/{id}/create-bom CreateBomForProduct.REQUIRED_PERMISSION src/cluster_erp/modules/sales_orders/order_lines/metadata.py:73-85, src/cluster_erp/modules/sales_orders/order_lines/routes.py:104-114
generate_units (kalem) Birimleri Oluştur yok POST /sales-orders/lines/{id}/generate-units sales_order_unit.create src/cluster_erp/modules/sales_orders/order_lines/metadata.py:88-114, src/cluster_erp/modules/sales_orders/units/routes.py:70

Sipariş ve kalem uçları

Yöntem ve yol İzin Kaynak
GET /sales-orders/, GET /sales-orders/{order_id} sales_order.read src/cluster_erp/modules/sales_orders/orders/routes.py:52, src/cluster_erp/modules/sales_orders/orders/routes.py:98
POST /sales-orders/from-po sales_order.create src/cluster_erp/modules/sales_orders/orders/routes.py:86
GET /sales-orders/{order_id}/po-checks sales_order.read src/cluster_erp/modules/sales_orders/orders/routes.py:130
POST /sales-orders/{order_id}/hold, /resume; PATCH /sales-orders/{order_id} sales_order.create src/cluster_erp/modules/sales_orders/orders/routes.py:239-273
GET /sales-orders/{order_id}/milestones; PATCH /sales-orders/{order_id}/milestones/{milestone_type} sales_order.read, sales_order.create src/cluster_erp/modules/sales_orders/orders/routes.py:292-307
GET /sales-orders/{order_id}/po-revisions, GET /sales-orders/po-revisions/{revision_id} po_revision.read src/cluster_erp/modules/sales_orders/orders/routes.py:327-338
GET, POST /sales-orders/{order_id}/lines; GET, PUT, DELETE /sales-orders/lines/{line_id}; POST /sales-orders/lines/bulk-delete sales_order.read, .create, .delete, .bulk_delete src/cluster_erp/modules/sales_orders/order_lines/routes.py:27-165

Kısıtlar ve doğrulama

  • Sipariş sent veya zaten won olan bir teklife başvurur; teklif talebi ve müşteri EventBus üzerinden okunur (src/cluster_erp/modules/sales_orders/orders/services.py:189-215).
  • Teklifin açık kalemleri tamamen veya seçilen kalem başına sipariş kalemlerine kopyalanır ve teklif üzerindeki çekiş ReferenceQuoteLines ile kaydedilir (src/cluster_erp/modules/sales_orders/orders/services.py:253-330).
  • Müşteri PO'sunun 1. sürümü oluşturmada bir PoRevision anlık görüntüsü olarak dondurulur; revize bir PO bir sonraki sürümü ekler (src/cluster_erp/modules/sales_orders/orders/services.py:312, src/cluster_erp/modules/sales_orders/orders/services.py:498-587, src/cluster_erp/modules/sales_orders/orders/services.py:871-939).
  • PO kontrolü qty, unit_price, currency, incoterm, delivery_date ve payment_terms alanlarını teklifle karşılaştırır (src/cluster_erp/modules/sales_orders/orders/services.py:59, src/cluster_erp/modules/sales_orders/orders/services.py:342-463).
  • accept, geçmiş bir PO kontrolü ister; kiracı ayarı kapatmadıkça iç sipariş numarasını üretir ve kickoff, material_ready, production_start, qc_done, shipped ve delivered varsayılan kilometre taşlarını oluşturur (src/cluster_erp/modules/sales_orders/orders/services.py:61-68, src/cluster_erp/modules/sales_orders/orders/services.py:588-648).
  • Müşteri tarafının takviminde çalışma günü olmayan bir teslim tarihi GetOwnerWorkingDays ile reddedilir (src/cluster_erp/modules/sales_orders/orders/services.py:78-115).
  • İptal, siparişin teklif kalemi başvurularını ReleaseQuoteLineReferences ile serbest bırakır (src/cluster_erp/modules/sales_orders/orders/services.py:697-750).
  • Son durumdaki bir sipariş güncellenemez; bir adres değişikliği adres metnini dondurur ve üretilmiş belgeleri bayat olarak işaretler (src/cluster_erp/modules/sales_orders/orders/services.py:786-827, src/cluster_erp/modules/sales_orders/orders/services.py:965-980).
  • Kalem kırılımları ensure_product_breakdown ile denetlenir; her kalem değişikliği kalemi yeniden hesaplar ve başlığı toplar (src/cluster_erp/modules/sales_orders/order_lines/services.py:54-130).
  • Toplama, başlık toplamını para biriminin ondalık basamağında ROUND_HALF_EVEN ile kalem toplamlarının toplamı yapar (src/cluster_erp/modules/sales_orders/rollup.py:1-79).
  • create-bom, modeli ve versiyonu olan bir katalog kalemi ister, bağlı ürün ağacını yeniden kullanır, yoksa CreateBomForProduct sorgular (src/cluster_erp/modules/sales_orders/order_lines/routes.py:132-177).

Tutarsızlıklar

Tanıtılan terimler

Terim Kod tanımlayıcısı Tanım Türkçe terim Kaynak
PO check PoCheck Müşteri PO'sunun teklifle bir karşılaştırması ve sonucu. PO kontrolü src/cluster_erp/modules/sales_orders/orders/models.py:142
PO revision PoRevision Müşteri PO'sunun bir sürümünün dondurulmuş anlık görüntüsü. PO revizyonu src/cluster_erp/modules/sales_orders/orders/models.py:238
milestone SalesOrderMilestone Bir siparişin bir adımı için planlanan ve gerçekleşen tarih. Kilometre taşı src/cluster_erp/modules/sales_orders/orders/models.py:211

İlgili sayfalar


92f8051 numaralı commit ile 2026-11-13 tarihinde doğrulandı.

Doğrulanan commit 92f8051 · 2026-11-13