天天看點

odoo13 訂單模闆設定_汪涵拜師學藝,第二篇:按銷售訂單控制發貨,還要考慮因退貨而補貨的情況,業務邏輯分析與軟體設計...

導讀:

       由于徒弟年齡才16歲,無法自己申請公衆号,隻能由老師代為轉發。這樣也能對徒弟所寫内容進行檢查,修改,進而讓其對照自己所寫學習到更多的知識。

       有關汪涵個人更多的資訊,請看《汪涵拜師學藝:第一篇:業務初始化時會用到的“批量新增”和“删除”功能設計》一文中的介紹。

       接下來請欣賞、指正!

正文:

odoo13 訂單模闆設定_汪涵拜師學藝,第二篇:按銷售訂單控制發貨,還要考慮因退貨而補貨的情況,業務邏輯分析與軟體設計...

       老師好!大家好!我叫汪涵。

       在開始具體内容之前,請讓我先分享我們的價值觀:

        用自律和勤奮來改變命運,不走捷徑,有愛心,知難而上做個好人!

       今天要彙報的是老師安排學習并要掌握的實際應用,要在會計數字化财務進銷存軟體中設計出來的功能,通過多次反複觀看相關視訊并練習,昨晚設計出來的結果是不對的。老師早上檢查後又專門錄制了一個視訊,針對自己在學習中的暴露出的問題進行了講解,在此基礎上,我又用了半天的時間重新學習和設計,經過資料測試終于掌握了!   

       1、首先,我們介紹“銷售發貨+退貨彙集”内源的設計,這個銷售發貨+退貨彙集是把銷售發貨單和銷售退貨單的資料放在一起進行彙集;然後在去加上資料來源分别是銷售發貨和銷售退貨。

       老師批注:内源是平台提供的一種動态資料整理技術,可以把不同的應用場景的資料通過關聯關系整合在一起,友善其他業務來調用。如訂單彙集,就可以把不同行業的訂單在背景通過内源整理後就成了一個固定的模闆(内源即是平台提供的另一種模闆構模組化式,與畫表定義的模闆類似的)。這樣就可以在面向使用者的設計時可以采用多種形式,不同行業可以用不同的銷售訂單模闆(内容和格式可以不同,但關鍵的資訊如客戶編号、貨品編号、訂單明細ID在進入内源時都是相同的)。

       銷售發貨的來源表是銷售發貨單,銷售退貨的來源表是銷售退貨單。在銷售退貨的數量來源設計時業務數量對應的提取資料是客戶銷售退貨單.退貨數量-MX * -1,是為了接下來的訂單淨發貨做鋪墊(退貨即發貨減少);資料來源設定好之後再進行測試,看是否可以提取數資料。

odoo13 訂單模闆設定_汪涵拜師學藝,第二篇:按銷售訂單控制發貨,還要考慮因退貨而補貨的情況,業務邏輯分析與軟體設計...
odoo13 訂單模闆設定_汪涵拜師學藝,第二篇:按銷售訂單控制發貨,還要考慮因退貨而補貨的情況,業務邏輯分析與軟體設計...
odoo13 訂單模闆設定_汪涵拜師學藝,第二篇:按銷售訂單控制發貨,還要考慮因退貨而補貨的情況,業務邏輯分析與軟體設計...

       2、接下來在設計一個内源的(銷售訂單—淨發貨),淨發貨是根據訂單明細ID來統計設定的;是以說訂單貨品明細ID是我們在這個設計上是最重要的。因為在客戶銷售訂單、客戶銷售發貨單和客戶銷售退貨單都要訂單明細ID,這個訂單貨品明細ID就是記錄着這個物料的編号、訂單數量和交期等資訊的。

        老師批注:客戶銷售訂單明細表中增加的訂單貨品明細ID(用自動編号規範在銷售訂單儲存時自動生成)作為訂單每條記錄的唯一身份證進行後續業務的關聯,如銷售發貨時是根據此ID進行關聯的,這樣就可以保證在同個訂單中可以處理相同貨品不同的發貨交期等不同)。了解要點是标志一行内容的不同,可以包括很多内容的,隻要有一處不同就可以這樣來處理,如其他内容都一樣,就交期不同也能通過此ID來區分。

       下面一段内容要再深入了解,從表述看,還有不清楚之的。

       首先,在客戶銷售訂單有了一個物料資訊,儲存後這個訂單明細ID就會自動生成,(每行會産生一個訂單明細貨品ID,每行内容會是不同的),然後呢,這個訂單明細ID就是記錄這這個物料的編号(老師批注:注意不是訂單明細ID記錄的不是物料的編号,而是這一行該物料編号,以及其他字段的所有資訊構成的一行記錄,如同個訂單中要100台電腦,各50台的單價一樣,但交期不同,或送貨機關(如紙業系統中)不同,就靠這個ID來區分的,即唯一标志碼),就可以去客戶銷售發貨單的訂單貨品明細ID加上這編号,就會生成這個物料(老師批注:通過這個訂單貨品明細ID,就可以引用到訂單中這一行所對應包括物料編号等其他所有資訊,要這樣了解);然後,退貨單是根據發貨單設計好之後在去進行關聯的。

       (按訂單貨品明細ID計算的)淨發貨(即同個訂單貨品明細ID的發貨合計減去退貨合計),是以,在内源的資料項目名稱中是不需要有單據類型的,不然會出錯,也不需要發貨貨品明細ID,因為這裡是根據訂單貨品明細ID來統計;在去加上資料來源訂單—淨發貨,他的來源表是内源(銷售訂單彙集和銷售訂單發貨+退貨彙集),(老師批注:直接使用銷售訂單發貨+退貨彙集與訂單左連接配接是錯誤的,必須,先對發貨+退貨的彙集進行淨發貨計算後,再去與訂單彙集進行左連接配接)。然後在運用到了左連接配接銷售訂單彙集的訂單貨品明細ID=銷售訂單發貨+退貨彙集的訂單貨品明細ID。左連接配接的作用是管理來源表的先後順序。(錯誤的,仔細去檢查測試,糾正過來)。

odoo13 訂單模闆設定_汪涵拜師學藝,第二篇:按銷售訂單控制發貨,還要考慮因退貨而補貨的情況,業務邏輯分析與軟體設計...
odoo13 訂單模闆設定_汪涵拜師學藝,第二篇:按銷售訂單控制發貨,還要考慮因退貨而補貨的情況,業務邏輯分析與軟體設計...

       在提取資料的時候淨發貨對應的提取資料是轉換控制(銷售發貨+退貨淨發貨.淨發貨數量,0)這樣在填表時淨發貨字段在沒資料之前都是0。最後在進行測試!

odoo13 訂單模闆設定_汪涵拜師學藝,第二篇:按銷售訂單控制發貨,還要考慮因退貨而補貨的情況,業務邏輯分析與軟體設計...
odoo13 訂單模闆設定_汪涵拜師學藝,第二篇:按銷售訂單控制發貨,還要考慮因退貨而補貨的情況,業務邏輯分析與軟體設計...

(老師批注:L從這裡描述看使用的是另一個内源,即可銷售發貨+退貨彙集進行再計算的淨發貨内源。這樣才是正确的)。

       3、首次每個隻發1個,然後再發,看看未發數量是不是可以減少1根據這個條件我們去客戶銷售發貨單設定一個取數公式:來源表是我們剛剛設計好的内源(銷售訂單-淨發貨);

       篩選條件根據客戶條件執行,說要要加上銷售訂單-淨發貨.客戶編号=本報表.客戶編号;

       然後再根據上面的條件去提取資料,就是銷售訂單-淨發貨的訂單數量減去銷售訂單-淨發貨-的發貨數量就等于本報表的可發貨數量。最後呢在到篩選條件中加上篩選判斷。

odoo13 訂單模闆設定_汪涵拜師學藝,第二篇:按銷售訂單控制發貨,還要考慮因退貨而補貨的情況,業務邏輯分析與軟體設計...
odoo13 訂單模闆設定_汪涵拜師學藝,第二篇:按銷售訂單控制發貨,還要考慮因退貨而補貨的情況,業務邏輯分析與軟體設計...

        總的來說這個設計就是圍繞着訂單貨品明細ID來。 

        好的,謝謝大家!我的分享完畢!

老師批注:

       按銷售訂單進行發貨控制,還要對退貨進行補貨的業務處理,在了解上是有一定的難度的,但經過反複學習和實踐,基本上已經對業務邏輯有了正确的認識,同時,也能用軟體設計出來,說明還是很努力的。

       對于沒有企業管理知識,企業都沒進入過的孩子而言是有些困難的,但是,把他們放到業務邏輯中去訓練,幾次反複再給矛明确的指導,他們是可以做到事半功倍的。

       以下就是這個業務流程的邏輯關系圖:

odoo13 訂單模闆設定_汪涵拜師學藝,第二篇:按銷售訂單控制發貨,還要考慮因退貨而補貨的情況,業務邏輯分析與軟體設計...

       為更好了解業務流程的邏輯關系,對設計處理的步驟說明如下:

       1、對訂單進行彙集,主要為适應針對不同行業的訂單而設計的,這樣前台可以變化,背景流程可以不變;

       2、将銷售發貨與退貨進行彙集,主要目的是看到内源在整理動态資料上的特點,注意将退貨數量乘上-1,目的是為了求淨發貨時直接求和即可;

       3、淨發貨是對發貨+退貨彙集中标志業務類型和發貨批次的ID去掉後的按銷售訂單貨品明細ID進行求和得到的。

       4、銷售訂單彙集與淨發貨進行關聯,進行發貨的控制,包括在發貨時進行不可超訂單發貨的管控。

       以上内容再仔細學習,重新自己做一個完整的流程出來,從銷售訂單-發貨-退貨,以真正精熟地掌握這類業務流程的處理技術和熟練程度。

       以下是學習和了解按單發貨業務邏輯及原理的視訊:

       以下是為了幫助孩子們了解業務而制作的視訊教程,可以用微信掃一掃,登入我的線上課堂:

odoo13 訂單模闆設定_汪涵拜師學藝,第二篇:按銷售訂單控制發貨,還要考慮因退貨而補貨的情況,業務邏輯分析與軟體設計...

《2020-07-16_按銷售訂單發貨,以及按發貨退貨的流程原理分析和軟體開發過程介紹!》