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

Modül

Sales orders modülü (sales_orders)

Müşteri PO kontrolleri ve revizyonları, kalemler, birimler, paketli sevkiyatlar, ihracat belgeleri ve ayarlarla sales_orders modülü sayfası.

src/cluster_erp/modules/sales_orders/ içindeki sales_orders modülü bir müşteri satın alma siparişini (PO) satış siparişine dönüştürür ve teslime kadar izler. Müşteri PO'sunu gönderilmiş teklifle karşılaştırır, her PO revizyonunu dondurur, teklif kalemlerini sipariş kalemlerine kopyalar, tek tek birimleri (varlıklar) izler, bunları paketler ve taşıma verileriyle sevkiyatlarda gönderir; çeki listesini ve sevk irsaliyesini üretir. Bu sayfa genel bakıştır; alt konuların kendi sayfaları vardır.

Bir bakışta

Öğe Değer Kaynak
Paket src/cluster_erp/modules/sales_orders/ klasör
Modül sınıfı Module src/cluster_erp/modules/sales_orders/module.py:18
name / version sales_orders / 0.1.0 src/cluster_erp/modules/sales_orders/module.py:20-25
API öneki /api/v1/sales_orders (ModuleBase.api_prefix) src/cluster_erp/core/module_base.py:37-38
Alt modüller 6: orders, order_lines, shipments, trade_documents, units, settings klasör listesi
Tablolar 14 altı models.py dosyasındaki __tablename__
Metadata'daki varlıklar entities içinde 13 anahtar src/cluster_erp/modules/sales_orders/module.py:371-385
Uçlar Pakette 68 uç dekoratörü @...router.get/post/put/patch/delete için grep
Aksiyonlar 21 ActionMeta girdisi pakette grep "ActionMeta("
Göçler 16 dosya metni 14 tablo adından birini içeren migrations/versions/ dosyaları
Web uygulamasında yeri Katalog uygulaması sales-orders src/cluster_erp/modules/app_store/catalog.json (sales-orders girdisi)
Masaüstünde yeri yalnızca genel bileşenler src/cluster_erp/desktop/modules/ içinde sales_orders klasörü yok

Modül ne yapar

  • Gönderilmiş veya kazanılmış bir teklife başvuran müşteri PO'sundan sipariş oluşturur ve teklifin açık kalemlerini kopyalar (src/cluster_erp/modules/sales_orders/orders/services.py:174-341).
  • PO'yu teklifle alan alan karşılaştırır ve her denemeyi kaydeder (src/cluster_erp/modules/sales_orders/orders/services.py:342-463).
  • Her PO sürümünü bir anlık görüntü revizyonu olarak dondurur (src/cluster_erp/modules/sales_orders/orders/services.py:871-939).
  • Bir sipariş kaleminin tek tek birimlerini müşteri varlık numaraları ve seri numaralarıyla izler (src/cluster_erp/modules/sales_orders/units/models.py:14-40).
  • Kalemleri ve birimleri paketler, taşıma verileri, olaylar ve teslim kanıtıyla sevkiyatlarda gönderir; sipariş durumunu sevk edilen miktarlardan toplar (src/cluster_erp/modules/sales_orders/shipments/services.py:1253-1392).
  • Çeki listesini ve sevk irsaliyesini dondurulmuş bir anlık görüntüden PDF olarak üretir (src/cluster_erp/modules/sales_orders/trade_documents/services.py:169-278).

Alt modüller

Alt modül Amaç Ana varlıklar Yönlendirici Kaynak
orders Siparişler, PO kontrolleri, PO revizyonları, kilometre taşları SalesOrder, PoCheck, PoCheckLine, PoRevision, SalesOrderMilestone /sales-orders src/cluster_erp/modules/sales_orders/orders/routes.py:33-52
order_lines Sipariş kalemleri ve ürün ağacı aksiyonu SalesOrderLine /sales-orders/.../lines src/cluster_erp/modules/sales_orders/order_lines/routes.py:24-27
units Kalem başına birimler (varlıklar) SalesOrderUnit /sales-orders/units, /sales-orders/lines/{line_id}/units src/cluster_erp/modules/sales_orders/units/routes.py:21-24
shipments Sevkiyatlar, kalemler, birimler, paketler, olaylar SalesOrderShipment, ShipmentLine, ShipmentUnit, ShipmentPackage, ShipmentEvent /sales-orders/shipments ve alt yollar src/cluster_erp/modules/sales_orders/shipments/routes.py:40-85
trade_documents Çeki listesi ve sevk irsaliyesi TradeDocument /sales-orders/trade-documents src/cluster_erp/modules/sales_orders/trade_documents/routes.py:24-37
settings Kiracı başına bir ayar satırı SalesOrderSettings /settings/chain src/cluster_erp/modules/sales_orders/settings/routes.py:16-19

Tüm yönlendiriciler modül önekinin altına require_app("sales_orders") ile bağlanır (src/cluster_erp/modules/sales_orders/module.py:64-71).

Veri modeli

Alanlar siparişler ve kalemler, sevkiyatlar, ihracat belgeleri ve birimler ve ayarlar sayfalarında listelenir. Sipariş kalemleri part_id, part_model_id ve part_version_id taşır; bir katalog kalemi her zaman modelini ve versiyonunu taşır (src/cluster_erp/modules/sales_orders/order_lines/models.py:22-62). Para Numeric türündedir: sipariş toplamı Numeric(19, 4), kalem fiyatı ve toplamı Numeric(18, 4) (src/cluster_erp/modules/sales_orders/orders/models.py:81-84, src/cluster_erp/modules/sales_orders/order_lines/models.py:71-79).

Ekranlar ve metadata

get_metadata şu bölümlerle bir Sipariş Yönetimi (İngilizce Order Management) kenar çubuğu grubu bildirir: Siparişler, Sevkiyatlar, Birimler (Asset), İhracat Belgeleri ve Ayarlar (src/cluster_erp/modules/sales_orders/module.py:321-368). Bkz. genel liste ve aksiyonlar ve aksiyon sayfası.

Durumlar ve aksiyonlar

Sipariş durumları ve aksiyonları siparişler ve kalemler, sevkiyat durumları sevkiyatlar sayfasındadır. Diyagram bir müşteri PO'sundan belgelere giden yolu gösterir.

flowchart LR
 Q["Teklif gönderildi"] --> SO["SalesOrder po_received"]
 SO --> CHK["run_po_check: matched veya mismatch"]
 CHK --> ACC["accept: opened"]
 ACC --> SH["SalesOrderShipment planned"]
 SH --> RDY["ready"]
 RDY --> SHIP["ship: shipped"]
 SHIP --> DEL["POD ile deliver: delivered"]
 SH --> TD["generate-documents"]
 TD --> PL["TradeDocument packing_list"]
 TD --> DN["TradeDocument delivery_note"]
 SHIP --> ROLL["siparişte _advance_order_status"]
 DEL --> ROLL

Düz anlatımla: bir PO'dan oluşturulan sipariş po_received olarak başlar (src/cluster_erp/modules/sales_orders/orders/models.py:72-77, src/cluster_erp/modules/sales_orders/orders/services.py:41-55). PO kontrolü matched veya mismatch ayarlar; accept eşleşmiş bir siparişi açar (src/cluster_erp/modules/sales_orders/orders/services.py:342-463, src/cluster_erp/modules/sales_orders/orders/services.py:588-648). Siparişin bir sevkiyatı hazırlanır, sevk edilir ve teslim edilir; her adım siparişi sevk edilen miktarlardan toplar (src/cluster_erp/modules/sales_orders/shipments/services.py:1085-1191, src/cluster_erp/modules/sales_orders/shipments/services.py:1253-1392). Belgeler sevkiyat başına üretilir (src/cluster_erp/modules/sales_orders/trade_documents/routes.py:102).

İş kuralları

Her alt konu sayfası kendi kurallarını listeler. Modül genelinde müşteriler, taraflar, ürünler, ölçü birimleri ve ülkeler gibi dış veriler EventBus sorgularıyla okunur; modül başka hiçbir modülü içe aktarmaz (src/cluster_erp/modules/sales_orders/trade_documents/builder.py:1-5).

Olaylar ve sorgular

Modül 7 sözleşme tüketir ve 33 sözleşme üretir; sayım parties modülü sayfasındaki gibi yapıldı. Tam liste sözleşmeler başvurusu sayfasındadır.

Yön Sözleşme sınıfı İşleyici veya yayan Kaynak
yayar SalesOrderPoReceived, SalesOrderMatched, SalesOrderMismatchDetected, SalesOrderRevisionRequested, SalesOrderOpened, SalesOrderCancelled, SalesOrderClosed SalesOrderService src/cluster_erp/modules/sales_orders/orders/services.py:174-750
yayar SalesOrderShipped, SalesOrderPartiallyShipped, SalesOrderDelivered sevkiyatlardan sipariş toplaması src/cluster_erp/modules/sales_orders/shipments/services.py:1253-1392
sorgular GetQuoteById, GetQuoteLineItems, ReferenceQuoteLines, ReleaseQuoteLineReferences, GetRfqById, GetCustomerById, GetOwnerWorkingDays, CreateBomForProduct sipariş ve kalem servisleri src/cluster_erp/modules/sales_orders/orders/services.py:78-115, src/cluster_erp/modules/sales_orders/orders/services.py:174-341
sorguyu yanıtlar GetSalesOrderById, GetProjectSalesDelivery, GetOpenSalesOrderDemand module.py içindeki işleyiciler src/cluster_erp/modules/sales_orders/module.py:90-101
abone olur ProjectCreated projeyi siparişe geri yazan _on_project_created src/cluster_erp/modules/sales_orders/module.py:102-106, src/cluster_erp/modules/sales_orders/module.py:123-140
abone olur DescribeFieldConsumers, DescribeAnalyticsFacts, DescribeDisplaySwitches kiracı alanları, analitik, görüntü anahtarları src/cluster_erp/modules/sales_orders/module.py:77, src/cluster_erp/modules/sales_orders/module.py:93, src/cluster_erp/modules/sales_orders/module.py:110

Yetkiler

Modül sales_order.*, po_revision.read, shipment.*, shipment_line.*, shipment_unit.*, shipment_package.*, shipment_event.*, trade_document.*, sales_order_unit.* ve sales_order_settings.* ailelerini denetler. Sipariş kalemi ürün ağacı ucu, CreateBomForProduct.REQUIRED_PERMISSION sözleşmesinin adlandırdığı izni kullanır (src/cluster_erp/modules/sales_orders/order_lines/routes.py:104-114). Her alt konu sayfası uç başına anahtarları listeler.

Gizlilik, saklama ve geçmiş

Modülün privacy_handlers.py dosyası yoktur. Kayıtlar yumuşak silinir; düzenlenmiş belgeler kaldırılmaz, yerlerine yenisi geçer (src/cluster_erp/modules/sales_orders/trade_documents/services.py:262-263). Değişiklikler değişiklik geçmişi tarafından kaydedilir.

Analitik olguları

analytics_facts.py, so_sales_orders üzerinde order_count, total_value, average_value, median_value ve total_quantity ölçülü, sales_order.read ile okunan sales_order olgu kümesini katar (src/cluster_erp/modules/sales_orders/analytics_facts.py:22-126). Bkz. analitik olguları.

Ayarlar ve başvuru verileri

Kiracı başına bir ayar satırı iç sipariş numarasını, belge numarası şablonlarını, teslim kanıtı kuralını, sevk kontrol düzeyini, varsayılan birimleri ve paket tipini ve belge dilini yönetir; bkz. birimler ve ayarlar.

Testler

tests/ içinde modules.sales_orders için ve web-client/_e2e_*.mjs içinde /sales_orders/ yolu için grep ile bulundu.

Tür Dosya Kapsam
pytest tests/test_order_shipment_chain.py siparişten sevkiyata ve belgeye zincir
pytest tests/test_sales_delivery_day_party.py müşteri taraf takviminde çalışma gününe düşen teslim tarihi
e2e web-client/_e2e_sales_orders_app.mjs satış siparişleri uygulaması
e2e web-client/_e2e_order_shipment_chain.mjs tarayıcıda zincir
e2e web-client/_e2e_soline_bom_action.mjs sipariş kalemi ürün ağacı aksiyonu
e2e web-client/_e2e_quote_line_bom.mjs, web-client/_e2e_project_otd.mjs teklif başvuruları ve zamanında teslim

Tanıtılan terimler

Terim Kod tanımlayıcısı Tanım Türkçe terim Kaynak
sales order SalesOrder Bir teklife başvuran müşteri satın alma siparişinden oluşturulan sipariş. Satış siparişi src/cluster_erp/modules/sales_orders/orders/models.py:23
shipment SalesOrderShipment Sipariş kalemlerinin ve birimlerinin paketler ve taşıma verileriyle bir gönderimi. Sevkiyat src/cluster_erp/modules/sales_orders/shipments/models.py:24
trade document TradeDocument Dondurulmuş anlık görüntüsüyle üretilmiş çeki listesi veya sevk irsaliyesi. İhracat belgesi src/cluster_erp/modules/sales_orders/trade_documents/models.py:19

İlgili sayfalar


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

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