程序代號: 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=’##########’