1)收到全款後發貨
這 種情況比較簡單,在OpenERP的Sales Order中,字段Shipping Policy 選擇“ Payment Before Delivery”,表示先付款再發貨。選擇這個選項,銷售訂單確認時候,OpenERP會自動生成SO對應的Invoice,但不會自動生成SO對應的 發貨單(Picking List)。當財務人員確認Invoice,並確認收到該Invoice的款項時候,系統自動生成SO對應的發貨單,允許發貨。
2)預收部分款後發貨
控制預收款再發貨,有兩個辦法,一個是,SO上的Shipping Policy 選擇 “Shipping & Manual Invoice”,這表示,SO確認時候,系統不會自動生成對應的Invoice,而是要手動點擊按鈕“Create Final Invoice”生成發票。如果選擇這種方式,預收款收到前,銷售人員不要確認SO,這樣,系統就不會自動生成發貨單。
另一種辦法是,Shipping Policy 選擇“ Payment Before Delivery”,這樣,如果確認SO時候,預收款發票尚未支付,則系統不會自動生成發貨單,而是要待到確認收到款額時候系統纔會自動生成發貨單。
3) 多次開票的處理
SO上的Shipping Policy 選擇 “Shipping & Manual Invoice”。如果點擊SO上的按鈕“Create Final Invoice”,系統會自動一次性生成SO的餘額的發票,而不允許拆分金額多次開票。不過系統提供了“Lines to Invoice”的功能,該功能會列出所有已確認但未開票的SO明細行,允許對每一個明細行開票,並將明細行的發票自動關聯到SO上。
如果一張發票對應多個SO,或者,對SO上的一個明細行開多張發票。那麼,就必須在Account的Invoice界面上手工新建發票,且該發票不能與SO關聯起來。建議嚴格基於SO開發票,革除根據收款額開銷售發票的習慣。
4)收款和發票的關係
建議開票嚴格基於SO,但收款不必嚴格基於SO。即1)一個SO可以多次開票,但開票的最小單位是SO上的一個明細行;2)不允許一張發票包含多個SO的內容;3)一筆收款可以對應到多張發票(覈銷多張發票)。