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.
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.
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).
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).