退回原流程
RETURNED_TO_FLOW
ISSUE-20260803-0004
要創建SW料號寄倉單才能調倉與加工
現放 無
處理時間軸
-
第 1 輪 翁嘉駿 人工 2026-08-03 19:56動作為什麼: 人工新增料號的時候,並不會創建SW料號。 代碼如下: from MOMO.models import 單品 def 判定物品為B料號或C料號(): 料號 = obj.物品.料號 if 料號[0] == "C": return "C料號" if 料號[0] == "B": return "B料號" else: return "異常" def 獲取單品資料(obj): 物品類別obj = 物品類別.objects.get(類別="寄倉加工") 物品_obj = obj.物品 料號 = "SW_" + 物品_obj.料號 品名 = 物品_obj.品名 規格 = 物品_obj.規格 return 物品類別obj, 物品_obj, 料號, 品名, 規格 def 判定是否重複創建SW(料號): 全部物品obj = 全部物品.objects.filter(料號=料號) if len(全部物品obj) == 0: return "否" return "是" 料號 ="B23196-01" # 人工更改單品料號 print(料號) obj = 單品.objects.get(物品__料號=料號) print(obj.id) 物品類別obj, 物品_obj, 寄倉用料號, 品名, 規格 = 獲取單品資料(obj) print(寄倉用料號) 是否重複創建SW = 判定是否重複創建SW(寄倉用料號) print(是否重複創建SW) 判定為B或C料號 = "B料號" if 是否重複創建SW == "是": print("已經重複創建SW料號") elif 判定為B或C料號 == "B料號": SW物品_obj = 全部物品.objects.create(料號=寄倉用料號, 類別=物品類別obj, 品名=品名, 規格=規格, 銷售成本=0) 加工_產品_數量.objects.create(加工品=SW物品_obj, 內容物品=物品_obj, 數量=1) obj.寄倉用料號 = SW物品_obj elif 判定為B或C料號 == "C料號": SW物品_obj = 全部物品.objects.create(料號=寄倉用料號, 類別=物品類別obj, 品名=品名, 規格=規格, 銷售成本=0) 複合商品_內容qs = 物品_obj.複合商品_內容.all() for 複合商品_內容obj in 複合商品_內容qs: 加工_產品_數量.objects.create(加工品=SW物品_obj, 內容物品=複合商品_內容obj.內容物品, 數量=複合商品_內容obj.數量) obj.寄倉用料號 = SW物品_obj obj.save() 寄倉用料號obj = 全部物品.objects.get(料號=寄倉用料號) qs = 單品.objects.filter(物品__料號=料號).update(寄倉用料號_id=寄倉用料號obj.id) print(f"顯示SW:{qs}") 全部物品.objects.filter(料號=料號).update(銷售成本=0) 單品.objects.filter(物品__料號=料號).update(人工判定銷售狀態_id=3) # 進行 以上的代碼,只需要更改上方變數「料號」替換單品的料號即可,將這段代碼貼到 JuyterNotebook,要在Django ORM環境底下執行就可以自動創建SW料號,可以回MOMO 單品進去編輯頁面驗證查看「寄倉用料號」是否已經SW料號。結果B23196-01 已經創建好SW料號並且關聯回去。✔ 已解決