程序代号: CMSB07
程序名称: 取消库位管理
Parent Class:
系统分析代号:
信息文件:BOMTD (R/W) 组合单单头
BOMTE (R/W) 组合单单身
BOMTF (R/W) 拆解单单头
BOMTG (R/W) 拆解单单身
CMSMA (R/W) 公用参数档
CMSNI (R/W) 仓库库位档
COPTH (R/W) 销货单单身信息档
COPTJ (R/W) 销退单单身信息档
COPTO (R/W) 出货通知单身档
CUSTN (R/W) 交易单据单身档
DHQTE (R/W) 调拨出库单身档
DHQTG (R/W) 调拨出库到达单身档
DHQTM (R/W) 调拨退库到达单身档
EPSTB (R/W) 出货通知单身
EPSTC (R/W) 包装明细信息档
GMPTH (R/W) 留样单信息档
GMPTI (R/W) 留样检验单头信息档
GMPTL (R/W) 养护检验单头信息档
INVMC (R/W) 品号仓库档
INVML (R/W) 品号仓库库位批号档
INVTB (R/W) 交易单据单身档
INVTC (R/W) 盘点底稿信息档单身
INVTD (R/W) 盘点信息汇总档
INVTG (R/W) 借出入调拨单身档
INVTI (R/W) 借出入归还单身档
INVTK (R/W) 成本开账/调整单身档
INVTM (R/W) 报废单单身档
INVTO (R/W) 销毁单单身档
INVLA (R/W) 交易明细信息档
INVLE (R/W) 品号月档子单身
KBSMM (R/W) 看板序号维护单身档
KBSTF (R/W) 刷读产生生产入库单单身档
KBSTI (R/W) 刷读产生调拨单单身档
KBSTK (R/W) 刷读产生销货单单身档
MOCTE (R/W) 领/退料单身档
MOCTG (R/W) 生产入库单身档
MOCTI (R/W) 委外进货单身档
MOCTL (R/W) 委外退货单身档
PURTH (R/W) 进货单单身信息档
PURTJ (R/W) 退货单单身信息档
QMSTA (R/W) 进货检验单单头档
QMSTD (R/W) 委外进货检验单单头档
QMSTG (R/W) 生产入库检验单单头档
QMSTJ (R/W) 转移检验单单头档
RMATD (R/W) 维修单单身档
SFCTC (R/W) 转移单单身档
屏幕格式:
* 运行本作业将取消库位管理,在进行取消之前,请做好数据的备份工作,防止因误取消而带来工作不便*
信息处理:
0.开启程序时,做判断
IF 启用库位管理(CMS.MA093)<>’Y’ THEN
SHOW MSG E+200483:”共用参数中未启用库位管理,不可运行该作业!”,不开启该程序
ENDIF
按「直接处理」或「后台处理」后SHOW WARNING MSG
MSG CODE:W+200253,”运行本作业将取消库位管理,在进行取消之前,请做好数据的备份工作,防止因误取消而带来工作不便!确定开始取消?”
1.BOM系统
1.1 BOMTD(组合单单头)
UPDATE BOMTD SET TD022=’##########’
1.2 BOMTE(组合单单身)
UPDATE BOMTE SET TE015=’##########’
1.3 BOMTF(拆解单单头)
UPDATE BOMTF SET TF021=’##########’
1.4 BOMTG(拆解单单身)
UPDATE BOMTG SET TG015=’##########’
2.CMS系统
2.1 CMSMA(公用参数档)
UPDATE CMSMA SET MA093=’N’,MA096=’Y’
2.2 CMSNI(仓库库位档)
DELETE CMSNI
关联 仓库信息档(CMSMC) 得到QureyA
逐笔INSERT
WHILE NOT QueryA.EOF DO
INSERT CMSNI
NI001 仓库编号 = QueryA.MC001
NI002 库位编号 = '##########'
NI003 库位说明 = ''
NI004 有效码 = QueryA.MC018
NI005 备注 = ''
NI006 传送码 = 'N'
NI007 传送日期 = ''
QueryA.NEXT
END
3.COP系统
3.1 COPTH(销货单单身信息档)
UPDATE COPTH SET TH056=’##########’
3.2 COPTJ(销退单单身信息档)
UPDATE COPTJ SET TJ057=’##########’
3.3 COPTO(出货通知单身档)
UPDATE COPTO SET TO039=’##########’
4.CUS系统
4.1 CUSTN(交易单据单身档)
UPDATE CUSTN SET TN013=’##########’
5.DHQ系统
5.1 DHQTE(调拨出库单身档)
UPDATE DHQTE SET TE032=’##########’
5.2 DHQTG(调拨出库到达单身档)
UPDATE DHQTG SET TG029=’##########’
5.3 DHQTM(调拨退库到达单身档)
UPDATE DHQTM SET TM024=’##########’
6.EPS系统
6.1 EPSTB(出货通知单身)
UPDATE EPSTB SET TB041=’##########’
6.2 EPSTC(包装明细信息档)
UPDATE EPSTC SET TC037=’##########’
7.GMP系统
7.1 GMPTH(留样单信息档)
UPDATE GMPTH SET TH027=’##########’
7.2 GMPTI(留样检验单头信息档)
UPDATE GMPTI SET TI038=’##########’
7.3 GMPTL(养护检验单头信息档)
UPDATE GMPTL SET TL038=’##########’
8.INV系统
8.1 INVMC(品号仓库档)
UPDATE INVMC SET MC015=’##########’
8.2 INVML(品号仓库库位批号档)
IF 数量表达方式(CMS.MA024)='1'单单位 OR '3'制造双单位 THEN
关联:品号仓库库位档.品号+仓库(INV.ML001+ML002) *= 品号仓库档.品号+仓库(INV.MC001+MC002)
品号仓库库位档.品号+批号(INV.ML001+ML004) *= 品号批号档.品号+批号(INV.ME001+ME002)
GROUP BY 品号(ML001)+仓库(ML002)+批号(ML004)
排序:品号(ML001)+仓库(ML002)+批号(ML004)
Qty = SUM(INV.ML005)
QtyPack = SUM(INV.ML006)
ELSE
关联:品号仓库库位档.品号+仓库(INV.ML001+ML002) *= 品号仓库档.品号+仓库(INV.MC001+MC002)
品号仓库库位档.品号+批号(INV.ML001+ML004) *= 品号批号档.品号+批号(INV.ME001+ME002)
品号仓库库位档.品号(INV.ML001) *= 品号基本信息档.品号(INV.MB001)
品号基本信息档.品号+小单位(INV.MB001+MB072) *= 品号换算单位档.品号+换算单位(INV.MD001+MD002)
GROUP BY 品号(ML001)+仓库(ML002)+批号(ML004)
排序:品号(ML001)+仓库(ML002)+批号(ML004)
IF 换算率分子(MD003) is null OR 换算率分子(MD003)=0 OR 换算率分母(MD004)=0
Qty = SUM(INV.ML005)
ELSE
SIGN(INV.ML005)*FLOOR(ABS(INV.ML005)) AS ML005A 库存数量整数位
INV.ML005-(SIGN(INV.ML005)*FLOOR(ABS(INV.ML005))) AS ML005B 库存数量小数位
INVML_库存量 = SUM((ML005A*MD003/MD004)+(ML005B*1000)) 加总换算成小单位数量
INVML_库存量/MD003*MD004 ,取整数 AS ML005_A,取余数 AS ML005_B 换算成大单位数量
Qty = ML005_A+(ML005_B/1000,取小数三位)
ENDIF
QtyPack = 0
ENDIF
得到 QueryA
关联 QueryA.品号+仓库+批号(ML001+ML002+ML004) *= 品号仓库库位档.品号+仓库+批号(INV.ML001+ML002+ML004)
ORDER BY 品号(ML001)+仓库(ML002)+批号(ML004)
GET MAX(ML008) AS ML008A, MAX(ML009) AS ML009A, MAX(ML010) AS ML010A
得到 QueryB
DELETE INVML
逐笔 INSERT 品号仓库库位批号档(INVML)
ML001 品号 = QueryB.ML001
ML002 仓库 = QueryB.ML002
ML003 库位 = '##########'
ML004 批号 = QueryB.ML004
ML005 库存数量 = QueryB.Qty
ML006 库存包装数量 = QueryB.QtyPack
ML007 预留字段 =
ML008 上次盘点日 = QueryB.ML008A
ML009 最近入库日 = QueryB.ML009A
ML010 最近出库日 = QueryB.ML010A
ML011 备注 =
8.3 INVTB(交易单据单身档)
UPDATE INVTB SET TB029=’##########’
UPDATE INVTB SET TB030=’##########’ WHERE TB013<>”
8.4 INVTC(盘点底稿信息档单身)
UPDATE INVTC SET TC014=’##########’
8.5 INVTD(盘点信息汇总档)
UPDATE INVTD SET TD017=’##########’
8.6 INVTG(借出入调拨单身档)
UPDATE INVTG SET TG033=’##########’,TG034=’##########’
8.7 INVTI(借出入归还单身档)
UPDATE INVTI SET TI026=’##########’,TI027=’##########’
8.8 INVTK(成本开账/调整单身档)
UPDATE INVTK SET TK026=’##########’
8.9 INVTM(报废单单身档)
UPDATE INVTM SET TM026=’##########’ WHERE TM014<>”
UPDATE INVTM SET TM027=’##########’
8.10 INVTO(销毁单单身档)
UPDATE INVTO SET TO016=’##########’
8.11 INVLA(交易明细信息档)
UPDATE INVLA SET LA023=’##########’
8.12 INVLE(品号月档子单身)
IF 数量表达方式(CMS.MA024)=’1’单单位 OR ‘3’制造双单位 THEN
关联:品号月档子单身.品号+库存年月+仓库+批号(INV.LE001+LE002+LE003+LE005)
条件:库存年月(LE002)<=库存现行年月(CMS.MA011)
GROUP BY 品号(LE001)+库存年月(LE002)+仓库(LE003)+批号(LE005)
ORDER BY 品号(LE001)+库存年月(LE002)+仓库(LE003)+批号(LE005)
Q006 = SUM(INV.LE006)
Q008 = SUM(INV.LE008)
Q010 = SUM(INV.LE010)
Q012 = SUM(INV.LE012)
Q014 = SUM(INV.LE014)
Q016 = SUM(INV.LE016)
Q018 = SUM(INV.LE018)
Q020 = SUM(INV.LE020)
Q022 = SUM(INV.LE022)
Q024 = SUM(INV.LE024)
Q026 = SUM(INV.LE026)
Q032 = SUM(INV.LE032)
Q033 = SUM(INV.LE033)
Q034 = SUM(INV.LE034)
Q035 = SUM(INV.LE035)
Q036 = SUM(INV.LE036)
Q037 = SUM(INV.LE037)
Q038 = SUM(INV.LE038)
Q039 = SUM(INV.LE039)
Q040 = SUM(INV.LE040)
Q041 = SUM(INV.LE041)
Q042 = SUM(INV.LE042)
ELSE
关联:品号月档子单身.品号(INV.LE001) *= 品号基本信息档.品号(INV.MB001)
品号基本信息档.品号+小单位(INV.MB001+MB072) *= 品号换算单位档.品号+换算单位(INV.MD001+MD002)
条件:库存年月(LE002)<=库存现行年月(CMS.MA011)
GROUP BY 品号(LE001)+库存年月(LE002)+仓库(LE003)+批号(LE005)
ORDER BY 品号(LE001)+库存年月(LE002)+仓库(LE003)+批号(LE005)
IF 换算率分子(MD003) is null OR 换算率分子(MD003)=0 OR 换算率分母(MD004)=0
Q006 = SUM(INV.LE006)
Q008 = SUM(INV.LE008)
Q010 = SUM(INV.LE010)
Q012 = SUM(INV.LE012)
Q014 = SUM(INV.LE014)
Q016 = SUM(INV.LE016)
Q018 = SUM(INV.LE018)
Q020 = SUM(INV.LE020)
Q022 = SUM(INV.LE022)
Q024 = SUM(INV.LE024)
Q026 = SUM(INV.LE026)
ELSE
SIGN(INV.LE006)*FLOOR(ABS(INV.LE006)) AS LE006A 库存数量整数位
INV.LE006-(SIGN(INV.LE006)*FLOOR(ABS(INV.LE006))) AS LE006B 库存数量小数位
INVLE_LE006 = SUM((LE006A*MD003/MD004)+(LE006B*1000)) 加总换算成小单位数量
INVLE_LE006/MD003*MD004 ,取整数 AS LE006_A,取余数 AS LE006_B 换算成大单位数量
Q006 = LE006_A+(LE006_B/1000,取小数三位)
Q008 ,Q010 ,Q012 ,Q014 ,Q016 ,Q018 ,Q020 ,Q022 ,Q024 ,Q026分别对应于
LE008,LE010,LE012,LE014,LE016,LE018,LE020,LE022,LE024,LE026同上处理
ENDIF
Q032 = 0
Q033 = 0
Q034 = 0
Q035 = 0
Q036 = 0
Q037 = 0
Q038 = 0
Q039 = 0
Q040 = 0
Q041 = 0
Q042 = 0
ENDIF
得到 QueryA
DELETE INVLE
WHILE NOT QueryA.EOF DO
LE001 品号 = QueryA.LE001
LE002 库存年月 = QueryA.LE002
LE003 仓库 = QueryA.LE003
LE004 库位 = '##########'
LE005 批号 = QueryA.LE005
LE006 月初数量 = QueryA.Q006
LE007 预留字段 =
LE008 本月入库数量 = QueryA.Q008
LE009 预留字段 =
LE010 本月销货数量 = QueryA.Q010
LE011 预留字段 =
LE012 本月领料数量 = QueryA.Q012
LE013 预留字段 =
LE014 本月调拨(入)数量 = QueryA.Q014
LE015 预留字段 =
LE016 本月调整(入)数量 = QueryA.Q016
LE017 预留字段 =
LE018 本月出库数量 = QueryA.Q018
LE019 预留字段 =
LE020 本月销退数量 = QueryA.Q020
LE021 预留字段 =
LE022 本月退料数量 = QueryA.Q022
LE023 预留字段 =
LE024 本月调拨(出)数量 = QueryA.Q024
LE025 预留字段 =
LE026 本月调整(出)数量 = QueryA.Q026
LE027 预留字段 =
LE028 预留字段 =
LE029 预留字段 =
LE030 预留字段 =
LE031 预留字段 =
LE032 月初包装数量 = QueryA.Q032
LE033 本月入库包装数量 = QueryA.Q033
LE034 本月销货包装数量 = QueryA.Q034
LE035 本月领料包装数量 = QueryA.Q035
LE036 本月调拨(入)包装数量 = QueryA.Q036
LE037 本月调整(入)包装数量 = QueryA.Q037
LE038 本月出库包装数量 = QueryA.Q038
LE039 本月销退包装数量 = QueryA.Q039
LE040 本月退料包装数量 = QueryA.Q040
LE041 本月调拨(出)包装数量 = QueryA.Q041
LE042 本月调整(出)包装数量 = QueryA.Q042
LE043 预留字段 =
LE044 预留字段 =
LE045 预留字段 =
LE046 预留字段 =
LE047 预留字段 =
LE048 预留字段 =
QueryA.NEXT
ENDDO
9.KBS系统
9.1 KBSMM(看板序号维护单身档)
UPDATE KBSMM SET MM014=’##########’
9.2 KBSTF(刷读产生生产入库单单身档)
UPDATE KBSTF SET TF014=’##########’
9.3 KBSTI(刷读产生调拨单单身档)
UPDATE KBSTI SET TI015=’##########’,TI019=’##########’
9.4 KBSTK(刷读产生销货单单身档)
UPDATE KBSTK SET TK015=’##########’
10.MOC系统
10.1 MOCTE(领/退料单身档)
UPDATE MOCTE SET TE025=’##########’
10.2 MOCTG(生产入库单身档)
UPDATE MOCTG SET TG036=’##########’
10.3 MOCTI(委外进货单身档)
UPDATE MOCTI SET TI060=’##########’
10.4 MOCTL(委外退货单身档)
UPDATE MOCTL SET TL040=’##########’
11.PUR系统
11.1 PURTH(进货单单身信息档)
UPDATE PURTH SET TH072=’##########’
11.2 PURTJ(退货单单身信息档)
UPDATE PURTJ SET TJ046=’##########’
12.QMS系统
12.1 QMSTA(进货检验单单头档)
UPDATE QMSTA SET TA037=’##########’ WHERE TA036<>”
12.2 QMSTD(委外进货检验单单头档)
UPDATE QMSTD SET TD037=’##########’ WHERE TD036<>”
12.3 QMSTG(生产入库检验单单头档)
UPDATE QMSTG SET TG037=’##########’ WHERE TG036<>”
12.4 QMSTJ(转移检验单单头档)
UPDATE QMSTJ SET TJ037=’##########’ WHERE TJ036<>”
13.RMA系统
13.1 RMATD(维修单单身档)
UPDATE RMATD SET TD019=’##########’
14.SFC系统
14.1 SFCTC(转移单单身档)
UPDATE SFCTC SET TC056=’##########’