看程式容易理解.
這是我看程式時記錄的東東.可參考.
Axcp500
選出需要計算成本之料號範圍
SELECT * INTO g_ccc.* FROM ccc_file
WHERE ccc01 = g_ima01 AND ccc02 = yy AND ccc03 = mm
CALL p500_ccc_0()
將 g_ccc.* 歸 0
CALL p500_last()
取上期結存轉本月期初
成本階為99 表示為Purchase part 不須處理 WIP 在製成本
IF g_ima57 !='99' THEN
CALL p500_wip() # 先處理 WIP 在製成本 (工單性質=1/7)
END IF
CALL p500_tlf() # 由 tlf_file 計算各類入出庫數量, 採購成本
CALL p500_ccb_cost() # 加上入庫調整金額
IF g_ima57!='99' THEN
CALL p500_ccg_cost() # 加上WIP入庫金額
END IF
CALL p500_ccc_tot('1') # 計算所有出庫成本及結存
CALL p500_ccc_ins() # Insert ccc_file
CALL p500_rework()
CALL p500_ccc63_cost(u_sign)
CALL p500_ccc22_cost()
CALL p500_ccc44_cost()
FUNCTION p500_ccc_tot(p_sw) # 計算所有出庫成本及結存
IF p_sw='2' THEN CALL p500_ccc_ccc26() END IF
CALL p500_ccc_ccc23()
FUNCTION p500_wip() # 處理 WIP 在製成本 (工單性質=1/7)
MESSAGE 'wo:',g_sfb.sfb01," #1"
CALL wip_1() # 計算每張工單的 WIP-主件 部份 成本 (ccg)
MESSAGE 'wo:',g_sfb.sfb01," #2"
CALL wip_2() # 計算每張工單的 WIP-元件 投入 成本 (cch)
MESSAGE 'wo:',g_sfb.sfb01," #3"
CALL wip_3() # 計算每張工單的 WIP-元件 轉出 成本 (cch)
MESSAGE 'wo:',g_sfb.sfb01," #4"
CALL wip_4() # 計算每張工單的 WIP-主件 SUM 成本 (ccg)
CALL wip_1()
CALL wip_ccg20() # 工時統計
CALL wip_ccg31() # 計算每張工單的 WIP-主件 轉出數量
INSERT INTO ccg_file VALUES (mccg.*)
FUNCTION wip_2() # 計算每張工單的 WIP-元件'期初,本期投入'成本 (cch)
CALL wip_2_1() # step 1. WIP-元件 上期期末轉本期期初
CALL wip_2_21() # step 2-1. WIP-元件 本期投入材料 (依工單發料/退料檔)
CALL wip_ccg21() # 計算每張工單的 WIP-主件 投入數量 -> 有爭議
CALL wip_2_22() # step 2-2. WIP-元件 本期投入人工製費
CALL wip_2_23() # step 2-3. WIP-元件 本期投入調整成本
END FUNCTION
FUNCTION wip_2_1() # 1. WIP-元件 上期期末轉本期期初
CALL p500_cch_0() # 上期期末轉本期期初, 將 cch 歸 0
CALL p500_cch_01() # 將 cch 歸 0
FUNCTION wip_2_21() # 2-1. WIP-元件 本期投入材料 (依工單發料/退料檔)
CALL p500_cch_01() # 將 cch 歸 0
FUNCTION wip_2_22() # 2-2. WIP-元件 本期投入人工製費