最新消息:本站持续更新中,请注意添加收藏夹。搜索关键词时,多换一个同义词。比如要搜索界面,可以尝试页面,画面,PER档等词汇。善于搜索,将大大提高你的查找效率。

TIPTOP axcp500D 代码解释

开发相关 bron1984 11674浏览

成本阶:99  原料无工单(采购料件)  ima08=P/V/Z

  • 原料有工单有BOM
  • 成品或半成品有工单无BOM

0-96 成品或半成品有工单有BOM

 

cca_file 库存成本期初

ccb_file 库存成本当月入库调整金额

ccc_file  库存月加权成本

ccg_file 每月工单主件在制成本(依工单别的分批在制成本)   即工单上阶成本

cch_file 每月工单元件在制成本                              即工单下阶成本

 

cct_file 拆件单头

ccu_file 拆件单身

 

先进先出

Cxa_file

Cxb_file

 

计算范围:

有下列情况之一的料件,均纳入计算范围:

1 tlf档当期有异动的料件 tlf

2当期有投入工时的料件 ccj

3有工单备料且有投入工时的料件  sfa/sfb/ccj

4当期有上阶在制成本的料件(ccg有余额)

5当期有下阶在制成本的料件(cch未余额)

6有库存期初开帐的料件cca

7当期工单有期初在制开帐金额的料件 ccf

8当期工单有在制调整金额的料件ccl

9当期工单有工单发退料异动的料件sfb/tlf

 

select 成本阶ima57, 料号ima01,须计算重工否ccd03,低阶码ima16,来源码ima08,分群码ima06,其他分群码ima09-11,成本分群码ima12,

where ima料号=tlf 料号 and   tlf异动日期为当前期间 and  tlf902仓库不为JIT仓库 and 仓库不为0              ##tlf档当期有异动的料件

UNION

Where ima料号=工单档sfb料号 and 投入工时ccj01在当期期间 and ccj04工单号=工单档工单号sfb01           ##当期有投入工时的料件

UNION

Where ima料号=备料档料号sfa03 and 投入工时ccj01在当期期间 and ccj04工单号=工单档工单号sfb01 and sfa备料档料号=sfb工单档料号  ##有工单备料且有投入工时的料件

UNION

Where ima料号=在制成本档料号ccg and 在制成本为当期 and ccg91/92当期在制成本数量或单价不为零                          ##当期有上阶在制成本的料件

UNION

Where ima料号=在制成本元件档cch料号 and 在制成本为当期 and cch91/92当期在制成本数量或单价不为零                    ##当期有下阶在制成本的料件

UNION

Where ima料号=库存期初开帐料号cca        ##有库存期初开帐的料件

UNION

Where ccf 期初在制开帐金额档料号=工单档料号sfb and ima料号=sfb工单料号 and 期初在制开帐金额不为零              ##当期工单有期初在制开帐金额的料件

UNION

Where ccl当期在制调整金额料号=工单料号ima and ima 料号=工单料号sfb

##当期工单有在制调整金额的料件

UNION

Where (未结案工单sfb38 is null or结案日在当前期间内) and ima料号=工单料号sfb05 and tlf单据日期在当前期间内 and  tlf工单单号=sfb工单单号 and tlf13异动命令代号为“asfi5*”                ##当期工单有工单发退料异动的料件

例如:

SELECT ima57,ima01,ccd03,ima16,ima08,ima06, ima09,ima10,ima11,ima12

FROM ima_file,tlf_file,OUTER ccd_file

WHERE ima57=ccd01 AND ima01 matches ‘*’ AND ima01 NOT MATCHES ‘MISC*’

AND ima01 = tlf01 AND tlf06 BETWEEN ’00/01/01′ AND ’00/01/31′

AND tlf902 NOT IN (SELECT jce02 FROM jce_file)   AND tlf907 != 0

GROUP BY 1,2,3,4,5,6,7,8,9,10

UNION

SELECT ima57,ima01,ccd03,ima16,ima08,ima06, ima09,ima10,ima11,ima12

FROM ima_file, ccj_file,sfb_file,OUTER ccd_file

WHERE ima57=ccd01 AND ima01 matches ‘*’ AND ima01 NOT MATCHES ‘MISC*’

AND ima01 = sfb05 AND ccj01 BETWEEN ’00/01/01′ AND ’00/01/31′

AND ccj04 = sfb01

GROUP BY 1,2,3,4,5,6,7,8,9,10

UNION

SELECT ima57,ima01,ccd03,ima16,ima08,ima06, ima09,ima10,ima11,ima12

FROM ima_file, ccj_file,sfb_file,sfa_file,OUTER ccd_file

WHERE ima57=ccd01 AND ima01 matches ‘*’ AND ima01 NOT MATCHES ‘MISC*’

AND ima01 = sfa03 AND ccj01 BETWEEN ’00/01/01′ AND ’00/01/31′

AND ccj04 = sfb01  AND sfb01 = sfa01

GROUP BY 1,2,3,4,5,6,7, 8,9,10

UNION

SELECT ima57,ima01,ccd03,ima16,ima08,ima06, ima09,ima10,ima11,ima12

FROM ima_file, ccg_file,OUTER ccd_file

WHERE ima57=ccd01 AND ima01 matches ‘*’ AND ima01 NOT MATCHES ‘MISC*’

AND ima01 = ccg04  AND ccg02= 1999 AND ccg03= 12

AND (ccg91 !=0 OR ccg92 !=0 OR ccg92a !=0 OR ccg92b !=0

OR ccg92c!=0 OR ccg92d !=0 OR ccg92e !=0 )

GROUP BY 1,2,3,4,5,6,7,8,9,10

UNION

SELECT ima57,ima01,ccd03,ima16,ima08,ima06, ima09,ima10,ima11,ima12

FROM ima_file,cch_file,OUTER ccd_file

WHERE ima57=ccd01 AND ima01 matches ‘*’ AND ima01 NOT MATCHES ‘MISC*’

AND ima01 = cch04 AND cch02=1999 AND cch03=12

AND (cch91!=0 OR cch92 !=0 OR cch92a!=0 OR cch92b !=0 OR cch92c!=0

OR cch92d !=0 OR cch92e !=0 )

GROUP BY 1,2,3,4,5,6,7,8,9,10

UNION

SELECT ima57,ima01,ccd03,ima16,ima08,ima06, ima09,ima10,ima11,ima12

FROM ima_file,cca_file,OUTER ccd_file

WHERE ima57=ccd01 AND ima01 matches ‘*’ AND ima01 NOT MATCHES ‘MISC*’

AND ima01=cca01 AND cca02= 1999 AND cca03= 12

GROUP BY 1,2,3,4,5,6,7,8,9,10

UNION

SELECT ima57,ima01,ccd03,ima16,ima08,ima06, ima09,ima10,ima11,ima12

FROM ima_file,ccf_file,sfb_file,OUTER ccd_file

WHERE ima57=ccd01 AND ima01 matches ‘*’ AND ima01 NOT MATCHES ‘MISC*’

AND ccf01=sfb01 AND ima01 = sfb05 AND ccf02=1999 AND ccf03=12

AND (ccf11 !=0 OR ccf12!=0 OR ccf12a !=0 OR ccf12b !=0 OR ccf12c !=0

OR  ccf12d !=0 OR ccf12e !=0 )

GROUP BY 1,2,3,4,5,6,7,8,9,10

UNION

SELECT ima57,ima01,ccd03,ima16,ima08,ima06, ima09,ima10,ima11,ima12

FROM ima_file,ccl_file,sfb_file,OUTER ccd_file

WHERE ima57=ccd01 AND ima01 matches ‘*’ AND ima01 NOT MATCHES ‘MISC*’

AND ccl01 = sfb01 AND ima01 = sfb05 AND ccl02= 2000 AND ccl03= 1

GROUP BY 1,2,3,4,5,6,7,8,9,10

UNION

SELECT ima57,ima01,ccd03,ima16,ima08,ima06,ima09,ima10,ima11,ima12

FROM ima_file,tlf_file,sfb_file,OUTER ccd_file

WHERE ima57=ccd01 AND ima01 matches ‘*’ AND ima01 NOT MATCHES ‘MISC*’

AND (sfb38 BETWEEN ’00/01/01′ AND ’00/01/31′ OR sfb38 IS NULL )

AND ima01 = sfb05 AND tlf06 BETWEEN ’00/01/01′ AND ’00/01/31′

AND tlf62 = sfb01   and tlf13[1,5] = ‘asfi5’

GROUP BY 1,2,3,4,5,6,7,8,9,10

INTO TEMP tlf_temp WITH NO LOG

 

计算过程:

排序方式:UNIQUE ima57,ima01,ccd03,ima16   ima57 desc/ima16/ima01

成本阶为99 :1、ccc清零,取上期结存转本期期初

2、由tlf 计算入出库数量,由apb101计算入库(采购)成本

3、加上入库调整金额

4、计算所有出库成本及结存

5、更新ccc-file

成本阶不为99:1、处理当前成本阶所有料件重工

2、ccc清零,取上期结存转本期期初

3、处理WIP在制成本

4、由tlf 计算入出库数量,入库成本(外购料件)

5、加上入库调整金额

6、加上WIP入库金额

7、计算所有出库成本及结存

8、更新ccc-file

处理重工

 

 

重工处理过程:

以当前成本阶的所有料件为计算范围,

1、p500_rework1先处理重工WIP及完成品入库,

p500_wip_rework处理重工在制成本(以重工工单sfb99=Y为范围),步骤与处理一般在制相同:wip_1计算主件部分成本;wip_2计算元件投入成本;wip_3计算元件转出成本;wip_4处理主件SUM成本。

2、p500_rework2计算所有重工出库成本及结存,

p500_ccg2_cost加上WIP重工入库成本(ccg32在制转出金额àccc28);

p500_ccc_tot(2) 计算所有出库成本及结存;

3、记录拆件式工单的投入及转出 (sfb02=11)

找所有拆件式工单;

wipx_1计算拆件式WIP主件部分成本;

wipx_2计算拆件式WIP元件投入成本;

wipx_3计算拆件式WIP元件转出成本;

wipx_4计算拆件式WIP主件SUM成本;

p500_ccc_tot(2)计算所有出库成本及结存;

 

 

MAIN

删除本期已有资料,取上期结存转本期期初p500_last0

找计算范围(取本期有异动之资料计算tlf)

抓资料到   tlf_tmp

fetch 成本阶/料号/重工否/低阶码  (按成本阶降序排列) 来计算

FOR EACH

IF 当前料件成本阶不同

PUSH 料号

P500_rework 重工处理  (本成本阶所有料件)

POP 料号

END IF

保存当前料件料号g_ima01_t

将当前料件当期成本档归零 ccc_file  p500_ccc_0

取料件上期结存p500_last

IF 当前料件不是原料(成本阶数不为99)

处理WIP在制成本  p500_wip

END IF

由tlf_file 计算入出库数量及采购成本  p500_tlf

加入出库调整金额 p500_ccb_cost

IF 当前料件不是原料(成本阶数不为99)

加上WIP入库金额  p500_ccg_cost

END IF

计算所有出库成本及结存 p500_ccc_tot(1)

计算结果写入当期成本档p500_ccc_ins

END FOREACH

IF 上一料号为NULL 则 上一料号置零

IF 上一成本阶为NULL 则上一成本阶置零

第二次处理重工p500_rework

END MAIN

 

 

 

 

 

 

P500_last0()

Delete 本期成本资料

DELETE FROM ccc_file WHERE ccc02=  2000 AND ccc03= 1 AND ccc01 IN(SELECT ima01 FROM ima_file WHERE ima01 matches ‘*’ AND ima01 NOT MATCHES ‘MISC*’)

取上期及开帐成本

SELECT ima01 FROM ccc_file,ima_file WHERE ccc02=1999 AND ccc03=12 AND ccc01=ima01 AND ima01 matches ‘*’ AND ima01 NOT MATCHES ‘MISC*’

UNION SELECT ima01 FROM cca_file,ima_file WHERE cca02=  1999 AND cca03= 12 AND cca01=ima01  AND ima01 matches ‘*’ AND ima01 NOT MATCHES ‘MISC*’

CALL p500_ccc_0() 清零

SELECT * INTO g_ccc.* FROM ccc_file WHERE ccc01 = l_ima01 AND ccc02=last_yy AND ccc03=last_mm      先取上月结存

SELECT * INTO l_cca.* FROM cca_file WHERE cca01=g_ccc.ccc01 AND cca02=last_yy AND cca03=last_mm  再取期初开帐

 

 

 

P500_rework()

取当前料件成本阶的ccd03 (须计算重工否)

IF须重工

先计算WIP及完成品入库p500_rework1

再计算所有出库成本及结存p500­_rework2

记录WIP-拆件式工单在制成本(工单性质为11)目的为取重工后单价 p500_wipx0

END IF

END p500_rework2

 

 

P500_rework1()

在须计算的资料中抓当前料件异动资料 tlf_tmp

FOREACH 料件

从ccc_file 中抓当期资料,否则置零

处理WIP重工成本(重工 sfb99=y —工单档sfb_file 重工否) p500_wip_rework

end foreach

end p500_rework1

 

p500_rework2()

 

在须计算的资料中抓当前成本阶所有料件异动资料 tlf_tmp

FOREACH 料件

从ccc_file 中抓当期资料,否则置零

加上WIP重工入库金额p500_ccg2_cost

计算所有出库成本及结存 p500_ccc_tot(2)

更新ccc_file p500_ccc_upd

end

end

 

 

p500_wipx0()

在须计算的资料中抓当前料件异动资料 tlf_tmp

FOREACH 料件

从ccc_file 中抓当期资料,否则置零

p500_wipx

end

end

 

 

p500_last0()

取上期结存转本月期初

 

p500_tlf

对某一料件由tlf档分类统计入出库数量

并分别取入库成本,出库成本暂未处理

( 由tlf 取异动单类型XXX/单号XXX1/项次XXX2)

 

WHEN tlf13[1,4]=’axmt’ OR tlf13 = ‘aomt800′  销货领出

LET g_ccc.ccc61=g_ccc.ccc61+q_tlf.tlf10*u_sign

CALL p500_ccc63_cost(u_sign)

IF u_sign = 1 THEN

LET g_ccc.ccc64=g_ccc.ccc64+q_tlf.tlf10*u_sign

END IF

 

WHEN q_tlf.tlf13=’aimt301′ OR q_tlf.tlf13=’aimt311’

##报废异动(aimt303,aimt313)应列入杂项异动中

OR q_tlf.tlf13 = ‘aimt303′ OR q_tlf.tlf13 =’aimt313′

LET g_ccc.ccc41=g_ccc.ccc41+q_tlf.tlf10*u_sign

 

WHEN q_tlf.tlf13[1,5]=’asfi5′   #工单发料

IF g_sfb99=’Y’ THEN        #重工领出

LET g_ccc.ccc25=g_ccc.ccc25+q_tlf.tlf10*u_sign

ELSE                       #一般工单领出

LET g_ccc.ccc31=g_ccc.ccc31+q_tlf.tlf10*u_sign

END IF

 

WHEN q_tlf.tlf13[1,5]=’asft6′   #工单入库

IF q_tlf.tlf02 = 65 OR q_tlf.tlf03 = 65 THEN #拆件工单(成本由WIP处理)

LET g_ccc.ccc31=g_ccc.ccc31+q_tlf.tlf10*u_sign

ELSE

IF g_sfb99=’Y’ THEN     #重工入库(成本由重工WIP转出)

LET g_ccc.ccc27=g_ccc.ccc27+q_tlf.tlf10*u_sign

ELSE                    #一般入库

LET g_ccc.ccc21=g_ccc.ccc21+q_tlf.tlf10*u_sign

CALL p500_ccc22_cost()   #取成本

END IF

END IF

 

WHEN q_tlf.tlf13 = ‘aimt302’ OR q_tlf.tlf13 = ‘aimt312′

LET g_ccc.ccc21=g_ccc.ccc21+q_tlf.tlf10

LET g_ccc.ccc43=g_ccc.ccc43+q_tlf.tlf10

CALL p500_ccc22_cost()

U_flag为入出库标志

WHEN u_flag=’1′                 #一般工单入库、采购入、仓退

LET g_ccc.ccc21=g_ccc.ccc21+q_tlf.tlf10*u_sign

CALL p500_ccc22_cost()   #取入库成本

WHEN u_flag=’5′                 #调整

LET g_ccc.ccc51=g_ccc.ccc51+q_tlf.tlf10*u_sign

WHEN u_flag=’6’                 #盘差

LET g_ccc.ccc71=g_ccc.ccc71+q_tlf.tlf10*u_sign

OTHERWISE CONTINUE FOREACH

 

 

 

 

p500_ccc22_cost()

取入库成本

 

工单入库成本暂不处理 (tlf13 MATCHES ‘asf*’)

工单入库成本应由WIP转入,故加工费于wip_2_22()归入投入成本,再转入库

 

如为委外退库暂不处理

IF q_tlf.tlf13 matches ‘apmt107*’ THEN

LET l_pmm02=NULL

SELECT pmm02 INTO l_pmm02 FROM pmm_file WHERE pmm01=q_tlf.tlf036

AND pmm18 <> ‘X’

IF l_pmm02=’SUB’ THEN RETURN END IF          #–>委外退库亦由WIP转出

END IF

WHEN q_tlf.tlf13 MATCHES ‘aimt30*’   #杂项入zzz

CALL p500_ccc44_cost()

LET amt=l_ccc23 * q_tlf.tlf10 * u_sign

WHEN q_tlf.tlf13 = ‘aimt720’ OR   #调拨入zzz

q_tlf.tlf13 = ‘aimp700’ OR q_tlf.tlf13 = ‘aimp701′

LET amt  = g_ccc.ccc23 * q_tlf.tlf10  #直接取上月平均单价

OTHERWISE      #取发发票请款立帐金额

SELECT apa44,SUM(apb101) #帐款单身成本分摊本币金额

为了配合成本分摊作业aapt900 故改apb10为取apb101

FROM apb_file,apa_file

WHERE apb21=xxx1 AND apb22=xxx2   ##xxx1为tlf单据号,xxx2为项次

AND apb01=apa01 AND apa00 = ’11’   #帐款性质为进货发票

AND apa75 != ‘Y’ AND apa42 = ‘N’    #非外购资料且未作废帐款

AND apa02 BETWEEN g_bdate AND g_edate

GROUP BY 1

问题:为何不判断确认否???apa41=Y

SELECT apa44,SUM(apb101)   # 扣除折让部分(退货)

FROM apb_file,apa_file

WHERE apb21=xxx1 AND apb22=xxx2 AND apb01=apa01

AND apa00 = ’21’ AND apa58 = ‘2’ AND apa75 != ‘Y’ #帐款为退货折让

AND apa42 = ‘N’

AND apa02 BETWEEN g_bdate AND g_edate

GROUP BY 1

金额取绝对值

若为外购信用状入库则取到货分摊后金额 sum(ale09)

SELECT alk72,SUM(ale09)

FROM ale_file ,alk_file

WHERE ale16=xxx1 AND ale17=xxx2 AND ale01=alk01

GROUP BY 1

更新tlf 档,其中杂收不更新,由axct500确定

IF q_tlf.tlf13 != ‘aimt302’ and q_tlf.tlf13 != ‘aimt312′ THEN

UPDATE tlf_file SET (tlf21,tlf221,tlf222,tlf2231,tlf2232,tlf224,

tlf211,tlf212,tlf65)

=(amt,amta,amtb,amtc,amtd,amte,TODAY,g_time,l_apa44)

WHERE ROWID=q_tlf_rowed

 

 

 

p500_ccc44_cost()

取杂项入库成本

先取本月杂项入库金额档inb_file (手工维护)

如无单价则取期初开帐金额 cca_file

仍无单价则取上月平均ccc_file ccc23

 

 

 

 

p500_ccc63_cost()

本月销货收入

 

 

p500_ccb_cost()

加入库库调整金额

 

 

p500_ccg_cost()

加上WIP入库金额(工单主件在制成本)

非重工的、非预测工单、非拆件式工单的工单主件在制成本

 

 

p500_ccg2_cost()

加上WIP重工入库金额

重工的、非预测工单、非拆件式工单的工单主件在制成本

 

 

 

p500_ccc_tot(1 or 2)

计算所有出库成本及结存

1à第一阶段,先不处理重工

2à第二阶段,处理重工

if 2 则处理重工 p500_ccc_ccc26     ccc26重工领出金额

p500_ccc_ccc23                    ccc23本月平均单价

IF  第一阶段且当前成本阶不须计算重工 或 第二阶段

LET 本月工单领用成本=0    g_ccc_ccc32

LET 本月杂项领用成本=0             42

LET 本月其他领用成本=0             52

LET 本月销货成本=0                 62/62a/62b/62c/62d/62e

LET 本月盘盈亏金额=0               72

LET 本月销退成本=0                 66/66a-e

P500_tlf21_upd

END IF

LET 本月结存数量ccc91=上月结存数量ccc11+本月入库数量ccc21(采购入+工单入+委外入)+本月重工领出ccc25+本月重工入库数量ccc27+本月工单领用数量ccc31+本月杂项领用数量ccc41+本月其他调整数量ccc51+本月销货数量ccc61+本月盘盈亏数量ccc71

LET 本月结存金额ccc92=上月结存金额ccc12+本月入库金额ccc22(材料22a+人工22b+制费22c+加工22d+其他22e)+本月重工领出金额ccc26+本月重工入库金额ccc28+本月工单领用成本ccc32+本月杂项领用成本ccc42+本月其他调整成本ccc52+本月销货成本ccc62+本月盘盈亏金额ccc72

销退数量ccc64和销退成本ccc66未考虑???

LET 本月结存材料金额=本月结存数量ccc91*本月平均单价-材料ccc223a

人工

制费

委外

其他

差异金额ccc93

 

 

 

p500_ccc_ccc26

处理重工领出金额

 

 

p500_ccc_ccc23()

计算本月重工工单部分的平均单价

先取期初开帐,再取上月余额进行计算平均单价

 

 

p500_tlf_upd()

更新tlf 档单价

 

p500_ccc_ins()

更新ccc档成本金额

 

p500_cch_0()

将工单元件在在制成本档按上月期末转本月期初,其余归零

 

p500_cch_01()

将工单元件在在制成本档全部归零

 

wip_del()

删除工单在制成本档(ccg/cch)

p500_wip()

处理WIP工单在制成本(工单性质1/7)

SELECT * FROM sfb_file   #找当前料件在制工单(非重工)

WHERE sfb05 =g_ima01

AND sfb02!= ’13’ AND sfb02 != ’11’

AND (sfb99 IS NULL OR sfb99 = ‘ ‘ OR sfb99=’N’)

AND (sfb38 IS NULL OR sfb38 >= g_bdate)  # 工单成会结帐日

AND (sfb81 IS NULL OR sfb81 <= g_edate)  # 工单开立日期

ORDER BY sfb01

先delete  ccg/cch  wip_del

计算每张工单的WIP主件部分成本(ccg)  wip_1()

计算每张工单的WIP元件投入成本(cch)  wip_2()

计算每张工单的WIP元件转出成本(cch)  wip_3()

计算每张工单的WIP主件SUM成本(ccg)  wip_4()

 

 

p500_wip_rework()

处理WIP-REWORK在制成本(重工sfb99=’Y’)

先delete  ccg/cch  wip_del2

计算每张工单的WIP主件部分成本(ccg)  wip_1()

计算每张工单的WIP元件投入成本(cch)  wip_2()

计算每张工单的WIP元件转出成本(cch)  wip_3()

计算每张工单的WIP主件SUM成本(ccg)  wip_4()

 

 

wip_1()

计算每张工单的WIP主件部分成本(ccg)

将mccg归零p500_mccg_0

 

wip上期期末数量转本期期初(先取在制工单成本数量ccg91,再取在制开帐档数量ccf11)

工时统计wip_ccg20(取ccj档工单合计工时)

计算每张工单WIP主件转出数量wip_ccg31 (取tlf档成品入库-成品退库)

更新ccg_file

 

 

 

wip_ccg20()

SELECT SUM(ccj05) INTO mccg.ccg20 FROM ccj_file      #取ccj档工单合计工时

WHERE ccj04=g_sfb.sfb01 AND ccj01 BETWEEN g_bdate AND g_edate

 

Wip_ccg31()

计算工单WIP主件转出数量

SELECT SUM(tlf10*tlf60) INTO g_make_qty FROM tlf_file      # 当月成品入库量

WHERE tlf62=g_sfb.sfb01 AND tlf06 BETWEEN g_bdate AND g_edate

AND (tlf03 = 50)

AND tlf13 MATCHES ‘asft6*’

AND (tlf01 = g_sfb.sfb05)

SELECT SUM(tlf10*tlf60) INTO g_make_qty2 FROM tlf_file     #当月成品退库量

WHERE tlf62=g_sfb.sfb01 AND tlf06 BETWEEN g_bdate AND g_edate

AND (tlf02 = 50)

AND tlf13 MATCHES ‘asft6*’

AND (tlf01 = g_sfb.sfb05)

转出数量(以负数表示)=退库量-入库量

 

 

 

wip_ccg21()

计算每张工单的WIP主件投入数量

抓工单发料底稿sfq的成套发料(sfp=1)-成套退料(sfp=6)

 

 

wip_2()

计算每张工单的WIP元件‘期初/本期投入成本’cch

step1. WIP元件上期末转本期期初  wip_2_1

step2-1 WIP元件本期投入材料(依工单发料/退料档) wip_2_21

计算每张工单的WIP主件投入数量           wip_ccg21

step2-2 WIP元件 本期投入人工制费                 wip_2_22

step2-3 WIP元件 本期投入调整成本                 wip_2_23

 

 

wip_2_1()

先取cch档上期转本期期初

再取ccf在制开帐档转本期期初

 

 

wip_2_21()

WIP元件 本期投入材料(依工单发/退料档) 同时结出投入金额

SELECT tlf01,ima08,ima57,tlf02,tlf03,tlf13,SUM(tlf10*tlf60*tlf907*-1),

SUM(tlf21*tlf907*-1),SUM(tlf221*tlf907*-1),SUM(tlf222*tlf907*-1),

SUM(tlf2231*tlf907*-1)

FROM tlf_file,ima_file

WHERE tlf62=g_sfb.sfb01 AND tlf06 BETWEEN g_bdate AND g_edate

AND ((tlf02=50 AND tlf03 BETWEEN 60 AND 69) OR

(tlf03=50 AND tlf02 BETWEEN 60 AND 69))

AND tlf01=ima01 AND tlf10<>0

AND tlf13 MATCHES ‘asfi5*’ #工单发退料

AND tlf907 != 0

GROUP BY 1,2,3,4,5,6

 

主件料号=元件料号   表示重工

成本阶相等ima57 =ima57_t表示重工

成本阶较小ima57<ima57_t 表示重工

取发料单价

本阶重工者取重工前库存月平均 (本月ccc12+ccc22)

上阶重工者取上月库存月平均

无单价取上月库存月平均    (上月ccc23)

仍无单价取上期库存开帐单价(上月cca23)

非重工则取本月库存月平均 (当月ccc23)

 

 

 

 

wip_2_22()

WIP元件 本期投入人工制费

由cck每月人工/制费/工时档抓取

委外加工成本=委外入库(apb101)-委外退库(apb101)

 

 

wip_2_23()

WIP元件 本期投入调整成本

由ccl 在制调整成本档抓取

 

wip_32()

WIP元件 本期转出成本(实际成本)

 

先判断本期转出元件数量(依标准QPA计算)

按工时分配人工制费

若本期仅发生加工费且已完工入库,则全数转出

若当期未转出即结案,则归入差异成本

计算本期结存成本

 

 

p500_sub()

替代件转出

 

 

wip_4()

计算每张工单WIP主件成本ccg

取cch-àccg  ,取半成品cch-à ccg ,  所有cch-半成品cch(元件转出成本) = 本阶主件投入成本

 

 

 

p500_wipx()    拆件式工单投入及拆件转出

处理WIP在制成本

wipx_1 计算每张工单的WIP 主件部分成本(cct)

wipx_2 计算每张工单的WIP 元件投入成本(ccu)

wipx_3计算每张工单的WIP 元件转出成本(ccu)

wipx_4 计算每张工单的WIP 主件SUM成本(cct)

p500_ccc_tot(2) 计算所有出库成本及结存

p500_ccc_upd   update ccc_file

 

wipx_1()

计算每张拆件式工单的WIP主件部分成本

将mcct清零

wipx_cct20 统计工时

 

 

wipx_2()

计算每张拆件式工单的WIP元件‘期初/本期投入’成本(ccu)

wipx2_1   WIP元件 上期期末转本期期初

wipx2_21   WIP元件 本期投入材料(依拆件式工单发/退料单)

wipx2_22  WIP元件 本期投入人工制费

wipx2_23  WIP元件 本期投入调整成本

 

 

wipx_3()

WIP元件 本期转出成本

取当月库存月平均档,拆出元件取本月算出加权平均单价

wipx_2_24() 计算期末(工单未结案)或差异(工单已结案)

 

 

wipx_4()

计算每张拆件式工单WIP主件成本(cct)

 

转载请注明:赫非域 » TIPTOP axcp500D 代码解释