标签:
程序代号: 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=’##########’
标签:
原文地址:http://blog.csdn.net/david_520042/article/details/51319706