diff --git a/01.扩展/HandleUtils/HandleUtils.csproj b/01.扩展/HandleUtils/HandleUtils.csproj index 37a1d6c..207bbc8 100644 --- a/01.扩展/HandleUtils/HandleUtils.csproj +++ b/01.扩展/HandleUtils/HandleUtils.csproj @@ -48,9 +48,11 @@ + + \ No newline at end of file diff --git a/01.扩展/HandleUtils/sql/拆分字段值.sql b/01.扩展/HandleUtils/sql/拆分字段值.sql new file mode 100644 index 0000000..2edbb54 --- /dev/null +++ b/01.扩展/HandleUtils/sql/拆分字段值.sql @@ -0,0 +1,72 @@ +declare @val varchar(8000) +set @val = 'AA1,10.1;BB1,6.5' + +/************************ֳɶжstart***************************/ +--v1.0 +SELECT + rowSet.[1] AS 'MaterialId' + ,rowSet.[2] AS 'Qty' + ,rowSet.[3] AS 'StockId' + ,rowSet.[4] AS 'dateTime' +FROM ( + SELECT + CAST(''+ REPLACE(rowSet.resVal,',','') + '' AS XML) AS xmlVal + ,ROW_NUMBER() over (order by resVal) RN + FROM ( + SELECT CAST(''+ REPLACE('AA1,10.1;BB1,16.5',';','') + '' AS XML) AS xmlVal + ) AS valSet + OUTER APPLY ( + SELECT T.C.value('.','varchar(100)') resVal + FROM valSet.xmlVal.nodes('/v') AS T(C) + ) rowSet +) AS valSet +OUTER APPLY ( + SELECT TT2.* + FROM ( + SELECT T.C.value('.','varchar(100)') resVal + ,ROW_NUMBER() over (order by valSet.RN) RowNo + FROM valSet.xmlVal.nodes('/v') AS T(C) + ) TT + PIVOT ( MAX(TT.resVal) FOR TT.RowNo IN ([1],[2],[3],[4])) TT2 +) rowSet +--v2.0 +SELECT + rowSet2.[1] AS 'MaterialId' + ,rowSet2.[2] AS 'Qty' + ,rowSet2.[3] AS 'StockId' + ,rowSet2.[4] AS 'FDate' + ,rowSet2.[5] AS 'FSBILLID' + ,rowSet2.[6] AS 'FSID' + ,rowSet2.[7] AS 'FSTABLENAME' + ,0 AS 'HasVal' +FROM ( + SELECT 1 ID,CAST(''+ REPLACE('AA1,10.1;BB1,16.5',';','') + '' AS XML) AS xmlVal +) AS valSet +OUTER APPLY ( + SELECT ROW_NUMBER() OVER (ORDER BY valSet.ID) RN + ,CAST(''+ REPLACE(T.C.value('.','varchar(100)'),',','') + '' AS XML) xmlVal + FROM valSet.xmlVal.nodes('/v') AS T(C) +) rowSet +OUTER APPLY ( + SELECT * FROM ( + SELECT T.C.value('.','varchar(100)') AS xmlVal + ,ROW_NUMBER() OVER (ORDER BY rowSet.RN) RowNo + FROM rowSet.xmlVal.nodes('/v') AS T(C) + ) TT + PIVOT ( MAX(TT.xmlVal) FOR TT.RowNo IN ([1],[2],[3],[4],[5],[6],[7])) TT2 +) rowSet2 +/************************ֳɶжend***************************/ + +/************************ֳɶstart***************************/ +SELECT + rowSet.resVal + ,rowSet.rowNo +FROM ( + SELECT CAST(''+ REPLACE('AA1,10.1;BB1,6.5',';','') + '' AS XML) AS xmlVal +) AS valSet +OUTER APPLY ( + SELECT T.C.value('.','varchar(100)') resVal + ,row_number() over (order by C) rowNo + FROM valSet.xmlVal.nodes('/v') AS T(C) +) rowSet +/************************ֳɶend***************************/ \ No newline at end of file diff --git a/01.扩展/HandleUtils/sql/查询字段所在表.sql b/01.扩展/HandleUtils/sql/查询字段所在表.sql index 66e672d..d415d7e 100644 --- a/01.扩展/HandleUtils/sql/查询字段所在表.sql +++ b/01.扩展/HandleUtils/sql/查询字段所在表.sql @@ -6,6 +6,6 @@ FROM syscolumns b WHERE a.id= b.id - AND b.name LIKE '%FSALUNITID' + AND b.name LIKE '%FPRICE' AND a.type= 'U' - --AND a.name LIKE 'T_PRD_%' \ No newline at end of file + AND a.name LIKE 'T_STK_STKTRANSFERINENTRY%' \ No newline at end of file diff --git a/01.扩展/HandleUtils/sql/查询表名.sql b/01.扩展/HandleUtils/sql/查询表名.sql index d37346a..51b55c4 100644 --- a/01.扩展/HandleUtils/sql/查询表名.sql +++ b/01.扩展/HandleUtils/sql/查询表名.sql @@ -3,5 +3,5 @@ SELECT FROM sysobjects a WHERE - a.name LIKE 'T_AR_RECEIVABLEENTRY%' + a.name LIKE 'T_BD_MATERIAL%' AND a.type= 'U' \ No newline at end of file diff --git a/01.扩展/HandleUtils/sql/查询表所在模块.sql b/01.扩展/HandleUtils/sql/查询表所在模块.sql new file mode 100644 index 0000000..34dc3d6 --- /dev/null +++ b/01.扩展/HandleUtils/sql/查询表所在模块.sql @@ -0,0 +1,10 @@ +/****************ѯģ***************/ +SELECt FOBJECTTYPEID --ģ + ,FREFOBJECTTYPEID + ,FTABLENAME + ,FFIELDNAME + ,t1_l.FNAME +FROM T_META_OBJECTTYPEREF t0 + INNER JOIN T_META_OBJECTTYPE_L t1_l + on t0.FOBJECTTYPEID = t1_l.FID AND t1_l.FLOCALEID = 2052 +WHERE FTABLENAME = 'T_HS_OUTACCTG' \ No newline at end of file diff --git a/02.珠海市供水有限公司/SAL_OUTSTOCK/SAL_OUTSTOCK.csproj b/02.珠海市供水有限公司/SAL_OUTSTOCK/SAL_OUTSTOCK.csproj index 5c269a9..6c66b31 100644 --- a/02.珠海市供水有限公司/SAL_OUTSTOCK/SAL_OUTSTOCK.csproj +++ b/02.珠海市供水有限公司/SAL_OUTSTOCK/SAL_OUTSTOCK.csproj @@ -69,11 +69,6 @@ - - - - - diff --git a/02.珠海市供水有限公司/ZHSW.Python/PUR_Requisition/BillEventPlugInEx.py b/02.珠海市供水有限公司/ZHSW.Python/PUR_Requisition/BillEventPlugInEx.py index 5275fff..3297d13 100644 --- a/02.珠海市供水有限公司/ZHSW.Python/PUR_Requisition/BillEventPlugInEx.py +++ b/02.珠海市供水有限公司/ZHSW.Python/PUR_Requisition/BillEventPlugInEx.py @@ -9,7 +9,6 @@ clr.AddReference("Kingdee.BOS.ServiceHelper") from Kingdee.BOS import* from Kingdee.BOS.Core import * -from Kingdee.BOS.Core.Metadata.EntityElement import * from Kingdee.BOS.Orm.DataEntity import* from Kingdee.BOS.Orm.Metadata.DataEntity import* from Kingdee.BOS.Core.DynamicForm.PlugIn import * @@ -40,52 +39,84 @@ def DataChanged(e): entrys = this.View.Model.GetEntityDataObject(entity) idlist = list(filter(lambda x:x["materialId"] > 0,map(lambda x:{ "materialId":x["MaterialId_Id"] ,"inRow": x["Seq"] - 1} ,entrys))) GetcContractAnnualCost(idlist,hasQRCost) - + + def GetcContractAnnualCost(idList,hasQRCost): # whereSql = " AND t0e.F_QNV_BASE1 IN ({0}) ".format(",".join(idList)) intoSqlList = List[str]() if idList != None and idList.Count > 0: - for idObj in idList: - intoSqlList.Add("SELECT {0} AS 'MATERIALID' ,{1} inRow".format(str(idObj["materialId"]),str(idObj["inRow"]))); - + # for idObj in idList: + # intoSqlList.Add("SELECT {0} AS 'MATERIALID' ,{1} inRow".format(str(idObj["materialId"]),str(idObj["inRow"]))); + # whereSql = " union ".join(intoSqlList); + for x in idList: + intoSqlList.Add(str(x["materialId"]) +','+ str(x["inRow"])) + whereSql = ";".join(intoSqlList); sql = """/*dialect*/ - SELECT * +SELECT + rowSet2.[1] AS 'MaterialId' + ,rowSet2.[2] AS 'inRow' INTO #TMPMATERIALNUM - FROM ({0}) tt +FROM ( + SELECT 1 ID,CAST(''+ REPLACE('{0}',';','') + '' AS XML) AS xmlVal +) AS valSet +OUTER APPLY ( + SELECT ROW_NUMBER() OVER (ORDER BY valSet.ID) RN + ,CAST(''+ REPLACE(T.C.value('.','varchar(100)'),',','') + '' AS XML) xmlVal + FROM valSet.xmlVal.nodes('/v') AS T(C) +) rowSet +OUTER APPLY ( + SELECT * FROM ( + SELECT T.C.value('.','varchar(100)') AS xmlVal + ,ROW_NUMBER() OVER (ORDER BY rowSet.RN) RowNo + FROM rowSet.xmlVal.nodes('/v') AS T(C) + ) TT + PIVOT ( MAX(TT.xmlVal) FOR TT.RowNo IN ([1],[2])) TT2 +) rowSet2 - SELECT tt.inRow,ISNULL(t.,0) AS '' - ,ISNULL(t.˰,0) AS '˰' - ,ISNULL(t.ۺϵ,0) AS 'ۺϵ' - ,ISNULL(t.Ĭ˰,0) AS 'Ĭ˰' - FROM #TMPMATERIALNUM tt - LEFT JOIN (SELECT t0e.FID - ,t0e.FENTRYID - ,t0.FBILLNO - ,t0.F_QNV_TEXT2 - ,t0e.F_QNV_BASE1 AS '' - ,t0e.F_QNV_DECIMAL1 AS '˰' - ,t0e.F_QNV_DECIMAL3 AS 'ۺϵ' - ,t0e.F_QNV_DATE2 AS 'Ч' - ,t0e.F_QNV_DATE3 AS 'ʧЧ' - ,t1.FTAXRATE AS 'Ĭ˰' - ,ROW_NUMBER() OVER (PARTITION BY t0e.F_QNV_BASE1 ORDER BY t0e.F_QNV_DATE2 DESC) AS 'RN' - FROM QNV_t_Cust_Entry100003 t0 - INNER JOIN QNV_t_Cust_Entry100004 t0e on t0.FID = t0e.FID - INNER JOIN T_BD_TAXRATE t1 on t1.FID = t0e.F_QNV_BASE3 - WHERE 1=1 - AND t0.FDOCUMENTSTATUS ='C' - AND GETDATE() BETWEEN t0e.F_QNV_DATE2 AND t0e.F_QNV_DATE3 - ) t on t. = tt.MATERIALID AND t.RN = 1 - WHERE 1 = 1 - - """.format(" union ".join(intoSqlList)) +SELECT CONVERT(int,tt0.inRow) AS inRow + ,ISNULL(tt2.,0) AS '' + ,ISNULL(tt2.˰,0) AS '˰' + ,ISNULL(tt2.ۺϵ,0) AS 'ۺϵ' + ,ISNULL(tt2.Ĭ˰,0) AS 'Ĭ˰' + ,tt2.FBILLNO +FROM #TMPMATERIALNUM tt0 + OUTER APPLY ( + SELECT TOP 1 + t0e.FID + ,t0e.FENTRYID + ,t0.FBILLNO + ,t0.F_QNV_TEXT2 + ,t0e.F_QNV_BASE1 AS '' + ,t0e.F_QNV_DECIMAL1 AS '˰' + ,t0e.F_QNV_DECIMAL3 AS 'ۺϵ' + ,t0e.F_QNV_DATE2 AS 'Ч' + ,t0e.F_QNV_DATE3 AS 'ʧЧ' + ,t1.FTAXRATE AS 'Ĭ˰' + FROM QNV_t_Cust_Entry100003 t0 + INNER JOIN QNV_t_Cust_Entry100004 t0e on t0.FID = t0e.FID + INNER JOIN T_BD_TAXRATE t1 on t1.FID = t0e.F_QNV_BASE3 + CROSS APPLY ( + SELECT t3.FMATERIALID + FROM T_BD_MATERIAL t2 + INNER JOIN T_BD_MATERIAL t3 on t2.FMASTERID = t3.FMASTERID + WHERE t2.FMATERIALID = tt0.MATERIALID + AND t3.FMATERIALID = t0e.F_QNV_BASE1 + ) tt1 + WHERE 1 = 1 + AND t0.FDOCUMENTSTATUS ='C' + AND GETDATE() BETWEEN t0e.F_QNV_DATE2 AND t0e.F_QNV_DATE3 + ORDER BY t0e.F_QNV_DATE2 DESC + ) tt2 +WHERE 1 = 1 + + """.format(whereSql) result = DBServiceHelper.ExecuteDynamicObject(this.Context, sql) if result != None and result.Count > 0: priceKey = "ۺϵ" if hasQRCost else "˰" for row in result: - rowIndex = row["inRow"] + rowIndex = row["inRow"] this.View.Model.SetValue("FTAXPRICE", row[priceKey], rowIndex) this.View.Model.SetValue("FTAXRATE", row["Ĭ˰"], rowIndex) this.View.InvokeFieldUpdateService("FTAXPRICE" ,rowIndex) @@ -95,3 +126,5 @@ def DoCheckConditions(): if orgObj["Id"] == 101542: return True return False + + diff --git a/02.珠海市供水有限公司/ZHSW.Python/sql/获取合同年度单价.sql b/02.珠海市供水有限公司/ZHSW.Python/PUR_Requisition/sql/获取合同年度单价.sql similarity index 100% rename from 02.珠海市供水有限公司/ZHSW.Python/sql/获取合同年度单价.sql rename to 02.珠海市供水有限公司/ZHSW.Python/PUR_Requisition/sql/获取合同年度单价.sql diff --git a/02.珠海市供水有限公司/ZHSW.Python/PUR_Requisition/sql/采购合同更新含税金额.sql b/02.珠海市供水有限公司/ZHSW.Python/PUR_Requisition/sql/采购合同更新含税金额.sql new file mode 100644 index 0000000..bca11e4 --- /dev/null +++ b/02.珠海市供水有限公司/ZHSW.Python/PUR_Requisition/sql/采购合同更新含税金额.sql @@ -0,0 +1,101 @@ +SELECT + tt0.* + --CONVERT(int,tt0.inRow) AS 'inRow' + ,ISNULL(tt2.,0) AS '' + ,ISNULL(tt2.˰,0) AS '˰' + ,ISNULL(tt2.ۺϵ,0) AS 'ۺϵ' + ,ISNULL(tt2.Ĭ˰,0) AS 'Ĭ˰' + ,tt2.FUSEORGID + INTO #TMP +FROM ( + SELECT t0.FBILLNO + ,t0.FAPPLICATIONDATE + ,t0e.FMATERIALID MATERIALID + ,t0e.FENTRYID + ,t0e.FEVALUATEPRICE -- + ,t0e.FTAXPRICE --˰ + ,t0e.FTAXRATE --˰ + ,t0e.FAMOUNT -- + ,t0e.FREQAMOUNT --˰ + ,t0e.FREQQTY + FROM T_PUR_Requisition t0 + INNER JOIN T_PUR_ReqEntry t0e on t0.FID = t0e.FID + WHERE 1 = 1 + --AND t0.FBILLNO = 'CGSQ000769' + --AND t0e.FEVALUATEPRICE = 0 + AND t0.FAPPLICATIONORGID = 101542 + --AND t0.FDOCUMENTSTATUS = 'C' + AND t0.FAPPLICATIONDATE >= '2024-04-01 00:00:00' + ) tt0 + OUTER APPLY ( + SELECT TOP 1 + t0e.FID + ,t0e.FENTRYID + ,t0.FBILLNO + ,t0.F_QNV_TEXT2 + ,t0e.F_QNV_BASE1 AS '' + ,t0e.F_QNV_DECIMAL1 AS '˰' + ,t0e.F_QNV_DECIMAL3 AS 'ۺϵ' + ,t0e.F_QNV_DATE2 AS 'Ч' + ,t0e.F_QNV_DATE3 AS 'ʧЧ' + ,t1.FTAXRATE AS 'Ĭ˰' + ,tt1.FUSEORGID + FROM QNV_t_Cust_Entry100003 t0 + INNER JOIN QNV_t_Cust_Entry100004 t0e on t0.FID = t0e.FID + INNER JOIN T_BD_TAXRATE t1 on t1.FID = t0e.F_QNV_BASE3 + CROSS APPLY ( + SELECT t3.FMATERIALID,t3.FUSEORGID + FROM T_BD_MATERIAL t2 + INNER JOIN T_BD_MATERIAL t3 on t2.FMASTERID = t3.FMASTERID + --AND (t3.FUSEORGID = 101542 OR t3.FUSEORGID = 101549 OR t3.FUSEORGID = 1) + WHERE t2.FMATERIALID = tt0.MATERIALID + AND t3.FMATERIALID = t0e.F_QNV_BASE1 + ) tt1 + WHERE 1 = 1 + AND t0.FDOCUMENTSTATUS ='C' + AND GETDATE() BETWEEN t0e.F_QNV_DATE2 AND t0e.F_QNV_DATE3 + ORDER BY t0e.F_QNV_DATE2 DESC + ) tt2 +WHERE 1 = 1 + +--SELECT t1.˰/(1+t1.Ĭ˰/100)-- +-- ,t1.˰ --˰ +-- ,t1.Ĭ˰ --˰ +-- ,t1.˰/(1+t1.Ĭ˰/100) * t0e.FREQQTY-- +-- ,t1.˰ * t0e.FREQQTY --˰ +-- ,t1.FAPPLICATIONDATE +--FROM T_PUR_ReqEntry t0e +-- INNER JOIN #TMP t1 on t0e.FENTRYID = t1.FENTRYID +--ORDER BY t1.FAPPLICATIONDATE DESC + + + +--UPDATE t0e SET t0e.FEVALUATEPRICE = t1.˰/(1+t1.Ĭ˰/100)-- +-- ,t0e.FTAXPRICE = t1.˰ --˰ +-- ,t0e.FTAXRATE =t1.Ĭ˰ --˰ +-- ,t0e.FAMOUNT = t1.˰/(1+t1.Ĭ˰/100) * t0e.FREQQTY-- +-- ,t0e.FREQAMOUNT = t1.˰ * t0e.FREQQTY --˰ +--FROM T_PUR_ReqEntry t0e +-- INNER JOIN #TMP t1 on t0e.FENTRYID = t1.FENTRYID + +SELECT t0.FBILLNO + ,t0.FAPPLICATIONDATE + ,t0.FID + ,t0.FTOTALAMOUNT + ,t1.sumREQAMOUNT + ,t0.FTOTALNOREQAMOUNT + ,t1.sumAMOUNT +--UPDATE t0 SET t0.FTOTALAMOUNT = t1.sumREQAMOUNT +-- ,t0.FTOTALNOREQAMOUNT =t1.sumAMOUNT +FROM T_PUR_Requisition t0 + CROSS APPLY ( + SELECT SUM(t0e.FAMOUNT) sumAMOUNT,SUM(t0e.FREQAMOUNT) sumREQAMOUNT + FROM T_PUR_ReqEntry t0e + WHERE t0e.FID = t0.FID + GROUP BY t0e.FID + ) t1 +WHERE 1 = 1 + AND t0.FAPPLICATIONDATE >= '2024-04-01 00:00:00' + AND t0.FAPPLICATIONORGID = 101542 + +DROP TABLE #TMP \ No newline at end of file diff --git a/02.珠海市供水有限公司/ZHSW.Python/STK_MisDelivery/BillEventPlugInEx.py b/02.珠海市供水有限公司/ZHSW.Python/STK_MisDelivery/BillEventPlugInEx.py new file mode 100644 index 0000000..ea49901 --- /dev/null +++ b/02.珠海市供水有限公司/ZHSW.Python/STK_MisDelivery/BillEventPlugInEx.py @@ -0,0 +1,43 @@ +import clr +clr.AddReference("System") +clr.AddReference("Kingdee.BOS") +clr.AddReference("Kingdee.BOS.Core") +clr.AddReference("Kingdee.BOS.DataEntity") +clr.AddReference("Kingdee.BOS.App") +clr.AddReference("Kingdee.BOS.Contracts") +clr.AddReference("Kingdee.BOS.ServiceHelper") + +from Kingdee.BOS import* +from Kingdee.BOS.Core import * +from Kingdee.BOS.Core.Metadata.EntityElement import * +from Kingdee.BOS.Orm.DataEntity import* +from Kingdee.BOS.Orm.Metadata.DataEntity import* +from Kingdee.BOS.Core.DynamicForm.PlugIn import * +from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import * +from Kingdee.BOS.Util import * +from System import * +from System.ComponentModel import* +from System.Collections.Generic import* +from System.Text import* +from Kingdee.BOS.ServiceHelper import * + +def DataChanged(e): + if e.Field.Key == "FDATE": + if DoCheckConditions(): + if e.NewValue.ToString().Equals(e.OldValue.ToString()) == False: + details = this.View.BusinessInfo.GetEntity("FEntity") + if details != null: + entrys = this.View.Model.GetEntityDataObject(details) + if entrys != null and entrys.Count > 0: + rowIndex = this.View.Model.GetRowIndex(details, entry) + materialObjValue = entry["MaterialId_Id"]; + materialValue = 0 if materialObjValue.IsNullOrEmptyOrWhiteSpace() else materialObjValue.Long2Int() + + stockObjValue = entry["StockId_Id"]; + stockValue = 0 if stockObjValue.IsNullOrEmptyOrWhiteSpace() else stockObjValue.Long2Int(); +def DoCheckConditions(): + orgObj = this.View.Model.GetValue("FStockOrgId") + if orgObj["Id"] == 101542: + return True + # return False + return True diff --git a/02.珠海市供水有限公司/ZHSW.Python/ZHSW.Python.pyproj b/02.珠海市供水有限公司/ZHSW.Python/ZHSW.Python.pyproj index 22e2816..59aaac1 100644 --- a/02.珠海市供水有限公司/ZHSW.Python/ZHSW.Python.pyproj +++ b/02.珠海市供水有限公司/ZHSW.Python/ZHSW.Python.pyproj @@ -23,10 +23,17 @@ false + + + + + + + + + + + + + \ No newline at end of file diff --git a/03.珠海市汇威精密制造有限公司/HW.Python/PRD_MO/OperactionEventPlugInEx.py b/03.珠海市汇威精密制造有限公司/HW.Python/PRD_MO/OperactionEventPlugInEx.py new file mode 100644 index 0000000..5996fe9 --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW.Python/PRD_MO/OperactionEventPlugInEx.py @@ -0,0 +1,47 @@ +#clrп +import clr +#Ӷcloudij +clr.AddReference('System') +clr.AddReference('System.Data') +clr.AddReference("ExtensionMethods") +# ýstart +clr.AddReference('Kingdee.BOS') +clr.AddReference('Kingdee.BOS.App') +clr.AddReference('Kingdee.BOS.App.Core') +clr.AddReference('Kingdee.BOS.Business.DynamicForm') +clr.AddReference('Kingdee.BOS.Contracts') +clr.AddReference('Kingdee.BOS.Core') +clr.AddReference('Kingdee.BOS.DataEntity') +clr.AddReference('Kingdee.BOS.ServiceHelper') +# ýend + +#dairycloudеijʵ󣨷ռ䵼룬ݹ鵼룩 +from System import * +from System.Data import * +from System.Collections.Generic import List +from ExtensionMethods import BooleanExtension as boolObjEx +from ExtensionMethods import DateTimeExtension as dateObjEx +from ExtensionMethods import ObjectExtension as objEx +from ExtensionMethods import StringExtension as strObjEx +from Kingdee.BOS.Core import * +from Kingdee.BOS.Util import * +from Kingdee.BOS.Core.Bill import * +from Kingdee.BOS.Core.Bill.PlugIn import * +from Kingdee.BOS.Orm.DataEntity import * +from Kingdee.BOS.Core.DynamicForm.PlugIn import * +from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import * +from Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel import * +from Kingdee.BOS.App.Data import * +from Kingdee.BOS.ServiceHelper import * + +def OnPreparePropertys(e): + e.FieldKeys.Add("FWorkTimeType") + + +def EndOperationTransaction(e): + # 8ύ9126 + if this.FormOperation.OperationId == 8: + va = "1111"; + # raise Exception("sss:{0}".format(type(strObjEx.ToDouble(va)))); + raise Exception("sss:{0}".format(type(DictionaryUtils.Long2Int(va)))); + # raise Exception(va.ToDouble()); \ No newline at end of file diff --git a/03.珠海市汇威精密制造有限公司/HW.Python/PRD_MO/SQLServer/更新对应表中产品对照倒置id.sql b/03.珠海市汇威精密制造有限公司/HW.Python/PRD_MO/SQLServer/更新对应表中产品对照倒置id.sql new file mode 100644 index 0000000..fa6ffff --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW.Python/PRD_MO/SQLServer/更新对应表中产品对照倒置id.sql @@ -0,0 +1,44 @@ +SELECT + t0.FID + ,t0e.FCPID + into #tmp +FROM hw_mjcpdzb t0 + INNER JOIN hw_mjcpdzbs t0e on t0.FID = t0e.FID +GROUP BY + t0.FID,t0e.FCPID +having + count(1) =1 +--SELECT * FROM #tmp +SELECT t0.FID + ,t0.FMJID + ,t0e.FEntryID + ,t0e.FCPID + into #tmp1 +FROM hw_mjcpdzb t0 + inner join hw_mjcpdzbs t0e on t0.FID = t0e.FID +WHERE exists (SELECT 1 from #tmp t WHERE t.fid = t0.fid AND t0e.FCPID = t0.FCPID) + +/***********bomеģ߱start***********/ +--UPDATE t0 SET t0.FMJDZDZID = tt.FEntryID +SELECT + tt.FEntryID,t0.* +FROM + #tmp1 tt + inner join T_ENG_BOM t0 on t0.FMATERIALID = tt.FCPID AND t0.F_PAEZ_BASE = tt.FMJID + +drop table #tmp +drop table #tmp1 +/***********bomеģ߱end***********/ + +--UPDATE t1e SET t1e.FMJDZDZID = t0.FMJDZDZID +SELECT + t0.FMJDZDZID,t1e.FMJDZDZID +FROM T_ENG_BOM t0 + INNER JOIN T_PRD_MOENTRY t1e on t0.FID = t1e.FBOMID +WHERE t0.FMJDZDZID != 0 AND t1e.FMJDZDZID != t0.FMJDZDZID + +--UPDATE t0 SET t0.FMJDZDZID = t1.FMJDZDZID +SELECT t0.* +FROM T_PRD_PPBOM t0 + INNER JOIN T_ENG_BOM t1 on t0.FBOMID = t1.FID +WHERE t1.FMJDZDZID != 0 AND t1.FMJDZDZID != t0.FMJDZDZID diff --git a/03.珠海市汇威精密制造有限公司/HW.Python/PRD_MO/SQLServer/模具-产品对照倒置表.sql b/03.珠海市汇威精密制造有限公司/HW.Python/PRD_MO/SQLServer/模具-产品对照倒置表.sql new file mode 100644 index 0000000..9690fd6 --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW.Python/PRD_MO/SQLServer/模具-产品对照倒置表.sql @@ -0,0 +1,32 @@ +IF EXISTS(SELECT * FROM sysobjects WHERE name = 'V_HWMJCPDZDZB')--Ϊͼ + DROP VIEW V_HWMJCPDZDZB--ͼ +GO +CREATE VIEW V_HWMJCPDZDZB AS +SELECT + t0e.FEntryID 'FID' + ,t0e.FID AS 'FPID' + ,t0e.FCPID + ,t0e.FMJSMZQ AS 'FMJSCZQ'--'ģ' + ,CAST(t0e.FMJQS AS decimal(23,6)) AS 'FMJQS'--'ģǻ' + ,t0e.FBZCL AS 'FBZCN'--'׼' + ,t0e.FJTBZ --AS '̨ע' + ,t0e.FMJHH --AS 'ģ/ϸ' + ,t0e.F_PAEZ_DECIMAL AS 'FCPDZ'--'Ʒ' + ,t0e.F_PAEZ_DECIMAL1 AS 'FCCSKZL'--'ˮ' + ,t0.FNUMBER + ,t0.FMJID + ,t0.F_PAEZ_TEXT AS 'FMJGGXH'--'ģ߹(** mm' + ,t0.F_PAEZ_TEXT1 AS 'FMJXS'--'ģѨ' + ,t0.F_PAEZ_COMBO AS 'FMJLX'--'ģ' + ,t0.FDOCUMENTSTATUS + ,t0.FFORBIDSTATUS + ,t1_l.FNAME AS 'FName' + ,t2_l.FNAME AS 'FProName' + ,t0.FMJID AS FMJMATERIALID + ,t0e.FCPID AS FCPMATERIALID +FROM hw_mjcpdzb t0 + INNER JOIN hw_mjcpdzbs t0e on t0.FID = t0e.FID + LEFT JOIN T_BD_MATERIAL_L t1_l on t1_l.FMATERIALID = t0.FMJID AND t1_l.FLOCALEID = 2052 + LEFT JOIN T_BD_MATERIAL_L t2_l on t2_l.FMATERIALID = t0e.FCPID AND t2_l.FLOCALEID = 2052 +WHERE + t0.FDOCUMENTSTATUS ='C' diff --git a/03.珠海市汇威精密制造有限公司/HW.Python/PRD_MO/SQLServer/模具产品对照-同一个模具下多个相同产品查询.sql b/03.珠海市汇威精密制造有限公司/HW.Python/PRD_MO/SQLServer/模具产品对照-同一个模具下多个相同产品查询.sql new file mode 100644 index 0000000..a79a138 --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW.Python/PRD_MO/SQLServer/模具产品对照-同一个模具下多个相同产品查询.sql @@ -0,0 +1,13 @@ +SELECT t.*,t1_l.* +FROM (SELECT + t0.FID + ,count(1) co + ,t0e.FCPID +FROM hw_mjcpdzb t0 + INNER JOIN hw_mjcpdzbs t0e on t0.FID = t0e.FID +GROUP BY + t0.FID,t0e.FCPID +having + count(1) >1) t + inner join hw_mjcpdzb t0 on t.FID = t0.FID + inner join T_BD_MATERIAL_L t1_l on t1_l.FMATERIALID = t0.FMJID diff --git a/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/ProductionMaterialsReport.py b/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/ProductionMaterialsReport.py new file mode 100644 index 0000000..068e542 --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/ProductionMaterialsReport.py @@ -0,0 +1,323 @@ +import clr +clr.AddReference("System") +clr.AddReference("Kingdee.BOS") +clr.AddReference("Kingdee.BOS.Core") +clr.AddReference("Kingdee.BOS.DataEntity") +clr.AddReference("Kingdee.BOS.App") +clr.AddReference("Kingdee.BOS.Contracts") +clr.AddReference("Kingdee.BOS.ServiceHelper") +clr.AddReference("ExtensionMethods") +# clr.AddReference("K3CExttensionMethods") +from Kingdee.BOS import* +from Kingdee.BOS.Contracts import* +from Kingdee.BOS.Contracts.Report import* +from Kingdee.BOS.Core import * +from Kingdee.BOS.Core.Metadata import * +from Kingdee.BOS.Core.Report import* +from Kingdee.BOS.Core.SqlBuilder import* +from Kingdee.BOS.Core.Enums import * +from Kingdee.BOS.App.Data import* +from Kingdee.BOS.Orm.DataEntity import* +from System import * +from System.ComponentModel import* +from System.Collections.Generic import* +from System.Text import* +from System.Threading.Tasks import* +from Kingdee.BOS.ServiceHelper import * +from ExtensionMethods import BooleanExtension as boolObjEx +from ExtensionMethods import DateTimeExtension as dateObjEx +from ExtensionMethods import ObjectExtension as objEx +from ExtensionMethods import StringExtension as strObjEx +# from K3CExttensionMethods import ListHeaderExtension as lhObjEx + +#初始化,在此事件中设置报表的属性全局参数 +def Initialize(): + this.ReportProperty.ReportType= ReportType.REPORTTYPE_NORMAL; + this.IsCreateTempTableByPlugin=True; + #是否支持分组汇总,在后面GetSummaryColumnInfo方法中添加汇总字段, + #要在BOS中过滤框的汇总页签配置汇总信息,可参考:简单账表分组汇总设置 + this.ReportProperty.IsGroupSummary=True; + #IsUIDesignerColumns=False,表示报表的列通过插件控制,后续在GetReportHeaders中构建列头 + #需要在BOS过滤框的显示隐藏列中维护,字段标识与临时表字段保持一致 + #账表列头构建更多详细说明参考:账表列构建 + this.ReportProperty.IsUIDesignerColumns=False; + this.ReportProperty.PrimaryKeyFieldName = "FID"; + +#创建临时报表,正式进入账表取数sql拼接并取数,把账表取数结果放到创建的临时表中 +#如果参数(this.IsCreateTempTableByPlugin=True),即调用BuilderReportSqlAndTempTable构建临时表 +#否则调用以下3个接口,完成账表取数逻辑的sql指令即:BuilderSelectFieldSQL、BuilderTempTableOrderBySQL、BuilderFormWhereSQL +#rptfilter:账表参数,可以从这里获取过滤条件等 +#tableName:系统自动创建的账表临时表名,具备唯一性,最终报表页面展示的数据绑定此临时表,所以最终的报表结果数据要写入此临时表中 +def BuilderReportSqlAndTempTable(rptfilter,tableName): + #baseDataTemp=filter.BaseDataTempTable;#基础资料临时表;若设置了数据范围权限,该表会把根据数据范围过滤出来的内码存入临时表; + #循环获取所有基础资料数据范围的数据,可用来拼接到报表SQL里面实现数据权限过滤 + #for b in baseDataTemp: + # baseType=b.BaseDataFormId;#基础资料FormId + # PKFldName=b.PKFieldName;#临时表中基础资料主键字段名,例如,FORGID + # baseTempTab=b.TempTable;#基础资料数据范围临时表名 + #filterStr=filter.FilterParameter.FilterString;#过滤框条件页签过滤表达式 + #过滤框快捷过滤页签的实体数据包,从这里面获取自定义的过滤字段值 + #DynamicObject类型,用前面讲的实体数据包操作方式取值,用绑定实体属性标识 + custFilter = rptfilter.FilterParameter.CustomFilter; + if(custFilter == None): + return; + whereSql = ""; + # 产品id + _proMaterialId = custFilter["ProMaterialId"]; + if(_proMaterialId != None): + whereSql = whereSql + " AND t0e.FMATERIALID = " + str(_proMaterialId["Id"]); + + # 物料id + _materialId = custFilter["MaterialId"]; + if(_materialId != None): + whereSql = whereSql + " AND t1e.FMATERIALID = " + str(_materialId["Id"]); + + # 生产任务单 + _billNo = objEx.ToSafeString(custFilter["BILLNO"]); + if(_billNo != ""): + whereSql = whereSql + " AND t0.FBILLNO LIKE '%{0}%'".format(_billNo); + + # 生产投料单 + _PPBomBillNo = objEx.ToSafeString(custFilter["PPBOMBILLNO"]); + if(_PPBomBillNo != ""): + whereSql = whereSql + " AND t1.FBILLNO LIKE '%{0}%'".format(_PPBomBillNo); + + # 销售订单 + _saleOrderNo = objEx.ToSafeString(custFilter["SALEORDERNO"]); + if(_saleOrderNo != ""): + whereSql = whereSql + " AND t0e.FSALEORDERNO LIKE '%{0}%'".format(_saleOrderNo); + + _lcId = this.Context.UserLocale.LCID; + #raise Exception(str.Join(',',fldsSql));#调试时,可用此行代码,看看构建的动态列SQL对不对 + #组装最终写入报表临时表的SQL + #注意!!!: 最终临时表一定要有FIDENTITYID ,要从1开始,且不重复 ,不断号,不然前台显示空白!!!! + sql=("""/*dialect*/  +DECLARE @LCID int +SET @LCID = {1} + +SELECT + ROW_NUMBER() OVER(ORDER BY t0.FDATE DESC,t0.FID DESC,t0e.FSEQ ASC) AS FIDENTITYID--1.行号 + ,t0.FID + ,t0e.FSEQ + ,t0e.FENTRYID + ,t0.FDATE --2.单据日期 + ,t1.FBILLNO AS 'FPPBOMBILLNO'--3.生产投料单号 + ,t1.FID AS 'FPPBOMID' + ,t0e.FSALEORDERNO --4.销售订单号 + ,t0.FBILLNO--7.生产任务单号 + ,t0e.FPLANSTARTDATE--38.计划开工日期 + ,t0e.FPLANFINISHDATE--39.计划完工日期 + ,t0e.FQTY--12.产品生产数量 + ,t0e.FYIELDRATE + ,t0e.FROUTINGID + ,t0e.FMATERIALID AS 'ProMaterialId' + ,t0e.FUNITID AS 'PrdUnitId' + ,t1e.FENTRYID AS 'PPBOMENTRYID' + ,t1e.FMATERIALID + ,(t1e.FNUMERATOR / t1e.FDENOMINATOR) AS 'FUnitNeedQty' --18.物料单位用量 + ,t1e.FNEEDQTY --22.物料总需求 + ,t1e.FUNITID + ,t1e.FBOMENTRYID + ,t1e.FSTDQTY --标准用量 --29.标准数量 + ,t1e.FMUSTQTY --应发数量 --30.应发数量 + ,t1.FWORKSHOPID + ,t0.FCUSTOMERID --客户id + ,(CASE t0e.FPRODUCTTYPE WHEN 1 THEN '主产品' WHEN 2 THEN '联产品' WHEN 3 THEN '副产品' ELSE '' END) AS 'PRODUCTTYPE'--43.生产类型 + ,(CASE t0e_a.FSTATUS WHEN 6 THEN '已结案'ELSE '' END) AS 'StatusIs6'--45.生产任务单结案否 + ,(CASE t1.FDOCUMENTSTATUS WHEN 'A' THEN '创建' WHEN 'B' THEN '审核中' WHEN 'C' THEN '已审核' WHEN 'D' THEN '重新审核' WHEN 'Z' THEN '暂存' ELSE '' END) AS 'PPBOMStatus'--46.生产投料单状态 + INTO #TmpTable0 +FROM T_PRD_MO t0 + INNER JOIN T_PRD_MOENTRY t0e on t0.FID = t0e.FID + INNER JOIN T_PRD_MOENTRY_A t0e_a on t0e_a.FENTRYID = t0e.FENTRYID + INNER JOIN T_PRD_PPBOM t1 on t1.FMOENTRYID = t0e.FENTRYID AND t1.FMOID = t0e.FID + INNER JOIN T_PRD_PPBOMENTRY t1e on t1e.FID = t1.FID +WHERE 1 = 1 {2} +SELECT + tt.* + ,t0e_q.FBASEWIPQTY --23.当前在制品数量 + ,t0e_q.FPICKEDQTY --27.已领数量 + ,t0e_q.FNOPICKEDQTY --28.未领数量 + ,t0e_l.FMEMO --31.备注 + ,t0e_q.FPICKEDQTY * (100 - tt.FYIELDRATE) AS 'FLossQty'--32.损耗数量 + ,t0e_q.FSCRAPQTY --33.报废数量 + ,t0e_q.FREPICKEDQTY --37.补料数量 + ,t0e_q.FINVENTORYQTY + ,t0e_c.FSTOCKID + ,t0e_c.FSTOCKLOCID + INTO #TmpTable1 +FROM #TmpTable0 tt + LEFT JOIN T_PRD_PPBOMENTRY_Q t0e_q ON t0e_q.FENTRYID = tt.PPBOMENTRYID --生产用料清单数量拆分表 + LEFT JOIN T_PRD_PPBOMENTRY_C t0e_c ON t0e_c.FENTRYID = tt.PPBOMENTRYID + LEFT JOIN T_PRD_PPBOMENTRY_L t0e_l on t0e_l.FENTRYID = tt.PPBOMENTRYID AND t0e_l.FLOCALEID = @LCID + +SELECT tt.* + ,t1.FMNEMONICCODE AS 'ProMnemonicCode'--6.助记码 + ,t1.FNUMBER AS 'ProNumber'--8.产品编码 + ,t1_l.FNAME AS 'ProName'--9.产品名称 + ,t1_l.FSPECIFICATION AS 'ProSpecification'--10.产品规格型号 + ,t2_l.FNAME AS 'ProUnitName'--11.产品单位 + ,t3.FNUMBER AS 'MaterialNumber'--8.物料编码 + ,t3_l.FNAME AS 'MaterialName'--9.物料名称 + ,t3_l.FSPECIFICATION AS 'MaterialSpecification'--10.物料规格型号 + ,t4_l.FNAME AS 'MaterialUnitName'--11.物料单位 + ,(CASE t3.FMATERIALSRC WHEN 'A' THEN 'PLM' WHEN 'B' THEN 'ERP' ELSE '' END) AS 'Materialsrc' --15.物料来源 + ,t6_l.FNAME AS 'WORKSHOPNAME' --44.生产车间 + ,t3.FMASTERID + ,t3.FUSEORGID + ,t7_l.FMEMO AS 'BOMMEMO' --42.BOM备注项 + ,t5_l.FNAME AS 'FSTOCKNAME' + ,t8.FNUMBER AS SaleUnitNumber --5.购货单位代码 + INTO #TmpTable2 +FROM #TmpTable1 tt + LEFT JOIN T_BD_MATERIAL t1 ON t1.FMATERIALID = tt.ProMaterialId + LEFT JOIN T_BD_MATERIAL_L t1_l ON t1_l.FMATERIALID = tt.ProMaterialId AND t1_l.FLOCALEID = @LCID + LEFT JOIN T_BD_UNIT_L t2_l ON t2_l.FUNITID = tt.PrdUnitId AND t2_l.FLOCALEID = @LCID + LEFT JOIN T_BD_MATERIAL t3 ON t3.FMATERIALID = tt.FMATERIALID + LEFT JOIN T_BD_MATERIAL_L t3_l ON t3_l.FMATERIALID = tt.FMATERIALID AND t3_l.FLOCALEID = @LCID + LEFT JOIN T_BD_UNIT_L t4_l ON t4_l.FUNITID = tt.FUNITID AND t4_l.FLOCALEID = @LCID + LEFT JOIN T_BD_STOCK_L t5_l ON t5_l.FSTOCKID = tt.FSTOCKID AND t5_l.FLOCALEID =@LCID + LEFT JOIN T_BD_DEPARTMENT_L t6_l on t6_l.FDEPTID = tt.FWORKSHOPID AND t6_l.FLOCALEID = @LCID + LEFT JOIN T_ENG_BOMCHILD_L t7_l ON t7_l.FENTRYID = tt.FBOMENTRYID AND t7_l.FLOCALEID = @LCID + LEFT JOIN T_BD_CUSTOMER t8 on t8.FCUSTID = tt.FCUSTOMERID +SELECT tt.* + ,t1.FBASEQTY + ,t2_l.FNAME AS 'ROUTENAME' + ,t3e_A.FBASEINVQTY + ,t3e.FBASELACKQTY AS 'FBASELACKQTY'--24.欠料 + ,t3e_A.FBASEONORDERQTY AS 'FBASEONORDERQTY' --25.物料在途数 + ,t3e_A.FPURCHASEQTY --采购在途数量 + ,t3e_A.FREQUISITIONQTY --采购申请在途数量 + ,6 AS 'LOWEST6' + ,t3e_A.FREQUISITIONQTY - t3e_A.FPURCHASEQTY AS 'PR_C2PO_QTY' + ,0 AS 'ToBeInspectQTY' + ,0 AS 'PlanThrowInQty' + ,'' AS 'PlanThrowInDate' + ,'' AS 'CubicleName' + ,'' AS 'OTHERMEMO' + INTO {0} +FROM #TmpTable2 tt + LEFT JOIN ( + SELECT + t0.FMATERIALID + ,t0.FSTOCKORGID + ,sum(t0.FBASEQTY) AS FBASEQTY + FROM + T_STK_INVENTORY t0 + GROUP BY + t0.FMATERIALID + ,t0.FSTOCKORGID + ) t1 on t1.FMATERIALID = tt.FMASTERID AND t1.FSTOCKORGID = tt.FUSEORGID + LEFT JOIN T_ENG_ROUTE_L t2_L on t2_L.FID = tt.FROUTINGID AND t2_L.FLOCALEID = @LCID + LEFT JOIN T_PRD_PMPPBOMENTRY t3e on t3e.FPPBOMENTRYID = tt.PPBOMENTRYID AND t3e.FMATERIALIDSUB = tt.FMATERIALID --AND t3e.FMATERIALID = t0.FMATERIALID + LEFT JOIN T_PRD_PMPPBOMENTRY_A t3e_A ON t3e_A.FENTRYID = t3e.FENTRYID + +DROP TABLE #TmpTable0 +DROP TABLE #TmpTable1 +DROP TABLE #TmpTable2 + """).format(tableName,_lcId,whereSql); + # raise Exception(sql);#可以通过此方法弹出Sql语句进行调试验证 + DBUtils.Execute(this.Context,sql);#执行SQL,将报表数据写入临时表 + +#构建账表列头 +def GetReportHeaders(rptfilter): + + header = ReportHeader(); + localEid = this.Context.UserLocale.LCID;#获取当前语言环境代码,中文为2052 + # 索引 + global _colIndex + _colIndex = 0; + def Incr1(val = 1): + global _colIndex + _resNum = _colIndex + _colIndex += val + return _resNum + datas = [ + {"fieldName" :"FDATE", "showName" :"单据日期","Mergeable" : True,"dataType":SqlStorageType.SqlDatetime } + ,{"fieldName" :"FPPBOMBILLNO", "showName" :"生产投料单号","Mergeable" : True,"IsHyperlink":True } + ,{"fieldName" :"FSALEORDERNO", "showName" :"销售订单号","Mergeable" : True } + ,{"fieldName" :"SaleUnitNumber", "showName" :"购货单位代码","Mergeable" : True } + ,{"fieldName" :"ProMnemoniccode", "showName" :"助记码","Mergeable" : True } + ,{"fieldName" :"FBILLNO", "showName" :"生产任务单号","Mergeable" : True } + ,{"fieldName" :"ProNumber", "showName" :"产品代码","Mergeable" : True } + ,{"fieldName" :"ProName", "showName" :"产品名称","Mergeable" : True } + ,{"fieldName" :"ProSpecification", "showName" :"产品规格型号","Mergeable" : True } + ,{"fieldName" :"ProUnitName", "showName" :"产品单位","Mergeable" : True } + ,{"fieldName" :"FQTY", "showName" :"产品生产数量","Mergeable" : True,"dataType":SqlStorageType.SqlDecimal } + ,{"fieldName" :"MaterialNumber", "showName" :"物料代码" } + ,{"fieldName" :"MaterialName", "showName" :"物料名称" } + ,{"fieldName" :"Materialsrc", "showName" :"物料来源" } + ,{"fieldName" :"MaterialSpecification", "showName" :"物料规格型号" } + ,{"fieldName" :"ROUTENAME", "showName" :"物料技术标准" } + ,{"fieldName" :"FUnitNeedQty", "showName" :"物料单位用量","dataType":SqlStorageType.SqlDecimal} + ,{"fieldName" :"MaterialUnitName", "showName" :"物料单位" } + ,{"fieldName" :"FBASEINVQTY", "showName" :"物料库存量","dataType":SqlStorageType.SqlDecimal } + ,{"fieldName" :"ToBeInspectQTY", "showName" :"物料待检数","dataType":SqlStorageType.SqlDecimal} + ,{"fieldName" :"FNEEDQTY", "showName" :"物料总需求","dataType":SqlStorageType.SqlDecimal } + ,{"fieldName" :"FBASEWIPQTY", "showName" :"当前在制品数量","dataType":SqlStorageType.SqlDecimal} + ,{"fieldName" :"FBASELACKQTY", "showName" :"欠料","dataType":SqlStorageType.SqlDecimal } + ,{"fieldName" :"FBASEONORDERQTY", "showName" :"物料在途数","dataType":SqlStorageType.SqlDecimal} + ,{"fieldName" :"PlanThrowInQty", "showName" :"计划投料数量","dataType":SqlStorageType.SqlDecimal} + ,{"fieldName" :"FPICKEDQTY", "showName" :"已领数量","dataType":SqlStorageType.SqlDecimal} + ,{"fieldName" :"FNOPICKEDQTY", "showName" :"未领数量","dataType":SqlStorageType.SqlDecimal} + ,{"fieldName" :"FSTDQTY", "showName" :"标准数量","dataType":SqlStorageType.SqlDecimal} + ,{"fieldName" :"FMUSTQTY", "showName" :"应发数量","dataType":SqlStorageType.SqlDecimal} + ,{"fieldName" :"FMEMO", "showName" :"备注"} + ,{"fieldName" :"FLossQty", "showName" :"损耗数量","dataType":SqlStorageType.SqlDecimal} + ,{"fieldName" :"FSCRAPQTY", "showName" :"报废数量","dataType":SqlStorageType.SqlDecimal} + ,{"fieldName" :"PlanThrowInDate", "showName" :"计划发料日期","dataType":SqlStorageType.SqlDatetime } + ,{"fieldName" :"FSTOCKNAME", "showName" :"仓库" } + ,{"fieldName" :"FSTOCKLOCNAME", "showName" :"仓位" } + ,{"fieldName" :"FREPICKEDQTY", "showName" :"补料数量","dataType":SqlStorageType.SqlDecimal} + ,{"fieldName" :"FPLANSTARTDATE", "showName" :"计划开工日期","dataType":SqlStorageType.SqlDatetime } + ,{"fieldName" :"FPLANFINISHDATE", "showName" :"计划完工日期","dataType":SqlStorageType.SqlDatetime } + ,{"fieldName" :"CubicleName", "showName" :"工位" } + ,{"fieldName" :"OTHERMEMO", "showName" :"其他备注项" } + ,{"fieldName" :"BOMMEMO", "showName" :"BOM备注项" } + ,{"fieldName" :"PRODUCTTYPE", "showName" :"生产类型" } + ,{"fieldName" :"WORKSHOPNAME", "showName" :"生产车间" } + ,{"fieldName" :"StatusIs6", "showName" :"生产任务单结案否" } + ,{"fieldName" :"PPBOMStatus", "showName" :"生产投料单状态" } + ,{"fieldName" :"PR_C2PO_QTY", "showName" :"PR已审未转PO数量","dataType":SqlStorageType.SqlDecimal} + ]; + + for item in datas: + head = header.AddChild(item["fieldName"], LocaleValue(item["showName"], localEid), Incr1()) + if "dataType" in item: + head.ColType = item["dataType"] + if "Mergeable" in item: + head.Mergeable = item["Mergeable"] + if "IsLeaf" in item: + head.IsHyperlink = item["IsHyperlink"] + + return header; + +#设置报表表头字段值 +#这里主要是把过滤框设置的字段值,显示到报表表头 +def GetReportTitles(rptfilter): + reportTitles = ReportTitles(); + + custFilter = rptfilter.FilterParameter.CustomFilter; + if(custFilter == None): + return; + _proMaterialId = custFilter["ProMaterialId"]; + _materialId = custFilter["MaterialId"]; + + _billNo = objEx.ToSafeString(custFilter["BILLNO"]); + _PPBomBillNo = objEx.ToSafeString(custFilter["PPBOMBILLNO"]); + _saleOrderNo = objEx.ToSafeString(custFilter["SALEORDERNO"]); + if(_proMaterialId != None): + reportTitles.AddTitle("FTitleProMaterialId", _proMaterialId["Name"]); + if(_materialId != None): + reportTitles.AddTitle("FTitleMaterialId", _materialId["Name"]); + if(_billNo != ""): + reportTitles.AddTitle("FTitleBILLNO", _billNo); + if(_PPBomBillNo != ""): + reportTitles.AddTitle("FTitlePPBOMBILLNO", _PPBomBillNo); + if(_saleOrderNo != ""): + reportTitles.AddTitle("FTitleSALEORDERNO", _saleOrderNo); + + return reportTitles; + +#报表关闭触发,通常在此处清理报表过程产生的临时表 +def CloseReport(): + this.DropTempTable(); \ No newline at end of file diff --git a/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/TablePlugIn.py b/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/TablePlugIn.py new file mode 100644 index 0000000..bcf66aa --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/TablePlugIn.py @@ -0,0 +1,67 @@ +import clr +clr.AddReference("System") +clr.AddReference("System.Data") +clr.AddReference("Kingdee.BOS") +clr.AddReference("Kingdee.BOS.Core") +clr.AddReference("Kingdee.BOS.App") +clr.AddReference("Kingdee.BOS.ServiceHelper") +from Kingdee.BOS import * +from Kingdee.BOS.Core import * +from Kingdee.BOS.Core.Bill import * +from Kingdee.BOS.Core.Report import * +from System import * +from System.Data import * +from System.Net import * +from System.Text import * +from Kingdee.BOS.App.Data import * +from Kingdee.BOS.Core.List.PlugIn import * +from Kingdee.BOS.Core.List.PlugIn.Args import * + +def FormatCellValue(args): + # ڸʽ + if args.Header.ColType == SqlStorageType.SqlDatetime: + args.FormateValue = ("{0}").format(DateTime.Parse(str(args.FormateValue)).ToString("yyyy-MM-dd")) + +def CellDbClick(e): + e.Cancel = True + fldKey = e.Header.FieldName; + # 嵥 + if fldKey == "FPPBOMBILLNO": + reportModel = this.Model + tab = reportModel.DataSource + row = e.CellRowIndex + _moId = value=("{0}").format(tab.Rows[row-1]["FPPBOMID"]); + if _moId != None and str(_moId) != "" and str(_moId) != "0": + ShowForm("PRD_PPBOM", _moId) + # + if fldKey == "FBILLNO": + reportModel = this.Model + tab = reportModel.DataSource + row = e.CellRowIndex + _moId = value=("{0}").format(tab.Rows[row-1]["FID"]); + if _moId != None and str(_moId) != "" and str(_moId) != "0": + ShowForm("PRD_MO", _moId) + # + if fldKey == "MaterialName": + reportModel = this.Model + tab = reportModel.DataSource + row = e.CellRowIndex + _moId = value=("{0}").format(tab.Rows[row-1]["FMATERIALID"]); + if _moId != None and str(_moId) != "" and str(_moId) != "0": + ShowForm("BD_MATERIAL", _moId) + #Ʒ + if fldKey == "ProName": + reportModel = this.Model + tab = reportModel.DataSource + row = e.CellRowIndex + _moId = value=("{0}").format(tab.Rows[row-1]["ProMaterialId"]); + if _moId != None and str(_moId) != "" and str(_moId) != "0": + ShowForm("BD_MATERIAL", _moId) + +def ShowForm(_fromId, _pkVal, _operationStatus = OperationStatus.VIEW ,_openStyleShowType = ShowType.Floating): + showParam = BillShowParameter(); + showParam.FormId = _fromId; + showParam.OpenStyle.ShowType = _openStyleShowType; + showParam.Status = _operationStatus; + showParam.PKey = _pkVal; + this.View.ShowForm(showParam) \ No newline at end of file diff --git a/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/sql/20240206联合查询.sql b/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/sql/20240206联合查询.sql new file mode 100644 index 0000000..138c71b --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/sql/20240206联合查询.sql @@ -0,0 +1,127 @@ +--declare @proMaterialId int +--,@materialId int +--,@FBILLNO varchar(80) +--,@FPPBOMBILLNO varchar(80) +--,@FSALEORDERNO varchar(80) +--,@LCID int +--SET @proMaterialId = '' +--SET @materialId = '' +--SET @FBILLNO = '' +--SET @FPPBOMBILLNO = '' +--SET @FSALEORDERNO = '' +DECLARE @LCID int +SET @LCID = 2052 + +SELECT + ROW_NUMBER() OVER(ORDER BY t0.FID,t0e.FENTRYID) AS FIDENTITYID--1.к + ,t0.FID + ,t0e.FSEQ + ,t0e.FENTRYID + ,t0.FDATE --2. + ,t1.FBILLNO AS 'FPPBOMBILLNO'--3.Ͷϵ + ,t0e.FSALEORDERNO --4.۶ + --5.λ + ,t0.FBILLNO--7.񵥺 + ,t0e.FPLANSTARTDATE--38.ƻ + ,t0e.FPLANFINISHDATE--39.ƻ깤 + ,t0e.FQTY--12.Ʒ + ,t0e.FYIELDRATE + ,t0e.FROUTINGID + ,t0e.FMATERIALID AS 'ProMaterialId' + ,t0e.FUNITID AS 'PrdUnitId' + ,t1e.FENTRYID AS 'PPBOMENTRYID' + ,t1e.FMATERIALID + ,(t1e.FNUMERATOR / t1e.FDENOMINATOR) AS 'FUnitNeedQty' --18.ϵλ + ,t1e.FNEEDQTY --22. + ,t1e.FUNITID + ,t1e.FBOMENTRYID + ,t1e.FSTDQTY --׼ --29.׼ + ,t1e.FMUSTQTY --Ӧ --30.Ӧ + ,t1.FWORKSHOPID + ,(CASE t0e.FPRODUCTTYPE WHEN 1 THEN 'Ʒ' WHEN 2 THEN 'Ʒ' WHEN 3 THEN 'Ʒ' ELSE '' END) AS 'PRODUCTTYPE'--43. + ,(CASE t0e_a.FSTATUS WHEN 6 THEN 'ѽ᰸'ELSE '' END) AS 'StatusIs6'--45.񵥽᰸ + ,(CASE t1.FDOCUMENTSTATUS WHEN 'A' THEN '' WHEN 'B' THEN '' WHEN 'C' THEN '' WHEN 'D' THEN '' WHEN 'Z' THEN 'ݴ' ELSE '' END) AS 'PPBOMStatus'--46.Ͷϵ״̬ + INTO #TmpTable0 +FROM T_PRD_MO t0 + INNER JOIN T_PRD_MOENTRY t0e on t0.FID = t0e.FID + INNER JOIN T_PRD_MOENTRY_A t0e_a on t0e_a.FENTRYID = t0e.FENTRYID + INNER JOIN T_PRD_PPBOM t1 on t1.FMOENTRYID = t0e.FENTRYID AND t1.FMOID = t0e.FID + INNER JOIN T_PRD_PPBOMENTRY t1e on t1e.FID = t1.FID +WHERE 1 = 1 + --AND t0.FBILLNO = (CASE WHEN @FBILLNO != '' THEN @FBILLNO ELSE t0.FBILLNO END) + --AND t0e.FMATERIALID = (CASE WHEN @proMaterialId <> 0 THEN @proMaterialId ELSE t0e.FMATERIALID END) + --AND t0e.FSALEORDERNO = (CASE WHEN @FSALEORDERNO != '' THEN @FSALEORDERNO ELSE t0e.FSALEORDERNO END) + --AND t1.FBILLNO = (CASE WHEN @FPPBOMBILLNO != '' THEN @FPPBOMBILLNO ELSE t1.FBILLNO END) + --AND t1e.FMATERIALID = (CASE WHEN @materialId <> 0 THEN @materialId ELSE t1e.FMATERIALID END) + +SELECT + tt.* + ,t0e_q.FBASEWIPQTY --23.ǰƷ + ,t0e_q.FPICKEDQTY --27. + ,t0e_q.FNOPICKEDQTY --28.δ + ,t0e_l.FMEMO --31.ע + ,t0e_q.FPICKEDQTY * (100 - tt.FYIELDRATE) AS 'FLossQty'--32. + ,t0e_q.FSCRAPQTY --33. + ,t0e_q.FREPICKEDQTY --37. + ,t0e_c.FSTOCKID + ,t0e_c.FSTOCKLOCID + INTO #TmpTable1 +FROM #TmpTable0 tt + LEFT JOIN T_PRD_PPBOMENTRY_Q t0e_q ON t0e_q.FENTRYID = tt.PPBOMENTRYID --嵥ֱ + LEFT JOIN T_PRD_PPBOMENTRY_C t0e_c ON t0e_c.FENTRYID = tt.PPBOMENTRYID + LEFT JOIN T_PRD_PPBOMENTRY_L t0e_l on t0e_l.FENTRYID = tt.PPBOMENTRYID AND t0e_l.FLOCALEID = @LCID + +SELECT tt.* + ,t1.FMNEMONICCODE AS 'ProMnemonicCode'--6. + ,t1.FNUMBER AS 'ProNumber'--8.Ʒ + ,t1_l.FNAME AS 'ProName'--9.Ʒ + ,t1_l.FSPECIFICATION AS 'ProSpecification'--10.Ʒͺ + ,t2_l.FNAME AS 'ProUnitName'--11.Ʒλ + ,t3.FNUMBER AS 'MaterialNumber'--8.ϱ + ,t3_l.FNAME AS 'MaterialName'--9. + ,t3_l.FSPECIFICATION AS 'MaterialSpecification'--10.Ϲͺ + ,t4_l.FNAME AS 'MaterialUnitName'--11.ϵλ + ,(CASE t3.FMATERIALSRC WHEN 'A' THEN 'PLM' WHEN 'B' THEN 'ERP' ELSE '' END) AS 'Materialsrc' --15.Դ + ,t6_l.FNAME AS 'WORKSHOPNAME' --44. + ,t3.FMASTERID + ,t3.FUSEORGID + ,t7_l.FMEMO AS 'BOMMEMO' --42.BOMע + ,t5_l.FNAME AS 'FSTOCKNAME' + INTO FSTOCKLOCID +FROM #TmpTable1 tt + LEFT JOIN T_BD_MATERIAL t1 ON t1.FMATERIALID = tt.FMATERIALID + LEFT JOIN T_BD_MATERIAL_L t1_l ON t1_l.FMATERIALID = tt.FMATERIALID AND t1_l.FLOCALEID = @LCID + LEFT JOIN T_BD_UNIT_L t2_l ON t2_l.FUNITID = tt.FUNITID AND t2_l.FLOCALEID = @LCID + LEFT JOIN T_BD_MATERIAL t3 ON t3.FMATERIALID = tt.FMATERIALID + LEFT JOIN T_BD_MATERIAL_L t3_l ON t3_l.FMATERIALID = tt.FMATERIALID AND t3_l.FLOCALEID = @LCID + LEFT JOIN T_BD_UNIT_L t4_l ON t4_l.FUNITID = tt.FUNITID AND t4_l.FLOCALEID = @LCID + LEFT JOIN T_BD_STOCK_L t5_l ON t5_l.FSTOCKID = tt.FSTOCKID AND t5_l.FLOCALEID =@LCID + LEFT JOIN T_BD_DEPARTMENT_L t6_l on t6_l.FDEPTID = tt.FWORKSHOPID AND t6_l.FLOCALEID = @LCID + LEFT JOIN T_ENG_BOMCHILD_L t7_l ON t7_l.FENTRYID = tt.FBOMENTRYID AND t7_l.FLOCALEID = @LCID + +SELECT tt.* + ,t1.FBASEQTY + ,t2_l.FNAME AS 'ROUTENAME' + ,t3e_A.FBASEINVQTY + ,t3e.FBASELACKQTY AS 'FBASELACKQTY'--24.Ƿ + ,t3e_A.FBASEONORDERQTY AS 'FBASEONORDERQTY' --25.; + ,6 AS 'LOWEST6' +FROM #TmpTable2 tt + LEFT JOIN ( + SELECT + t0.FMATERIALID + ,t0.FSTOCKORGID + ,sum(t0.FBASEQTY) AS FBASEQTY + FROM + T_STK_INVENTORY t0 + GROUP BY + t0.FMATERIALID + ,t0.FSTOCKORGID + ) t1 on t1.FMATERIALID = tt.FMASTERID AND t1.FSTOCKORGID = tt.FUSEORGID + LEFT JOIN T_ENG_ROUTE_L t2_L on t2_L.FID = tt.FROUTINGID AND t2_L.FLOCALEID = @LCID + LEFT JOIN T_PRD_PMPPBOMENTRY t3e on t3e.FPPBOMENTRYID = tt.PPBOMENTRYID AND t3e.FMATERIALIDSUB = tt.FMATERIALID --AND t3e.FMATERIALID = t0.FMATERIALID + LEFT JOIN T_PRD_PMPPBOMENTRY_A t3e_A ON t3e_A.FENTRYID = t3e.FENTRYID + +DROP TABLE #TmpTable0 +DROP TABLE #TmpTable1 +DROP TABLE #TmpTable2 \ No newline at end of file diff --git a/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/sql/2新BOM层级库存状态.sql b/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/sql/2新BOM层级库存状态.sql new file mode 100644 index 0000000..7905725 --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/sql/2新BOM层级库存状态.sql @@ -0,0 +1,3168 @@ +declare + @moBillNo varchar(100) + ,@salesBillNo varchar(100) + ,@ProMateriaNumber varchar(100) + ,@startMaterialId int + ,@endMaterialId int + ,@FSDate varchar (30) + ,@FEDate varchar (30) + ,@FSStock varchar (max) + ,@FName varchar (255) +SET @moBillNo ='' +SET @salesBillNo ='' +SET @moBillNo = 0 +SET @moBillNo = 0 +SET @FSDate = '2024-02-06' +SET @FEDate = '2024-03-06' +--SET @FSNumber = 'TSH182H000208O' +--SET @FENumber = 'TSH182H000208O' +SET @FSStock ='' +SET @FName = '' + +SET nocount ON +declare @FCloseBALDate varchar (30) +declare @FClosedate varchar (30) + +--ѯʼһڵĩ +If NOT Exists( + SELECT FORGID,MAX(FCLOSEDATE) fclosedate + FROM T_STK_CLOSEPROFILE + WHERE FORGID IN (1) AND FCATEGORY = 'STK' AND (FCLOSEDATE < @FSDate) + GROUP BY FORGID) +BEGIN + SET @FClosedate='2020-01-01' + SET @FCloseBALDate='2020-01-01' + --print @FClosedate +END +ELSE +BEGIN + --SET @FClosedate='2019-07-01' + SELECT @FClosedate= CONVERT(varchar (30),DATEADD(D,1,MAX(FCLOSEDATE)),23) FROM + T_STK_CLOSEPROFILE WHERE ((FORGID IN (1) AND FCATEGORY = 'STK') AND (FCLOSEDATE < @FSDate)) GROUP BY FORGID + SET @FCloseBALDate=CONVERT(varchar (30),DATEADD(D,-1,@FClosedate),23) + --print @FClosedat +END + + --ʱѡȡֿ + +IF EXISTS(SELECT * FROM tempdb..SYSOBJECTS WHERE id=OBJECT_ID('tempdb..#tmpStockID')) +BEGIN + DROP TABLE #tmpStockID + print '' +END +Create Table #tmpStockID ( + FID INT IDENTITY(1,1) + ,FStockID INT +) +DECLARE @Strsql varchar(max) +SET @Strsql= 'INSERT INTO #tmpStockID SELECT DISTINCT FSTOCKID FROM T_BD_STOCK WHERE 1=1 ' +@FSStock +EXEC(@Strsql) + +--״̬ + +if EXISTS(SELECT * FROM tempdb..sysobjects WHERE id=object_id('tempdb..#Stock_Status_temp')) +begin + DROP TABLE #Stock_Status_temp + print '' +END + +Create Table #Stock_Status_temp ( + INT IDENTITY(1,1), + INT, + ϴ varchar(100) null, + varchar(255) null, + ͺ varchar(255) null, + ɱ varchar(100) null, + --λ varchar(30) null, + ڽ DECIMAL (18,2) Null, + ڲɹ DECIMAL (18,2) Null, + ں DECIMAL (18,2) Null, + ĩ DECIMAL (18,2) Null, + ; DECIMAL (18,2) Null, + DECIMAL (18,2) Null, + DECIMAL (18,2) Null, + δ DECIMAL (18,2) Null, + DECIMAL (18,2) Null, + ۳ DECIMAL (18,2) Null, + ֿⲦ DECIMAL (18,2) Null, + ֿⲦ DECIMAL (18,2) Null, + 깺δת DECIMAL (18,2) Null, + ܶ DECIMAL (18,2) Null, + ռ DECIMAL (18,2) Null, + ÿ DECIMAL (18,2) Null, + ֿ INT, + ֿ varchar(100) null, + ֿ varchar(255) null, + װ INT, + װʽ varchar(255) null +) + +if EXISTS(SELECT * FROM tempdb..sysobjects WHERE id=object_id('tempdb..#TMP')) +begin + DROP TABLE #TMP + print '' +END + +CREATE TABLE #TMP ( + FID INT IDENTITY(1,1), + FSTOCKORGID INT NOT NULL DEFAULT 0, + FBILLENTRYID INT NOT NULL DEFAULT 0, + FORDERBY INT NOT NULL DEFAULT 0, + FSTOCKIO CHAR (1) NULL, + FMATERIALID INT NOT NULL DEFAULT 0, + FAUXPROPID INT NOT NULL DEFAULT 0, + FDATE DATETIME NULL, + FSTOCKID INT NOT NULL DEFAULT 0, + FSTOCKLOCID INT NOT NULL DEFAULT 0, + FSTOCKSTATUSID INT NOT NULL DEFAULT 0, + FBILLNAME NVARCHAR (100) NULL, + FBILLID INT NOT NULL DEFAULT 0, + FBILLSEQID INT NULL, + FBILLNO NVARCHAR (100) NULL, + FBASEQCQTY DECIMAL (23,10) NOT NULL DEFAULT 0, + FBASEINQTY DECIMAL (23,10) NOT NULL DEFAULT 0, + FBASEOUTQTY DECIMAL (23,10) NOT NULL DEFAULT 0 +) + +--BOM㼶 + +IF EXISTS(SELECT * FROM TEMPDB..SYSOBJECTS WHERE ID=OBJECT_ID('TEMPDB..#YC_T_MRP')) +BEGIN + DROP TABLE #YC_T_MRP +END + +CREATE TABLE #YC_T_MRP( + FID INT IDENTITY(1,1), + FBOMNumber NVARCHAR(255), + FMATERIALID INT, + ϱ NVARCHAR(255), + NVARCHAR(255), + Ʒ DECIMAL(28,10) DEFAULT (0), + DECIMAL(28,10),--BOM + ĸ DECIMAL(28,10),--BOMĸ + FQty DECIMAL(28,10),-- + FLevle INT, + FERPCLSID INT, + FProMaterialId INT, + FOrderNum NVARCHAR(255), + FBOMID INT, + BOM㼶 NVARCHAR(200) NULL, + FSEQ1 INT, + FSEQ2 INT, + FSEQ3 INT, + FSEQ4 INT, + FSEQ5 INT, + FSEQ6 INT, + FParentNumber NVARCHAR(255) +) + +IF EXISTS(SELECT * FROM TEMPDB..SYSOBJECTS WHERE ID=OBJECT_ID('TEMPDB..#BOMTMP')) +BEGIN + DROP TABLE #BOMTMP +END + +/* ţ۶ţϽɸѡӦ*/ +SELECT + t0.FBILLNO + ,t0.FID + ,t0e.FQTY + ,t0e.FENTRYID + ,t0e.FMATERIALID + ,t0e_a.FREPQUAQTY + --,t0e_a.FREQSRC --1.۶ + ,(CASE WHEN t1e.FSRCBILLNO is null THEN (CASE t0e_a.FREQSRC WHEN 1 THEN t0e.FSALEORDERNO ELSE '' END) ELSE t1e.FSRCBILLNO END) AS 'FSALEORDERNO' + INTO #TEMPMO +FROM + T_PRD_MO t0 + INNER JOIN T_PRD_MOENTRY t0e ON t0.FID = t0E.FID + INNER JOIN T_PRD_MOENTRY_A t0e_a ON t0e_a.FENTRYID = t0e.FENTRYID + LEFT JOIN T_SAL_DELIVERYNOTICEENTRY t1e ON t1e.FENTRYID = t0e.FSRCBILLENTRYID AND t0e.FSRCBILLID = t0e.FSALEORDERID +WHERE 1 = 1 + AND t0.FDOCUMENTSTATUS = 'C' + AND (t0e_a.FSTATUS < 5) + --AND t0e.FMATERIALID = 100258 + AND t0.FBILLNO = 'MO000023' + +/*ȡ״̬BOMʱ*/ +SELECT + ID=IDENTITY(INT,1,1) + ,T0.FID + ,T0.FNUMBER + ,T0.FMATERIALID + ,ROW_NUMBER() OVER(PARTITION BY T0.FMATERIALID ORDER BY t0.FID DESC) AS ROWID + ,t0.FDOCUMENTSTATUS + ,t0.FYIELDRATE + INTO #BOMTmp +FROM T_ENG_BOM T0 + INNER JOIN T_BD_MATERIAL TM ON t0.FMATERIALID=TM.FMATERIALID --ϱ +WHERE (t0.FDOCUMENTSTATUS = 'C') AND (t0.FFORBIDSTATUS='A') + --AND tm.FNUMBER = 'TSH182H000208O' + AND tm.FMATERIALID IN (SELECT DISTINCT FMATERIALID FROM #TEMPMO) +ORDER BY FMATERIALID,FNUMBER + +--/*ʱУͬһϴֻһ°汾BOM*/ +DELETE FROM #BOMTmp WHERE ROWID != 1 + +--ѯһƷϢ +INSERT INTO #YC_T_MRP( + FBOMNumber,FMATERIALID,ϱ,,Ʒ + ,,ĸ,FQty,FLevle,FERPCLSID,FProMaterialId,FOrderNum + ,FBOMID,FSEQ1,FSEQ2,FSEQ3,FSEQ4,FSEQ5,FSEQ6,FParentNumber) +SELECT + t0.FNUMBER,T0.FMATERIALID,t1.FNUMBER 'ϱ',t3.FNAME '',t0.FYIELDRATE 'Ʒ' + ,1 '',1 'ĸ',1 'FQty','0' 'FLevle',T2.FERPCLSID 'FERPCLSID',t1.FMATERIALID,t1.FNUMBER 'ϱ' + ,t0.FID 'FBOMID',0 'FSEQ1',0 'FSEQ2',0 'FSEQ3',0 'FSEQ4',0 'FSEQ5',0 'FSEQ6','' 'FParentNumber' +FROM T_ENG_BOM t0 + INNER JOIN T_BD_MATERIAL t1 ON t0.FMATERIALID=t1.FMATERIALID --ϱ + LEFT OUTER JOIN t_BD_MaterialBase t2 ON t1.FMATERIALID = t2.FMATERIALID --ϱ + LEFT OUTER JOIN T_BD_MATERIAL_L t3 ON (t1.FMATERIALID = t3.FMATERIALID AND t3.FLocaleId = 2052)--ϱ + INNER JOIN #BOMTmp t6 ON t0.FMATERIALID=t6.FMATERIALID AND t0.FNUMBER=t6.FNUMBER +WHERE 1=1 + AND (t0.FDOCUMENTSTATUS = 'C') +ORDER BY T0.FNUMBER + +--ݵһƷѯһƷIJϢ +DECLARE @num INT,@level int,@LoopCount int +SET @num = 1 +SET @level =1 +SET @LoopCount = 0; + +INSERT INTO #YC_T_MRP( + FBOMNumber,FMATERIALID,ϱ,,Ʒ + ,,ĸ,FQty,FLevle,FERPCLSID,FProMaterialId,FOrderNum + ,FBOMID,FSEQ1,FSEQ2,FSEQ3,FSEQ4,FSEQ5,FSEQ6,FParentNumber) +SELECT + t10.FNUMBER,t7.FMATERIALID,t7.FNUMBER 'ϱ',T9.FNAME '',t10.FYIELDRATE 'Ʒ' + ,t6.FNUMERATOR '',t6.FDENOMINATOR 'ĸ',ROUND(t6.FNUMERATOR/t6.FDENOMINATOR,10) 'FQty' + ,@level AS 'FLevle',t8.FERPCLSID 'FERPCLSID',t5.FProMaterialId,T5.FOrderNum + ,0 'FBOMID',T5.FSEQ1 'FSEQ1',t6.FSEQ 'FSEQ2',0 'FSEQ3',0 'FSEQ4',0 'FSEQ5',0 'FSEQ6',t5.ϱ 'FParentNumber' +FROM #YC_T_MRP t5 + LEFT OUTER JOIN T_ENG_BOMCHILD t6 ON t5.FBOMID=t6.FID--BOM¼ + INNER JOIN T_BD_MATERIAL t7 ON t6.FMATERIALID=t7.FMATERIALID --ϱ + LEFT OUTER JOIN t_BD_MaterialBase t8 ON t8.FMATERIALID = t7.FMATERIALID --ϱ + LEFT OUTER JOIN T_BD_MATERIAL_L t9 ON (t6.FMATERIALID = t9.FMATERIALID AND t9.FLocaleId = 2052)--ϱ + LEFT JOIN T_ENG_BOM t10 ON t10.FID=t6.FID--BOM +WHERE (t7.FFORBIDSTATUS = 'A') + AND T5.FLevle = 0 AND T5.FERPCLSID >= 2 + AND t10.FDOCUMENTSTATUS = 'C' + +WHILE (@num > 0 AND @LoopCount < 10) +BEGIN + + SELECT ID=IDENTITY(INT,1,1),T0.FID,T0.FNUMBER,T0.FMATERIALID + INTO #BOMTmp1 FROM #YC_T_MRP t1 + INNER JOIN T_ENG_BOM t0 ON t1.FMATERIALID=t0.FMATERIALID--BOMͷ + WHERE 1=1 AND (t0.FDOCUMENTSTATUS = 'C') AND (t0.FFORBIDSTATUS='A') AND T1.FLevle=@level AND T1.FERPCLSID>=2 + + DELETE FROM #BOMTmp1 WHERE id NOT IN (SELECT max(id) FROM #BOMTmp1 GROUP BY FMATERIALID) + + INSERT INTO #YC_T_MRP(FBOMNumber,FMATERIALID,ϱ,,Ʒ,,ĸ,FQty,FLevle + ,FERPCLSID,FProMaterialId,FOrderNum,FBOMID,FSEQ1,FSEQ2,FSEQ3,FSEQ4,FSEQ5,FSEQ6,FParentNumber) + SELECT t5.FNUMBER,t7.FMATERIALID,t7.FNUMBER 'ϱ',T9.FNAME '',t5.FYIELDRATE 'Ʒ' + ,t6.FNUMERATOR '',t6.FDENOMINATOR 'ĸ',ROUND(t6.FNUMERATOR/t6.FDENOMINATOR,10) 'FQty' + ,@level + 1 AS 'FLevle',t8.FERPCLSID 'FERPCLSID',t1.FProMaterialId,T1.FOrderNum,0 'FBOMID' + ,t1.FSEQ1 'FSEQ1',t1.FSEQ2 'FSEQ2',t6.FSEQ 'FSEQ3',0 'FSEQ4',0 'FSEQ5',0 'FSEQ6',t1.ϱ 'FParentNumber' + FROM #YC_T_MRP t1 + INNER JOIN T_ENG_BOM t5 ON t1.FMATERIALID=t5.FMATERIALID--BOMͷ + LEFT OUTER JOIN T_ENG_BOMCHILD t6 ON t5.FID=t6.FID--BOM¼ + INNER JOIN T_BD_MATERIAL t7 ON t6.FMATERIALID=t7.FMATERIALID --ϱ + LEFT OUTER JOIN t_BD_MaterialBase t8 ON t8.FMATERIALID = t7.FMATERIALID --ϱ + LEFT OUTER JOIN T_BD_MATERIAL_L t9 ON (t6.FMATERIALID = t9.FMATERIALID AND t9.FLocaleId = 2052)--ϱ + INNER JOIN #BOMTmp1 t10 ON t5.FMATERIALID=t10.FMATERIALID AND T5.FNUMBER=T10.FNUMBER + WHERE 1 = 1 AND (t7.FFORBIDSTATUS = 'A') AND T1.FLevle=@level AND T1.FERPCLSID>=2 AND t5.FDOCUMENTSTATUS = 'C' + + SET @num = @@ROWCOUNT + SET @level += 1 + SET @LoopCount += 1 + + DROP TABLE #BOMTmp1 + +END + +UPDATE #YC_T_MRP SET BOM㼶 =REPLICATE('.',FLevle)++ convert(varchar(4),FLevle) + +--ⵥ +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT + TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid, + ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate,TSE.FSTOCKID fstockid, + ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ⵥ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, + TS.FBILLNO fbillno,0 fbaseqcqty,TSE.FBASEREALQTY fbaseinqty,0 fbaseoutqty +FROM T_PRD_INSTOCK TS + INNER JOIN T_PRD_INSTOCKENTRY TSE ON TSE.FID = TS.FID + LEFT OUTER JOIN T_PRD_INSTOCKENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + --((TS.FDATE >= '2019-07-01 00:00:00') AND (TS.FDATE <= '2019-11-12 23:59:59')) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) + AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND TS.FENTRUSTINSTOCKID = 0) + +--ʼ + +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ʼ',SUM(TSE.FBASEREALQTY) fbaseqcqty +FROM T_PRD_INSTOCK TS + INNER JOIN T_PRD_INSTOCKENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND TS.FENTRUSTINSTOCKID = 0) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '), + ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + +--ⵥ +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE. +FSTOCKSTATUSID fstockstatusid,'ⵥ' fbillname, +TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty,TSE.FBASEUNITQTY fbaseinqty,0 fbaseoutqty +--t_STK_InStock +FROM T_STK_INSTOCK TS INNER JOIN T_STK_INSTOCKENTRY TSE ON TSE.FID = TS.FID + +INNER JOIN T_STK_INSTOCKENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_STK_INSTOCKFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +--((TS.FDATE >= '2019-07-01 00:00:00') AND (TS.FDATE <= '2019-11-12 23:59:59')) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND TSF.FISGENFORIOS = '0') +--ʼ + +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ʼ',SUM(TSE.FBASEUNITQTY) fbaseqcqty +FROM T_STK_INSTOCK TS INNER JOIN T_STK_INSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_INSTOCKFIN TSF ON TSE.FID = TSF.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (( +((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND TSF.FISGENFORIOS = '0') +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0), +ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE. +FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + + +--ⵥ + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID, +FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FRECEIVEAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FRECEIVESTOCKID fstockid,ISNULL(TSE.FRECEIVESTOCKLOCID,0) fstocklocid,TSE.FRECEIVESTOCKSTATUS fstockstatusid,'ⵥ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty,0 fbaseinqty,TSE.FBASEUNITQTY fbaseoutqty +FROM T_STK_INSTOCK TS INNER JOIN T_STK_INSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_INSTOCKENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_STK_INSTOCKFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +--((TS.FDATE >= '2019-07-01 00:00:00')AND (TS.FDATE <= '2019-11-12 23:59:59')) +AND (TSE.FRECEIVESTOCKID > 0)) AND (TSE.FRECEIVESTOCKSTATUS > 0)) AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +AND TS.FCANCELSTATUS = 'A')) AND TSF.FISGENFORIOS = '0') + AND TSE.FRECEIVESTOCKFLAG = '1') + +--ʼ + +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio, +TSE.FMATERIALID fmaterialid,ISNULL(TSE.FRECEIVEAUXPROPID,0) fauxpropid, +TSE.FRECEIVESTOCKID fstockid,ISNULL(TSE.FRECEIVESTOCKLOCID,0) fstocklocid, +TSE.FRECEIVESTOCKSTATUS fstockstatusid,'ʼ',(0 - SUM(TSE.FBASEUNITQTY)) fbaseqcqty + +FROM T_STK_INSTOCK TS INNER JOIN T_STK_INSTOCKENTRY TSE ON TSE.FID = TS.FID INNER JOIN T_STK_INSTOCKFIN TSF ON TSE.FID = TSF.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (TSE.FRECEIVESTOCKID > 0)) +AND (TSE.FRECEIVESTOCKSTATUS > 0)) AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +AND TS.FCANCELSTATUS = 'A')) AND TSF.FISGENFORIOS = '0') AND TSE.FRECEIVESTOCKFLAG = '1') +GROUP BY TS.FSTOCKORGID,TSE.FRECEIVEOWNERTYPEID,TSE.FRECEIVEOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FRECEIVEAUXPROPID,0), +ISNULL(TSE.FRECEIVELOT_TEXT,' '),ISNULL(TSE.FRECEIVEMTONO,' '),TSE.FRECEIVESTOCKID,ISNULL(TSE.FRECEIVESTOCKLOCID,0), +TSE.FRECEIVESTOCKSTATUS,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--ϵ + + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID, +FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) +--ϵ +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid, +ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'ϵ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno, +0 fbaseqcqty,0 fbaseinqty,TSED.FBASESTOCKACTUALQTY fbaseoutqty +FROM T_PRD_PICKMTRL TS INNER JOIN T_PRD_PICKMTRLDATA TSE ON TSE.FID = TS.FID +INNER JOIN T_PRD_PICKMTRLDATA_A TSED ON TSED.FENTRYID = TSE.FENTRYID +LEFT OUTER JOIN T_PRD_PICKMTRLDATA_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND + TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + +--ʼ + +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid, +ISNULL(TSE.FAUXPROPID,0) fauxpropid,TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid, +TSE.FSTOCKSTATUSID fstockstatusid,'ʼ',SUM(0 - TSED.FBASESTOCKACTUALQTY) fbaseqcqty + +FROM T_PRD_PICKMTRL TS INNER JOIN T_PRD_PICKMTRLDATA TSE ON TSE.FID = TS.FID +INNER JOIN T_PRD_PICKMTRLDATA_A TSED ON TSED.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ( +((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A')AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSED.FOWNERTYPEID,TSED.FOWNERID,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '), + ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSED.FKEEPERTYPEID, + TSED.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0),TS.FDATE + +--۳ⵥ + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'۳ⵥ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno, +0 fbaseqcqty,0 fbaseinqty,TSE.FBASEUNITQTY fbaseoutqty +FROM T_SAL_OUTSTOCK TS INNER JOIN T_SAL_OUTSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_SAL_OUTSTOCKENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_SAL_OUTSTOCKFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_MATERIALBASE TMB ON TSE.FMATERIALID = TMB.FMATERIALID +INNER JOIN T_SAL_OUTSTOCKENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND (TSEF.FRowType = 'Son' OR TSEF.FRowType = 'Standard')) +AND TSF.FISGENFORIOS = '0') AND (TMB.FERPCLSID <> '6')) +--AND TS.FBILLNO='SA1907050103' + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid, + ISNULL(TSE.FAUXPROPID,0) fauxpropid,TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid, + TSE.FSTOCKSTATUSID fstockstatusid, + 'ʼ',SUM(0 - TSE.FBASEUNITQTY) fbaseqcqty + FROM T_SAL_OUTSTOCK TS INNER JOIN T_SAL_OUTSTOCKENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_SAL_OUTSTOCKENTRY_F TSEF ON TSE.FENTRYID = TSEF.FENTRYID + INNER JOIN T_SAL_OUTSTOCKFIN TSF ON TSE.FID = TSF.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_MATERIALBASE TMB ON TSE.FMATERIALID = TMB.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((( + ((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') + AND TS.FCANCELSTATUS = 'A')) AND (TSEF.FRowType = 'Son' OR TSEF.FRowType = 'Standard')) AND TSF.FISGENFORIOS = '0') AND (TMB.FERPCLSID <> '6')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '), + ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE, + TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--ϵ +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ϵ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty,0 fbaseinqty,TSEQ.FBASESTOCKACTUALQTY fbaseoutqty +FROM T_PRD_FEEDMTRL TS +INNER JOIN T_PRD_FEEDMTRLDATA TSE ON TSE.FID = TS.FID +INNER JOIN T_PRD_FEEDMTRLDATA_Q TSEQ ON (TSE.FID = TSEQ.FID AND TSE.FENTRYID = TSEQ.FENTRYID) +LEFT OUTER JOIN T_PRD_FEEDMTRLDATA_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +--AND ts.FBILLNO IN ('M31910140010','M31907010006') + + +--ʼ + +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid, +ISNULL(TSE.FAUXPROPID,0) fauxpropid,TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid, + TSE.FSTOCKSTATUSID fstockstatusid,'ʼ' fbillname,SUM(0 - TSEQ.FBASESTOCKACTUALQTY) fbaseqcqty + FROM T_PRD_FEEDMTRL TS INNER JOIN T_PRD_FEEDMTRLDATA TSE ON TSE.FID = TS.FID + INNER JOIN T_PRD_FEEDMTRLDATA_Q TSEQ ON (TSE.FID = TSEQ.FID AND TSE.FENTRYID = TSEQ.FENTRYID) + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) + AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '), + TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--ϵ +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid, +ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ϵ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty,0 fbaseinqty,(0 - TSEA.FBASESTOCKQTY) fbaseoutqty +FROM T_PRD_RETURNMTRL TS +INNER JOIN T_PRD_RETURNMTRLENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_PRD_RETURNMTRLENTRY_A TSEA ON TSE.FENTRYID = TSEA.FENTRYID +LEFT OUTER JOIN T_PRD_RETURNMTRLENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +AND TS.FCANCELSTATUS = 'A')) +--AND ts.FBILLNO='M21907200004' + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ʼ',SUM(TSEA.FBASESTOCKQTY) fbaseqcqty + FROM T_PRD_RETURNMTRL TS INNER JOIN T_PRD_RETURNMTRLENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_PRD_RETURNMTRLENTRY_A TSEA ON TSE.FENTRYID = TSEA.FENTRYID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0), + ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID, + TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--ϵ +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid, +0 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ϵ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno, +0 fbaseqcqty,(0 - TSE.FBASEUNITQTY) fbaseinqty,0 fbaseoutqty +FROM T_PUR_MRB TS INNER JOIN T_PUR_MRBENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_PUR_MRBENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_PUR_MRBFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_MATERIALBASE TMB ON TM.FMATERIALID = TMB.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND (TSE.FSTOCKID > 0)) +AND TSF.FISGENFORIOS = '0') AND (TSE.FSTOCKFLAG = '1' OR ((TS.FMRTYPE = 'B' AND TMB.FISINVENTORY = '1') AND (TSE.FStockStatusId <> TSE.FReceiveStockStatusId)))) + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid, +ISNULL(TSE.FAUXPROPID,0) fauxpropid,TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ʼ',SUM(0 - TSE.FBASEUNITQTY) fbaseqcqty +FROM T_PUR_MRB TS INNER JOIN T_PUR_MRBENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_PUR_MRBFIN TSF ON TSE.FID = TSF.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_MATERIALBASE TMB ON TM.FMATERIALID = TMB.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) + AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND (TSE.FSTOCKID > 0)) + AND TSF.FISGENFORIOS = '0') AND (TSE.FSTOCKFLAG = '1' OR ((TS.FMRTYPE= 'B' AND TMB.FISINVENTORY = '1') + AND (TSE.FStockStatusId <> TSE.FReceiveStockStatusId)))) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0), + ISNULL(TSE.FLOT_TEXT,''),ISNULL(TSE.FMTONO,''),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID, + TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--ϵ ±־ FSTOCKFLAG 0:δ 1:Ѹ + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ϵ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty,TSE.FBASEUNITQTY fbaseinqty,0 fbaseoutqty +FROM T_PUR_RECEIVE TS INNER JOIN T_PUR_RECEIVEENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_PUR_RECEIVEENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_PUR_RECEIVEFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_MATERIALBASE TMB ON TMB.FMaterialId = TSE.FMaterialId + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND TMB.FISINVENTORY = '1') +AND (TSE.FSTOCKID > 0)) AND TSE.FSTOCKFLAG = '1') + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ʼ',SUM(TSE.FBASEUNITQTY) fbaseqcqty + +FROM T_PUR_RECEIVE TS +INNER JOIN T_PUR_RECEIVEENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +AND TS.FCANCELSTATUS = 'A')) AND (TSE.FSTOCKID > 0)) AND TSE.FSTOCKFLAG = '1') +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0), + ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID, + TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + + +--˻ + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +--˻ +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio, +TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'˻' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty,0 fbaseinqty,(0 - TSE.FBASEUNITQTY) fbaseoutqty +FROM T_SAL_RETURNSTOCK TS INNER JOIN T_SAL_RETURNSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_SAL_RETURNSTOCKENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_SAL_RETURNSTOCKFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_MATERIALBASE TMB ON TSE.FMATERIALID = TMB.FMATERIALID INNER JOIN T_SAL_RETURNSTOCKENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +AND (TSEF.FRowType = 'Son' OR TSEF.FRowType = 'Standard')) AND TSF.FISGENFORIOS = '0') AND (TMB.FERPCLSID <> '6')) + +--AND TS.FBILLNO ='SB1908230003' + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid, +ISNULL(TSE.FAUXPROPID,0) fauxpropid,TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid, + TSE.FSTOCKSTATUSID fstockstatusid,'ʼ',SUM(TSE.FBASEUNITQTY) fbaseqcqty + FROM T_SAL_RETURNSTOCK TS INNER JOIN T_SAL_RETURNSTOCKENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_SAL_RETURNSTOCKENTRY_F TSEF ON TSE.FENTRYID = TSEF.FENTRYID + INNER JOIN T_SAL_RETURNSTOCKFIN TSF ON TSE.FID = TSF.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_MATERIALBASE TMB ON TSE.FMATERIALID = TMB.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE ((((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') + AND TS.FCANCELSTATUS = 'A')) AND (TSEF.FRowType = 'Son' OR TSEF.FRowType = 'Standard')) AND TSF.FISGENFORIOS = '0') AND (TMB.FERPCLSID <> '6')) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0), +ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID, +TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + + + +--ⵥ +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ⵥ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty,TSE.FBASEREALQTY fbaseinqty,0 fbaseoutqty +FROM T_SP_INSTOCK TS INNER JOIN T_SP_INSTOCKENTRY TSE ON TSE.FID = TS.FID +LEFT OUTER JOIN T_SP_INSTOCKENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ʼ',SUM(TSE.FBASEREALQTY) fbaseqcqty +FROM T_SP_INSTOCK TS INNER JOIN T_SP_INSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0), +ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID, +TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--ϵ + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ϵ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty,0 fbaseinqty,TSE.FBASEACTUALQTY fbaseoutqty + +FROM T_SP_PICKMTRL TS INNER JOIN T_SP_PICKMTRLDATA TSE ON TSE.FID = TS.FID +LEFT OUTER JOIN T_SP_PICKMTRLDATA_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ʼ',(0 - SUM(TSE.FBASEACTUALQTY)) fbaseqcqty +FROM T_SP_PICKMTRL TS INNER JOIN T_SP_PICKMTRLDATA TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID, +ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + +--ϵ + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid, + 0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ϵ' fbillname,TS.FID fbillid,TSE.FSEQ + fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty,0 fbaseinqty,(0 - TSE.FBASEQTY) fbaseoutqty + +FROM T_SP_RETURNMTRL TS INNER JOIN T_SP_RETURNMTRLENTRY TSE ON TSE.FID = TS.FID +LEFT OUTER JOIN T_SP_RETURNMTRLENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ʼ',SUM(TSE.FBASEQTY) fbaseqcqty +FROM T_SP_RETURNMTRL TS INNER JOIN T_SP_RETURNMTRLENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0), + TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + +--װж + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,CASE WHEN UPPER(TS.FAFFAIRTYPE) = 'ASSEMBLY' THEN 'I' ELSE 'O' END fstockio, +TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate,TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid, +TSE.FSTOCKSTATUSID fstockstatusid,'װж' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty, +CASE WHEN UPPER(TS.FAFFAIRTYPE) = 'ASSEMBLY' THEN TSE.FBASEQTY ELSE 0 END fbaseinqty,CASE WHEN UPPER(TS.FAFFAIRTYPE) = 'DASSEMBLY' THEN TSE.FBASEQTY ELSE 0 END fbaseoutqty +FROM T_STK_ASSEMBLY TS INNER JOIN T_STK_ASSEMBLYPRODUCT TSE ON TSE.FID = TS.FID +LEFT OUTER JOIN T_STK_ASSEMBLYPRODUCT_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE +(((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ʼ', + SUM(CASE WHEN UPPER(TS.FAFFAIRTYPE) = 'ASSEMBLY' THEN TSE.FBASEQTY ELSE (0 - TSE.FBASEQTY) END) fbaseqcqty + + FROM T_STK_ASSEMBLY TS INNER JOIN T_STK_ASSEMBLYPRODUCT TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID, + TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--װж + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FDETAILID fbillentryid,0 forderby,CASE WHEN UPPER(TS.FAFFAIRTYPE) = 'DASSEMBLY' THEN 'I' ELSE 'O' END fstockio, +TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate,TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid, +TSE.FSTOCKSTATUSID fstockstatusid,'װж' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty, + +CASE WHEN UPPER(TS.FAFFAIRTYPE) = 'ASSEMBLY' THEN 0 ELSE TSE.FBASEQTY END fbaseinqty,CASE WHEN UPPER(TS.FAFFAIRTYPE) = 'DASSEMBLY' THEN 0 ELSE TSE.FBASEQTY END fbaseoutqty +FROM T_STK_ASSEMBLY TS INNER JOIN T_STK_ASSEMBLYPRODUCT TSEH ON TSEH.FID = TS.FID +INNER JOIN T_STK_ASSEMBLYSUBITEM TSE ON TSE.FENTRYID = TSEH.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +LEFT OUTER JOIN T_STK_ASSEMBLYPRODUCT_R TSR ON TSR.FENTRYID = TSE.FENTRYID + +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid, + ISNULL(TSE.FAUXPROPID,0) fauxpropid,TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid, + TSE.FSTOCKSTATUSID fstockstatusid,'ʼ',SUM(CASE WHEN UPPER(TS.FAFFAIRTYPE) = 'DASSEMBLY' THEN TSE.FBASEQTY ELSE (0 - TSE.FBASEQTY) END) fbaseqcqty + FROM T_STK_ASSEMBLY TS INNER JOIN T_STK_ASSEMBLYPRODUCT TSEH ON TSEH.FID = TS.FID + INNER JOIN T_STK_ASSEMBLYSUBITEM TSE ON TSE.FENTRYID = TSEH.FENTRYID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '), + ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID, + TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0),TS.FDATE + + + +--ŵ + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'A' THEN 'O' ELSE 'I' END fstockio, +TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate,TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid, +TSE.FSTOCKSTATUSID fstockstatusid,'ŵ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty, +CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'B' THEN TSE.FBASEQTY ELSE 0 END fbaseinqty,CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'A' THEN TSE.FBASEQTY ELSE 0 END fbaseoutqty +FROM T_STK_LOTADJUST TS INNER JOIN T_STK_LOTADJUSTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +--((TS.FDATE >= '2019-07-01 00:00:00') AND (TS.FDATE <= '2019-11-12 23:59:59')) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, + 'ʼ',SUM(CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'B' THEN TSE.FBASEQTY ELSE (0 - TSE.FBASEQTY) END) fbaseqcqty + +FROM T_STK_LOTADJUST TS INNER JOIN T_STK_LOTADJUSTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '), + ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE, + ISNULL(TSE.FBOMID,0) + + + +--ⵥ + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ⵥ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno, +0 fbaseqcqty,CASE WHEN TS.FSTOCKDIRECT = 'GENERAL' THEN TSE.FBASEQTY ELSE (0 - TSE.FBASEQTY) END fbaseinqty,0 fbaseoutqty + +FROM T_STK_MISCELLANEOUS TS INNER JOIN T_STK_MISCELLANEOUSENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_MISCELLANEOUSENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +--((TS.FDATE >= '2019-07-01 00:00:00') AND (TS.FDATE<= '2019-11-12 23:59:59')) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + --ʼ + +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ʼ', + SUM(CASE WHEN TS.FSTOCKDIRECT = 'GENERAL' THEN TSE.FBASEQTY ELSE (0 - TSE.FBASEQTY) END) fbaseqcqty + FROM T_STK_MISCELLANEOUS TS INNER JOIN T_STK_MISCELLANEOUSENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0), +ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID, +ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + + +--ⵥ + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ⵥ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno, +0 fbaseqcqty,0 fbaseinqty,CASE WHEN TS.FSTOCKDIRECT = 'GENERAL' THEN TSE.FBASEQTY ELSE (0 - TSE.FBASEQTY) END fbaseoutqty +FROM T_STK_MISDELIVERY TS +INNER JOIN T_STK_MISDELIVERYENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_MISDELIVERYENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + --ʼ +INSERT INTO #TMP (FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ʼ', + SUM(CASE WHEN TS.FSTOCKDIRECT = 'GENERAL' THEN (0 - TSE.FBASEQTY) ELSE TSE.FBASEQTY END) fbaseqcqty + FROM T_STK_MISDELIVERY TS INNER JOIN T_STK_MISDELIVERYENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0), + TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--мӹⵥ + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'мӹⵥ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty,FBASEQTY fbaseinqty,0 fbaseoutqty +FROM T_STK_OEMINSTOCK TS +INNER JOIN T_STK_OEMINSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_OEMINSTOCKENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +--((TS.FDATE >= '2019-07-01 00:00:00') AND (TS.FDATE <= '2019-11-12 23:59:59')) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid, +ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ʼ',SUM(FBASEQTY) fbaseqcqty +FROM T_STK_OEMINSTOCK TS INNER JOIN T_STK_OEMINSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID, +TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--мӹϵ + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'мӹϵ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty,(0 - FBASEQTY) fbaseinqty,0 fbaseoutqty + +FROM T_STK_OEMINSTOCKRTN TS +INNER JOIN T_STK_OEMINSTOCKRTNENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_OEMINSTOCKRTNENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND FRETURNTYPE = 'StockReMat') + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'',(0 - SUM(FBASEQTY)) fbaseqcqty + FROM T_STK_OEMINSTOCKRTN TS INNER JOIN T_STK_OEMINSTOCKRTNENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE ((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + AND FRETURNTYPE = 'StockReMat') + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID, + ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0), + TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + +--̬ת + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'A' THEN 'O' ELSE 'I' END fstockio,TSE.FMATERIALID fmaterialid, +ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate,TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'̬ת' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty, +CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'B' THEN TSE.FBASEQTY ELSE 0 END fbaseinqty,CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'A' THEN TSE.FBASEQTY ELSE 0 END fbaseoutqty +FROM T_STK_STATUSCONVERT TS +INNER JOIN T_STK_STATUSCONVERTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ʼ', +SUM(CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'B' THEN TSE.FBASEQTY ELSE (0 - TSE.FBASEQTY) END) fbaseqcqty +FROM T_STK_STATUSCONVERT TS INNER JOIN T_STK_STATUSCONVERTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0), +ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID, +TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--״̬ת + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby, +CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'A' THEN 'O' ELSE 'I' END fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'״̬ת' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty, +CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'B' THEN TSE.FBASEQTY ELSE 0 END fbaseinqty, +CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'A' THEN TSE.FBASEQTY ELSE 0 END fbaseoutqty +FROM T_STK_STOCKCONVERT TS INNER JOIN T_STK_STOCKCONVERTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_STOCKCONVERTENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ʼ', +SUM(CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'B' THEN TSE.FBASEQTY ELSE (0 - TSE.FBASEQTY) END) fbaseqcqty +FROM T_STK_STOCKCONVERT TS INNER JOIN T_STK_STOCKCONVERTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0), +TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + + +--ӯ + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'ӯ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty,TSE.FBASEGAINQTY fbaseinqty,0 fbaseoutqty +FROM T_STK_STKCOUNTGAIN TS +INNER JOIN T_STK_STKCOUNTGAINENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND ((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A')) + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'ʼ',SUM(TSE.FBASEGAINQTY) fbaseqcqty +FROM T_STK_STKCOUNTGAIN TS INNER JOIN T_STK_STKCOUNTGAINENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND ((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0), +ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID, +TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + + +--̿ + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'̿' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno, +0 fbaseqcqty,0 fbaseinqty,TSE.FBASELOSSQTY fbaseoutqty +FROM T_STK_STKCOUNTLOSS TS INNER JOIN T_STK_STKCOUNTLOSSENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND ((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A')) + + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, + 'ʼ',SUM(0 - TSE.FBASELOSSQTY) fbaseqcqty + FROM T_STK_STKCOUNTLOSS TS INNER JOIN T_STK_STKCOUNTLOSSENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND ((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID, + ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--ֱӵ + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 'I' ELSE 'O' END fstockio, +TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate,TSE.FDESTSTOCKID fstockid,ISNULL(TSE.FDESTSTOCKLOCID,0) fstocklocid, +TSE.FDESTSTOCKSTATUSID fstockstatusid,'ֱӵ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty, +CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN TSE.FBASEQTY ELSE 0 END fbaseinqty,CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'RETURN' THEN (0 - TSE.FBASEQTY) ELSE 0 END fbaseoutqty + +FROM T_STK_STKTRANSFERIN TS INNER JOIN T_STK_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_STKTRANSFERINENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FDESTSTOCKID = TBS.FSTOCKID + + +WHERE (((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) AND TS +.FOBJECTTYPEID = 'STK_TransferDirect') + + + +--ʼ + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid, +ISNULL(TSE.FAUXPROPID,0) fauxpropid,TSE.FDESTSTOCKID fstockid, +ISNULL(TSE.FDESTSTOCKLOCID,0) fstocklocid,TSE.FDESTSTOCKSTATUSID fstockstatusid,'ʼ', +SUM(CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN TSE.FBASEQTY ELSE 0 END - +CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 0 ELSE (0 - TSE.FBASEQTY) END) fbaseqcqty +FROM T_STK_STKTRANSFERIN TS INNER JOIN T_STK_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FDESTSTOCKID = TBS.FSTOCKID +WHERE (((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +AND (TS.FISGENFORIOS <> '1')) AND TS.FOBJECTTYPEID = 'STK_TransferDirect') +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0), +ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FDESTSTOCKID,ISNULL(TSE.FDESTSTOCKLOCID,0), +TSE.FDESTSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,TSE.FBOMID,TS.FDATE + + + +--ֱӵ + + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID, +FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKOUTORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby, +CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 'O' ELSE 'I' END fstockio, +TSE.FSRCMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSRCSTOCKID fstockid,ISNULL(TSE.FSRCSTOCKLOCID,0) fstocklocid,TSE.FSRCSTOCKSTATUSID fstockstatusid, +'ֱӵ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty, +CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 0 ELSE (0 - TSE.FBASEQTY) END fbaseinqty, +CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN TSE.FBASEQTY ELSE 0 END fbaseoutqty +FROM T_STK_STKTRANSFERIN TS INNER JOIN T_STK_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_STKTRANSFERINENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FSRCMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID +WHERE (((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKOUTORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) AND TS.FOBJECTTYPEID = 'STK_TransferDirect') + + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKOUTORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio, +TSE.FSRCMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSRCSTOCKID fstockid,ISNULL(TSE.FSRCSTOCKLOCID,0) fstocklocid,TSE.FSRCSTOCKSTATUSID fstockstatusid,'ʼ', + +SUM(CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 0 ELSE (0 - TSE.FBASEQTY) END - +CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN TSE.FBASEQTY ELSE 0 END) fbaseqcqty + + +FROM T_STK_STKTRANSFERIN TS INNER JOIN T_STK_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FSRCMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID +WHERE (((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKOUTORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +AND (TS.FISGENFORIOS <> '1')) AND TS.FOBJECTTYPEID = 'STK_TransferDirect') +GROUP BY TS.FSTOCKOUTORGID,TSE.FOWNERTYPEOUTID,TSE.FOWNEROUTID,TSE.FSRCMATERIALID,ISNULL(TSE.FAUXPROPID,0), +ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSRCSTOCKID,ISNULL(TSE.FSRCSTOCKLOCID,0),TSE.FSRCSTOCKSTATUSID, +TSE.FKEEPERTYPEOUTID,TSE.FKEEPEROUTID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,TSE.FSRCBOMID,TS.FDATE + + +--ֲʽ뵥 + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 'I' ELSE 'O' END fstockio, +TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate,TSE.FDESTSTOCKID fstockid,ISNULL(TSE.FDESTSTOCKLOCID,0) fstocklocid, +TSE.FDESTSTOCKSTATUSID fstockstatusid,'ֲʽ뵥' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno, +0 fbaseqcqty,CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GEN +ERAL' THEN TSE.FBASEQTY ELSE 0 END fbaseinqty, +CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'RETURN' THEN (0 - TSE.FBASEQTY) ELSE 0 END fbaseoutqty + +FROM T_STK_STKTRANSFERIN TS INNER JOIN T_STK_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_STKTRANSFERINENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FDESTSTOCKID = TBS.FSTOCKID +WHERE (((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) AND TS.FOBJECTTYPEID = 'STK_TRANSFERIN') + + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FDESTSTOCKID fstockid,ISNULL(TSE.FDESTSTOCKLOCID,0) fstocklocid,TSE.FDESTSTOCKSTATUSID fstockstatusid,'ʼ', + SUM(TSE.FBASEQTY) fbaseqcqty + FROM T_STK_STKTRANSFERIN TS INNER JOIN T_STK_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FDESTSTOCKID = TBS.FSTOCKID + WHERE (((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + AND (TS.FISGENFORIOS <> '1')) AND TS.FOBJECTTYPEID = 'STK_TRANSFERIN') + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FDESTLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FDESTSTOCKID,ISNULL(TSE.FDESTSTOCKLOCID,0),TSE.FDESTSTOCKSTATUSID, + TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,TSE.FBOMID,TS.FDATE + +--ֲʽ뵥 + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKOUTORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FSRCMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSRCSTOCKID fstockid,ISNULL(TSE.FSRCSTOCKLOCID,0) fstocklocid,TSE.FSRCSTOCKSTATUSID fstockstatusid,'ֲʽ뵥' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty,((0 - TSE.FBASEQTY) - TSET.FBASEPATHLOSSQTY) fbaseinqty,0 fbaseoutqty +FROM T_STK_STKTRANSFERIN TS INNER JOIN T_STK_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_STKTRANSFERINENTRY_T TSET ON TSE.FENTRYID = TSET.FENTRYID +INNER JOIN T_STK_STKTRANSFERINENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FSRCMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID +WHERE ((((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKOUTORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) +AND TS.FVESTONWAY = 'A') AND TS.FOBJECTTYPEID = 'STK_TRANSFERIN') + + + + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + SELECT TS.FSTOCKOUTORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FSRCMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSRCSTOCKID fstockid,ISNULL(TSE.FSRCSTOCKLOCID,0) fstocklocid,TSE.FSRCSTOCKSTATUSID fstockstatusid,'',SUM((0 - TSE.FBASEQTY) - TSET.FBASEPATHLOSSQTY) fbaseqcqty + FROM T_STK_STKTRANSFERIN TS INNER JOIN T_STK_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_STK_STKTRANSFERINENTRY_T TSET ON TSE.FENTRYID = TSET.FENTRYID + INNER JOIN T_BD_MATERIAL TM ON TSE.FSRCMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID + WHERE ((((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKOUTORGID IN (1) + AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) + AND TS.FVESTONWAY = 'A') AND TS.FOBJECTTYPEID = 'STK_TRANSFERIN') + GROUP BY TS.FSTOCKOUTORGID,TSE.FOWNERTYPEOUTID,TSE.FOWNEROUTID,TSE.FSRCMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FSRCMTONO,' '), + TSE.FSRCSTOCKID,ISNULL(TSE.FSRCSTOCKLOCID,0),TSE.FSRCSTOCKSTATUSID,TSE.FKEEPERTYPEOUTID,TSE.FKEEPEROUTID,TSE.FSRCPRODUCEDATE,TSE.FSRCEXPIRYDATE,TSE.FSRCBOMID,TS.FDATE + +--ֲʽ + + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 'O' ELSE 'I' END fstockio, +TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate,TSE.FSRCSTOCKID fstockid,ISNULL(TSE.FSRCSTOCKLOCID,0) fstocklocid, +TSE.FSRCSTOCKSTATUSID fstockstatusid,'ֲʽ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty, +CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'RETURN' THEN (0 - TSE.FBASEQTY) ELSE 0 END fbaseinqty, +CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN TSE.FBASEQTY ELSE 0 END fbaseoutqty + +FROM T_STK_STKTRANSFEROUT TS INNER JOIN T_STK_STKTRANSFEROUTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_STKTRANSFEROUTENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID +WHERE ((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) + + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSRCSTOCKID fstockid,ISNULL(TSE.FSRCSTOCKLOCID,0) fstocklocid,TSE.FSRCSTOCKSTATUSID fstockstatusid, + 'ʼ',SUM(0 - TSE.FBASEQTY) fbaseqcqty + FROM T_STK_STKTRANSFEROUTENTRY TSE INNER JOIN T_STK_STKTRANSFEROUT TS ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON +TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID + WHERE ((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '), + ISNULL(TSE.FMTONO,' '),TSE.FSRCSTOCKID,ISNULL(TSE.FSRCSTOCKLOCID,0),TSE.FSRCSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID, + TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,TSE.FBOMID,TS.FDATE + +--ֲʽ + + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSRCSTOCKID fstockid,ISNULL(TSE.FSRCSTOCKLOCID,0) fstocklocid,TSE.FDESTSTOCKSTATUSID fstockstatusid, +'ֲʽ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty,TSE.FBASEQTY fbaseinqty,0 fbaseoutqty +FROM T_STK_STKTRANSFEROUT TS INNER JOIN T_STK_STKTRANSFEROUTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_STKTRANSFEROUTENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID +WHERE (((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) AND TS.FVESTONWAY = 'A') + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSRCSTOCKID fstockid,ISNULL(TSE.FSRCSTOCKLOCID,0) fstocklocid,TSE.FDESTSTOCKSTATUSID fstockstatusid, + 'ʼ',SUM(TSE.FBASEQTY) fbaseqcqty + FROM T_STK_STKTRANSFEROUT TS INNER JOIN T_STK_STKTRANSFEROUTENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID + WHERE (((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + AND (TS.FISGENFORIOS <> '1')) AND TS.FVESTONWAY = 'A') + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSRCSTOCKID,ISNULL(TSE.FSRCSTOCKLOCID,0), + TSE.FDESTSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,TSE.FBOMID,TS.FDATE + + +--ֲʽ + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKINORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FDESTMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate,TSE.FDESTSTOCKID fstockid, +ISNULL(TSE.FDESTSTOCKLOCID,0) fstocklocid,TSE.FDESTSTOCKSTATUSID fstockstatusid, +'ֲʽ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty,TSE.FBASEQTY fbaseinqty,0 fbaseoutqty +FROM T_STK_STKTRANSFEROUT TS INNER JOIN T_STK_STKTRANSFEROUTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_STKTRANSFEROUTENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FDESTMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FDESTSTOCKID = TBS.FSTOCKID + +WHERE (((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKINORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +AND (TS.FISGENFORIOS <> '1')) AND TS.FVESTONWAY = 'B') + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKINORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FDESTMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FDESTSTOCKID fstockid,ISNULL(TSE.FDESTSTOCKLOCID,0) fstocklocid,TSE.FDESTSTOCKSTATUSID fstockstatusid, +'ʼ',SUM(TSE.FBASEQTY) fbaseqcqty +FROM T_STK_STKTRANSFEROUT TS INNER JOIN T_STK_STKTRANSFEROUTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FDESTMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FDESTSTOCKID = TBS.FSTOCKID +WHERE (((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKINORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) AND TS.FVESTONWAY = 'B') +GROUP BY TS.FSTOCKINORGID,TSE.FOWNERTYPEINID,TSE.FOWNERINID,TSE.FDESTMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FDESTLOT_TEXT,' '),ISNULL(TSE.FDESTMTONO,' '),TSE.FDESTSTOCKID, +ISNULL(TSE.FDESTSTOCKLOCID,0),TSE.FDESTSTOCKSTATUSID,TSE.FKEEPERTYPEINID,TSE.FKEEPERINID,TSE.FDESTPRODUCEDATE,TSE.FDESTEXPIRYDATE,ISNULL(TSE.FDESTBOMID,0),TS.FDATE + + + +--Ʋֿ + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 'I' ELSE 'O' END fstockio, +TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate,TSE.FDESTSTOCKID fstockid,ISNULL(TSE.FDESTSTOCKLOCID,0) fstocklocid, +TSE.FDESTSTOCKSTATUSID fstockstatusid,'Ʋֿ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno, + 0 fbaseqcqty,CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN TSE.FBASEQTY ELSE 0 END fbaseinqty, + CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'RETURN' THEN (0 - TSE.FBASEQTY) ELSE 0 END fbaseoutqty +FROM T_REM_STKTRANSFERIN TS INNER JOIN T_REM_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_REM_STKTRANSFERINENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FDESTSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FDESTSTOCKID fstockid,ISNULL(TSE.FDESTSTOCKLOCID,0) fstocklocid,TSE.FDESTSTOCKSTATUSID fstockstatusid,'ʼ', + SUM(CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN TSE.FBASEQTY ELSE 0 END - CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 0 ELSE (0 - TSE.FBASEQTY) END) fbaseqcqty + + FROM T_REM_STKTRANSFERIN TS INNER JOIN T_REM_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FDESTSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FDESTLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '), + TSE.FDESTSTOCKID,ISNULL(TSE.FDESTSTOCKLOCID,0),TSE.FDESTSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,TSE.FBOMID,TS.FDATE + + + + --Ʋֿ + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKOUTORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 'O' ELSE 'I' END fstockio, +TSE.FSRCMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate,TSE.FSRCSTOCKID fstockid,ISNULL(TSE.FSRCSTOCKLOCID,0) fstocklocid, + TSE.FSRCSTOCKSTATUSID fstockstatusid, + 'Ʋֿ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty, + CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 0 ELSE (0 - TSE.FBASEQTY) END fbaseinqty, + CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN TSE.FBASEQTY ELSE 0 END fbaseoutqty + FROM T_REM_STKTRANSFERIN TS + INNER JOIN T_REM_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_REM_STKTRANSFERINENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID + INNER JOIN T_BD_MATERIAL TM ON TSE.FSRCMATERIALID = TM.FMATERIALID + + INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKOUTORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKOUTORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FSRCMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSRCSTOCKID fstockid,ISNULL(TSE.FSRCSTOCKLOCID,0) fstocklocid,TSE.FSRCSTOCKSTATUSID fstockstatusid,'ʼ', + SUM(CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 0 ELSE (0 - TSE.FBASEQTY) END - CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN TSE.FBASEQTY ELSE 0 END) fbaseqcqty + FROM T_REM_STKTRANSFERIN TS INNER JOIN T_REM_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FSRCMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKOUTORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) + AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKOUTORGID,TSE.FOWNERTYPEOUTID,TSE.FOWNEROUTID,TSE.FSRCMATERIALID,ISNULL(TSE.FAUXPROPID,0), +ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSRCSTOCKID,ISNULL(TSE.FSRCSTOCKLOCID,0),TSE.FSRCSTOCKSTATUSID,TSE.FKEEPERTYPEOUTID,TSE.FKEEPEROUTID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,TSE.FSRCBOMID,TS.FDATE + + +--ίⲹϵ + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ίⲹϵ' fbillname,TS.FID fbillid, +TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty,0 fbaseinqty,TSEQ.FBASESTOCKACTUALQTY fbaseoutqty +FROM T_SUB_FEEDMTRL TS INNER JOIN T_SUB_FEEDMTRLENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_SUB_FEEDMTRLENTRY_Q TSEQ ON (TSE.FID = TSEQ.FID AND TSE.FENTRYID = TSEQ.FENTRYID) +LEFT OUTER JOIN T_SUB_FEEDMTRLENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, + +'ʼ',SUM(0 - TSEQ.FBASESTOCKACTUALQTY) fbaseqcqty + FROM T_SUB_FEEDMTRL TS INNER JOIN T_SUB_FEEDMTRLENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_SUB_FEEDMTRLENTRY_Q TSEQ ON (TSE.FID = TSEQ.FID AND TSE.FENTRYID = TSEQ.FENTRYID) + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID, + TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + + +--ίϵ + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ίϵ' fbillname,TS.FID fbillid, +TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty,0 fbaseinqty,TSE.FBASESTOCKACTUALQTY fbaseoutqty +FROM T_SUB_PICKMTRL TS INNER JOIN T_SUB_PICKMTRLDATA TSE ON TSE.FID = TS.FID +INNER JOIN T_SUB_PICKMTRLDATA_A TSEQ ON (TSE.FID = TSEQ.FID AND TSE.FENTRYID = TSEQ.FENTRYID) +LEFT OUTER JOIN T_SUB_PICKMTRLDATA_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'ʼ',SUM(0 - TSE.FBASESTOCKACTUALQTY) fbaseqcqty + FROM T_SUB_PICKMTRL TS INNER JOIN T_SUB_PICKMTRLDATA TSE ON TSE.FID = TS.FID + INNER JOIN T_SUB_PICKMTRLDATA_A TSEQ ON (TSE.FID = TSEQ.FID AND TSE.FENTRYID = TSEQ.FENTRYID) + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) + AND TM.FFORBIDSTATUS = 'A')AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID,TSEQ.FOWNERTYPEID,TSEQ.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '), + TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSEQ.FKEEPERTYPEID,TSEQ.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--ίϵ + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'ίϵ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty, +0 fbaseinqty,(0 - TSE.FBASESTOCKQTY) fbaseoutqty +FROM T_SUB_RETURNMTRL TS INNER JOIN T_SUB_RETURNMTRLENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_SUB_RETURNMTRLENTRY_A TSEA ON TSE.FENTRYID = TSEA.FENTRYID +LEFT OUTER JOIN T_SUB_RETURNMTRLENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ʼ',SUM(TSE.FBASESTOCKQTY) fbaseqcqty +FROM T_SUB_RETURNMTRL TS INNER JOIN T_SUB_RETURNMTRLENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_SUB_RETURNMTRLENTRY_A TSEA ON TSE.FENTRYID = TSEA.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID, +TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSEA.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0), +TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + +--߲Ʒⵥ + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby, + 'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'߲Ʒⵥ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty,TSE.FBASEREALQTY fbaseinqty,0 fbaseoutqty +FROM T_REM_INSTOCK TS INNER JOIN T_REM_INSTOCKENTRY TSE ON TSE.FID = TS.FID +LEFT OUTER JOIN T_REM_INSTOCKENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, + 'ʼ',SUM(TSE.FBASEREALQTY) fbaseqcqty + FROM T_REM_INSTOCK TS INNER JOIN T_REM_INSTOCKENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) + AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0), + TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +---߲Ʒ˿ⵥ + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO, + FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TS.FDATE fdate,TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'߲Ʒ˿ⵥ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno, +0 fbaseqcqty,(0 - TSE.FBASEREALQTY) fbaseinqty,0 fbaseoutqty +FROM T_REM_OUTSTOCK TS INNER JOIN T_REM_OUTSTOCKENTRY TSE ON TSE.FID = TS.FID +LEFT OUTER JOIN T_REM_OUTSTOCKENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'ʼ',SUM(TSE.FBASEREALQTY) fbaseqcqty +FROM T_REM_OUTSTOCK TS INNER JOIN T_REM_OUTSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID, +ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + + +--ϵ + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby, +'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'ϵ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS +.FBILLNO fbillno,0 fbaseqcqty,0 fbaseinqty,TSED.FBASESTOCKACTUALQTY fbaseoutqty + +FROM T_REM_PICKMTRL TS INNER JOIN T_REM_PICKMTRLDATA TSE ON TSE.FID = TS.FID +INNER JOIN T_REM_PICKMTRLDATA_A TSED ON TSED.FENTRYID = TSE.FENTRYID +LEFT OUTER JOIN T_REM_PICKMTRLDATA_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'ʼ',SUM(0 - TSED.FBASESTOCKACTUALQTY) fbaseqcqty +FROM T_REM_PICKMTRL TS INNER JOIN T_REM_PICKMTRLDATA TSE ON TSE.FID = TS.FID +INNER JOIN T_REM_PICKMTRLDATA_A TSED ON TSED.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) +AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSED.FOWNERTYPEID,TSED.FOWNERID,TSE.FMATERIALID, +ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSED.FKEEPERTYPEID,TSED.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0),TS.FDATE + + +--ϵ +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ϵ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty,0 fbaseinqty,(0 - TSEA.FBASESTOCKQTY) fbaseoutqty + +FROM T_REM_RETURNMTRL TS INNER JOIN T_REM_RETURNMTRLENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_REM_RETURNMTRLENTRY_A TSEA ON TSE.FENTRYID = TSEA.FENTRYID +LEFT OUTER JOIN T_REM_RETURNMTRLENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ʼ',SUM(TSEA.FBASESTOCKQTY) fbaseqcqty +FROM T_REM_RETURNMTRL TS INNER JOIN T_REM_RETURNMTRLENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_REM_RETURNMTRLENTRY_A TSEA ON TSE.FENTRYID = TSEA.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0), +TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + + +--ίⳬĵ +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'ίⳬĵ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty,0 fbaseinqty,TSE.FBASEUNITQTY fbaseoutqty + +FROM T_SUB_EXCONSUME TS INNER JOIN T_SUB_EXCONSUMEENTRY TSE ON TSE.FID = TS.FID +LEFT OUTER JOIN T_SUB_EXCONSUMEENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'ʼ',SUM(0 - TSE.FBASEUNITQTY) fbaseqcqty +FROM T_SUB_EXCONSUME TS INNER JOIN T_SUB_EXCONSUMEENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSE.FOwnerTypeId,TSE.FOwnerId,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '), +ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + +--˿ⵥ + + INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'˿ⵥ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty,(0 - TSE.FBASEREALQTY) fbaseinqty,0 fbaseoutqty +FROM +T_PRD_RESTOCK TS INNER JOIN T_PRD_RESTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_PRD_RESTOCKENTRY_A TSEA ON TSE.FEntryID = TSEA.FEntryID +LEFT OUTER JOIN T_PRD_RESTOCKENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +AND TS.FCANCELSTATUS = 'A')) AND TS.FEntrustRetStockId = 0) + + + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'ʼ',SUM(0 - TSE.FBASEREALQTY) fbaseqcqty +FROM T_PRD_RESTOCK TS INNER JOIN T_PRD_RESTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) +AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS= 'A')) AND TS.FEntrustRetStockId = 0) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '), + TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--˿ⵥ + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, + +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'˿ⵥ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty,(0 - TSE.FBASEOUTQTY) fbaseinqty,0 fbaseoutqty + +FROM T_SP_OUTSTOCK TS INNER JOIN T_SP_OUTSTOCKENTRY TSE ON TSE.FID = TS.FID +LEFT OUTER JOIN T_SP_OUTSTOCKENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_SP_OUTSTOCKENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'ʼ',SUM(0 - TSE.FBASEOUTQTY) fbaseqcqty + FROM T_SP_OUTSTOCK TS INNER JOIN T_SP_OUTSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID, +TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TSE.FSTOCKORGID fstockorgid,TSE.FBALDATE fdate,-200 forderby, + 'I' fstockio,TM.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TBS.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'',SUM(TSE.FBASEENDQTY) fbaseqcqty +FROM T_STK_INVBAL TSE +INNER JOIN T_BD_MATERIAL TM ON (TM.FMASTERID = TSE.FMATERIALID AND TM.FUSEORGID = TSE.FSTOCKORGID) +INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.FSTOCKID AND TBS.FUSEORGID = TSE.FSTOCKORGID) +LEFT OUTER JOIN T_ENG_BOM TB ON (TB.FMASTERID = TSE.FBOMID AND TB.FUSEORGID = TSE.FSTOCKORGID) +LEFT OUTER JOIN V_ITEMCLASS_OWNER VO ON ((VO.FMASTERID = TSE.FOWNERID AND VO.FFORMID = TSE.FOWNERTYPEID) AND (VO.FUSEORGID = TSE.FSTOCKORGID OR VO.FUSEORGID = 0 +OR EXISTS (SELECT 1 FROM T_META_BASEDATATYPE BT WHERE (BT.FBASEDATATYPEID = VO.FFORMID AND BT.FSTRATEGYTYPE = 1)))) +LEFT OUTER JOIN V_ITEMCLASS_OWNER_L VO_L ON (VO.FITEMID = VO_L.FITEMID AND VO_L.FLOCALEID = 2052) +LEFT OUTER JOIN V_ITEMCLASS_KEEPER VK ON ((VK.FMASTERID = TSE.FKEEPERID AND VK.FFORMID = TSE.FKEEPERTYPEID) AND (VK.FUSEORGID = TSE.FSTOCKORGID OR VK.FUSEORGID = 0 +OR EXISTS (SELECT 1 FROM T_META_BASEDATATYPE BT WHERE (BT.FBASEDATATYPEID = VK.FFORMID AND BT.FSTRATEGYTYPE = 1)))) +LEFT OUTER JOIN V_ITEMCLASS_KEEPER_L VK_L ON (VK.FITEMID = VK_L.FITEMID AND VK_L.FLOCALEID = 2052) +LEFT OUTER JOIN T_BD_LOTMASTER TBLM ON (ISNULL(TSE.FLOT,0) = TBLM.FMASTERID AND TBLM.FUSEORGID IN (1)) + +WHERE ((TSE.FSTOCKORGID IN (1) AND (FBALTYPE IN(0,1) AND (FSTOCKORGID = 1 AND TSE.FBALDATE =@FCloseBALDate ))) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND TM.FFORBIDSTATUS = 'A') + + +GROUP BY TSE.FSTOCKORGID,TSE.FOWNERTYPEID,VO.FITEMID,TSE.FBALDATE,TM.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TBLM.FNUMBER,' '),ISNULL(TSE.FMTONO,' '), +TBS.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,VK.FITEMID,TSE.FLOT,TMS.FISBATCHMANAGE,TMS.FISKFPERIOD, +TMS.FISEXPPARTOFLOT,TBLM.FPRODUCEDATE,TSE.FPRODUCEDATE,TBLM.FEXPIRYDATE,TSE.FEXPIRYDATE,ISNULL(TB.FID,0) + +--ϲг + +SELECT FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID,SUM( FBASEQCQTY)FBASEQCQTY,SUM(FBASEINQTY)FBASEINQTY,SUM(FBASEOUTQTY) FBASEOUTQTY +INTO #tmp1 +FROM #TMP +--WHERE FDATE <='2019-08-30' +GROUP BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID +ORDER BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID + + + +INSERT INTO #Stock_Status_temp (,ϴ,,ͺ,ɱ,װʽ,ֿ,ֿ,ֿ,װ) + +SELECT TM.fmaterialid AS ,(TM.fnumber) ϴ,(TML.FNAME) AS ,(TML.FSPECIFICATION) AS ͺ,ISNULL(TM.FOLDNUMBER,'') AS ɱ, +ISNULL(t5.FAUXPTYNUMBER,'') װʽ,TBS.FSTOCKID ֿ,TSL.fname ֿ,TBS.fnumber ֿ,TSE.FAUXPROPID AS װ +FROM #tmp1 TSE +INNER JOIN T_BD_MATERIAL TM ON (TM.FMATERIALID = TSE.FMATERIALID AND TM.FUSEORGID = TSE.FSTOCKORGID) +INNER JOIN T_BD_MATERIAL_L TML ON TM.FMATERIALID =TML.FMATERIALID AND TML.FLOCALEID =2052 +INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.FSTOCKID AND TBS.FUSEORGID = TSE.FSTOCKORGID) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = TSE.FSTOCKID AND TSL.FLOCALEID = 2052) +LEFT OUTER JOIN T_BD_FLEXSITEMDETAILV t3 ON TSE.FAUXPROPID=t3.FID +LEFT OUTER JOIN T_BAS_ASSISTANTDATAENTRY_L t4 ON t3.FF100002=t4.FENTRYID +LEFT OUTER JOIN T_BD_AUXPTYVALUEENTITY t5 ON t3.FF100002=t5.FAUXPTYID AND t3.FID =t5.FAUXPTYVALUEID + + +--ڽ +--SELECT FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID,SUM( FBASEQCQTY)FBASEQCQTY,SUM(FBASEINQTY)FBASEINQTY,SUM(FBASEOUTQTY) FBASEOUTQTY +--INTO #tmp2 + +--FROM #TMP +----WHERE FDATE <=@FSDate +--GROUP BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID +--ORDER BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID + +--SELECT * +UPDATE t1 SET t1.ڽ=t2.FBASEQCQTY + FROM #Stock_Status_temp t1 +INNER JOIN #tmp1 t2 ON t1.=t2.FMATERIALID AND t1.ֿ=t2.FSTOCKID AND t1.װ=T2.FAUXPROPID + +--ĩ +UPDATE t1 SET t1.ĩ=t2.FBASEQCQTY+t2.FBASEINQTY-t2.FBASEOUTQTY + FROM #Stock_Status_temp t1 +INNER JOIN + #tmp1 t2 ON t1.=t2.FMATERIALID AND t1.ֿ=t2.FSTOCKID AND t1.װ=T2.FAUXPROPID + +--ڲɹ +SELECT FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID,SUM( FBASEQCQTY)FBASEQCQTY,SUM(FBASEINQTY)FBASEINQTY,SUM(FBASEOUTQTY) FBASEOUTQTY +INTO #tmp4 FROM #TMP TS WHERE FORDERBY<>'-200' AND fstockio='I' AND ( FBILLNAME NOT like'%%' AND FBILLNAME<>'̬ת') +AND ((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--TS.FDATE >='2019-08-30'AND TS.FDATE <='2019-11-12' +GROUP BY FSTOCKORGID,FMATERIALID, +FAUXPROPID,FSTOCKID +ORDER BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID +--ڲɹ + +UPDATE t1 SET t1.ڲɹ=t2.FBASEINQTY + FROM #Stock_Status_temp t1 +INNER JOIN #tmp4 t2 ON t1.=t2.FMATERIALID AND t1.ֿ=t2.FSTOCKID AND t1.װ=T2.FAUXPROPID + +--ں +SELECT FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID,SUM( FBASEQCQTY)FBASEQCQTY,SUM(FBASEINQTY)FBASEINQTY,SUM(FBASEOUTQTY) FBASEOUTQTY +INTO #tmp5 FROM #TMP TS WHERE fstockio='O' AND ( FBILLNAME NOT like'%%' AND FBILLNAME<>'̬ת') +AND ((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--TS.FDATE >='2019-08-30'AND TS.FDATE <='2019-11-12' +GROUP BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID +ORDER BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID +--ں + +UPDATE t1 SET t1.ں=t2.FBASEOUTQTY + FROM #Stock_Status_temp t1 +INNER JOIN #tmp5 t2 ON t1.=t2.FMATERIALID AND t1.ֿ=t2.FSTOCKID AND t1.װ=T2.FAUXPROPID + + +--ֿⲦֿⲦ + +SELECT FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID,SUM( FBASEQCQTY)FBASEQCQTY,SUM(FBASEINQTY)FBASEINQTY,SUM(FBASEOUTQTY) FBASEOUTQTY +INTO #tmp6 FROM #TMP TS WHERE FORDERBY<>'-200' AND ( FBILLNAME like'%%' ) +AND ((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--TS.FDATE >='2019-08-30'AND TS.FDATE <='2019-11-12' +GROUP BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID +ORDER BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID + +--ֿⲦ--ֿⲦ + +UPDATE t1 SET t1.ֿⲦ=t2.FBASEINQTY,t1.ֿⲦ=t2.FBASEOUTQTY + FROM #Stock_Status_temp t1 +INNER JOIN #tmp6 t2 ON t1.=t2.FMATERIALID AND t1.ֿ=t2.FSTOCKID AND t1.װ=T2.FAUXPROPID + + +-- +SELECT FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID,SUM( FBASEQCQTY)FBASEQCQTY,SUM(FBASEINQTY)FBASEINQTY,SUM(FBASEOUTQTY) FBASEOUTQTY +INTO #tmp7 FROM #TMP TS WHERE ( FBILLNAME IN('ϵ','ίϵ' )) +AND ((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--TS.FDATE >='2019-08-30'AND TS.FDATE <='2019-11-12' +GROUP BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID +ORDER BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID + +-- +UPDATE t1 SET t1.=t2.FBASEOUTQTY + FROM #Stock_Status_temp t1 +INNER JOIN #tmp7 t2 ON t1.=t2.FMATERIALID AND t1.ֿ=t2.FSTOCKID AND t1.װ=T2.FAUXPROPID + + +--۳ + +SELECT FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID,SUM( FBASEQCQTY)FBASEQCQTY,SUM(FBASEINQTY)FBASEINQTY,SUM(FBASEOUTQTY) FBASEOUTQTY +INTO #tmp8 FROM #TMP TS WHERE ( FBILLNAME ='۳ⵥ' ) +AND ((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--TS.FDATE >='2019-08-30'AND TS.FDATE <='2019-11-12' +GROUP BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID +ORDER BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID + +--۳ +UPDATE t1 SET t1.۳=t2.FBASEOUTQTY + FROM #Stock_Status_temp t1 +INNER JOIN #tmp8 t2 ON t1.=t2.FMATERIALID AND t1.ֿ=t2.FSTOCKID AND t1.װ=T2.FAUXPROPID + +--ܶ +--۶ܶ +--******************************************* + +--ѯ +--(C.FBASEREMAINOUTQTY+C.FBaseReturnQty)ۼ˿+ʣδ +SELECT (A.FBILLNO) AS ۵,(A.FID) ,(B.FENTRYID) ۷¼,(B.FSEQ) , +B.FMATERIALID AS ,B.FBASEUNITQTY ,(C.FBASEREMAINOUTQTY+C.FBaseReturnQty) AS δ,FBaseReturnQty, +ISNULL(B.FSTOCKID,0) ֿ,B.FAUXPROPID,A.FCLOSESTATUS,FCLOSEDATE,A.FDATE,B.FMRPCLOSESTATUS ҵر +INTO #tmpSal +FROM T_SAL_ORDER A +INNER JOIN T_SAL_ORDERENTRY B ON A.FID =B.FID +LEFT JOIN T_SAL_ORDERENTRY_R C ON C.FID=B.FID AND C.FENTRYID =B.FENTRYID +LEFT JOIN T_SAL_ORDERENTRY_E D ON D.FID=B.FID AND D.FENTRYID =B.FENTRYID + +WHERE 1=1 AND A.FCANCELSTATUS='A' AND A.FDOCUMENTSTATUS='C' --AND B.FMRPTERMINATESTATUS='A' +AND (B.FTERMINATEDATE >@FEDate OR ISNULL(B.FTERMINATEDATE,'') ='') +AND (FCLOSEDATE>@FEDate OR ISNULL(FCLOSEDATE,'')='')--رڿʼ֮ǰݲ +AND A.FDATE <=@FEDate --AND A.FBILLNO='SO1909200018' +ORDER BY A.FDATE,A.FID,B.FENTRYID,B.FMATERIALID + + + +--δ +--SELECT * +UPDATE t1 SET t1.δ=δ+t2.fbaseoutqty +FROM #tmpSal t1 +INNER JOIN ( +SELECT TSR.FSOORDERNO,TSR.FSOENTRYID,TSE.FMATERIALID,SUM(TSE.FBASEUNITQTY) fbaseoutqty +FROM T_SAL_OUTSTOCK TS INNER JOIN T_SAL_OUTSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_SAL_OUTSTOCKENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_SAL_OUTSTOCKFIN TSF ON TSE.FID = TSF.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_MATERIALBASE TMB ON TSE.FMATERIALID = TMB.FMATERIALID +INNER JOIN T_SAL_OUTSTOCKENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID + +WHERE TS.FDATE>@FEDate AND +( TS.FCANCELSTATUS = 'A' AND TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +GROUP BY TSR.FSOORDERNO,TSR.FSOENTRYID,TSE.FMATERIALID ) t2 ON t2.FSOORDERNO =t1.۵ AND t2.FSOENTRYID=t1.۷¼ AND t1.=t2.FMATERIALID + +--۳˻ +--˻ +--SELECT * +UPDATE t1 SET t1.δ=δ+t2.fbaseoutqty +FROM #tmpSal t1 +INNER JOIN ( +SELECT TSE.FORDERNO,TSE.FSOENTRYID,TSE.FMATERIALID,SUM((TSE.FBASEUNITQTY)) fbaseoutqty +FROM T_SAL_RETURNSTOCK TS INNER JOIN T_SAL_RETURNSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_SAL_RETURNSTOCKENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_SAL_RETURNSTOCKFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_MATERIALBASE TMB ON TSE.FMATERIALID = TMB.FMATERIALID INNER JOIN T_SAL_RETURNSTOCKENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID + +WHERE TS.FDATE>@FEDate +AND ( TS.FCANCELSTATUS = 'A' AND TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +GROUP BY TSE.FORDERNO,TSE.FSOENTRYID,TSE.FMATERIALID +) t2 ON t2.FORDERNO =t1.۵ AND t2.FSOENTRYID=t1.۷¼ AND t1.=t2.FMATERIALID + + + +SELECT ,,δ,FAUXPROPID,CASE WHEN B.ֿ<>0 THEN B.ֿ ELSE ISNULL(tms.FSTOCKID,0) END ֿ +INTO #tmpSal1 FROM #tmpSal B +LEFT JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +LEFT JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.ֿ ) +--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + +ORDER BY + + +SELECT ,,δ,FAUXPROPID,ֿ +INTO #tmpSal3 FROM #tmpSal1 B +LEFT JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +--LEFT JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +--LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.ֿ ) +WHERE -- (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + +ORDER BY + + + +SELECT ,SUM(),SUM(δ)δ,FAUXPROPID,ֿ +INTO #tmpSal2 FROM #tmpSal3 +GROUP BY ֿ,,FAUXPROPID +ORDER BY ֿ,,FAUXPROPID + +--۶ܶ +UPDATE t1 SET t1.ܶ=t2.δ +FROM #Stock_Status_temp t1 +INNER JOIN #tmpSal2 t2 ON t1.=t2. AND t1.ֿ=t2.ֿ AND t1.װ=T2.FAUXPROPID + + +--ݾ + +INSERT INTO #Stock_Status_temp (,ϴ,,ͺ,ɱ,װʽ,ֿ,ֿ,ֿ,װ,ܶ) + +SELECT TM.fmaterialid AS ,(TM.fnumber) ϴ,(TML.FNAME) AS + ,(TML.FSPECIFICATION) AS ͺ,ISNULL(TM.FOLDNUMBER,'') AS ɱ, +ISNULL(t5.FAUXPTYNUMBER,'') װʽ,TBS.FSTOCKID ֿ,TSL.fname ֿ,TBS.fnumber ֿ,TSE.FAUXPROPID AS װ,(δ) +FROM #tmpSal2 TSE +INNER JOIN T_BD_MATERIAL TM ON (TM.FMATERIALID = TSE. ) + +INNER JOIN T_BD_MATERIAL_L TML ON TM.FMATERIALID =TML.FMATERIALID AND TML.FLOCALEID =2052 +INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = TSE.ֿ AND TSL.FLOCALEID = 2052) +LEFT OUTER JOIN T_BD_FLEXSITEMDETAILV t3 ON TSE.FAUXPROPID=t3.FID +LEFT OUTER JOIN T_BAS_ASSISTANTDATAENTRY_L t4 ON t3.FF100002=t4.FENTRYID +LEFT OUTER JOIN T_BD_AUXPTYVALUEENTITY t5 ON t3.FF100002=t5.FAUXPTYID AND t3.FID =t5.FAUXPTYVALUEID + +--SELECT * FROM #tmpSal2 TSE +WHERE NOT EXISTS(SELECT * FROM #Stock_Status_temp t2 WHERE TSE.=t2. AND TSE.ֿ=t2.ֿ AND t2.װ=TSE.FAUXPROPID) + +--******************************************* + + + +--; +--************************************************ + +--ɹ +SELECT ddd.FPurchaseOrgID fstockorgid,ddd.FBILLNO ɹ,ddd.FID AS ɹ,B.FENTRYID ɹ¼,b.FMATERIALID , +ISNULL(b.FAUXPROPID,0) fauxpropid,ddd.FDATE fdate,TMS.FSTOCKID ֿ,FBASEUNITQTY ɹ, +FREMAINSTOCKINQTY ʣ,FBASESTOCKINQTY ,ddd.FCLOSEDATE +INTO #tmppoorder +FROM t_pur_poorderentry b +INNER JOIN t_pur_poorder ddd ON (ddd.FID = b.FID AND FbusinessType NOT IN ('ZCCG','FYCG')) +INNER JOIN t_pur_poorderentry_r r ON b.fentryid = r.fentryid +INNER JOIN t_pur_poorderentry_d td ON b.fentryid = td.fentryid +INNER JOIN T_BD_MATERIALSTOCK TMS ON b.FMATERIALID = TMS.FMATERIALID +WHERE (ddd.FPurchaseOrgID IN (1) AND (((ddd.FPurchaseOrgID IN (1)) +AND (ddd.FDATE <=@FEDate)) AND ddd.fdocumentStatus = 'C')) +AND (b.FTERMINATEDATE >@FEDate OR ISNULL(b.FTERMINATEDATE,'') ='') +AND (ddd.FCLOSEDATE>@FEDate or ISNULL(ddd.FCLOSEDATE,'')='') + +--ⵥ +--SELECT * + +UPDATE t1 SET t1.ʣ=ʣ+t2.fbaseinqty +FROM #tmppoorder t1 +INNER JOIN ( + SELECT TSE.FMATERIALID,tse.FPOORDERENTRYID,tse.FPOORDERNO,SUM(TSE.FBASEUNITQTY) fbaseinqty + FROM T_STK_INSTOCK TS INNER JOIN T_STK_INSTOCKENTRY TSE ON TSE.FID = TS.FID + + INNER JOIN T_STK_INSTOCKENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) + INNER JOIN T_STK_INSTOCKENTRY_LK TSEL ON ( TSE.FENTRYID = TSEL.FENTRYID) + INNER JOIN T_STK_INSTOCKFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + WHERE 1=1 AND TS.FDATE > @FEDate + AND (TS.FSTOCKORGID IN (1) ) AND TM.FFORBIDSTATUS = 'A' AND TS.FCANCELSTATUS = 'A' AND TS.FDOCUMENTSTATUS IN ('C') + GROUP BY TSE.FPOORDERNO,TSE.FPOORDERENTRYID,TSE.FMATERIALID +)t2 ON t2.FPOORDERNO =t1.ɹ AND t2.FPOORDERENTRYID=t1.ɹ¼ AND t1.=t2.FMATERIALID + + +--ϵ + --SELECT * +UPDATE t1 SET t1.ʣ=ʣ-t2.fbaseinqty +FROM #tmppoorder t1 +INNER JOIN( + SELECT tse.FPOORDERENTRYID,tse.FORDERNO,TSE.FMATERIALID fmaterialid,SUM( TSE.FBASEUNITQTY) fbaseinqty + + FROM T_PUR_MRB TS INNER JOIN T_PUR_MRBENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_PUR_MRBENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) + INNER JOIN T_PUR_MRBFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_MATERIALBASE TMB ON TM.FMATERIALID = TMB.FMATERIALID + WHERE 1=1 AND (TS.FDATE >@FEDate) + AND TS.FDOCUMENTSTATUS IN ('C') AND TM.FFORBIDSTATUS = 'A' AND TS.FCANCELSTATUS = 'A' AND (TSE.FSTOCKID > 0) + AND TSF.FISGENFORIOS = '0'AND (TSE.FSTOCKFLAG = '1' OR (TS.FMRTYPE = 'B' AND TMB.FISINVENTORY = '1') ) + GROUP BY tse.FPOORDERENTRYID,tse.FORDERNO,TSE.FMATERIALID +)t2 ON t2.FORDERNO =t1.ɹ AND t2.FPOORDERENTRYID=t1.ɹ¼ AND t1.=t2.FMATERIALID + + +--º; + +SELECT ,ɹ,ʣ,FAUXPROPID,CASE WHEN B.ֿ<>0 THEN B.ֿ ELSE ISNULL(tms.FSTOCKID,0) END ֿ +INTO #tmppoorder1 FROM #tmppoorder B +LEFT JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +LEFT + JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.ֿ AND TSL.FLOCALEID = 2052) +--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +ORDER BY + + + + +SELECT ,ɹ,ʣ,FAUXPROPID,ֿ +INTO #tmppoorder3 FROM #tmppoorder1 B +LEFT JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +LEFT JOIN T_BD_STOCK TSK + ON ( TSK.FMASTERID = B.ֿ ) +WHERE -- (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + +ORDER BY + + + + +SELECT ,SUM(ɹ)ɹ,SUM(ʣ)ʣ,FAUXPROPID,ֿ +INTO #tmppoorder2 FROM #tmppoorder3 +GROUP BY ֿ,,FAUXPROPID +ORDER BY ֿ,,FAUXPROPID + + +--; +UPDATE t1 SET t1.;=t2.ʣ +FROM #Stock_Status_temp t1 +INNER JOIN #tmppoorder2 t2 ON t1.=t2. AND t1.ֿ=t2.ֿ AND t1.װ=T2.FAUXPROPID + +--ݾ + +INSERT INTO #Stock_Status_temp (,ϴ,,ͺ,ɱ,װʽ,ֿ,ֿ,ֿ,װ,;) + +SELECT TM.fmaterialid AS ,(TM.fnumber) ϴ,(TML.FNAME) AS ,(TML.FSPECIFICATION) AS ͺ,ISNULL(TM.FOLDNUMBER,'') AS ɱ, +ISNULL(t5.FAUXPTYNUMBER,'') װʽ,TBS.FSTOCKID ֿ,TSL.fname ֿ,TBS.fnumber ֿ,TSE.FAUXPROPID AS װ,(ʣ) +FROM #tmppoorder2 TSE +INNER JOIN T_BD_MATERIAL TM ON (TM.FMATERIALID = TSE. ) +INNER JOIN T_BD_MATERIAL_L TML ON TM.FMATERIALID =TML.FMATERIALID AND TML.FLOCALEID =2052 +INNER + JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = TSE.ֿ AND TSL.FLOCALEID = 2052) +LEFT OUTER JOIN T_BD_FLEXSITEMDETAILV t3 ON TSE.FAUXPROPID=t3.FID +LEFT OUTER JOIN T_BAS_ASSISTANTDATAENTRY_L t4 ON t3.FF100002=t4.FENTRYID +LEFT OUTER JOIN T_BD_AUXPTYVALUEENTITY t5 ON t3.FF100002=t5.FAUXPTYID AND t3.FID =t5.FAUXPTYVALUEID + +--SELECT * FROM #tmpSal2 TSE +WHERE ʣ<>0 AND + NOT EXISTS(SELECT * FROM #Stock_Status_temp t2 WHERE TSE.=t2. AND TSE.ֿ=t2.ֿ AND t2.װ=TSE.FAUXPROPID) + + + + + +--************************************************ + +-- +--************************************************* +--ѯֹ֮ǰ +SELECT (MO.FBILLNO) ,ME.FPRODUCTTYPE, +(MO.FID) ,(ME.FENTRYID) ¼,MA.FCONVEYDATE,ME.FMATERIALID , +ISNULL(ME.FSTOCKID,0) ֿ,ME.FAUXPROPID,MO.FDATE,ME.FSEQ,(ME.FQTY) , +--MQ.FBASENOSTOCKINQTY δ +(CASE WHEN (MQ.FBASENOSTOCKINQTY)>0 THEN (MQ.FBASENOSTOCKINQTY) ELSE 0 END) AS δ,MQ.FBASERESTKQTY ˿ + +INTO #tmpMO +FROM T_PRD_MO MO +INNER JOIN T_PRD_MOENTRY ME ON MO.FID =ME.FID +LEFT JOIN T_PRD_MOENTRY_A MA ON MA.FID =ME.FID AND ME.FENTRYID =MA.FENTRYID +LEFT JOIN T_PRD_MOENTRY_Q MQ ON MQ.FID =ME.FID AND ME.FENTRYID =MQ.FENTRYID +WHERE 1=1 AND MO.FCANCELSTATUS='A' AND MO.FDOCUMENTSTATUS='C' AND ME.FPRODUCTTYPE =1 +--AND MO.FBILLNO IN('MO1909090271','MO1905070262') +AND MO.FDATE <=@FEDate AND ISNULL(MA.FCONVEYDATE,'')<>'' +AND (FCLOSEDATE>@FEDate OR ISNULL(FCLOSEDATE,'')='') + + +--ֹ֮ɵⵥ +--SELECT * +UPDATE t1 SET t1.δ=δ+t2.fbaseInqty +FROM #tmpMO t1 +INNER JOIN( + SELECT TSE.FMATERIALID,TSE.FMOBILLNO,TSE.FMOID,TSE.FMOENTRYID,TSE.FMOENTRYSEQ,SUM(TSE.FBASEREALQTY) fbaseInqty + FROM T_PRD_INSTOCK TS INNER JOIN T_PRD_INSTOCKENTRY TSE ON TSE.FID = TS.FID + LEFT OUTER JOIN T_PRD_INSTOCKENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + WHERE 1=1 + AND TS.FDATE > @FEDate AND (TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) + AND TM.FFORBIDSTATUS = 'A' AND TS.FCANCELSTATUS = 'A' + --AND TS.FBILLNO='MM1909090128' + GROUP BY TSE.FMOBILLNO,TSE.FMOID,TSE.FMOENTRYID,TSE.FMOENTRYSEQ,TSE.FMATERIALID + --ORDER BY TSE.FMOBILLNO,TSE.FMOID,TSE.FMOENTRYID,TSE.FMOENTRYSEQ,TSE.FMATERIALID +) t2 ON t1.=t2.FMOID AND t1.¼=t2.FMOENTRYID AND t1.=t2.FMATERIALID + +--ֹ֮ɵ˿ⵥ +--SELECT * +UPDATE t1 SET t1.δ=δ-t2.fbaseOutqty +FROM #tmpMO t1 +INNER JOIN( + SELECT TSE.FMATERIALID fmaterialid,TSE.FMOBILLNO,TSE.FMOID,TSE.FMOENTRYID,TSE.FMOENTRYSEQ,SUM(TSE.FBASEREALQTY) fbaseOutqty + FROM T_PRD_RESTOCK TS INNER JOIN T_PRD_RESTOCKENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_PRD_RESTOCKENTRY_A TSEA ON TSE.FEntryID = TSEA.FEntryID + LEFT OUTER JOIN T_PRD_RESTOCKENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + WHERE 1=1 + AND TS.FDATE > @FEDate + AND (TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A' + AND TS.FCANCELSTATUS = 'A' AND TS.FEntrustRetStockId = 0 + GROUP BY TSE.FMOBILLNO,TSE.FMOID,TSE.FMOENTRYID,TSE.FMOENTRYSEQ,TSE.FMATERIALID +) t2 ON t1.=t2.FMOID AND t1.¼=t2.FMOENTRYID AND t1.=t2.FMATERIALID + + +--º + +SELECT ,,δ,FAUXPROPID,CASE WHEN B.ֿ<>0 THEN B.ֿ ELSE ISNULL(tms.FSTOCKID,0) END ֿ +INTO #tmpMO1 FROM #tmpMO B +LEFT JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +LEFT JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.ֿ AND TSL.FLOCALEID = 2052) +--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +ORDER BY + + + +SELECT ,,δ,FAUXPROPID,ֿ +INTO #tmpMO3 FROM #tmpMO1 B +LEFT JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +WHERE -- (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + +ORDER BY + + + +SELECT ,SUM(),SUM(δ)δ,FAUXPROPID,ֿ +INTO #tmpMO2 FROM #tmpMO3 +GROUP BY ֿ,,FAUXPROPID +ORDER BY ֿ,,FAUXPROPID + +-- +UPDATE t1 SET t1.=t2.δ +FROM #Stock_Status_temp t1 +INNER JOIN #tmpMO2 t2 ON t1.=t2. AND t1.ֿ=t2.ֿ AND t1.װ=T2.FAUXPROPID + +--ݾ + +INSERT INTO #Stock_Status_temp (,ϴ,,ͺ,ɱ,װʽ,ֿ,ֿ,ֿ,װ,) + +SELECT TM.fmaterialid AS ,(TM.fnumber) ϴ,(TML.FNAME) AS ,(TML.FSPECIFICATION) AS ͺ,ISNULL(TM.FOLDNUMBER,'') AS ɱ, +ISNULL(t5.FAUXPTYNUMBER,'') װʽ,TBS.FSTOCKID ֿ,TSL.fname ֿ,TBS.fnumber ֿ,TSE.FAUXPROPID AS װ,(δ) +FROM #tmpMO2 TSE +INNER JOIN T_BD_MATERIAL TM ON (TM.FMATERIALID = TSE. ) +INNER JOIN T_BD_MATERIAL_L TML ON TM.FMATERIALID =TML.FMATERIALID AND TML.FLOCALEID =2052 +INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = TSE.ֿ AND TSL.FLOCALEID = 2052) +LEFT OUTER JOIN T_BD_FLEXSITEMDETAILV t3 ON TSE.FAUXPROPID=t3.FID +LEFT OUTER JOIN T_BAS_ASSISTANTDATAENTRY_L t4 ON t3.FF100002=t4.FENTRYID +LEFT OUTER JOIN T_BD_AUXPTYVALUEENTITY t5 ON t3.FF100002=t5.FAUXPTYID AND t3.FID =t5.FAUXPTYVALUEID + +--SELECT * FROM #tmpSal2 TSE +WHERE NOT EXISTS(SELECT * FROM #Stock_Status_temp t2 WHERE TSE.=t2. AND TSE.ֿ=t2.ֿ AND t2.װ=TSE.FAUXPROPID) + +--***************END********************************** + + +-- +--******************start******************************* + +----ѯֹ֮ǰϵ + +SELECT TS.FSTOCKORGID fstockorgid,TS.FBILLNO ϵ,TS.FID AS ,TSE.FENTRYID Ϸ¼,TSE.FMATERIALID , + ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate,TSE.FSTOCKID ֿ,FBASEUNITQTY , +CASE WHEN (FBASEUNITQTY-(TSES.FINSTOCKBASEQTY + TSES.FRETURNBASEQTY))>0 THEN (FBASEUNITQTY-(TSES.FINSTOCKBASEQTY + TSES.FRETURNBASEQTY)) ELSE 0 END δ, +(FBASEUNITQTY-FINSTOCKBASEQTY +FRETURNBASEQTY) +INTO #TMPRECEIVE +FROM T_PUR_RECEIVE TS +INNER JOIN T_PUR_RECEIVEENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_PUR_RECEIVEENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_PUR_RECEIVEENTRY_S TSES ON (TSE.FID = TSES.FID AND TSE.FENTRYID = TSES.FENTRYID) +INNER JOIN T_PUR_RECEIVEENTRY_R TSER ON (TSE.FID = TSER.FID AND TSE.FENTRYID = TSER.FENTRYID) +INNER JOIN T_PUR_RECEIVEFIN TSF ON TSE.FID = TSF.FID +WHERE 1=1 AND (TS.FDATE <= @FEDate) +--AND ts.FBILLNO='T61908290024-' AND FRETURNBASEQTY<>0 +AND( FEXECUTEDATE>@FEDate OR ISNULL(FEXECUTEDATE,'')='')--ִ +AND (TS.FSTOCKORGID IN (1)) +AND (TSE.FSTOCKID > 0)AND TSE.FSTOCKFLAG = '0' + +-- AND TS.FDOCUMENTSTATUS IN ('C') +------ѯֹ֮ǰⵥ + +--SELECT * +UPDATE t1 SET t1.δ=δ+t2.fbaseInqty +FROM #TMPRECEIVE t1 +INNER JOIN ( + SELECT TSE.FMATERIALID,TSE.FSRCBILLNO,TSEL .FSBILLID,TSEL.FSID,SUM(TSE.FBASEUNITQTY) fbaseinqty + FROM T_STK_INSTOCK TS INNER JOIN T_STK_INSTOCKENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_STK_INSTOCKENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) + INNER JOIN T_STK_INSTOCKENTRY_LK TSEL ON ( TSE.FENTRYID = TSEL.FENTRYID) + INNER JOIN T_STK_INSTOCKFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + WHERE 1=1 AND TS.FDATE >@FEDate + AND (TS.FSTOCKORGID IN (1) ) AND TM.FFORBIDSTATUS = 'A' AND TS.FCANCELSTATUS = 'A' + GROUP BY TSE.FSRCBILLNO,TSEL .FSBILLID,TSEL.FSID,TSE.FMATERIALID + --ORDER BY TSE.FMOBILLNO,TSE.FMOID,TSE.FMOENTRYID,TSE.FMOENTRYSEQ,TSE.FMATERIALID +) t2 ON t1.=t2.FSBILLID AND t1.Ϸ¼=t2.FSID AND t1.=t2.FMATERIALID + +-- +--ѯֹ֮ϵ +--SELECT * +UPDATE t1 SET t1.δ=δ+t2.fbaseInqty +FROM #TMPRECEIVE t1 +INNER JOIN ( + SELECT TSE.FMATERIALID,TSE.FSRCBILLNO,TSEL .FSBILLID,TSEL.FSID,SUM(TSE.FBASEUNITQTY) fbaseinqty + FROM T_PUR_MRB TS INNER JOIN T_PUR_MRBENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_PUR_MRBENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) + INNER JOIN T_PUR_MRBENTRY_LK TSEL ON ( TSE.FENTRYID = TSEL.FENTRYID) + INNER JOIN T_PUR_MRBFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_MATERIALBASE TMB ON TM.FMATERIALID = TMB.FMATERIALID + WHERE 1=1 AND TS.FDATE >@FEDate + AND (TS.FSTOCKORGID IN (1) ) AND TM.FFORBIDSTATUS = 'A' AND TS.FCANCELSTATUS = 'A' + GROUP BY TSE.FSRCBILLNO,TSEL .FSBILLID,TSEL.FSID,TSE.FMATERIALID + +) t2 ON t1.=t2.FSBILLID AND t1.Ϸ¼=t2.FSID AND t1.=t2.FMATERIALID + + + +--º + +SELECT ,,δ,FAUXPROPID,CASE WHEN B.ֿ<>0 THEN B.ֿ ELSE ISNULL(tms.FSTOCKID,0) END ֿ +INTO #TMPRECEIVE1 FROM #TMPRECEIVE B +LEFT JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +LEFT JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.ֿ AND TSL.FLOCALEID = 2052) +--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +ORDER BY + + + + +SELECT ,,δ,FAUXPROPID,ֿ +INTO #TMPRECEIVE3 + FROM #TMPRECEIVE1 B +LEFT JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +WHERE -- (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +ORDER BY + + +SELECT ,SUM(),SUM(δ)δ,FAUXPROPID,ֿ +INTO #TMPRECEIVE2 FROM #TMPRECEIVE3 +GROUP BY ֿ,,FAUXPROPID +ORDER BY ֿ,,FAUXPROPID + + +-- +UPDATE t1 SET t1.=t2.δ +FROM #Stock_Status_temp t1 +INNER JOIN #TMPRECEIVE2 t2 ON t1.=t2. AND t1.ֿ=t2.ֿ AND t1.װ=T2.FAUXPROPID + +--ݾ + +INSERT INTO #Stock_Status_temp (,ϴ,,ͺ,ɱ,װʽ,ֿ,ֿ,ֿ,װ,) + +SELECT TM.fmaterialid AS ,(TM.fnumber) ϴ,(TML.FNAME) AS ,(TML.FSPECIFICATION) AS ͺ,ISNULL(TM.FOLDNUMBER,'') AS ɱ, +ISNULL(t5.FAUXPTYNUMBER,'') װʽ,TBS.FSTOCKID ֿ,TSL.fname ֿ,TBS.fnumber ֿ,TSE.FAUXPROPID AS װ,(δ) +FROM #TMPRECEIVE2 TSE +INNER JOIN T_BD_MATERIAL TM ON (TM.FMATERIALID = TSE. ) +INNER JOIN T_BD_MATERIAL_L TML ON TM.FMATERIALID =TML.FMATERIALID AND TML.FLOCALEID =2052 +INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = TSE.ֿ AND TSL.FLOCALEID = 2052) +LEFT OUTER JOIN T_BD_FLEXSITEMDETAILV t3 ON TSE.FAUXPROPID=t3.FID +LEFT OUTER JOIN T_BAS_ASSISTANTDATAENTRY_L t4 ON t3.FF100002=t4.FENTRYID +LEFT OUTER JOIN T_BD_AUXPTYVALUEENTITY t5 ON t3.FF100002=t5.FAUXPTYID AND t3.FID =t5.FAUXPTYVALUEID + +--SELECT * FROM #tmpSal2 TSE +WHERE δ<>0 AND + NOT EXISTS(SELECT * FROM #Stock_Status_temp t2 WHERE TSE.=t2. AND TSE.ֿ=t2.ֿ AND t2.װ=TSE.FAUXPROPID) + + +--****************END********************************* + +--*********************δ***************************************** + +--δ() +--***********************δ()***************************** +--ѯֹ֮ǰ +SELECT (MO.FBILLNO) ,(MO.FID) ,(ME.FENTRYID) ¼, +PE.FMATERIALID ,(PP.FID) ,PP.FBILLNO ϵ,(PE.FENTRYID) ϵ¼, +ISNULL(PC.FSTOCKID,0) ֿ,PE.FAUXPROPID,(PE.FMUSTQTY) AS Ӧ, +PQ.FSELPICKEDQTY AS ѡ,PQ.FBASENOPICKEDQTY AS δ +INTO #tmpPPBOM + FROM T_PRD_MO MO +INNER JOIN T_PRD_MOENTRY ME ON MO.FID =ME.FID +INNER JOIN T_PRD_MOENTRY_A MA ON MA.FID =ME.FID AND ME.FENTRYID =MA.FENTRYID +INNER JOIN T_PRD_PPBOM PP ON PP.FMOID=MO.FID AND ME.FENTRYID =PP.FMOENTRYID +INNER JOIN T_PRD_PPBOMENTRY PE ON PP.FID =PE.FID +LEFT JOIN T_PRD_PPBOMENTRY_Q PQ ON PP.FID =PQ.FID AND PE.FENTRYID =PQ.FENTRYID +LEFT JOIN T_PRD_PPBOMENTRY_C PC ON PP.FID =PC.FID AND PE.FENTRYID =PC.FENTRYID +WHERE 1=1 AND MO.FCANCELSTATUS='A' AND MO.FDOCUMENTSTATUS='C' AND ME.FPRODUCTTYPE =1 +AND (MO.FDATE <=@FEDate AND ISNULL(MA.FCONVEYDATE,'')<>'') +AND (MA.FFINISHDATE >@FEDate OR ISNULL(MA.FFINISHDATE,'')='')--2020-04-27֮깤Ϊ׼깤 +--AND (MA.FCLOSEDATE>@FEDate OR ISNULL(MA.FCLOSEDATE,'')='')--2020-04-27֮ǰǽ᰸ + +--AND PP.FBILLNO ='PP1910150215' + + --ѯֹ֮еϵ + --SELECT δ,t2.fbaseOutqty,* +UPDATE t1 SET t1.δ=δ+t2.fbaseOutqty +FROM #tmpPPBOM t1 +INNER JOIN ( +SELECT tse.FMOID,tse.FMOBILLNO,tse.FMOENTRYID,tse.FPPBOMENTRYID,tse.FPPBOMBILLNO, +TSE.FMATERIALID,SUM(TSED.FBASESTOCKACTUALQTY) fbaseOutqty +FROM T_PRD_PICKMTRL TS INNER JOIN T_PRD_PICKMTRLDATA TSE ON TSE.FID = TS.FID +INNER JOIN T_PRD_PICKMTRLDATA_A TSED ON TSED.FENTRYID = TSE.FENTRYID +LEFT OUTER JOIN T_PRD_PICKMTRLDATA_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + +WHERE (TS.FDATE> @FEDate) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A') +GROUP BY tse.FMOID,tse.FMOBILLNO,tse.FMOENTRYID,tse.FPPBOMENTRYID,tse.FPPBOMBILLNO,TSE.FMATERIALID +) t2 ON t1.=t2.FMOBILLNO AND t1.¼=t2.FMOENTRYID +AND t1.ϵ=t2.FPPBOMBILLNO AND t1.ϵ¼=t2.FPPBOMENTRYID AND t1.=t2.FMATERIALID + + + +--ºδ +--SELECT * FROM #tmpPPBOM + +SELECT ,Ӧ,δ,FAUXPROPID,CASE WHEN B.ֿ<>0 THEN B.ֿ ELSE ISNULL(tms.FSTOCKID,0) END ֿ +INTO #tmpPPBOM1 FROM #tmpPPBOM B +LEFT JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +LEFT JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.ֿ AND TSL.FLOCALEID = 2052) +--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +ORDER BY + + + +SELECT ,Ӧ,δ,FAUXPROPID,ֿ +INTO #tmpPPBOM3 FROM #tmpPPBOM1 B +LEFT JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +WHERE -- (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +ORDER BY + + + +SELECT ,SUM(Ӧ)Ӧ,SUM(δ)δ,FAUXPROPID,ֿ +INTO #tmpPPBOM2 FROM #tmpPPBOM3 +GROUP BY ֿ,,FAUXPROPID +ORDER BY ֿ,,FAUXPROPID + +--δ() +UPDATE t1 SET t1.δ=t2.δ +FROM #Stock_Status_temp t1 +INNER JOIN #tmpPPBOM2 +t2 ON t1.=t2. AND t1.ֿ=t2.ֿ AND t1.װ=T2.FAUXPROPID + +--ݾ + +INSERT INTO #Stock_Status_temp (,ϴ,,ͺ,ɱ,װʽ,ֿ,ֿ,ֿ,װ,δ) + +SELECT TM.fmaterialid AS ,(TM.fnumber) ϴ,(TML.FNAME) AS ,(TML.FSPECIFICATION) AS ͺ,ISNULL(TM.FOLDNUMBER,'') AS ɱ, +ISNULL(t5.FAUXPTYNUMBER,'') װʽ,TBS.FSTOCKID ֿ,TSL.fname ֿ,TBS.fnumber ֿ,TSE.FAUXPROPID AS װ,(δ) +FROM #tmpPPBOM2 TSE +INNER JOIN T_BD_MATERIAL TM ON (TM.FMASTERID = TSE. ) +INNER JOIN T_BD_MATERIAL_L TML ON TM.FMATERIALID =TML.FMATERIALID AND TML.FLOCALEID =2052 +INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID= TSE.ֿ AND TSL.FLOCALEID = 2052) +LEFT OUTER JOIN T_BD_FLEXSITEMDETAILV t3 ON TSE.FAUXPROPID=t3.FID +LEFT OUTER JOIN T_BAS_ASSISTANTDATAENTRY_L t4 ON t3.FF100002=t4.FENTRYID +LEFT OUTER JOIN T_BD_AUXPTYVALUEENTITY t5 ON t3.FF100002=t5.FAUXPTYID AND t3.FID =t5.FAUXPTYVALUEID + +--SELECT * FROM #tmpSal2 TSE +WHERE δ>0 AND + NOT EXISTS(SELECT * FROM #Stock_Status_temp t2 WHERE TSE.=t2. AND TSE.ֿ=t2.ֿ AND t2.װ=TSE.FAUXPROPID) + +--*************************δ()***************************************** + + + +--δ(ί) +--*************************δ(ί)*************************** +--ѯֹ֮ǰίⵥ +SELECT (MO.FBILLNO) ίⵥ,(MO.FID) ί,(ME.FENTRYID) ίⵥ¼, +PE.FMATERIALID ,(PP.FID) ,PP.FBILLNO ϵ,(PE.FENTRYID) ϵ¼, +ISNULL(PC.FSTOCKID,0) ֿ,PE.FAUXPROPID,(PE.FMUSTQTY) AS Ӧ, +PQ.FSELPICKEDQTY AS ѡ,PQ.FBASENOPICKEDQTY AS δ +INTO #tmpSubBOM +FROM T_SUB_REQORDER MO +INNER JOIN T_SUB_REQORDERENTRY ME ON MO.FID =ME.FID +--INNER JOIN T_PRD_MOENTRY_A MA ON MA.FID =ME.FID AND ME.FENTRYID =MA.FENTRYID +INNER JOIN T_SUB_PPBOM PP ON PP.FSUBREQID =MO.FID AND ME.FENTRYID =PP.FSUBREQENTRYID +INNER JOIN T_SUB_PPBOMENTRY PE ON PP.FID =PE.FID +LEFT JOIN T_SUB_PPBOMENTRY_Q PQ ON PP.FID =PQ.FID AND PE.FENTRYID =PQ.FENTRYID +LEFT JOIN T_SUB_PPBOMENTRY_C PC ON PP.FID =PC.FID AND PE.FENTRYID =PC.FENTRYID +WHERE 1=1 AND MO.FCANCELSTATUS='A' AND MO.FDOCUMENTSTATUS='C' AND ME.FPRODUCTTYPE =1 +AND (MO.FDATE <=@FEDate AND ISNULL(ME.FCONVEYDATE,'')<>'') +AND (ME.FCLOSEDATE>@FEDate OR ISNULL(ME.FCLOSEDATE,'')='') + + + + + --ѯֹ֮еϵ + --SELECT δ,t2.fbaseOutqty,* +UPDATE t1 SET t1.δ=δ+t2.fbaseOutqty +FROM #tmpSubBOM t1 +INNER JOIN ( +SELECT tse.FSUBREQID,tse.FSUBREQBILLNO,tse.FSUBREQENTRYID,tse.FPPBOMENTRYID,tse.FPPBOMBILLNO, +TSE.FMATERIALID,SUM(TSE.FBASESTOCKACTUALQTY) fbaseOutqty +FROM T_SUB_PICKMTRL TS INNER JOIN T_SUB_PICKMTRLDATA TSE ON TSE.FID = TS.FID +INNER JOIN T_SUB_PICKMTRLDATA_A TSED ON TSED.FENTRYID = TSE.FENTRYID +LEFT OUTER JOIN T_SUB_PICKMTRLDATA_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + +WHERE (TS.FDATE> @FEDate) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A') +GROUP BY tse.FSUBREQID,tse.FSUBREQBILLNO,tse.FSUBREQENTRYID,tse.FPPBOMENTRYID,tse.FPPBOMBILLNO,TSE.FMATERIALID +) t2 ON t1.ίⵥ=t2.FSUBREQBILLNO AND t1.ίⵥ¼=t2.FSUBREQENTRYID +AND t1.ϵ=t2.FPPBOMBILLNO AND t1.ϵ¼=t2.FPPBOMENTRYID AND t1.=t2.FMATERIALID + + + +--ºδ +--SELECT * FROM #tmpPPBOM + +SELECT ,Ӧ,δ,FAUXPROPID,CASE WHEN B.ֿ<>0 THEN B.ֿ ELSE ISNULL(tms.FSTOCKID,0) END ֿ + INTO #tmpSubBOM1 FROM #tmpSubBOM B +LEFT JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +LEFT JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.ֿ AND TSL.FLOCALEID = 2052) +--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +ORDER BY + + + +SELECT ,Ӧ,δ,FAUXPROPID,ֿ +INTO #tmpSubBOM3 FROM #tmpSubBOM1 B +LEFT JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +WHERE -- (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +ORDER BY + + + +SELECT ,SUM(Ӧ)Ӧ,SUM(δ)δ,FAUXPROPID,ֿ +INTO #tmpSubBOM2 FROM #tmpSubBOM3 +GROUP BY ֿ,,FAUXPROPID +ORDER BY ֿ,,FAUXPROPID + + +--δ(ί) +UPDATE t1 SET t1.δ=ISNULL(t1.δ,0)+ISNULL(t2.δ,0) +FROM #Stock_Status_temp t1 +INNER JOIN #tmpSubBOM2 +t2 ON t1.=t2. AND t1.ֿ=t2.ֿ AND t1.װ=T2.FAUXPROPID + + +--ݾ + +INSERT INTO #Stock_Status_temp (,ϴ,,ͺ,ɱ,װʽ,ֿ,ֿ,ֿ,װ,δ) + +SELECT TM.fmaterialid AS ,(TM.fnumber) ϴ,(TML.FNAME) AS ,(TML.FSPECIFICATION) AS ͺ,ISNULL(TM.FOLDNUMBER,'') AS ɱ + ,ISNULL(t5.FAUXPTYNUMBER,'') װʽ,TBS.FSTOCKID ֿ,TSL.fname ֿ,TBS.fnumber ֿ,TSE.FAUXPROPID AS װ,(δ) +FROM #tmpSubBOM2 TSE + INNER JOIN T_BD_MATERIAL TM ON (TM.FMASTERID = TSE. ) + INNER JOIN T_BD_MATERIAL_L TML ON TM.FMATERIALID =TML.FMATERIALID AND TML.FLOCALEID =2052 + INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.ֿ ) + LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID= TSE.ֿ AND TSL.FLOCALEID = 2052) + LEFT OUTER JOIN T_BD_FLEXSITEMDETAILV t3 ON TSE.FAUXPROPID=t3.FID + LEFT OUTER JOIN T_BAS_ASSISTANTDATAENTRY_L t4 ON t3.FF100002=t4.FENTRYID + LEFT OUTER JOIN T_BD_AUXPTYVALUEENTITY t5 ON t3.FF100002=t5.FAUXPTYID AND t3.FID =t5.FAUXPTYVALUEID +--SELECT * FROM #tmpSal2 TSE +WHERE δ > 0 + AND NOT EXISTS(SELECT * FROM #Stock_Status_temp t2 WHERE TSE.=t2. AND TSE.ֿ=t2.ֿ AND t2.װ=TSE.FAUXPROPID) + +--*********************δ(ί)*END******************************* + +-- --ֹѯδ +-- UPDATE t1 SET t1.δ=ISNULL(t1.δ,0)+ISNULL(t1.ܶ,0) +--FROM #Stock_Status_temp t1 +--WHERE ISNULL(t1.ܶ,0)<>0 + +--**********************END******************************* + +--깺δת +--*******************strat***************************** + +--ѯֹ֮ǰвɹ + +SELECT TS.FAPPLICATIONORGID fstockorgid,TS.FBILLNO 뵥,TS.FID AS ,TSE.FENTRYID ¼,TSE.FMATERIALID , + ISNULL(TSE.FAUXPROPID,0) FAUXPROPID,TS.FAPPLICATIONDATE fdate,TMS.FSTOCKID ֿ, + FBASEUNITQTY ,TSEF.FREMAINQTY AS δת +INTO #TMPREQ +FROM T_PUR_REQUISITION TS + INNER JOIN T_PUR_REQENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_PUR_REQENTRY_R TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) + INNER JOIN T_PUR_REQENTRY_S TSES ON (TSE.FID = TSES.FID AND TSE.FENTRYID = TSES.FENTRYID) + LEFT JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID=TM.FMATERIALID + LEFT JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +WHERE 1=1 +--AND ts.FBILLNO ='SQ1910100001'AND FORDERBASEQTY<>FBASEUNITQTY AND TS.FCLOSESTATUS<>'B' + AND (TS.FAPPLICATIONDATE <=@FEDate) + AND (TS.FCLOSEDATE>@FEDate or ISNULL(TS.FCLOSEDATE,'')='') + AND (TS.FAPPLICATIONORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) + + --ѯֹ֮вɹ + --SELECT * +UPDATE t1 SET t1.δת=δת+t2.fbaseOrdqty +FROM #TMPREQ t1 +INNER JOIN ( + SELECT t1r.FSRCBILLNO,t1k.FSBILLID,t1k.FSID,t1.FMATERIALID,SUM(t1.FBASEUNITQTY) fbaseOrdqty + FROM T_PUR_POORDER t0 + INNER JOIN T_PUR_POORDERENTRY t1 ON (t0.FID = t1.FID) + INNER JOIN T_PUR_POORDERENTRY_R t1R ON(t1R.FID = t1.FID AND t1.FENTRYID = t1R.FENTRYID) + INNER JOIN T_PUR_POORDERENTRY_LK t1k ON(t1.FENTRYID = t1k.FENTRYID) + INNER JOIN T_BD_MATERIAL TM ON t1.FMATERIALID = TM.FMATERIALID + WHERE t0.FDATE>@FEDate + AND ( t0.FCANCELSTATUS = 'A' AND TM.FFORBIDSTATUS = 'A') + GROUP BY t1r.FSRCBILLNO,t1k.FSBILLID,t1k.FSID,t1.FMATERIALID + +) t2 ON t1.=t2.FSBILLID AND t1.¼=t2.FSID AND t1.=t2.FMATERIALID + + +--º + + +SELECT ,,δת,FAUXPROPID,CASE WHEN B.ֿ<>0 THEN B.ֿ ELSE ISNULL(tms.FSTOCKID,0) END ֿ +INTO #TMPREQ1 FROM #TMPREQ B +LEFT JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +LEFT JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.ֿ AND TSL.FLOCALEID = 2052) +--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +ORDER BY + + +SELECT ,,δת,FAUXPROPID,ֿ +INTO #TMPREQ3 FROM #TMPREQ1 B +LEFT JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +WHERE -- (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +(TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +ORDER BY + + +SELECT ,SUM(),SUM(δת)δת,FAUXPROPID,ֿ +INTO #TMPREQ2 FROM #TMPREQ3 +GROUP BY ֿ,,FAUXPROPID +ORDER BY ֿ,,FAUXPROPID + +--깺δת +UPDATE t1 SET t1.깺δת=t2.δת +FROM #Stock_Status_temp t1 +INNER JOIN #TMPREQ2 t2 ON t1.=t2. AND t1.ֿ=t2.ֿ AND t1.װ=T2.FAUXPROPID + +--ݾ + +INSERT INTO #Stock_Status_temp (,ϴ,,ͺ,ɱ,װʽ,ֿ,ֿ,ֿ,װ,깺δת) + +SELECT TM.fmaterialid AS ,(TM.fnumber) ϴ,(TML.FNAME) AS ,(TML.FSPECIFICATION) AS ͺ,ISNULL(TM.FOLDNUMBER,'') AS ɱ, +ISNULL(t5.FAUXPTYNUMBER,'') װʽ,TBS.FSTOCKID ֿ,TSL.fname ֿ,TBS.fnumber ֿ,TSE.FAUXPROPID AS װ,(δת) +FROM #TMPREQ2 TSE +INNER JOIN T_BD_MATERIAL TM ON (TM.FMASTERID = TSE. ) +INNER JOIN T_BD_MATERIAL_L TML ON TM.FMATERIALID =TML.FMATERIALID AND TML.FLOCALEID =2052 +INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = TSE.ֿ AND TSL.FLOCALEID = 2052) +LEFT OUTER JOIN T_BD_FLEXSITEMDETAILV t3 ON TSE.FAUXPROPID=t3.FID +LEFT OUTER JOIN T_BAS_ASSISTANTDATAENTRY_L t4 ON t3.FF100002=t4.FENTRYID +LEFT OUTER JOIN T_BD_AUXPTYVALUEENTITY t5 ON t3.FF100002=t5.FAUXPTYID AND t3.FID =t5.FAUXPTYVALUEID + +--SELECT * FROM #tmpSal2 TSE +WHERE δת<>0 AND + NOT EXISTS(SELECT * FROM #Stock_Status_temp t2 WHERE TSE.=t2. AND TSE.ֿ=t2.ֿ AND t2.װ=TSE.FAUXPROPID) + + +--***************************************************** + +--ռ + +--******************************************************** + SELECT TSE.FMATERIALID ,(TSE.FBASEQTY)FBASEQTY, + CASE WHEN TSE.FSTOCKID<>0 THEN TSE.FSTOCKID ELSE ISNULL(tms.FSTOCKID,0)END FSTOCKID,TSE.FAUXPROPID + INTO #TMPLINK FROM T_PLN_RESERVELINK TS + INNER JOIN T_PLN_RESERVELINKENTRY TSE ON TS.FID=TSE.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + LEFT JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID + LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = TSE.FSTOCKID ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = TSE.FSTOCKID AND TSL.FLOCALEID = 2052) + WHERE TSE.FBASEQTY<>0 + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +--GROUP BY TSE.FSTOCKID,TSE.FMATERIALID,FAUXPROPID +ORDER BY FSTOCKID,TSE.FMATERIALID,FAUXPROPID + + +SELECT ,SUM(FBASEQTY)FBASEQTY,FAUXPROPID,B.FSTOCKID ֿ +INTO #TMPLINK1 FROM #TMPLINK B +LEFT JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +--LEFT JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.FSTOCKID ) +--LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.FSTOCKID AND TSL.FLOCALEID = 2052) +WHERE -- (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +(TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +GROUP BY b.FSTOCKID,,FAUXPROPID +ORDER BY b.FSTOCKID,,FAUXPROPID + +--ռ +UPDATE t1 SET t1.ռ=t2.FBASEQTY +FROM #Stock_Status_temp t1 + INNER JOIN #TMPLINK1 t2 ON t1.=t2. + AND t1.ֿ=t2.ֿ + AND t1.װ=T2.FAUXPROPID + +--ݾռ + +INSERT INTO #Stock_Status_temp (,ϴ,,ͺ,ɱ,װʽ,ֿ,ֿ,ֿ,װ,ռ) +SELECT + TM.fmaterialid AS ,(TM.fnumber) ϴ,(TML.FNAME) AS + ,(TML.FSPECIFICATION) AS ͺ,ISNULL(TM.FOLDNUMBER,'') AS ɱ + ,ISNULL(t5.FAUXPTYNUMBER,'') װʽ,TBS.FSTOCKID ֿ,TSL.fname ֿ + ,TBS.fnumber ֿ,TSE.FAUXPROPID AS װ,(FBASEQTY) +FROM #TMPLINK1 TSE + INNER JOIN T_BD_MATERIAL TM ON (TM.FMASTERID = TSE. ) + INNER JOIN T_BD_MATERIAL_L TML ON TM.FMATERIALID=TML.FMATERIALID AND TML.FLOCALEID =2052 + INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.ֿ ) + LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = TSE.ֿ AND TSL.FLOCALEID = 2052) + LEFT OUTER JOIN T_BD_FLEXSITEMDETAILV t3 ON TSE.FAUXPROPID=t3.FID + LEFT OUTER JOIN T_BAS_ASSISTANTDATAENTRY_L t4 ON t3.FF100002=t4.FENTRYID + LEFT OUTER JOIN T_BD_AUXPTYVALUEENTITY t5 ON t3.FF100002=t5.FAUXPTYID AND t3.FID =t5.FAUXPTYVALUEID +WHERE FBASEQTY <> 0 + AND NOT EXISTS( + SELECT 1 + FROM #Stock_Status_temp t2 + WHERE TSE.=t2. + AND TSE.ֿ=t2.ֿ + AND t2.װ=TSE.FAUXPROPID) + + +--*********************ռEND*********************************** + + +--ÿ +--******************************************************* + +UPDATE t1 SET t1.ÿ=ISNULL(ĩ,0)+ISNULL(t1.,0)+ISNULL(;,0)-ISNULL(δ,0)-ISNULL(ܶ,0) +FROM #Stock_Status_temp t1 + +--*********************ÿEND********************************** + +--BOM +SELECT =IDENTITY(INT,1,1),,ϴ,,ͺ,ɱ,ڽ + ,ڲɹ,ں,ĩ,;,,,δ,,۳ + ,ֿⲦ,ֿⲦ,깺δת,ܶ,ռ,ÿ + ,ֿ,ֿ,ֿ,װʽ,FProMaterialId,Ʒ + INTO #Stock_Bom +FROM ( + SELECT t1.FMATERIALID ,ϴ,t2.,ͺ,ɱ,ڽ,ڲɹ,ں,ĩ + ,;,,,δ,,۳,ֿⲦ,ֿⲦ,깺δת + ,ܶ,ռ,ÿ,t2.ֿ,ֿ,ֿ,װʽ,t1.FProMaterialId,t1.FOrderNum Ʒ,FOrderNum + ,FSEQ1,FSEQ2,FSEQ3,FSEQ4,FSEQ5,FSEQ6 + FROM #YC_T_MRP t1 + INNER JOIN #Stock_Status_temp t2 ON t1.ϱ=t2.ϴ + UNION ALL + SELECT t1.FMATERIALID ,t1.ϱ ϴ,t2.FNAME ,t2.FSPECIFICATION ͺ + ,ISNULL(TM.FOLDNUMBER,'') ɱ,0 ڽ,0 ڲɹ,0 ں,0 ĩ + ,0 ;,0 ,0 , 0 δ,0 ,0 ۳,0 ֿⲦ + ,0 ֿⲦ,0 깺δת,0 ܶ,0 ռ,0 ÿ,ts.FSTOCKID,ts.FNUMBER AS ֿ + ,tsl.FNAME AS ֿ,''װʽ,t1.FProMaterialId,t1.FOrderNum Ʒ,FOrderNum + ,FSEQ1,FSEQ2,FSEQ3,FSEQ4,FSEQ5,FSEQ6 + FROM #YC_T_MRP t1 + INNER JOIN T_BD_MATERIAL TM ON (TM.FMATERIALID = t1.FMATERIALID ) + INNER JOIN T_BD_MATERIAL_L t2 ON (t2.FMATERIALID = t1.FMATERIALID ) + INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID + INNER JOIN T_BD_STOCK ts ON tms.FSTOCKID=ts.FSTOCKID + LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = TS.FSTOCKID AND TSL.FLOCALEID = 2052) + WHERE 1=1 + AND ϱ NOT IN (SELECT DISTINCT ϴ FROM #Stock_Status_temp t2) + AND TMS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID))t +ORDER BY FOrderNum,FSEQ1,FSEQ2,FSEQ3,FSEQ4,FSEQ5,FSEQ6 + +SELECT + t0.FMATERIALID AS 'ProMateralId' + ,t1e.FMATERIALID + ,t1e_c.FSTOCKID + --,t1.FBILLNO + ,SUM(t1e.FBASENEEDQTY) AS 'FBASENEEDQTY'--λ + ,SUM(t1e_q.FBASEPICKEDQTY) AS 'FBASEPICKEDQTY'--λ + ,SUM(t1e_q.FBASENOPICKEDQTY) AS 'FBASENOPICKEDQTY'--λδ + ,ISNULL(stuff((SELECT DISTINCT ','+ CONVERT(nvarchar(100),tt.FID) FROM #TEMPMO tt WHERE tt.FMATERIALID = t0.FMATERIALID for xml path('')),1,1,''),'') AS 'MOIDS' + ,ISNULL(stuff((SELECT DISTINCT ','+ CONVERT(nvarchar(100),tt.FENTRYID) FROM #TEMPMO tt WHERE tt.FMATERIALID = t0.FMATERIALID for xml path('')),1,1,''),'') AS 'MOENTRYIDS' + ,ISNULL(stuff((SELECT DISTINCT ','+ CONVERT(nvarchar(100),tt.FBILLNO) FROM #TEMPMO tt WHERE tt.FMATERIALID = t0.FMATERIALID for xml path('')),1,1,''),'') AS 'MONOS' + ,ISNULL(stuff((SELECT DISTINCT ','+ CONVERT(nvarchar(100),tt.FSALEORDERNO) FROM #TEMPMO tt WHERE tt.FMATERIALID = t0.FMATERIALID AND tt.FSALEORDERNO !='' for xml path('')),1,1,''),'') AS 'SALENOS' + INTO #TEMPMOQTY +FROM #TEMPMO t0 + INNER JOIN T_PRD_PPBOMENTRY t1e ON t1e.FMOENTRYID = t0.FENTRYID --嵥 + INNER JOIN T_PRD_PPBOMENTRY_Q t1e_q ON t1e_q.FENTRYID = t1e.FENTRYID + INNER JOIN T_PRD_PPBOMENTRY_C t1e_c ON t1e_c.FENTRYID = t1e.FENTRYID +GROUP BY + t0.FMATERIALID,t1e.FMATERIALID,t1e_c.FSTOCKID +SELECT t0.ProMateralId,t0.MONOS,t0.SALENOS,t0.MOIDS,t0.MOENTRYIDS + INTO #TEMPMONO2Pro +FROM #TEMPMOQTY t0 +GROUP BY t0.ProMateralId,t0.MONOS,t0.SALENOS,t0.MOIDS,t0.MOENTRYIDS + +SELECT AS 'FIDENTITYID' + ,ϴ,,ͺ,ɱ + ,ڽ,ڲɹ,ں,ĩ + ,۳,ֿⲦ,ֿⲦ,깺δת + ,;,,,δ,,ܶ,ռ,ÿ + ,ֿ,ֿ,װʽ,Ʒ + ,t1.FBASENEEDQTY + ,t1.FBASENOPICKEDQTY + ,t1.FBASEPICKEDQTY + ,CASE CHARINDEX(',',t2.MONOS) WHEN 0 THEN t2.MONOS ELSE '' END AS 'MONO' + ,CASE CHARINDEX(',',t2.SALENOS) WHEN 0 THEN t2.SALENOS ELSE '' END AS 'SALENO' + ,t2.SALENOS,t2.MOENTRYIDS,t2.MOIDS + --INTO {0} +FROM #Stock_Bom t0 + LEFT JOIN #TEMPMONO2Pro t2 on t2.ProMateralId = t0.FProMaterialId + LEFT JOIN #TEMPMOQTY t1 ON t0. = t1.FMATERIALID AND t0.ֿ = t1.FSTOCKID AND t0.FProMaterialId = t1.ProMateralId + +DROP TABLE #TEMPMO +DROP TABLE #TEMPMOQTY +DROP TABLE #TEMPMONO2Pro +DROP TABLE #Stock_Bom +DROP TABLE #TMP +DROP TABLE #TMP1 +DROP TABLE #TMPLINK +DROP TABLE #TMPLINK1 +DROP TABLE #TMP4 +DROP TABLE #TMP5 +DROP TABLE #TMP6 +DROP TABLE #TMP7 +DROP TABLE #TMP8 +DROP TABLE #tmpSal +DROP TABLE #tmpSal1 +DROP TABLE #tmpSal2 +DROP TABLE #tmpSal3 +DROP TABLE #tmpMO +DROP TABLE #tmpMO1 +DROP TABLE #tmpMO2 +DROP TABLE #tmpMO3 + +DROP TABLE #TMPREQ +DROP TABLE #TMPREQ1 +DROP TABLE #TMPREQ2 +DROP TABLE #TMPREQ3 +DROP TABLE #TMPRECEIVE +DROP TABLE #TMPRECEIVE1 +DROP TABLE #TMPRECEIVE2 +DROP TABLE #TMPRECEIVE3 +DROP TABLE #tmppoorder +DROP TABLE #tmppoorder1 +DROP TABLE #tmppoorder2 +DROP TABLE #tmppoorder3 +DROP TABLE #tmpPPBOM +DROP TABLE #tmpPPBOM1 +DROP TABLE #tmpPPBOM2 +DROP TABLE #tmpPPBOM3 +DROP TABLE #tmpSUBBOM +DROP TABLE #tmpSUBBOM1 +DROP TABLE #tmpSUBBOM2 +DROP TABLE #tmpSUBBOM3 +DROP TABLE #Stock_Status_temp +SET nocount off \ No newline at end of file diff --git a/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/sql/aaaaaa.sql b/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/sql/aaaaaa.sql new file mode 100644 index 0000000..d9129a5 --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/sql/aaaaaa.sql @@ -0,0 +1,3218 @@ +declare + @moBillNo varchar(100) + ,@salesBillNo varchar(100) + ,@ProMateriaNumber varchar(100) + ,@startMaterialId int + ,@endMaterialId int + ,@FSDate varchar (30) + ,@FEDate varchar (30) + ,@FSStock varchar (max) + ,@FName varchar (255) +SET @moBillNo ='' +SET @salesBillNo ='' +SET @moBillNo = 0 +SET @moBillNo = 0 +SET @FSDate = '2024-02-06' +SET @FEDate = '2024-03-06' +--SET @FSNumber = 'TSH182H000208O' +--SET @FENumber = 'TSH182H000208O' +SET @FSStock ='' +SET @FName = '' + +SET nocount ON +declare @FCloseBALDate varchar (30) +declare @FClosedate varchar (30) + +--ѯʼһڵĩ +If NOT Exists( + SELECT FORGID,MAX(FCLOSEDATE) fclosedate + FROM T_STK_CLOSEPROFILE + WHERE 1=1 + --AND FORGID IN (1) + AND FCATEGORY = 'STK' AND (FCLOSEDATE < @FSDate) + GROUP BY FORGID) +BEGIN + SET @FClosedate='2020-01-01' + SET @FCloseBALDate='2020-01-01' + --print @FClosedate +END +ELSE +BEGIN + --SET @FClosedate='2019-07-01' + SELECT @FClosedate= CONVERT(varchar (30),DATEADD(D,1,MAX(FCLOSEDATE)),23) FROM + T_STK_CLOSEPROFILE WHERE (( + 1 =1 + --AND FORGID IN (1) + AND FCATEGORY = 'STK') AND (FCLOSEDATE < @FSDate)) GROUP BY FORGID + SET @FCloseBALDate=CONVERT(varchar (30),DATEADD(D,-1,@FClosedate),23) + --print @FClosedat +END + + --ʱѡȡֿ + +IF EXISTS(SELECT * FROM tempdb..SYSOBJECTS WHERE id=OBJECT_ID('tempdb..#tmpStockID')) +BEGIN + DROP TABLE #tmpStockID + print '' +END +Create Table #tmpStockID ( + FID INT IDENTITY(1,1) + ,FStockID INT +) +DECLARE @Strsql varchar(max) +SET @Strsql= 'INSERT INTO #tmpStockID SELECT DISTINCT FSTOCKID FROM T_BD_STOCK WHERE 1=1 ' +@FSStock +EXEC(@Strsql) + +--״̬ + +if EXISTS(SELECT * FROM tempdb..sysobjects WHERE id=object_id('tempdb..#Stock_Status_temp')) +begin + DROP TABLE #Stock_Status_temp + print '' +END + +Create Table #Stock_Status_temp ( + INT IDENTITY(1,1), + INT, + ϴ varchar(100) null, + varchar(255) null, + ͺ varchar(255) null, + ɱ varchar(100) null, + --λ varchar(30) null, + ڽ DECIMAL (18,2) Null, + ڲɹ DECIMAL (18,2) Null, + ں DECIMAL (18,2) Null, + ĩ DECIMAL (18,2) Null, + ; DECIMAL (18,2) Null, + DECIMAL (18,2) Null, + DECIMAL (18,2) Null, + δ DECIMAL (18,2) Null, + DECIMAL (18,2) Null, + ۳ DECIMAL (18,2) Null, + ֿⲦ DECIMAL (18,2) Null, + ֿⲦ DECIMAL (18,2) Null, + 깺δת DECIMAL (18,2) Null, + ܶ DECIMAL (18,2) Null, + ռ DECIMAL (18,2) Null, + ÿ DECIMAL (18,2) Null, + ֿ INT, + ֿ varchar(100) null, + ֿ varchar(255) null, + װ INT, + װʽ varchar(255) null +) + +if EXISTS(SELECT * FROM tempdb..sysobjects WHERE id=object_id('tempdb..#TMP')) +begin + DROP TABLE #TMP + print '' +END + +CREATE TABLE #TMP ( + FID INT IDENTITY(1,1), + FSTOCKORGID INT NOT NULL DEFAULT 0, + FBILLENTRYID INT NOT NULL DEFAULT 0, + FORDERBY INT NOT NULL DEFAULT 0, + FSTOCKIO CHAR (1) NULL, + FMATERIALID INT NOT NULL DEFAULT 0, + FAUXPROPID INT NOT NULL DEFAULT 0, + FDATE DATETIME NULL, + FSTOCKID INT NOT NULL DEFAULT 0, + FSTOCKLOCID INT NOT NULL DEFAULT 0, + FSTOCKSTATUSID INT NOT NULL DEFAULT 0, + FBILLNAME NVARCHAR (100) NULL, + FBILLID INT NOT NULL DEFAULT 0, + FBILLSEQID INT NULL, + FBILLNO NVARCHAR (100) NULL, + FBASEQCQTY DECIMAL (23,10) NOT NULL DEFAULT 0, + FBASEINQTY DECIMAL (23,10) NOT NULL DEFAULT 0, + FBASEOUTQTY DECIMAL (23,10) NOT NULL DEFAULT 0 +) + +--BOM㼶 + +IF EXISTS(SELECT * FROM TEMPDB..SYSOBJECTS WHERE ID=OBJECT_ID('TEMPDB..#YC_T_MRP')) +BEGIN + DROP TABLE #YC_T_MRP +END + +CREATE TABLE #YC_T_MRP( + FID INT IDENTITY(1,1), + FBOMNumber NVARCHAR(255), + FMATERIALID INT, + ϱ NVARCHAR(255), + NVARCHAR(255), + Ʒ DECIMAL(28,10) DEFAULT (0), + DECIMAL(28,10),--BOM + ĸ DECIMAL(28,10),--BOMĸ + FQty DECIMAL(28,10),-- + FLevle INT, + FERPCLSID INT, + FProMaterialId INT, + FOrderNum NVARCHAR(255), + FBOMID INT, + BOM㼶 NVARCHAR(200) NULL, + FSEQ1 INT, + FSEQ2 INT, + FSEQ3 INT, + FSEQ4 INT, + FSEQ5 INT, + FSEQ6 INT, + FParentNumber NVARCHAR(255) +) + +IF EXISTS(SELECT * FROM TEMPDB..SYSOBJECTS WHERE ID=OBJECT_ID('TEMPDB..#BOMTMP')) +BEGIN + DROP TABLE #BOMTMP +END + +/* ţ۶ţϽɸѡӦ*/ +SELECT + t0.FBILLNO + ,t0.FID + ,t0e.FQTY + ,t0e.FENTRYID + ,t0e.FMATERIALID + ,t0e_a.FREPQUAQTY + --,t0e_a.FREQSRC --1.۶ + ,(CASE WHEN t1e.FSRCBILLNO is null THEN (CASE t0e_a.FREQSRC WHEN 1 THEN t0e.FSALEORDERNO ELSE '' END) ELSE t1e.FSRCBILLNO END) AS 'FSALEORDERNO' + INTO #TEMPMO +FROM + T_PRD_MO t0 + INNER JOIN T_PRD_MOENTRY t0e ON t0.FID = t0E.FID + INNER JOIN T_PRD_MOENTRY_A t0e_a ON t0e_a.FENTRYID = t0e.FENTRYID + LEFT JOIN T_SAL_DELIVERYNOTICEENTRY t1e ON t1e.FENTRYID = t0e.FSRCBILLENTRYID AND t0e.FSRCBILLID = t0e.FSALEORDERID +WHERE 1 = 1 + AND t0.FDOCUMENTSTATUS = 'C' + AND (t0e_a.FSTATUS < 5) + --AND t0e.FMATERIALID = 100258 + AND t0.FBILLNO = 'MO000023' + +/*ȡ״̬BOMʱ*/ +SELECT + ID=IDENTITY(INT,1,1) + ,T0.FID + ,T0.FNUMBER + ,T0.FMATERIALID + ,ROW_NUMBER() OVER(PARTITION BY T0.FMATERIALID ORDER BY t0.FID DESC) AS ROWID + ,t0.FDOCUMENTSTATUS + ,t0.FYIELDRATE + INTO #BOMTmp +FROM T_ENG_BOM T0 + INNER JOIN T_BD_MATERIAL TM ON t0.FMATERIALID=TM.FMATERIALID --ϱ +WHERE (t0.FDOCUMENTSTATUS = 'C') AND (t0.FFORBIDSTATUS='A') + --AND tm.FNUMBER = 'TSH182H000208O' + AND tm.FMATERIALID IN (SELECT DISTINCT FMATERIALID FROM #TEMPMO) +ORDER BY FMATERIALID,FNUMBER + +--/*ʱУͬһϴֻһ°汾BOM*/ +DELETE FROM #BOMTmp WHERE ROWID != 1 + +--ѯһƷϢ +INSERT INTO #YC_T_MRP( + FBOMNumber,FMATERIALID,ϱ,,Ʒ + ,,ĸ,FQty,FLevle,FERPCLSID,FProMaterialId,FOrderNum + ,FBOMID,FSEQ1,FSEQ2,FSEQ3,FSEQ4,FSEQ5,FSEQ6,FParentNumber) +SELECT + t0.FNUMBER,T0.FMATERIALID,t1.FNUMBER 'ϱ',t3.FNAME '',t0.FYIELDRATE 'Ʒ' + ,1 '',1 'ĸ',1 'FQty','0' 'FLevle',T2.FERPCLSID 'FERPCLSID',t1.FMATERIALID,t1.FNUMBER 'ϱ' + ,t0.FID 'FBOMID',0 'FSEQ1',0 'FSEQ2',0 'FSEQ3',0 'FSEQ4',0 'FSEQ5',0 'FSEQ6','' 'FParentNumber' +FROM T_ENG_BOM t0 + INNER JOIN T_BD_MATERIAL t1 ON t0.FMATERIALID=t1.FMATERIALID --ϱ + LEFT OUTER JOIN t_BD_MaterialBase t2 ON t1.FMATERIALID = t2.FMATERIALID --ϱ + LEFT OUTER JOIN T_BD_MATERIAL_L t3 ON (t1.FMATERIALID = t3.FMATERIALID AND t3.FLocaleId = 2052)--ϱ + INNER JOIN #BOMTmp t6 ON t0.FMATERIALID=t6.FMATERIALID AND t0.FNUMBER=t6.FNUMBER +WHERE 1=1 + AND (t0.FDOCUMENTSTATUS = 'C') +ORDER BY T0.FNUMBER + +--ݵһƷѯһƷIJϢ +DECLARE @num INT,@level int,@LoopCount int +SET @num = 1 +SET @level =1 +SET @LoopCount = 0; + +INSERT INTO #YC_T_MRP( + FBOMNumber,FMATERIALID,ϱ,,Ʒ + ,,ĸ,FQty,FLevle,FERPCLSID,FProMaterialId,FOrderNum + ,FBOMID,FSEQ1,FSEQ2,FSEQ3,FSEQ4,FSEQ5,FSEQ6,FParentNumber) +SELECT + t10.FNUMBER,t7.FMATERIALID,t7.FNUMBER 'ϱ',T9.FNAME '',t10.FYIELDRATE 'Ʒ' + ,t6.FNUMERATOR '',t6.FDENOMINATOR 'ĸ',ROUND(t6.FNUMERATOR/t6.FDENOMINATOR,10) 'FQty' + ,@level AS 'FLevle',t8.FERPCLSID 'FERPCLSID',t5.FMATERIALID,T5.FOrderNum + ,0 'FBOMID',T5.FSEQ1 'FSEQ1',t6.FSEQ 'FSEQ2',0 'FSEQ3',0 'FSEQ4',0 'FSEQ5',0 'FSEQ6',t5.ϱ 'FParentNumber' +FROM #YC_T_MRP t5 + LEFT OUTER JOIN T_ENG_BOMCHILD t6 ON t5.FBOMID=t6.FID--BOM¼ + INNER JOIN T_BD_MATERIAL t7 ON t6.FMATERIALID=t7.FMATERIALID --ϱ + LEFT OUTER JOIN t_BD_MaterialBase t8 ON t8.FMATERIALID = t7.FMATERIALID --ϱ + LEFT OUTER JOIN T_BD_MATERIAL_L t9 ON (t6.FMATERIALID = t9.FMATERIALID AND t9.FLocaleId = 2052)--ϱ + LEFT JOIN T_ENG_BOM t10 ON t10.FID=t6.FID--BOM +WHERE (t7.FFORBIDSTATUS = 'A') + AND T5.FLevle = 0 AND T5.FERPCLSID >= 2 + AND t10.FDOCUMENTSTATUS = 'C' + +WHILE (@num > 0 AND @LoopCount < 10) +BEGIN + + SELECT ID=IDENTITY(INT,1,1),T0.FID,T0.FNUMBER,T0.FMATERIALID + INTO #BOMTmp1 FROM #YC_T_MRP t1 + INNER JOIN T_ENG_BOM t0 ON t1.FMATERIALID=t0.FMATERIALID--BOMͷ + WHERE 1=1 AND (t0.FDOCUMENTSTATUS = 'C') AND (t0.FFORBIDSTATUS='A') AND T1.FLevle=@level AND T1.FERPCLSID>=2 + + DELETE FROM #BOMTmp1 WHERE id NOT IN (SELECT max(id) FROM #BOMTmp1 GROUP BY FMATERIALID) + + INSERT INTO #YC_T_MRP(FBOMNumber,FMATERIALID,ϱ,,Ʒ,,ĸ,FQty,FLevle + ,FERPCLSID,FProMaterialId,FOrderNum,FBOMID,FSEQ1,FSEQ2,FSEQ3,FSEQ4,FSEQ5,FSEQ6,FParentNumber) + SELECT t5.FNUMBER,t7.FMATERIALID,t7.FNUMBER 'ϱ',T9.FNAME '',t5.FYIELDRATE 'Ʒ' + ,t6.FNUMERATOR '',t6.FDENOMINATOR 'ĸ',ROUND(t6.FNUMERATOR/t6.FDENOMINATOR,10) 'FQty' + ,@level + 1 AS 'FLevle',t8.FERPCLSID 'FERPCLSID',t1.FMATERIALID,T1.FOrderNum,0 'FBOMID' + ,t1.FSEQ1 'FSEQ1',t1.FSEQ2 'FSEQ2',t6.FSEQ 'FSEQ3',0 'FSEQ4',0 'FSEQ5',0 'FSEQ6',t1.ϱ 'FParentNumber' + FROM #YC_T_MRP t1 + INNER JOIN T_ENG_BOM t5 ON t1.FMATERIALID=t5.FMATERIALID--BOMͷ + LEFT OUTER JOIN T_ENG_BOMCHILD t6 ON t5.FID=t6.FID--BOM¼ + INNER JOIN T_BD_MATERIAL t7 ON t6.FMATERIALID=t7.FMATERIALID --ϱ + LEFT OUTER JOIN t_BD_MaterialBase t8 ON t8.FMATERIALID = t7.FMATERIALID --ϱ + LEFT OUTER JOIN T_BD_MATERIAL_L t9 ON (t6.FMATERIALID = t9.FMATERIALID AND t9.FLocaleId = 2052)--ϱ + INNER JOIN #BOMTmp1 t10 ON t5.FMATERIALID=t10.FMATERIALID AND T5.FNUMBER=T10.FNUMBER + WHERE 1 = 1 AND (t7.FFORBIDSTATUS = 'A') AND T1.FLevle=@level AND T1.FERPCLSID>=2 AND t5.FDOCUMENTSTATUS = 'C' + + SET @num = @@ROWCOUNT + SET @level += 1 + SET @LoopCount += 1 + + DROP TABLE #BOMTmp1 + +END + +UPDATE #YC_T_MRP SET BOM㼶 =REPLICATE('.',FLevle)++ convert(varchar(4),FLevle) + +--ⵥ +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT + TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid, + ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate,TSE.FSTOCKID fstockid, + ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ⵥ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, + TS.FBILLNO fbillno,0 fbaseqcqty,TSE.FBASEREALQTY fbaseinqty,0 fbaseoutqty +FROM T_PRD_INSTOCK TS + INNER JOIN T_PRD_INSTOCKENTRY TSE ON TSE.FID = TS.FID + LEFT OUTER JOIN T_PRD_INSTOCKENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + --((TS.FDATE >= '2019-07-01 00:00:00') AND (TS.FDATE <= '2019-11-12 23:59:59')) + AND ((( 1=1 /*TS.FSTOCKORGID IN (1)*/ AND TS.FDOCUMENTSTATUS IN ('C')) + AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND TS.FENTRUSTINSTOCKID = 0) + +--ʼ + +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ʼ',SUM(TSE.FBASEREALQTY) fbaseqcqty +FROM T_PRD_INSTOCK TS + INNER JOIN T_PRD_INSTOCKENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((/*TS.FSTOCKORGID IN (1) AND*/ TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND TS.FENTRUSTINSTOCKID = 0) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '), + ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + +--ⵥ +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE. +FSTOCKSTATUSID fstockstatusid,'ⵥ' fbillname, +TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty,TSE.FBASEUNITQTY fbaseinqty,0 fbaseoutqty +--t_STK_InStock +FROM T_STK_INSTOCK TS INNER JOIN T_STK_INSTOCKENTRY TSE ON TSE.FID = TS.FID + +INNER JOIN T_STK_INSTOCKENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_STK_INSTOCKFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +--((TS.FDATE >= '2019-07-01 00:00:00') AND (TS.FDATE <= '2019-11-12 23:59:59')) +AND (((/*TS.FSTOCKORGID IN (1) AND*/ TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND TSF.FISGENFORIOS = '0') +--ʼ + +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ʼ',SUM(TSE.FBASEUNITQTY) fbaseqcqty +FROM T_STK_INSTOCK TS INNER JOIN T_STK_INSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_INSTOCKFIN TSF ON TSE.FID = TSF.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (( +((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((/*TS.FSTOCKORGID IN (1) AND*/ TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND TSF.FISGENFORIOS = '0') +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0), +ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE. +FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + + +--ⵥ + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID, +FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FRECEIVEAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FRECEIVESTOCKID fstockid,ISNULL(TSE.FRECEIVESTOCKLOCID,0) fstocklocid,TSE.FRECEIVESTOCKSTATUS fstockstatusid,'ⵥ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty,0 fbaseinqty,TSE.FBASEUNITQTY fbaseoutqty +FROM T_STK_INSTOCK TS INNER JOIN T_STK_INSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_INSTOCKENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_STK_INSTOCKFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +--((TS.FDATE >= '2019-07-01 00:00:00')AND (TS.FDATE <= '2019-11-12 23:59:59')) +AND (TSE.FRECEIVESTOCKID > 0)) AND (TSE.FRECEIVESTOCKSTATUS > 0)) AND (((/*TS.FSTOCKORGID IN (1) AND*/ TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +AND TS.FCANCELSTATUS = 'A')) AND TSF.FISGENFORIOS = '0') + AND TSE.FRECEIVESTOCKFLAG = '1') + +--ʼ + +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio, +TSE.FMATERIALID fmaterialid,ISNULL(TSE.FRECEIVEAUXPROPID,0) fauxpropid, +TSE.FRECEIVESTOCKID fstockid,ISNULL(TSE.FRECEIVESTOCKLOCID,0) fstocklocid, +TSE.FRECEIVESTOCKSTATUS fstockstatusid,'ʼ',(0 - SUM(TSE.FBASEUNITQTY)) fbaseqcqty + +FROM T_STK_INSTOCK TS INNER JOIN T_STK_INSTOCKENTRY TSE ON TSE.FID = TS.FID INNER JOIN T_STK_INSTOCKFIN TSF ON TSE.FID = TSF.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (TSE.FRECEIVESTOCKID > 0)) +AND (TSE.FRECEIVESTOCKSTATUS > 0)) AND (((/*TS.FSTOCKORGID IN (1) AND*/ TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +AND TS.FCANCELSTATUS = 'A')) AND TSF.FISGENFORIOS = '0') AND TSE.FRECEIVESTOCKFLAG = '1') +GROUP BY TS.FSTOCKORGID,TSE.FRECEIVEOWNERTYPEID,TSE.FRECEIVEOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FRECEIVEAUXPROPID,0), +ISNULL(TSE.FRECEIVELOT_TEXT,' '),ISNULL(TSE.FRECEIVEMTONO,' '),TSE.FRECEIVESTOCKID,ISNULL(TSE.FRECEIVESTOCKLOCID,0), +TSE.FRECEIVESTOCKSTATUS,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--ϵ + + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID, +FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) +--ϵ +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid, +ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'ϵ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno, +0 fbaseqcqty,0 fbaseinqty,TSED.FBASESTOCKACTUALQTY fbaseoutqty +FROM T_PRD_PICKMTRL TS INNER JOIN T_PRD_PICKMTRLDATA TSE ON TSE.FID = TS.FID +INNER JOIN T_PRD_PICKMTRLDATA_A TSED ON TSED.FENTRYID = TSE.FENTRYID +LEFT OUTER JOIN T_PRD_PICKMTRLDATA_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((/*TS.FSTOCKORGID IN (1) AND*/ TS.FDOCUMENTSTATUS IN ('C')) AND + TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + +--ʼ + +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid, +ISNULL(TSE.FAUXPROPID,0) fauxpropid,TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid, +TSE.FSTOCKSTATUSID fstockstatusid,'ʼ',SUM(0 - TSED.FBASESTOCKACTUALQTY) fbaseqcqty + +FROM T_PRD_PICKMTRL TS INNER JOIN T_PRD_PICKMTRLDATA TSE ON TSE.FID = TS.FID +INNER JOIN T_PRD_PICKMTRLDATA_A TSED ON TSED.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ( +((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((/*TS.FSTOCKORGID IN (1) AND*/ TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A')AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSED.FOWNERTYPEID,TSED.FOWNERID,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '), + ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSED.FKEEPERTYPEID, + TSED.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0),TS.FDATE + +--۳ⵥ + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'۳ⵥ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno, +0 fbaseqcqty,0 fbaseinqty,TSE.FBASEUNITQTY fbaseoutqty +FROM T_SAL_OUTSTOCK TS INNER JOIN T_SAL_OUTSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_SAL_OUTSTOCKENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_SAL_OUTSTOCKFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_MATERIALBASE TMB ON TSE.FMATERIALID = TMB.FMATERIALID +INNER JOIN T_SAL_OUTSTOCKENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((/*TS.FSTOCKORGID IN (1) AND*/ TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND (TSEF.FRowType = 'Son' OR TSEF.FRowType = 'Standard')) +AND TSF.FISGENFORIOS = '0') AND (TMB.FERPCLSID <> '6')) +--AND TS.FBILLNO='SA1907050103' + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid, + ISNULL(TSE.FAUXPROPID,0) fauxpropid,TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid, + TSE.FSTOCKSTATUSID fstockstatusid, + 'ʼ',SUM(0 - TSE.FBASEUNITQTY) fbaseqcqty + FROM T_SAL_OUTSTOCK TS INNER JOIN T_SAL_OUTSTOCKENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_SAL_OUTSTOCKENTRY_F TSEF ON TSE.FENTRYID = TSEF.FENTRYID + INNER JOIN T_SAL_OUTSTOCKFIN TSF ON TSE.FID = TSF.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_MATERIALBASE TMB ON TSE.FMATERIALID = TMB.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((( + ((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((/*TS.FSTOCKORGID IN (1) AND*/ TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') + AND TS.FCANCELSTATUS = 'A')) AND (TSEF.FRowType = 'Son' OR TSEF.FRowType = 'Standard')) AND TSF.FISGENFORIOS = '0') AND (TMB.FERPCLSID <> '6')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '), + ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE, + TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--ϵ +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ϵ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty,0 fbaseinqty,TSEQ.FBASESTOCKACTUALQTY fbaseoutqty +FROM T_PRD_FEEDMTRL TS +INNER JOIN T_PRD_FEEDMTRLDATA TSE ON TSE.FID = TS.FID +INNER JOIN T_PRD_FEEDMTRLDATA_Q TSEQ ON (TSE.FID = TSEQ.FID AND TSE.FENTRYID = TSEQ.FENTRYID) +LEFT OUTER JOIN T_PRD_FEEDMTRLDATA_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((/*TS.FSTOCKORGID IN (1) AND*/ TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +--AND ts.FBILLNO IN ('M31910140010','M31907010006') + + +--ʼ + +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid, +ISNULL(TSE.FAUXPROPID,0) fauxpropid,TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid, + TSE.FSTOCKSTATUSID fstockstatusid,'ʼ' fbillname,SUM(0 - TSEQ.FBASESTOCKACTUALQTY) fbaseqcqty + FROM T_PRD_FEEDMTRL TS INNER JOIN T_PRD_FEEDMTRLDATA TSE ON TSE.FID = TS.FID + INNER JOIN T_PRD_FEEDMTRLDATA_Q TSEQ ON (TSE.FID = TSEQ.FID AND TSE.FENTRYID = TSEQ.FENTRYID) + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((/*TS.FSTOCKORGID IN (1) AND*/ + TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '), + TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--ϵ +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid, +ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ϵ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty,0 fbaseinqty,(0 - TSEA.FBASESTOCKQTY) fbaseoutqty +FROM T_PRD_RETURNMTRL TS +INNER JOIN T_PRD_RETURNMTRLENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_PRD_RETURNMTRLENTRY_A TSEA ON TSE.FENTRYID = TSEA.FENTRYID +LEFT OUTER JOIN T_PRD_RETURNMTRLENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((/*TS.FSTOCKORGID IN (1) AND*/ TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +AND TS.FCANCELSTATUS = 'A')) +--AND ts.FBILLNO='M21907200004' + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ʼ',SUM(TSEA.FBASESTOCKQTY) fbaseqcqty + FROM T_PRD_RETURNMTRL TS INNER JOIN T_PRD_RETURNMTRLENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_PRD_RETURNMTRLENTRY_A TSEA ON TSE.FENTRYID = TSEA.FENTRYID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((/*TS.FSTOCKORGID IN (1) AND*/ TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0), + ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID, + TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--ϵ +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid, +0 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ϵ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno, +0 fbaseqcqty,(0 - TSE.FBASEUNITQTY) fbaseinqty,0 fbaseoutqty +FROM T_PUR_MRB TS INNER JOIN T_PUR_MRBENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_PUR_MRBENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_PUR_MRBFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_MATERIALBASE TMB ON TM.FMATERIALID = TMB.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((/*TS.FSTOCKORGID IN (1) AND*/ TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND (TSE.FSTOCKID > 0)) +AND TSF.FISGENFORIOS = '0') AND (TSE.FSTOCKFLAG = '1' OR ((TS.FMRTYPE = 'B' AND TMB.FISINVENTORY = '1') AND (TSE.FStockStatusId <> TSE.FReceiveStockStatusId)))) + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid, +ISNULL(TSE.FAUXPROPID,0) fauxpropid,TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ʼ',SUM(0 - TSE.FBASEUNITQTY) fbaseqcqty +FROM T_PUR_MRB TS INNER JOIN T_PUR_MRBENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_PUR_MRBFIN TSF ON TSE.FID = TSF.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_MATERIALBASE TMB ON TM.FMATERIALID = TMB.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((--TS.FSTOCKORGID IN (1) + 1 = 1 + AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND (TSE.FSTOCKID > 0)) + AND TSF.FISGENFORIOS = '0') AND (TSE.FSTOCKFLAG = '1' OR ((TS.FMRTYPE= 'B' AND TMB.FISINVENTORY = '1') + AND (TSE.FStockStatusId <> TSE.FReceiveStockStatusId)))) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0), + ISNULL(TSE.FLOT_TEXT,''),ISNULL(TSE.FMTONO,''),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID, + TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--ϵ ±־ FSTOCKFLAG 0:δ 1:Ѹ + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ϵ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty,TSE.FBASEUNITQTY fbaseinqty,0 fbaseoutqty +FROM T_PUR_RECEIVE TS INNER JOIN T_PUR_RECEIVEENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_PUR_RECEIVEENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_PUR_RECEIVEFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_MATERIALBASE TMB ON TMB.FMaterialId = TSE.FMaterialId + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((/*TS.FSTOCKORGID IN (1) AND*/ TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND TMB.FISINVENTORY = '1') +AND (TSE.FSTOCKID > 0)) AND TSE.FSTOCKFLAG = '1') + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ʼ',SUM(TSE.FBASEUNITQTY) fbaseqcqty + +FROM T_PUR_RECEIVE TS +INNER JOIN T_PUR_RECEIVEENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((/*TS.FSTOCKORGID IN (1) AND */TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +AND TS.FCANCELSTATUS = 'A')) AND (TSE.FSTOCKID > 0)) AND TSE.FSTOCKFLAG = '1') +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0), + ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID, + TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + + +--˻ + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +--˻ +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio, +TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'˻' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty,0 fbaseinqty,(0 - TSE.FBASEUNITQTY) fbaseoutqty +FROM T_SAL_RETURNSTOCK TS INNER JOIN T_SAL_RETURNSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_SAL_RETURNSTOCKENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_SAL_RETURNSTOCKFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_MATERIALBASE TMB ON TSE.FMATERIALID = TMB.FMATERIALID INNER JOIN T_SAL_RETURNSTOCKENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((/*TS.FSTOCKORGID IN (1) AND*/ TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +AND (TSEF.FRowType = 'Son' OR TSEF.FRowType = 'Standard')) AND TSF.FISGENFORIOS = '0') AND (TMB.FERPCLSID <> '6')) + +--AND TS.FBILLNO ='SB1908230003' + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid, +ISNULL(TSE.FAUXPROPID,0) fauxpropid,TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid, + TSE.FSTOCKSTATUSID fstockstatusid,'ʼ',SUM(TSE.FBASEUNITQTY) fbaseqcqty + FROM T_SAL_RETURNSTOCK TS INNER JOIN T_SAL_RETURNSTOCKENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_SAL_RETURNSTOCKENTRY_F TSEF ON TSE.FENTRYID = TSEF.FENTRYID + INNER JOIN T_SAL_RETURNSTOCKFIN TSF ON TSE.FID = TSF.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_MATERIALBASE TMB ON TSE.FMATERIALID = TMB.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE ((((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((/*TS.FSTOCKORGID IN (1) AND*/ TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') + AND TS.FCANCELSTATUS = 'A')) AND (TSEF.FRowType = 'Son' OR TSEF.FRowType = 'Standard')) AND TSF.FISGENFORIOS = '0') AND (TMB.FERPCLSID <> '6')) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0), +ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID, +TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + + + +--ⵥ +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ⵥ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty,TSE.FBASEREALQTY fbaseinqty,0 fbaseoutqty +FROM T_SP_INSTOCK TS INNER JOIN T_SP_INSTOCKENTRY TSE ON TSE.FID = TS.FID +LEFT OUTER JOIN T_SP_INSTOCKENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + +AND (((/*TS.FSTOCKORGID IN (1) AND*/ TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ʼ',SUM(TSE.FBASEREALQTY) fbaseqcqty +FROM T_SP_INSTOCK TS INNER JOIN T_SP_INSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((/*TS.FSTOCKORGID IN (1) AND*/ TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0), +ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID, +TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--ϵ + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ϵ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty,0 fbaseinqty,TSE.FBASEACTUALQTY fbaseoutqty + +FROM T_SP_PICKMTRL TS INNER JOIN T_SP_PICKMTRLDATA TSE ON TSE.FID = TS.FID +LEFT OUTER JOIN T_SP_PICKMTRLDATA_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((/*TS.FSTOCKORGID IN (1) AND*/ TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ʼ',(0 - SUM(TSE.FBASEACTUALQTY)) fbaseqcqty +FROM T_SP_PICKMTRL TS INNER JOIN T_SP_PICKMTRLDATA TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((/*TS.FSTOCKORGID IN (1) AND*/ TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID, +ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + +--ϵ + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid, + 0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ϵ' fbillname,TS.FID fbillid,TSE.FSEQ + fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty,0 fbaseinqty,(0 - TSE.FBASEQTY) fbaseoutqty + +FROM T_SP_RETURNMTRL TS INNER JOIN T_SP_RETURNMTRLENTRY TSE ON TSE.FID = TS.FID +LEFT OUTER JOIN T_SP_RETURNMTRLENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((/*TS.FSTOCKORGID IN (1) AND*/ TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ʼ',SUM(TSE.FBASEQTY) fbaseqcqty +FROM T_SP_RETURNMTRL TS INNER JOIN T_SP_RETURNMTRLENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((/*TS.FSTOCKORGID IN (1) AND */TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0), + TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + +--װж + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,CASE WHEN UPPER(TS.FAFFAIRTYPE) = 'ASSEMBLY' THEN 'I' ELSE 'O' END fstockio, +TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate,TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid, +TSE.FSTOCKSTATUSID fstockstatusid,'װж' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty, +CASE WHEN UPPER(TS.FAFFAIRTYPE) = 'ASSEMBLY' THEN TSE.FBASEQTY ELSE 0 END fbaseinqty,CASE WHEN UPPER(TS.FAFFAIRTYPE) = 'DASSEMBLY' THEN TSE.FBASEQTY ELSE 0 END fbaseoutqty +FROM T_STK_ASSEMBLY TS INNER JOIN T_STK_ASSEMBLYPRODUCT TSE ON TSE.FID = TS.FID +LEFT OUTER JOIN T_STK_ASSEMBLYPRODUCT_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE +(((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((/*TS.FSTOCKORGID IN (1) AND*/ TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ʼ', + SUM(CASE WHEN UPPER(TS.FAFFAIRTYPE) = 'ASSEMBLY' THEN TSE.FBASEQTY ELSE (0 - TSE.FBASEQTY) END) fbaseqcqty + + FROM T_STK_ASSEMBLY TS INNER JOIN T_STK_ASSEMBLYPRODUCT TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((/*TS.FSTOCKORGID IN (1) AND*/ TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID, + TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--װж + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FDETAILID fbillentryid,0 forderby,CASE WHEN UPPER(TS.FAFFAIRTYPE) = 'DASSEMBLY' THEN 'I' ELSE 'O' END fstockio, +TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate,TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid, +TSE.FSTOCKSTATUSID fstockstatusid,'װж' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty, + +CASE WHEN UPPER(TS.FAFFAIRTYPE) = 'ASSEMBLY' THEN 0 ELSE TSE.FBASEQTY END fbaseinqty,CASE WHEN UPPER(TS.FAFFAIRTYPE) = 'DASSEMBLY' THEN 0 ELSE TSE.FBASEQTY END fbaseoutqty +FROM T_STK_ASSEMBLY TS INNER JOIN T_STK_ASSEMBLYPRODUCT TSEH ON TSEH.FID = TS.FID +INNER JOIN T_STK_ASSEMBLYSUBITEM TSE ON TSE.FENTRYID = TSEH.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +LEFT OUTER JOIN T_STK_ASSEMBLYPRODUCT_R TSR ON TSR.FENTRYID = TSE.FENTRYID + +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((/*TS.FSTOCKORGID IN (1) AND*/ TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid, + ISNULL(TSE.FAUXPROPID,0) fauxpropid,TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid, + TSE.FSTOCKSTATUSID fstockstatusid,'ʼ',SUM(CASE WHEN UPPER(TS.FAFFAIRTYPE) = 'DASSEMBLY' THEN TSE.FBASEQTY ELSE (0 - TSE.FBASEQTY) END) fbaseqcqty + FROM T_STK_ASSEMBLY TS INNER JOIN T_STK_ASSEMBLYPRODUCT TSEH ON TSEH.FID = TS.FID + INNER JOIN T_STK_ASSEMBLYSUBITEM TSE ON TSE.FENTRYID = TSEH.FENTRYID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((/*TS.FSTOCKORGID IN (1) AND*/ TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '), + ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID, + TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0),TS.FDATE + + + +--ŵ + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'A' THEN 'O' ELSE 'I' END fstockio, +TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate,TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid, +TSE.FSTOCKSTATUSID fstockstatusid,'ŵ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty, +CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'B' THEN TSE.FBASEQTY ELSE 0 END fbaseinqty,CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'A' THEN TSE.FBASEQTY ELSE 0 END fbaseoutqty +FROM T_STK_LOTADJUST TS INNER JOIN T_STK_LOTADJUSTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +--((TS.FDATE >= '2019-07-01 00:00:00') AND (TS.FDATE <= '2019-11-12 23:59:59')) +AND (((/*TS.FSTOCKORGID IN (1) AND*/ TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, + 'ʼ',SUM(CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'B' THEN TSE.FBASEQTY ELSE (0 - TSE.FBASEQTY) END) fbaseqcqty + +FROM T_STK_LOTADJUST TS INNER JOIN T_STK_LOTADJUSTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((/*TS.FSTOCKORGID IN (1) AND*/ TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '), + ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE, + ISNULL(TSE.FBOMID,0) + + + +--ⵥ + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ⵥ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno, +0 fbaseqcqty,CASE WHEN TS.FSTOCKDIRECT = 'GENERAL' THEN TSE.FBASEQTY ELSE (0 - TSE.FBASEQTY) END fbaseinqty,0 fbaseoutqty + +FROM T_STK_MISCELLANEOUS TS INNER JOIN T_STK_MISCELLANEOUSENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_MISCELLANEOUSENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +--((TS.FDATE >= '2019-07-01 00:00:00') AND (TS.FDATE<= '2019-11-12 23:59:59')) +AND (((/*TS.FSTOCKORGID IN (1) AND*/ TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + --ʼ + +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ʼ', + SUM(CASE WHEN TS.FSTOCKDIRECT = 'GENERAL' THEN TSE.FBASEQTY ELSE (0 - TSE.FBASEQTY) END) fbaseqcqty + FROM T_STK_MISCELLANEOUS TS INNER JOIN T_STK_MISCELLANEOUSENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((/*TS.FSTOCKORGID IN (1) AND*/ TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0), +ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID, +ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + + +--ⵥ + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ⵥ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno, +0 fbaseqcqty,0 fbaseinqty,CASE WHEN TS.FSTOCKDIRECT = 'GENERAL' THEN TSE.FBASEQTY ELSE (0 - TSE.FBASEQTY) END fbaseoutqty +FROM T_STK_MISDELIVERY TS +INNER JOIN T_STK_MISDELIVERYENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_MISDELIVERYENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((/*TS.FSTOCKORGID IN (1) AND*/ TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + --ʼ +INSERT INTO #TMP (FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ʼ', + SUM(CASE WHEN TS.FSTOCKDIRECT = 'GENERAL' THEN (0 - TSE.FBASEQTY) ELSE TSE.FBASEQTY END) fbaseqcqty + FROM T_STK_MISDELIVERY TS INNER JOIN T_STK_MISDELIVERYENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + --AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + AND ((( TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0), + TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--мӹⵥ + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'мӹⵥ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty,FBASEQTY fbaseinqty,0 fbaseoutqty +FROM T_STK_OEMINSTOCK TS +INNER JOIN T_STK_OEMINSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_OEMINSTOCKENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +--((TS.FDATE >= '2019-07-01 00:00:00') AND (TS.FDATE <= '2019-11-12 23:59:59')) +AND (((TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +--AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid, +ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ʼ',SUM(FBASEQTY) fbaseqcqty +FROM T_STK_OEMINSTOCK TS INNER JOIN T_STK_OEMINSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND ((( TS.FDOCUMENTSTATUS IN ('C')) +--AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID, +TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--мӹϵ + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'мӹϵ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty,(0 - FBASEQTY) fbaseinqty,0 fbaseoutqty + +FROM T_STK_OEMINSTOCKRTN TS +INNER JOIN T_STK_OEMINSTOCKRTNENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_OEMINSTOCKRTNENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND FRETURNTYPE = 'StockReMat') +--AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND FRETURNTYPE = 'StockReMat') + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'',(0 - SUM(FBASEQTY)) fbaseqcqty + FROM T_STK_OEMINSTOCKRTN TS INNER JOIN T_STK_OEMINSTOCKRTNENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE ((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND ((( TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + --AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + AND FRETURNTYPE = 'StockReMat') + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID, + ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0), + TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + +--̬ת + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'A' THEN 'O' ELSE 'I' END fstockio,TSE.FMATERIALID fmaterialid, +ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate,TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'̬ת' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty, +CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'B' THEN TSE.FBASEQTY ELSE 0 END fbaseinqty,CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'A' THEN TSE.FBASEQTY ELSE 0 END fbaseoutqty +FROM T_STK_STATUSCONVERT TS +INNER JOIN T_STK_STATUSCONVERTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +--AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +AND (((TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ʼ', +SUM(CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'B' THEN TSE.FBASEQTY ELSE (0 - TSE.FBASEQTY) END) fbaseqcqty +FROM T_STK_STATUSCONVERT TS INNER JOIN T_STK_STATUSCONVERTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +--AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0), +ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID, +TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--״̬ת + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby, +CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'A' THEN 'O' ELSE 'I' END fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'״̬ת' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty, +CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'B' THEN TSE.FBASEQTY ELSE 0 END fbaseinqty, +CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'A' THEN TSE.FBASEQTY ELSE 0 END fbaseoutqty +FROM T_STK_STOCKCONVERT TS INNER JOIN T_STK_STOCKCONVERTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_STOCKCONVERTENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +--AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ʼ', +SUM(CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'B' THEN TSE.FBASEQTY ELSE (0 - TSE.FBASEQTY) END) fbaseqcqty +FROM T_STK_STOCKCONVERT TS INNER JOIN T_STK_STOCKCONVERTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +--AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0), +TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + + +--ӯ + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'ӯ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty,TSE.FBASEGAINQTY fbaseinqty,0 fbaseoutqty +FROM T_STK_STKCOUNTGAIN TS +INNER JOIN T_STK_STKCOUNTGAINENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND ((TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A')) +--AND ((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A')) + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'ʼ',SUM(TSE.FBASEGAINQTY) fbaseqcqty +FROM T_STK_STKCOUNTGAIN TS INNER JOIN T_STK_STKCOUNTGAINENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND ((TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A')) +--AND ((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0), +ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID, +TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + + +--̿ + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'̿' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno, +0 fbaseqcqty,0 fbaseinqty,TSE.FBASELOSSQTY fbaseoutqty +FROM T_STK_STKCOUNTLOSS TS INNER JOIN T_STK_STKCOUNTLOSSENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND ((TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A')) +--AND ((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A')) + + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, + 'ʼ',SUM(0 - TSE.FBASELOSSQTY) fbaseqcqty + FROM T_STK_STKCOUNTLOSS TS INNER JOIN T_STK_STKCOUNTLOSSENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND ((TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A')) + --AND ((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID, + ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--ֱӵ + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 'I' ELSE 'O' END fstockio, +TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate,TSE.FDESTSTOCKID fstockid,ISNULL(TSE.FDESTSTOCKLOCID,0) fstocklocid, +TSE.FDESTSTOCKSTATUSID fstockstatusid,'ֱӵ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty, +CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN TSE.FBASEQTY ELSE 0 END fbaseinqty,CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'RETURN' THEN (0 - TSE.FBASEQTY) ELSE 0 END fbaseoutqty + +FROM T_STK_STKTRANSFERIN TS INNER JOIN T_STK_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_STKTRANSFERINENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FDESTSTOCKID = TBS.FSTOCKID + + +WHERE (((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +--AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) AND TS +.FOBJECTTYPEID = 'STK_TransferDirect') + + + +--ʼ + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid, +ISNULL(TSE.FAUXPROPID,0) fauxpropid,TSE.FDESTSTOCKID fstockid, +ISNULL(TSE.FDESTSTOCKLOCID,0) fstocklocid,TSE.FDESTSTOCKSTATUSID fstockstatusid,'ʼ', +SUM(CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN TSE.FBASEQTY ELSE 0 END - +CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 0 ELSE (0 - TSE.FBASEQTY) END) fbaseqcqty +FROM T_STK_STKTRANSFERIN TS INNER JOIN T_STK_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FDESTSTOCKID = TBS.FSTOCKID +WHERE (((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +--AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +AND (TS.FISGENFORIOS <> '1')) AND TS.FOBJECTTYPEID = 'STK_TransferDirect') +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0), +ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FDESTSTOCKID,ISNULL(TSE.FDESTSTOCKLOCID,0), +TSE.FDESTSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,TSE.FBOMID,TS.FDATE + + + +--ֱӵ + + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID, +FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKOUTORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby, +CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 'O' ELSE 'I' END fstockio, +TSE.FSRCMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSRCSTOCKID fstockid,ISNULL(TSE.FSRCSTOCKLOCID,0) fstocklocid,TSE.FSRCSTOCKSTATUSID fstockstatusid, +'ֱӵ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty, +CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 0 ELSE (0 - TSE.FBASEQTY) END fbaseinqty, +CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN TSE.FBASEQTY ELSE 0 END fbaseoutqty +FROM T_STK_STKTRANSFERIN TS INNER JOIN T_STK_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_STKTRANSFERINENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FSRCMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID +WHERE (((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +--AND (((TS.FSTOCKOUTORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) AND TS.FOBJECTTYPEID = 'STK_TransferDirect') + + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKOUTORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio, +TSE.FSRCMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSRCSTOCKID fstockid,ISNULL(TSE.FSRCSTOCKLOCID,0) fstocklocid,TSE.FSRCSTOCKSTATUSID fstockstatusid,'ʼ', + +SUM(CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 0 ELSE (0 - TSE.FBASEQTY) END - +CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN TSE.FBASEQTY ELSE 0 END) fbaseqcqty + + +FROM T_STK_STKTRANSFERIN TS INNER JOIN T_STK_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FSRCMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID +WHERE (((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +--AND (((TS.FSTOCKOUTORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +AND (TS.FISGENFORIOS <> '1')) AND TS.FOBJECTTYPEID = 'STK_TransferDirect') +GROUP BY TS.FSTOCKOUTORGID,TSE.FOWNERTYPEOUTID,TSE.FOWNEROUTID,TSE.FSRCMATERIALID,ISNULL(TSE.FAUXPROPID,0), +ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSRCSTOCKID,ISNULL(TSE.FSRCSTOCKLOCID,0),TSE.FSRCSTOCKSTATUSID, +TSE.FKEEPERTYPEOUTID,TSE.FKEEPEROUTID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,TSE.FSRCBOMID,TS.FDATE + + +--ֲʽ뵥 + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 'I' ELSE 'O' END fstockio, +TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate,TSE.FDESTSTOCKID fstockid,ISNULL(TSE.FDESTSTOCKLOCID,0) fstocklocid, +TSE.FDESTSTOCKSTATUSID fstockstatusid,'ֲʽ뵥' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno, +0 fbaseqcqty,CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GEN +ERAL' THEN TSE.FBASEQTY ELSE 0 END fbaseinqty, +CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'RETURN' THEN (0 - TSE.FBASEQTY) ELSE 0 END fbaseoutqty + +FROM T_STK_STKTRANSFERIN TS INNER JOIN T_STK_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_STKTRANSFERINENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FDESTSTOCKID = TBS.FSTOCKID +WHERE (((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +--AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) AND TS.FOBJECTTYPEID = 'STK_TRANSFERIN') + + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FDESTSTOCKID fstockid,ISNULL(TSE.FDESTSTOCKLOCID,0) fstocklocid,TSE.FDESTSTOCKSTATUSID fstockstatusid,'ʼ', + SUM(TSE.FBASEQTY) fbaseqcqty + FROM T_STK_STKTRANSFERIN TS INNER JOIN T_STK_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FDESTSTOCKID = TBS.FSTOCKID + WHERE (((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + --AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + AND (TS.FISGENFORIOS <> '1')) AND TS.FOBJECTTYPEID = 'STK_TRANSFERIN') + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FDESTLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FDESTSTOCKID,ISNULL(TSE.FDESTSTOCKLOCID,0),TSE.FDESTSTOCKSTATUSID, + TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,TSE.FBOMID,TS.FDATE + +--ֲʽ뵥 + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKOUTORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FSRCMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSRCSTOCKID fstockid,ISNULL(TSE.FSRCSTOCKLOCID,0) fstocklocid,TSE.FSRCSTOCKSTATUSID fstockstatusid,'ֲʽ뵥' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty,((0 - TSE.FBASEQTY) - TSET.FBASEPATHLOSSQTY) fbaseinqty,0 fbaseoutqty +FROM T_STK_STKTRANSFERIN TS INNER JOIN T_STK_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_STKTRANSFERINENTRY_T TSET ON TSE.FENTRYID = TSET.FENTRYID +INNER JOIN T_STK_STKTRANSFERINENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FSRCMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID +WHERE ((((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) +--AND (((TS.FSTOCKOUTORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) +AND TS.FVESTONWAY = 'A') AND TS.FOBJECTTYPEID = 'STK_TRANSFERIN') + + + + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + SELECT TS.FSTOCKOUTORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FSRCMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSRCSTOCKID fstockid,ISNULL(TSE.FSRCSTOCKLOCID,0) fstocklocid,TSE.FSRCSTOCKSTATUSID fstockstatusid,'',SUM((0 - TSE.FBASEQTY) - TSET.FBASEPATHLOSSQTY) fbaseqcqty + FROM T_STK_STKTRANSFERIN TS INNER JOIN T_STK_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_STK_STKTRANSFERINENTRY_T TSET ON TSE.FENTRYID = TSET.FENTRYID + INNER JOIN T_BD_MATERIAL TM ON TSE.FSRCMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID + WHERE ((((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((1=1 + --AND (((TS.FSTOCKOUTORGID IN (1) + AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) + AND TS.FVESTONWAY = 'A') AND TS.FOBJECTTYPEID = 'STK_TRANSFERIN') + GROUP BY TS.FSTOCKOUTORGID,TSE.FOWNERTYPEOUTID,TSE.FOWNEROUTID,TSE.FSRCMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FSRCMTONO,' '), + TSE.FSRCSTOCKID,ISNULL(TSE.FSRCSTOCKLOCID,0),TSE.FSRCSTOCKSTATUSID,TSE.FKEEPERTYPEOUTID,TSE.FKEEPEROUTID,TSE.FSRCPRODUCEDATE,TSE.FSRCEXPIRYDATE,TSE.FSRCBOMID,TS.FDATE + +--ֲʽ + + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 'O' ELSE 'I' END fstockio, +TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate,TSE.FSRCSTOCKID fstockid,ISNULL(TSE.FSRCSTOCKLOCID,0) fstocklocid, +TSE.FSRCSTOCKSTATUSID fstockstatusid,'ֲʽ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty, +CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'RETURN' THEN (0 - TSE.FBASEQTY) ELSE 0 END fbaseinqty, +CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN TSE.FBASEQTY ELSE 0 END fbaseoutqty + +FROM T_STK_STKTRANSFEROUT TS INNER JOIN T_STK_STKTRANSFEROUTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_STKTRANSFEROUTENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID +WHERE ((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FDOCUMENTSTATUS IN ('C')) +--AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) + + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSRCSTOCKID fstockid,ISNULL(TSE.FSRCSTOCKLOCID,0) fstocklocid,TSE.FSRCSTOCKSTATUSID fstockstatusid, + 'ʼ',SUM(0 - TSE.FBASEQTY) fbaseqcqty + FROM T_STK_STKTRANSFEROUTENTRY TSE INNER JOIN T_STK_STKTRANSFEROUT TS ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON +TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID + WHERE ((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) + --AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '), + ISNULL(TSE.FMTONO,' '),TSE.FSRCSTOCKID,ISNULL(TSE.FSRCSTOCKLOCID,0),TSE.FSRCSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID, + TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,TSE.FBOMID,TS.FDATE + +--ֲʽ + + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSRCSTOCKID fstockid,ISNULL(TSE.FSRCSTOCKLOCID,0) fstocklocid,TSE.FDESTSTOCKSTATUSID fstockstatusid, +'ֲʽ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty,TSE.FBASEQTY fbaseinqty,0 fbaseoutqty +FROM T_STK_STKTRANSFEROUT TS INNER JOIN T_STK_STKTRANSFEROUTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_STKTRANSFEROUTENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID +WHERE (((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) AND TS.FVESTONWAY = 'A') + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSRCSTOCKID fstockid,ISNULL(TSE.FSRCSTOCKLOCID,0) fstocklocid,TSE.FDESTSTOCKSTATUSID fstockstatusid, + 'ʼ',SUM(TSE.FBASEQTY) fbaseqcqty + FROM T_STK_STKTRANSFEROUT TS INNER JOIN T_STK_STKTRANSFEROUTENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID + WHERE (((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + AND (TS.FISGENFORIOS <> '1')) AND TS.FVESTONWAY = 'A') + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSRCSTOCKID,ISNULL(TSE.FSRCSTOCKLOCID,0), + TSE.FDESTSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,TSE.FBOMID,TS.FDATE + + +--ֲʽ + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKINORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FDESTMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate,TSE.FDESTSTOCKID fstockid, +ISNULL(TSE.FDESTSTOCKLOCID,0) fstocklocid,TSE.FDESTSTOCKSTATUSID fstockstatusid, +'ֲʽ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty,TSE.FBASEQTY fbaseinqty,0 fbaseoutqty +FROM T_STK_STKTRANSFEROUT TS INNER JOIN T_STK_STKTRANSFEROUTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_STKTRANSFEROUTENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FDESTMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FDESTSTOCKID = TBS.FSTOCKID + +WHERE (((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKINORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +AND (TS.FISGENFORIOS <> '1')) AND TS.FVESTONWAY = 'B') + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKINORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FDESTMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FDESTSTOCKID fstockid,ISNULL(TSE.FDESTSTOCKLOCID,0) fstocklocid,TSE.FDESTSTOCKSTATUSID fstockstatusid, +'ʼ',SUM(TSE.FBASEQTY) fbaseqcqty +FROM T_STK_STKTRANSFEROUT TS INNER JOIN T_STK_STKTRANSFEROUTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FDESTMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FDESTSTOCKID = TBS.FSTOCKID +WHERE (((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKINORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) AND TS.FVESTONWAY = 'B') +GROUP BY TS.FSTOCKINORGID,TSE.FOWNERTYPEINID,TSE.FOWNERINID,TSE.FDESTMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FDESTLOT_TEXT,' '),ISNULL(TSE.FDESTMTONO,' '),TSE.FDESTSTOCKID, +ISNULL(TSE.FDESTSTOCKLOCID,0),TSE.FDESTSTOCKSTATUSID,TSE.FKEEPERTYPEINID,TSE.FKEEPERINID,TSE.FDESTPRODUCEDATE,TSE.FDESTEXPIRYDATE,ISNULL(TSE.FDESTBOMID,0),TS.FDATE + + + +--Ʋֿ + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 'I' ELSE 'O' END fstockio, +TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate,TSE.FDESTSTOCKID fstockid,ISNULL(TSE.FDESTSTOCKLOCID,0) fstocklocid, +TSE.FDESTSTOCKSTATUSID fstockstatusid,'Ʋֿ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno, + 0 fbaseqcqty,CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN TSE.FBASEQTY ELSE 0 END fbaseinqty, + CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'RETURN' THEN (0 - TSE.FBASEQTY) ELSE 0 END fbaseoutqty +FROM T_REM_STKTRANSFERIN TS INNER JOIN T_REM_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_REM_STKTRANSFERINENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FDESTSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FDESTSTOCKID fstockid,ISNULL(TSE.FDESTSTOCKLOCID,0) fstocklocid,TSE.FDESTSTOCKSTATUSID fstockstatusid,'ʼ', + SUM(CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN TSE.FBASEQTY ELSE 0 END - CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 0 ELSE (0 - TSE.FBASEQTY) END) fbaseqcqty + + FROM T_REM_STKTRANSFERIN TS INNER JOIN T_REM_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FDESTSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FDESTLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '), + TSE.FDESTSTOCKID,ISNULL(TSE.FDESTSTOCKLOCID,0),TSE.FDESTSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,TSE.FBOMID,TS.FDATE + + + + --Ʋֿ + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKOUTORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 'O' ELSE 'I' END fstockio, +TSE.FSRCMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate,TSE.FSRCSTOCKID fstockid,ISNULL(TSE.FSRCSTOCKLOCID,0) fstocklocid, + TSE.FSRCSTOCKSTATUSID fstockstatusid, + 'Ʋֿ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty, + CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 0 ELSE (0 - TSE.FBASEQTY) END fbaseinqty, + CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN TSE.FBASEQTY ELSE 0 END fbaseoutqty + FROM T_REM_STKTRANSFERIN TS + INNER JOIN T_REM_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_REM_STKTRANSFERINENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID + INNER JOIN T_BD_MATERIAL TM ON TSE.FSRCMATERIALID = TM.FMATERIALID + + INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKOUTORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKOUTORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FSRCMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSRCSTOCKID fstockid,ISNULL(TSE.FSRCSTOCKLOCID,0) fstocklocid,TSE.FSRCSTOCKSTATUSID fstockstatusid,'ʼ', + SUM(CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 0 ELSE (0 - TSE.FBASEQTY) END - CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN TSE.FBASEQTY ELSE 0 END) fbaseqcqty + FROM T_REM_STKTRANSFERIN TS INNER JOIN T_REM_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FSRCMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKOUTORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) + AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKOUTORGID,TSE.FOWNERTYPEOUTID,TSE.FOWNEROUTID,TSE.FSRCMATERIALID,ISNULL(TSE.FAUXPROPID,0), +ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSRCSTOCKID,ISNULL(TSE.FSRCSTOCKLOCID,0),TSE.FSRCSTOCKSTATUSID,TSE.FKEEPERTYPEOUTID,TSE.FKEEPEROUTID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,TSE.FSRCBOMID,TS.FDATE + + +--ίⲹϵ + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ίⲹϵ' fbillname,TS.FID fbillid, +TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty,0 fbaseinqty,TSEQ.FBASESTOCKACTUALQTY fbaseoutqty +FROM T_SUB_FEEDMTRL TS INNER JOIN T_SUB_FEEDMTRLENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_SUB_FEEDMTRLENTRY_Q TSEQ ON (TSE.FID = TSEQ.FID AND TSE.FENTRYID = TSEQ.FENTRYID) +LEFT OUTER JOIN T_SUB_FEEDMTRLENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, + +'ʼ',SUM(0 - TSEQ.FBASESTOCKACTUALQTY) fbaseqcqty + FROM T_SUB_FEEDMTRL TS INNER JOIN T_SUB_FEEDMTRLENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_SUB_FEEDMTRLENTRY_Q TSEQ ON (TSE.FID = TSEQ.FID AND TSE.FENTRYID = TSEQ.FENTRYID) + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID, + TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + + +--ίϵ + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ίϵ' fbillname,TS.FID fbillid, +TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty,0 fbaseinqty,TSE.FBASESTOCKACTUALQTY fbaseoutqty +FROM T_SUB_PICKMTRL TS INNER JOIN T_SUB_PICKMTRLDATA TSE ON TSE.FID = TS.FID +INNER JOIN T_SUB_PICKMTRLDATA_A TSEQ ON (TSE.FID = TSEQ.FID AND TSE.FENTRYID = TSEQ.FENTRYID) +LEFT OUTER JOIN T_SUB_PICKMTRLDATA_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'ʼ',SUM(0 - TSE.FBASESTOCKACTUALQTY) fbaseqcqty + FROM T_SUB_PICKMTRL TS INNER JOIN T_SUB_PICKMTRLDATA TSE ON TSE.FID = TS.FID + INNER JOIN T_SUB_PICKMTRLDATA_A TSEQ ON (TSE.FID = TSEQ.FID AND TSE.FENTRYID = TSEQ.FENTRYID) + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) + AND TM.FFORBIDSTATUS = 'A')AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID,TSEQ.FOWNERTYPEID,TSEQ.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '), + TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSEQ.FKEEPERTYPEID,TSEQ.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--ίϵ + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'ίϵ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty, +0 fbaseinqty,(0 - TSE.FBASESTOCKQTY) fbaseoutqty +FROM T_SUB_RETURNMTRL TS INNER JOIN T_SUB_RETURNMTRLENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_SUB_RETURNMTRLENTRY_A TSEA ON TSE.FENTRYID = TSEA.FENTRYID +LEFT OUTER JOIN T_SUB_RETURNMTRLENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ʼ',SUM(TSE.FBASESTOCKQTY) fbaseqcqty +FROM T_SUB_RETURNMTRL TS INNER JOIN T_SUB_RETURNMTRLENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_SUB_RETURNMTRLENTRY_A TSEA ON TSE.FENTRYID = TSEA.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID, +TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSEA.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0), +TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + +--߲Ʒⵥ + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby, + 'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'߲Ʒⵥ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty,TSE.FBASEREALQTY fbaseinqty,0 fbaseoutqty +FROM T_REM_INSTOCK TS INNER JOIN T_REM_INSTOCKENTRY TSE ON TSE.FID = TS.FID +LEFT OUTER JOIN T_REM_INSTOCKENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, + 'ʼ',SUM(TSE.FBASEREALQTY) fbaseqcqty + FROM T_REM_INSTOCK TS INNER JOIN T_REM_INSTOCKENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) + AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0), + TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +---߲Ʒ˿ⵥ + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO, + FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TS.FDATE fdate,TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'߲Ʒ˿ⵥ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno, +0 fbaseqcqty,(0 - TSE.FBASEREALQTY) fbaseinqty,0 fbaseoutqty +FROM T_REM_OUTSTOCK TS INNER JOIN T_REM_OUTSTOCKENTRY TSE ON TSE.FID = TS.FID +LEFT OUTER JOIN T_REM_OUTSTOCKENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'ʼ',SUM(TSE.FBASEREALQTY) fbaseqcqty +FROM T_REM_OUTSTOCK TS INNER JOIN T_REM_OUTSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID, +ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + + +--ϵ + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby, +'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'ϵ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS +.FBILLNO fbillno,0 fbaseqcqty,0 fbaseinqty,TSED.FBASESTOCKACTUALQTY fbaseoutqty + +FROM T_REM_PICKMTRL TS INNER JOIN T_REM_PICKMTRLDATA TSE ON TSE.FID = TS.FID +INNER JOIN T_REM_PICKMTRLDATA_A TSED ON TSED.FENTRYID = TSE.FENTRYID +LEFT OUTER JOIN T_REM_PICKMTRLDATA_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'ʼ',SUM(0 - TSED.FBASESTOCKACTUALQTY) fbaseqcqty +FROM T_REM_PICKMTRL TS INNER JOIN T_REM_PICKMTRLDATA TSE ON TSE.FID = TS.FID +INNER JOIN T_REM_PICKMTRLDATA_A TSED ON TSED.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) +AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSED.FOWNERTYPEID,TSED.FOWNERID,TSE.FMATERIALID, +ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSED.FKEEPERTYPEID,TSED.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0),TS.FDATE + + +--ϵ +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ϵ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty,0 fbaseinqty,(0 - TSEA.FBASESTOCKQTY) fbaseoutqty + +FROM T_REM_RETURNMTRL TS INNER JOIN T_REM_RETURNMTRLENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_REM_RETURNMTRLENTRY_A TSEA ON TSE.FENTRYID = TSEA.FENTRYID +LEFT OUTER JOIN T_REM_RETURNMTRLENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ʼ',SUM(TSEA.FBASESTOCKQTY) fbaseqcqty +FROM T_REM_RETURNMTRL TS INNER JOIN T_REM_RETURNMTRLENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_REM_RETURNMTRLENTRY_A TSEA ON TSE.FENTRYID = TSEA.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0), +TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + + +--ίⳬĵ +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'ίⳬĵ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty,0 fbaseinqty,TSE.FBASEUNITQTY fbaseoutqty + +FROM T_SUB_EXCONSUME TS INNER JOIN T_SUB_EXCONSUMEENTRY TSE ON TSE.FID = TS.FID +LEFT OUTER JOIN T_SUB_EXCONSUMEENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'ʼ',SUM(0 - TSE.FBASEUNITQTY) fbaseqcqty +FROM T_SUB_EXCONSUME TS INNER JOIN T_SUB_EXCONSUMEENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSE.FOwnerTypeId,TSE.FOwnerId,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '), +ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + +--˿ⵥ + + INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'˿ⵥ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty,(0 - TSE.FBASEREALQTY) fbaseinqty,0 fbaseoutqty +FROM +T_PRD_RESTOCK TS INNER JOIN T_PRD_RESTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_PRD_RESTOCKENTRY_A TSEA ON TSE.FEntryID = TSEA.FEntryID +LEFT OUTER JOIN T_PRD_RESTOCKENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +AND TS.FCANCELSTATUS = 'A')) AND TS.FEntrustRetStockId = 0) + + + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'ʼ',SUM(0 - TSE.FBASEREALQTY) fbaseqcqty +FROM T_PRD_RESTOCK TS INNER JOIN T_PRD_RESTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) +AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS= 'A')) AND TS.FEntrustRetStockId = 0) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '), + TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--˿ⵥ + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, + +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'˿ⵥ' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty,(0 - TSE.FBASEOUTQTY) fbaseinqty,0 fbaseoutqty + +FROM T_SP_OUTSTOCK TS INNER JOIN T_SP_OUTSTOCKENTRY TSE ON TSE.FID = TS.FID +LEFT OUTER JOIN T_SP_OUTSTOCKENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_SP_OUTSTOCKENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'ʼ',SUM(0 - TSE.FBASEOUTQTY) fbaseqcqty + FROM T_SP_OUTSTOCK TS INNER JOIN T_SP_OUTSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID, +TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TSE.FSTOCKORGID fstockorgid,TSE.FBALDATE fdate,-200 forderby, + 'I' fstockio,TM.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TBS.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'',SUM(TSE.FBASEENDQTY) fbaseqcqty +FROM T_STK_INVBAL TSE +INNER JOIN T_BD_MATERIAL TM ON (TM.FMASTERID = TSE.FMATERIALID AND TM.FUSEORGID = TSE.FSTOCKORGID) +INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.FSTOCKID AND TBS.FUSEORGID = TSE.FSTOCKORGID) +LEFT OUTER JOIN T_ENG_BOM TB ON (TB.FMASTERID = TSE.FBOMID AND TB.FUSEORGID = TSE.FSTOCKORGID) +LEFT OUTER JOIN V_ITEMCLASS_OWNER VO ON ((VO.FMASTERID = TSE.FOWNERID AND VO.FFORMID = TSE.FOWNERTYPEID) AND (VO.FUSEORGID = TSE.FSTOCKORGID OR VO.FUSEORGID = 0 +OR EXISTS (SELECT 1 FROM T_META_BASEDATATYPE BT WHERE (BT.FBASEDATATYPEID = VO.FFORMID AND BT.FSTRATEGYTYPE = 1)))) +LEFT OUTER JOIN V_ITEMCLASS_OWNER_L VO_L ON (VO.FITEMID = VO_L.FITEMID AND VO_L.FLOCALEID = 2052) +LEFT OUTER JOIN V_ITEMCLASS_KEEPER VK ON ((VK.FMASTERID = TSE.FKEEPERID AND VK.FFORMID = TSE.FKEEPERTYPEID) AND (VK.FUSEORGID = TSE.FSTOCKORGID OR VK.FUSEORGID = 0 +OR EXISTS (SELECT 1 FROM T_META_BASEDATATYPE BT WHERE (BT.FBASEDATATYPEID = VK.FFORMID AND BT.FSTRATEGYTYPE = 1)))) +LEFT OUTER JOIN V_ITEMCLASS_KEEPER_L VK_L ON (VK.FITEMID = VK_L.FITEMID AND VK_L.FLOCALEID = 2052) +LEFT OUTER JOIN T_BD_LOTMASTER TBLM ON (ISNULL(TSE.FLOT,0) = TBLM.FMASTERID AND TBLM.FUSEORGID IN (1)) + +WHERE ((TSE.FSTOCKORGID IN (1) AND (FBALTYPE IN(0,1) AND (FSTOCKORGID = 1 AND TSE.FBALDATE =@FCloseBALDate ))) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND TM.FFORBIDSTATUS = 'A') + + +GROUP BY TSE.FSTOCKORGID,TSE.FOWNERTYPEID,VO.FITEMID,TSE.FBALDATE,TM.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TBLM.FNUMBER,' '),ISNULL(TSE.FMTONO,' '), +TBS.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,VK.FITEMID,TSE.FLOT,TMS.FISBATCHMANAGE,TMS.FISKFPERIOD, +TMS.FISEXPPARTOFLOT,TBLM.FPRODUCEDATE,TSE.FPRODUCEDATE,TBLM.FEXPIRYDATE,TSE.FEXPIRYDATE,ISNULL(TB.FID,0) + +--ϲг + +SELECT FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID,SUM( FBASEQCQTY)FBASEQCQTY,SUM(FBASEINQTY)FBASEINQTY,SUM(FBASEOUTQTY) FBASEOUTQTY +INTO #tmp1 +FROM #TMP +--WHERE FDATE <='2019-08-30' +GROUP BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID +ORDER BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID + + + +INSERT INTO #Stock_Status_temp (,ϴ,,ͺ,ɱ,װʽ,ֿ,ֿ,ֿ,װ) + +SELECT TM.fmaterialid AS ,(TM.fnumber) ϴ,(TML.FNAME) AS ,(TML.FSPECIFICATION) AS ͺ,ISNULL(TM.FOLDNUMBER,'') AS ɱ, +ISNULL(t5.FAUXPTYNUMBER,'') װʽ,TBS.FSTOCKID ֿ,TSL.fname ֿ,TBS.fnumber ֿ,TSE.FAUXPROPID AS װ +FROM #tmp1 TSE +INNER JOIN T_BD_MATERIAL TM ON (TM.FMATERIALID = TSE.FMATERIALID AND TM.FUSEORGID = TSE.FSTOCKORGID) +INNER JOIN T_BD_MATERIAL_L TML ON TM.FMATERIALID =TML.FMATERIALID AND TML.FLOCALEID =2052 +INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.FSTOCKID AND TBS.FUSEORGID = TSE.FSTOCKORGID) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = TSE.FSTOCKID AND TSL.FLOCALEID = 2052) +LEFT OUTER JOIN T_BD_FLEXSITEMDETAILV t3 ON TSE.FAUXPROPID=t3.FID +LEFT OUTER JOIN T_BAS_ASSISTANTDATAENTRY_L t4 ON t3.FF100002=t4.FENTRYID +LEFT OUTER JOIN T_BD_AUXPTYVALUEENTITY t5 ON t3.FF100002=t5.FAUXPTYID AND t3.FID =t5.FAUXPTYVALUEID + + +--ڽ +--SELECT FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID,SUM( FBASEQCQTY)FBASEQCQTY,SUM(FBASEINQTY)FBASEINQTY,SUM(FBASEOUTQTY) FBASEOUTQTY +--INTO #tmp2 + +--FROM #TMP +----WHERE FDATE <=@FSDate +--GROUP BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID +--ORDER BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID + +--SELECT * +UPDATE t1 SET t1.ڽ=t2.FBASEQCQTY + FROM #Stock_Status_temp t1 +INNER JOIN #tmp1 t2 ON t1.=t2.FMATERIALID AND t1.ֿ=t2.FSTOCKID AND t1.װ=T2.FAUXPROPID + +--ĩ +UPDATE t1 SET t1.ĩ=t2.FBASEQCQTY+t2.FBASEINQTY-t2.FBASEOUTQTY + FROM #Stock_Status_temp t1 +INNER JOIN + #tmp1 t2 ON t1.=t2.FMATERIALID AND t1.ֿ=t2.FSTOCKID AND t1.װ=T2.FAUXPROPID + +--ڲɹ +SELECT FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID,SUM( FBASEQCQTY)FBASEQCQTY,SUM(FBASEINQTY)FBASEINQTY,SUM(FBASEOUTQTY) FBASEOUTQTY +INTO #tmp4 FROM #TMP TS WHERE FORDERBY<>'-200' AND fstockio='I' AND ( FBILLNAME NOT like'%%' AND FBILLNAME<>'̬ת') +AND ((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--TS.FDATE >='2019-08-30'AND TS.FDATE <='2019-11-12' +GROUP BY FSTOCKORGID,FMATERIALID, +FAUXPROPID,FSTOCKID +ORDER BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID +--ڲɹ + +UPDATE t1 SET t1.ڲɹ=t2.FBASEINQTY + FROM #Stock_Status_temp t1 +INNER JOIN #tmp4 t2 ON t1.=t2.FMATERIALID AND t1.ֿ=t2.FSTOCKID AND t1.װ=T2.FAUXPROPID + +--ں +SELECT FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID,SUM( FBASEQCQTY)FBASEQCQTY,SUM(FBASEINQTY)FBASEINQTY,SUM(FBASEOUTQTY) FBASEOUTQTY +INTO #tmp5 FROM #TMP TS WHERE fstockio='O' AND ( FBILLNAME NOT like'%%' AND FBILLNAME<>'̬ת') +AND ((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--TS.FDATE >='2019-08-30'AND TS.FDATE <='2019-11-12' +GROUP BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID +ORDER BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID +--ں + +UPDATE t1 SET t1.ں=t2.FBASEOUTQTY + FROM #Stock_Status_temp t1 +INNER JOIN #tmp5 t2 ON t1.=t2.FMATERIALID AND t1.ֿ=t2.FSTOCKID AND t1.װ=T2.FAUXPROPID + + +--ֿⲦֿⲦ + +SELECT FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID,SUM( FBASEQCQTY)FBASEQCQTY,SUM(FBASEINQTY)FBASEINQTY,SUM(FBASEOUTQTY) FBASEOUTQTY +INTO #tmp6 FROM #TMP TS WHERE FORDERBY<>'-200' AND ( FBILLNAME like'%%' ) +AND ((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--TS.FDATE >='2019-08-30'AND TS.FDATE <='2019-11-12' +GROUP BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID +ORDER BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID + +--ֿⲦ--ֿⲦ + +UPDATE t1 SET t1.ֿⲦ=t2.FBASEINQTY,t1.ֿⲦ=t2.FBASEOUTQTY + FROM #Stock_Status_temp t1 +INNER JOIN #tmp6 t2 ON t1.=t2.FMATERIALID AND t1.ֿ=t2.FSTOCKID AND t1.װ=T2.FAUXPROPID + + +-- +SELECT FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID,SUM( FBASEQCQTY)FBASEQCQTY,SUM(FBASEINQTY)FBASEINQTY,SUM(FBASEOUTQTY) FBASEOUTQTY +INTO #tmp7 FROM #TMP TS WHERE ( FBILLNAME IN('ϵ','ίϵ' )) +AND ((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--TS.FDATE >='2019-08-30'AND TS.FDATE <='2019-11-12' +GROUP BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID +ORDER BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID + +-- +UPDATE t1 SET t1.=t2.FBASEOUTQTY + FROM #Stock_Status_temp t1 +INNER JOIN #tmp7 t2 ON t1.=t2.FMATERIALID AND t1.ֿ=t2.FSTOCKID AND t1.װ=T2.FAUXPROPID + + +--۳ + +SELECT FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID,SUM( FBASEQCQTY)FBASEQCQTY,SUM(FBASEINQTY)FBASEINQTY,SUM(FBASEOUTQTY) FBASEOUTQTY +INTO #tmp8 FROM #TMP TS WHERE ( FBILLNAME ='۳ⵥ' ) +AND ((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--TS.FDATE >='2019-08-30'AND TS.FDATE <='2019-11-12' +GROUP BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID +ORDER BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID + +--۳ +UPDATE t1 SET t1.۳=t2.FBASEOUTQTY + FROM #Stock_Status_temp t1 +INNER JOIN #tmp8 t2 ON t1.=t2.FMATERIALID AND t1.ֿ=t2.FSTOCKID AND t1.װ=T2.FAUXPROPID + +--ܶ +--۶ܶ +--******************************************* + +--ѯ +--(C.FBASEREMAINOUTQTY+C.FBaseReturnQty)ۼ˿+ʣδ +SELECT (A.FBILLNO) AS ۵,(A.FID) ,(B.FENTRYID) ۷¼,(B.FSEQ) , +B.FMATERIALID AS ,B.FBASEUNITQTY ,(C.FBASEREMAINOUTQTY+C.FBaseReturnQty) AS δ,FBaseReturnQty, +ISNULL(B.FSTOCKID,0) ֿ,B.FAUXPROPID,A.FCLOSESTATUS,FCLOSEDATE,A.FDATE,B.FMRPCLOSESTATUS ҵر +INTO #tmpSal +FROM T_SAL_ORDER A +INNER JOIN T_SAL_ORDERENTRY B ON A.FID =B.FID +LEFT JOIN T_SAL_ORDERENTRY_R C ON C.FID=B.FID AND C.FENTRYID =B.FENTRYID +LEFT JOIN T_SAL_ORDERENTRY_E D ON D.FID=B.FID AND D.FENTRYID =B.FENTRYID + +WHERE 1=1 AND A.FCANCELSTATUS='A' AND A.FDOCUMENTSTATUS='C' --AND B.FMRPTERMINATESTATUS='A' +AND (B.FTERMINATEDATE >@FEDate OR ISNULL(B.FTERMINATEDATE,'') ='') +AND (FCLOSEDATE>@FEDate OR ISNULL(FCLOSEDATE,'')='')--رڿʼ֮ǰݲ +AND A.FDATE <=@FEDate --AND A.FBILLNO='SO1909200018' +ORDER BY A.FDATE,A.FID,B.FENTRYID,B.FMATERIALID + + + +--δ +--SELECT * +UPDATE t1 SET t1.δ=δ+t2.fbaseoutqty +FROM #tmpSal t1 +INNER JOIN ( +SELECT TSR.FSOORDERNO,TSR.FSOENTRYID,TSE.FMATERIALID,SUM(TSE.FBASEUNITQTY) fbaseoutqty +FROM T_SAL_OUTSTOCK TS INNER JOIN T_SAL_OUTSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_SAL_OUTSTOCKENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_SAL_OUTSTOCKFIN TSF ON TSE.FID = TSF.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_MATERIALBASE TMB ON TSE.FMATERIALID = TMB.FMATERIALID +INNER JOIN T_SAL_OUTSTOCKENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID + +WHERE TS.FDATE>@FEDate AND +( TS.FCANCELSTATUS = 'A' AND TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +GROUP BY TSR.FSOORDERNO,TSR.FSOENTRYID,TSE.FMATERIALID ) t2 ON t2.FSOORDERNO =t1.۵ AND t2.FSOENTRYID=t1.۷¼ AND t1.=t2.FMATERIALID + +--۳˻ +--˻ +--SELECT * +UPDATE t1 SET t1.δ=δ+t2.fbaseoutqty +FROM #tmpSal t1 +INNER JOIN ( +SELECT TSE.FORDERNO,TSE.FSOENTRYID,TSE.FMATERIALID,SUM((TSE.FBASEUNITQTY)) fbaseoutqty +FROM T_SAL_RETURNSTOCK TS INNER JOIN T_SAL_RETURNSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_SAL_RETURNSTOCKENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_SAL_RETURNSTOCKFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_MATERIALBASE TMB ON TSE.FMATERIALID = TMB.FMATERIALID INNER JOIN T_SAL_RETURNSTOCKENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID + +WHERE TS.FDATE>@FEDate +AND ( TS.FCANCELSTATUS = 'A' AND TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +GROUP BY TSE.FORDERNO,TSE.FSOENTRYID,TSE.FMATERIALID +) t2 ON t2.FORDERNO =t1.۵ AND t2.FSOENTRYID=t1.۷¼ AND t1.=t2.FMATERIALID + + + +SELECT ,,δ,FAUXPROPID,CASE WHEN B.ֿ<>0 THEN B.ֿ ELSE ISNULL(tms.FSTOCKID,0) END ֿ +INTO #tmpSal1 FROM #tmpSal B +LEFT JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +LEFT JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.ֿ ) +--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + +ORDER BY + + +SELECT ,,δ,FAUXPROPID,ֿ +INTO #tmpSal3 FROM #tmpSal1 B +LEFT JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +--LEFT JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +--LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.ֿ ) +WHERE -- (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + +ORDER BY + + + +SELECT ,SUM(),SUM(δ)δ,FAUXPROPID,ֿ +INTO #tmpSal2 FROM #tmpSal3 +GROUP BY ֿ,,FAUXPROPID +ORDER BY ֿ,,FAUXPROPID + +--۶ܶ +UPDATE t1 SET t1.ܶ=t2.δ +FROM #Stock_Status_temp t1 +INNER JOIN #tmpSal2 t2 ON t1.=t2. AND t1.ֿ=t2.ֿ AND t1.װ=T2.FAUXPROPID + + +--ݾ + +INSERT INTO #Stock_Status_temp (,ϴ,,ͺ,ɱ,װʽ,ֿ,ֿ,ֿ,װ,ܶ) + +SELECT TM.fmaterialid AS ,(TM.fnumber) ϴ,(TML.FNAME) AS + ,(TML.FSPECIFICATION) AS ͺ,ISNULL(TM.FOLDNUMBER,'') AS ɱ, +ISNULL(t5.FAUXPTYNUMBER,'') װʽ,TBS.FSTOCKID ֿ,TSL.fname ֿ,TBS.fnumber ֿ,TSE.FAUXPROPID AS װ,(δ) +FROM #tmpSal2 TSE +INNER JOIN T_BD_MATERIAL TM ON (TM.FMATERIALID = TSE. ) + +INNER JOIN T_BD_MATERIAL_L TML ON TM.FMATERIALID =TML.FMATERIALID AND TML.FLOCALEID =2052 +INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = TSE.ֿ AND TSL.FLOCALEID = 2052) +LEFT OUTER JOIN T_BD_FLEXSITEMDETAILV t3 ON TSE.FAUXPROPID=t3.FID +LEFT OUTER JOIN T_BAS_ASSISTANTDATAENTRY_L t4 ON t3.FF100002=t4.FENTRYID +LEFT OUTER JOIN T_BD_AUXPTYVALUEENTITY t5 ON t3.FF100002=t5.FAUXPTYID AND t3.FID =t5.FAUXPTYVALUEID + +--SELECT * FROM #tmpSal2 TSE +WHERE NOT EXISTS(SELECT * FROM #Stock_Status_temp t2 WHERE TSE.=t2. AND TSE.ֿ=t2.ֿ AND t2.װ=TSE.FAUXPROPID) + +--******************************************* + + + +--; +--************************************************ + +--ɹ +SELECT ddd.FPurchaseOrgID fstockorgid,ddd.FBILLNO ɹ,ddd.FID AS ɹ,B.FENTRYID ɹ¼,b.FMATERIALID , +ISNULL(b.FAUXPROPID,0) fauxpropid,ddd.FDATE fdate,TMS.FSTOCKID ֿ,FBASEUNITQTY ɹ, +FREMAINSTOCKINQTY ʣ,FBASESTOCKINQTY ,ddd.FCLOSEDATE +INTO #tmppoorder +FROM t_pur_poorderentry b +INNER JOIN t_pur_poorder ddd ON (ddd.FID = b.FID AND FbusinessType NOT IN ('ZCCG','FYCG')) +INNER JOIN t_pur_poorderentry_r r ON b.fentryid = r.fentryid +INNER JOIN t_pur_poorderentry_d td ON b.fentryid = td.fentryid +INNER JOIN T_BD_MATERIALSTOCK TMS ON b.FMATERIALID = TMS.FMATERIALID +WHERE (ddd.FPurchaseOrgID IN (1) AND (((ddd.FPurchaseOrgID IN (1)) +AND (ddd.FDATE <=@FEDate)) AND ddd.fdocumentStatus = 'C')) +AND (b.FTERMINATEDATE >@FEDate OR ISNULL(b.FTERMINATEDATE,'') ='') +AND (ddd.FCLOSEDATE>@FEDate or ISNULL(ddd.FCLOSEDATE,'')='') + +--ⵥ +--SELECT * + +UPDATE t1 SET t1.ʣ=ʣ+t2.fbaseinqty +FROM #tmppoorder t1 +INNER JOIN ( + SELECT TSE.FMATERIALID,tse.FPOORDERENTRYID,tse.FPOORDERNO,SUM(TSE.FBASEUNITQTY) fbaseinqty + FROM T_STK_INSTOCK TS INNER JOIN T_STK_INSTOCKENTRY TSE ON TSE.FID = TS.FID + + INNER JOIN T_STK_INSTOCKENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) + INNER JOIN T_STK_INSTOCKENTRY_LK TSEL ON ( TSE.FENTRYID = TSEL.FENTRYID) + INNER JOIN T_STK_INSTOCKFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + WHERE 1=1 AND TS.FDATE > @FEDate + AND (TS.FSTOCKORGID IN (1) ) AND TM.FFORBIDSTATUS = 'A' AND TS.FCANCELSTATUS = 'A' AND TS.FDOCUMENTSTATUS IN ('C') + GROUP BY TSE.FPOORDERNO,TSE.FPOORDERENTRYID,TSE.FMATERIALID +)t2 ON t2.FPOORDERNO =t1.ɹ AND t2.FPOORDERENTRYID=t1.ɹ¼ AND t1.=t2.FMATERIALID + + +--ϵ + --SELECT * +UPDATE t1 SET t1.ʣ=ʣ-t2.fbaseinqty +FROM #tmppoorder t1 +INNER JOIN( + SELECT tse.FPOORDERENTRYID,tse.FORDERNO,TSE.FMATERIALID fmaterialid,SUM( TSE.FBASEUNITQTY) fbaseinqty + + FROM T_PUR_MRB TS INNER JOIN T_PUR_MRBENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_PUR_MRBENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) + INNER JOIN T_PUR_MRBFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_MATERIALBASE TMB ON TM.FMATERIALID = TMB.FMATERIALID + WHERE 1=1 AND (TS.FDATE >@FEDate) + AND TS.FDOCUMENTSTATUS IN ('C') AND TM.FFORBIDSTATUS = 'A' AND TS.FCANCELSTATUS = 'A' AND (TSE.FSTOCKID > 0) + AND TSF.FISGENFORIOS = '0'AND (TSE.FSTOCKFLAG = '1' OR (TS.FMRTYPE = 'B' AND TMB.FISINVENTORY = '1') ) + GROUP BY tse.FPOORDERENTRYID,tse.FORDERNO,TSE.FMATERIALID +)t2 ON t2.FORDERNO =t1.ɹ AND t2.FPOORDERENTRYID=t1.ɹ¼ AND t1.=t2.FMATERIALID + + +--º; + +SELECT ,ɹ,ʣ,FAUXPROPID,CASE WHEN B.ֿ<>0 THEN B.ֿ ELSE ISNULL(tms.FSTOCKID,0) END ֿ +INTO #tmppoorder1 FROM #tmppoorder B +LEFT JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +LEFT + JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.ֿ AND TSL.FLOCALEID = 2052) +--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +ORDER BY + + + + +SELECT ,ɹ,ʣ,FAUXPROPID,ֿ +INTO #tmppoorder3 FROM #tmppoorder1 B +LEFT JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +LEFT JOIN T_BD_STOCK TSK + ON ( TSK.FMASTERID = B.ֿ ) +WHERE -- (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + +ORDER BY + + + + +SELECT ,SUM(ɹ)ɹ,SUM(ʣ)ʣ,FAUXPROPID,ֿ +INTO #tmppoorder2 FROM #tmppoorder3 +GROUP BY ֿ,,FAUXPROPID +ORDER BY ֿ,,FAUXPROPID + + +--; +UPDATE t1 SET t1.;=t2.ʣ +FROM #Stock_Status_temp t1 +INNER JOIN #tmppoorder2 t2 ON t1.=t2. AND t1.ֿ=t2.ֿ AND t1.װ=T2.FAUXPROPID + +--ݾ + +INSERT INTO #Stock_Status_temp (,ϴ,,ͺ,ɱ,װʽ,ֿ,ֿ,ֿ,װ,;) + +SELECT TM.fmaterialid AS ,(TM.fnumber) ϴ,(TML.FNAME) AS ,(TML.FSPECIFICATION) AS ͺ,ISNULL(TM.FOLDNUMBER,'') AS ɱ, +ISNULL(t5.FAUXPTYNUMBER,'') װʽ,TBS.FSTOCKID ֿ,TSL.fname ֿ,TBS.fnumber ֿ,TSE.FAUXPROPID AS װ,(ʣ) +FROM #tmppoorder2 TSE +INNER JOIN T_BD_MATERIAL TM ON (TM.FMATERIALID = TSE. ) +INNER JOIN T_BD_MATERIAL_L TML ON TM.FMATERIALID =TML.FMATERIALID AND TML.FLOCALEID =2052 +INNER + JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = TSE.ֿ AND TSL.FLOCALEID = 2052) +LEFT OUTER JOIN T_BD_FLEXSITEMDETAILV t3 ON TSE.FAUXPROPID=t3.FID +LEFT OUTER JOIN T_BAS_ASSISTANTDATAENTRY_L t4 ON t3.FF100002=t4.FENTRYID +LEFT OUTER JOIN T_BD_AUXPTYVALUEENTITY t5 ON t3.FF100002=t5.FAUXPTYID AND t3.FID =t5.FAUXPTYVALUEID + +--SELECT * FROM #tmpSal2 TSE +WHERE ʣ<>0 AND + NOT EXISTS(SELECT * FROM #Stock_Status_temp t2 WHERE TSE.=t2. AND TSE.ֿ=t2.ֿ AND t2.װ=TSE.FAUXPROPID) + + + + + +--************************************************ + +-- +--************************************************* +--ѯֹ֮ǰ +SELECT (MO.FBILLNO) ,ME.FPRODUCTTYPE, +(MO.FID) ,(ME.FENTRYID) ¼,MA.FCONVEYDATE,ME.FMATERIALID , +ISNULL(ME.FSTOCKID,0) ֿ,ME.FAUXPROPID,MO.FDATE,ME.FSEQ,(ME.FQTY) , +--MQ.FBASENOSTOCKINQTY δ +(CASE WHEN (MQ.FBASENOSTOCKINQTY)>0 THEN (MQ.FBASENOSTOCKINQTY) ELSE 0 END) AS δ,MQ.FBASERESTKQTY ˿ + +INTO #tmpMO +FROM T_PRD_MO MO +INNER JOIN T_PRD_MOENTRY ME ON MO.FID =ME.FID +LEFT JOIN T_PRD_MOENTRY_A MA ON MA.FID =ME.FID AND ME.FENTRYID =MA.FENTRYID +LEFT JOIN T_PRD_MOENTRY_Q MQ ON MQ.FID =ME.FID AND ME.FENTRYID =MQ.FENTRYID +WHERE 1=1 AND MO.FCANCELSTATUS='A' AND MO.FDOCUMENTSTATUS='C' AND ME.FPRODUCTTYPE =1 +--AND MO.FBILLNO IN('MO1909090271','MO1905070262') +AND MO.FDATE <=@FEDate AND ISNULL(MA.FCONVEYDATE,'')<>'' +AND (FCLOSEDATE>@FEDate OR ISNULL(FCLOSEDATE,'')='') + + +--ֹ֮ɵⵥ +--SELECT * +UPDATE t1 SET t1.δ=δ+t2.fbaseInqty +FROM #tmpMO t1 +INNER JOIN( + SELECT TSE.FMATERIALID,TSE.FMOBILLNO,TSE.FMOID,TSE.FMOENTRYID,TSE.FMOENTRYSEQ,SUM(TSE.FBASEREALQTY) fbaseInqty + FROM T_PRD_INSTOCK TS INNER JOIN T_PRD_INSTOCKENTRY TSE ON TSE.FID = TS.FID + LEFT OUTER JOIN T_PRD_INSTOCKENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + WHERE 1=1 + AND TS.FDATE > @FEDate AND (TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) + AND TM.FFORBIDSTATUS = 'A' AND TS.FCANCELSTATUS = 'A' + --AND TS.FBILLNO='MM1909090128' + GROUP BY TSE.FMOBILLNO,TSE.FMOID,TSE.FMOENTRYID,TSE.FMOENTRYSEQ,TSE.FMATERIALID + --ORDER BY TSE.FMOBILLNO,TSE.FMOID,TSE.FMOENTRYID,TSE.FMOENTRYSEQ,TSE.FMATERIALID +) t2 ON t1.=t2.FMOID AND t1.¼=t2.FMOENTRYID AND t1.=t2.FMATERIALID + +--ֹ֮ɵ˿ⵥ +--SELECT * +UPDATE t1 SET t1.δ=δ-t2.fbaseOutqty +FROM #tmpMO t1 +INNER JOIN( + SELECT TSE.FMATERIALID fmaterialid,TSE.FMOBILLNO,TSE.FMOID,TSE.FMOENTRYID,TSE.FMOENTRYSEQ,SUM(TSE.FBASEREALQTY) fbaseOutqty + FROM T_PRD_RESTOCK TS INNER JOIN T_PRD_RESTOCKENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_PRD_RESTOCKENTRY_A TSEA ON TSE.FEntryID = TSEA.FEntryID + LEFT OUTER JOIN T_PRD_RESTOCKENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + WHERE 1=1 + AND TS.FDATE > @FEDate + AND (TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A' + AND TS.FCANCELSTATUS = 'A' AND TS.FEntrustRetStockId = 0 + GROUP BY TSE.FMOBILLNO,TSE.FMOID,TSE.FMOENTRYID,TSE.FMOENTRYSEQ,TSE.FMATERIALID +) t2 ON t1.=t2.FMOID AND t1.¼=t2.FMOENTRYID AND t1.=t2.FMATERIALID + + +--º + +SELECT ,,δ,FAUXPROPID,CASE WHEN B.ֿ<>0 THEN B.ֿ ELSE ISNULL(tms.FSTOCKID,0) END ֿ +INTO #tmpMO1 FROM #tmpMO B +LEFT JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +LEFT JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.ֿ AND TSL.FLOCALEID = 2052) +--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +ORDER BY + + + +SELECT ,,δ,FAUXPROPID,ֿ +INTO #tmpMO3 FROM #tmpMO1 B +LEFT JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +WHERE -- (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + +ORDER BY + + + +SELECT ,SUM(),SUM(δ)δ,FAUXPROPID,ֿ +INTO #tmpMO2 FROM #tmpMO3 +GROUP BY ֿ,,FAUXPROPID +ORDER BY ֿ,,FAUXPROPID + +-- +UPDATE t1 SET t1.=t2.δ +FROM #Stock_Status_temp t1 +INNER JOIN #tmpMO2 t2 ON t1.=t2. AND t1.ֿ=t2.ֿ AND t1.װ=T2.FAUXPROPID + +--ݾ + +INSERT INTO #Stock_Status_temp (,ϴ,,ͺ,ɱ,װʽ,ֿ,ֿ,ֿ,װ,) + +SELECT TM.fmaterialid AS ,(TM.fnumber) ϴ,(TML.FNAME) AS ,(TML.FSPECIFICATION) AS ͺ,ISNULL(TM.FOLDNUMBER,'') AS ɱ, +ISNULL(t5.FAUXPTYNUMBER,'') װʽ,TBS.FSTOCKID ֿ,TSL.fname ֿ,TBS.fnumber ֿ,TSE.FAUXPROPID AS װ,(δ) +FROM #tmpMO2 TSE +INNER JOIN T_BD_MATERIAL TM ON (TM.FMATERIALID = TSE. ) +INNER JOIN T_BD_MATERIAL_L TML ON TM.FMATERIALID =TML.FMATERIALID AND TML.FLOCALEID =2052 +INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = TSE.ֿ AND TSL.FLOCALEID = 2052) +LEFT OUTER JOIN T_BD_FLEXSITEMDETAILV t3 ON TSE.FAUXPROPID=t3.FID +LEFT OUTER JOIN T_BAS_ASSISTANTDATAENTRY_L t4 ON t3.FF100002=t4.FENTRYID +LEFT OUTER JOIN T_BD_AUXPTYVALUEENTITY t5 ON t3.FF100002=t5.FAUXPTYID AND t3.FID =t5.FAUXPTYVALUEID + +--SELECT * FROM #tmpSal2 TSE +WHERE NOT EXISTS(SELECT * FROM #Stock_Status_temp t2 WHERE TSE.=t2. AND TSE.ֿ=t2.ֿ AND t2.װ=TSE.FAUXPROPID) + +--***************END********************************** + + +-- +--******************start******************************* + +----ѯֹ֮ǰϵ + +SELECT TS.FSTOCKORGID fstockorgid,TS.FBILLNO ϵ,TS.FID AS ,TSE.FENTRYID Ϸ¼,TSE.FMATERIALID , + ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate,TSE.FSTOCKID ֿ,FBASEUNITQTY , +CASE WHEN (FBASEUNITQTY-(TSES.FINSTOCKBASEQTY + TSES.FRETURNBASEQTY))>0 THEN (FBASEUNITQTY-(TSES.FINSTOCKBASEQTY + TSES.FRETURNBASEQTY)) ELSE 0 END δ, +(FBASEUNITQTY-FINSTOCKBASEQTY +FRETURNBASEQTY) +INTO #TMPRECEIVE +FROM T_PUR_RECEIVE TS +INNER JOIN T_PUR_RECEIVEENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_PUR_RECEIVEENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_PUR_RECEIVEENTRY_S TSES ON (TSE.FID = TSES.FID AND TSE.FENTRYID = TSES.FENTRYID) +INNER JOIN T_PUR_RECEIVEENTRY_R TSER ON (TSE.FID = TSER.FID AND TSE.FENTRYID = TSER.FENTRYID) +INNER JOIN T_PUR_RECEIVEFIN TSF ON TSE.FID = TSF.FID +WHERE 1=1 AND (TS.FDATE <= @FEDate) +--AND ts.FBILLNO='T61908290024-' AND FRETURNBASEQTY<>0 +AND( FEXECUTEDATE>@FEDate OR ISNULL(FEXECUTEDATE,'')='')--ִ +AND (TS.FSTOCKORGID IN (1)) +AND (TSE.FSTOCKID > 0)AND TSE.FSTOCKFLAG = '0' + +-- AND TS.FDOCUMENTSTATUS IN ('C') +------ѯֹ֮ǰⵥ + +--SELECT * +UPDATE t1 SET t1.δ=δ+t2.fbaseInqty +FROM #TMPRECEIVE t1 +INNER JOIN ( + SELECT TSE.FMATERIALID,TSE.FSRCBILLNO,TSEL .FSBILLID,TSEL.FSID,SUM(TSE.FBASEUNITQTY) fbaseinqty + FROM T_STK_INSTOCK TS INNER JOIN T_STK_INSTOCKENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_STK_INSTOCKENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) + INNER JOIN T_STK_INSTOCKENTRY_LK TSEL ON ( TSE.FENTRYID = TSEL.FENTRYID) + INNER JOIN T_STK_INSTOCKFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + WHERE 1=1 AND TS.FDATE >@FEDate + AND (TS.FSTOCKORGID IN (1) ) AND TM.FFORBIDSTATUS = 'A' AND TS.FCANCELSTATUS = 'A' + GROUP BY TSE.FSRCBILLNO,TSEL .FSBILLID,TSEL.FSID,TSE.FMATERIALID + --ORDER BY TSE.FMOBILLNO,TSE.FMOID,TSE.FMOENTRYID,TSE.FMOENTRYSEQ,TSE.FMATERIALID +) t2 ON t1.=t2.FSBILLID AND t1.Ϸ¼=t2.FSID AND t1.=t2.FMATERIALID + +-- +--ѯֹ֮ϵ +--SELECT * +UPDATE t1 SET t1.δ=δ+t2.fbaseInqty +FROM #TMPRECEIVE t1 +INNER JOIN ( + SELECT TSE.FMATERIALID,TSE.FSRCBILLNO,TSEL .FSBILLID,TSEL.FSID,SUM(TSE.FBASEUNITQTY) fbaseinqty + FROM T_PUR_MRB TS INNER JOIN T_PUR_MRBENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_PUR_MRBENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) + INNER JOIN T_PUR_MRBENTRY_LK TSEL ON ( TSE.FENTRYID = TSEL.FENTRYID) + INNER JOIN T_PUR_MRBFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_MATERIALBASE TMB ON TM.FMATERIALID = TMB.FMATERIALID + WHERE 1=1 AND TS.FDATE >@FEDate + AND (TS.FSTOCKORGID IN (1) ) AND TM.FFORBIDSTATUS = 'A' AND TS.FCANCELSTATUS = 'A' + GROUP BY TSE.FSRCBILLNO,TSEL .FSBILLID,TSEL.FSID,TSE.FMATERIALID + +) t2 ON t1.=t2.FSBILLID AND t1.Ϸ¼=t2.FSID AND t1.=t2.FMATERIALID + + + +--º + +SELECT ,,δ,FAUXPROPID,CASE WHEN B.ֿ<>0 THEN B.ֿ ELSE ISNULL(tms.FSTOCKID,0) END ֿ +INTO #TMPRECEIVE1 FROM #TMPRECEIVE B +LEFT JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +LEFT JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.ֿ AND TSL.FLOCALEID = 2052) +--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +ORDER BY + + + + +SELECT ,,δ,FAUXPROPID,ֿ +INTO #TMPRECEIVE3 + FROM #TMPRECEIVE1 B +LEFT JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +WHERE -- (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +ORDER BY + + +SELECT ,SUM(),SUM(δ)δ,FAUXPROPID,ֿ +INTO #TMPRECEIVE2 FROM #TMPRECEIVE3 +GROUP BY ֿ,,FAUXPROPID +ORDER BY ֿ,,FAUXPROPID + + +-- +UPDATE t1 SET t1.=t2.δ +FROM #Stock_Status_temp t1 +INNER JOIN #TMPRECEIVE2 t2 ON t1.=t2. AND t1.ֿ=t2.ֿ AND t1.װ=T2.FAUXPROPID + +--ݾ + +INSERT INTO #Stock_Status_temp (,ϴ,,ͺ,ɱ,װʽ,ֿ,ֿ,ֿ,װ,) + +SELECT TM.fmaterialid AS ,(TM.fnumber) ϴ,(TML.FNAME) AS ,(TML.FSPECIFICATION) AS ͺ,ISNULL(TM.FOLDNUMBER,'') AS ɱ, +ISNULL(t5.FAUXPTYNUMBER,'') װʽ,TBS.FSTOCKID ֿ,TSL.fname ֿ,TBS.fnumber ֿ,TSE.FAUXPROPID AS װ,(δ) +FROM #TMPRECEIVE2 TSE +INNER JOIN T_BD_MATERIAL TM ON (TM.FMATERIALID = TSE. ) +INNER JOIN T_BD_MATERIAL_L TML ON TM.FMATERIALID =TML.FMATERIALID AND TML.FLOCALEID =2052 +INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = TSE.ֿ AND TSL.FLOCALEID = 2052) +LEFT OUTER JOIN T_BD_FLEXSITEMDETAILV t3 ON TSE.FAUXPROPID=t3.FID +LEFT OUTER JOIN T_BAS_ASSISTANTDATAENTRY_L t4 ON t3.FF100002=t4.FENTRYID +LEFT OUTER JOIN T_BD_AUXPTYVALUEENTITY t5 ON t3.FF100002=t5.FAUXPTYID AND t3.FID =t5.FAUXPTYVALUEID + +--SELECT * FROM #tmpSal2 TSE +WHERE δ<>0 AND + NOT EXISTS(SELECT * FROM #Stock_Status_temp t2 WHERE TSE.=t2. AND TSE.ֿ=t2.ֿ AND t2.װ=TSE.FAUXPROPID) + + +--****************END********************************* + +--*********************δ***************************************** + +--δ() +--***********************δ()***************************** +--ѯֹ֮ǰ +SELECT (MO.FBILLNO) ,(MO.FID) ,(ME.FENTRYID) ¼, +PE.FMATERIALID ,(PP.FID) ,PP.FBILLNO ϵ,(PE.FENTRYID) ϵ¼, +ISNULL(PC.FSTOCKID,0) ֿ,PE.FAUXPROPID,(PE.FMUSTQTY) AS Ӧ, +PQ.FSELPICKEDQTY AS ѡ,PQ.FBASENOPICKEDQTY AS δ +INTO #tmpPPBOM + FROM T_PRD_MO MO +INNER JOIN T_PRD_MOENTRY ME ON MO.FID =ME.FID +INNER JOIN T_PRD_MOENTRY_A MA ON MA.FID =ME.FID AND ME.FENTRYID =MA.FENTRYID +INNER JOIN T_PRD_PPBOM PP ON PP.FMOID=MO.FID AND ME.FENTRYID =PP.FMOENTRYID +INNER JOIN T_PRD_PPBOMENTRY PE ON PP.FID =PE.FID +LEFT JOIN T_PRD_PPBOMENTRY_Q PQ ON PP.FID =PQ.FID AND PE.FENTRYID =PQ.FENTRYID +LEFT JOIN T_PRD_PPBOMENTRY_C PC ON PP.FID =PC.FID AND PE.FENTRYID =PC.FENTRYID +WHERE 1=1 AND MO.FCANCELSTATUS='A' AND MO.FDOCUMENTSTATUS='C' AND ME.FPRODUCTTYPE =1 +AND (MO.FDATE <=@FEDate AND ISNULL(MA.FCONVEYDATE,'')<>'') +AND (MA.FFINISHDATE >@FEDate OR ISNULL(MA.FFINISHDATE,'')='')--2020-04-27֮깤Ϊ׼깤 +--AND (MA.FCLOSEDATE>@FEDate OR ISNULL(MA.FCLOSEDATE,'')='')--2020-04-27֮ǰǽ᰸ + +--AND PP.FBILLNO ='PP1910150215' + + --ѯֹ֮еϵ + --SELECT δ,t2.fbaseOutqty,* +UPDATE t1 SET t1.δ=δ+t2.fbaseOutqty +FROM #tmpPPBOM t1 +INNER JOIN ( +SELECT tse.FMOID,tse.FMOBILLNO,tse.FMOENTRYID,tse.FPPBOMENTRYID,tse.FPPBOMBILLNO, +TSE.FMATERIALID,SUM(TSED.FBASESTOCKACTUALQTY) fbaseOutqty +FROM T_PRD_PICKMTRL TS INNER JOIN T_PRD_PICKMTRLDATA TSE ON TSE.FID = TS.FID +INNER JOIN T_PRD_PICKMTRLDATA_A TSED ON TSED.FENTRYID = TSE.FENTRYID +LEFT OUTER JOIN T_PRD_PICKMTRLDATA_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + +WHERE (TS.FDATE> @FEDate) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A') +GROUP BY tse.FMOID,tse.FMOBILLNO,tse.FMOENTRYID,tse.FPPBOMENTRYID,tse.FPPBOMBILLNO,TSE.FMATERIALID +) t2 ON t1.=t2.FMOBILLNO AND t1.¼=t2.FMOENTRYID +AND t1.ϵ=t2.FPPBOMBILLNO AND t1.ϵ¼=t2.FPPBOMENTRYID AND t1.=t2.FMATERIALID + + + +--ºδ +--SELECT * FROM #tmpPPBOM + +SELECT ,Ӧ,δ,FAUXPROPID,CASE WHEN B.ֿ<>0 THEN B.ֿ ELSE ISNULL(tms.FSTOCKID,0) END ֿ +INTO #tmpPPBOM1 FROM #tmpPPBOM B +LEFT JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +LEFT JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.ֿ AND TSL.FLOCALEID = 2052) +--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +ORDER BY + + + +SELECT ,Ӧ,δ,FAUXPROPID,ֿ +INTO #tmpPPBOM3 FROM #tmpPPBOM1 B +LEFT JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +WHERE -- (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +ORDER BY + + + +SELECT ,SUM(Ӧ)Ӧ,SUM(δ)δ,FAUXPROPID,ֿ +INTO #tmpPPBOM2 FROM #tmpPPBOM3 +GROUP BY ֿ,,FAUXPROPID +ORDER BY ֿ,,FAUXPROPID + +--δ() +UPDATE t1 SET t1.δ=t2.δ +FROM #Stock_Status_temp t1 +INNER JOIN #tmpPPBOM2 +t2 ON t1.=t2. AND t1.ֿ=t2.ֿ AND t1.װ=T2.FAUXPROPID + +--ݾ + +INSERT INTO #Stock_Status_temp (,ϴ,,ͺ,ɱ,װʽ,ֿ,ֿ,ֿ,װ,δ) + +SELECT TM.fmaterialid AS ,(TM.fnumber) ϴ,(TML.FNAME) AS ,(TML.FSPECIFICATION) AS ͺ,ISNULL(TM.FOLDNUMBER,'') AS ɱ, +ISNULL(t5.FAUXPTYNUMBER,'') װʽ,TBS.FSTOCKID ֿ,TSL.fname ֿ,TBS.fnumber ֿ,TSE.FAUXPROPID AS װ,(δ) +FROM #tmpPPBOM2 TSE +INNER JOIN T_BD_MATERIAL TM ON (TM.FMASTERID = TSE. ) +INNER JOIN T_BD_MATERIAL_L TML ON TM.FMATERIALID =TML.FMATERIALID AND TML.FLOCALEID =2052 +INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID= TSE.ֿ AND TSL.FLOCALEID = 2052) +LEFT OUTER JOIN T_BD_FLEXSITEMDETAILV t3 ON TSE.FAUXPROPID=t3.FID +LEFT OUTER JOIN T_BAS_ASSISTANTDATAENTRY_L t4 ON t3.FF100002=t4.FENTRYID +LEFT OUTER JOIN T_BD_AUXPTYVALUEENTITY t5 ON t3.FF100002=t5.FAUXPTYID AND t3.FID =t5.FAUXPTYVALUEID + +--SELECT * FROM #tmpSal2 TSE +WHERE δ>0 AND + NOT EXISTS(SELECT * FROM #Stock_Status_temp t2 WHERE TSE.=t2. AND TSE.ֿ=t2.ֿ AND t2.װ=TSE.FAUXPROPID) + +--*************************δ()***************************************** + + + +--δ(ί) +--*************************δ(ί)*************************** +--ѯֹ֮ǰίⵥ +SELECT (MO.FBILLNO) ίⵥ,(MO.FID) ί,(ME.FENTRYID) ίⵥ¼, +PE.FMATERIALID ,(PP.FID) ,PP.FBILLNO ϵ,(PE.FENTRYID) ϵ¼, +ISNULL(PC.FSTOCKID,0) ֿ,PE.FAUXPROPID,(PE.FMUSTQTY) AS Ӧ, +PQ.FSELPICKEDQTY AS ѡ,PQ.FBASENOPICKEDQTY AS δ +INTO #tmpSubBOM +FROM T_SUB_REQORDER MO +INNER JOIN T_SUB_REQORDERENTRY ME ON MO.FID =ME.FID +--INNER JOIN T_PRD_MOENTRY_A MA ON MA.FID =ME.FID AND ME.FENTRYID =MA.FENTRYID +INNER JOIN T_SUB_PPBOM PP ON PP.FSUBREQID =MO.FID AND ME.FENTRYID =PP.FSUBREQENTRYID +INNER JOIN T_SUB_PPBOMENTRY PE ON PP.FID =PE.FID +LEFT JOIN T_SUB_PPBOMENTRY_Q PQ ON PP.FID =PQ.FID AND PE.FENTRYID =PQ.FENTRYID +LEFT JOIN T_SUB_PPBOMENTRY_C PC ON PP.FID =PC.FID AND PE.FENTRYID =PC.FENTRYID +WHERE 1=1 AND MO.FCANCELSTATUS='A' AND MO.FDOCUMENTSTATUS='C' AND ME.FPRODUCTTYPE =1 +AND (MO.FDATE <=@FEDate AND ISNULL(ME.FCONVEYDATE,'')<>'') +AND (ME.FCLOSEDATE>@FEDate OR ISNULL(ME.FCLOSEDATE,'')='') + + + + + --ѯֹ֮еϵ + --SELECT δ,t2.fbaseOutqty,* +UPDATE t1 SET t1.δ=δ+t2.fbaseOutqty +FROM #tmpSubBOM t1 +INNER JOIN ( +SELECT tse.FSUBREQID,tse.FSUBREQBILLNO,tse.FSUBREQENTRYID,tse.FPPBOMENTRYID,tse.FPPBOMBILLNO, +TSE.FMATERIALID,SUM(TSE.FBASESTOCKACTUALQTY) fbaseOutqty +FROM T_SUB_PICKMTRL TS INNER JOIN T_SUB_PICKMTRLDATA TSE ON TSE.FID = TS.FID +INNER JOIN T_SUB_PICKMTRLDATA_A TSED ON TSED.FENTRYID = TSE.FENTRYID +LEFT OUTER JOIN T_SUB_PICKMTRLDATA_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + +WHERE (TS.FDATE> @FEDate) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A') +GROUP BY tse.FSUBREQID,tse.FSUBREQBILLNO,tse.FSUBREQENTRYID,tse.FPPBOMENTRYID,tse.FPPBOMBILLNO,TSE.FMATERIALID +) t2 ON t1.ίⵥ=t2.FSUBREQBILLNO AND t1.ίⵥ¼=t2.FSUBREQENTRYID +AND t1.ϵ=t2.FPPBOMBILLNO AND t1.ϵ¼=t2.FPPBOMENTRYID AND t1.=t2.FMATERIALID + + + +--ºδ +--SELECT * FROM #tmpPPBOM + +SELECT ,Ӧ,δ,FAUXPROPID,CASE WHEN B.ֿ<>0 THEN B.ֿ ELSE ISNULL(tms.FSTOCKID,0) END ֿ + INTO #tmpSubBOM1 FROM #tmpSubBOM B +LEFT JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +LEFT JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.ֿ AND TSL.FLOCALEID = 2052) +--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +ORDER BY + + + +SELECT ,Ӧ,δ,FAUXPROPID,ֿ +INTO #tmpSubBOM3 FROM #tmpSubBOM1 B +LEFT JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +WHERE -- (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + (TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +ORDER BY + + + +SELECT ,SUM(Ӧ)Ӧ,SUM(δ)δ,FAUXPROPID,ֿ +INTO #tmpSubBOM2 FROM #tmpSubBOM3 +GROUP BY ֿ,,FAUXPROPID +ORDER BY ֿ,,FAUXPROPID + + +--δ(ί) +UPDATE t1 SET t1.δ=ISNULL(t1.δ,0)+ISNULL(t2.δ,0) +FROM #Stock_Status_temp t1 +INNER JOIN #tmpSubBOM2 +t2 ON t1.=t2. AND t1.ֿ=t2.ֿ AND t1.װ=T2.FAUXPROPID + + +--ݾ + +INSERT INTO #Stock_Status_temp (,ϴ,,ͺ,ɱ,װʽ,ֿ,ֿ,ֿ,װ,δ) + +SELECT TM.fmaterialid AS ,(TM.fnumber) ϴ,(TML.FNAME) AS ,(TML.FSPECIFICATION) AS ͺ,ISNULL(TM.FOLDNUMBER,'') AS ɱ + ,ISNULL(t5.FAUXPTYNUMBER,'') װʽ,TBS.FSTOCKID ֿ,TSL.fname ֿ,TBS.fnumber ֿ,TSE.FAUXPROPID AS װ,(δ) +FROM #tmpSubBOM2 TSE + INNER JOIN T_BD_MATERIAL TM ON (TM.FMASTERID = TSE. ) + INNER JOIN T_BD_MATERIAL_L TML ON TM.FMATERIALID =TML.FMATERIALID AND TML.FLOCALEID =2052 + INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.ֿ ) + LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID= TSE.ֿ AND TSL.FLOCALEID = 2052) + LEFT OUTER JOIN T_BD_FLEXSITEMDETAILV t3 ON TSE.FAUXPROPID=t3.FID + LEFT OUTER JOIN T_BAS_ASSISTANTDATAENTRY_L t4 ON t3.FF100002=t4.FENTRYID + LEFT OUTER JOIN T_BD_AUXPTYVALUEENTITY t5 ON t3.FF100002=t5.FAUXPTYID AND t3.FID =t5.FAUXPTYVALUEID +--SELECT * FROM #tmpSal2 TSE +WHERE δ > 0 + AND NOT EXISTS(SELECT * FROM #Stock_Status_temp t2 WHERE TSE.=t2. AND TSE.ֿ=t2.ֿ AND t2.װ=TSE.FAUXPROPID) + +--*********************δ(ί)*END******************************* + +-- --ֹѯδ +-- UPDATE t1 SET t1.δ=ISNULL(t1.δ,0)+ISNULL(t1.ܶ,0) +--FROM #Stock_Status_temp t1 +--WHERE ISNULL(t1.ܶ,0)<>0 + +--**********************END******************************* + +--깺δת +--*******************strat***************************** + +--ѯֹ֮ǰвɹ + +SELECT TS.FAPPLICATIONORGID fstockorgid,TS.FBILLNO 뵥,TS.FID AS ,TSE.FENTRYID ¼,TSE.FMATERIALID , + ISNULL(TSE.FAUXPROPID,0) FAUXPROPID,TS.FAPPLICATIONDATE fdate,TMS.FSTOCKID ֿ, + FBASEUNITQTY ,TSEF.FREMAINQTY AS δת +INTO #TMPREQ +FROM T_PUR_REQUISITION TS + INNER JOIN T_PUR_REQENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_PUR_REQENTRY_R TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) + INNER JOIN T_PUR_REQENTRY_S TSES ON (TSE.FID = TSES.FID AND TSE.FENTRYID = TSES.FENTRYID) + LEFT JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID=TM.FMATERIALID + LEFT JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +WHERE 1=1 +--AND ts.FBILLNO ='SQ1910100001'AND FORDERBASEQTY<>FBASEUNITQTY AND TS.FCLOSESTATUS<>'B' + AND (TS.FAPPLICATIONDATE <=@FEDate) + AND (TS.FCLOSEDATE>@FEDate or ISNULL(TS.FCLOSEDATE,'')='') + AND (TS.FAPPLICATIONORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) + + --ѯֹ֮вɹ + --SELECT * +UPDATE t1 SET t1.δת=δת+t2.fbaseOrdqty +FROM #TMPREQ t1 +INNER JOIN ( + SELECT t1r.FSRCBILLNO,t1k.FSBILLID,t1k.FSID,t1.FMATERIALID,SUM(t1.FBASEUNITQTY) fbaseOrdqty + FROM T_PUR_POORDER t0 + INNER JOIN T_PUR_POORDERENTRY t1 ON (t0.FID = t1.FID) + INNER JOIN T_PUR_POORDERENTRY_R t1R ON(t1R.FID = t1.FID AND t1.FENTRYID = t1R.FENTRYID) + INNER JOIN T_PUR_POORDERENTRY_LK t1k ON(t1.FENTRYID = t1k.FENTRYID) + INNER JOIN T_BD_MATERIAL TM ON t1.FMATERIALID = TM.FMATERIALID + WHERE t0.FDATE>@FEDate + AND ( t0.FCANCELSTATUS = 'A' AND TM.FFORBIDSTATUS = 'A') + GROUP BY t1r.FSRCBILLNO,t1k.FSBILLID,t1k.FSID,t1.FMATERIALID + +) t2 ON t1.=t2.FSBILLID AND t1.¼=t2.FSID AND t1.=t2.FMATERIALID + + +--º + + +SELECT ,,δת,FAUXPROPID,CASE WHEN B.ֿ<>0 THEN B.ֿ ELSE ISNULL(tms.FSTOCKID,0) END ֿ +INTO #TMPREQ1 FROM #TMPREQ B +LEFT JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +LEFT JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.ֿ AND TSL.FLOCALEID = 2052) +--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +ORDER BY + + +SELECT ,,δת,FAUXPROPID,ֿ +INTO #TMPREQ3 FROM #TMPREQ1 B +LEFT JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +WHERE -- (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +(TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +ORDER BY + + +SELECT ,SUM(),SUM(δת)δת,FAUXPROPID,ֿ +INTO #TMPREQ2 FROM #TMPREQ3 +GROUP BY ֿ,,FAUXPROPID +ORDER BY ֿ,,FAUXPROPID + +--깺δת +UPDATE t1 SET t1.깺δת=t2.δת +FROM #Stock_Status_temp t1 +INNER JOIN #TMPREQ2 t2 ON t1.=t2. AND t1.ֿ=t2.ֿ AND t1.װ=T2.FAUXPROPID + +--ݾ + +INSERT INTO #Stock_Status_temp (,ϴ,,ͺ,ɱ,װʽ,ֿ,ֿ,ֿ,װ,깺δת) + +SELECT TM.fmaterialid AS ,(TM.fnumber) ϴ,(TML.FNAME) AS ,(TML.FSPECIFICATION) AS ͺ,ISNULL(TM.FOLDNUMBER,'') AS ɱ, +ISNULL(t5.FAUXPTYNUMBER,'') װʽ,TBS.FSTOCKID ֿ,TSL.fname ֿ,TBS.fnumber ֿ,TSE.FAUXPROPID AS װ,(δת) +FROM #TMPREQ2 TSE +INNER JOIN T_BD_MATERIAL TM ON (TM.FMASTERID = TSE. ) +INNER JOIN T_BD_MATERIAL_L TML ON TM.FMATERIALID =TML.FMATERIALID AND TML.FLOCALEID =2052 +INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = TSE.ֿ AND TSL.FLOCALEID = 2052) +LEFT OUTER JOIN T_BD_FLEXSITEMDETAILV t3 ON TSE.FAUXPROPID=t3.FID +LEFT OUTER JOIN T_BAS_ASSISTANTDATAENTRY_L t4 ON t3.FF100002=t4.FENTRYID +LEFT OUTER JOIN T_BD_AUXPTYVALUEENTITY t5 ON t3.FF100002=t5.FAUXPTYID AND t3.FID =t5.FAUXPTYVALUEID + +--SELECT * FROM #tmpSal2 TSE +WHERE δת<>0 AND + NOT EXISTS(SELECT * FROM #Stock_Status_temp t2 WHERE TSE.=t2. AND TSE.ֿ=t2.ֿ AND t2.װ=TSE.FAUXPROPID) + + +--***************************************************** + +--ռ + +--******************************************************** + SELECT TSE.FMATERIALID ,(TSE.FBASEQTY)FBASEQTY, + CASE WHEN TSE.FSTOCKID<>0 THEN TSE.FSTOCKID ELSE ISNULL(tms.FSTOCKID,0)END FSTOCKID,TSE.FAUXPROPID + INTO #TMPLINK FROM T_PLN_RESERVELINK TS + INNER JOIN T_PLN_RESERVELINKENTRY TSE ON TS.FID=TSE.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + LEFT JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID + LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = TSE.FSTOCKID ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = TSE.FSTOCKID AND TSL.FLOCALEID = 2052) + WHERE TSE.FBASEQTY<>0 + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +--GROUP BY TSE.FSTOCKID,TSE.FMATERIALID,FAUXPROPID +ORDER BY FSTOCKID,TSE.FMATERIALID,FAUXPROPID + + +SELECT ,SUM(FBASEQTY)FBASEQTY,FAUXPROPID,B.FSTOCKID ֿ +INTO #TMPLINK1 FROM #TMPLINK B +LEFT JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +--LEFT JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.FSTOCKID ) +--LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.FSTOCKID AND TSL.FLOCALEID = 2052) +WHERE -- (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +(TM.FNUMBER IN(SELECT DISTINCT ϱ FROM #YC_T_MRP )) +AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +GROUP BY b.FSTOCKID,,FAUXPROPID +ORDER BY b.FSTOCKID,,FAUXPROPID + +--ռ +UPDATE t1 SET t1.ռ=t2.FBASEQTY +FROM #Stock_Status_temp t1 + INNER JOIN #TMPLINK1 t2 ON t1.=t2. + AND t1.ֿ=t2.ֿ + AND t1.װ=T2.FAUXPROPID + +--ݾռ + +INSERT INTO #Stock_Status_temp (,ϴ,,ͺ,ɱ,װʽ,ֿ,ֿ,ֿ,װ,ռ) +SELECT + TM.fmaterialid AS ,(TM.fnumber) ϴ,(TML.FNAME) AS + ,(TML.FSPECIFICATION) AS ͺ,ISNULL(TM.FOLDNUMBER,'') AS ɱ + ,ISNULL(t5.FAUXPTYNUMBER,'') װʽ,TBS.FSTOCKID ֿ,TSL.fname ֿ + ,TBS.fnumber ֿ,TSE.FAUXPROPID AS װ,(FBASEQTY) +FROM #TMPLINK1 TSE + INNER JOIN T_BD_MATERIAL TM ON (TM.FMASTERID = TSE. ) + INNER JOIN T_BD_MATERIAL_L TML ON TM.FMATERIALID=TML.FMATERIALID AND TML.FLOCALEID =2052 + INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.ֿ ) + LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = TSE.ֿ AND TSL.FLOCALEID = 2052) + LEFT OUTER JOIN T_BD_FLEXSITEMDETAILV t3 ON TSE.FAUXPROPID=t3.FID + LEFT OUTER JOIN T_BAS_ASSISTANTDATAENTRY_L t4 ON t3.FF100002=t4.FENTRYID + LEFT OUTER JOIN T_BD_AUXPTYVALUEENTITY t5 ON t3.FF100002=t5.FAUXPTYID AND t3.FID =t5.FAUXPTYVALUEID +WHERE FBASEQTY <> 0 + AND NOT EXISTS( + SELECT 1 + FROM #Stock_Status_temp t2 + WHERE TSE.=t2. + AND TSE.ֿ=t2.ֿ + AND t2.װ=TSE.FAUXPROPID) + + +--*********************ռEND*********************************** + + +--ÿ +--******************************************************* + +UPDATE t1 SET t1.ÿ=ISNULL(ĩ,0)+ISNULL(t1.,0)+ISNULL(;,0)-ISNULL(δ,0)-ISNULL(ܶ,0) +FROM #Stock_Status_temp t1 + +--*********************ÿEND********************************** + +--BOM +SELECT =IDENTITY(INT,1,1),,ϴ,,ͺ,ɱ,ڽ + ,ڲɹ,ں,ĩ,;,,,δ,,۳,ֿⲦ + ,ֿⲦ,깺δת, ܶ,ռ,ÿ,ֿ,ֿ,ֿ,װʽ,Ʒ + INTO #Stock_Bom +FROM ( + SELECT t1.FMATERIALID ,ϴ,t2.,ͺ,ɱ,ڽ,ڲɹ,ں,ĩ + ,;,,,δ,,۳,ֿⲦ,ֿⲦ,깺δת + ,ܶ,ռ,ÿ,t2.ֿ,ֿ,ֿ,װʽ,t1.FOrderNum Ʒ,FOrderNum + ,FSEQ1,FSEQ2,FSEQ3,FSEQ4,FSEQ5,FSEQ6 + FROM #YC_T_MRP t1 + INNER JOIN #Stock_Status_temp t2 ON t1.ϱ=t2.ϴ + UNION ALL + SELECT t1.FMATERIALID ,t1.ϱ ϴ,t2.FNAME ,t2.FSPECIFICATION ͺ + ,ISNULL(TM.FOLDNUMBER,'') ɱ,0 ڽ,0 ڲɹ,0 ں,0 ĩ + ,0 ;,0 ,0 , 0 δ,0 ,0 ۳,0 ֿⲦ + ,0 ֿⲦ,0 깺δת,0 ܶ,0 ռ,0 ÿ,ts.FSTOCKID,ts.FNUMBER AS ֿ + ,tsl.FNAME AS ֿ,''װʽ,t1.FOrderNum Ʒ,FOrderNum + ,FSEQ1,FSEQ2,FSEQ3,FSEQ4,FSEQ5,FSEQ6 + FROM #YC_T_MRP t1 + INNER JOIN T_BD_MATERIAL TM ON (TM.FMATERIALID = t1.FMATERIALID ) + INNER JOIN T_BD_MATERIAL_L t2 ON (t2.FMATERIALID = t1.FMATERIALID ) + INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID + INNER JOIN T_BD_STOCK ts ON tms.FSTOCKID=ts.FSTOCKID + LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = TS.FSTOCKID AND TSL.FLOCALEID = 2052) + WHERE 1=1 + AND ϱ NOT IN (SELECT DISTINCT ϴ FROM #Stock_Status_temp t2) + AND TMS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID))t +ORDER BY FOrderNum,FSEQ1,FSEQ2,FSEQ3,FSEQ4,FSEQ5,FSEQ6 + +SELECT + t0.FMATERIALID AS 'ProMateralId' + ,t2.FNUMBER + ,t0.FQTY + ,t1e.FMATERIALID + ,t1e_c.FSTOCKID + --,t1.FBILLNO + ,SUM(t1e.FBASENEEDQTY) AS 'FBASENEEDQTY'--λ + ,SUM(t1e_q.FBASEPICKEDQTY) AS 'FBASEPICKEDQTY'--λ + ,SUM(t1e_q.FBASENOPICKEDQTY) AS 'FBASENOPICKEDQTY'--λδ + ,ISNULL(stuff((SELECT DISTINCT ','+ CONVERT(nvarchar(100),tt.FID) FROM #TEMPMO tt WHERE tt.FMATERIALID = t0.FMATERIALID for xml path('')),1,1,''),'') AS 'MOIDS' + ,ISNULL(stuff((SELECT DISTINCT ','+ CONVERT(nvarchar(100),tt.FENTRYID) FROM #TEMPMO tt WHERE tt.FMATERIALID = t0.FMATERIALID for xml path('')),1,1,''),'') AS 'MOENTRYIDS' + ,ISNULL(stuff((SELECT DISTINCT ','+ CONVERT(nvarchar(100),tt.FBILLNO) FROM #TEMPMO tt WHERE tt.FMATERIALID = t0.FMATERIALID for xml path('')),1,1,''),'') AS 'MONOS' + ,ISNULL(stuff((SELECT DISTINCT ','+ CONVERT(nvarchar(100),tt.FSALEORDERNO) FROM #TEMPMO tt WHERE tt.FMATERIALID = t0.FMATERIALID AND tt.FSALEORDERNO !='' for xml path('')),1,1,''),'') AS 'SALENOS' + INTO #TEMPMOQTY +FROM #TEMPMO t0 + --INNER JOIN T_PRD_PPBOM t1 ON t0.FENTRYID = t1.FMOENTRYID AND t0.FMATERIALID = t1.FMATERIALID + INNER JOIN T_PRD_PPBOMENTRY t1e ON t1e.FMOENTRYID = t0.FENTRYID --嵥 + INNER JOIN T_PRD_PPBOMENTRY_Q t1e_q ON t1e_q.FENTRYID = t1e.FENTRYID + INNER JOIN T_PRD_PPBOMENTRY_C t1e_c ON t1e_c.FENTRYID = t1e.FENTRYID + INNER JOIN T_BD_MATERIAL t2 on t2.FMATERIALID = t0.FMATERIALID +GROUP BY + t0.FMATERIALID,t0.FQTY,t1e.FMATERIALID,t1e_c.FSTOCKID,t2.FNUMBER + +SELECT AS 'FIDENTITYID' + ,ϴ + , + ,ͺ + ,ɱ + ,ڽ + ,ڲɹ + ,ں + ,ĩ + ,; + , + , + ,δ + , + ,۳ + ,ֿⲦ + ,ֿⲦ + ,깺δת + ,ܶ + ,ռ + ,ÿ + ,ֿ + ,ֿ + ,װʽ + ,Ʒ + ,t1.FBASENEEDQTY + ,t1.FBASENOPICKEDQTY + ,t1.FBASEPICKEDQTY + ,t1.FQTY + ,CASE CHARINDEX(',',t1.MONOS) WHEN 0 THEN t1.MONOS ELSE '' END AS 'MONO' + ,CASE CHARINDEX(',',t1.SALENOS) WHEN 0 THEN t1.SALENOS ELSE '' END AS 'SALENO' + ,t1.SALENOS + ,t1.MOENTRYIDS + ,t1.MOIDS + --INTO {0} +FROM #Stock_Bom t0 + LEFT JOIN #TEMPMOQTY t1 ON t0. = t1.FMATERIALID + AND t0.ֿ = t1.FSTOCKID + AND t1.FNUMBER = t0.Ʒ + +DROP TABLE #TEMPMO +DROP TABLE #TEMPMOQTY +DROP TABLE #Stock_Bom +DROP TABLE #TMP +DROP TABLE #TMP1 +DROP TABLE #TMPLINK +DROP TABLE #TMPLINK1 +DROP TABLE #TMP4 +DROP TABLE #TMP5 +DROP TABLE #TMP6 +DROP TABLE #TMP7 +DROP TABLE #TMP8 +DROP TABLE #tmpSal +DROP TABLE #tmpSal1 +DROP TABLE #tmpSal2 +DROP TABLE #tmpSal3 +DROP TABLE #tmpMO +DROP TABLE #tmpMO1 +DROP TABLE #tmpMO2 +DROP TABLE #tmpMO3 + +DROP TABLE #TMPREQ +DROP TABLE #TMPREQ1 +DROP TABLE #TMPREQ2 +DROP TABLE #TMPREQ3 +DROP TABLE #TMPRECEIVE +DROP TABLE #TMPRECEIVE1 +DROP TABLE #TMPRECEIVE2 +DROP TABLE #TMPRECEIVE3 +DROP TABLE #tmppoorder +DROP TABLE #tmppoorder1 +DROP TABLE #tmppoorder2 +DROP TABLE #tmppoorder3 +DROP TABLE #tmpPPBOM +DROP TABLE #tmpPPBOM1 +DROP TABLE #tmpPPBOM2 +DROP TABLE #tmpPPBOM3 +DROP TABLE #tmpSUBBOM +DROP TABLE #tmpSUBBOM1 +DROP TABLE #tmpSUBBOM2 +DROP TABLE #tmpSUBBOM3 +DROP TABLE #Stock_Status_temp +SET nocount off \ No newline at end of file diff --git a/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/sql/bbbbbb.sql b/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/sql/bbbbbb.sql new file mode 100644 index 0000000..d04404a --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/sql/bbbbbb.sql @@ -0,0 +1,50 @@ +--δ +/* ţ۶ţϽɸѡӦ*/ +SELECT + t0.FBILLNO + ,t0.FID + ,t0e.FQTY + ,t0e.FENTRYID + ,t0e.FMATERIALID + ,t0e_a.FREPQUAQTY + --,t0e_a.FREQSRC --1.۶ + ,(CASE WHEN t1e.FSRCBILLNO is null THEN (CASE t0e_a.FREQSRC WHEN 1 THEN t0e.FSALEORDERNO ELSE '' END) ELSE t1e.FSRCBILLNO END) AS 'FSALEORDERNO' + INTO #TEMPMO +FROM + T_PRD_MO t0 + INNER JOIN T_PRD_MOENTRY t0e ON t0.FID = t0E.FID + INNER JOIN T_PRD_MOENTRY_A t0e_a ON t0e_a.FENTRYID = t0e.FENTRYID + LEFT JOIN T_SAL_DELIVERYNOTICEENTRY t1e on t1e.FENTRYID = t0e.FSRCBILLENTRYID AND t0e.FSRCBILLID = t0e.FSALEORDERID +WHERE 1 = 1 + AND t0.FDOCUMENTSTATUS = 'C' + AND (t0e_a.FSTATUS < 5) + --AND t0e.FMATERIALID = 100258 + AND t0.FBILLNO = 'MO000023' + +SELECT + t0.FMATERIALID AS 'ProMateralId' + ,t1e.FMATERIALID + ,t1e_c.FSTOCKID + --,t1.FBILLNO + ,SUM(t1e.FBASENEEDQTY) AS 'FBASENEEDQTY'--λ + ,SUM(t1e_q.FBASEPICKEDQTY) AS 'FBASEPICKEDQTY'--λ + ,SUM(t1e_q.FBASENOPICKEDQTY) AS 'FBASENOPICKEDQTY'--λδ + ,ISNULL(stuff((SELECT DISTINCT ','+ CONVERT(nvarchar(100),tt.FID) FROM #TEMPMO tt WHERE tt.FMATERIALID = t0.FMATERIALID for xml path('')),1,1,''),'') AS 'MOIDS' + ,ISNULL(stuff((SELECT DISTINCT ','+ CONVERT(nvarchar(100),tt.FENTRYID) FROM #TEMPMO tt WHERE tt.FMATERIALID = t0.FMATERIALID for xml path('')),1,1,''),'') AS 'MOENTRYIDS' + ,ISNULL(stuff((SELECT DISTINCT ','+ CONVERT(nvarchar(100),tt.FBILLNO) FROM #TEMPMO tt WHERE tt.FMATERIALID = t0.FMATERIALID for xml path('')),1,1,''),'') AS 'MONOS' + ,ISNULL(stuff((SELECT DISTINCT ','+ CONVERT(nvarchar(100),tt.FSALEORDERNO) FROM #TEMPMO tt WHERE tt.FMATERIALID = t0.FMATERIALID AND tt.FSALEORDERNO !='' for xml path('')),1,1,''),'') AS 'SALENOS' + INTO #TEMPMOQTY +FROM #TEMPMO t0 + INNER JOIN T_PRD_PPBOMENTRY t1e ON t1e.FMOENTRYID = t0.FENTRYID --嵥 + INNER JOIN T_PRD_PPBOMENTRY_Q t1e_q ON t1e_q.FENTRYID = t1e.FENTRYID + INNER JOIN T_PRD_PPBOMENTRY_C t1e_c ON t1e_c.FENTRYID = t1e.FENTRYID +GROUP BY + t0.FMATERIALID,t1e.FMATERIALID,t1e_c.FSTOCKID + +SELECT t0.ProMateralId,t0.MONOS,t0.SALENOS,t0.MOIDS,t0.MOENTRYIDS + --INTO #TEMPMONO2Pro +FROM #TEMPMOQTY t0 +GROUP BY t0.ProMateralId,t0.MONOS,t0.SALENOS,t0.MOIDS,t0.MOENTRYIDS + +DROP TABLE #TEMPMO +--DROP TABLE #TMPLIST diff --git a/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/sql/bom层级库存状态.sql b/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/sql/bom层级库存状态.sql new file mode 100644 index 0000000..4c930f4 --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/sql/bom层级库存状态.sql @@ -0,0 +1,3260 @@ +USE [AIS20220916152454] +GO +/****** Object: StoredProcedure [dbo].[Pro_BOMStockStatusBillEXP] Script Date: 2024/2/27 13:47:24 ******/ +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + +--״̬ TBH25702K01 + ALTER procedure [dbo].[Pro_BOMStockStatusBillEXP] ( + @FSNumber varchar (50) , + @FENumber varchar (50) , + @FSStock varchar (max), + @FSDate varchar (30), + @FEDate varchar (30), + @FName varchar (255) + ) + +as + +set nocount on + +declare @FCloseBALDate varchar (30) +declare @FClosedate varchar (30) + +--ѯʼһڵĩ +If NOT Exists(SELECT FORGID, MAX(FCLOSEDATE) fclosedate FROM T_STK_CLOSEPROFILE WHERE FORGID IN (1) AND FCATEGORY = 'STK' AND (FCLOSEDATE < @FSDate) + GROUP BY FORGID) +BEGIN + SET @FClosedate='2020-01-01' + SET @FCloseBALDate='2020-01-01' + --print @FClosedate +END +ELSE +BEGIN + --SET @FClosedate='2019-07-01' + SELECT @FClosedate= CONVERT(varchar (30), DATEADD(D, 1,MAX(FCLOSEDATE)),23) FROM + T_STK_CLOSEPROFILE WHERE ((FORGID IN (1) AND FCATEGORY = 'STK') AND (FCLOSEDATE < @FSDate)) GROUP BY FORGID + SET @FCloseBALDate=CONVERT(varchar (30), DATEADD(D, -1,@FClosedate),23) + --print @FClosedat +END + + declare @FSWL varchar (50) + declare @FEWL varchar (50) + + + set @FSWL='' + set @FEWL='' + + if @FSNumber<>'' and @FENumber<>'' + begin + SET @FSWL= @FSNumber + SET @FEWL= @FENumber + end + if @FSNumber<>'' and @FENumber='' + begin + SET @FSWL= @FSNumber + SELECT @FEWL=MAX(FNUMBER) +FROM T_BD_MATERIAL + end + if @FSNumber='' and @FENumber<>'' + begin + SET @FEWL= @FENumber + SELECT @FSWL=MIN(FNUMBER) FROM T_BD_MATERIAL + end + if @FSNumber='' and @FENumber='' + begin + SELECT @FSWL=MIN(FNUMBER) FROM T_BD_MATERIAL + SELECT @FEWL=MAX(FNUMBER) FROM T_BD_MATERIAL + end + + --ʱѡȡֿ + + if exists(select * from tempdb..sysobjects where id=object_id('tempdb..#tmpStockID')) + begin + drop table #tmpStockID + print '' + end + Create Table #tmpStockID ( + FID INT IDENTITY(1,1), + FStockID INT , + ) + DECLARE @Strsql varchar(max) + set @Strsql= 'insert into #tmpStockID select distinct FSTOCKID from T_BD_STOCK where 1=1 ' +@FSStock + EXEC(@Strsql) + +--״̬ + + if exists(select * from tempdb..sysobjects where id=object_id('tempdb..#Stock_Status_temp')) + begin + drop table #Stock_Status_temp + print '' + end + + Create Table #Stock_Status_temp ( + INT IDENTITY(1,1), + INT , + ϴ varchar(100) null , + varchar(255) null , + ͺ varchar(255) null , + ɱ varchar(100) null , + --λ varchar(30) null , + ڽ DECIMAL (18, 2) Null , + ڲɹ DECIMAL (18, 2) Null , + ں DECIMAL (18, 2) Null , + ĩ DECIMAL (18, 2) Null , + ; DECIMAL (18, 2) Null , + DECIMAL (18, 2) Null , + DECIMAL (18, 2) Null , + δ DECIMAL (18, 2) Null , + DECIMAL (18, 2) Null , + ۳ DECIMAL (18, 2) Null , + ֿⲦ DECIMAL (18, 2) Null , + ֿⲦ DECIMAL (18, 2) Null , + 깺δת DECIMAL (18, 2) Null, + ܶ DECIMAL (18, 2) Null , + ռ DECIMAL (18, 2) Null , + ÿ DECIMAL (18, 2) Null , + ֿ INT , + ֿ varchar(100) null , + ֿ varchar(255) null , + װ INT , + װʽ varchar(255) null + ) + + if exists(select * from tempdb..sysobjects where id=object_id('tempdb..#TMP')) + begin + drop table #TMP + print '' + end + +CREATE TABLE #TMP ( +FID INT IDENTITY(1,1), +FSTOCKORGID INT NOT NULL DEFAULT 0, +FBILLENTRYID INT NOT NULL DEFAULT 0, +FORDERBY INT NOT NULL DEFAULT 0, +FSTOCKIO CHAR (1) NULL, +FMATERIALID INT NOT NULL DEFAULT 0, +FAUXPROPID INT NOT NULL DEFAULT 0, +FDATE DATETIME NULL, +FSTOCKID INT NOT NULL DEFAULT 0, +FSTOCKLOCID INT NOT NULL DEFAULT 0, +FSTOCKSTATUSID INT NOT NULL DEFAULT 0, +FBILLNAME NVARCHAR (100) NULL, +FBILLID INT NOT NULL DEFAULT 0, +FBILLSEQID INT NULL, +FBILLNO NVARCHAR (100) NULL, +FBASEQCQTY DECIMAL (23, 10) NOT NULL DEFAULT 0, +FBASEINQTY DECIMAL (23, 10) NOT NULL DEFAULT 0, +FBASEOUTQTY DECIMAL (23, 10) NOT NULL DEFAULT 0 +) + + +--BOM㼶 + + if exists(select * from tempdb..sysobjects where id=object_id('tempdb..#YC_T_MRP')) + begin + drop table #YC_T_MRP + end + + +CREATE TABLE #YC_T_MRP( + FID INT IDENTITY(1,1), + FBOMNumber NVARCHAR(255), + FMATERIALID INT, + ϱ NVARCHAR(255), + NVARCHAR(255), + Ʒ DECIMAL(28,10) DEFAULT (0), + DECIMAL(28,10),--BOM + ĸ DECIMAL(28,10),--BOMĸ + FQty DECIMAL(28,10),-- + FLevle INT , + FERPCLSID INT, + FOrderNum NVARCHAR(255), + FBOMID INT, + BOM㼶 NVARCHAR(200) NULL, + FSEQ1 INT, + FSEQ2 INT, + FSEQ3 INT, + FSEQ4 INT, + FSEQ5 INT, + FSEQ6 INT, + FParentNumber NVARCHAR(255) +) + + if exists(select * from tempdb..sysobjects where id=object_id('tempdb..#BOMTmp')) + begin + drop table #BOMTmp + end + + +/*ȡ״̬BOMʱ*/ +SELECT ID=IDENTITY(INT,1,1),T0.FID,T0.FNUMBER,T0.FMATERIALID +INTO #BOMTmp +FROM T_ENG_BOM T0 +INNER JOIN T_BD_MATERIAL TM ON t0.FMATERIALID=TM.FMATERIALID --ϱ +WHERE (t0.FDOCUMENTSTATUS = 'C') and (t0.FFORBIDSTATUS='A') +AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + ORDER BY FMATERIALID,FNUMBER + +/*ʱУͬһϴֻһ°汾BOM*/ + delete FROM #BOMTmp WHERE id not in (SELECT max(id) FROM #BOMTmp group by FMATERIALID) + + +--ѯһƷϢ +INSERT INTO #YC_T_MRP( + FBOMNumber,FMATERIALID,ϱ,,Ʒ + ,,ĸ,FQty,FLevle,FERPCLSID,FOrderNum + ,FBOMID,FSEQ1,FSEQ2,FSEQ3,FSEQ4,FSEQ5,FSEQ6,FParentNumber) +SELECT + t0.FNUMBER,T0.FMATERIALID,t1.FNUMBER 'ϱ',t3.FNAME '',t0.FYIELDRATE 'Ʒ' + ,1 '', 1 'ĸ', 1 'FQty','0' 'FLevle',T2.FERPCLSID 'FERPCLSID',t1.FNUMBER 'ϱ' + ,t0.FID 'FBOMID',0 'FSEQ1',0 'FSEQ2',0 'FSEQ3',0 'FSEQ4',0 'FSEQ5',0 'FSEQ6','' 'FParentNumber' +FROM T_ENG_BOM t0 + INNER JOIN T_BD_MATERIAL t1 ON t0.FMATERIALID=t1.FMATERIALID --ϱ + LEFT OUTER JOIN t_BD_MaterialBase t2 ON t1.FMATERIALID = t2.FMATERIALID --ϱ + LEFT OUTER JOIN T_BD_MATERIAL_L t3 ON (t1.FMATERIALID = t3.FMATERIALID AND t3.FLocaleId = 2052)--ϱ + INNER JOIN #BOMTmp t6 on t0.FMATERIALID=t6.FMATERIALID AND t0.FNUMBER=t6.FNUMBER +WHERE 1=1 + AND (t0.FDOCUMENTSTATUS = 'C') +ORDER BY T0.FNUMBER + +--SELECT * FROM #YC_T_MRP +--ݵһƷѯһƷIJϢ +INSERT INTO #YC_T_MRP( + FBOMNumber,FMATERIALID,ϱ,,Ʒ + ,,ĸ,FQty,FLevle,FERPCLSID,FOrderNum + ,FBOMID,FSEQ1,FSEQ2,FSEQ3,FSEQ4,FSEQ5,FSEQ6,FParentNumber) +SELECT + t10.FNUMBER,t7.FMATERIALID,t7.FNUMBER 'ϱ',T9.FNAME '',t10.FYIELDRATE 'Ʒ' + ,t6.FNUMERATOR '',t6.FDENOMINATOR 'ĸ',ROUND(t6.FNUMERATOR/t6.FDENOMINATOR,10) 'FQty' + ,'1' 'FLevle',t8.FERPCLSID 'FERPCLSID',T5.FOrderNum + ,0 'FBOMID',T5.FSEQ1 'FSEQ1',t6.FSEQ 'FSEQ2',0 'FSEQ3',0 'FSEQ4',0 'FSEQ5',0 'FSEQ6',t5.ϱ 'FParentNumber' +FROM #YC_T_MRP t5 + LEFT OUTER JOIN T_ENG_BOMCHILD t6 on t5.FBOMID=t6.FID--BOM¼ + INNER JOIN T_BD_MATERIAL t7 on t6.FMATERIALID=t7.FMATERIALID --ϱ + LEFT OUTER JOIN t_BD_MaterialBase t8 ON t8.FMATERIALID = t7.FMATERIALID --ϱ + LEFT OUTER JOIN T_BD_MATERIAL_L t9 ON (t6.FMATERIALID = t9.FMATERIALID AND t9.FLocaleId = 2052)--ϱ + LEFT JOIN T_ENG_BOM t10 on t10.FID=t6.FID--BOM +WHERE (t7.FFORBIDSTATUS = 'A') + AND T5.FLevle=0 AND T5.FERPCLSID >= 2 + AND t10.FDOCUMENTSTATUS = 'C' + + + +/*ȡڶ״̬BOMʱ*/ + +SELECT ID=IDENTITY(INT,1,1),T0.FID,T0.FNUMBER,T0.FMATERIALID +INTO #BOMTmp1 FROM #YC_T_MRP t1 +INNER JOIN T_ENG_BOM t0 on t1.FMATERIALID=t0.FMATERIALID--BOMͷ +WHERE 1=1 and (t0.FDOCUMENTSTATUS = 'C') and (t0.FFORBIDSTATUS='A') AND T1.FLevle=1 AND T1.FERPCLSID>=2 + + + + /*ʱУͬһϴֻһ°汾BOM*/ + delete FROM #BOMTmp1 WHERE id not in (SELECT max(id) FROM #BOMTmp1 group by FMATERIALID) + + +--ݵڶǶƻIJƷѯڶƷIJϢ +INSERT INTO #YC_T_MRP(FBOMNumber,FMATERIALID,ϱ,,Ʒ,,ĸ,FQty,FLevle,FERPCLSID,FOrderNum,FBOMID, +FSEQ1,FSEQ2,FSEQ3,FSEQ4,FSEQ5,FSEQ6,FParentNumber) +SELECT t5.FNUMBER,t7.FMATERIALID,t7.FNUMBER 'ϱ',T9.FNAME '',t5.FYIELDRATE 'Ʒ', +t6.FNUMERATOR '',t6.FDENOMINATOR 'ĸ',ROUND(t6.FNUMERATOR/t6.FDENOMINATOR,10) 'FQty', +'2' 'FLevle',t8.FERPCLSID 'FERPCLSID',T1.FOrderNum,0 'FBOMID', +t1.FSEQ1 'FSEQ1',t1.FSEQ2 'FSEQ2',t6.FSEQ 'FSEQ3',0 'FSEQ4',0 'FSEQ5',0 'FSEQ6' +,t1.ϱ 'FParentNumber' +FROM #YC_T_MRP t1 +INNER JOIN T_ENG_BOM t5 on t1.FMATERIALID=t5.FMATERIALID--BOMͷ +LEFT OUTER JOIN T_ENG_BOMCHILD t6 on t5.FID=t6.FID--BOM¼ +INNER JOIN T_BD_MATERIAL t7 on t6.FMATERIALID=t7.FMATERIALID --ϱ +LEFT OUTER JOIN t_BD_MaterialBase t8 ON t8.FMATERIALID = t7.FMATERIALID --ϱ +LEFT OUTER JOIN T_BD_MATERIAL_L t9 ON (t6.FMATERIALID = t9.FMATERIALID AND t9.FLocaleId = 2052)--ϱ +INNER JOIN #BOMTmp1 t10 on t5.FMATERIALID=t10.FMATERIALID AND T5.FNUMBER=T10.FNUMBER +WHERE 1=1 and (t7.FFORBIDSTATUS = 'A') AND T1.FLevle=1 AND T1.FERPCLSID>=2 AND t5.FDOCUMENTSTATUS = 'C' + + + + +/*ȡ״̬BOMʱ*/ + +SELECT ID=IDENTITY(INT,1,1),T0.FID,T0.FNUMBER,T0.FMATERIALID +INTO #BOMTmp2 FROM #YC_T_MRP t1 +INNER JOIN T_ENG_BOM t0 on t1.FMATERIALID=t0.FMATERIALID--BOMͷ +WHERE 1=1 and (t0.FDOCUMENTSTATUS = 'C') and (t0.FFORBIDSTATUS='A') AND T1.FLevle=2 AND T1.FERPCLSID>=2 + + + +/*ʱУͬһϴֻһ°汾BOM*/ +delete FROM #BOMTmp2 WHERE id not in (SELECT max(id) FROM #BOMTmp2 group by FMATERIALID) + + +--ݵǶƻIJƷѯƷIJϢ +INSERT INTO #YC_T_MRP(FBOMNumber,FMATERIALID,ϱ,,Ʒ,,ĸ,FQty,FLevle,FERPCLSID,FOrderNum,FBOMID, +FSEQ1,FSEQ2,FSEQ3,FSEQ4,FSEQ5,FSEQ6,FParentNumber) +SELECT t5.FNUMBER,t7.FMATERIALID,t7.FNUMBER 'ϱ',T9.FNAME '',t5.FYIELDRATE 'Ʒ', +t6.FNUMERATOR '',t6.FDENOMINATOR 'ĸ',ROUND(t6.FNUMERATOR/t6.FDENOMINATOR,10) 'FQty', +'3' 'FLevle',t8.FERPCLSID 'FERPCLSID',T1.FOrderNum,0 'FBOMID', +t1.FSEQ1 'FSEQ1',t1.FSEQ2 'FSEQ2',t1.FSEQ3 'FSEQ3',t6.FSEQ 'FSEQ4',0 'FSEQ5',0 'FSEQ6' +,t1.ϱ 'FParentNumber' +FROM #YC_T_MRP t1 +INNER JOIN T_ENG_BOM t5 on t1.FMATERIALID=t5.FMATERIALID--BOMͷ +LEFT OUTER JOIN T_ENG_BOMCHILD t6 on t5.FID=t6.FID--BOM¼ +INNER JOIN T_BD_MATERIAL t7 on t6.FMATERIALID=t7.FMATERIALID --ϱ +LEFT OUTER JOIN t_BD_MaterialBase t8 ON t8.FMATERIALID = t7.FMATERIALID --ϱ +LEFT OUTER JOIN T_BD_MATERIAL_L t9 ON (t6.FMATERIALID = t9.FMATERIALID AND t9.FLocaleId = 2052)--ϱ +INNER JOIN #BOMTmp2 t10 on t5.FMATERIALID=t10.FMATERIALID AND T5.FNUMBER=T10.FNUMBER +WHERE (t7.FFORBIDSTATUS = 'A') AND T1.FLevle=2 AND T1.FERPCLSID>=2 +AND t5.FDOCUMENTSTATUS = 'C' + + + + +/*ȡļ״̬BOMʱ*/ + +SELECT ID=IDENTITY(INT,1,1),T0.FID,T0.FNUMBER,T0.FMATERIALID +INTO #BOMTmp3 FROM #YC_T_MRP t1 +INNER JOIN T_ENG_BOM t0 on t1.FMATERIALID=t0.FMATERIALID--BOMͷ +WHERE 1=1 and (t0.FDOCUMENTSTATUS = 'C') and (t0.FFORBIDSTATUS='A') AND T1.FLevle=3 AND T1.FERPCLSID>=2 + + + + /*ʱУͬһϴֻһ°汾BOM*/ + delete FROM #BOMTmp3 WHERE id not in (SELECT max(id) FROM #BOMTmp3 group by FMATERIALID) + + +--ݵļǶƻIJƷѯļƷIJϢ +INSERT INTO #YC_T_MRP(FBOMNumber,FMATERIALID,ϱ,,Ʒ,,ĸ,FQty,FLevle,FERPCLSID,FOrderNum,FBOMID, +FSEQ1,FSEQ2,FSEQ3,FSEQ4,FSEQ5,FSEQ6,FParentNumber) +SELECT t5.FNUMBER,t7.FMATERIALID,t7.FNUMBER 'ϱ',T9.FNAME '',t5.FYIELDRATE 'Ʒ', +t6.FNUMERATOR '',t6.FDENOMINATOR 'ĸ',ROUND(t6.FNUMERATOR/t6.FDENOMINATOR,10) 'FQty', +'4' 'FLevle',t8.FERPCLSID 'FERPCLSID',T1.FOrderNum,0 'FBOMID', +t1.FSEQ1 'FSEQ1',t1.FSEQ2 'FSEQ2',t1.FSEQ3 'FSEQ3',t1.FSEQ4 'FSEQ4',T6.FSEQ 'FSEQ5',0 'FSEQ6' +,t1.ϱ 'FParentNumber' +FROM #YC_T_MRP t1 +INNER JOIN T_ENG_BOM t5 on t1.FMATERIALID=t5.FMATERIALID--BOMͷ +LEFT OUTER JOIN T_ENG_BOMCHILD t6 on t5.FID=t6.FID--BOM¼ +INNER JOIN T_BD_MATERIAL t7 on t6.FMATERIALID=t7.FMATERIALID --ϱ +LEFT OUTER JOIN t_BD_MaterialBase t8 ON t8.FMATERIALID = t7.FMATERIALID --ϱ +LEFT OUTER JOIN T_BD_MATERIAL_L t9 ON (t6.FMATERIALID = t9.FMATERIALID AND t9.FLocaleId = 2052)--ϱ +INNER JOIN #BOMTmp3 t10 on t5.FMATERIALID=t10.FMATERIALID AND T5.FNUMBER=T10.FNUMBER +WHERE (t7.FFORBIDSTATUS = 'A') AND T1.FLevle=3 AND T1.FERPCLSID>=2 +AND t5.FDOCUMENTSTATUS = 'C' + + + + +/*ȡļ״̬BOMʱ*/ + +SELECT ID=IDENTITY(INT,1,1),T0.FID,T0.FNUMBER,T0.FMATERIALID +INTO #BOMTmp4 FROM #YC_T_MRP t1 +INNER JOIN T_ENG_BOM t0 on t1.FMATERIALID=t0.FMATERIALID--BOMͷ +WHERE 1=1 and (t0.FDOCUMENTSTATUS = 'C') and (t0.FFORBIDSTATUS='A') AND T1.FLevle=4 AND T1.FERPCLSID>=2 + + + + /*ʱУͬһϴֻһ°汾BOM*/ + delete FROM #BOMTmp4 WHERE id not in (SELECT max(id) FROM #BOMTmp4 group by FMATERIALID) + + +--ݵ弶ǶƻIJƷѯ弶ƷIJϢ +INSERT INTO #YC_T_MRP(FBOMNumber,FMATERIALID,ϱ,,Ʒ,,ĸ,FQty,FLevle,FERPCLSID,FOrderNum,FBOMID, +FSEQ1,FSEQ2,FSEQ3,FSEQ4,FSEQ5,FSEQ6,FParentNumber) +SELECT t5.FNUMBER,t7.FMATERIALID,t7.FNUMBER 'ϱ',T9.FNAME '',t5.FYIELDRATE 'Ʒ', +t6.FNUMERATOR '',t6.FDENOMINATOR 'ĸ',ROUND(t6.FNUMERATOR/t6.FDENOMINATOR,10) 'FQty', +'5' 'FLevle',t8.FERPCLSID 'FERPCLSID',T1.FOrderNum,0 'FBOMID', +t1.FSEQ1 'FSEQ1',t1.FSEQ2 'FSEQ2',t1.FSEQ3 'FSEQ3',t1.FSEQ4 'FSEQ4', t1.FSEQ5'FSEQ5',T6.FSEQ 'FSEQ6' +,t1.ϱ 'FParentNumber' +FROM #YC_T_MRP t1 +INNER JOIN T_ENG_BOM t5 on t1.FMATERIALID=t5.FMATERIALID--BOMͷ +LEFT OUTER JOIN T_ENG_BOMCHILD t6 on t5.FID=t6.FID--BOM¼ +INNER JOIN T_BD_MATERIAL t7 on t6.FMATERIALID=t7.FMATERIALID --ϱ +LEFT OUTER JOIN t_BD_MaterialBase t8 ON t8.FMATERIALID = t7.FMATERIALID --ϱ +LEFT OUTER JOIN T_BD_MATERIAL_L t9 ON (t6.FMATERIALID = t9.FMATERIALID AND t9.FLocaleId = 2052)--ϱ +INNER JOIN #BOMTmp4 t10 on t5.FMATERIALID=t10.FMATERIALID AND T5.FNUMBER=T10.FNUMBER +WHERE (t7.FFORBIDSTATUS = 'A') AND T1.FLevle=4 AND T1.FERPCLSID>=2 +AND t5.FDOCUMENTSTATUS = 'C' + +UPDATE #YC_T_MRP SET BOM㼶 =REPLICATE('.', FLevle) + + convert(varchar(4),FLevle) + +--select * from #YC_T_MRP + + +--ⵥ +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TSE.FENTRYID fbillentryid, 0 forderby,'I' fstockio, TSE.FMATERIALID fmaterialid, +ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, TSE.FSTOCKID fstockid, +ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid,'ⵥ' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno, 0 fbaseqcqty, TSE.FBASEREALQTY fbaseinqty, 0 fbaseoutqty +FROM T_PRD_INSTOCK TS +INNER JOIN T_PRD_INSTOCKENTRY TSE ON TSE.FID = TS.FID +LEFT OUTER JOIN T_PRD_INSTOCKENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +--((TS.FDATE >= '2019-07-01 00:00:00') AND (TS.FDATE <= '2019-11-12 23:59:59')) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND TS.FENTRUSTINSTOCKID = 0) + +--and ts.FBILLNO ='MM1907010113' + +--ʼ + +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID, 0) fauxpropid, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, 'ʼ', SUM(TSE.FBASEREALQTY) fbaseqcqty +FROM T_PRD_INSTOCK TS INNER JOIN T_PRD_INSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND TS.FENTRUSTINSTOCKID = 0) +GROUP BY TS.FSTOCKORGID, TSE.FOWNERTYPEID, TSE.FOWNERID, TS.FDATE, TSE.FMATERIALID, ISNULL(TSE.FAUXPROPID, 0), ISNULL(TSE.FLOT_TEXT, ' '), +ISNULL(TSE.FMTONO, ' '), TSE.FSTOCKID, ISNULL(TSE.FSTOCKLOCID, 0), TSE.FSTOCKSTATUSID, TSE.FKEEPERTYPEID, TSE.FKEEPERID, TSE.FPRODUCEDATE,TSE.FEXPIRYDATE, ISNULL(TSE.FBOMID, 0) + + +--ⵥ +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid , TSE.FENTRYID fbillentryid, 0 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE. +FSTOCKSTATUSID fstockstatusid, 'ⵥ' fbillname, +TS.FID fbillid, TSE.FSEQ fbillseqid, TS.FBILLNO fbillno, 0 fbaseqcqty, TSE.FBASEUNITQTY fbaseinqty, 0 fbaseoutqty +--t_STK_InStock +FROM T_STK_INSTOCK TS INNER JOIN T_STK_INSTOCKENTRY TSE ON TSE.FID = TS.FID + +INNER JOIN T_STK_INSTOCKENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_STK_INSTOCKFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) + and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +--((TS.FDATE >= '2019-07-01 00:00:00') AND (TS.FDATE <= '2019-11-12 23:59:59')) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND TSF.FISGENFORIOS = '0') +--ʼ + +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID,FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid,'ʼ', SUM(TSE.FBASEUNITQTY) fbaseqcqty +FROM T_STK_INSTOCK TS INNER JOIN T_STK_INSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_INSTOCKFIN TSF ON TSE.FID = TSF.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (( +((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND TSF.FISGENFORIOS = '0') +GROUP BY TS.FSTOCKORGID, TSE.FOWNERTYPEID, TSE.FOWNERID, TS.FDATE, TSE.FMATERIALID, ISNULL(TSE.FAUXPROPID, 0), +ISNULL(TSE.FLOT_TEXT, ' '), ISNULL(TSE.FMTONO, ' '), TSE.FSTOCKID, ISNULL(TSE.FSTOCKLOCID, 0), TSE.FSTOCKSTATUSID, TSE.FKEEPERTYPEID, TSE.FKEEPERID, TSE. +FPRODUCEDATE, TSE.FEXPIRYDATE, ISNULL(TSE.FBOMID, 0) + + + +--ⵥ + +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, +FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY,FBASEINQTY, FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TSE.FENTRYID fbillentryid, 0 forderby, 'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FRECEIVEAUXPROPID, 0) fauxpropid, TS.FDATE fdate, +TSE.FRECEIVESTOCKID fstockid, ISNULL(TSE.FRECEIVESTOCKLOCID, 0) fstocklocid, TSE.FRECEIVESTOCKSTATUS fstockstatusid, 'ⵥ' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty, 0 fbaseinqty, TSE.FBASEUNITQTY fbaseoutqty +FROM T_STK_INSTOCK TS INNER JOIN T_STK_INSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_INSTOCKENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_STK_INSTOCKFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +--((TS.FDATE >= '2019-07-01 00:00:00')AND (TS.FDATE <= '2019-11-12 23:59:59')) +AND (TSE.FRECEIVESTOCKID > 0)) AND (TSE.FRECEIVESTOCKSTATUS > 0)) AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +AND TS.FCANCELSTATUS = 'A')) AND TSF.FISGENFORIOS = '0') + AND TSE.FRECEIVESTOCKFLAG = '1') + +--ʼ + +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, +TSE.FMATERIALID fmaterialid, ISNULL(TSE.FRECEIVEAUXPROPID, 0) fauxpropid, +TSE.FRECEIVESTOCKID fstockid, ISNULL(TSE.FRECEIVESTOCKLOCID, 0) fstocklocid, +TSE.FRECEIVESTOCKSTATUS fstockstatusid, 'ʼ', (0 - SUM(TSE.FBASEUNITQTY)) fbaseqcqty + +FROM T_STK_INSTOCK TS INNER JOIN T_STK_INSTOCKENTRY TSE ON TSE.FID = TS.FID INNER JOIN T_STK_INSTOCKFIN TSF ON TSE.FID = TSF.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (TSE.FRECEIVESTOCKID > 0)) +AND (TSE.FRECEIVESTOCKSTATUS > 0)) AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +AND TS.FCANCELSTATUS = 'A')) AND TSF.FISGENFORIOS = '0') AND TSE.FRECEIVESTOCKFLAG = '1') +GROUP BY TS.FSTOCKORGID, TSE.FRECEIVEOWNERTYPEID, TSE.FRECEIVEOWNERID, TS.FDATE, TSE.FMATERIALID, ISNULL(TSE.FRECEIVEAUXPROPID, 0), +ISNULL(TSE.FRECEIVELOT_TEXT, ' '), ISNULL(TSE.FRECEIVEMTONO, ' '), TSE.FRECEIVESTOCKID, ISNULL(TSE.FRECEIVESTOCKLOCID, 0), +TSE.FRECEIVESTOCKSTATUS, TSE.FKEEPERTYPEID, TSE.FKEEPERID, TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, ISNULL(TSE.FBOMID, 0) + + +--ϵ + + + +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, +FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) +--ϵ +SELECT TS.FSTOCKORGID fstockorgid, TSE.FENTRYID fbillentryid, 0 forderby, 'O' fstockio, TSE.FMATERIALID fmaterialid, +ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, +'ϵ' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, TS.FBILLNO fbillno, +0 fbaseqcqty, 0 fbaseinqty, TSED.FBASESTOCKACTUALQTY fbaseoutqty +FROM T_PRD_PICKMTRL TS INNER JOIN T_PRD_PICKMTRLDATA TSE ON TSE.FID = TS.FID +INNER JOIN T_PRD_PICKMTRLDATA_A TSED ON TSED.FENTRYID = TSE.FENTRYID +LEFT OUTER JOIN T_PRD_PICKMTRLDATA_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND + TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + +--ʼ + +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, +ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, +TSE.FSTOCKSTATUSID fstockstatusid, 'ʼ',SUM(0 - TSED.FBASESTOCKACTUALQTY) fbaseqcqty + +FROM T_PRD_PICKMTRL TS INNER JOIN T_PRD_PICKMTRLDATA TSE ON TSE.FID = TS.FID +INNER JOIN T_PRD_PICKMTRLDATA_A TSED ON TSED.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ( +((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A')AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID, TSED.FOWNERTYPEID, TSED.FOWNERID, TSE.FMATERIALID, ISNULL(TSE.FAUXPROPID, 0), ISNULL(TSE.FLOT_TEXT, ' '), + ISNULL(TSE.FMTONO, ' '), TSE.FSTOCKID, ISNULL(TSE.FSTOCKLOCID, 0), TSE.FSTOCKSTATUSID, TSED.FKEEPERTYPEID, + TSED.FKEEPERID, TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, ISNULL(TSE.FBOMID, 0), TS.FDATE + +--۳ⵥ + +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TSE.FENTRYID fbillentryid, 0 forderby, 'O' fstockio,TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, '۳ⵥ' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, TS.FBILLNO fbillno, +0 fbaseqcqty, 0 fbaseinqty, TSE.FBASEUNITQTY fbaseoutqty +FROM T_SAL_OUTSTOCK TS INNER JOIN T_SAL_OUTSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_SAL_OUTSTOCKENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_SAL_OUTSTOCKFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_MATERIALBASE TMB ON TSE.FMATERIALID = TMB.FMATERIALID +INNER JOIN T_SAL_OUTSTOCKENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND (TSEF.FRowType = 'Son' OR TSEF.FRowType = 'Standard')) +AND TSF.FISGENFORIOS = '0') AND (TMB.FERPCLSID <> '6')) +--AND TS.FBILLNO='SA1907050103' + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) + + SELECT TS.FSTOCKORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, + ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, + TSE.FSTOCKSTATUSID fstockstatusid, + 'ʼ', SUM(0 - TSE.FBASEUNITQTY) fbaseqcqty + FROM T_SAL_OUTSTOCK TS INNER JOIN T_SAL_OUTSTOCKENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_SAL_OUTSTOCKENTRY_F TSEF ON TSE.FENTRYID = TSEF.FENTRYID + INNER JOIN T_SAL_OUTSTOCKFIN TSF ON TSE.FID = TSF.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_MATERIALBASE TMB ON TSE.FMATERIALID = TMB.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((( + ((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) + and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') + AND TS.FCANCELSTATUS = 'A')) AND (TSEF.FRowType = 'Son' OR TSEF.FRowType = 'Standard')) AND TSF.FISGENFORIOS = '0') AND (TMB.FERPCLSID <> '6')) + GROUP BY TS.FSTOCKORGID, TSE.FOWNERTYPEID, TSE.FOWNERID, TS.FDATE, TSE.FMATERIALID, ISNULL(TSE.FAUXPROPID, 0), ISNULL(TSE.FLOT_TEXT, ' '), + ISNULL(TSE.FMTONO, ' '), TSE.FSTOCKID, ISNULL(TSE.FSTOCKLOCID, 0), TSE.FSTOCKSTATUSID, TSE.FKEEPERTYPEID, TSE.FKEEPERID, TSE.FPRODUCEDATE, + TSE.FEXPIRYDATE, ISNULL(TSE.FBOMID, 0) + + +--ϵ +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TSE.FENTRYID fbillentryid, 0 forderby, 'O' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, 'ϵ' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno, 0 fbaseqcqty, 0 fbaseinqty, TSEQ.FBASESTOCKACTUALQTY fbaseoutqty +FROM T_PRD_FEEDMTRL TS +INNER JOIN T_PRD_FEEDMTRLDATA TSE ON TSE.FID = TS.FID +INNER JOIN T_PRD_FEEDMTRLDATA_Q TSEQ ON (TSE.FID = TSEQ.FID AND TSE.FENTRYID = TSEQ.FENTRYID) +LEFT OUTER JOIN T_PRD_FEEDMTRLDATA_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +--and ts.FBILLNO in ('M31910140010','M31907010006') + + +--ʼ + +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, +ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, + TSE.FSTOCKSTATUSID fstockstatusid, 'ʼ' fbillname,SUM(0 - TSEQ.FBASESTOCKACTUALQTY) fbaseqcqty + FROM T_PRD_FEEDMTRL TS INNER JOIN T_PRD_FEEDMTRLDATA TSE ON TSE.FID = TS.FID + INNER JOIN T_PRD_FEEDMTRLDATA_Q TSEQ ON (TSE.FID = TSEQ.FID AND TSE.FENTRYID = TSEQ.FENTRYID) + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) + and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) + AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID, TSE.FOWNERTYPEID, TSE.FOWNERID, TS.FDATE, TSE.FMATERIALID, ISNULL(TSE.FAUXPROPID, 0), ISNULL(TSE.FLOT_TEXT, ' '), ISNULL(TSE.FMTONO, ' '), + TSE.FSTOCKID, ISNULL(TSE.FSTOCKLOCID, 0), TSE.FSTOCKSTATUSID, TSE.FKEEPERTYPEID, TSE.FKEEPERID, TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, ISNULL(TSE.FBOMID, 0) + + +--ϵ +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TSE.FENTRYID fbillentryid, 0 forderby, 'O' fstockio, TSE.FMATERIALID fmaterialid, +ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, 'ϵ' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno, 0 fbaseqcqty, 0 fbaseinqty, (0 - TSEA.FBASESTOCKQTY) fbaseoutqty +FROM T_PRD_RETURNMTRL TS +INNER JOIN T_PRD_RETURNMTRLENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_PRD_RETURNMTRLENTRY_A TSEA ON TSE.FENTRYID = TSEA.FENTRYID +LEFT OUTER JOIN T_PRD_RETURNMTRLENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +AND TS.FCANCELSTATUS = 'A')) +--and ts.FBILLNO='M21907200004' + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) +SELECT TS.FSTOCKORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, + TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'ʼ', SUM(TSEA.FBASESTOCKQTY) fbaseqcqty + FROM T_PRD_RETURNMTRL TS INNER JOIN T_PRD_RETURNMTRLENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_PRD_RETURNMTRLENTRY_A TSEA ON TSE.FENTRYID = TSEA.FENTRYID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) + and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID, TSE.FOWNERTYPEID, TSE.FOWNERID, TS.FDATE, TSE.FMATERIALID, ISNULL(TSE.FAUXPROPID,0), + ISNULL(TSE.FLOT_TEXT, ' '), ISNULL(TSE.FMTONO, ' '), TSE.FSTOCKID, ISNULL(TSE.FSTOCKLOCID, 0), TSE.FSTOCKSTATUSID, + TSE.FKEEPERTYPEID, TSE.FKEEPERID, TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, ISNULL(TSE.FBOMID, 0) + + +--ϵ +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TSE.FENTRYID fbillentryid, +0 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, 'ϵ' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, TS.FBILLNO fbillno, +0 fbaseqcqty, (0 - TSE.FBASEUNITQTY) fbaseinqty, 0 fbaseoutqty +FROM T_PUR_MRB TS INNER JOIN T_PUR_MRBENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_PUR_MRBENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_PUR_MRBFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_MATERIALBASE TMB ON TM.FMATERIALID = TMB.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND (TSE.FSTOCKID > 0)) +AND TSF.FISGENFORIOS = '0') AND (TSE.FSTOCKFLAG = '1' OR ((TS.FMRTYPE = 'B' AND TMB.FISINVENTORY = '1') AND (TSE.FStockStatusId <> TSE.FReceiveStockStatusId)))) + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) +SELECT TS.FSTOCKORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, +ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, 'ʼ', SUM(0 - TSE.FBASEUNITQTY) fbaseqcqty +FROM T_PUR_MRB TS INNER JOIN T_PUR_MRBENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_PUR_MRBFIN TSF ON TSE.FID = TSF.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_MATERIALBASE TMB ON TM.FMATERIALID = TMB.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) + and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) + AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND (TSE.FSTOCKID > 0)) + AND TSF.FISGENFORIOS = '0') AND (TSE.FSTOCKFLAG = '1' OR ((TS.FMRTYPE= 'B' AND TMB.FISINVENTORY = '1') + AND (TSE.FStockStatusId <> TSE.FReceiveStockStatusId)))) + GROUP BY TS.FSTOCKORGID, TSE.FOWNERTYPEID, TSE.FOWNERID, TS.FDATE, TSE.FMATERIALID, ISNULL(TSE.FAUXPROPID, 0), + ISNULL(TSE.FLOT_TEXT, ''), ISNULL(TSE.FMTONO,''), TSE.FSTOCKID, ISNULL(TSE.FSTOCKLOCID, 0), TSE.FSTOCKSTATUSID, + TSE.FKEEPERTYPEID, TSE.FKEEPERID, TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, ISNULL(TSE.FBOMID, 0) + + +--ϵ ±־ FSTOCKFLAG 0:δ 1:Ѹ + +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TSE.FENTRYID fbillentryid, 0 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid,'ϵ' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, TS.FBILLNO fbillno, 0 fbaseqcqty, TSE.FBASEUNITQTY fbaseinqty, 0 fbaseoutqty +FROM T_PUR_RECEIVE TS INNER JOIN T_PUR_RECEIVEENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_PUR_RECEIVEENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_PUR_RECEIVEFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_MATERIALBASE TMB ON TMB.FMaterialId = TSE.FMaterialId + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND TMB.FISINVENTORY = '1') +AND (TSE.FSTOCKID > 0)) AND TSE.FSTOCKFLAG = '1') + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) +SELECT TS.FSTOCKORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, 'ʼ', SUM(TSE.FBASEUNITQTY) fbaseqcqty + +FROM T_PUR_RECEIVE TS +INNER JOIN T_PUR_RECEIVEENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +AND TS.FCANCELSTATUS = 'A')) AND (TSE.FSTOCKID > 0)) AND TSE.FSTOCKFLAG = '1') +GROUP BY TS.FSTOCKORGID, TSE.FOWNERTYPEID, TSE.FOWNERID, TS.FDATE, TSE.FMATERIALID, ISNULL(TSE.FAUXPROPID, 0), + ISNULL(TSE.FLOT_TEXT, ' '), ISNULL(TSE.FMTONO, ' '), TSE.FSTOCKID, ISNULL(TSE.FSTOCKLOCID, 0), TSE.FSTOCKSTATUSID, + TSE.FKEEPERTYPEID, TSE.FKEEPERID, TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, ISNULL(TSE.FBOMID, 0) + + + +--˻ + +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + +--˻ +SELECT TS.FSTOCKORGID fstockorgid, TSE.FENTRYID fbillentryid, 0 forderby,'O' fstockio, +TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, '˻' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno, 0 fbaseqcqty, 0 fbaseinqty, (0 - TSE.FBASEUNITQTY) fbaseoutqty +FROM T_SAL_RETURNSTOCK TS INNER JOIN T_SAL_RETURNSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_SAL_RETURNSTOCKENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_SAL_RETURNSTOCKFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_MATERIALBASE TMB ON TSE.FMATERIALID = TMB.FMATERIALID INNER JOIN T_SAL_RETURNSTOCKENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +AND (TSEF.FRowType = 'Son' OR TSEF.FRowType = 'Standard')) AND TSF.FISGENFORIOS = '0') AND (TMB.FERPCLSID <> '6')) + +--AND TS.FBILLNO ='SB1908230003' + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) +SELECT TS.FSTOCKORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, +ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, + TSE.FSTOCKSTATUSID fstockstatusid, 'ʼ', SUM(TSE.FBASEUNITQTY) fbaseqcqty + FROM T_SAL_RETURNSTOCK TS INNER JOIN T_SAL_RETURNSTOCKENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_SAL_RETURNSTOCKENTRY_F TSEF ON TSE.FENTRYID = TSEF.FENTRYID + INNER JOIN T_SAL_RETURNSTOCKFIN TSF ON TSE.FID = TSF.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_MATERIALBASE TMB ON TSE.FMATERIALID = TMB.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE ((((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') + AND TS.FCANCELSTATUS = 'A')) AND (TSEF.FRowType = 'Son' OR TSEF.FRowType = 'Standard')) AND TSF.FISGENFORIOS = '0') AND (TMB.FERPCLSID <> '6')) +GROUP BY TS.FSTOCKORGID, TSE.FOWNERTYPEID, TSE.FOWNERID, TS.FDATE, TSE.FMATERIALID, ISNULL(TSE.FAUXPROPID, 0), +ISNULL(TSE.FLOT_TEXT, ' '), ISNULL(TSE.FMTONO, ' '), TSE.FSTOCKID, ISNULL(TSE.FSTOCKLOCID, 0), TSE.FSTOCKSTATUSID, +TSE.FKEEPERTYPEID, TSE.FKEEPERID, TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, ISNULL(TSE.FBOMID, 0) + + + + +--ⵥ +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TSE.FENTRYID fbillentryid, 0 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, 'ⵥ' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno, 0 fbaseqcqty,TSE.FBASEREALQTY fbaseinqty,0 fbaseoutqty +FROM T_SP_INSTOCK TS INNER JOIN T_SP_INSTOCKENTRY TSE ON TSE.FID = TS.FID +LEFT OUTER JOIN T_SP_INSTOCKENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) + +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) +SELECT TS.FSTOCKORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, 'ʼ', SUM(TSE.FBASEREALQTY) fbaseqcqty +FROM T_SP_INSTOCK TS INNER JOIN T_SP_INSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID, TSE.FOWNERTYPEID, TSE.FOWNERID, TS.FDATE, TSE.FMATERIALID, ISNULL(TSE.FAUXPROPID, 0), +ISNULL(TSE.FLOT_TEXT, ' '), ISNULL(TSE.FMTONO, ' '), TSE.FSTOCKID, ISNULL(TSE.FSTOCKLOCID, 0), TSE.FSTOCKSTATUSID, TSE.FKEEPERTYPEID, +TSE.FKEEPERID, TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, ISNULL(TSE.FBOMID, 0) + + +--ϵ + +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TSE.FENTRYID fbillentryid, 0 forderby, 'O' fstockio, TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid,'ϵ' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno, 0 fbaseqcqty, 0 fbaseinqty, TSE.FBASEACTUALQTY fbaseoutqty + +FROM T_SP_PICKMTRL TS INNER JOIN T_SP_PICKMTRLDATA TSE ON TSE.FID = TS.FID +LEFT OUTER JOIN T_SP_PICKMTRLDATA_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, + TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid,'ʼ',(0 - SUM(TSE.FBASEACTUALQTY)) fbaseqcqty +FROM T_SP_PICKMTRL TS INNER JOIN T_SP_PICKMTRLDATA TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID, TSE.FOWNERTYPEID, TSE.FOWNERID, TS.FDATE, TSE.FMATERIALID, ISNULL(TSE.FAUXPROPID, 0), ISNULL(TSE.FLOT_TEXT, ' '), ISNULL(TSE.FMTONO, ' '), TSE.FSTOCKID, +ISNULL(TSE.FSTOCKLOCID, 0), TSE.FSTOCKSTATUSID, TSE.FKEEPERTYPEID, TSE.FKEEPERID, TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, ISNULL(TSE.FBOMID, 0) + +--ϵ + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TSE.FENTRYID fbillentryid, + 0 forderby, 'O' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, 'ϵ' fbillname, TS.FID fbillid, TSE.FSEQ + fbillseqid, TS.FBILLNO fbillno, 0 fbaseqcqty, 0 fbaseinqty, (0 - TSE.FBASEQTY) fbaseoutqty + +FROM T_SP_RETURNMTRL TS INNER JOIN T_SP_RETURNMTRLENTRY TSE ON TSE.FID = TS.FID +LEFT OUTER JOIN T_SP_RETURNMTRLENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) +SELECT TS.FSTOCKORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, + TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid,'ʼ', SUM(TSE.FBASEQTY) fbaseqcqty +FROM T_SP_RETURNMTRL TS INNER JOIN T_SP_RETURNMTRLENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID, TSE.FOWNERTYPEID, TSE.FOWNERID, TS.FDATE, TSE.FMATERIALID, ISNULL(TSE.FAUXPROPID, 0), ISNULL(TSE.FLOT_TEXT, ' '), ISNULL(TSE.FMTONO, ' '), TSE.FSTOCKID, ISNULL(TSE.FSTOCKLOCID, 0), + TSE.FSTOCKSTATUSID, TSE.FKEEPERTYPEID, TSE.FKEEPERID, TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, ISNULL(TSE.FBOMID, 0) + +--װж + +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TSE.FENTRYID fbillentryid, 0 forderby, CASE WHEN UPPER(TS.FAFFAIRTYPE) = 'ASSEMBLY' THEN 'I' ELSE 'O' END fstockio, +TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, +TSE.FSTOCKSTATUSID fstockstatusid, 'װж' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, TS.FBILLNO fbillno, 0 fbaseqcqty, +CASE WHEN UPPER(TS.FAFFAIRTYPE) = 'ASSEMBLY' THEN TSE.FBASEQTY ELSE 0 END fbaseinqty, CASE WHEN UPPER(TS.FAFFAIRTYPE) = 'DASSEMBLY' THEN TSE.FBASEQTY ELSE 0 END fbaseoutqty +FROM T_STK_ASSEMBLY TS INNER JOIN T_STK_ASSEMBLYPRODUCT TSE ON TSE.FID = TS.FID +LEFT OUTER JOIN T_STK_ASSEMBLYPRODUCT_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE +(((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) + + SELECT TS.FSTOCKORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, + TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, 'ʼ', + SUM(CASE WHEN UPPER(TS.FAFFAIRTYPE) = 'ASSEMBLY' THEN TSE.FBASEQTY ELSE (0 - TSE.FBASEQTY) END) fbaseqcqty + + FROM T_STK_ASSEMBLY TS INNER JOIN T_STK_ASSEMBLYPRODUCT TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) + and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID, TSE.FOWNERTYPEID, TSE.FOWNERID, TS.FDATE, TSE.FMATERIALID, ISNULL(TSE.FAUXPROPID, 0), ISNULL(TSE.FLOT_TEXT, ' '), ISNULL(TSE.FMTONO, ' '), TSE.FSTOCKID, ISNULL(TSE.FSTOCKLOCID, 0), TSE.FSTOCKSTATUSID, TSE.FKEEPERTYPEID, + TSE.FKEEPERID, TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, ISNULL(TSE.FBOMID, 0) + + +--װж + +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TSE.FDETAILID fbillentryid, 0 forderby, CASE WHEN UPPER(TS.FAFFAIRTYPE) = 'DASSEMBLY' THEN 'I' ELSE 'O' END fstockio, +TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate,TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, +TSE.FSTOCKSTATUSID fstockstatusid, 'װж' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, TS.FBILLNO fbillno, 0 fbaseqcqty, + +CASE WHEN UPPER(TS.FAFFAIRTYPE) = 'ASSEMBLY' THEN 0 ELSE TSE.FBASEQTY END fbaseinqty, CASE WHEN UPPER(TS.FAFFAIRTYPE) = 'DASSEMBLY' THEN 0 ELSE TSE.FBASEQTY END fbaseoutqty +FROM T_STK_ASSEMBLY TS INNER JOIN T_STK_ASSEMBLYPRODUCT TSEH ON TSEH.FID = TS.FID +INNER JOIN T_STK_ASSEMBLYSUBITEM TSE ON TSE.FENTRYID = TSEH.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +LEFT OUTER JOIN T_STK_ASSEMBLYPRODUCT_R TSR ON TSR.FENTRYID = TSE.FENTRYID + +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) + + SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, + ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, + TSE.FSTOCKSTATUSID fstockstatusid, 'ʼ', SUM(CASE WHEN UPPER(TS.FAFFAIRTYPE) = 'DASSEMBLY' THEN TSE.FBASEQTY ELSE (0 - TSE.FBASEQTY) END) fbaseqcqty + FROM T_STK_ASSEMBLY TS INNER JOIN T_STK_ASSEMBLYPRODUCT TSEH ON TSEH.FID = TS.FID + INNER JOIN T_STK_ASSEMBLYSUBITEM TSE ON TSE.FENTRYID = TSEH.FENTRYID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) + and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID, TSE.FOWNERTYPEID, TSE.FOWNERID, TSE.FMATERIALID, ISNULL(TSE.FAUXPROPID, 0), ISNULL(TSE.FLOT_TEXT, ' '), + ISNULL(TSE.FMTONO, ' '), TSE.FSTOCKID, ISNULL(TSE.FSTOCKLOCID, 0), TSE.FSTOCKSTATUSID, TSE.FKEEPERTYPEID, TSE.FKEEPERID, + TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, ISNULL(TSE.FBOMID, 0), TS.FDATE + + + +--ŵ + +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TSE.FENTRYID fbillentryid, 0 forderby, CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'A' THEN 'O' ELSE 'I' END fstockio, +TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, +TSE.FSTOCKSTATUSID fstockstatusid, 'ŵ' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, TS.FBILLNO fbillno, 0 fbaseqcqty, +CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'B' THEN TSE.FBASEQTY ELSE 0 END fbaseinqty, CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'A' THEN TSE.FBASEQTY ELSE 0 END fbaseoutqty +FROM T_STK_LOTADJUST TS INNER JOIN T_STK_LOTADJUSTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +--((TS.FDATE >= '2019-07-01 00:00:00') AND (TS.FDATE <= '2019-11-12 23:59:59')) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, + TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, + 'ʼ', SUM(CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'B' THEN TSE.FBASEQTY ELSE (0 - TSE.FBASEQTY) END) fbaseqcqty + +FROM T_STK_LOTADJUST TS INNER JOIN T_STK_LOTADJUSTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID, TSE.FOWNERTYPEID, TSE.FOWNERID, TS.FDATE, TSE.FMATERIALID, ISNULL(TSE.FAUXPROPID, 0), ISNULL(TSE.FLOT_TEXT, ' '), + ISNULL(TSE.FMTONO, ' '), TSE.FSTOCKID, ISNULL(TSE.FSTOCKLOCID, 0), TSE.FSTOCKSTATUSID, TSE.FKEEPERTYPEID, TSE.FKEEPERID, TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, + ISNULL(TSE.FBOMID, 0) + + + +--ⵥ + + +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) +SELECT TS.FSTOCKORGID fstockorgid, TSE.FENTRYID fbillentryid, 0 forderby, 'I' fstockio,TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid,'ⵥ' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, TS.FBILLNO fbillno, +0 fbaseqcqty,CASE WHEN TS.FSTOCKDIRECT = 'GENERAL' THEN TSE.FBASEQTY ELSE (0 - TSE.FBASEQTY) END fbaseinqty, 0 fbaseoutqty + +FROM T_STK_MISCELLANEOUS TS INNER JOIN T_STK_MISCELLANEOUSENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_MISCELLANEOUSENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +--((TS.FDATE >= '2019-07-01 00:00:00') AND (TS.FDATE<= '2019-11-12 23:59:59')) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + --ʼ + +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, + TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, 'ʼ', + SUM(CASE WHEN TS.FSTOCKDIRECT = 'GENERAL' THEN TSE.FBASEQTY ELSE (0 - TSE.FBASEQTY) END) fbaseqcqty + FROM T_STK_MISCELLANEOUS TS INNER JOIN T_STK_MISCELLANEOUSENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID, TSE.FOWNERTYPEID, TSE.FOWNERID, TS.FDATE, TSE.FMATERIALID, ISNULL(TSE.FAUXPROPID, 0), +ISNULL(TSE.FLOT_TEXT, ' '), ISNULL(TSE.FMTONO, ' '), TSE.FSTOCKID, +ISNULL(TSE.FSTOCKLOCID, 0), TSE.FSTOCKSTATUSID, TSE.FKEEPERTYPEID, TSE.FKEEPERID, TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, ISNULL(TSE.FBOMID, 0) + + + +--ⵥ + +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TSE.FENTRYID fbillentryid, 0 forderby, 'O' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid,'ⵥ' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, TS.FBILLNO fbillno, +0 fbaseqcqty, 0 fbaseinqty,CASE WHEN TS.FSTOCKDIRECT = 'GENERAL' THEN TSE.FBASEQTY ELSE (0 - TSE.FBASEQTY) END fbaseoutqty +FROM T_STK_MISDELIVERY TS +INNER JOIN T_STK_MISDELIVERYENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_MISDELIVERYENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + --ʼ +INSERT INTO #TMP (FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) + + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, + TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, 'ʼ', + SUM(CASE WHEN TS.FSTOCKDIRECT = 'GENERAL' THEN (0 - TSE.FBASEQTY) ELSE TSE.FBASEQTY END) fbaseqcqty + FROM T_STK_MISDELIVERY TS INNER JOIN T_STK_MISDELIVERYENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) + and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID, TSE.FOWNERTYPEID, TSE.FOWNERID, TS.FDATE, TSE.FMATERIALID, ISNULL(TSE.FAUXPROPID, 0), ISNULL(TSE.FLOT_TEXT, ' '), ISNULL(TSE.FMTONO, ' '), TSE.FSTOCKID, ISNULL(TSE.FSTOCKLOCID, 0), + TSE.FSTOCKSTATUSID, TSE.FKEEPERTYPEID, TSE.FKEEPERID, TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, ISNULL(TSE.FBOMID, 0) + + +--мӹⵥ + +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TSE.FENTRYID fbillentryid, 0 forderby, 'I' fstockio,TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, 'мӹⵥ' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno, 0 fbaseqcqty, FBASEQTY fbaseinqty,0 fbaseoutqty +FROM T_STK_OEMINSTOCK TS +INNER JOIN T_STK_OEMINSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_OEMINSTOCKENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +--((TS.FDATE >= '2019-07-01 00:00:00') AND (TS.FDATE <= '2019-11-12 23:59:59')) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, +ISNULL(TSE.FAUXPROPID, 0) fauxpropid, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid,'ʼ', SUM(FBASEQTY) fbaseqcqty +FROM T_STK_OEMINSTOCK TS INNER JOIN T_STK_OEMINSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID, TSE.FOWNERTYPEID, TSE.FOWNERID, TS.FDATE, TSE.FMATERIALID, ISNULL(TSE.FAUXPROPID, 0), ISNULL(TSE.FLOT_TEXT, ' '), ISNULL(TSE.FMTONO, ' '), TSE.FSTOCKID, ISNULL(TSE.FSTOCKLOCID, 0), TSE.FSTOCKSTATUSID, +TSE.FKEEPERTYPEID, TSE.FKEEPERID, TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, ISNULL(TSE.FBOMID, 0) + + +--мӹϵ + + +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid, 0 forderby, 'O' fstockio,TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid,'мӹϵ' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty,(0 - FBASEQTY) fbaseinqty, 0 fbaseoutqty + +FROM T_STK_OEMINSTOCKRTN TS +INNER JOIN T_STK_OEMINSTOCKRTNENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_OEMINSTOCKRTNENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND FRETURNTYPE = 'StockReMat') + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) + + SELECT TS.FSTOCKORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'O' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, + TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid,'', (0 - SUM(FBASEQTY)) fbaseqcqty + FROM T_STK_OEMINSTOCKRTN TS INNER JOIN T_STK_OEMINSTOCKRTNENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE ((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) + and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + AND FRETURNTYPE = 'StockReMat') + GROUP BY TS.FSTOCKORGID, TSE.FOWNERTYPEID, TSE.FOWNERID, TS.FDATE, TSE.FMATERIALID, + ISNULL(TSE.FAUXPROPID, 0), ISNULL(TSE.FLOT_TEXT, ' '), ISNULL(TSE.FMTONO, ' '), TSE.FSTOCKID, ISNULL(TSE.FSTOCKLOCID, 0), + TSE.FSTOCKSTATUSID, TSE.FKEEPERTYPEID, TSE.FKEEPERID, TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, ISNULL(TSE.FBOMID, 0) + +--̬ת + + +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + + +SELECT TS.FSTOCKORGID fstockorgid, TSE.FENTRYID fbillentryid, 0 forderby, CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'A' THEN 'O' ELSE 'I' END fstockio, TSE.FMATERIALID fmaterialid, +ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, +'̬ת' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, TS.FBILLNO fbillno, 0 fbaseqcqty, +CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'B' THEN TSE.FBASEQTY ELSE 0 END fbaseinqty,CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'A' THEN TSE.FBASEQTY ELSE 0 END fbaseoutqty +FROM T_STK_STATUSCONVERT TS +INNER JOIN T_STK_STATUSCONVERTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) + + +SELECT TS.FSTOCKORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, 'ʼ', +SUM(CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'B' THEN TSE.FBASEQTY ELSE (0 - TSE.FBASEQTY) END) fbaseqcqty +FROM T_STK_STATUSCONVERT TS INNER JOIN T_STK_STATUSCONVERTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID, TSE.FOWNERTYPEID, TSE.FOWNERID, TS.FDATE, TSE.FMATERIALID, ISNULL(TSE.FAUXPROPID, 0), +ISNULL(TSE.FLOT_TEXT, ' '), ISNULL(TSE.FMTONO, ' '), TSE.FSTOCKID, ISNULL(TSE.FSTOCKLOCID, 0), TSE.FSTOCKSTATUSID, +TSE.FKEEPERTYPEID, TSE.FKEEPERID, TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, ISNULL(TSE.FBOMID, 0) + + +--״̬ת + + +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + + +SELECT TS.FSTOCKORGID fstockorgid, TSE.FENTRYID fbillentryid, 0 forderby, +CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'A' THEN 'O' ELSE 'I' END fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, +'״̬ת' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, TS.FBILLNO fbillno, 0 fbaseqcqty, +CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'B' THEN TSE.FBASEQTY ELSE 0 END fbaseinqty, +CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'A' THEN TSE.FBASEQTY ELSE 0 END fbaseoutqty +FROM T_STK_STOCKCONVERT TS INNER JOIN T_STK_STOCKCONVERTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_STOCKCONVERTENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) + + +SELECT TS.FSTOCKORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid,'ʼ', +SUM(CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'B' THEN TSE.FBASEQTY ELSE (0 - TSE.FBASEQTY) END) fbaseqcqty +FROM T_STK_STOCKCONVERT TS INNER JOIN T_STK_STOCKCONVERTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID, TSE.FOWNERTYPEID, TSE.FOWNERID, TS.FDATE, TSE.FMATERIALID, ISNULL(TSE.FAUXPROPID, 0), ISNULL(TSE.FLOT_TEXT, ' '), ISNULL(TSE.FMTONO, ' '), TSE.FSTOCKID, ISNULL(TSE.FSTOCKLOCID,0), +TSE.FSTOCKSTATUSID, TSE.FKEEPERTYPEID, TSE.FKEEPERID, TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, ISNULL(TSE.FBOMID, 0) + + + +--ӯ + +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid, 0 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, +'ӯ' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, TS.FBILLNO fbillno, 0 fbaseqcqty, TSE.FBASEGAINQTY fbaseinqty,0 fbaseoutqty +FROM T_STK_STKCOUNTGAIN TS +INNER JOIN T_STK_STKCOUNTGAINENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) + and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND ((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A')) + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) + + +SELECT TS.FSTOCKORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, +'ʼ', SUM(TSE.FBASEGAINQTY) fbaseqcqty +FROM T_STK_STKCOUNTGAIN TS INNER JOIN T_STK_STKCOUNTGAINENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND ((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID, TSE.FOWNERTYPEID, TSE.FOWNERID, TS.FDATE, TSE.FMATERIALID, ISNULL(TSE.FAUXPROPID, 0), +ISNULL(TSE.FLOT_TEXT, ' '), ISNULL(TSE.FMTONO,' '), TSE.FSTOCKID, ISNULL(TSE.FSTOCKLOCID, 0), TSE.FSTOCKSTATUSID, +TSE.FKEEPERTYPEID, TSE.FKEEPERID, TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, ISNULL(TSE.FBOMID, 0) + + + +--̿ + +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TSE.FENTRYID fbillentryid, 0 forderby, 'O' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid,'̿' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, TS.FBILLNO fbillno, +0 fbaseqcqty, 0 fbaseinqty,TSE.FBASELOSSQTY fbaseoutqty +FROM T_STK_STKCOUNTLOSS TS INNER JOIN T_STK_STKCOUNTLOSSENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND ((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A')) + + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, + TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, + 'ʼ', SUM(0 - TSE.FBASELOSSQTY) fbaseqcqty + FROM T_STK_STKCOUNTLOSS TS INNER JOIN T_STK_STKCOUNTLOSSENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) + AND ((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID, TSE.FOWNERTYPEID, TSE.FOWNERID, TS.FDATE, TSE.FMATERIALID, + ISNULL(TSE.FAUXPROPID, 0), ISNULL(TSE.FLOT_TEXT, ' '), ISNULL(TSE.FMTONO, ' '), TSE.FSTOCKID, ISNULL(TSE.FSTOCKLOCID, 0), TSE.FSTOCKSTATUSID, TSE.FKEEPERTYPEID, TSE.FKEEPERID, TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, ISNULL(TSE.FBOMID, 0) + + +--ֱӵ + + +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TSE.FENTRYID fbillentryid, 0 forderby, CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 'I' ELSE 'O' END fstockio, +TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate ,TSE.FDESTSTOCKID fstockid, ISNULL(TSE.FDESTSTOCKLOCID, 0) fstocklocid, +TSE.FDESTSTOCKSTATUSID fstockstatusid, 'ֱӵ' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, TS.FBILLNO fbillno,0 fbaseqcqty, +CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN TSE.FBASEQTY ELSE 0 END fbaseinqty,CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'RETURN' THEN (0 - TSE.FBASEQTY) ELSE 0 END fbaseoutqty + +FROM T_STK_STKTRANSFERIN TS INNER JOIN T_STK_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_STKTRANSFERINENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FDESTSTOCKID = TBS.FSTOCKID + + +WHERE (((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) AND TS +.FOBJECTTYPEID = 'STK_TransferDirect') + + + +--ʼ + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, +ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TSE.FDESTSTOCKID fstockid, +ISNULL(TSE.FDESTSTOCKLOCID, 0) fstocklocid, TSE.FDESTSTOCKSTATUSID fstockstatusid,'ʼ', +SUM(CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN TSE.FBASEQTY ELSE 0 END - +CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 0 ELSE (0 - TSE.FBASEQTY) END) fbaseqcqty +FROM T_STK_STKTRANSFERIN TS INNER JOIN T_STK_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FDESTSTOCKID = TBS.FSTOCKID +WHERE (((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +AND (TS.FISGENFORIOS <> '1')) AND TS.FOBJECTTYPEID = 'STK_TransferDirect') +GROUP BY TS.FSTOCKORGID, TSE.FOWNERTYPEID, TSE.FOWNERID, TSE.FMATERIALID, ISNULL(TSE.FAUXPROPID, 0), +ISNULL(TSE.FLOT_TEXT, ' '), ISNULL(TSE.FMTONO, ' '), TSE.FDESTSTOCKID, ISNULL(TSE.FDESTSTOCKLOCID, 0), +TSE.FDESTSTOCKSTATUSID, TSE.FKEEPERTYPEID, TSE.FKEEPERID, TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, TSE.FBOMID, TS.FDATE + + + +--ֱӵ + + + +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, +FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + +SELECT TS.FSTOCKOUTORGID fstockorgid, TSE.FENTRYID fbillentryid, 0 forderby, +CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 'O' ELSE 'I' END fstockio, +TSE.FSRCMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, +TSE.FSRCSTOCKID fstockid, ISNULL(TSE.FSRCSTOCKLOCID, 0) fstocklocid, TSE.FSRCSTOCKSTATUSID fstockstatusid, +'ֱӵ' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, TS.FBILLNO fbillno,0 fbaseqcqty, +CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 0 ELSE (0 - TSE.FBASEQTY) END fbaseinqty, +CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN TSE.FBASEQTY ELSE 0 END fbaseoutqty +FROM T_STK_STKTRANSFERIN TS INNER JOIN T_STK_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_STKTRANSFERINENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FSRCMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID +WHERE (((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKOUTORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) AND TS.FOBJECTTYPEID = 'STK_TransferDirect') + + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) + +SELECT TS.FSTOCKOUTORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, +TSE.FSRCMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, +TSE.FSRCSTOCKID fstockid, ISNULL(TSE.FSRCSTOCKLOCID, 0) fstocklocid, TSE.FSRCSTOCKSTATUSID fstockstatusid, 'ʼ', + +SUM(CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 0 ELSE (0 - TSE.FBASEQTY) END - +CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN TSE.FBASEQTY ELSE 0 END) fbaseqcqty + + +FROM T_STK_STKTRANSFERIN TS INNER JOIN T_STK_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FSRCMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID +WHERE (((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKOUTORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +AND (TS.FISGENFORIOS <> '1')) AND TS.FOBJECTTYPEID = 'STK_TransferDirect') +GROUP BY TS.FSTOCKOUTORGID, TSE.FOWNERTYPEOUTID, TSE.FOWNEROUTID, TSE.FSRCMATERIALID, ISNULL(TSE.FAUXPROPID, 0), +ISNULL(TSE.FLOT_TEXT, ' '), ISNULL(TSE.FMTONO, ' '), TSE.FSRCSTOCKID, ISNULL(TSE.FSRCSTOCKLOCID, 0), TSE.FSRCSTOCKSTATUSID, +TSE.FKEEPERTYPEOUTID, TSE.FKEEPEROUTID, TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, TSE.FSRCBOMID, TS.FDATE + + +--ֲʽ뵥 + +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TSE.FENTRYID fbillentryid, 0 forderby, CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 'I' ELSE 'O' END fstockio, +TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate,TSE.FDESTSTOCKID fstockid, ISNULL(TSE.FDESTSTOCKLOCID, 0) fstocklocid, +TSE.FDESTSTOCKSTATUSID fstockstatusid, 'ֲʽ뵥' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, TS.FBILLNO fbillno, +0 fbaseqcqty, CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GEN +ERAL' THEN TSE.FBASEQTY ELSE 0 END fbaseinqty, +CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'RETURN' THEN (0 - TSE.FBASEQTY) ELSE 0 END fbaseoutqty + +FROM T_STK_STKTRANSFERIN TS INNER JOIN T_STK_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_STKTRANSFERINENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FDESTSTOCKID = TBS.FSTOCKID +WHERE (((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) AND TS.FOBJECTTYPEID = 'STK_TRANSFERIN') + + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, + TSE.FDESTSTOCKID fstockid, ISNULL(TSE.FDESTSTOCKLOCID, 0) fstocklocid, TSE.FDESTSTOCKSTATUSID fstockstatusid,'ʼ', + SUM(TSE.FBASEQTY) fbaseqcqty + FROM T_STK_STKTRANSFERIN TS INNER JOIN T_STK_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FDESTSTOCKID = TBS.FSTOCKID + WHERE (((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) + and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + AND (TS.FISGENFORIOS <> '1')) AND TS.FOBJECTTYPEID = 'STK_TRANSFERIN') + GROUP BY TS.FSTOCKORGID, TSE.FOWNERTYPEID, TSE.FOWNERID, TSE.FMATERIALID, ISNULL(TSE.FAUXPROPID, 0), ISNULL(TSE.FDESTLOT_TEXT, ' '), ISNULL(TSE.FMTONO, ' '), TSE.FDESTSTOCKID, ISNULL(TSE.FDESTSTOCKLOCID, 0), TSE.FDESTSTOCKSTATUSID, + TSE.FKEEPERTYPEID, TSE.FKEEPERID, TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, TSE.FBOMID, TS.FDATE + +--ֲʽ뵥 + + +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + +SELECT TS.FSTOCKOUTORGID fstockorgid, TSE.FENTRYID fbillentryid, 0 forderby, 'I' fstockio, TSE.FSRCMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, +TSE.FSRCSTOCKID fstockid, ISNULL(TSE.FSRCSTOCKLOCID, 0) fstocklocid, TSE.FSRCSTOCKSTATUSID fstockstatusid, 'ֲʽ뵥' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno, 0 fbaseqcqty,((0 - TSE.FBASEQTY) - TSET.FBASEPATHLOSSQTY) fbaseinqty, 0 fbaseoutqty +FROM T_STK_STKTRANSFERIN TS INNER JOIN T_STK_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_STKTRANSFERINENTRY_T TSET ON TSE.FENTRYID = TSET.FENTRYID +INNER JOIN T_STK_STKTRANSFERINENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FSRCMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID +WHERE ((((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKOUTORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) +AND TS.FVESTONWAY = 'A') AND TS.FOBJECTTYPEID = 'STK_TRANSFERIN') + + + + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) + + SELECT TS.FSTOCKOUTORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FSRCMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, + TSE.FSRCSTOCKID fstockid, ISNULL(TSE.FSRCSTOCKLOCID, 0) fstocklocid, TSE.FSRCSTOCKSTATUSID fstockstatusid, '', SUM((0 - TSE.FBASEQTY) - TSET.FBASEPATHLOSSQTY) fbaseqcqty + FROM T_STK_STKTRANSFERIN TS INNER JOIN T_STK_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_STK_STKTRANSFERINENTRY_T TSET ON TSE.FENTRYID = TSET.FENTRYID + INNER JOIN T_BD_MATERIAL TM ON TSE.FSRCMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID + WHERE ((((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) + and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKOUTORGID IN (1) + AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) + AND TS.FVESTONWAY = 'A') AND TS.FOBJECTTYPEID = 'STK_TRANSFERIN') + GROUP BY TS.FSTOCKOUTORGID, TSE.FOWNERTYPEOUTID, TSE.FOWNEROUTID, TSE.FSRCMATERIALID, ISNULL(TSE.FAUXPROPID, 0), ISNULL(TSE.FLOT_TEXT, ' '), ISNULL(TSE.FSRCMTONO, ' '), + TSE.FSRCSTOCKID, ISNULL(TSE.FSRCSTOCKLOCID, 0), TSE.FSRCSTOCKSTATUSID, TSE.FKEEPERTYPEOUTID, TSE.FKEEPEROUTID, TSE.FSRCPRODUCEDATE, TSE.FSRCEXPIRYDATE, TSE.FSRCBOMID, TS.FDATE + +--ֲʽ + + + +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + + +SELECT TS.FSTOCKORGID fstockorgid, TSE.FENTRYID fbillentryid, 0 forderby, CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 'O' ELSE 'I' END fstockio, +TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, TSE.FSRCSTOCKID fstockid, ISNULL(TSE.FSRCSTOCKLOCID, 0) fstocklocid, +TSE.FSRCSTOCKSTATUSID fstockstatusid, 'ֲʽ' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, TS.FBILLNO fbillno, 0 fbaseqcqty, +CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'RETURN' THEN (0 - TSE.FBASEQTY) ELSE 0 END fbaseinqty, +CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN TSE.FBASEQTY ELSE 0 END fbaseoutqty + +FROM T_STK_STKTRANSFEROUT TS INNER JOIN T_STK_STKTRANSFEROUTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_STKTRANSFEROUTENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID +WHERE ((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) + and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) + + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) + + +SELECT TS.FSTOCKORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, + TSE.FSRCSTOCKID fstockid, ISNULL(TSE.FSRCSTOCKLOCID, 0) fstocklocid, TSE.FSRCSTOCKSTATUSID fstockstatusid, + 'ʼ', SUM(0 - TSE.FBASEQTY) fbaseqcqty + FROM T_STK_STKTRANSFEROUTENTRY TSE INNER JOIN T_STK_STKTRANSFEROUT TS ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON +TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID + WHERE ((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) + GROUP BY TS.FSTOCKORGID, TSE.FOWNERTYPEID, TSE.FOWNERID, TSE.FMATERIALID, ISNULL(TSE.FAUXPROPID, 0), ISNULL(TSE.FLOT_TEXT, ' '), + ISNULL(TSE.FMTONO, ' '), TSE.FSRCSTOCKID, ISNULL(TSE.FSRCSTOCKLOCID, 0), TSE.FSRCSTOCKSTATUSID, TSE.FKEEPERTYPEID, TSE.FKEEPERID, + TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, TSE.FBOMID, TS.FDATE + +--ֲʽ + + + +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TSE.FENTRYID fbillentryid, 0 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, +TSE.FSRCSTOCKID fstockid,ISNULL(TSE.FSRCSTOCKLOCID, 0) fstocklocid, TSE.FDESTSTOCKSTATUSID fstockstatusid, +'ֲʽ' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, TS.FBILLNO fbillno,0 fbaseqcqty,TSE.FBASEQTY fbaseinqty, 0 fbaseoutqty +FROM T_STK_STKTRANSFEROUT TS INNER JOIN T_STK_STKTRANSFEROUTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_STKTRANSFEROUTENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID +WHERE (((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) AND TS.FVESTONWAY = 'A') + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, + TSE.FSRCSTOCKID fstockid, ISNULL(TSE.FSRCSTOCKLOCID, 0) fstocklocid, TSE.FDESTSTOCKSTATUSID fstockstatusid, + 'ʼ', SUM(TSE.FBASEQTY) fbaseqcqty + FROM T_STK_STKTRANSFEROUT TS INNER JOIN T_STK_STKTRANSFEROUTENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID + WHERE (((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + AND (TS.FISGENFORIOS <> '1')) AND TS.FVESTONWAY = 'A') + GROUP BY TS.FSTOCKORGID, TSE.FOWNERTYPEID, TSE.FOWNERID, TSE.FMATERIALID, ISNULL(TSE.FAUXPROPID, 0), ISNULL(TSE.FLOT_TEXT, ' '), ISNULL(TSE.FMTONO, ' '), TSE.FSRCSTOCKID, ISNULL(TSE.FSRCSTOCKLOCID, 0), + TSE.FDESTSTOCKSTATUSID, TSE.FKEEPERTYPEID, TSE.FKEEPERID, TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, TSE.FBOMID, TS.FDATE + + +--ֲʽ + +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + +SELECT TS.FSTOCKINORGID fstockorgid, TSE.FENTRYID fbillentryid, 0 forderby, 'I' fstockio,TSE.FDESTMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, TSE.FDESTSTOCKID fstockid, +ISNULL(TSE.FDESTSTOCKLOCID, 0) fstocklocid, TSE.FDESTSTOCKSTATUSID fstockstatusid, +'ֲʽ' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, TS.FBILLNO fbillno, 0 fbaseqcqty,TSE.FBASEQTY fbaseinqty, 0 fbaseoutqty +FROM T_STK_STKTRANSFEROUT TS INNER JOIN T_STK_STKTRANSFEROUTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_STKTRANSFEROUTENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FDESTMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FDESTSTOCKID = TBS.FSTOCKID + +WHERE (((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) + and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKINORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +AND (TS.FISGENFORIOS <> '1')) AND TS.FVESTONWAY = 'B') + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) + +SELECT TS.FSTOCKINORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FDESTMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, +TSE.FDESTSTOCKID fstockid, ISNULL(TSE.FDESTSTOCKLOCID, 0) fstocklocid, TSE.FDESTSTOCKSTATUSID fstockstatusid, +'ʼ', SUM(TSE.FBASEQTY) fbaseqcqty +FROM T_STK_STKTRANSFEROUT TS INNER JOIN T_STK_STKTRANSFEROUTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FDESTMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FDESTSTOCKID = TBS.FSTOCKID +WHERE (((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKINORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) AND TS.FVESTONWAY = 'B') +GROUP BY TS.FSTOCKINORGID, TSE.FOWNERTYPEINID, TSE.FOWNERINID, TSE.FDESTMATERIALID, ISNULL(TSE.FAUXPROPID, 0), ISNULL(TSE.FDESTLOT_TEXT, ' '), ISNULL(TSE.FDESTMTONO, ' '), TSE.FDESTSTOCKID, +ISNULL(TSE.FDESTSTOCKLOCID, 0), TSE.FDESTSTOCKSTATUSID, TSE.FKEEPERTYPEINID, TSE.FKEEPERINID, TSE.FDESTPRODUCEDATE, TSE.FDESTEXPIRYDATE, ISNULL(TSE.FDESTBOMID, 0), TS.FDATE + + + +--Ʋֿ + + +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TSE.FENTRYID fbillentryid, 0 forderby, CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 'I' ELSE 'O' END fstockio, +TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, TSE.FDESTSTOCKID fstockid, ISNULL(TSE.FDESTSTOCKLOCID, 0) fstocklocid, +TSE.FDESTSTOCKSTATUSID fstockstatusid, 'Ʋֿ' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, TS.FBILLNO fbillno, + 0 fbaseqcqty,CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN TSE.FBASEQTY ELSE 0 END fbaseinqty, + CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'RETURN' THEN (0 - TSE.FBASEQTY) ELSE 0 END fbaseoutqty +FROM T_REM_STKTRANSFERIN TS INNER JOIN T_REM_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_REM_STKTRANSFERINENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FDESTSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) + and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) + + SELECT TS.FSTOCKORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, + TSE.FDESTSTOCKID fstockid, ISNULL(TSE.FDESTSTOCKLOCID, 0) fstocklocid, TSE.FDESTSTOCKSTATUSID fstockstatusid,'ʼ', + SUM(CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN TSE.FBASEQTY ELSE 0 END - CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 0 ELSE (0 - TSE.FBASEQTY) END) fbaseqcqty + + FROM T_REM_STKTRANSFERIN TS INNER JOIN T_REM_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FDESTSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID, TSE.FOWNERTYPEID, TSE.FOWNERID, TSE.FMATERIALID, ISNULL(TSE.FAUXPROPID, 0), ISNULL(TSE.FDESTLOT_TEXT, ' '), ISNULL(TSE.FMTONO, ' '), + TSE.FDESTSTOCKID, ISNULL(TSE.FDESTSTOCKLOCID, 0), TSE.FDESTSTOCKSTATUSID, TSE.FKEEPERTYPEID, TSE.FKEEPERID, TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, TSE.FBOMID, TS.FDATE + + + + --Ʋֿ + + +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + +SELECT TS.FSTOCKOUTORGID fstockorgid, TSE.FENTRYID fbillentryid, 0 forderby, CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 'O' ELSE 'I' END fstockio, +TSE.FSRCMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, TSE.FSRCSTOCKID fstockid,ISNULL(TSE.FSRCSTOCKLOCID, 0) fstocklocid, + TSE.FSRCSTOCKSTATUSID fstockstatusid, + 'Ʋֿ' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, TS.FBILLNO fbillno, 0 fbaseqcqty, + CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 0 ELSE (0 - TSE.FBASEQTY) END fbaseinqty, + CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN TSE.FBASEQTY ELSE 0 END fbaseoutqty + FROM T_REM_STKTRANSFERIN TS + INNER JOIN T_REM_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_REM_STKTRANSFERINENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID + INNER JOIN T_BD_MATERIAL TM ON TSE.FSRCMATERIALID = TM.FMATERIALID + + INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKOUTORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) + +SELECT TS.FSTOCKOUTORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FSRCMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, + TSE.FSRCSTOCKID fstockid, ISNULL(TSE.FSRCSTOCKLOCID, 0) fstocklocid, TSE.FSRCSTOCKSTATUSID fstockstatusid, 'ʼ', + SUM(CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 0 ELSE (0 - TSE.FBASEQTY) END - CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN TSE.FBASEQTY ELSE 0 END) fbaseqcqty + FROM T_REM_STKTRANSFERIN TS INNER JOIN T_REM_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FSRCMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKOUTORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) + AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKOUTORGID, TSE.FOWNERTYPEOUTID, TSE.FOWNEROUTID, TSE.FSRCMATERIALID, ISNULL(TSE.FAUXPROPID, 0), +ISNULL(TSE.FLOT_TEXT, ' '), ISNULL(TSE.FMTONO, ' '), TSE.FSRCSTOCKID, ISNULL(TSE.FSRCSTOCKLOCID, 0), TSE.FSRCSTOCKSTATUSID, TSE.FKEEPERTYPEOUTID, TSE.FKEEPEROUTID, TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, TSE.FSRCBOMID, TS.FDATE + + +--ίⲹϵ + +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TSE.FENTRYID fbillentryid, 0 forderby, 'O' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, 'ίⲹϵ' fbillname, TS.FID fbillid, +TSE.FSEQ fbillseqid, TS.FBILLNO fbillno, 0 fbaseqcqty, 0 fbaseinqty, TSEQ.FBASESTOCKACTUALQTY fbaseoutqty +FROM T_SUB_FEEDMTRL TS INNER JOIN T_SUB_FEEDMTRLENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_SUB_FEEDMTRLENTRY_Q TSEQ ON (TSE.FID = TSEQ.FID AND TSE.FENTRYID = TSEQ.FENTRYID) +LEFT OUTER JOIN T_SUB_FEEDMTRLENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, + +'ʼ', SUM(0 - TSEQ.FBASESTOCKACTUALQTY) fbaseqcqty + FROM T_SUB_FEEDMTRL TS INNER JOIN T_SUB_FEEDMTRLENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_SUB_FEEDMTRLENTRY_Q TSEQ ON (TSE.FID = TSEQ.FID AND TSE.FENTRYID = TSEQ.FENTRYID) + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID, TSE.FOWNERTYPEID, TSE.FOWNERID, TS.FDATE, TSE.FMATERIALID, ISNULL(TSE.FAUXPROPID, 0), ISNULL(TSE.FLOT_TEXT, ' '), ISNULL(TSE.FMTONO, ' '), TSE.FSTOCKID, ISNULL(TSE.FSTOCKLOCID, 0), TSE.FSTOCKSTATUSID, TSE.FKEEPERTYPEID, + TSE.FKEEPERID, TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, ISNULL(TSE.FBOMID, 0) + + + +--ίϵ + + +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TSE.FENTRYID fbillentryid, 0 forderby, 'O' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, 'ίϵ' fbillname, TS.FID fbillid, +TSE.FSEQ fbillseqid, TS.FBILLNO fbillno,0 fbaseqcqty, 0 fbaseinqty, TSE.FBASESTOCKACTUALQTY fbaseoutqty +FROM T_SUB_PICKMTRL TS INNER JOIN T_SUB_PICKMTRLDATA TSE ON TSE.FID = TS.FID +INNER JOIN T_SUB_PICKMTRLDATA_A TSEQ ON (TSE.FID = TSEQ.FID AND TSE.FENTRYID = TSEQ.FENTRYID) +LEFT OUTER JOIN T_SUB_PICKMTRLDATA_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, +'ʼ', SUM(0 - TSE.FBASESTOCKACTUALQTY) fbaseqcqty + FROM T_SUB_PICKMTRL TS INNER JOIN T_SUB_PICKMTRLDATA TSE ON TSE.FID = TS.FID + INNER JOIN T_SUB_PICKMTRLDATA_A TSEQ ON (TSE.FID = TSEQ.FID AND TSE.FENTRYID = TSEQ.FENTRYID) + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) + AND TM.FFORBIDSTATUS = 'A')AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID, TSEQ.FOWNERTYPEID, TSEQ.FOWNERID, TS.FDATE, TSE.FMATERIALID, ISNULL(TSE.FAUXPROPID, 0), ISNULL(TSE.FLOT_TEXT, ' '), ISNULL(TSE.FMTONO, ' '), + TSE.FSTOCKID, ISNULL(TSE.FSTOCKLOCID, 0), TSE.FSTOCKSTATUSID, TSEQ.FKEEPERTYPEID, TSEQ.FKEEPERID, TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, ISNULL(TSE.FBOMID, 0) + + +--ίϵ + +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TSE.FENTRYID fbillentryid, 0 forderby, 'O' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, +'ίϵ' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, TS.FBILLNO fbillno, 0 fbaseqcqty, +0 fbaseinqty, (0 - TSE.FBASESTOCKQTY) fbaseoutqty +FROM T_SUB_RETURNMTRL TS INNER JOIN T_SUB_RETURNMTRLENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_SUB_RETURNMTRLENTRY_A TSEA ON TSE.FENTRYID = TSEA.FENTRYID +LEFT OUTER JOIN T_SUB_RETURNMTRLENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) + + SELECT TS.FSTOCKORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, 'ʼ', SUM(TSE.FBASESTOCKQTY) fbaseqcqty +FROM T_SUB_RETURNMTRL TS INNER JOIN T_SUB_RETURNMTRLENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_SUB_RETURNMTRLENTRY_A TSEA ON TSE.FENTRYID = TSEA.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID, TSE.FOWNERTYPEID, TSE.FOWNERID, +TS.FDATE, TSE.FMATERIALID, ISNULL(TSE.FAUXPROPID, 0), ISNULL(TSE.FLOT_TEXT, ' '), ISNULL(TSEA.FMTONO, ' '), TSE.FSTOCKID, ISNULL(TSE.FSTOCKLOCID, 0), +TSE.FSTOCKSTATUSID, TSE.FKEEPERTYPEID, TSE.FKEEPERID, TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, ISNULL(TSE.FBOMID, 0) + +--߲Ʒⵥ + +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid, 0 forderby, + 'I' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, '߲Ʒⵥ' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno, 0 fbaseqcqty, TSE.FBASEREALQTY fbaseinqty,0 fbaseoutqty +FROM T_REM_INSTOCK TS INNER JOIN T_REM_INSTOCKENTRY TSE ON TSE.FID = TS.FID +LEFT OUTER JOIN T_REM_INSTOCKENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + +--ʼ +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, + TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, + 'ʼ', SUM(TSE.FBASEREALQTY) fbaseqcqty + FROM T_REM_INSTOCK TS INNER JOIN T_REM_INSTOCKENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) + AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID, TSE.FOWNERTYPEID, TSE.FOWNERID, TS.FDATE, TSE.FMATERIALID, ISNULL(TSE.FAUXPROPID, 0), ISNULL(TSE.FLOT_TEXT, ' '), ISNULL(TSE.FMTONO, ' '), TSE.FSTOCKID, ISNULL(TSE.FSTOCKLOCID, 0), + TSE.FSTOCKSTATUSID, TSE.FKEEPERTYPEID, TSE.FKEEPERID, TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, ISNULL(TSE.FBOMID, 0) + + +---߲Ʒ˿ⵥ + + +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, + FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TSE.FENTRYID fbillentryid, 0 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, +TS.FDATE fdate,TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, +'߲Ʒ˿ⵥ' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, TS.FBILLNO fbillno, +0 fbaseqcqty, (0 - TSE.FBASEREALQTY) fbaseinqty, 0 fbaseoutqty +FROM T_REM_OUTSTOCK TS INNER JOIN T_REM_OUTSTOCKENTRY TSE ON TSE.FID = TS.FID +LEFT OUTER JOIN T_REM_OUTSTOCKENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, +'ʼ', SUM(TSE.FBASEREALQTY) fbaseqcqty +FROM T_REM_OUTSTOCK TS INNER JOIN T_REM_OUTSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID, TSE.FOWNERTYPEID, TSE.FOWNERID, TS.FDATE, TSE.FMATERIALID, +ISNULL(TSE.FAUXPROPID, 0), ISNULL(TSE.FLOT_TEXT, ' '), ISNULL(TSE.FMTONO, ' '), TSE.FSTOCKID, ISNULL(TSE.FSTOCKLOCID, 0), TSE.FSTOCKSTATUSID, TSE.FKEEPERTYPEID, TSE.FKEEPERID, TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, ISNULL(TSE.FBOMID, 0) + + + +--ϵ + +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TSE.FENTRYID fbillentryid, 0 forderby, +'O' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, +'ϵ' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, TS +.FBILLNO fbillno, 0 fbaseqcqty, 0 fbaseinqty, TSED.FBASESTOCKACTUALQTY fbaseoutqty + +FROM T_REM_PICKMTRL TS INNER JOIN T_REM_PICKMTRLDATA TSE ON TSE.FID = TS.FID +INNER JOIN T_REM_PICKMTRLDATA_A TSED ON TSED.FENTRYID = TSE.FENTRYID +LEFT OUTER JOIN T_REM_PICKMTRLDATA_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) + and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, +'ʼ', SUM(0 - TSED.FBASESTOCKACTUALQTY) fbaseqcqty +FROM T_REM_PICKMTRL TS INNER JOIN T_REM_PICKMTRLDATA TSE ON TSE.FID = TS.FID +INNER JOIN T_REM_PICKMTRLDATA_A TSED ON TSED.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) +AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID, TSED.FOWNERTYPEID, TSED.FOWNERID, TSE.FMATERIALID, +ISNULL(TSE.FAUXPROPID, 0), ISNULL(TSE.FLOT_TEXT, ' '), ISNULL(TSE.FMTONO, ' '), TSE.FSTOCKID, ISNULL(TSE.FSTOCKLOCID, 0), TSE.FSTOCKSTATUSID, TSED.FKEEPERTYPEID, TSED.FKEEPERID, TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, ISNULL(TSE.FBOMID, 0), TS.FDATE + + +--ϵ +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TSE.FENTRYID fbillentryid, 0 forderby, 'O' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid,'ϵ' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno, 0 fbaseqcqty, 0 fbaseinqty, (0 - TSEA.FBASESTOCKQTY) fbaseoutqty + +FROM T_REM_RETURNMTRL TS INNER JOIN T_REM_RETURNMTRLENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_REM_RETURNMTRLENTRY_A TSEA ON TSE.FENTRYID = TSEA.FENTRYID +LEFT OUTER JOIN T_REM_RETURNMTRLENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) + and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) + + +SELECT TS.FSTOCKORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, 'ʼ', SUM(TSEA.FBASESTOCKQTY) fbaseqcqty +FROM T_REM_RETURNMTRL TS INNER JOIN T_REM_RETURNMTRLENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_REM_RETURNMTRLENTRY_A TSEA ON TSE.FENTRYID = TSEA.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID, TSE.FOWNERTYPEID, TSE.FOWNERID, TS.FDATE, TSE.FMATERIALID, ISNULL(TSE.FAUXPROPID, 0), ISNULL(TSE.FLOT_TEXT, ' '), ISNULL(TSE.FMTONO, ' '), TSE.FSTOCKID, ISNULL(TSE.FSTOCKLOCID, 0), +TSE.FSTOCKSTATUSID, TSE.FKEEPERTYPEID, TSE.FKEEPERID, TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, ISNULL(TSE.FBOMID, 0) + + + +--ίⳬĵ +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TSE.FENTRYID fbillentryid, 0 forderby, 'O' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, +'ίⳬĵ' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, TS.FBILLNO fbillno, 0 fbaseqcqty,0 fbaseinqty, TSE.FBASEUNITQTY fbaseoutqty + +FROM T_SUB_EXCONSUME TS INNER JOIN T_SUB_EXCONSUMEENTRY TSE ON TSE.FID = TS.FID +LEFT OUTER JOIN T_SUB_EXCONSUMEENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, +'ʼ', SUM(0 - TSE.FBASEUNITQTY) fbaseqcqty +FROM T_SUB_EXCONSUME TS INNER JOIN T_SUB_EXCONSUMEENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID, TSE.FOwnerTypeId, TSE.FOwnerId, TS.FDATE, TSE.FMATERIALID, ISNULL(TSE.FAUXPROPID, 0), ISNULL(TSE.FLOT_TEXT, ' '), +ISNULL(TSE.FMTONO, ' '), TSE.FSTOCKID, ISNULL(TSE.FSTOCKLOCID,0), TSE.FSTOCKSTATUSID, TSE.FKEEPERTYPEID, TSE.FKEEPERID, TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, ISNULL(TSE.FBOMID, 0) + +--˿ⵥ + + INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TSE.FENTRYID fbillentryid, 0 forderby, 'I' fstockio,TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, +'˿ⵥ' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, TS.FBILLNO fbillno, 0 fbaseqcqty, (0 - TSE.FBASEREALQTY) fbaseinqty,0 fbaseoutqty +FROM +T_PRD_RESTOCK TS INNER JOIN T_PRD_RESTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_PRD_RESTOCKENTRY_A TSEA ON TSE.FEntryID = TSEA.FEntryID +LEFT OUTER JOIN T_PRD_RESTOCKENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +AND TS.FCANCELSTATUS = 'A')) AND TS.FEntrustRetStockId = 0) + + + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, +'ʼ', SUM(0 - TSE.FBASEREALQTY) fbaseqcqty +FROM T_PRD_RESTOCK TS INNER JOIN T_PRD_RESTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) +AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS= 'A')) AND TS.FEntrustRetStockId = 0) + GROUP BY TS.FSTOCKORGID, TSE.FOWNERTYPEID, TSE.FOWNERID, TS.FDATE, TSE.FMATERIALID, ISNULL(TSE.FAUXPROPID, 0), ISNULL(TSE.FLOT_TEXT, ' '), ISNULL(TSE.FMTONO, ' '), + TSE.FSTOCKID, ISNULL(TSE.FSTOCKLOCID, 0), TSE.FSTOCKSTATUSID, TSE.FKEEPERTYPEID, TSE.FKEEPERID, TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, ISNULL(TSE.FBOMID, 0) + + +--˿ⵥ + +INSERT INTO #TMP (FSTOCKORGID, FBILLENTRYID, FORDERBY,FSTOCKIO, FMATERIALID, FAUXPROPID, FDATE, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID, FBILLNAME, FBILLID, FBILLSEQID, FBILLNO, FBASEQCQTY, FBASEINQTY, FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TSE.FENTRYID fbillentryid, 0 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, + +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, '˿ⵥ' fbillname, TS.FID fbillid, TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno, 0 fbaseqcqty, (0 - TSE.FBASEOUTQTY) fbaseinqty, 0 fbaseoutqty + +FROM T_SP_OUTSTOCK TS INNER JOIN T_SP_OUTSTOCKENTRY TSE ON TSE.FID = TS.FID +LEFT OUTER JOIN T_SP_OUTSTOCKENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_SP_OUTSTOCKENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + + --ʼ +INSERT INTO #TMP ( FSTOCKORGID,FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid, TS.FDATE fdate, -200 forderby, 'I' fstockio, TSE.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, +TSE.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, +'ʼ', SUM(0 - TSE.FBASEOUTQTY) fbaseqcqty + FROM T_SP_OUTSTOCK TS INNER JOIN T_SP_OUTSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID, TSE.FOWNERTYPEID, TSE.FOWNERID, TS.FDATE, TSE.FMATERIALID, ISNULL(TSE.FAUXPROPID, 0), ISNULL(TSE.FLOT_TEXT, ' '), ISNULL(TSE.FMTONO, ' '), TSE.FSTOCKID, ISNULL(TSE.FSTOCKLOCID, 0), TSE.FSTOCKSTATUSID, +TSE.FKEEPERTYPEID, TSE.FKEEPERID, TSE.FPRODUCEDATE, TSE.FEXPIRYDATE, ISNULL(TSE.FBOMID, 0) + + + +INSERT INTO #TMP ( FSTOCKORGID, FDATE, FORDERBY, FSTOCKIO, FMATERIALID, FAUXPROPID, FSTOCKID, FSTOCKLOCID, FSTOCKSTATUSID,FBILLNAME, FBASEQCQTY) + +SELECT TSE.FSTOCKORGID fstockorgid, TSE.FBALDATE fdate, -200 forderby, + 'I' fstockio, TM.FMATERIALID fmaterialid, ISNULL(TSE.FAUXPROPID, 0) fauxpropid, +TBS.FSTOCKID fstockid, ISNULL(TSE.FSTOCKLOCID, 0) fstocklocid, TSE.FSTOCKSTATUSID fstockstatusid, +'', SUM(TSE.FBASEENDQTY) fbaseqcqty +FROM T_STK_INVBAL TSE +INNER JOIN T_BD_MATERIAL TM ON (TM.FMASTERID = TSE.FMATERIALID AND TM.FUSEORGID = TSE.FSTOCKORGID) +INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.FSTOCKID AND TBS.FUSEORGID = TSE.FSTOCKORGID) +LEFT OUTER JOIN T_ENG_BOM TB ON (TB.FMASTERID = TSE.FBOMID AND TB.FUSEORGID = TSE.FSTOCKORGID) +LEFT OUTER JOIN V_ITEMCLASS_OWNER VO ON ((VO.FMASTERID = TSE.FOWNERID AND VO.FFORMID = TSE.FOWNERTYPEID) AND (VO.FUSEORGID = TSE.FSTOCKORGID OR VO.FUSEORGID = 0 +OR EXISTS (SELECT 1 FROM T_META_BASEDATATYPE BT WHERE (BT.FBASEDATATYPEID = VO.FFORMID AND BT.FSTRATEGYTYPE = 1)))) +LEFT OUTER JOIN V_ITEMCLASS_OWNER_L VO_L ON (VO.FITEMID = VO_L.FITEMID AND VO_L.FLOCALEID = 2052) +LEFT OUTER JOIN V_ITEMCLASS_KEEPER VK ON ((VK.FMASTERID = TSE.FKEEPERID AND VK.FFORMID = TSE.FKEEPERTYPEID) AND (VK.FUSEORGID = TSE.FSTOCKORGID OR VK.FUSEORGID = 0 +OR EXISTS (SELECT 1 FROM T_META_BASEDATATYPE BT WHERE (BT.FBASEDATATYPEID = VK.FFORMID AND BT.FSTRATEGYTYPE = 1)))) +LEFT OUTER JOIN V_ITEMCLASS_KEEPER_L VK_L ON (VK.FITEMID = VK_L.FITEMID AND VK_L.FLOCALEID = 2052) +LEFT OUTER JOIN T_BD_LOTMASTER TBLM ON (ISNULL(TSE.FLOT, 0) = TBLM.FMASTERID AND TBLM.FUSEORGID IN (1)) + +WHERE ((TSE.FSTOCKORGID IN (1) AND (FBALTYPE in(0, 1) AND (FSTOCKORGID = 1 AND TSE.FBALDATE =@FCloseBALDate ))) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TBS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) + AND TM.FFORBIDSTATUS = 'A') + + +GROUP BY TSE.FSTOCKORGID, TSE.FOWNERTYPEID, VO.FITEMID, TSE.FBALDATE, TM.FMATERIALID, ISNULL(TSE.FAUXPROPID, 0), ISNULL(TBLM.FNUMBER, ' '), ISNULL(TSE.FMTONO, ' '), +TBS.FSTOCKID, ISNULL(TSE.FSTOCKLOCID, 0), TSE.FSTOCKSTATUSID, TSE.FKEEPERTYPEID, VK.FITEMID, TSE.FLOT, TMS.FISBATCHMANAGE, TMS.FISKFPERIOD, +TMS.FISEXPPARTOFLOT, TBLM.FPRODUCEDATE, TSE.FPRODUCEDATE, TBLM.FEXPIRYDATE, TSE.FEXPIRYDATE, ISNULL(TB.FID, 0) + + +--ϲг + +select FSTOCKORGID, FMATERIALID, FAUXPROPID, FSTOCKID,sum( FBASEQCQTY)FBASEQCQTY, sum(FBASEINQTY)FBASEINQTY, sum(FBASEOUTQTY) FBASEOUTQTY +into #tmp1 +from #TMP +--where FDATE <='2019-08-30' +group by FSTOCKORGID, FMATERIALID,FAUXPROPID, FSTOCKID +order by FSTOCKORGID, FMATERIALID,FAUXPROPID, FSTOCKID + + + +insert into #Stock_Status_temp (, ϴ, , ͺ, ɱ,װʽ,ֿ, ֿ, ֿ,װ) + +select TM.fmaterialid as ,(TM.fnumber) ϴ,(TML.FNAME) as ,(TML.FSPECIFICATION) as ͺ,ISNULL(TM.FOLDNUMBER,'') AS ɱ, +isnull(t5.FAUXPTYNUMBER,'') װʽ,TBS.FSTOCKID ֿ,TSL.fname ֿ,TBS.fnumber ֿ,TSE.FAUXPROPID AS װ +from #tmp1 TSE +INNER JOIN T_BD_MATERIAL TM ON (TM.FMATERIALID = TSE.FMATERIALID AND TM.FUSEORGID = TSE.FSTOCKORGID) +inner join T_BD_MATERIAL_L TML on TM.FMATERIALID =TML.FMATERIALID and TML.FLOCALEID =2052 +INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.FSTOCKID AND TBS.FUSEORGID = TSE.FSTOCKORGID) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = TSE.FSTOCKID AND TSL.FLOCALEID = 2052) +LEFT OUTER JOIN T_BD_FLEXSITEMDETAILV t3 on TSE.FAUXPROPID=t3.FID +LEFT OUTER JOIN T_BAS_ASSISTANTDATAENTRY_L t4 on t3.FF100001=t4.FENTRYID +LEFT OUTER JOIN T_BD_AUXPTYVALUEENTITY t5 on t3.FF100001=t5.FAUXPTYID and t3.FID =t5.FAUXPTYVALUEID + + + +--ڽ +--select FSTOCKORGID, FMATERIALID, FAUXPROPID, FSTOCKID,sum( FBASEQCQTY)FBASEQCQTY, sum(FBASEINQTY)FBASEINQTY, sum(FBASEOUTQTY) FBASEOUTQTY +--into #tmp2 + +--from #TMP +----where FDATE <=@FSDate +--group by FSTOCKORGID, FMATERIALID,FAUXPROPID, FSTOCKID +--order by FSTOCKORGID, FMATERIALID,FAUXPROPID, FSTOCKID + +--select * +UPDATE t1 set t1.ڽ=t2.FBASEQCQTY + from #Stock_Status_temp t1 +inner join #tmp1 t2 on t1.=t2.FMATERIALID and t1.ֿ=t2.FSTOCKID and t1.װ=T2.FAUXPROPID + + +--ĩ + + +--select FSTOCKORGID, FMATERIALID, FAUXPROPID, FSTOCKID,sum( FBASEQCQTY)FBASEQCQTY, sum(FBASEINQTY)FBASEINQTY, sum(FBASEOUTQTY) FBASEOUTQTY +--into #tmp3 +--from #TMP + +----where FDATE <=@FEDate +--group by FSTOCKORGID, FMATERIALID,FAUXPROPID, FSTOCKID +--order by FSTOCKORGID, FMATERIALID,FAUXPROPID, FSTOCKID + + +--ĩ +UPDATE t1 set t1.ĩ=t2.FBASEQCQTY+t2.FBASEINQTY-t2.FBASEOUTQTY + from #Stock_Status_temp t1 +inner join + #tmp1 t2 on t1.=t2.FMATERIALID and t1.ֿ=t2.FSTOCKID and t1.װ=T2.FAUXPROPID + + +--ڲɹ +select FSTOCKORGID, FMATERIALID, FAUXPROPID, FSTOCKID,sum( FBASEQCQTY)FBASEQCQTY, sum(FBASEINQTY)FBASEINQTY, sum(FBASEOUTQTY) FBASEOUTQTY +into #tmp4 from #TMP TS where FORDERBY<>'-200' and fstockio='I' and ( FBILLNAME not like'%%' and FBILLNAME<>'̬ת') +and ((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--TS.FDATE >='2019-08-30'and TS.FDATE <='2019-11-12' +group by FSTOCKORGID, FMATERIALID, +FAUXPROPID, FSTOCKID +order by FSTOCKORGID, FMATERIALID,FAUXPROPID, FSTOCKID +--ڲɹ + +UPDATE t1 set t1.ڲɹ=t2.FBASEINQTY + from #Stock_Status_temp t1 +inner join #tmp4 t2 on t1.=t2.FMATERIALID and t1.ֿ=t2.FSTOCKID and t1.װ=T2.FAUXPROPID + +--ں +select FSTOCKORGID, FMATERIALID, FAUXPROPID, FSTOCKID,sum( FBASEQCQTY)FBASEQCQTY, sum(FBASEINQTY)FBASEINQTY, sum(FBASEOUTQTY) FBASEOUTQTY +into #tmp5 from #TMP TS where fstockio='O' and ( FBILLNAME not like'%%' and FBILLNAME<>'̬ת') +and ((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--TS.FDATE >='2019-08-30'and TS.FDATE <='2019-11-12' +group by FSTOCKORGID, FMATERIALID,FAUXPROPID, FSTOCKID +order by FSTOCKORGID, FMATERIALID,FAUXPROPID, FSTOCKID +--ں + +UPDATE t1 set t1.ں=t2.FBASEOUTQTY + from #Stock_Status_temp t1 +inner join #tmp5 t2 on t1.=t2.FMATERIALID and t1.ֿ=t2.FSTOCKID and t1.װ=T2.FAUXPROPID + + +--ֿⲦֿⲦ + +select FSTOCKORGID, FMATERIALID, FAUXPROPID, FSTOCKID,sum( FBASEQCQTY)FBASEQCQTY, sum(FBASEINQTY)FBASEINQTY, sum(FBASEOUTQTY) FBASEOUTQTY +into #tmp6 from #TMP TS where FORDERBY<>'-200' and ( FBILLNAME like'%%' ) +and ((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--TS.FDATE >='2019-08-30'and TS.FDATE <='2019-11-12' +group by FSTOCKORGID, FMATERIALID,FAUXPROPID, FSTOCKID +order by FSTOCKORGID, FMATERIALID,FAUXPROPID, FSTOCKID + +--ֿⲦ--ֿⲦ + +UPDATE t1 set t1.ֿⲦ=t2.FBASEINQTY,t1.ֿⲦ=t2.FBASEOUTQTY + from #Stock_Status_temp t1 +inner join #tmp6 t2 on t1.=t2.FMATERIALID and t1.ֿ=t2.FSTOCKID and t1.װ=T2.FAUXPROPID + + +-- +select FSTOCKORGID, FMATERIALID, FAUXPROPID, FSTOCKID,sum( FBASEQCQTY)FBASEQCQTY, sum(FBASEINQTY)FBASEINQTY, sum(FBASEOUTQTY) FBASEOUTQTY +into #tmp7 from #TMP TS where ( FBILLNAME in('ϵ','ίϵ' )) +and ((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--TS.FDATE >='2019-08-30'and TS.FDATE <='2019-11-12' +group by FSTOCKORGID, FMATERIALID,FAUXPROPID, FSTOCKID +order by FSTOCKORGID, FMATERIALID,FAUXPROPID, FSTOCKID + +-- +UPDATE t1 set t1.=t2.FBASEOUTQTY + from #Stock_Status_temp t1 +inner join #tmp7 t2 on t1.=t2.FMATERIALID and t1.ֿ=t2.FSTOCKID and t1.װ=T2.FAUXPROPID + + +--۳ + +select FSTOCKORGID, FMATERIALID, FAUXPROPID, FSTOCKID,sum( FBASEQCQTY)FBASEQCQTY, sum(FBASEINQTY)FBASEINQTY, sum(FBASEOUTQTY) FBASEOUTQTY +into #tmp8 from #TMP TS where ( FBILLNAME ='۳ⵥ' ) +and ((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--TS.FDATE >='2019-08-30'and TS.FDATE <='2019-11-12' +group by FSTOCKORGID, FMATERIALID,FAUXPROPID, FSTOCKID +order by FSTOCKORGID, FMATERIALID,FAUXPROPID, FSTOCKID + +--۳ +UPDATE t1 set t1.۳=t2.FBASEOUTQTY + from #Stock_Status_temp t1 +inner join #tmp8 t2 on t1.=t2.FMATERIALID and t1.ֿ=t2.FSTOCKID and t1.װ=T2.FAUXPROPID + + + + +--ܶ +--۶ܶ +--******************************************* + +--ѯ +--(C.FBASEREMAINOUTQTY+C.FBaseReturnQty)ۼ˿+ʣδ +select (A.FBILLNO) as ۵,(A.FID) ,(B.FENTRYID) ۷¼ ,(B.FSEQ) , +B.FMATERIALID AS ,B.FBASEUNITQTY ,(C.FBASEREMAINOUTQTY+C.FBaseReturnQty) as δ,FBaseReturnQty, +isnull(B.FSTOCKID,0) ֿ,B.FAUXPROPID ,A.FCLOSESTATUS ,FCLOSEDATE, A.FDATE , B.FMRPCLOSESTATUS ҵر +into #tmpSal +from T_SAL_ORDER A +inner join T_SAL_ORDERENTRY B on A.FID =B.FID +left join T_SAL_ORDERENTRY_R C ON C.FID=B.FID AND C.FENTRYID =B.FENTRYID +left join T_SAL_ORDERENTRY_E D on D.FID=B.FID AND D.FENTRYID =B.FENTRYID + +WHERE 1=1 AND A.FCANCELSTATUS='A' AND A.FDOCUMENTSTATUS='C' --AND B.FMRPTERMINATESTATUS='A' +AND (B.FTERMINATEDATE >@FEDate OR isnull(B.FTERMINATEDATE,'') ='') +AND (FCLOSEDATE>@FEDate OR ISNULL(FCLOSEDATE,'')='')--رڿʼ֮ǰݲ +AND A.FDATE <=@FEDate --AND A.FBILLNO='SO1909200018' +ORDER BY A.FDATE ,A.FID,B.FENTRYID,B.FMATERIALID + + + +--δ +--select * +update t1 set t1.δ=δ+t2.fbaseoutqty +from #tmpSal t1 +inner join ( +SELECT TSR.FSOORDERNO,TSR.FSOENTRYID,TSE.FMATERIALID,sum(TSE.FBASEUNITQTY) fbaseoutqty +FROM T_SAL_OUTSTOCK TS INNER JOIN T_SAL_OUTSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_SAL_OUTSTOCKENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_SAL_OUTSTOCKFIN TSF ON TSE.FID = TSF.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_MATERIALBASE TMB ON TSE.FMATERIALID = TMB.FMATERIALID +INNER JOIN T_SAL_OUTSTOCKENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID + +WHERE TS.FDATE>@FEDate and +( TS.FCANCELSTATUS = 'A' AND TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +group by TSR.FSOORDERNO,TSR.FSOENTRYID,TSE.FMATERIALID ) t2 on t2.FSOORDERNO =t1.۵ and t2.FSOENTRYID=t1.۷¼ and t1.=t2.FMATERIALID + +--۳˻ +--˻ +--select * +update t1 set t1.δ=δ+t2.fbaseoutqty +from #tmpSal t1 +inner join ( +SELECT TSE.FORDERNO,TSE.FSOENTRYID ,TSE.FMATERIALID,sum((TSE.FBASEUNITQTY)) fbaseoutqty +FROM T_SAL_RETURNSTOCK TS INNER JOIN T_SAL_RETURNSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_SAL_RETURNSTOCKENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_SAL_RETURNSTOCKFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_MATERIALBASE TMB ON TSE.FMATERIALID = TMB.FMATERIALID INNER JOIN T_SAL_RETURNSTOCKENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID + +WHERE TS.FDATE>@FEDate +and ( TS.FCANCELSTATUS = 'A' AND TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +group by TSE.FORDERNO,TSE.FSOENTRYID ,TSE.FMATERIALID +) t2 on t2.FORDERNO =t1.۵ and t2.FSOENTRYID=t1.۷¼ and t1.=t2.FMATERIALID + + + +select ,, δ,FAUXPROPID,case when B.ֿ<>0 then B.ֿ else isnull(tms.FSTOCKID,0) end ֿ +into #tmpSal1 from #tmpSal B +left JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +left join T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.ֿ ) +--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) and TSK.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) + +order by + + +select ,, δ,FAUXPROPID, ֿ +into #tmpSal3 from #tmpSal1 B +left JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +--left join T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +--LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.ֿ ) +WHERE -- (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TSK.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) + +order by + + + +select ,sum(), sum(δ)δ ,FAUXPROPID, ֿ +into #tmpSal2 from #tmpSal3 +group by ֿ,,FAUXPROPID +order by ֿ,,FAUXPROPID + +--۶ܶ +UPDATE t1 set t1.ܶ=t2.δ +from #Stock_Status_temp t1 +inner join #tmpSal2 t2 on t1.=t2. and t1.ֿ=t2.ֿ and t1.װ=T2.FAUXPROPID + + +--ݾ + +insert into #Stock_Status_temp (, ϴ, , ͺ, ɱ,װʽ,ֿ, ֿ, ֿ,װ,ܶ) + +select TM.fmaterialid as ,(TM.fnumber) ϴ,(TML.FNAME) as + ,(TML.FSPECIFICATION) as ͺ,ISNULL(TM.FOLDNUMBER,'') AS ɱ, +isnull(t5.FAUXPTYNUMBER,'') װʽ,TBS.FSTOCKID ֿ,TSL.fname ֿ,TBS.fnumber ֿ,TSE.FAUXPROPID AS װ,(δ) +from #tmpSal2 TSE +INNER JOIN T_BD_MATERIAL TM ON (TM.FMATERIALID = TSE. ) + +inner join T_BD_MATERIAL_L TML on TM.FMATERIALID =TML.FMATERIALID and TML.FLOCALEID =2052 +INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = TSE.ֿ AND TSL.FLOCALEID = 2052) +LEFT OUTER JOIN T_BD_FLEXSITEMDETAILV t3 on TSE.FAUXPROPID=t3.FID +LEFT OUTER JOIN T_BAS_ASSISTANTDATAENTRY_L t4 on t3.FF100001=t4.FENTRYID +LEFT OUTER JOIN T_BD_AUXPTYVALUEENTITY t5 on t3.FF100001=t5.FAUXPTYID and t3.FID =t5.FAUXPTYVALUEID + +--select * from #tmpSal2 TSE +where not exists(select * from #Stock_Status_temp t2 where TSE.=t2. and TSE.ֿ=t2.ֿ and t2.װ=TSE.FAUXPROPID) + +--******************************************* + + + +--; +--************************************************ + +--ɹ +select ddd.FPurchaseOrgID fstockorgid, ddd.FBILLNO ɹ ,ddd.FID AS ɹ , B.FENTRYID ɹ¼,b.FMATERIALID , +ISNULL(b.FAUXPROPID, 0) fauxpropid, ddd.FDATE fdate, TMS.FSTOCKID ֿ, FBASEUNITQTY ɹ , +FREMAINSTOCKINQTY ʣ,FBASESTOCKINQTY ,ddd.FCLOSEDATE +into #tmppoorder +FROM t_pur_poorderentry b +INNER JOIN t_pur_poorder ddd ON (ddd.FID = b.FID AND FbusinessType NOT IN ('ZCCG', 'FYCG')) +INNER JOIN t_pur_poorderentry_r r ON b.fentryid = r.fentryid +INNER JOIN t_pur_poorderentry_d td ON b.fentryid = td.fentryid +INNER JOIN T_BD_MATERIALSTOCK TMS ON b.FMATERIALID = TMS.FMATERIALID +WHERE (ddd.FPurchaseOrgID IN (1) AND (((ddd.FPurchaseOrgID IN (1)) +AND (ddd.FDATE <=@FEDate)) AND ddd.fdocumentStatus = 'C')) +AND (b.FTERMINATEDATE >@FEDate OR isnull(b.FTERMINATEDATE,'') ='') +AND (ddd.FCLOSEDATE>@FEDate or isnull(ddd.FCLOSEDATE,'')='') + +--ⵥ +--select * + +update t1 set t1.ʣ=ʣ+t2.fbaseinqty +from #tmppoorder t1 +inner join ( + SELECT TSE.FMATERIALID , tse.FPOORDERENTRYID,tse.FPOORDERNO ,SUM(TSE.FBASEUNITQTY) fbaseinqty + FROM T_STK_INSTOCK TS INNER JOIN T_STK_INSTOCKENTRY TSE ON TSE.FID = TS.FID + + INNER JOIN T_STK_INSTOCKENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) + INNER JOIN T_STK_INSTOCKENTRY_LK TSEL ON ( TSE.FENTRYID = TSEL.FENTRYID) + INNER JOIN T_STK_INSTOCKFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + WHERE 1=1 AND TS.FDATE > @FEDate + and (TS.FSTOCKORGID IN (1) ) AND TM.FFORBIDSTATUS = 'A' AND TS.FCANCELSTATUS = 'A' AND TS.FDOCUMENTSTATUS IN ('C') + group by TSE.FPOORDERNO,TSE.FPOORDERENTRYID ,TSE.FMATERIALID +)t2 on t2.FPOORDERNO =t1.ɹ and t2.FPOORDERENTRYID=t1.ɹ¼ and t1.=t2.FMATERIALID + + +--ϵ + --select * +update t1 set t1.ʣ=ʣ-t2.fbaseinqty +from #tmppoorder t1 +INNER JOIN( + SELECT tse.FPOORDERENTRYID,tse.FORDERNO ,TSE.FMATERIALID fmaterialid, sum( TSE.FBASEUNITQTY) fbaseinqty + + FROM T_PUR_MRB TS INNER JOIN T_PUR_MRBENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_PUR_MRBENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) + INNER JOIN T_PUR_MRBFIN TSF ON TSE.FID = TSF.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_MATERIALBASE TMB ON TM.FMATERIALID = TMB.FMATERIALID + WHERE 1=1 and (TS.FDATE >@FEDate) + AND TS.FDOCUMENTSTATUS IN ('C') AND TM.FFORBIDSTATUS = 'A' AND TS.FCANCELSTATUS = 'A' AND (TSE.FSTOCKID > 0) + AND TSF.FISGENFORIOS = '0'AND (TSE.FSTOCKFLAG = '1' OR (TS.FMRTYPE = 'B' AND TMB.FISINVENTORY = '1') ) + group by tse.FPOORDERENTRYID,tse.FORDERNO ,TSE.FMATERIALID +)t2 on t2.FORDERNO =t1.ɹ and t2.FPOORDERENTRYID=t1.ɹ¼ and t1.=t2.FMATERIALID + + +--º; + +select ,ɹ, ʣ,FAUXPROPID,case when B.ֿ<>0 then B.ֿ else isnull(tms.FSTOCKID,0) end ֿ +into #tmppoorder1 from #tmppoorder B +left JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +left + join T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.ֿ AND TSL.FLOCALEID = 2052) +--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) and TSK.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +order by + + + + +select ,ɹ, ʣ,FAUXPROPID, ֿ +into #tmppoorder3 from #tmppoorder1 B +left JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +LEFT JOIN T_BD_STOCK TSK + ON ( TSK.FMASTERID = B.ֿ ) +WHERE -- (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TSK.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) + +order by + + + + +select ,sum(ɹ)ɹ, sum(ʣ)ʣ ,FAUXPROPID, ֿ +into #tmppoorder2 from #tmppoorder3 +group by ֿ,,FAUXPROPID +order by ֿ,,FAUXPROPID + + +--; +UPDATE t1 set t1.;=t2.ʣ +from #Stock_Status_temp t1 +inner join #tmppoorder2 t2 on t1.=t2. and t1.ֿ=t2.ֿ and t1.װ=T2.FAUXPROPID + +--ݾ + +insert into #Stock_Status_temp (, ϴ, , ͺ, ɱ,װʽ,ֿ, ֿ, ֿ,װ,;) + +select TM.fmaterialid as ,(TM.fnumber) ϴ,(TML.FNAME) as ,(TML.FSPECIFICATION) as ͺ,ISNULL(TM.FOLDNUMBER,'') AS ɱ, +isnull(t5.FAUXPTYNUMBER,'') װʽ,TBS.FSTOCKID ֿ,TSL.fname ֿ,TBS.fnumber ֿ,TSE.FAUXPROPID AS װ,(ʣ) +from #tmppoorder2 TSE +INNER JOIN T_BD_MATERIAL TM ON (TM.FMATERIALID = TSE. ) +inner join T_BD_MATERIAL_L TML on TM.FMATERIALID =TML.FMATERIALID and TML.FLOCALEID =2052 +INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = TSE.ֿ AND TSL.FLOCALEID = 2052) +LEFT OUTER JOIN T_BD_FLEXSITEMDETAILV t3 on TSE.FAUXPROPID=t3.FID +LEFT OUTER JOIN T_BAS_ASSISTANTDATAENTRY_L t4 on t3.FF100001=t4.FENTRYID +LEFT OUTER JOIN T_BD_AUXPTYVALUEENTITY t5 on t3.FF100001=t5.FAUXPTYID and t3.FID =t5.FAUXPTYVALUEID + +--select * from #tmpSal2 TSE +where ʣ<>0 AND + not exists(select * from #Stock_Status_temp t2 where TSE.=t2. and TSE.ֿ=t2.ֿ and t2.װ=TSE.FAUXPROPID) + + + + + +--************************************************ + +-- +--************************************************* +--ѯֹ֮ǰ +select (MO.FBILLNO) ,ME.FPRODUCTTYPE , +(MO.FID) ,(ME.FENTRYID) ¼,MA.FCONVEYDATE,ME.FMATERIALID , +isnull(ME.FSTOCKID,0) ֿ,ME.FAUXPROPID ,MO.FDATE,ME.FSEQ,(ME.FQTY) , +--MQ.FBASENOSTOCKINQTY δ +(CASE WHEN (MQ.FBASENOSTOCKINQTY)>0 THEN (MQ.FBASENOSTOCKINQTY) else 0 end) as δ,MQ.FBASERESTKQTY ˿ + +into #tmpMO +from T_PRD_MO MO +inner join T_PRD_MOENTRY ME ON MO.FID =ME.FID +left JOIN T_PRD_MOENTRY_A MA ON MA.FID =ME.FID AND ME.FENTRYID =MA.FENTRYID +left JOIN T_PRD_MOENTRY_Q MQ ON MQ.FID =ME.FID AND ME.FENTRYID =MQ.FENTRYID +WHERE 1=1 AND MO.FCANCELSTATUS='A' AND MO.FDOCUMENTSTATUS='C' AND ME.FPRODUCTTYPE =1 +--AND MO.FBILLNO IN('MO1909090271' ,'MO1905070262') +AND MO.FDATE <=@FEDate AND ISNULL(MA.FCONVEYDATE,'')<>'' +AND (FCLOSEDATE>@FEDate OR ISNULL(FCLOSEDATE,'')='') + + +--ֹ֮ɵⵥ +--select * +update t1 set t1.δ=δ+t2.fbaseInqty +from #tmpMO t1 +inner join( + SELECT TSE.FMATERIALID , TSE.FMOBILLNO,TSE.FMOID,TSE.FMOENTRYID,TSE.FMOENTRYSEQ,sum(TSE.FBASEREALQTY) fbaseInqty + FROM T_PRD_INSTOCK TS INNER JOIN T_PRD_INSTOCKENTRY TSE ON TSE.FID = TS.FID + LEFT OUTER JOIN T_PRD_INSTOCKENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + WHERE 1=1 + AND TS.FDATE > @FEDate AND (TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) + AND TM.FFORBIDSTATUS = 'A' AND TS.FCANCELSTATUS = 'A' + --AND TS.FBILLNO='MM1909090128' + group by TSE.FMOBILLNO,TSE.FMOID,TSE.FMOENTRYID,TSE.FMOENTRYSEQ,TSE.FMATERIALID + --order by TSE.FMOBILLNO,TSE.FMOID,TSE.FMOENTRYID,TSE.FMOENTRYSEQ,TSE.FMATERIALID +) t2 on t1.=t2.FMOID and t1.¼=t2.FMOENTRYID and t1.=t2.FMATERIALID + +--ֹ֮ɵ˿ⵥ +--select * +update t1 set t1.δ=δ-t2.fbaseOutqty +from #tmpMO t1 +inner join( + SELECT TSE.FMATERIALID fmaterialid, TSE.FMOBILLNO,TSE.FMOID,TSE.FMOENTRYID,TSE.FMOENTRYSEQ,SUM(TSE.FBASEREALQTY) fbaseOutqty + FROM T_PRD_RESTOCK TS INNER JOIN T_PRD_RESTOCKENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_PRD_RESTOCKENTRY_A TSEA ON TSE.FEntryID = TSEA.FEntryID + LEFT OUTER JOIN T_PRD_RESTOCKENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + where 1=1 + AND TS.FDATE > @FEDate + AND (TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A' + AND TS.FCANCELSTATUS = 'A' AND TS.FEntrustRetStockId = 0 + group by TSE.FMOBILLNO,TSE.FMOID,TSE.FMOENTRYID,TSE.FMOENTRYSEQ,TSE.FMATERIALID +) t2 on t1.=t2.FMOID and t1.¼=t2.FMOENTRYID and t1.=t2.FMATERIALID + + +--º + +select ,, δ,FAUXPROPID,case when B.ֿ<>0 then B.ֿ else isnull(tms.FSTOCKID,0) end ֿ +into #tmpMO1 from #tmpMO B +left JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +left join T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.ֿ AND TSL.FLOCALEID = 2052) +--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) and TSK.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +order by + + + +select ,, δ,FAUXPROPID, ֿ +into #tmpMO3 from #tmpMO1 B +left JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +WHERE -- (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TSK.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) + +order by + + + +select ,sum(), sum(δ)δ ,FAUXPROPID, ֿ +into #tmpMO2 from #tmpMO3 +group by ֿ,,FAUXPROPID +order by ֿ,,FAUXPROPID + +-- +UPDATE t1 set t1.=t2.δ +from #Stock_Status_temp t1 +inner join #tmpMO2 t2 on t1.=t2. and t1.ֿ=t2.ֿ and t1.װ=T2.FAUXPROPID + +--ݾ + +insert into #Stock_Status_temp (, ϴ, , ͺ, ɱ,װʽ,ֿ, ֿ, ֿ,װ,) + +select TM.fmaterialid as ,(TM.fnumber) ϴ,(TML.FNAME) as ,(TML.FSPECIFICATION) as ͺ,ISNULL(TM.FOLDNUMBER,'') AS ɱ, +isnull(t5.FAUXPTYNUMBER,'') װʽ,TBS.FSTOCKID ֿ,TSL.fname ֿ,TBS.fnumber ֿ,TSE.FAUXPROPID AS װ,(δ) +from #tmpMO2 TSE +INNER JOIN T_BD_MATERIAL TM ON (TM.FMATERIALID = TSE. ) +inner join T_BD_MATERIAL_L TML on TM.FMATERIALID =TML.FMATERIALID and TML.FLOCALEID =2052 +INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = TSE.ֿ AND TSL.FLOCALEID = 2052) +LEFT OUTER JOIN T_BD_FLEXSITEMDETAILV t3 on TSE.FAUXPROPID=t3.FID +LEFT OUTER JOIN T_BAS_ASSISTANTDATAENTRY_L t4 on t3.FF100001=t4.FENTRYID +LEFT OUTER JOIN T_BD_AUXPTYVALUEENTITY t5 on t3.FF100001=t5.FAUXPTYID and t3.FID =t5.FAUXPTYVALUEID + +--select * from #tmpSal2 TSE +where not exists(select * from #Stock_Status_temp t2 where TSE.=t2. and TSE.ֿ=t2.ֿ and t2.װ=TSE.FAUXPROPID) + +--***************end********************************** + + +-- +--******************start******************************* + +----ѯֹ֮ǰϵ + +SELECT TS.FSTOCKORGID fstockorgid, TS.FBILLNO ϵ ,TS.FID AS , TSE.FENTRYID Ϸ¼,TSE.FMATERIALID , + ISNULL(TSE.FAUXPROPID, 0) fauxpropid, TS.FDATE fdate, TSE.FSTOCKID ֿ, FBASEUNITQTY , +CASE WHEN (FBASEUNITQTY-(TSES.FINSTOCKBASEQTY + TSES.FRETURNBASEQTY))>0 THEN (FBASEUNITQTY-(TSES.FINSTOCKBASEQTY + TSES.FRETURNBASEQTY)) ELSE 0 END δ, +(FBASEUNITQTY-FINSTOCKBASEQTY +FRETURNBASEQTY) +INTO #TMPRECEIVE +FROM T_PUR_RECEIVE TS +INNER JOIN T_PUR_RECEIVEENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_PUR_RECEIVEENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_PUR_RECEIVEENTRY_S TSES ON (TSE.FID = TSES.FID AND TSE.FENTRYID = TSES.FENTRYID) +INNER JOIN T_PUR_RECEIVEENTRY_R TSER ON (TSE.FID = TSER.FID AND TSE.FENTRYID = TSER.FENTRYID) +INNER JOIN T_PUR_RECEIVEFIN TSF ON TSE.FID = TSF.FID +WHERE 1=1 and (TS.FDATE <= @FEDate) +--and ts.FBILLNO='T61908290024-' and FRETURNBASEQTY<>0 +AND( FEXECUTEDATE>@FEDate OR ISNULL(FEXECUTEDATE,'')='')--ִ +and (TS.FSTOCKORGID IN (1)) +AND (TSE.FSTOCKID > 0)AND TSE.FSTOCKFLAG = '0' + +-- AND TS.FDOCUMENTSTATUS IN ('C') +------ѯֹ֮ǰⵥ + +--select * +update t1 set t1.δ=δ+t2.fbaseInqty +from #TMPRECEIVE t1 +INNER JOIN ( + SELECT TSE.FMATERIALID , TSE.FSRCBILLNO,TSEL .FSBILLID ,TSEL.FSID ,SUM(TSE.FBASEUNITQTY) fbaseinqty + FROM T_STK_INSTOCK TS INNER JOIN T_STK_INSTOCKENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_STK_INSTOCKENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) + INNER JOIN T_STK_INSTOCKENTRY_LK TSEL ON ( TSE.FENTRYID = TSEL.FENTRYID) + INNER JOIN T_STK_INSTOCKFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + WHERE 1=1 AND TS.FDATE >@FEDate + and (TS.FSTOCKORGID IN (1) ) AND TM.FFORBIDSTATUS = 'A' AND TS.FCANCELSTATUS = 'A' + group by TSE.FSRCBILLNO,TSEL .FSBILLID ,TSEL.FSID,TSE.FMATERIALID + --order by TSE.FMOBILLNO,TSE.FMOID,TSE.FMOENTRYID,TSE.FMOENTRYSEQ,TSE.FMATERIALID +) t2 on t1.=t2.FSBILLID and t1.Ϸ¼=t2.FSID and t1.=t2.FMATERIALID + +-- +--ѯֹ֮ϵ +--select * +update t1 set t1.δ=δ+t2.fbaseInqty +from #TMPRECEIVE t1 +INNER JOIN ( + SELECT TSE.FMATERIALID , TSE.FSRCBILLNO,TSEL .FSBILLID ,TSEL.FSID ,SUM(TSE.FBASEUNITQTY) fbaseinqty + FROM T_PUR_MRB TS INNER JOIN T_PUR_MRBENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_PUR_MRBENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) + INNER JOIN T_PUR_MRBENTRY_LK TSEL ON ( TSE.FENTRYID = TSEL.FENTRYID) + INNER JOIN T_PUR_MRBFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_MATERIALBASE TMB ON TM.FMATERIALID = TMB.FMATERIALID + WHERE 1=1 AND TS.FDATE >@FEDate + and (TS.FSTOCKORGID IN (1) ) AND TM.FFORBIDSTATUS = 'A' AND TS.FCANCELSTATUS = 'A' + group by TSE.FSRCBILLNO,TSEL .FSBILLID ,TSEL.FSID,TSE.FMATERIALID + +) t2 on t1.=t2.FSBILLID and t1.Ϸ¼=t2.FSID and t1.=t2.FMATERIALID + + + +--º + +select ,, δ,FAUXPROPID,case when B.ֿ<>0 then B.ֿ else isnull(tms.FSTOCKID,0) end ֿ +into #TMPRECEIVE1 from #TMPRECEIVE B +left JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +left join T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.ֿ AND TSL.FLOCALEID = 2052) +--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) and TSK.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +order by + + + + +select ,, δ,FAUXPROPID, ֿ +into #TMPRECEIVE3 + from #TMPRECEIVE1 B +left JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +WHERE -- (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TSK.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +order by + + +select ,sum(), sum(δ)δ ,FAUXPROPID, ֿ +into #TMPRECEIVE2 from #TMPRECEIVE3 +group by ֿ,,FAUXPROPID +order by ֿ,,FAUXPROPID + + +-- +UPDATE t1 set t1.=t2.δ +from #Stock_Status_temp t1 +inner join #TMPRECEIVE2 t2 on t1.=t2. and t1.ֿ=t2.ֿ and t1.װ=T2.FAUXPROPID + +--ݾ + +insert into #Stock_Status_temp (, ϴ, , ͺ, ɱ,װʽ,ֿ, ֿ, ֿ,װ,) + +select TM.fmaterialid as ,(TM.fnumber) ϴ,(TML.FNAME) as ,(TML.FSPECIFICATION) as ͺ,ISNULL(TM.FOLDNUMBER,'') AS ɱ, +isnull(t5.FAUXPTYNUMBER,'') װʽ,TBS.FSTOCKID ֿ,TSL.fname ֿ,TBS.fnumber ֿ,TSE.FAUXPROPID AS װ,(δ) +from #TMPRECEIVE2 TSE +INNER JOIN T_BD_MATERIAL TM ON (TM.FMATERIALID = TSE. ) +inner join T_BD_MATERIAL_L TML on TM.FMATERIALID =TML.FMATERIALID and TML.FLOCALEID =2052 +INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = TSE.ֿ AND TSL.FLOCALEID = 2052) +LEFT OUTER JOIN T_BD_FLEXSITEMDETAILV t3 on TSE.FAUXPROPID=t3.FID +LEFT OUTER JOIN T_BAS_ASSISTANTDATAENTRY_L t4 on t3.FF100001=t4.FENTRYID +LEFT OUTER JOIN T_BD_AUXPTYVALUEENTITY t5 on t3.FF100001=t5.FAUXPTYID and t3.FID =t5.FAUXPTYVALUEID + +--select * from #tmpSal2 TSE +where δ<>0 AND + not exists(select * from #Stock_Status_temp t2 where TSE.=t2. and TSE.ֿ=t2.ֿ and t2.װ=TSE.FAUXPROPID) + + +--****************end********************************* + +--*********************δ***************************************** + +--δ() +--***********************δ()***************************** +--ѯֹ֮ǰ +select (MO.FBILLNO) ,(MO.FID) ,(ME.FENTRYID) ¼, +PE.FMATERIALID ,(PP.FID) ,PP.FBILLNO ϵ,(PE.FENTRYID) ϵ¼, +isnull(PC.FSTOCKID,0) ֿ,PE.FAUXPROPID ,(PE.FMUSTQTY) AS Ӧ, +PQ.FSELPICKEDQTY as ѡ,PQ.FBASENOPICKEDQTY AS δ +into #tmpPPBOM + from T_PRD_MO MO +inner join T_PRD_MOENTRY ME ON MO.FID =ME.FID +inner JOIN T_PRD_MOENTRY_A MA ON MA.FID =ME.FID AND ME.FENTRYID =MA.FENTRYID +inner join T_PRD_PPBOM PP on PP.FMOID=MO.FID AND ME.FENTRYID =PP.FMOENTRYID +inner join T_PRD_PPBOMENTRY PE on PP.FID =PE.FID +left join T_PRD_PPBOMENTRY_Q PQ on PP.FID =PQ.FID AND PE.FENTRYID =PQ.FENTRYID +left join T_PRD_PPBOMENTRY_C PC on PP.FID =PC.FID AND PE.FENTRYID =PC.FENTRYID +WHERE 1=1 AND MO.FCANCELSTATUS='A' AND MO.FDOCUMENTSTATUS='C' AND ME.FPRODUCTTYPE =1 +AND (MO.FDATE <=@FEDate AND ISNULL(MA.FCONVEYDATE,'')<>'') +AND (MA.FFINISHDATE >@FEDate OR ISNULL(MA.FFINISHDATE ,'')='')--2020-04-27֮깤Ϊ׼깤 +--AND (MA.FCLOSEDATE>@FEDate OR ISNULL(MA.FCLOSEDATE,'')='')--2020-04-27֮ǰǽ᰸ + +--and PP.FBILLNO ='PP1910150215' + + --ѯֹ֮еϵ + --select δ,t2.fbaseOutqty, * +update t1 set t1.δ=δ+t2.fbaseOutqty +from #tmpPPBOM t1 +INNER JOIN ( +SELECT tse.FMOID,tse.FMOBILLNO,tse.FMOENTRYID,tse.FPPBOMENTRYID,tse.FPPBOMBILLNO, +TSE.FMATERIALID,sum(TSED.FBASESTOCKACTUALQTY) fbaseOutqty +FROM T_PRD_PICKMTRL TS INNER JOIN T_PRD_PICKMTRLDATA TSE ON TSE.FID = TS.FID +INNER JOIN T_PRD_PICKMTRLDATA_A TSED ON TSED.FENTRYID = TSE.FENTRYID +LEFT OUTER JOIN T_PRD_PICKMTRLDATA_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + +WHERE (TS.FDATE> @FEDate) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A') +group by tse.FMOID,tse.FMOBILLNO,tse.FMOENTRYID,tse.FPPBOMENTRYID,tse.FPPBOMBILLNO,TSE.FMATERIALID +) t2 on t1.=t2.FMOBILLNO and t1.¼=t2.FMOENTRYID +and t1.ϵ=t2.FPPBOMBILLNO and t1.ϵ¼=t2.FPPBOMENTRYID and t1.=t2.FMATERIALID + + + +--ºδ +--select * from #tmpPPBOM + +select ,Ӧ, δ,FAUXPROPID,case when B.ֿ<>0 then B.ֿ else isnull(tms.FSTOCKID,0) end ֿ +into #tmpPPBOM1 from #tmpPPBOM B +left JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +left join T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.ֿ AND TSL.FLOCALEID = 2052) +--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) and TSK.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +order by + + + +select ,Ӧ, δ,FAUXPROPID, ֿ +into #tmpPPBOM3 from #tmpPPBOM1 B +left JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +WHERE -- (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TSK.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +order by + + + +select ,sum(Ӧ)Ӧ, sum(δ)δ ,FAUXPROPID, ֿ +into #tmpPPBOM2 from #tmpPPBOM3 +group by ֿ,,FAUXPROPID +order by ֿ,,FAUXPROPID + +--δ() +UPDATE t1 set t1.δ=t2.δ +from #Stock_Status_temp t1 +inner join #tmpPPBOM2 +t2 on t1.=t2. and t1.ֿ=t2.ֿ and t1.װ=T2.FAUXPROPID + +--ݾ + +insert into #Stock_Status_temp (, ϴ, , ͺ, ɱ,װʽ,ֿ, ֿ, ֿ,װ,δ) + +select TM.fmaterialid as ,(TM.fnumber) ϴ,(TML.FNAME) as ,(TML.FSPECIFICATION) as ͺ,ISNULL(TM.FOLDNUMBER,'') AS ɱ, +isnull(t5.FAUXPTYNUMBER,'') װʽ,TBS.FSTOCKID ֿ,TSL.fname ֿ,TBS.fnumber ֿ,TSE.FAUXPROPID AS װ,(δ) +from #tmpPPBOM2 TSE +INNER JOIN T_BD_MATERIAL TM ON (TM.FMASTERID = TSE. ) +inner join T_BD_MATERIAL_L TML on TM.FMATERIALID =TML.FMATERIALID and TML.FLOCALEID =2052 +INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID= TSE.ֿ AND TSL.FLOCALEID = 2052) +LEFT OUTER JOIN T_BD_FLEXSITEMDETAILV t3 on TSE.FAUXPROPID=t3.FID +LEFT OUTER JOIN T_BAS_ASSISTANTDATAENTRY_L t4 on t3.FF100001=t4.FENTRYID +LEFT OUTER JOIN T_BD_AUXPTYVALUEENTITY t5 on t3.FF100001=t5.FAUXPTYID and t3.FID =t5.FAUXPTYVALUEID + +--select * from #tmpSal2 TSE +where δ>0 AND + not exists(select * from #Stock_Status_temp t2 where TSE.=t2. and TSE.ֿ=t2.ֿ and t2.װ=TSE.FAUXPROPID) + +--*************************δ()***************************************** + + + +--δ(ί) +--*************************δ(ί)*************************** +--ѯֹ֮ǰίⵥ +select (MO.FBILLNO) ίⵥ ,(MO.FID) ί,(ME.FENTRYID) ίⵥ¼, +PE.FMATERIALID ,(PP.FID) ,PP.FBILLNO ϵ,(PE.FENTRYID) ϵ¼, +isnull(PC.FSTOCKID,0) ֿ,PE.FAUXPROPID ,(PE.FMUSTQTY) AS Ӧ, +PQ.FSELPICKEDQTY as ѡ,PQ.FBASENOPICKEDQTY AS δ +into #tmpSubBOM +from T_SUB_REQORDER MO +inner join T_SUB_REQORDERENTRY ME ON MO.FID =ME.FID +--inner JOIN T_PRD_MOENTRY_A MA ON MA.FID =ME.FID AND ME.FENTRYID =MA.FENTRYID +inner join T_SUB_PPBOM PP on PP.FSUBREQID =MO.FID AND ME.FENTRYID =PP.FSUBREQENTRYID +inner join T_SUB_PPBOMENTRY PE on PP.FID =PE.FID +left join T_SUB_PPBOMENTRY_Q PQ on PP.FID =PQ.FID AND PE.FENTRYID =PQ.FENTRYID +left join T_SUB_PPBOMENTRY_C PC on PP.FID =PC.FID AND PE.FENTRYID =PC.FENTRYID +WHERE 1=1 AND MO.FCANCELSTATUS='A' AND MO.FDOCUMENTSTATUS='C' AND ME.FPRODUCTTYPE =1 +AND (MO.FDATE <=@FEDate AND ISNULL(ME.FCONVEYDATE,'')<>'') +AND (ME.FCLOSEDATE>@FEDate OR ISNULL(ME.FCLOSEDATE,'')='') + + + + + --ѯֹ֮еϵ + --select δ,t2.fbaseOutqty, * +update t1 set t1.δ=δ+t2.fbaseOutqty +from #tmpSubBOM t1 +INNER JOIN ( +SELECT tse.FSUBREQID,tse.FSUBREQBILLNO,tse.FSUBREQENTRYID,tse.FPPBOMENTRYID,tse.FPPBOMBILLNO, +TSE.FMATERIALID,sum(TSE.FBASESTOCKACTUALQTY) fbaseOutqty +FROM T_SUB_PICKMTRL TS INNER JOIN T_SUB_PICKMTRLDATA TSE ON TSE.FID = TS.FID +INNER JOIN T_SUB_PICKMTRLDATA_A TSED ON TSED.FENTRYID = TSE.FENTRYID +LEFT OUTER JOIN T_SUB_PICKMTRLDATA_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + +WHERE (TS.FDATE> @FEDate) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A') +group by tse.FSUBREQID,tse.FSUBREQBILLNO,tse.FSUBREQENTRYID,tse.FPPBOMENTRYID,tse.FPPBOMBILLNO,TSE.FMATERIALID +) t2 on t1.ίⵥ=t2.FSUBREQBILLNO and t1.ίⵥ¼=t2.FSUBREQENTRYID +and t1.ϵ=t2.FPPBOMBILLNO and t1.ϵ¼=t2.FPPBOMENTRYID and t1.=t2.FMATERIALID + + + +--ºδ +--select * from #tmpPPBOM + +select ,Ӧ, δ,FAUXPROPID,case when B.ֿ<>0 then B.ֿ else isnull(tms.FSTOCKID,0) end ֿ + into #tmpSubBOM1 from #tmpSubBOM B +left JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +left join T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.ֿ AND TSL.FLOCALEID = 2052) +--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) and TSK.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +order by + + + +select ,Ӧ, δ,FAUXPROPID, ֿ +into #tmpSubBOM3 from #tmpSubBOM1 B +left JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +WHERE -- (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + (TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TSK.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +order by + + + +select ,sum(Ӧ)Ӧ, sum(δ)δ ,FAUXPROPID, ֿ +into #tmpSubBOM2 from #tmpSubBOM3 +group by ֿ,,FAUXPROPID +order by ֿ,,FAUXPROPID + + +--δ(ί) +UPDATE t1 set t1.δ=isnull(t1.δ,0)+isnull(t2.δ,0) +from #Stock_Status_temp t1 +inner join #tmpSubBOM2 +t2 on t1.=t2. and t1.ֿ=t2.ֿ and t1.װ=T2.FAUXPROPID + + +--ݾ + +insert into #Stock_Status_temp (, ϴ, , ͺ, ɱ,װʽ,ֿ, ֿ, ֿ,װ,δ) + +select TM.fmaterialid as ,(TM.fnumber) ϴ,(TML.FNAME) as ,(TML.FSPECIFICATION) as ͺ,ISNULL(TM.FOLDNUMBER,'') AS ɱ, +isnull(t5.FAUXPTYNUMBER,'') װʽ,TBS.FSTOCKID ֿ,TSL.fname ֿ,TBS.fnumber ֿ,TSE.FAUXPROPID AS װ,(δ) +from #tmpSubBOM2 TSE +INNER JOIN T_BD_MATERIAL TM ON (TM.FMASTERID = TSE. ) +inner join T_BD_MATERIAL_L TML on TM.FMATERIALID =TML.FMATERIALID and TML.FLOCALEID =2052 +INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID= TSE.ֿ AND TSL.FLOCALEID = 2052) +LEFT OUTER JOIN T_BD_FLEXSITEMDETAILV t3 on TSE.FAUXPROPID=t3.FID +LEFT OUTER JOIN T_BAS_ASSISTANTDATAENTRY_L t4 on t3.FF100001=t4.FENTRYID +LEFT OUTER JOIN T_BD_AUXPTYVALUEENTITY t5 on t3.FF100001=t5.FAUXPTYID and t3.FID =t5.FAUXPTYVALUEID + +--select * from #tmpSal2 TSE +where δ>0 AND + not exists(select * from #Stock_Status_temp t2 where TSE.=t2. and TSE.ֿ=t2.ֿ and t2.װ=TSE.FAUXPROPID) + + + + +--*********************δ(ί)*end******************************* + +-- --ֹѯδ +-- UPDATE t1 set t1.δ=isnull(t1.δ,0)+isnull(t1.ܶ,0) +--from #Stock_Status_temp t1 +--where isnull(t1.ܶ,0)<>0 + +--**********************end******************************* + + + + +--깺δת +--*******************strat***************************** + +--ѯֹ֮ǰвɹ + + SELECT TS.FAPPLICATIONORGID fstockorgid, TS.FBILLNO 뵥 ,TS.FID AS ,TSE.FENTRYID ¼,TSE.FMATERIALID , + ISNULL(TSE.FAUXPROPID, 0) FAUXPROPID, TS.FAPPLICATIONDATE fdate, TMS.FSTOCKID ֿ, + FBASEUNITQTY ,TSEF.FREMAINQTY as δת + INTO #TMPREQ +FROM T_PUR_REQUISITION TS +INNER JOIN T_PUR_REQENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_PUR_REQENTRY_R TSEF ON (TSE.FID = TSEF.FID +AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_PUR_REQENTRY_S TSES ON (TSE.FID = TSES.FID AND TSE.FENTRYID = TSES.FENTRYID) +LEFT JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID=TM.FMATERIALID +LEFT JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +WHERE 1=1 +--AND ts.FBILLNO ='SQ1910100001'AND FORDERBASEQTY<>FBASEUNITQTY AND TS.FCLOSESTATUS<>'B' + AND (TS.FAPPLICATIONDATE <=@FEDate) + AND (TS.FCLOSEDATE>@FEDate or isnull(TS.FCLOSEDATE,'')='') + AND (TS.FAPPLICATIONORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) + + + + --ѯֹ֮вɹ + --select * +update t1 set t1.δת=δת+t2.fbaseOrdqty +from #TMPREQ t1 +INNER JOIN ( + SELECT t1r.FSRCBILLNO,t1k.FSBILLID,t1k.FSID ,t1.FMATERIALID,sum(t1.FBASEUNITQTY) fbaseOrdqty + FROM T_PUR_POORDER t0 + INNER JOIN T_PUR_POORDERENTRY t1 on (t0.FID = t1.FID) + INNER JOIN T_PUR_POORDERENTRY_R t1R ON(t1R.FID = t1.FID AND t1.FENTRYID = t1R.FENTRYID) + INNER JOIN T_PUR_POORDERENTRY_LK t1k ON(t1.FENTRYID = t1k.FENTRYID) + INNER JOIN T_BD_MATERIAL TM ON t1.FMATERIALID = TM.FMATERIALID + WHERE t0.FDATE>@FEDate and + ( t0.FCANCELSTATUS = 'A' AND TM.FFORBIDSTATUS = 'A') + group by t1r.FSRCBILLNO,t1k.FSBILLID,t1k.FSID ,t1.FMATERIALID + +) t2 on t1.=t2.FSBILLID and t1.¼=t2.FSID and t1.=t2.FMATERIALID + + +--º + + +select ,, δת,FAUXPROPID,case when B.ֿ<>0 then B.ֿ else isnull(tms.FSTOCKID,0) end ֿ +into #TMPREQ1 from #TMPREQ B +left JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +left join T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.ֿ AND TSL.FLOCALEID = 2052) +--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) and TSK.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +order by + + +select ,, δת,FAUXPROPID, ֿ +into #TMPREQ3 from #TMPREQ1 B +left JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +WHERE -- (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +(TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TSK.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +order by + + +select ,sum(), sum(δת)δת ,FAUXPROPID, ֿ +into #TMPREQ2 from #TMPREQ3 +group by ֿ,,FAUXPROPID +order by ֿ,,FAUXPROPID + +--깺δת +UPDATE t1 set t1.깺δת=t2.δת +from #Stock_Status_temp t1 +inner join #TMPREQ2 t2 on t1.=t2. and t1.ֿ=t2.ֿ and t1.װ=T2.FAUXPROPID + +--ݾ + +insert into #Stock_Status_temp (, ϴ, , ͺ, ɱ,װʽ,ֿ, ֿ, ֿ,װ,깺δת) + +select TM.fmaterialid as ,(TM.fnumber) ϴ,(TML.FNAME) as ,(TML.FSPECIFICATION) as ͺ,ISNULL(TM.FOLDNUMBER,'') AS ɱ, +isnull(t5.FAUXPTYNUMBER,'') װʽ,TBS.FSTOCKID ֿ,TSL.fname ֿ,TBS.fnumber ֿ,TSE.FAUXPROPID AS װ,(δת) +from #TMPREQ2 TSE +INNER JOIN T_BD_MATERIAL TM ON (TM.FMASTERID = TSE. ) +inner join T_BD_MATERIAL_L TML on TM.FMATERIALID =TML.FMATERIALID and TML.FLOCALEID =2052 +INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = TSE.ֿ AND TSL.FLOCALEID = 2052) +LEFT OUTER JOIN T_BD_FLEXSITEMDETAILV t3 on TSE.FAUXPROPID=t3.FID +LEFT OUTER JOIN T_BAS_ASSISTANTDATAENTRY_L t4 on t3.FF100001=t4.FENTRYID +LEFT OUTER JOIN T_BD_AUXPTYVALUEENTITY t5 on t3.FF100001=t5.FAUXPTYID and t3.FID =t5.FAUXPTYVALUEID + +--select * from #tmpSal2 TSE +where δת<>0 AND + not exists(select * from #Stock_Status_temp t2 where TSE.=t2. and TSE.ֿ=t2.ֿ and t2.װ=TSE.FAUXPROPID) + + +--***************************************************** + +--ռ + +--******************************************************** + select TSE.FMATERIALID ,(TSE.FBASEQTY)FBASEQTY, + case when TSE.FSTOCKID<>0 then TSE.FSTOCKID else isnull(tms.FSTOCKID,0)end FSTOCKID,TSE.FAUXPROPID + into #TMPLINK from T_PLN_RESERVELINK TS + INNER JOIN T_PLN_RESERVELINKENTRY TSE ON TS.FID=TSE.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + LEFT JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID + LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = TSE.FSTOCKID ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = TSE.FSTOCKID AND TSL.FLOCALEID = 2052) + where TSE.FBASEQTY<>0 + --and (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) and TSK.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +--group by TSE.FSTOCKID,TSE.FMATERIALID,FAUXPROPID +order by FSTOCKID,TSE.FMATERIALID,FAUXPROPID + + +select ,sum(FBASEQTY)FBASEQTY,FAUXPROPID, B.FSTOCKID ֿ +into #TMPLINK1 from #TMPLINK B +left JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +--left join T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.FSTOCKID ) +--LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.FSTOCKID AND TSL.FLOCALEID = 2052) +WHERE -- (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +(TM.FNUMBER in(select distinct ϱ from #YC_T_MRP )) +and TSK.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +group by b.FSTOCKID,,FAUXPROPID +order by b.FSTOCKID,,FAUXPROPID + + + + + +--ռ +UPDATE t1 set t1.ռ=t2.FBASEQTY +from #Stock_Status_temp t1 +inner join #TMPLINK1 t2 on t1.=t2. and t1.ֿ=t2.ֿ + and t1.װ=T2.FAUXPROPID + +--ݾռ + +insert into #Stock_Status_temp (, ϴ, , ͺ, ɱ,װʽ,ֿ, ֿ, ֿ,װ,ռ) + +select TM.fmaterialid as ,(TM.fnumber) ϴ,(TML.FNAME) as ,(TML.FSPECIFICATION) as ͺ,ISNULL(TM.FOLDNUMBER,'') AS ɱ, +isnull(t5.FAUXPTYNUMBER,'') װʽ,TBS.FSTOCKID ֿ,TSL.fname ֿ,TBS.fnumber ֿ,TSE.FAUXPROPID AS װ,(FBASEQTY) +from #TMPLINK1 TSE +INNER JOIN T_BD_MATERIAL TM ON (TM.FMASTERID = TSE. ) +inner join T_BD_MATERIAL_L TML on TM.FMATERIALID=TML.FMATERIALID and TML.FLOCALEID =2052 +INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = TSE.ֿ AND TSL.FLOCALEID = 2052) +LEFT OUTER JOIN T_BD_FLEXSITEMDETAILV t3 on TSE.FAUXPROPID=t3.FID +LEFT OUTER JOIN T_BAS_ASSISTANTDATAENTRY_L t4 on t3.FF100001=t4.FENTRYID +LEFT OUTER JOIN T_BD_AUXPTYVALUEENTITY t5 on t3.FF100001=t5.FAUXPTYID and t3.FID =t5.FAUXPTYVALUEID + +--select * from #tmpSal2 TSE +where FBASEQTY<>0 AND + not exists(select * from #Stock_Status_temp t2 where +TSE.=t2. and TSE.ֿ=t2.ֿ and t2.װ=TSE.FAUXPROPID) + + + + + +--*********************ռEND*********************************** + + +--ÿ +--******************************************************* + +UPDATE t1 set t1.ÿ=isnull(ĩ,0)+isnull(t1.,0)+isnull(;,0)-isnull(δ,0)-isnull(ܶ,0) +from #Stock_Status_temp t1 + +--*********************ÿEND********************************** + + --BOM +select =IDENTITY(INT,1,1), ϴ , , ͺ , ɱ , ڽ , + ڲɹ , ں , ĩ , ; , , , +δ , ,۳ ,ֿⲦ ,ֿⲦ,깺δת , +ܶ ,ռ ,ÿ , ֿ ,ֿ , װʽ , Ʒ into #Stock_Bom +from ( + select ϴ , t2. , ͺ , ɱ , ڽ , + ڲɹ , ں , ĩ , ; , , , +δ , ,۳ ,ֿⲦ ,ֿⲦ,깺δת , +ܶ ,ռ ,ÿ , ֿ ,ֿ , װʽ , t1.FOrderNum Ʒ +,FOrderNum,FSEQ1,FSEQ2,FSEQ3,FSEQ4,FSEQ5,FSEQ6 +from #YC_T_MRP t1 +INNER join #Stock_Status_temp t2 on t1.ϱ=t2.ϴ +union all +select t1.ϱ ϴ , t2.FNAME , t2.FSPECIFICATION ͺ , isnull(TM.FOLDNUMBER,'') ɱ , +0 ڽ , 0 ڲɹ , 0 ں , 0 ĩ ,0 ; ,0 , 0 , +0 δ , 0 ,0 ۳ ,0 ֿⲦ ,0 ֿⲦ,0 깺δת , 0 ܶ , +0 ռ ,0 ÿ , ts.FNUMBER as ֿ ,tsl.FNAME as ֿ , ''װʽ, t1.FOrderNum Ʒ +,FOrderNum,FSEQ1,FSEQ2,FSEQ3,FSEQ4,FSEQ5,FSEQ6 +from #YC_T_MRP t1 +INNER JOIN T_BD_MATERIAL TM ON (TM.FMATERIALID = t1.FMATERIALID ) +INNER JOIN T_BD_MATERIAL_L t2 ON (t2.FMATERIALID = t1.FMATERIALID ) +INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +inner join T_BD_STOCK ts on tms.FSTOCKID=ts.FSTOCKID +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = TS.FSTOCKID AND TSL.FLOCALEID = 2052) +where ϱ not in (select distinct ϴ from #Stock_Status_temp t2) +and TMS.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) + + )t + order by FOrderNum,FSEQ1,FSEQ2,FSEQ3,FSEQ4,FSEQ5,FSEQ6 + +select * from #Stock_Bom where like '%'+@FName+'%' + +drop table #TMP +drop table #TMP1 +DROP TABLE #TMPLINK +DROP TABLE #TMPLINK1 +drop table #TMP4 +drop table #TMP5 +drop table #TMP6 +drop table #TMP7 +drop table #TMP8 +drop table #tmpSal +drop table #tmpSal1 +drop table #tmpSal2 +drop table #tmpSal3 +drop table #tmpMO +drop table #tmpMO1 +drop table #tmpMO2 +drop table #tmpMO3 + +drop table #TMPREQ +drop table #TMPREQ1 +drop table #TMPREQ2 +drop table #TMPREQ3 +DROP TABLE #TMPRECEIVE +DROP TABLE #TMPRECEIVE1 +DROP TABLE #TMPRECEIVE2 +DROP TABLE #TMPRECEIVE3 +drop table #tmppoorder +drop table #tmppoorder1 +drop table #tmppoorder2 +drop table #tmppoorder3 +drop table #tmpPPBOM +drop table #tmpPPBOM1 +drop table #tmpPPBOM2 +drop table #tmpPPBOM3 +drop table #tmpSUBBOM +drop table #tmpSUBBOM1 +drop table #tmpSUBBOM2 +drop table #tmpSUBBOM3 +drop table #Stock_Status_temp + +set nocount off diff --git a/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/sql/创建临时表.sql b/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/sql/创建临时表.sql new file mode 100644 index 0000000..13bd909 --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/sql/创建临时表.sql @@ -0,0 +1,88 @@ +/* + Navicat Premium Data Transfer + + Source Server : sql server + Source Server Type : SQL Server + Source Server Version : 15002080 + Source Host : .:1433 + Source Catalog : AIS20231110222743 + Source Schema : dbo + + Target Server Type : SQL Server + Target Server Version : 15002080 + File Encoding : 65001 + + Date: 06/02/2024 11:40:17 +*/ + + +-- ---------------------------- +-- Table structure for TMP123123123123123 +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[TMP123123123123123]') AND type IN ('U')) + DROP TABLE [dbo].[TMP123123123123123] +GO + +CREATE TABLE [dbo].[TMP123123123123123] ( + [FIDENTITYID] bigint NOT NULL, + [FID] int NOT NULL, + [FSEQ] int NULL, + [FENTRYID] int NOT NULL, + [FDATE] datetime NULL, + [FPLANSTARTDATE] datetime NULL, + [FPLANFINISHDATE] datetime NULL, + [FSALEORDERNO] nvarchar(80) COLLATE Chinese_PRC_CI_AS NULL, + [FBILLNO] nvarchar(80) COLLATE Chinese_PRC_CI_AS NULL, + [FQTY] decimal(23,10) NOT NULL, + [FYIELDRATE] decimal(19,6) NOT NULL, + [FROUTINGID] int NULL, + [PRODUCTTYPE] varchar(6) COLLATE Chinese_PRC_CI_AS NOT NULL, + [ProMaterialId] int NULL, + [PrdUnitId] int NULL, + [FPPBOMBILLNO] nvarchar(80) COLLATE Chinese_PRC_CI_AS NULL, + [FBOMENTRYID] int NULL, + [ProMnemoniccode] nvarchar(20) COLLATE Chinese_PRC_CI_AS NULL, + [ProNumber] nvarchar(80) COLLATE Chinese_PRC_CI_AS NULL, + [ProName] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [ProSpecification] nvarchar(510) COLLATE Chinese_PRC_CI_AS NULL, + [ProUnitName] nvarchar(80) COLLATE Chinese_PRC_CI_AS NULL, + [FMATERIALID] int NULL, + [FUnitNeedQty] decimal(38,15) NULL, + [FNEEDQTY] decimal(23,10) NOT NULL, + [FUNITID] int NOT NULL, + [FBASEWIPQTY] decimal(23,10) NULL, + [FPICKEDQTY] decimal(23,10) NULL, + [FNOPICKEDQTY] decimal(23,10) NULL, + [FSTDQTY] decimal(23,10) NOT NULL, + [FMUSTQTY] decimal(23,10) NOT NULL, + [FMEMO] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [FLossQty] decimal(38,10) NULL, + [FSCRAPQTY] decimal(23,10) NULL, + [FREPICKEDQTY] decimal(23,10) NULL, + [FWORKSHOPID] int NULL, + [FSTOCKID] int NULL, + [FSTOCKLOCID] int NULL, + [PPBOMStatus] varchar(8) COLLATE Chinese_PRC_CI_AS NOT NULL, + [MaterialNumber] nvarchar(80) COLLATE Chinese_PRC_CI_AS NULL, + [MaterialName] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [MaterialSpecification] nvarchar(510) COLLATE Chinese_PRC_CI_AS NULL, + [MaterialUnitName] nvarchar(80) COLLATE Chinese_PRC_CI_AS NULL, + [Materialsrc] varchar(3) COLLATE Chinese_PRC_CI_AS NOT NULL, + [WORKSHOPNAME] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [FMASTERID] int NULL, + [FUSEORGID] int NULL, + [BOMMEMO] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [FSTOCKNAME] nvarchar(80) COLLATE Chinese_PRC_CI_AS NULL, + [FBASEQTY] decimal(38,10) NULL, + [ROUTENAME] nvarchar(80) COLLATE Chinese_PRC_CI_AS NULL, + [FBASEINVQTY] decimal(23,10) NULL, + [FBASELACKQTY] decimal(23,10) NULL, + [FBASEONORDERQTY] decimal(23,10) NULL, + [StatusIs6] varchar(6) COLLATE Chinese_PRC_CI_AS NOT NULL, + [LOWEST6] int NOT NULL +) +GO + +ALTER TABLE [dbo].[TMP123123123123123] SET (LOCK_ESCALATION = TABLE) +GO + diff --git a/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/sql/新BOM层级库存状态.sql b/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/sql/新BOM层级库存状态.sql new file mode 100644 index 0000000..81eaa7f --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/sql/新BOM层级库存状态.sql @@ -0,0 +1,281 @@ +declare + @moBillNo varchar(100) + ,@salesBillNo varchar(100) + ,@startMaterialId int + ,@endMaterialId int + ,@FSDate varchar (30) + ,@FEDate varchar (30) + ,@FSNumber varchar (50) + ,@FENumber varchar (50) + ,@FSStock varchar (max) +SET @moBillNo ='' +SET @salesBillNo ='' +SET @moBillNo = 0 +SET @moBillNo = 0 +SET @FSDate = '2024-01-05' +SET @FEDate = '2024-02-05' +SET @FSNumber = '1.01' +SET @FENumber = '1.01' +--SET @FSNumber = 'TSH182H000208O' +--SET @FENumber = 'TSH182H000208O' +SET @FSStock ='' + +declare @FCloseBALDate varchar (30) +declare @FClosedate varchar (30) + +--ѯʼһڵĩ +If NOT Exists( + SELECT FORGID, MAX(FCLOSEDATE) fclosedate + FROM T_STK_CLOSEPROFILE + WHERE FORGID IN (1) AND FCATEGORY = 'STK' AND (FCLOSEDATE < @FSDate) + GROUP BY FORGID) +BEGIN + SET @FClosedate='2020-01-01' + SET @FCloseBALDate='2020-01-01' + --print @FClosedate +END +ELSE +BEGIN + --SET @FClosedate='2019-07-01' + SELECT @FClosedate= CONVERT(varchar (30), DATEADD(D, 1,MAX(FCLOSEDATE)),23) FROM + T_STK_CLOSEPROFILE WHERE ((FORGID IN (1) AND FCATEGORY = 'STK') AND (FCLOSEDATE < @FSDate)) GROUP BY FORGID + SET @FCloseBALDate=CONVERT(varchar (30), DATEADD(D, -1,@FClosedate),23) + --print @FClosedat +END + +DECLARE @FSWL varchar (50) +DECLARE @FEWL varchar (50) + +SET @FSWL='' +SET @FEWL='' + +IF @FSNumber<>'' and @FENumber<>'' +BEGIN + SET @FSWL= @FSNumber + SET @FEWL= @FENumber +END +IF @FSNumber<>'' and @FENumber='' +BEGIN + SET @FSWL= @FSNumber + SELECT @FEWL=MAX(FNUMBER) FROM T_BD_MATERIAL +END +IF @FSNumber='' and @FENumber<>'' +BEGIN + SET @FEWL= @FENumber + SELECT @FSWL=MIN(FNUMBER) FROM T_BD_MATERIAL +END +IF @FSNumber='' and @FENumber='' +BEGIN + SELECT @FSWL=MIN(FNUMBER) FROM T_BD_MATERIAL + SELECT @FEWL=MAX(FNUMBER) FROM T_BD_MATERIAL +END + + --ʱѡȡֿ + +IF EXISTS(select * FROM tempdb..SYSOBJECTS WHERE id=OBJECT_ID('tempdb..#tmpStockID')) +BEGIN + DROP TABLE #tmpStockID + print '' +END +Create Table #tmpStockID ( + FID INT IDENTITY(1,1) + ,FStockID INT +) +DECLARE @Strsql varchar(max) +SET @Strsql= 'insert into #tmpStockID select distinct FSTOCKID from T_BD_STOCK where 1=1 ' +@FSStock +EXEC(@Strsql) + +--״̬ + +if exists(select * from tempdb..sysobjects where id=object_id('tempdb..#Stock_Status_temp')) +begin + drop table #Stock_Status_temp + print '' +end + +Create Table #Stock_Status_temp ( + INT IDENTITY(1,1), + INT , + ϴ varchar(100) null , + varchar(255) null , + ͺ varchar(255) null , + ɱ varchar(100) null , + --λ varchar(30) null , + ڽ DECIMAL (18, 2) Null , + ڲɹ DECIMAL (18, 2) Null , + ں DECIMAL (18, 2) Null , + ĩ DECIMAL (18, 2) Null , + ; DECIMAL (18, 2) Null , + DECIMAL (18, 2) Null , + DECIMAL (18, 2) Null , + δ DECIMAL (18, 2) Null , + DECIMAL (18, 2) Null , + ۳ DECIMAL (18, 2) Null , + ֿⲦ DECIMAL (18, 2) Null , + ֿⲦ DECIMAL (18, 2) Null , + 깺δת DECIMAL (18, 2) Null, + ܶ DECIMAL (18, 2) Null , + ռ DECIMAL (18, 2) Null , + ÿ DECIMAL (18, 2) Null , + ֿ INT , + ֿ varchar(100) null , + ֿ varchar(255) null , + װ INT , + װʽ varchar(255) null +) + +if exists(select * from tempdb..sysobjects where id=object_id('tempdb..#TMP')) +begin + drop table #TMP + print '' +end + +CREATE TABLE #TMP ( + FID INT IDENTITY(1,1), + FSTOCKORGID INT NOT NULL DEFAULT 0, + FBILLENTRYID INT NOT NULL DEFAULT 0, + FORDERBY INT NOT NULL DEFAULT 0, + FSTOCKIO CHAR (1) NULL, + FMATERIALID INT NOT NULL DEFAULT 0, + FAUXPROPID INT NOT NULL DEFAULT 0, + FDATE DATETIME NULL, + FSTOCKID INT NOT NULL DEFAULT 0, + FSTOCKLOCID INT NOT NULL DEFAULT 0, + FSTOCKSTATUSID INT NOT NULL DEFAULT 0, + FBILLNAME NVARCHAR (100) NULL, + FBILLID INT NOT NULL DEFAULT 0, + FBILLSEQID INT NULL, + FBILLNO NVARCHAR (100) NULL, + FBASEQCQTY DECIMAL (23, 10) NOT NULL DEFAULT 0, + FBASEINQTY DECIMAL (23, 10) NOT NULL DEFAULT 0, + FBASEOUTQTY DECIMAL (23, 10) NOT NULL DEFAULT 0 +) + +--BOM㼶 + +IF EXISTS(SELECT * FROM TEMPDB..SYSOBJECTS WHERE ID=OBJECT_ID('TEMPDB..#YC_T_MRP')) +BEGIN + DROP TABLE #YC_T_MRP +END + +CREATE TABLE #YC_T_MRP( + FID INT IDENTITY(1,1), + FBOMNumber NVARCHAR(255), + FMATERIALID INT, + ϱ NVARCHAR(255), + NVARCHAR(255), + Ʒ DECIMAL(28,10) DEFAULT (0), + DECIMAL(28,10),--BOM + ĸ DECIMAL(28,10),--BOMĸ + FQty DECIMAL(28,10),-- + FLevle INT , + FERPCLSID INT, + FOrderNum NVARCHAR(255), + FBOMID INT, + BOM㼶 NVARCHAR(200) NULL, + FSEQ1 INT, + FSEQ2 INT, + FSEQ3 INT, + FSEQ4 INT, + FSEQ5 INT, + FSEQ6 INT, + FParentNumber NVARCHAR(255) +) + +IF EXISTS(SELECT * FROM TEMPDB..SYSOBJECTS WHERE ID=OBJECT_ID('TEMPDB..#BOMTMP')) +BEGIN + DROP TABLE #BOMTMP +END + +/*ȡ״̬BOMʱ*/ +SELECT + ID=IDENTITY(INT,1,1) + ,T0.FID + ,T0.FNUMBER + ,T0.FMATERIALID + ,ROW_NUMBER() OVER(PARTITION BY T0.FMATERIALID ORDER BY t0.FID DESC) AS ROWID + INTO #BOMTmp +FROM T_ENG_BOM T0 + INNER JOIN T_BD_MATERIAL TM ON t0.FMATERIALID=TM.FMATERIALID --ϱ +WHERE (t0.FDOCUMENTSTATUS = 'C') and (t0.FFORBIDSTATUS='A') + AND (TM.FNUMBER >= @FSWL AND TM.FNUMBER <=@FEWL) +ORDER BY FMATERIALID,FNUMBER + +--/*ʱУͬһϴֻһ°汾BOM*/ +--DELETE FROM #BOMTmp WHERE id NOT IN (SELECT max(id) FROM #BOMTmp GROUP BY FMATERIALID) +DELETE FROM #BOMTmp WHERE ROWID > 1 + +IF EXISTS(SELECT * FROM TEMPDB..SYSOBJECTS WHERE ID=OBJECT_ID('TEMPDB..#TMP_TOP_BOM_SET')) +BEGIN + DROP TABLE #TMP_TOP_BOM_SET +END + +CREATE TABLE #TMP_TOP_BOM_SET( + FID int + ,FNUMBER varchar(80) + ,FMATERIALID int + ,FSEQ int + ,BOMLEVEL int + ,TOPID int + ,showlevel varchar(80) + ,BOMID int + ,FERPCLSID int +) +CREATE INDEX [#TMP_TOP_BOM_SET_FID] ON #TMP_TOP_BOM_SET(FID); + +INSERT INTO #TMP_TOP_BOM_SET +SELECT + t0.FID + ,t1.FNUMBER + ,t0.FMATERIALID + ,ROW_NUMBER() over(partition BY t0.FID order by t0.fid) + ,1 'BOMLEVEL' + ,t0.FID AS 'TOPID' + ,'' + ,t0.FID AS 'BOMID' + ,t2.FERPCLSID +FROM T_ENG_BOM t0 + INNER JOIN T_BD_MATERIAL t1 on t0.FMATERIALID = t1.FMATERIALID + LEFT OUTER JOIN t_BD_MaterialBase t2 ON t1.FMATERIALID = t2.FMATERIALID + INNER JOIN #BOMTmp t3 on t3.FNUMBER = t0.FNUMBER AND t3.FMATERIALID = t0.FMATERIALID +WHERE 1 = 1 + AND (t0.FDOCUMENTSTATUS = 'C') + +DECLARE @num INT,@level int,@LoopCount int +SET @num = 1 +SET @level =1 +SET @LoopCount = 0; + + +WHILE (@num > 0 AND @LoopCount < 10) +BEGIN + INSERT INTO #TMP_TOP_BOM_SET + SELECT + t3.FID + ,t2.FNUMBER + ,t1.FMATERIALID + ,ROW_NUMBER() over(partition BY t0.TOPID,t0.bomid order by t0.fseq) 'FSEQ' + ,@level + 1 AS 'BOMLEVEL' + ,t0.TOPID + ,CONCAT(t0.showlevel,'-',CAST(dense_rank() over(partition BY t0.topid,t0.bomid,t0.fid order by t1.fseq) as VARCHAR)) 'showLevel' + ,0 'OID' + ,t4.FERPCLSID + FROM + #TMP_TOP_BOM_SET t0 + LEFT JOIN T_ENG_BOMCHILD t1 on t0.BOMID = t1.FID + INNER JOIN T_BD_MATERIAL t2 on t2.FMATERIALID = t1.FMATERIALID + LEFT JOIN T_BD_MATERIAL_L t1_l on t1_l.FMATERIALID = t1.FMATERIALID AND t1_l.FLOCALEID = 2052 + LEFT JOIN T_ENG_BOM t3 on t1.FID = t3.FID--t1.FMATERIALID = t3.FMATERIALID + LEFT JOIN T_BD_MATERIALBASE t4 on t4.FMATERIALID = t1.FMATERIALID + WHERE 1 = 1 + --AND (t2.FERPCLSID = 2 OR t2.FERPCLSID = 5 ) + AND t0.FERPCLSID >= 2 + AND t0.BOMLEVEL = @level + AND t3.FDOCUMENTSTATUS = 'C' + AND t2.FFORBIDSTATUS = 'A' + + SET @num = @@ROWCOUNT + SET @level += 1 + SET @LoopCount += 1 +END +SELECT * FROM #TMP_TOP_BOM_SET \ No newline at end of file diff --git a/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/sql/生产投料查询表_20240206.sql b/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/sql/生产投料查询表_20240206.sql new file mode 100644 index 0000000..bb41244 --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/sql/生产投料查询表_20240206.sql @@ -0,0 +1,179 @@ + --IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].TMP123123123123123') AND type IN ('U')) + -- DROP TABLE [dbo].TMP123123123123123 + --GO + + declare @tableName varchar(80) + ,@seqFid varchar(80) + ,@proMaterialId int + ,@materialId int + ,@FBILLNO varchar(80) + ,@FPPBOMBILLNO varchar(80) + ,@FSALEORDERNO varchar(80) + ,@LCID int + + SET @tableName = 'TMP123123123123123' + SET @seqFid = 'ROW_NUMBER() OVER(ORDER BY t0.FID) AS FIDENTITYID' + SET @proMaterialId = '' + SET @materialId = '' + SET @FBILLNO = '' + SET @FPPBOMBILLNO = '' + SET @FSALEORDERNO = '' + SET @LCID = 2052 +/***********************生产订单关联信息start****************************/ + SELECT + --ROW_NUMBER() OVER(ORDER BY t0.FID) AS FIDENTITYID--1.行号 + t0.FID + ,t0e.FSEQ + ,t0e.FENTRYID + ,t0.FDATE --2.单据日期 + ,t0e.FPLANSTARTDATE--38.计划开工日期 + ,t0e.FPLANFINISHDATE--39.计划完工日期 + ,t0e.FSALEORDERNO --4.销售订单号 + ,t0.FBILLNO--7.生产任务单号 + ,t0e.FQTY--12.产品生产数量 + --,t0e.FSTOCKID--35.仓库 + --,t0e.FSTOCKLOCID--36.仓位 + ,t0e.FYIELDRATE + ,t0e.FROUTINGID + ,(CASE t0e.FPRODUCTTYPE WHEN 1 THEN '主产品' WHEN 2 THEN '主产品' WHEN 3 THEN '主产品' ELSE '' END) AS 'PRODUCTTYPE'--43.生产类型 + ,t0e.FMATERIALID AS 'ProMaterialId' + ,t0e.FUNITID AS 'PrdUnitId' + --,(CASE t1.FMATERIALSRC WHEN 'A' THEN 'PLM' WHEN 'B' THEN 'ERP' ELSE '' END) AS 'ProMaterialsrc' --15.物料来源 + INTO #TMPMO_BASE_INFO + FROM + T_PRD_MO t0 + INNER JOIN T_PRD_MOENTRY t0e on t0e.FID = t0.FID + WHERE + t0.FBILLNO = (CASE WHEN @FBILLNO != '' THEN @FBILLNO ELSE t0.FBILLNO END) + AND t0e.FSALEORDERNO = (CASE WHEN @FSALEORDERNO != '' THEN @FSALEORDERNO ELSE t0e.FSALEORDERNO END) + AND t0e.FMATERIALID = (CASE WHEN @proMaterialId <> 0 THEN @proMaterialId ELSE t0e.FMATERIALID END) + + CREATE INDEX #TMPMO_BASE_INFO_INDEX_FENTRYID ON #TMPMO_BASE_INFO(FENTRYID); + + SELECT tt.* + ,(CASE t0e_a.FSTATUS WHEN 6 THEN '已结案'ELSE '' END) AS 'StatusIs6'--45.生产任务单结案否 + ,t1.FMNEMONICCODE AS 'ProMnemoniccode'--6.助记码 + ,t1.FNUMBER AS 'ProNumber'--8.产品编码 + ,t1_l.FNAME AS 'ProName'--9.产品名称 + ,t1_l.FSPECIFICATION AS 'ProSpecification'--10.产品规格型号 + ,t2_l.FNAME AS 'ProUnitName'--11.产品单位 + INTO #TmpTable0 + FROM #TMPMO_BASE_INFO tt + INNER JOIN T_PRD_MOENTRY_A t0e_a on t0e_a.FENTRYID = tt.FENTRYID + LEFT JOIN T_BD_MATERIAL t1 ON t1.FMATERIALID = tt.ProMaterialId + LEFT JOIN T_BD_MATERIAL_L t1_l ON t1_l.FMATERIALID = tt.ProMaterialId AND t1_l.FLOCALEID = @LCID + LEFT JOIN T_BD_UNIT_L t2_l ON t2_l.FUNITID = tt.PrdUnitId AND t2_l.FLOCALEID = @LCID + + DROP TABLE #TMPMO_BASE_INFO + + CREATE INDEX #TmpTable0_FENTRYID_INDEX ON #TmpTable0(FENTRYID); +/***********************生产订单关联信息end****************************/ + +/***********************生产用料清单关联信息start****************************/ + SELECT + tt.* + ,t0.FBILLNO AS 'FPPBOMBILLNO'--3.生产投料单号 + ,t0e.FMATERIALID + ,t0e.FENTRYID AS 'PPBOMENTRYID' + ,(t0e.FNUMERATOR / t0e.FDENOMINATOR) AS 'FUnitNeedQty' --18.物料单位用量 + ,t0e.FNEEDQTY --22.物料总需求 + ,t0e.FUNITID + ,t0e.FBOMENTRYID + ,t0e.FSTDQTY --标准用量 --29.标准数量 + ,t0e.FMUSTQTY --应发数量 --30.应发数量 + ,t0.FWORKSHOPID + ,(CASE t0.FDOCUMENTSTATUS WHEN 'A' THEN '创建' WHEN 'B' THEN '审核中' WHEN 'C' THEN '已审核' WHEN 'D' THEN '重新审核' WHEN 'Z' THEN '暂存' ELSE '' END) AS 'PPBOMStatus'--46.生产投料单状态 + INTO #TMPPPBOM_BASE_INFO + FROM + T_PRD_PPBOM t0 --生产用料清单 + INNER JOIN T_PRD_PPBOMENTRY t0e ON t0.FID = t0e.FID + INNER JOIN #TmpTable0 tt on t0.FMOENTRYID = tt.FENTRYID + WHERE + T0.FBILLNO = (CASE WHEN @FPPBOMBILLNO != '' THEN @FPPBOMBILLNO ELSE T0.FBILLNO END) + AND t0e.FMATERIALID = (CASE WHEN @materialId <> 0 THEN @materialId ELSE t0e.FMATERIALID END) + + CREATE INDEX #TMPPPBOM_BASE_INFO_PPBOMENTRYID_INDEX ON #TMPPPBOM_BASE_INFO(PPBOMENTRYID); + + SELECT tt.* + ,t0e_q.FBASEWIPQTY --23.当前在制品数量 + ,t0e_q.FPICKEDQTY --27.已领数量 + ,t0e_q.FNOPICKEDQTY --28.未领数量 + ,t0e_l.FMEMO --31.备注 + ,t0e_q.FPICKEDQTY * (100 - tt.FYIELDRATE) AS 'FLossQty'--32.损耗数量 + ,t0e_q.FSCRAPQTY --33.报废数量 + ,t0e_q.FREPICKEDQTY --37.补料数量 + ,t0e_c.FSTOCKID + ,t0e_c.FSTOCKLOCID + INTO #TmpTable1 + FROM #TMPPPBOM_BASE_INFO tt + LEFT JOIN T_PRD_PPBOMENTRY_Q t0e_q ON t0e_q.FENTRYID = tt.PPBOMENTRYID --生产用料清单数量拆分表 + LEFT JOIN T_PRD_PPBOMENTRY_C t0e_c ON t0e_c.FENTRYID = tt.PPBOMENTRYID + LEFT JOIN T_PRD_PPBOMENTRY_L t0e_l on t0e_l.FENTRYID = tt.PPBOMENTRYID AND t0e_l.FLOCALEID = @LCID + + DROP TABLE #TMPPPBOM_BASE_INFO + + SELECT + tt.* + ,t1.FNUMBER AS 'MaterialNumber'--8.物料编码 + ,t1_l.FNAME AS 'MaterialName'--9.物料名称 + ,t1_l.FSPECIFICATION AS 'MaterialSpecification'--10.物料规格型号 + ,t2_l.FNAME AS 'MaterialUnitName'--11.物料单位 + ,(CASE t1.FMATERIALSRC WHEN 'A' THEN 'PLM' WHEN 'B' THEN 'ERP' ELSE '' END) AS 'Materialsrc' --15.物料来源 + ,t4_l.FNAME AS 'WORKSHOPNAME' --44.生产车间 + ,t1.FMASTERID + ,t1.FUSEORGID + ,t5_l.FMEMO AS 'BOMMEMO' --42.BOM备注项 + ,t3_l.FNAME AS 'FSTOCKNAME' + into #TmpTable2 + FROM + #TmpTable1 tt + LEFT JOIN T_BD_MATERIAL t1 ON t1.FMATERIALID = tt.FMATERIALID + LEFT JOIN T_BD_MATERIAL_L t1_l ON t1_l.FMATERIALID = tt.FMATERIALID AND t1_l.FLOCALEID = @LCID + LEFT JOIN T_BD_UNIT_L t2_l ON t2_l.FUNITID = tt.FUNITID AND t2_l.FLOCALEID = @LCID + LEFT JOIN T_BD_STOCK_L t3_l ON t3_l.FSTOCKID = tt.FSTOCKID AND t3_l.FLOCALEID =@LCID + LEFT JOIN T_BD_DEPARTMENT_L t4_l on t4_l.FDEPTID = tt.FWORKSHOPID AND t4_l.FLOCALEID = @LCID + LEFT JOIN T_ENG_BOMCHILD_L t5_l ON t5_l.FENTRYID = tt.FBOMENTRYID AND t5_L.FLOCALEID = @LCID + +/***********************生产用料清单关联信息end****************************/ + SELECT + t0.* + ,t1.FBASEQTY + ,t2_l.FNAME AS 'ROUTENAME' + ,t3e_A.FBASEINVQTY + ,t3e.FBASELACKQTY AS 'FBASELACKQTY'--24.欠料 + ,t3e_A.FBASEONORDERQTY AS 'FBASEONORDERQTY' --25.物料在途数 + ,6 AS 'LOWEST6' + --INTO #TmpTable3 + FROM + #TmpTable2 t0 + LEFT JOIN ( + SELECT + t0.FMATERIALID + ,t0.FSTOCKORGID + ,sum(t0.FBASEQTY) AS FBASEQTY + FROM + T_STK_INVENTORY t0 + GROUP BY + t0.FMATERIALID + ,t0.FSTOCKORGID + ) t1 on t1.FMATERIALID = t0.FMASTERID AND t1.FSTOCKORGID = t0.FUSEORGID + LEFT JOIN T_ENG_ROUTE_L t2_L on t2_L.FID = t0.FROUTINGID AND t2_L.FLOCALEID = @LCID + LEFT JOIN T_PRD_PMPPBOMENTRY t3e on t3e.FMOID = t0.FID AND t3e.FMOENTRYID = t0.FENTRYID AND t3e.FMOENTRYSEQ = t0.FSEQ AND t3e.FMATERIALIDSUB = t0.FMATERIALID --AND t3e.FMATERIALID = t0.FMATERIALID + LEFT JOIN T_PRD_PMPPBOMENTRY_A t3e_A ON t3e_A.FENTRYID = t3e.FENTRYID + + + --exec(N' + --SELECT + -- t0.* + -- ,' + @seqFid+ ' + -- INTO ' + @tableName + ' + --FROM + -- #TmpTable3 t0 + --') + + drop table #TmpTable0 + drop table #TmpTable1 + drop table #TmpTable2 + --drop table #TmpTable3 + + --exec(N'SELECT * FROM '+ @tableName) \ No newline at end of file diff --git a/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/sql/缺料分析查询报表.sql b/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/sql/缺料分析查询报表.sql new file mode 100644 index 0000000..7326fda --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/sql/缺料分析查询报表.sql @@ -0,0 +1,248 @@ +DECLARE @needNum DECIMAL(23,6) +,@sDate varchar(100) +,@eDate varchar(100) +SET @needNum = 20 +SET @sDate = '2024-03-01' +SET @eDate = '2024-03-24' + +CREATE TABLE #TMPMATERIALINFO(MATERIALID int,needNum decimal(23,6)) +INSERT INTO #TMPMATERIALINFO +SELECT +101521 AS 'MATERIALID' +,10 needNum +Union +SELECT +101530 AS 'MATERIALID' +,30 needNum + +SELECT MATERIALID,SUM(needNum) needNum +INTO #TMPMATERIALNUM +FROM #TMPMATERIALINFO +GROUP BY MATERIALID +DROP TABLE #TMPMATERIALINFO + +--SELECT @needNum AS 'needNum' +--,t0.FMATERIALID AS 'MATERIALID' +--INTO #TMPMATERIALNUM +--FROM T_BD_MATERIAL t0 +--WHERE t0.FDOCUMENTSTATUS = 'C' +-- --AND t0.FMATERIALID = 100245 +-- --AND t0.FMATERIALID = 122599 +-- AND t0.FNUMBER IN ('1.02','1.05') +-- --AND t0.FMATERIALID IN (100259,100235) + +SELECT t0.FMASTERID + ,t0.FMATERIALID + ,t0.FNUMBER + ,t0.FUSEORGID + ,t1.needNum AS 'ProMaterialQty' + INTO #ProMaterial +FROM T_BD_MATERIAL t0 + INNER JOIN #TMPMATERIALNUM t1 on t0.FMATERIALID = t1.MATERIALID +WHERE t0.FDOCUMENTSTATUS = 'C' + +CREATE TABLE #PRO_MATERIAL_LACKANALYE( + FIDENTITYID int not null default 0 + ,ProMaterialId int not null default 0 + ,BomId int + ,Ʒ varchar(100) default '' + ,Ʒ varchar(100) default '' + ,Ʒ_ decimal(23,6) default 0 + ,Ʒ_ʱ decimal(23,6) default 0 + ,Ʒ_δ decimal(23,6) default 0 + ,Ʒ_ decimal(23,6) default 0 + ,Ʒ_ܶ decimal(23,6) default 0 + ,Ʒ_; decimal(23,6) default 0 + ,Ʒ_ÿ decimal(23,6) default 0 + ,Ʒ_ʵ decimal(23,6) default 0 + ,BOMLEVEL int + ,IsProduct int + ,ϸϼ int +) + +CREATE TABLE #MATERIAL_LACKANALYE( + FIDENTITYID int not null default 0 + ,MaterialId int not null default 0 + ,BomId int + ,ϴ varchar(100) default '' + , varchar(100) default '' + ,_ decimal(23,6) default 0 + ,_ʱ decimal(23,6) default 0 + ,_δ decimal(23,6) default 0 + ,_ decimal(23,6) default 0 + ,_ܶ decimal(23,6) default 0 + ,_; decimal(23,6) default 0 + ,_ÿ decimal(23,6) default 0 + ,_ʵ decimal(23,6) default 0 + ,BOMLEVEL int + ,IsProduct int + ,ϸϼ int +) + +SELECT t0.FMATERIALID + ,ISNULL(t3.sumQTY,0) AS ʱ + ,ISNULL(t4.sumBASENOPICKEDQTY,0) AS δ + ,ISNULL(t5.sumNoStockInQty,0) AS + ,ISNULL(t1. - t1.δ,0) AS 'ܶ' + ,ISNULL(t2. - t2.,0) AS ';' + ,(ISNULL(t3.sumQTY,0) - ISNULL(t4.sumBASENOPICKEDQTY,0) + ISNULL(t5.sumNoStockInQty,0) - ISNULL(t1. - t1.δ,0) + ISNULL(t2. - t2.,0)) AS 'ÿ' + INTO #Material_Stock_Statu +FROM T_BD_MATERIAL t0 + LEFT JOIN ( + SELECT + t0e.FMATERIALID,SUM(t0e.FQTY) AS '' + ,SUM((t0e_r.FBASEREMAINOUTQTY + t0e_r.FBASERETURNQTY)) AS 'δ' + FROM T_SAL_ORDER t0 + INNER JOIN T_SAL_ORDERENTRY t0e on t0.FID = t0e.FID + INNER JOIN T_SAL_ORDERENTRY_R t0e_r on t0e.FID = t0e_r.FID AND t0e_r.FENTRYID = t0e.FENTRYID + WHERE t0.FDOCUMENTSTATUS = 'C' + AND t0.FCANCELSTATUS = 'A' + AND t0.FCLOSESTATUS = 'A' + AND t0.FDATE between @sDate AND @eDate + GROUP BY t0e.FMATERIALID + ) t1 on t1.FMATERIALID = t0.FMATERIALID + LEFT JOIN ( + SELECT + t0e.FMATERIALID,SUM(t0e.FQTY) AS '' + ,SUM(t0e_r.FREMAINSTOCKINQTY) AS 'ʣ' + ,SUM(t0e_r.FBASESTOCKINQTY) AS '' + FROM T_PUR_POORDER t0 + INNER JOIN T_PUR_POORDERENTRY t0e on t0.FID = t0e.FID AND t0.FBUSINESSTYPE != 'ZCCG' AND t0.FBUSINESSTYPE != 'FYCG' + INNER JOIN T_PUR_POORDERENTRY_R t0e_r on t0e.FID = t0e_r.FID AND t0e_r.FENTRYID = t0e.FENTRYID + WHERE t0.FDOCUMENTSTATUS = 'C' + AND t0.FCANCELSTATUS = 'A' + AND t0.FCLOSESTATUS = 'A' + AND t0.FDATE BETWEEN @sDate AND @eDate + GROUP BY t0e.FMATERIALID + ) t2 on t2.FMATERIALID = t0.FMATERIALID + LEFT JOIN ( + SELECT tt0.FMATERIALID,tt0.FSTOCKORGID,SUM(tt0.FBASEQTY) AS sumQTY + FROM T_STK_INVENTORY tt0 + GROUP BY tt0.FMATERIALID,tt0.FSTOCKORGID + ) t3 on t3.FMATERIALID = t0.FMASTERID AND t3.FSTOCKORGID = t0.FUSEORGID + LEFT JOIN ( + SELECT t0e.FMATERIALID,SUM(t0e_q.FBASENOPICKEDQTY) sumBASENOPICKEDQTY + FROM T_PRD_PPBOMENTRY t0e + INNER JOIN T_PRD_PPBOMENTRY_Q t0e_q on t0e.FENTRYID = t0e_q.FENTRYID + INNER JOIN T_PRD_MOENTRY_A t0e_a on t0e_a.FENTRYID = t0e.FMOENTRYID + WHERE t0e_a.FSTATUS = 4 + GROUP BY t0e.FMATERIALID + ) t4 on t4.FMATERIALID = t0.FMATERIALID + LEFT JOIN ( + SELECT t0e.FMATERIALID,SUM(t0e_q.FNOSTOCKINQTY) AS sumNoStockInQty + FROM T_PRD_MOENTRY t0e + INNER JOIN T_PRD_MOENTRY_Q t0e_q on t0e.FENTRYID = t0e_q.FENTRYID + INNER JOIN T_PRD_MOENTRY_A t0e_a on t0e_a.FENTRYID = t0e.FENTRYID + WHERE t0e_a.FSTATUS = 4 + GROUP BY t0e.FMATERIALID + ) t5 on t5.FMATERIALID = t0.FMATERIALID +WHERE t0.FDOCUMENTSTATUS = 'C' + AND t0.FFORBIDSTATUS = 'A' + +INSERT INTO #MATERIAL_LACKANALYE +SELECT + ROW_NUMBER() OVER (ORDER BY t0.FMATERIALID) + ,t0.FMATERIALID + ,t1.FID + ,t2.FNUMBER + ,t2_l.FNAME + ,t0.ProMaterialQty + ,t3.ʱ + ,t3.δ + ,t3. + ,t3.ܶ + ,t3.; + ,t3.ÿ + ,(CASE + WHEN t3.ÿ > t0.ProMaterialQty THEN 0 + ELSE t3.ÿ - t0.ProMaterialQty + END) + ,0 + ,1 + ,1 +FROM #ProMaterial t0 + INNER JOIN ( + SELECT tt.FID,tt.FMATERIALID,ROW_NUMBER() OVER (PARTITION BY tt.FMATERIALID ORDER BY tt.FID DESC) AS 'rn' FROM T_ENG_BOM tt + WHERE 1 = 1 + AND tt.FDOCUMENTSTATUS = 'C' + AND tt.FFORBIDSTATUS = 'A' + ) t1 on t0.FMATERIALID = t1.FMATERIALID AND t1.rn = 1 --AND t0.FUSEORGID = t1.FUSEORGID + INNER JOIN T_BD_MATERIAL t2 on t2.FMATERIALID = t1.FMATERIALID + INNER JOIN T_BD_MATERIAL_L t2_l on t2_l.FMATERIALID = t1.FMATERIALID AND t2_l.FLOCALEID = 2052 + LEFT JOIN #Material_Stock_Statu t3 on t1.FMATERIALID = t3.FMATERIALID +WHERE 1 = 1 + --AND EXISTS (SELECT COUNT(1) FROM T_ENG_BOM tt GROUP BY tt.FMATERIALID HAVING MAX(tt.FID) = t1.FID) + --AND t1.FDOCUMENTSTATUS = 'C' + --AND t1.FFORBIDSTATUS = 'A' +ORDER BY + t0.FNUMBER + +--INSERT INTO #MATERIAL_LACKANALYE +--SELECT * FROM #PRO_MATERIAL_LACKANALYE +DECLARE @num INT,@level int,@LoopCount int +SET @num = 1 +SET @level =0 +SET @LoopCount = 0; + +WHILE (@num <> 0 AND @LoopCount < 10) +BEGIN + INSERT INTO #MATERIAL_LACKANALYE(MaterialId,BomId,_,_ʱ,_δ,_,_ܶ,_;,_ÿ,_ʵ,BOMLEVEL,ϸϼ,IsProduct) + SELECT + tt.FMATERIALID + ,ISNULL(t2.FID,0) AS BomId + ,ABS(tt._) + ,t3.ʱ + ,t3.δ + ,t3. + ,t3.ܶ + ,t3.; + ,t3.ÿ + ,(CASE + WHEN t3.ÿ > (ABS(tt._) + ISNULL(t4.ϼ_ʵ,0)) THEN 0 + ELSE t3.ÿ - (ABS(tt._) + ISNULL(t4.ϼ_ʵ,0)) + END) AS 'ʵ' + ,@level + 1 + ,tt.co + ,0 + FROM ( + SELECT + t1.FMATERIALID + ,SUM(t0._ʵ * (t1.FNUMERATOR / t1.FDENOMINATOR)) AS '_' + ,count(1) co + FROM + #MATERIAL_LACKANALYE t0 + INNER JOIN T_ENG_BOMCHILD t1 on t0.BomId = t1.FID + WHERE 1 = 1 + AND t0.BOMLEVEL = @level + GROUP BY t1.FMATERIALID + ) tt + LEFT JOIN ( + SELECT tt3.FID,tt3.FNUMBER,tt3.FMATERIALID,ROW_NUMBER() OVER (PARTITION BY tt3.FMATERIALID ORDER BY tt3.FID DESC) AS 'rn' + FROM T_ENG_BOM tt3 + WHERE 1 = 1 AND tt3.FDOCUMENTSTATUS = 'C' AND tt3.FFORBIDSTATUS = 'A' + ) t2 ON t2.rn = 1 AND tt.FMATERIALID = t2.FMATERIALID + LEFT JOIN #Material_Stock_Statu t3 on t3.FMATERIALID = tt.FMATERIALID + LEFT JOIN ( + SELECT tt.MaterialId,sum(tt._ʵ) AS 'ϼ_ʵ' FROM #MATERIAL_LACKANALYE tt GROUP BY tt.MaterialId + ) t4 on t4.MaterialId = tt.FMATERIALID + + SET @num = @@ROWCOUNT + SET @level += 1 + SET @LoopCount += 1 + +END + +UPDATE t0 SET + t0.ϴ = t1.FNUMBER + ,t0. = t1_l.FNAME +FROM #MATERIAL_LACKANALYE t0 + INNER JOIN T_BD_MATERIAL t1 on t0.MaterialId = t1.FMATERIALID + INNER JOIN T_BD_MATERIAL_L t1_l on t0.MaterialId = t1_l.FMATERIALID AND t1_l.FLOCALEID = 2052 + +SELECT t0.* FROM #MATERIAL_LACKANALYE t0 + +DROP TABLE #ProMaterial +DROP TABLE #TMPMATERIALNUM +DROP TABLE #PRO_MATERIAL_LACKANALYE +DROP TABLE #MATERIAL_LACKANALYE +DROP TABLE #Material_Stock_Statu \ No newline at end of file diff --git a/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/sql/缺料查询报表.sql b/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/sql/缺料查询报表.sql new file mode 100644 index 0000000..5e67a9d --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/sql/缺料查询报表.sql @@ -0,0 +1,819 @@ + +/****** Object: StoredProcedure [dbo].[Pro_YEB_MaterialInventory] Script Date: 2024-03-08 14:18:49 ******/ +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + +--sp_helptext Pro_YEB_MaterialInventory + + --exec Pro_YEB_MaterialInventory '','',0 + --״̬ +alter procedure [dbo].[Pro_YEB_MaterialInventory] ( + @FNumber varchar (max) , + @FStock varchar (max) , + @Flag bit + ) +AS + +set nocount on + --ʱѡȡֿ + +DECLARE @sStock varchar(max), @sNumber varchar(max) +---- +--set @sStock='' +--set @sNumber='' + +set @sStock=@FStock +set @sNumber=@FNumber + +if exists(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#tmpStockID')) +BEGIN + drop table #tmpStockID +END + Create Table #tmpStockID ( + FID INT IDENTITY(1,1), + FStockID INT , + ) + + DECLARE @Strsql varchar(max) + set @Strsql= 'insert into #tmpStockID SELECT distinct FSTOCKID FROM T_BD_STOCK where 1=1 '+@sStock + EXEC(@Strsql) + + if exists(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#tmpMaterialID')) + BEGIN + drop table #tmpMaterialID + END + +Create Table #tmpMaterialID ( +FID INT IDENTITY(1,1), +FMaterialID INT , +) + +DECLARE @Ssql varchar(max) +set @Ssql= 'insert into #tmpMaterialID SELECT distinct FMATERIALID FROM T_BD_MATERIAL where 1=1 and FUSEORGID=1 '+@sNumber -- and FNUMBER=''1.W003'' +EXEC(@Ssql) + + if exists(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#Stock_Status_temp')) + BEGIN + drop table #Stock_Status_temp + END + + Create Table #Stock_Status_temp ( + INT IDENTITY(1,1), + INT , + ϴ varchar(100) null , + varchar(255) null , + ͺ varchar(255) null , + varchar(50) null , + λ varchar(30) null , + Ʒ varchar(255) null , + --FLT1 varchar(255) null , + FLT int null , + ȫ DECIMAL (18, 2) Null , + п DECIMAL (18, 2) Null , + Ԥ DECIMAL (18, 2) Null , + δPR DECIMAL (18, 2) Null , + ѷ DECIMAL (18, 2) Null , + ۽ DECIMAL (18, 2) Null , + ƻԱ varchar(255) null , + ɹԱ varchar(100) null + ) + CREATE INDEX IDX_MaterialID ON #Stock_Status_temp () + + + --drop table #YC_Sum_MRP F_PKGR_Brand Ʒ L/T F_PKGR_HUMIDITYSENSITIVITY ɹԱ +insert into #Stock_Status_temp ( ,ϴ , , ͺ,,λ, ȫ, ƻԱ) +SELECT TM.fmaterialid AS ,TM.fnumber,n.FNAME AS ,n.FSPECIFICATION AS ͺ, +(case when TMB.FERPCLSID=1 THEN '⹺' when TMB.FERPCLSID=2 THEN '' + when TMB.FERPCLSID=3 THEN 'ί' when TMB.FERPCLSID=5 THEN '' else ''END) '', + TUL1.FNAME 'λ',isnull(TMP.FPLANSAFESTOCKQTY,0) AS 'ȫ' ,ISNULL(PL.FNAME,'') AS 'ƻԱ' +FROM t_bd_material TM +inner join T_BD_MATERIAL_L n on TM.FMATERIALID =n.FMATERIALID and n.FLOCALEID =2052 +inner join T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT OUTER JOIN T_BD_MATERIALBASE TMB on TM.FMATERIALID = TMB.FMATERIALID +LEFT OUTER JOIN T_BD_MATERIALPLAN TMP ON TM.FMATERIALID=TMP.FMATERIALID +LEFT OUTER JOIN T_BD_UNIT_L TUL1 ON ( TMS.FSTOREUNITID = TUL1.FUNITID AND TUL1.FLOCALEID = 2052) +LEFT OUTER JOIN V_BD_PLANNER_L PL ON ( TMP.FPLANERID = PL.fid AND PL.FLOCALEID = 2052) +where TM.FDOCUMENTSTATUS='C' AND TM.FFORBIDSTATUS ='A' and TMB.FERPCLSID<>5 +and TM.FMATERIALID in ( SELECT distinct FMATERIALID FROM #tmpMaterialID) + + +if exists(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#tempINV')) +BEGIN + drop table #tempINV +END + +-- ʱ,ÿ +SELECT TM.fmaterialid AS ,TM.fnumber,n.FNAME AS ,n.FSPECIFICATION AS ͺ, +TUL1.FNAME 'λ',t1.FSTOCKID ,TSK.FNUMBER AS FStockNumber,TSL.FNAME 'ֿ', t1.FBASEQTY 'λ', +(isnull(t1.FBASEQTY,0) - isnull(TSUB.FBASELOCKQTY,0)) AS 'ÿ' +into #tempINV +--SELECT * +FROM t_bd_material TM +inner join T_BD_MATERIAL_L n on TM.FMATERIALID =n.FMATERIALID and n.FLOCALEID =2052 +inner join T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT OUTER JOIN T_BD_MATERIALPLAN TMP ON TM.FMATERIALID=TMP.FMATERIALID +inner join T_STK_INVENTORY t1 on TM.FMASTERID = t1.FMATERIALID AND TM.FUSEORGID = t1.FSTOCKORGID and t1.FBASEQTY > 0 +LEFT OUTER JOIN T_ORG_ORGANIZATIONS_L O ON ( t1.FSTOCKORGID = O.FORGID AND O.FLOCALEID = 2052) -- +INNER JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = t1.FSTOCKID AND ( TSK.FUSEORGID = t1.FSTOCKORGID)) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = t1.FSTOCKID AND TSL.FLOCALEID = 2052) +LEFT OUTER JOIN T_BD_UNIT TUS ON TMS.FSTOREUNITID = TUS.FUNITID +LEFT OUTER JOIN T_BD_UNIT_L TUL0 ON (TMS.FSTOREUNITID = TUL0.FUNITID AND TUL0.FLOCALEID = 2052) +LEFT OUTER JOIN T_BD_UNIT_L TUL1 ON ( t1.FBASEUNITID = TUL1.FUNITID AND TUL1.FLOCALEID = 2052) +--Ԥ +LEFT OUTER JOIN ( + SELECT TLKE.FSUPPLYINTERID finventryid,SUM (TLKE.FBASEQTY) fbaselockqty, SUM (TLKE.FSECQTY) fseclockqty FROM T_PLN_RESERVELINKENTRY TLKE + INNER JOIN T_PLN_RESERVELINK TLKH ON TLKE.FID = TLKH.FID + WHERE (TLKE.FSUPPLYFORMID = 'STK_Inventory' AND TLKE.FLINKTYPE = '4' ) + GROUP BY TLKE.FSUPPLYINTERID) tsub ON t1.FID = TSUB.FINVENTRYID +WHERE -- TM.FUSEORGID =100038 and +((t1.FBASEQTY <> 0) OR (t1.FSECQTY <> 0)) and + TM.FMATERIALID in ( SELECT distinct FROM #Stock_Status_temp) +and TSK.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) + + + +if exists(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#tempINVSum')) +BEGIN + drop table #tempINVSum +END + --insert into #Stock_Status_temp ( ,ϴ , , ͺ,λ, ֿ, ֿ, ֿ ,ʱ,ÿ) + SELECT ,fnumber, , ͺ, min(λ)λ,min(FSTOCKID)FSTOCKID ,min( FStockNumber)FStockNumber, + min(ֿ)ֿ, sum(λ)λ ,sum(ÿ) ÿ + into #tempINVSum FROM #tempINV + group BY ,fnumber, , ͺ + + + + --ʱ,ÿ +UPDATE t1 set t1.п=isnull(t2.ÿ,0)--,t1.ֿ=t2.FSTOCKID, t1.ֿ=t2.ֿ, t1.ֿ=t2.FStockNumber +FROM #Stock_Status_temp t1 +inner join #tempINVSum t2 on t1.=t2. + + + + --SELECT * FROM #Stock_Status_temp + +--; (Ԥ) +--************************Ԥ************************ + +UPDATE t1 set t1.Ԥ=0 FROM #Stock_Status_temp t1 + +if exists(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#tmppoorder')) +BEGIN + drop table #tmppoorder +END +--ɹ +SELECT ddd.FPurchaseOrgID fstockorgid, ddd.FBILLNO ɹ ,ddd.FID AS ɹ , B.FENTRYID ɹ¼,b.FMATERIALID , + ddd.FDATE fdate, TMS.FSTOCKID ֿ, FBASEUNITQTY ɹ , +FREMAINSTOCKINQTY ʣ,FBASESTOCKINQTY ,ddd.FCLOSEDATE +into #tmppoorder +--SELECT * +FROM t_pur_poorderentry b +INNER JOIN t_pur_poorder ddd ON (ddd.FID = b.FID)-- AND FbusinessType NOT IN ('ZCCG', 'FYCG')) +INNER JOIN t_pur_poorderentry_r r ON b.fentryid = r.fentryid +INNER JOIN t_pur_poorderentry_d td ON b.fentryid = td.fentryid +LEFT OUTER JOIN T_BD_MATERIALSTOCK TMS ON b.FMATERIALID = TMS.FMATERIALID +WHERE ddd.FCANCELSTATUS='A'--AND ddd.fdocumentStatus = 'C' +and b.FMRPCLOSESTATUS='A' and ddd.FCLOSESTATUS='A' +and b.FMRPTERMINATESTATUS='A' +and ddd.FBILLTYPEID not in( '6d01d059713d42a28bb976c90a121142','65445fa4673247')--ί + + + --ddd.FBILLNO ='CGDD000005' +--AND (ddd.FDATE <=@FEDate) +--AND (ddd.FCLOSEDATE>@FSDate or isnull(ddd.FCLOSEDATE,'')='' + +if exists(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#tmppoorder1')) +BEGIN + drop table #tmppoorder1 +END +--º; + +SELECT ,ɹ, ʣ,case when B.ֿ<>0 then B.ֿ else isnull(tms.FSTOCKID,0) END ֿ +into #tmppoorder1 FROM #tmppoorder B +left JOIN T_BD_MATERIAL TM ON ( B. = TM.FMATERIALID ) --TM.FUSEORGID =1 and +left join T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.ֿ AND TSL.FLOCALEID = 2052) +--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) and TSK.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +ORDER BY + +if exists(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#tmppoorder3')) +BEGIN + drop table #tmppoorder3 +END + +SELECT ,ɹ, ʣ, ֿ +into #tmppoorder3 +FROM #tmppoorder1 B +left JOIN T_BD_MATERIAL TM ON ( B. = TM.FMATERIALID )--TM.FUSEORGID =1 and +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +WHERE TM.FMATERIALID in ( SELECT distinct FROM #Stock_Status_temp) +--and TSK.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +ORDER BY + +if exists(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#tmppoorder2')) +BEGIN + drop table #tmppoorder2 END + +SELECT ,sum(ɹ)ɹ, sum(ʣ)ʣ , min(ֿ )ֿ +into #tmppoorder2 FROM #tmppoorder3 +group BY +--group BY ֿ, +ORDER BY + + +--; +UPDATE t1 set t1.Ԥ=isnull(t2.ʣ,0) +FROM #Stock_Status_temp t1 +inner join #tmppoorder2 t2 on t1.=t2. + + + -- + + +if exists(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#tmpMo')) +BEGIN + drop table #tmpMo +END +-- + +SELECT (MO.FBILLNO) ,(MO.FID) ,(ME.FENTRYID) ¼, +ME.FMATERIALID , (ME.FBASEUNITQTY) AS , +MA.FSTOCKINQUAQTY AS ,MQ.FBASENOSTOCKINQTY AS ʣ , TMS.FSTOCKID ֿ +into #tmpMo +FROM T_PRD_MO MO +inner join T_PRD_MOENTRY ME ON MO.FID =ME.FID +inner JOIN T_PRD_MOENTRY_A MA ON MA.FID =ME.FID AND ME.FENTRYID =MA.FENTRYID +inner JOIN T_PRD_MOENTRY_Q MQ ON MQ.FID =ME.FID AND ME.FENTRYID =MQ.FENTRYID +LEFT OUTER JOIN T_BD_MATERIALSTOCK TMS ON ME.FMATERIALID = TMS.FMATERIALID +WHERE MO.FCANCELSTATUS='A' and MA.FSTATUS in (2,3,4) + + +if exists(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#tmpMo1')) +BEGIN + drop table #tmpMo1 +END +--º + +SELECT ,, ʣ,case when B.ֿ<>0 then B.ֿ else isnull(tms.FSTOCKID,0) END ֿ +into #tmpMo1 FROM #tmpMo B +left JOIN T_BD_MATERIAL TM ON ( B. = TM.FMATERIALID ) --TM.FUSEORGID =1 and +left join T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.ֿ AND TSL.FLOCALEID = 2052) +--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) and TSK.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +ORDER BY + +if exists(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#tmpMo2')) +BEGIN + drop table #tmpMo2 +END + +SELECT ,, ʣ, ֿ +into #tmpMo2 +FROM #tmpMo1 B +left JOIN T_BD_MATERIAL TM ON ( B. = TM.FMATERIALID )--TM.FUSEORGID =1 and +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +WHERE TM.FMATERIALID in ( SELECT distinct FROM #Stock_Status_temp) +--and TSK.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +ORDER BY + +if exists(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#tmpMo3')) +BEGIN + drop table #tmpMo3 +END + +SELECT ,sum()ɹ, sum(ʣ)ʣ , min(ֿ )ֿ +into #tmpMo3 FROM #tmpMo2 +group BY +--group BY ֿ, +ORDER BY + + +--Ԥ +UPDATE t1 set t1.Ԥ=isnull(t2.ʣ,0) +FROM #Stock_Status_temp t1 +inner join #tmpMo3 t2 on t1.=t2. + + + + --ί + +if exists(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#tmpSubMo')) +BEGIN + drop table #tmpSubMo +END +--ί + +SELECT (MO.FBILLNO) ί ,(MO.FID) ί,(ME.FENTRYID) ί¼, +ME.FMATERIALID , (MA.FBASEUNITQTY) AS , +MA.FBASESTOCKINQTY AS ,MA.FBASENOSTOCKINQTY AS ʣ , TMS.FSTOCKID ֿ +into #tmpSubMo +FROM T_SUB_REQORDER MO +inner join T_SUB_REQORDERENTRY ME ON MO.FID =ME.FID +inner JOIN T_SUB_REQORDERENTRY_A MA ON MA.FID =ME.FID AND ME.FENTRYID =MA.FENTRYID +LEFT OUTER JOIN T_BD_MATERIALSTOCK TMS ON ME.FMATERIALID = TMS.FMATERIALID +WHERE MO.FCANCELSTATUS='A' and ME.FSTATUS in (2,3,4) + + +if exists(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#tmpSubMo1')) +BEGIN + drop table #tmpSubMo1 +END +--º + +SELECT ,, ʣ,case when B.ֿ<>0 then B.ֿ else isnull(tms.FSTOCKID,0) END ֿ +into #tmpSubMo1 FROM #tmpSubMo B +left JOIN T_BD_MATERIAL TM ON ( B. = TM.FMATERIALID ) --TM.FUSEORGID =1 and +left join T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.ֿ AND TSL.FLOCALEID = 2052) +--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) and TSK.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +ORDER BY + +if exists(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#tmpSubMo2')) +BEGIN + drop table #tmpSubMo2 +END + +SELECT ,, ʣ, ֿ +into #tmpSubMo2 +FROM #tmpSubMo1 B +left JOIN T_BD_MATERIAL TM ON ( B. = TM.FMATERIALID )--TM.FUSEORGID =1 and +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +WHERE TM.FMATERIALID in ( SELECT distinct FROM #Stock_Status_temp) +--and TSK.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +ORDER BY + +if exists(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#tmpSubMo3')) +BEGIN + drop table #tmpSubMo3 +END + +SELECT ,sum()ɹ, sum(ʣ)ʣ , min(ֿ )ֿ +into #tmpSubMo3 FROM #tmpSubMo2 +group BY +--group BY ֿ, +ORDER BY + + +--Ԥ +UPDATE t1 set t1.Ԥ=isnull(t1.Ԥ,0)+t2.ʣ +FROM #Stock_Status_temp t1 +inner join #tmpSubMo3 t2 on t1.=t2. + + + --*******************END*****Ԥ************************ + + +--깺δת(δPR) +--*******************strat***************************** + +--ѯвɹ + +if exists(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#TMPREQ')) +BEGIN + drop table #TMPREQ +END + + SELECT TS.FAPPLICATIONORGID fstockorgid, TS.FBILLNO 뵥 ,TS.FID AS ,TSE.FENTRYID ¼,TSE.FMATERIALID , + ISNULL(TSE.FAUXPROPID, 0) FAUXPROPID, TS.FAPPLICATIONDATE fdate, TMS.FSTOCKID ֿ, + FBASEUNITQTY ,TSEF.FREMAINQTY AS δת + INTO #TMPREQ +FROM T_PUR_REQUISITION TS +INNER JOIN T_PUR_REQENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_PUR_REQENTRY_R TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_PUR_REQENTRY_S TSES ON (TSE.FID = TSES.FID AND TSE.FENTRYID = TSES.FENTRYID) +LEFT JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID=TM.FMATERIALID +LEFT JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +WHERE 1=1 AND (FCLOSESTATUS='A')--AND (TS.FDOCUMENTSTATUS IN ('C')) +and TSE.FMRPTERMINATESTATUS='A' + AND (TS.FCANCELSTATUS IN ('A')) and TSE.FMRPCLOSESTATUS='A' + + + + if exists(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#TMPREQ1')) +BEGIN + drop table #TMPREQ1 +END +--º + +SELECT ,, δת,FAUXPROPID,case when B.ֿ<>0 then B.ֿ else isnull(tms.FSTOCKID,0) END ֿ +into #TMPREQ1 FROM #TMPREQ B +left JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +left join T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.ֿ AND TSL.FLOCALEID = 2052) +--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) and TSK.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +ORDER BY + +if exists(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#TMPREQ3')) +BEGIN + drop table #TMPREQ3 +END + +SELECT ,, δת,FAUXPROPID, ֿ +into #TMPREQ3 FROM #TMPREQ1 B +left JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +WHERE TM.FMATERIALID in ( SELECT distinct FROM #Stock_Status_temp) +--and TSK.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +ORDER BY + + + +if exists(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#TMPREQ2')) +BEGIN + drop table #TMPREQ2 +END + + +SELECT ,sum(), sum(δת)δת --,FAUXPROPID, ֿ +into #TMPREQ2 FROM #TMPREQ3 +group BY +ORDER BY + +--깺δת +UPDATE t1 set t1.δPR=isnull(t2.δת,0) +FROM #Stock_Status_temp t1 +inner join #TMPREQ2 t2 on t1.=t2. +--and t1.ֿ=t2.ֿ and t1.װ=T2.FAUXPROPID + + -----ѯίⶩ + +if exists(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#TMPREQSUB')) +BEGIN + drop table #TMPREQSUB +END + + SELECT MO.FSubOrgId fstockorgid, MO.FBILLNO 뵥 ,MO.FID AS ,ME.FENTRYID ¼,ME.FMATERIALID , + ISNULL(ME.FAUXPROPID, 0) FAUXPROPID, MO.FDATE fdate, TMS.FSTOCKID ֿ, + FBASEUNITQTY ,(ME.FQTY-FBasePurSelQty) AS δת + + INTO #TMPREQSUB +FROM T_SUB_REQORDER MO +inner join T_SUB_REQORDERENTRY ME ON MO.FID =ME.FID +inner JOIN T_SUB_REQORDERENTRY_A MA ON MA.FID =ME.FID AND ME.FENTRYID =MA.FENTRYID +LEFT JOIN T_BD_MATERIAL TM ON ME.FMATERIALID=TM.FMATERIALID +LEFT JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +WHERE 1=1 AND MO.FCANCELSTATUS='A' --AND MO.FDOCUMENTSTATUS='C' -- AND ME.FPRODUCTTYPE =1 +AND ME.FSTATUS in (2,3,4) AND ISNULL(FCLOSEDATE,'')=''--δ᰸ + and (ME.FQTY-FBasePurSelQty)>0 + + + if exists(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#TMPREQSUB1')) +BEGIN + drop table #TMPREQSUB1 +END +--º + +SELECT ,, δת,FAUXPROPID,case when B.ֿ<>0 then B.ֿ else isnull(tms.FSTOCKID,0) END ֿ +into #TMPREQSUB1 FROM #TMPREQSUB B +left JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +left join T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.ֿ AND TSL.FLOCALEID = 2052) + +--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) and TSK.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +ORDER BY + +if exists(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#TMPREQSUB2')) +BEGIN + drop table #TMPREQSUB2 +END + +SELECT ,, δת,FAUXPROPID, ֿ +into #TMPREQSUB2 FROM #TMPREQSUB1 B +left JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +WHERE TM.FMATERIALID in ( SELECT distinct FROM #Stock_Status_temp) +--and TSK.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +ORDER BY + + + +if exists(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#TMPREQSUB3')) +BEGIN + drop table #TMPREQSUB3 +END + + +SELECT ,sum(), sum(δת)δת --,FAUXPROPID, ֿ +into #TMPREQSUB3 FROM #TMPREQSUB2 +group BY +ORDER BY + +--깺δת +UPDATE t1 set t1.δPR=isnull(t1.δPR,0)+isnull(t2.δת,0) +FROM #Stock_Status_temp t1 +inner join #TMPREQSUB3 t2 on t1.=t2. +--and t1.ֿ=t2.ֿ and t1.װ=T2.FAUXPROPID + --****************************δPR*********************************************** + + --SELECT * FROM #Stock_Status_temp + + if exists(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#tmpPPBOM')) +BEGIN + drop table #tmpPPBOM +END + +--ѷ) +--*****************δSTART*********************************** + +--ѯֹ֮ǰ +--δ ѷ) +SELECT (MO.FBILLNO) ,(MO.FID) ,(ME.FENTRYID) ¼, +PE.FMATERIALID ,(PP.FID) ,PP.FBILLNO ϵ,(PE.FENTRYID) ϵ¼, +isnull(PC.FSTOCKID,0) ֿ,(PE.FMUSTQTY) AS Ӧ, +PQ.FSELPICKEDQTY AS ѡ,PQ.FBASENOPICKEDQTY AS δ ,PQ.FNOPICKEDQTY AS δ +into #tmpPPBOM +FROM T_PRD_MO MO +inner join T_PRD_MOENTRY ME ON MO.FID =ME.FID +inner JOIN T_PRD_MOENTRY_A MA ON MA.FID =ME.FID AND ME.FENTRYID =MA.FENTRYID +inner join T_PRD_PPBOM PP on PP.FMOID=MO.FID AND ME.FENTRYID =PP.FMOENTRYID +inner join T_PRD_PPBOMENTRY PE on PP.FID =PE.FID +left join T_PRD_PPBOMENTRY_Q PQ on PP.FID =PQ.FID AND PE.FENTRYID =PQ.FENTRYID +left join T_PRD_PPBOMENTRY_C PC on PP.FID =PC.FID AND PE.FENTRYID =PC.FENTRYID +--WHERE 1=1 AND MO.FCANCELSTATUS='A' AND MO.FDOCUMENTSTATUS='C' -- AND ME.FPRODUCTTYPE =1 +WHERE 1=1 AND MO.FCANCELSTATUS='A' --AND MO.FDOCUMENTSTATUS='C' -- AND ME.FPRODUCTTYPE =1 +AND MA.FSTATUS in(2,3,4) AND ISNULL(FCLOSEDATE,'')=''--δ᰸ + +--ºδ +--SELECT * FROM #tmpPPBOM + if exists(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#tmpPPBOM1')) +BEGIN + drop table #tmpPPBOM1 +END + +SELECT ,Ӧ, δ AS 'δ',case when B.ֿ<>0 then B.ֿ else isnull(tms.FSTOCKID,0) END ֿ +into #tmpPPBOM1 FROM #tmpPPBOM B +left JOIN T_BD_MATERIAL TM ON ( B. = TM.FMATERIALID ) --TM.FUSEORGID =1 and +left join T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.ֿ AND TSL.FLOCALEID = 2052) +--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) and TSK.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +ORDER BY + + if exists(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#tmpPPBOM3')) +BEGIN + drop table #tmpPPBOM3 +END + + SELECT ,Ӧ, δ, ֿ +into #tmpPPBOM3 FROM #tmpPPBOM1 B +left JOIN T_BD_MATERIAL TM ON ( B. = TM.FMATERIALID ) --TM.FUSEORGID =1 and +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +WHERE TM.FMATERIALID in ( SELECT distinct FROM #Stock_Status_temp) +--and TSK.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +ORDER BY + + if exists(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#tmpPPBOM2')) +BEGIN + drop table #tmpPPBOM2 +END + + +SELECT ,sum(Ӧ)Ӧ, sum(δ)δ ,min(ֿ) ֿ +into #tmpPPBOM2 FROM #tmpPPBOM3 +group BY +ORDER BY + +--δ +UPDATE t1 set t1.ѷ=t2.δ +FROM #Stock_Status_temp t1 +inner join #tmpPPBOM2 t2 on t1.=t2. +--and t1.ֿ=t2.ֿ and t1.װ=T2.FAUXPROPID + + + + --ίδ ѷ) + if exists(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#tmpSubBOM')) +BEGIN + drop table #tmpSubBOM +END + + +SELECT (MO.FBILLNO) ίⵥ ,(MO.FID) ί,(ME.FENTRYID) ίⵥ¼, +PE.FMATERIALID ,(PP.FID) ,PP.FBILLNO ϵ,(PE.FENTRYID) ϵ¼, +isnull(PC.FSTOCKID,0) ֿ,(PE.FMUSTQTY) AS Ӧ, +PQ.FSELPICKEDQTY AS ѡ,PQ.FBASENOPICKEDQTY AS δ ,PQ.FNOPICKEDQTY AS δ +into #tmpSubBOM +FROM T_SUB_REQORDER MO +inner join T_SUB_REQORDERENTRY ME ON MO.FID =ME.FID +inner JOIN T_SUB_REQORDERENTRY_A MA ON MA.FID =ME.FID AND ME.FENTRYID =MA.FENTRYID +inner join T_SUB_PPBOM PP on PP.FSUBREQID=MO.FID AND ME.FENTRYID =PP.FSUBREQENTRYID +inner join T_SUB_PPBOMENTRY PE on PP.FID =PE.FID +left join T_SUB_PPBOMENTRY_Q PQ on PP.FID =PQ.FID AND PE.FENTRYID =PQ.FENTRYID +left join T_SUB_PPBOMENTRY_C PC on PP.FID =PC.FID AND PE.FENTRYID =PC.FENTRYID +--WHERE 1=1 AND MO.FCANCELSTATUS='A' AND MO.FDOCUMENTSTATUS='C' -- AND ME.FPRODUCTTYPE =1 +WHERE 1=1 AND MO.FCANCELSTATUS='A' --AND MO.FDOCUMENTSTATUS='C' -- AND ME.FPRODUCTTYPE =1 +AND ME.FSTATUS in (2,3,4) AND ISNULL(FCLOSEDATE,'')=''--δ᰸ + + +--ºδ +--SELECT * FROM #tmpPPBOM + if exists(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#tmpSubBOM1')) +BEGIN + drop table #tmpSubBOM1 +END + +SELECT ,Ӧ, δ AS 'δ',case when B.ֿ<>0 then B.ֿ else isnull(tms.FSTOCKID,0) END ֿ +into #tmpSubBOM1 FROM #tmpSubBOM B +left JOIN T_BD_MATERIAL TM ON ( B. = TM.FMATERIALID ) --TM.FUSEORGID =1 and +left join T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.ֿ AND TSL.FLOCALEID = 2052) +--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) and TSK.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +ORDER BY + + if exists(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#tmpSubBOM2')) +BEGIN + drop table #tmpSubBOM2 +END + +SELECT ,Ӧ, δ, ֿ +into #tmpSubBOM2 FROM #tmpSubBOM1 B +left JOIN T_BD_MATERIAL TM ON ( B. = TM.FMATERIALID ) --TM.FUSEORGID =1 and +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +WHERE TM.FMATERIALID in ( SELECT distinct FROM #Stock_Status_temp) +--and TSK.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +ORDER BY + + if exists(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#tmpSubBOM3')) +BEGIN + drop table #tmpSubBOM3 +END + + +SELECT ,sum(Ӧ)Ӧ, sum(δ)δ ,min(ֿ) ֿ +into #tmpSubBOM3 FROM #tmpSubBOM2 +group BY +ORDER BY + +--δ +UPDATE t1 set t1.ѷ=ISNULL(t1.ѷ,0)+ISNULL(t2.δ,0) +FROM #Stock_Status_temp t1 +inner join #tmpSubBOM3 t2 on t1.=t2. +--and t1.ֿ=t2.ֿ and t1.װ=T2.FAUXPROPID + + +--*****************δEND*********************************** +----ݾ + + + --۶δ + + +if exists(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#tmpSal')) +BEGIN + drop table #tmpSal +END +--۶δ + +SELECT (A.FBILLNO) AS ۵,(A.FID) ,(B.FENTRYID) ۷¼ ,(B.FSEQ) , +B.FMATERIALID AS ,B.FBASEUNITQTY , +(C.FBASEREMAINOUTQTY+C.FBaseReturnQty) AS δ,FBaseReturnQty, +isnull(B.FSTOCKID,0) ֿ, A.FDATE +into #tmpSal +FROM T_SAL_ORDER A +inner join T_SAL_ORDERENTRY B on A.FID =B.FID +left join T_SAL_ORDERENTRY_R C ON C.FID=B.FID AND C.FENTRYID =B.FENTRYID +left join T_SAL_ORDERENTRY_E D on D.FID=B.FID AND D.FENTRYID =B.FENTRYID + +WHERE 1=1 AND A.FCANCELSTATUS='A'and B.FMRPCLOSESTATUS='A' AND (A.FCLOSESTATUS='A') +ORDER BY A.FDATE ,A.FID,B.FENTRYID,B.FMATERIALID + + + +if exists(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#tmpSal1')) +BEGIN + drop table #tmpSal1 +END +--ºδ +SELECT ,, δ,case when B.ֿ<>0 then B.ֿ else isnull(tms.FSTOCKID,0) END ֿ +into #tmpSal1 FROM #tmpSal B +left JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +left join T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.ֿ ) +--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) and TSK.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +ORDER BY + +if exists(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#tmpSal2')) +BEGIN + drop table #tmpSal2 +END + + +SELECT ,, δ, ֿ +into #tmpSal2 FROM #tmpSal1 B +left JOIN T_BD_MATERIAL TM ON (B. = TM.FMATERIALID ) +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.ֿ ) +WHERE TM.FMATERIALID in ( SELECT distinct FROM #Stock_Status_temp) +-- and TSK.FSTOCKID IN ( SELECT distinct FStockID FROM #tmpStockID ) +ORDER BY + + + +if exists(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#tmpSal3')) +BEGIN + drop table #tmpSal3 +END + + +SELECT ,sum(), sum(δ)δ , min(ֿ) ֿ +into #tmpSal3 FROM #tmpSal2 +group BY +ORDER BY + + +--۶δ +UPDATE t1 set t1.ѷ=isnull(t1.ѷ,0)+t2.δ +--SELECT t2.* ,t1.ϴ +FROM #Stock_Status_temp t1 +inner join #tmpSal3 t2 on t1.=t2. + + + + --*******************END*ѷ*************** + +UPDATE t1 set t1.λ=isnull(TUL1.FNAME,'') +--SELECT t1.λ,isnull(TUL1.FNAME,'') +FROM #Stock_Status_temp t1 +inner join t_bd_material TM on t1.=TM.FMATERIALID -- TM.FUSEORGID =1 and +inner join T_BD_MATERIAL_L n on TM.FMATERIALID =n.FMATERIALID and n.FLOCALEID =2052 +inner join T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +inner join T_BD_MATERIALBASE TMB on TM.FMATERIALID = TMB.FMATERIALID + +LEFT OUTER JOIN T_BD_UNIT TUS ON TMS.FSTOREUNITID = TUS.FUNITID +LEFT OUTER JOIN T_BD_UNIT_L TUL0 ON (TMS.FSTOREUNITID = TUL0.FUNITID AND TUL0.FLOCALEID = 2052) +LEFT OUTER JOIN T_BD_UNIT_L TUL1 ON ( TMB.FBASEUNITID = TUL1.FUNITID AND TUL1.FLOCALEID = 2052) +--where isnull(t1.λ,'')='' +--*********************************** + + UPDATE t1 set t1.=(case when TMB.FERPCLSID=1 THEN '⹺' when TMB.FERPCLSID=2 THEN '' + when TMB.FERPCLSID=3 THEN 'ί' when TMB.FERPCLSID=5 THEN '' else ''END) + FROM #Stock_Status_temp t1 + inner join t_bd_material TM on t1.=TM.FMATERIALID + inner join T_BD_MATERIALBASE TMB on TM.FMATERIALID = TMB.FMATERIALID + where TMB.FERPCLSID<>5 + --SELECT * ,۽=п+Ԥ-ѷ + + update t1 set t1.۽= isnull(п,0)+isnull(Ԥ,0)-isnull(ѷ,0) FROM #Stock_Status_temp t1 + + -- F_PKGR_Brand Ʒ L/T F_UKUB_EPdate F_PKGR_HUMIDITYSENSITIVITY ɹԱ + +update t0 set t0.ɹԱ =isnull(TB.FName,''),t0.FLT =isnull(t1.FFixLeadTime,'0') , +t0.Ʒ = '' +FROM #Stock_Status_temp t0 +inner join t_bd_material TM on t0.=TM.FMATERIALID +LEFT OUTER JOIN t_BD_MaterialPlan t1 on t1.FMATERIALID=TM.FMATERIALID +LEFT OUTER JOIN t_bd_MaterialPurchase TP on TP.FMATERIALID=TM.FMATERIALID +LEFT OUTER JOIN V_BD_BUYER_L TB ON (TP.FPurchaserId = TB.fid ) + + + --SELECT FLT,* + --update t1 set t1.FLT=(case when (isnull(t1.FLT1,'')='0'or isnull(t1.FLT1,'')='') then 0 else t1.FLT1 END) + --FROM #Stock_Status_temp t1 where FLT1='' + + --delete FROM #Stock_Status_temp where TM.FDOCUMENTSTATUS='C' AND TM.FFORBIDSTATUS ='A' + --TM.FDOCUMENTSTATUS='C' AND TM.FFORBIDSTATUS ='A'AND + +if @Flag = 1 +BEGIN + SELECT ,,ϴ, , ͺ,, λ,isnull(ȫ,0) ȫ,isnull(п,0) п, isnull(Ԥ,0)Ԥ , + isnull(δPR,0) δPR ,isnull(ѷ,0) ѷ ,isnull(۽,0)۽ , isnull(ƻԱ, '')AS ƻԱ , + isnull(Ʒ, '')AS Ʒ , isnull(FLT,0)AS FLT , isnull(ɹԱ, '')AS ɹԱ + FROM #Stock_Status_temp t1 + --inner join t_bd_material TM on t1.=TM.FMATERIALID +where isnull(۽,0) < 0 +ORDER BY ϴ +END +else +BEGIN + SELECT + + , + ,ϴ + , + ,ͺ + , + ,λ + ,isnull(ȫ,0)ȫ + ,isnull(п,0) AS п + ,isnull(Ԥ,0) Ԥ + ,isnull(δPR,0) δPR + ,isnull(ѷ,0) ѷ + ,isnull(۽,0)۽ + ,isnull(ƻԱ, '') AS ƻԱ + ,isnull(Ʒ, '') AS Ʒ + ,isnull(FLT, 0) AS FLT + ,isnull(ɹԱ, '') AS ɹԱ + FROM #Stock_Status_temp t1 + --inner join t_bd_material TM on t1.=TM.FMATERIALID + --where TM.FDOCUMENTSTATUS='C' AND TM.FFORBIDSTATUS ='A' --=129833 + ORDER BY ϴ +END \ No newline at end of file diff --git a/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/测试赋值基础资料.py b/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/测试赋值基础资料.py new file mode 100644 index 0000000..31521bb --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/测试赋值基础资料.py @@ -0,0 +1,61 @@ +import clr +clr.AddReference("System") +clr.AddReference("Kingdee.BOS") +clr.AddReference("Kingdee.BOS.Core") +clr.AddReference("Kingdee.BOS.DataEntity") +clr.AddReference("Kingdee.BOS.App") +clr.AddReference("Kingdee.BOS.Contracts") +clr.AddReference("Kingdee.BOS.ServiceHelper") + +from System import * +from Kingdee.BOS.App.Data import* +from Kingdee.BOS.Core.DynamicForm import* +from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import* +from Kingdee.BOS.Core.List.PlugIn import* +from Kingdee.BOS.Orm.DataEntity import* +from Kingdee.BOS.Util import* +from Kingdee.BOS import* + +def AfterCreateNewData(e): + details = this.View.BusinessInfo.GetEntity("FTreeEntity") + if details != None: + entrys = this.View.Model.GetEntityDataObject(details) + if entrys != None and entrys.Count > 0: + rowIndex = 0 + count = entrys.Count + while count > rowIndex: + this.View.InvokeFieldUpdateService("FBomId",rowIndex) + rowIndex += 1 + # for entry in entrys: + # rowIndex = this.View.Model.GetRowIndex(details, entry) + # this.View.InvokeFieldUpdateService("FBomId",rowIndex) + # bomObj = entry["BomId"] + # mjdzdzId = bomObj["FMJDZDZID"] + # this.View.Model.SetValue("FMJDZDZID",mjdzdzId) + +def BarItemClick(e): + if e.BarItemKey == "tbUpdMJCPDZDZID": + MJIDObj = this.View.Model.GetValue("F_PAEZ_BASE") + MATERIALID = this.View.Model.GetValue("FMATERIALID") + mjId = MJIDObj["id"] + cpId = MATERIALID["id"] + sql ="""/*dialect*/ +select + cast(b.FBZCL as real) as FBZCL + ,a.F_PAEZ_TEXT + ,a.F_PAEZ_TEXT1 + ,b.Fjtbz + ,b.Fmjsmzq + ,b.Fmjqs + ,a.FMJID + ,b.FCPID + ,b.FEntryId +from hw_mjcpdzb a + inner join hw_mjcpdzbs b on a.FID = b.FID +where a.FMJID = {0} and b.FCPID={1} +""".format(mjId,cpId) + # raise Exception(sql) + dbList = DBUtils.ExecuteDynamicObject(this.Context,sql); + if dbList.Count > 0: + data = dbList[0] + this.View.Model.SetValue("FMJDZDZID",data["FEntryId"]) \ No newline at end of file diff --git a/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/类1.py b/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/类1.py new file mode 100644 index 0000000..a8458f1 --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/类1.py @@ -0,0 +1,36 @@ +import clr +clr.AddReference("System") +clr.AddReference("System.Data") +clr.AddReference("Kingdee.BOS") +clr.AddReference("Kingdee.BOS.Core") +clr.AddReference("Kingdee.BOS.App") +clr.AddReference("Kingdee.BOS.ServiceHelper") +clr.AddReference("HW.ProductionMateralsPlugIn") + +from Kingdee.BOS import * +from Kingdee.BOS.Core import * +from Kingdee.BOS.Core.Bill import * +from Kingdee.BOS.Core.Report import * +from System import * +from System.Data import * +from System.Net import * +from System.Text import * +from Kingdee.BOS.App.Data import * +from Kingdee.BOS.Core.List.PlugIn import * +from Kingdee.BOS.Core.List.PlugIn.Args import * +from HW.ProductionMateralsPlugIn import * + +def CellDbClick(e): + e.Cancel = True + fldKey = e.Header.FieldName; + # 嵥 + if fldKey == "FBILLNO": + reportModel = this.Model + tab = reportModel.DataSource + row = e.CellRowIndex + _moId = value=("{0}").format(tab.Rows[row-1]["FID"]); + if _moId != None and str(_moId) != "" and str(_moId) != "0": + _ShowForm("PRD_PPBOM", _moId) + +def _ShowForm(_fromId, _pkVal, _operationStatus = OperationStatus.VIEW ,_openStyleShowType = ShowType.Floating): + TableOperationPlugInEx.ShowForm(_fromId,_pkVal) \ No newline at end of file diff --git a/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/类2.py b/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/类2.py new file mode 100644 index 0000000..863b2da --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW.Python/ProductionMaterialsReport/类2.py @@ -0,0 +1,206 @@ +import clr +clr.AddReference("System") +clr.AddReference("Kingdee.BOS") +clr.AddReference("Kingdee.BOS.Core") +clr.AddReference("Kingdee.BOS.DataEntity") +clr.AddReference("Kingdee.BOS.App") +clr.AddReference("Kingdee.BOS.Contracts") +clr.AddReference("Kingdee.BOS.ServiceHelper") +clr.AddReference("ExtensionMethods") +# clr.AddReference("K3CExttensionMethods") +from Kingdee.BOS import* +from Kingdee.BOS.Contracts import* +from Kingdee.BOS.Contracts.Report import* +from Kingdee.BOS.Core import * +from Kingdee.BOS.Core.Metadata import * +from Kingdee.BOS.Core.Report import* +from Kingdee.BOS.Core.SqlBuilder import* +from Kingdee.BOS.Core.Enums import * +from Kingdee.BOS.App.Data import* +from Kingdee.BOS.Orm.DataEntity import* +from System import * +from System.ComponentModel import* +from System.Collections.Generic import* +from System.Text import* +from System.Threading.Tasks import* +from Kingdee.BOS.ServiceHelper import * +from ExtensionMethods import BooleanExtension as boolObjEx +from ExtensionMethods import DateTimeExtension as dateObjEx +from ExtensionMethods import ObjectExtension as objEx +from ExtensionMethods import StringExtension as strObjEx +# from K3CExttensionMethods import ListHeaderExtension as lhObjEx + +#初始化,在此事件中设置报表的属性全局参数 +def Initialize(): + this.ReportProperty.ReportType= ReportType.REPORTTYPE_NORMAL; + this.IsCreateTempTableByPlugin=True; + #是否支持分组汇总,在后面GetSummaryColumnInfo方法中添加汇总字段, + #要在BOS中过滤框的汇总页签配置汇总信息,可参考:简单账表分组汇总设置 + this.ReportProperty.IsGroupSummary=True; + #IsUIDesignerColumns=False,表示报表的列通过插件控制,后续在GetReportHeaders中构建列头 + #需要在BOS过滤框的显示隐藏列中维护,字段标识与临时表字段保持一致 + #账表列头构建更多详细说明参考:账表列构建 + this.ReportProperty.IsUIDesignerColumns=False; + this.ReportProperty.PrimaryKeyFieldName = "FID"; + +#创建临时报表,正式进入账表取数sql拼接并取数,把账表取数结果放到创建的临时表中 +#如果参数(this.IsCreateTempTableByPlugin=True),即调用BuilderReportSqlAndTempTable构建临时表 +#否则调用以下3个接口,完成账表取数逻辑的sql指令即:BuilderSelectFieldSQL、BuilderTempTableOrderBySQL、BuilderFormWhereSQL +#rptfilter:账表参数,可以从这里获取过滤条件等 +#tableName:系统自动创建的账表临时表名,具备唯一性,最终报表页面展示的数据绑定此临时表,所以最终的报表结果数据要写入此临时表中 +def BuilderReportSqlAndTempTable(rptfilter,tableName): + #baseDataTemp=filter.BaseDataTempTable;#基础资料临时表;若设置了数据范围权限,该表会把根据数据范围过滤出来的内码存入临时表; + #循环获取所有基础资料数据范围的数据,可用来拼接到报表SQL里面实现数据权限过滤 + #for b in baseDataTemp: + # baseType=b.BaseDataFormId;#基础资料FormId + # PKFldName=b.PKFieldName;#临时表中基础资料主键字段名,例如,FORGID + # baseTempTab=b.TempTable;#基础资料数据范围临时表名 + #filterStr=filter.FilterParameter.FilterString;#过滤框条件页签过滤表达式 + #过滤框快捷过滤页签的实体数据包,从这里面获取自定义的过滤字段值 + #DynamicObject类型,用前面讲的实体数据包操作方式取值,用绑定实体属性标识 + custFilter = rptfilter.FilterParameter.CustomFilter; + if(custFilter == None): + return; + whereSql = ""; + + _lcId = this.Context.UserLocale.LCID; + + #raise Exception(str.Join(',',fldsSql));#调试时,可用此行代码,看看构建的动态列SQL对不对 + #组装最终写入报表临时表的SQL + #注意!!!: 最终临时表一定要有FIDENTITYID ,要从1开始,且不重复 ,不断号,不然前台显示空白!!!! + sql=("""/*dialect*/  +DECLARE @LCID int +SET @LCID = {1} + +SELECT + ROW_NUMBER() OVER(ORDER BY t0.FDATE DESC,t0.FID DESC,t0e.FSEQ ASC) AS FIDENTITYID--1.行号 + ,t0.FID + ,t0e.FSEQ + ,t0e.FENTRYID + ,t0.FDATE --2.单据日期 + ,t1.FBILLNO AS 'FPPBOMBILLNO'--3.生产投料单号 + ,t1.FID AS 'FPPBOMID' + ,t0e.FSALEORDERNO --4.销售订单号 + ,t0.FBILLNO--7.生产任务单号 + ,t0e.FPLANSTARTDATE--38.计划开工日期 + ,t0e.FPLANFINISHDATE--39.计划完工日期 + ,t0e.FQTY--12.产品生产数量 + ,t0e.FYIELDRATE + ,t0e.FROUTINGID + ,t0e.FMATERIALID AS 'ProMaterialId' + ,t0e.FUNITID AS 'PrdUnitId' + ,t1e.FENTRYID AS 'PPBOMENTRYID' + ,t1e.FMATERIALID + ,(t1e.FNUMERATOR / t1e.FDENOMINATOR) AS 'FUnitNeedQty' --18.物料单位用量 + ,t1e.FNEEDQTY --22.物料总需求 + ,t1e.FUNITID + ,t1e.FBOMENTRYID + ,t1e.FSTDQTY --标准用量 --29.标准数量 + ,t1e.FMUSTQTY --应发数量 --30.应发数量 + ,t1.FWORKSHOPID + ,(CASE t0e.FPRODUCTTYPE WHEN 1 THEN '主产品' WHEN 2 THEN '联产品' WHEN 3 THEN '副产品' ELSE '' END) AS 'PRODUCTTYPE'--43.生产类型 + ,(CASE t0e_a.FSTATUS WHEN 6 THEN '已结案'ELSE '' END) AS 'StatusIs6'--45.生产任务单结案否 + ,(CASE t1.FDOCUMENTSTATUS WHEN 'A' THEN '创建' WHEN 'B' THEN '审核中' WHEN 'C' THEN '已审核' WHEN 'D' THEN '重新审核' WHEN 'Z' THEN '暂存' ELSE '' END) AS 'PPBOMStatus'--46.生产投料单状态 + INTO #TmpTable0 +FROM T_PRD_MO t0 + INNER JOIN T_PRD_MOENTRY t0e on t0.FID = t0e.FID + INNER JOIN T_PRD_MOENTRY_A t0e_a on t0e_a.FENTRYID = t0e.FENTRYID + INNER JOIN T_PRD_PPBOM t1 on t1.FMOENTRYID = t0e.FENTRYID AND t1.FMOID = t0e.FID + INNER JOIN T_PRD_PPBOMENTRY t1e on t1e.FID = t1.FID +WHERE 1 = 1 {2} +SELECT + tt.* + ,t0e_q.FBASEWIPQTY --23.当前在制品数量 + ,t0e_q.FPICKEDQTY --27.已领数量 + ,t0e_q.FNOPICKEDQTY --28.未领数量 + ,t0e_l.FMEMO --31.备注 + ,t0e_q.FPICKEDQTY * (100 - tt.FYIELDRATE) AS 'FLossQty'--32.损耗数量 + ,t0e_q.FSCRAPQTY --33.报废数量 + ,t0e_q.FREPICKEDQTY --37.补料数量 + ,t0e_q.FINVENTORYQTY + ,t0e_c.FSTOCKID + ,t0e_c.FSTOCKLOCID + INTO #TmpTable1 +FROM #TmpTable0 tt + LEFT JOIN T_PRD_PPBOMENTRY_Q t0e_q ON t0e_q.FENTRYID = tt.PPBOMENTRYID --生产用料清单数量拆分表 + LEFT JOIN T_PRD_PPBOMENTRY_C t0e_c ON t0e_c.FENTRYID = tt.PPBOMENTRYID + LEFT JOIN T_PRD_PPBOMENTRY_L t0e_l on t0e_l.FENTRYID = tt.PPBOMENTRYID AND t0e_l.FLOCALEID = @LCID + +SELECT tt.* + ,t1.FMNEMONICCODE AS 'ProMnemonicCode'--6.助记码 + ,t1.FNUMBER AS 'ProNumber'--8.产品编码 + ,t1_l.FNAME AS 'ProName'--9.产品名称 + ,t1_l.FSPECIFICATION AS 'ProSpecification'--10.产品规格型号 + ,t2_l.FNAME AS 'ProUnitName'--11.产品单位 + ,t3.FNUMBER AS 'MaterialNumber'--8.物料编码 + ,t3_l.FNAME AS 'MaterialName'--9.物料名称 + ,t3_l.FSPECIFICATION AS 'MaterialSpecification'--10.物料规格型号 + ,t4_l.FNAME AS 'MaterialUnitName'--11.物料单位 + ,(CASE t3.FMATERIALSRC WHEN 'A' THEN 'PLM' WHEN 'B' THEN 'ERP' ELSE '' END) AS 'Materialsrc' --15.物料来源 + ,t6_l.FNAME AS 'WORKSHOPNAME' --44.生产车间 + ,t3.FMASTERID + ,t3.FUSEORGID + ,t7_l.FMEMO AS 'BOMMEMO' --42.BOM备注项 + ,t5_l.FNAME AS 'FSTOCKNAME' + INTO #TmpTable2 +FROM #TmpTable1 tt + LEFT JOIN T_BD_MATERIAL t1 ON t1.FMATERIALID = tt.ProMaterialId + LEFT JOIN T_BD_MATERIAL_L t1_l ON t1_l.FMATERIALID = tt.ProMaterialId AND t1_l.FLOCALEID = @LCID + LEFT JOIN T_BD_UNIT_L t2_l ON t2_l.FUNITID = tt.PrdUnitId AND t2_l.FLOCALEID = @LCID + LEFT JOIN T_BD_MATERIAL t3 ON t3.FMATERIALID = tt.FMATERIALID + LEFT JOIN T_BD_MATERIAL_L t3_l ON t3_l.FMATERIALID = tt.FMATERIALID AND t3_l.FLOCALEID = @LCID + LEFT JOIN T_BD_UNIT_L t4_l ON t4_l.FUNITID = tt.FUNITID AND t4_l.FLOCALEID = @LCID + LEFT JOIN T_BD_STOCK_L t5_l ON t5_l.FSTOCKID = tt.FSTOCKID AND t5_l.FLOCALEID =@LCID + LEFT JOIN T_BD_DEPARTMENT_L t6_l on t6_l.FDEPTID = tt.FWORKSHOPID AND t6_l.FLOCALEID = @LCID + LEFT JOIN T_ENG_BOMCHILD_L t7_l ON t7_l.FENTRYID = tt.FBOMENTRYID AND t7_l.FLOCALEID = @LCID +SELECT tt.* + ,t1.FBASEQTY + ,t2_l.FNAME AS 'ROUTENAME' + ,t3e_A.FBASEINVQTY + ,t3e.FBASELACKQTY AS 'FBASELACKQTY'--24.欠料 + ,t3e_A.FBASEONORDERQTY AS 'FBASEONORDERQTY' --25.物料在途数 + ,t3e_A.FPURCHASEQTY --采购在途数量 + ,t3e_A.FREQUISITIONQTY --采购申请在途数量 + ,6 AS 'LOWEST6' + ,t3e_A.FREQUISITIONQTY - t3e_A.FPURCHASEQTY AS 'PR_C2PO_QTY' + ,0 AS 'ToBeInspectQTY' + ,0 AS 'PlanThrowInQty' + ,'' AS 'PlanThrowInDate' + ,'' AS 'CubicleName' + ,'' AS 'OTHERMEMO' + INTO {0} +FROM #TmpTable2 tt + LEFT JOIN ( + SELECT + t0.FMATERIALID + ,t0.FSTOCKORGID + ,sum(t0.FBASEQTY) AS FBASEQTY + FROM + T_STK_INVENTORY t0 + GROUP BY + t0.FMATERIALID + ,t0.FSTOCKORGID + ) t1 on t1.FMATERIALID = tt.FMASTERID AND t1.FSTOCKORGID = tt.FUSEORGID + LEFT JOIN T_ENG_ROUTE_L t2_L on t2_L.FID = tt.FROUTINGID AND t2_L.FLOCALEID = @LCID + LEFT JOIN T_PRD_PMPPBOMENTRY t3e on t3e.FPPBOMENTRYID = tt.PPBOMENTRYID AND t3e.FMATERIALIDSUB = tt.FMATERIALID --AND t3e.FMATERIALID = t0.FMATERIALID + LEFT JOIN T_PRD_PMPPBOMENTRY_A t3e_A ON t3e_A.FENTRYID = t3e.FENTRYID + +DROP TABLE #TmpTable0 +DROP TABLE #TmpTable1 +DROP TABLE #TmpTable2 + """).format(tableName,_lcId,whereSql); + # raise Exception(sql);#可以通过此方法弹出Sql语句进行调试验证 + DBUtils.Execute(this.Context,sql);#执行SQL,将报表数据写入临时表 + +#构建账表列头 +def GetReportHeaders(rptfilter): + header = ReportHeader(); + localEid = this.Context.UserLocale.LCID;#获取当前语言环境代码,中文为2052 + + header.AddChild("FBILLNO", LocaleValue("生产任务单号", localEid), 0) + + return header; + +#报表关闭触发,通常在此处清理报表过程产生的临时表 +def CloseReport(): + this.DropTempTable(); \ No newline at end of file diff --git a/03.珠海市汇威精密制造有限公司/HW.Python/产品Bom层级缺料分析查询表/HW.PRD_LackAnalyeBill.Python.py b/03.珠海市汇威精密制造有限公司/HW.Python/产品Bom层级缺料分析查询表/HW.PRD_LackAnalyeBill.Python.py new file mode 100644 index 0000000..3c1231b --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW.Python/产品Bom层级缺料分析查询表/HW.PRD_LackAnalyeBill.Python.py @@ -0,0 +1,305 @@ +import clr +clr.AddReference("System") +clr.AddReference("Kingdee.BOS") +clr.AddReference("Kingdee.BOS.Core") +clr.AddReference("Kingdee.BOS.DataEntity") +clr.AddReference("Kingdee.BOS.App") +clr.AddReference("Kingdee.BOS.Contracts") +clr.AddReference("Kingdee.BOS.ServiceHelper") +clr.AddReference("ExtensionMethods") + +from Kingdee.BOS import* +from Kingdee.BOS.Core import * +from Kingdee.BOS.Core.Metadata.EntityElement import * +from Kingdee.BOS.Orm.DataEntity import* +from Kingdee.BOS.Orm.Metadata.DataEntity import* +from Kingdee.BOS.Core.DynamicForm.PlugIn import * +from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import * +from System import * +from System.ComponentModel import* +from System.Collections.Generic import* +from System.Text import* +from Kingdee.BOS.ServiceHelper import * +from ExtensionMethods import BooleanExtension as boolObjEx +from ExtensionMethods import DateTimeExtension as dateObjEx +from ExtensionMethods import ObjectExtension as objEx +from ExtensionMethods import StringExtension as strObjEx + +def ButtonClick(e): + if e.Key.EndsWith("FToAnalyzeBtn", StringComparison.OrdinalIgnoreCase): + proEntity = this.View.Model.BusinessInfo.GetEntryEntity("FAnalyzeProEntity") + proRows = this.View.Model.GetEntityDataObject(proEntity) + this.View.Model.BeginIniti() + if proRows != None and proRows.Count > 0: + sDate = this.View.Model.GetValue("FBillSDate") + eDate = this.View.Model.GetValue("FBillEDate") + proStrList = List[str](); + + for row in proRows: + proStrList.Add("SELECT {0} AS 'MATERIALID' ,{1} needNum".format(row["FAnalyzeProId"]["Id"],row["FAnalyzeProQty"])) + + sql = """/*dialect*/ +DECLARE @needNum DECIMAL(23,6) +,@sDate varchar(100) +,@eDate varchar(100) +SET @needNum = 20 +SET @sDate = '{1}' +SET @eDate = '{2}' + +SELECT tt.MATERIALID,SUM(tt.needNum) needNum +INTO #TMPMATERIALNUM +FROM ({0}) tt +GROUP BY tt.MATERIALID + +SELECT t0.FMASTERID + ,t0.FMATERIALID + ,t0.FNUMBER + ,t0.FUSEORGID + ,t1.needNum AS 'ProMaterialQty' + INTO #ProMaterial +FROM T_BD_MATERIAL t0 + INNER JOIN #TMPMATERIALNUM t1 on t0.FMATERIALID = t1.MATERIALID +WHERE t0.FDOCUMENTSTATUS = 'C' + +CREATE TABLE #MATERIAL_LACKANALYE( + FIDENTITYID INT NOT NULL DEFAULT 0 + ,MATERIALID INT NOT NULL DEFAULT 0 + ,BomId int + ,ϴ varchar(100) DEFAULT '' + , varchar(100) DEFAULT '' + ,_ decimal(23,6) default 0 + ,_ÿ decimal(23,6) DEFAULT 0 + ,_ʵ decimal(23,6) DEFAULT 0 + ,BOMLEVEL int + ,IsProduct int + ,ϸϼ int +) + +SELECT t0.FMATERIALID + ,ISNULL(t3.sumQTY,0) AS ʱ + ,ISNULL(t4.sumBASENOPICKEDQTY,0) AS δ + ,ISNULL(t5.sumNoStockInQty,0) AS + ,CASE WHEN CHARINDEX('TC',t0.FNUMBER) = 1 THEN 0 ELSE ISNULL(t1. - t1.δ,0) END AS 'ܶ' + ,ISNULL(t2. - t2.,0) AS ';' + ,(ISNULL(t3.sumQTY,0) - ISNULL(t4.sumBASENOPICKEDQTY,0) + ISNULL(t5.sumNoStockInQty,0) - ISNULL(t1. - t1.δ,0) + ISNULL(t2. - t2.,0)) AS 'ÿ' + ,ISNULL(t6.,0) AS '' + INTO #Material_Stock_Statu +FROM T_BD_MATERIAL t0 + LEFT JOIN ( + SELECT + t0e.FMATERIALID,SUM(t0e.FQTY) AS '' + ,SUM((t0e_r.FBASEREMAINOUTQTY + t0e_r.FBASERETURNQTY)) AS 'δ' + FROM T_SAL_ORDER t0 + INNER JOIN T_SAL_ORDERENTRY t0e on t0.FID = t0e.FID + INNER JOIN T_SAL_ORDERENTRY_R t0e_r on t0e.FID = t0e_r.FID AND t0e_r.FENTRYID = t0e.FENTRYID + WHERE t0.FDOCUMENTSTATUS = 'C' + AND t0.FCANCELSTATUS = 'A' + AND t0.FCLOSESTATUS = 'A' + AND t0.FDATE between @sDate AND @eDate + GROUP BY t0e.FMATERIALID + ) t1 on t1.FMATERIALID = t0.FMATERIALID + LEFT JOIN ( + SELECT + t0e.FMATERIALID,SUM(t0e.FQTY) AS '' + ,SUM(t0e_r.FREMAINSTOCKINQTY) AS 'ʣ' + ,SUM(t0e_r.FBASESTOCKINQTY) AS '' + FROM T_PUR_POORDER t0 + INNER JOIN T_PUR_POORDERENTRY t0e on t0.FID = t0e.FID AND t0.FBUSINESSTYPE != 'ZCCG' AND t0.FBUSINESSTYPE != 'FYCG' + INNER JOIN T_PUR_POORDERENTRY_R t0e_r on t0e.FID = t0e_r.FID AND t0e_r.FENTRYID = t0e.FENTRYID + WHERE t0.FDOCUMENTSTATUS = 'C' + AND t0.FCANCELSTATUS = 'A' + AND t0.FCLOSESTATUS = 'A' + AND t0.FDATE BETWEEN @sDate AND @eDate + GROUP BY t0e.FMATERIALID + ) t2 on t2.FMATERIALID = t0.FMATERIALID + LEFT JOIN ( + SELECT tt0.FMATERIALID,tt0.FSTOCKORGID,SUM(tt0.FBASEQTY) AS sumQTY + FROM T_STK_INVENTORY tt0 + GROUP BY tt0.FMATERIALID,tt0.FSTOCKORGID + ) t3 on t3.FMATERIALID = t0.FMASTERID AND t3.FSTOCKORGID = t0.FUSEORGID + LEFT JOIN ( + SELECT t0e.FMATERIALID,SUM(t0e_q.FNOPICKEDQTY) sumBASENOPICKEDQTY + FROM T_PRD_PPBOMENTRY t0e + INNER JOIN T_PRD_PPBOMENTRY_Q t0e_q on t0e.FENTRYID = t0e_q.FENTRYID + INNER JOIN T_PRD_MOENTRY_A t0e_a on t0e_a.FENTRYID = t0e.FMOENTRYID + WHERE t0e_a.FSTATUS = 4 + GROUP BY t0e.FMATERIALID + ) t4 on t4.FMATERIALID = t0.FMATERIALID + LEFT JOIN ( + SELECT t0e.FMATERIALID,SUM(t0e_q.FNOSTOCKINQTY) AS sumNoStockInQty + FROM T_PRD_MOENTRY t0e + INNER JOIN T_PRD_MOENTRY_Q t0e_q on t0e.FENTRYID = t0e_q.FENTRYID + INNER JOIN T_PRD_MOENTRY_A t0e_a on t0e_a.FENTRYID = t0e.FENTRYID + WHERE t0e_a.FSTATUS = 4 + GROUP BY t0e.FMATERIALID + ) t5 on t5.FMATERIALID = t0.FMATERIALID + LEFT JOIN ( + SELECT t0e.FMATERIALID,SUM(FBASEUNITQTY-FINSTOCKBASEQTY + FRETURNBASEQTY) AS '' + FROM T_PUR_RECEIVE t0 + INNER JOIN T_PUR_RECEIVEENTRY t0e on t0.FID = t0e.FID + INNER JOIN T_PUR_RECEIVEENTRY_R t0e_r on t0e.FID = t0e_r.FID AND t0e.FENTRYID = t0e_r.FENTRYID + INNER JOIN T_PUR_RECEIVEENTRY_S t0e_s on t0e.FID = t0e_s.FID AND t0e.FENTRYID = t0e_s.FENTRYID + WHERE t0.FDOCUMENTSTATUS = 'C' + AND t0.FCANCELSTATUS = 'A' + AND t0.FCLOSESTATUS = 'A' + AND t0.FDATE BETWEEN @sDate AND @eDate + GROUP BY t0e.FMATERIALID + ) t6 on t6.FMATERIALID = t0.FMATERIALID +WHERE t0.FDOCUMENTSTATUS = 'C' + AND t0.FFORBIDSTATUS = 'A' + +UPDATE #Material_Stock_Statu SET ÿ = ʱ - δ - ܶ + + ; + +INSERT INTO #MATERIAL_LACKANALYE +SELECT + ROW_NUMBER() OVER (ORDER BY t0.FMATERIALID) + ,t0.FMATERIALID + ,t1.FID + ,t2.FNUMBER + ,t2_l.FNAME + ,t0.ProMaterialQty + ,t3.ÿ + + ,(CASE CHARINDEX('TC',t0.FNUMBER) + WHEN 1 THEN 0 - t0.ProMaterialQty + ELSE (CASE + WHEN t3.ÿ > t0.ProMaterialQty THEN 0 + ELSE t3.ÿ - t0.ProMaterialQty + END) + END) + ,0 + ,1 + ,1 +FROM #ProMaterial t0 + INNER JOIN ( + SELECT tt.FID,tt.FMATERIALID,ROW_NUMBER() OVER (PARTITION BY tt.FMATERIALID ORDER BY tt.FID DESC) AS 'rn' FROM T_ENG_BOM tt + WHERE 1 = 1 AND tt.FDOCUMENTSTATUS = 'C' AND tt.FFORBIDSTATUS = 'A' + ) t1 on t0.FMATERIALID = t1.FMATERIALID AND t1.rn = 1 --AND t0.FUSEORGID = t1.FUSEORGID + INNER JOIN T_BD_MATERIAL t2 on t2.FMATERIALID = t1.FMATERIALID + INNER JOIN T_BD_MATERIAL_L t2_l on t2_l.FMATERIALID = t1.FMATERIALID AND t2_l.FLOCALEID = 2052 + LEFT JOIN #Material_Stock_Statu t3 on t1.FMATERIALID = t3.FMATERIALID +WHERE 1 = 1 +ORDER BY + t0.FNUMBER + +DECLARE @num INT,@level int,@LoopCount int +SET @num = 1 +SET @level =0 +SET @LoopCount = 0; + +WHILE (@num <> 0 AND @LoopCount < 10) +BEGIN + INSERT INTO #MATERIAL_LACKANALYE(MaterialId,BomId,_ + ,_ÿ,_ʵ + ,BOMLEVEL,ϸϼ,IsProduct) + SELECT + tt.FMATERIALID + ,ISNULL(t2.FID,0) AS BomId + ,ABS(tt._) + ,t3.ÿ + ,(CASE + WHEN t3.ÿ > (ABS(tt._) + ISNULL(t4.ϼ_ʵ,0)) THEN 0 + ELSE t3.ÿ - (ABS(tt._) + ISNULL(t4.ϼ_ʵ,0)) + END) AS 'ʵ' + ,@level + 1 + ,tt.co + ,0 + FROM ( + SELECT + t1.FMATERIALID,count(1) co + ,SUM(t0._ʵ * (t1.FNUMERATOR / t1.FDENOMINATOR)) AS '_' + FROM + #MATERIAL_LACKANALYE t0 + INNER JOIN T_ENG_BOMCHILD t1 on t0.BomId = t1.FID + WHERE 1 = 1 + AND t0.BOMLEVEL = @level + GROUP BY t1.FMATERIALID + ) tt + OUTER APPLY ( + SELECT TOP 1 tt3.FID,tt3.FNUMBER,tt3.FMATERIALID + FROM T_ENG_BOM tt3 + WHERE 1 = 1 AND tt3.FDOCUMENTSTATUS = 'C' AND tt3.FFORBIDSTATUS = 'A' + AND tt.FMATERIALID = tt3.FMATERIALID + ORDER BY tt3.FID DESC + ) t2 + LEFT JOIN #Material_Stock_Statu t3 on t3.FMATERIALID = tt.FMATERIALID + OUTER APPLY ( + SELECT tt4.MaterialId + ,ABS(SUM(tt4._ʵ)) AS 'ϼ_ʵ' + FROM #MATERIAL_LACKANALYE tt4 + WHERE tt4.MaterialId = tt.FMATERIALID + GROUP BY tt4.MaterialId + ) t4 + SET @num = @@ROWCOUNT + SET @level += 1 + SET @LoopCount += 1 +END + +SELECT t0.MATERIALID,t0._,t0._ʵ,t0.IsProduct,t1.FNUMBER,t1_l.FNAME + ,ROW_NUMBER() OVER (ORDER BY t0.BOMLEVEL,t1.FNumber) 'FIDENTITYID' + ,t2.ʱ AS '_ʱ',t2.δ AS '_δ',t2. AS '_' + ,t2.ܶ AS '_ܶ',t2.; AS '_;',t2.ÿ AS '_ÿ',t2. AS '_' +FROM ( + SELECT t0.MATERIALID + ,SUM(t0._ʵ) AS '_ʵ' + ,SUM(t0._) AS '_' + ,MAX(t0.BOMLEVEL) AS 'BOMLEVEL' + ,MAX(t0.IsProduct) AS 'IsProduct' + FROM #MATERIAL_LACKANALYE t0 + GROUP BY t0.MATERIALID +) t0 + INNER JOIN T_BD_MATERIAL t1 on t0.MaterialId = t1.FMATERIALID + INNER JOIN T_BD_MATERIAL_L t1_l on t0.MaterialId = t1_l.FMATERIALID AND t1_l.FLOCALEID = 2052 + INNER JOIN #Material_Stock_Statu t2 on t2.FMATERIALID = t0.MATERIALID + +DROP TABLE #ProMaterial +DROP TABLE #TMPMATERIALNUM +DROP TABLE #MATERIAL_LACKANALYE +DROP TABLE #Material_Stock_Statu +""".format(" union all ".join(proStrList),sDate,eDate) + + proRows.Clear() + # this.View.UpdateView("FAnalyzeProEntity"); + materialEntity = this.View.Model.BillBusinessInfo.GetEntryEntity("FAnalyzeMaterialEntity") + materialRows = this.View.Model.GetEntityDataObject(materialEntity) + materialRows.Clear() + res = DBServiceHelper.ExecuteDynamicObject(this.Context,sql) + + if res != None and res.Count > 0: + for item in res: + row = DynamicObject(materialEntity.DynamicObjectType) + isPro = item["IsProduct"] + matId = item["MaterialId"] + matFld = this.View.BillBusinessInfo.GetField("FAnalyzeMaterialId");#ֶԪԪ,ʹֶαʶ + matObj = BusinessDataServiceHelper.LoadSingle(this.Context, matId, matFld.RefFormDynamicObjectType) + row["FAnalyzeMaterialId_Id"] = matId + row["FAnalyzeMaterialId"] = matObj + row["FAnalyzeMQty"] = item["_"] + row["FStkQty"] = item["_ʱ"] + row["FNotIssueQty"] = item["_δ"] + row["FInMakingQty"] = item["_"] + row["FOrderMQty"] = item["_ܶ"] + row["FInTransitQty"] = item["_;"] + row["FAvailableQty"] = item["_ÿ"] + row["FActualQty"] = item["_ʵ"] + row["FDetectionQty"] = item["_"] + row["FIsAnalyzeMaterial"] = False if isPro == 1 else True + materialRows.Add(row) + if isPro == 1: + proRow = DynamicObject(proEntity.DynamicObjectType) + proRow["FAnalyzeProId_Id"] = matId + proRow["FAnalyzeProId"] = matObj + proRow["FAnalyzeProQty"] = item["_"] + proRow["FProStkQty"] = item["_ʱ"] + proRow["FProNotIssueQty"] = item["_δ"] + proRow["FProInMakingQty"] = item["_"] + proRow["FProOrderQty"] = item["_ܶ"] + proRow["FProInTransitQty"] = item["_;"] + proRow["FProAvailableQty"] = item["_ÿ"] + proRow["FProActualQty"] = item["_ʵ"] + proRows.Add(proRow); + + this.View.UpdateView("FAnalyzeProEntity") + this.View.UpdateView("FAnalyzeMaterialEntity") + + this.View.Model.EndIniti(); \ No newline at end of file diff --git a/03.珠海市汇威精密制造有限公司/HW.Python/产品Bom层级缺料分析查询表/sql/缺料分析单数据查询.sql b/03.珠海市汇威精密制造有限公司/HW.Python/产品Bom层级缺料分析查询表/sql/缺料分析单数据查询.sql new file mode 100644 index 0000000..0d6f697 --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW.Python/产品Bom层级缺料分析查询表/sql/缺料分析单数据查询.sql @@ -0,0 +1,54 @@ +SELECT + t0.FID + ,t0.FBILLNO + ,t0e.FMATERIALID + ,t0e.FMUSTQTY + ,t0e.FPICKEDQTY + ,t0e.FINVQTY + ,t0e.FCANPICKEDQTY + ,t0e.FLACKQTY + ,t0e.FBOMID + ,t0e.FSUMMARYID + --,t0e.* +FROM T_PRD_LACKANALYSEBILL t0 + INNER JOIN T_PRD_LACKENTRY t0e on t0e.FID = t0.FID +--where t0.FID = 101203 +SELECT + --t0.FID + --,t0.FBILLNO + --,t0e.FMATERIALID + --,t0e.FSELECTED + --,t0e.FQTY + t0e.* +FROM T_PRD_LACKANALYSEBILL t0 + INNER JOIN T_PRD_LACKMOENTRY t0e on t0.FID = t0e.FID + +SELECT t1.FNUMBER,t0e_a.FSUMMARYID,* +FROM T_PRD_PMPPBOMENTRY t0e + INNER JOIN T_PRD_PMPPBOMENTRY_A t0e_a on t0e.FENTRYID = t0e_a.FENTRYID + INNER JOIN T_BD_MATERIAL t1 on t1.FMATERIALID = t0e.FMATERIALIDSUB +where t0e.FID = 101203 + --AND t1.FNUMBER = 'TSB074H000108O' + + +--MERGE INTO T_PRD_LACKENTRY U1 USING( +--SELECT S.FID,S.FSUMMARYID,S.FENTRYID,S1.FMOBILLNO +--FROM ( +-- SELECT T1.FID,T2.FSUMMARYID,MIN(T1.FENTRYID) AS FENTRYID +-- FROM T_PRD_PMPPBOMENTRY T1 +-- INNER JOIN T_PRD_PMPPBOMENTRY_A T2 ON T1.FENTRYID = T2.FENTRYID --and t1.fid = @lFId +-- GROUP BY T1.FID,T2.FSUMMARYID) S +-- INNER JOIN T_PRD_PMPPBOMENTRY S1 ON S.FENTRYID = S1.FENTRYID +-- INNER JOIN T_PRD_PMPPBOMENTRY_A S2 ON S.FENTRYID = S2.FENTRYID) U2 ON U1.FID = U2.FID AND U1.FSUMMARYID = U2.FSUMMARYID +--WHEN MATCHED +--THEN UPDATE SET U1.F_ISVCODE_MOBILLNO = U2.FMOBILLNO; + +--SELECT S.FID,S.FSUMMARYID,S.FENTRYID,S1.FMOBILLNO +--FROM ( +-- SELECT T1.FID,T2.FSUMMARYID,MIN(T1.FENTRYID) AS FENTRYID +-- FROM T_PRD_PMPPBOMENTRY T1 +-- INNER JOIN T_PRD_PMPPBOMENTRY_A T2 ON T1.FENTRYID = T2.FENTRYID --and t1.fid = @lFId +-- GROUP BY T1.FID,T2.FSUMMARYID) S +-- INNER JOIN T_PRD_PMPPBOMENTRY S1 ON S.FENTRYID = S1.FENTRYID +-- INNER JOIN T_PRD_PMPPBOMENTRY_A S2 ON S.FENTRYID = S2.FENTRYID + diff --git a/03.珠海市汇威精密制造有限公司/HW.Python/产品Bom层级缺料分析查询表/sql/缺料分析单数据查询V1.sql b/03.珠海市汇威精密制造有限公司/HW.Python/产品Bom层级缺料分析查询表/sql/缺料分析单数据查询V1.sql new file mode 100644 index 0000000..80678c5 --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW.Python/产品Bom层级缺料分析查询表/sql/缺料分析单数据查询V1.sql @@ -0,0 +1,256 @@ +DECLARE @needNum DECIMAL(23,6) +,@sDate varchar(100) +,@eDate varchar(100) +,@dbName varchar(100) +SET @needNum = 20 +SET @sDate = '2024-02-24' +SET @eDate = '2024-03-24' + +select @dbName = db_name() + +SELECT tt.MATERIALID,SUM(tt.needNum) needNum +INTO #TMPMATERIALNUM +FROM (SELECT + CASE @dbName WHEN 'AIS20231110222743' THEN 101521 ELSE 782449 END AS 'MATERIALID' + ,10 needNum + Union + SELECT + CASE @dbName WHEN 'AIS20231110222743' THEN 101530 ELSE 808372 END AS 'MATERIALID' + ,30 needNum +) tt +GROUP BY tt.MATERIALID + + +SELECT t0.FMASTERID + ,t0.FMATERIALID + ,t0.FNUMBER + ,t0.FUSEORGID + ,t1.needNum AS 'ProMaterialQty' + INTO #ProMaterial +FROM T_BD_MATERIAL t0 + INNER JOIN #TMPMATERIALNUM t1 on t0.FMATERIALID = t1.MATERIALID +WHERE t0.FDOCUMENTSTATUS = 'C' + +CREATE TABLE #MATERIAL_LACKANALYE( + FIDENTITYID int not null default 0 + ,MaterialId int not null default 0 + ,BomId int + ,物料代码 varchar(100) default '' + ,物料名称 varchar(100) default '' + ,物料_分析需求数 decimal(23,6) default 0 + ,物料_即时库存 decimal(23,6) default 0 + ,物料_未发数 decimal(23,6) default 0 + ,物料_在制数 decimal(23,6) default 0 + ,物料_受订量 decimal(23,6) default 0 + ,物料_在途量 decimal(23,6) default 0 + ,物料_可用库存数 decimal(23,6) default 0 + ,物料_实际需求数 decimal(23,6) default 0 + ,物料_进检量 decimal(23,6) default 0 + ,BOMLEVEL int + ,IsProduct int + ,物料个数分组合计 int +) + +SELECT t0.FMATERIALID + ,ISNULL(t3.sumQTY,0) AS 即时库存 + ,ISNULL(t4.sumBASENOPICKEDQTY,0) AS 未发数 + ,ISNULL(t5.sumNoStockInQty,0) AS 在制数 + ,CASE WHEN CHARINDEX('TC',t0.FNUMBER) = 1 THEN 0 ELSE ISNULL(t1.数量 - t1.未发数量,0) END AS '受订量' + --,ISNULL(t2.数量 - t2.入库数量,0) AS '在途量' + ,ISNULL(t2.剩余入库数量,0) AS '在途量' + ,0 AS '可用库存' + ,ISNULL(t6.进检量,0) AS '进检量' + INTO #Material_Stock_Statu +FROM T_BD_MATERIAL t0 + LEFT JOIN ( + SELECT + t0e.FMATERIALID,SUM(t0e.FQTY) AS '数量' + ,SUM((t0e_r.FBASEREMAINOUTQTY + t0e_r.FBASERETURNQTY)) AS '未发数量' + FROM T_SAL_ORDER t0 + INNER JOIN T_SAL_ORDERENTRY t0e on t0.FID = t0e.FID + INNER JOIN T_SAL_ORDERENTRY_R t0e_r on t0e.FID = t0e_r.FID AND t0e_r.FENTRYID = t0e.FENTRYID + WHERE t0.FDOCUMENTSTATUS = 'C' + AND t0.FCANCELSTATUS = 'A' + AND t0.FCLOSESTATUS = 'A' + AND t0.FDATE between @sDate AND @eDate + GROUP BY t0e.FMATERIALID + ) t1 on t1.FMATERIALID = t0.FMATERIALID + LEFT JOIN ( + SELECT + t0e.FMATERIALID,SUM(t0e.FQTY) AS '数量' + ,SUM(t0e_r.FREMAINSTOCKINQTY - ISNULL(t1.sumBaseInQty,0) + ISNULL(t2.sumBaseInQty,0)) AS '剩余入库数量' + ,SUM(t0e_r.FBASESTOCKINQTY) AS '入库数量' + FROM T_PUR_POORDER t0 + INNER JOIN T_PUR_POORDERENTRY t0e on t0.FID = t0e.FID AND t0.FBUSINESSTYPE != 'ZCCG' AND t0.FBUSINESSTYPE != 'FYCG' + INNER JOIN T_PUR_POORDERENTRY_R t0e_r on t0e.FID = t0e_r.FID AND t0e_r.FENTRYID = t0e.FENTRYID + LEFT JOIN ( + SELECT t1e.FMATERIALID,SUM(t1e.FBASEUNITQTY) sumBaseInQty + FROM T_PUR_MRB t1 + INNER JOIN T_PUR_MRBENTRY t1e on t1.FID = t1e.FID + INNER JOIN T_PUR_MRBFIN t1f on t1f.FID = t1.FID + WHERE t1.FDOCUMENTSTATUS = 'C' + AND t1.FCANCELSTATUS = 'A' + AND t1f.FISGENFORIOS = 0 + AND t1.FDATE > @eDate + GROUP BY t1e.FMATERIALID + ) t1 on t1.FMATERIALID = t0e.FMATERIALID + LEFT JOIN ( + SELECT t0e.FMATERIALID,SUM(t0e.FBASEUNITQTY) sumBaseInQty + FROM T_STK_INSTOCK t0 + INNER JOIN T_STK_INSTOCKENTRY t0e on t0.FID = t0e.FID + INNER JOIN T_STK_INSTOCKENTRY_F t0e_f on t0e_f.FID = t0e.FID AND t0e_f.FENTRYID = t0e.FENTRYID + INNER JOIN T_STK_INSTOCKENTRY_LK t0e_lk on t0e_lk.FENTRYID = t0e.FENTRYID + INNER JOIN T_STK_INSTOCKFIN t0f on t0e.FID = t0f.FID + WHERE 1 = 1 + AND t0.FCANCELSTATUS = 'A' + AND t0.FDOCUMENTSTATUS = 'C' + AND t0.FDATE > @eDate + GROUP BY t0e.FMATERIALID + ) t2 on t2.FMATERIALID = t0e.FMATERIALID + WHERE t0.FDOCUMENTSTATUS = 'C' + AND t0.FCANCELSTATUS = 'A' + AND t0.FCLOSESTATUS = 'A' + AND t0.FDATE BETWEEN @sDate AND @eDate + GROUP BY t0e.FMATERIALID + ) t2 on t2.FMATERIALID = t0.FMATERIALID + LEFT JOIN ( + SELECT tt0.FMATERIALID,tt0.FSTOCKORGID,SUM(tt0.FBASEQTY) AS sumQTY + FROM T_STK_INVENTORY tt0 + GROUP BY tt0.FMATERIALID,tt0.FSTOCKORGID + ) t3 on t3.FMATERIALID = t0.FMASTERID AND t3.FSTOCKORGID = t0.FUSEORGID + LEFT JOIN ( + SELECT t0e.FMATERIALID,SUM(t0e_q.FNOPICKEDQTY) sumBASENOPICKEDQTY + FROM T_PRD_PPBOMENTRY t0e + INNER JOIN T_PRD_PPBOMENTRY_Q t0e_q on t0e.FENTRYID = t0e_q.FENTRYID + INNER JOIN T_PRD_MOENTRY_A t0e_a on t0e_a.FENTRYID = t0e.FMOENTRYID + WHERE t0e_a.FSTATUS = 4 + GROUP BY t0e.FMATERIALID + ) t4 on t4.FMATERIALID = t0.FMATERIALID + LEFT JOIN ( + SELECT t0e.FMATERIALID,SUM(t0e_q.FNOSTOCKINQTY) AS sumNoStockInQty + FROM T_PRD_MOENTRY t0e + INNER JOIN T_PRD_MOENTRY_Q t0e_q on t0e.FENTRYID = t0e_q.FENTRYID + INNER JOIN T_PRD_MOENTRY_A t0e_a on t0e_a.FENTRYID = t0e.FENTRYID + WHERE t0e_a.FSTATUS = 4 + GROUP BY t0e.FMATERIALID + ) t5 on t5.FMATERIALID = t0.FMATERIALID + LEFT JOIN ( + SELECT t0e.FMATERIALID,SUM(FBASEUNITQTY-FINSTOCKBASEQTY + FRETURNBASEQTY) AS '进检量' + FROM T_PUR_RECEIVE t0 + INNER JOIN T_PUR_RECEIVEENTRY t0e on t0.FID = t0e.FID + INNER JOIN T_PUR_RECEIVEENTRY_R t0e_r on t0e.FID = t0e_r.FID AND t0e.FENTRYID = t0e_r.FENTRYID + INNER JOIN T_PUR_RECEIVEENTRY_S t0e_s on t0e.FID = t0e_s.FID AND t0e.FENTRYID = t0e_s.FENTRYID + WHERE t0.FDOCUMENTSTATUS = 'C' + AND t0.FCANCELSTATUS = 'A' + AND t0.FCLOSESTATUS = 'A' + AND t0.FDATE BETWEEN @sDate AND @eDate + GROUP BY t0e.FMATERIALID + ) t6 on t6.FMATERIALID = t0.FMATERIALID +WHERE t0.FDOCUMENTSTATUS = 'C' + AND t0.FFORBIDSTATUS = 'A' + +UPDATE #Material_Stock_Statu SET 可用库存 = 即时库存 - 未发数 - 受订量 + 在制数 + 在途量 +INSERT INTO #MATERIAL_LACKANALYE +SELECT + ROW_NUMBER() OVER (ORDER BY t0.FMATERIALID) + ,t0.FMATERIALID + ,t1.FID + ,t2.FNUMBER + ,t2_l.FNAME + ,t0.ProMaterialQty + ,t3.即时库存 + ,t3.未发数 + ,t3.在制数 + ,t3.受订量 + ,t3.在途量 + ,t3.可用库存 + ,(CASE + WHEN t3.可用库存 > t0.ProMaterialQty THEN 0 + ELSE t3.可用库存 - t0.ProMaterialQty + END) + ,t3.进检量 + ,0 + ,1 + ,1 +FROM #ProMaterial t0 + INNER JOIN ( + SELECT tt.FID,tt.FMATERIALID,ROW_NUMBER() OVER (PARTITION BY tt.FMATERIALID ORDER BY tt.FID DESC) AS 'rn' FROM T_ENG_BOM tt + WHERE 1 = 1 + AND tt.FDOCUMENTSTATUS = 'C' + AND tt.FFORBIDSTATUS = 'A' + ) t1 on t0.FMATERIALID = t1.FMATERIALID AND t1.rn = 1 --AND t0.FUSEORGID = t1.FUSEORGID + INNER JOIN T_BD_MATERIAL t2 on t2.FMATERIALID = t1.FMATERIALID + INNER JOIN T_BD_MATERIAL_L t2_l on t2_l.FMATERIALID = t1.FMATERIALID AND t2_l.FLOCALEID = 2052 + LEFT JOIN #Material_Stock_Statu t3 on t1.FMATERIALID = t3.FMATERIALID +WHERE 1 = 1 +ORDER BY + t0.FNUMBER + +DECLARE @num INT,@level int,@LoopCount int +SET @num = 1 +SET @level =0 +SET @LoopCount = 0; + +WHILE (@num <> 0 AND @LoopCount < 10) +BEGIN + INSERT INTO #MATERIAL_LACKANALYE(MaterialId,BomId,物料_分析需求数,物料_即时库存,物料_未发数,物料_在制数,物料_受订量,物料_在途量,物料_可用库存数,物料_实际需求数,物料_进检量,BOMLEVEL,物料个数分组合计,IsProduct) + SELECT + tt.FMATERIALID + ,ISNULL(t2.FID,0) AS BomId + ,ABS(tt.汇总_分析需求数) + ,t3.即时库存 ,t3.未发数 + ,t3.在制数 + ,t3.受订量 + ,t3.在途量 + ,t3.可用库存 + ,(CASE + WHEN t3.可用库存 > (ABS(tt.汇总_分析需求数) + ISNULL(t4.上级_实际需求数,0)) THEN 0 + ELSE t3.可用库存 - (ABS(tt.汇总_分析需求数) + ISNULL(t4.上级_实际需求数,0)) + END) AS '实际需求数' + ,t3.进检量 + ,@level + 1 + ,tt.co + ,0 + FROM ( + SELECT + t1.FMATERIALID + ,SUM(t0.物料_实际需求数 * (t1.FNUMERATOR / t1.FDENOMINATOR)) AS '汇总_分析需求数' + ,count(1) co + FROM + #MATERIAL_LACKANALYE t0 + INNER JOIN T_ENG_BOMCHILD t1 on t0.BomId = t1.FID + WHERE 1 = 1 + AND t0.BOMLEVEL = @level + GROUP BY t1.FMATERIALID + ) tt + LEFT JOIN ( + SELECT tt3.FID,tt3.FNUMBER,tt3.FMATERIALID,ROW_NUMBER() OVER (PARTITION BY tt3.FMATERIALID ORDER BY tt3.FID DESC) AS 'rn' + FROM T_ENG_BOM tt3 + WHERE 1 = 1 AND tt3.FDOCUMENTSTATUS = 'C' AND tt3.FFORBIDSTATUS = 'A' + ) t2 ON t2.rn = 1 AND tt.FMATERIALID = t2.FMATERIALID + LEFT JOIN #Material_Stock_Statu t3 on t3.FMATERIALID = tt.FMATERIALID + LEFT JOIN ( + SELECT tt.MaterialId,sum(tt.物料_实际需求数) AS '上级_实际需求数' FROM #MATERIAL_LACKANALYE tt GROUP BY tt.MaterialId + ) t4 on t4.MaterialId = tt.FMATERIALID + + SET @num = @@ROWCOUNT + SET @level += 1 + SET @LoopCount += 1 + +END + +UPDATE t0 SET + t0.物料代码 = t1.FNUMBER + ,t0.物料名称 = t1_l.FNAME + ,t0.FIDENTITYID = t2.rn +FROM #MATERIAL_LACKANALYE t0 + INNER JOIN T_BD_MATERIAL t1 on t0.MaterialId = t1.FMATERIALID + INNER JOIN T_BD_MATERIAL_L t1_l on t0.MaterialId = t1_l.FMATERIALID AND t1_l.FLOCALEID = 2052 + INNER JOIN (SELECT MaterialId,ROW_NUMBER() OVER (ORDER BY bomlevel,物料代码) 'rn' FROM #MATERIAL_LACKANALYE) t2 on t0.MaterialId = t2.MaterialId + +SELECT t0.* FROM #MATERIAL_LACKANALYE t0 ORDER BY FIDENTITYID + +DROP TABLE #ProMaterial +DROP TABLE #TMPMATERIALNUM +DROP TABLE #MATERIAL_LACKANALYE +DROP TABLE #Material_Stock_Statu \ No newline at end of file diff --git a/03.珠海市汇威精密制造有限公司/HW.Python/生产投料bom层级展示.py b/03.珠海市汇威精密制造有限公司/HW.Python/生产投料bom层级展示.py new file mode 100644 index 0000000..a743537 --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW.Python/生产投料bom层级展示.py @@ -0,0 +1,3385 @@ +import clr +clr.AddReference("System") +clr.AddReference("Kingdee.BOS") +clr.AddReference("Kingdee.BOS.Core") +clr.AddReference("Kingdee.BOS.DataEntity") +clr.AddReference("Kingdee.BOS.App") +clr.AddReference("Kingdee.BOS.Contracts") +clr.AddReference("Kingdee.BOS.ServiceHelper") +clr.AddReference("ExtensionMethods") +# clr.AddReference("K3CExttensionMethods") +from Kingdee.BOS import* +from Kingdee.BOS.Contracts import* +from Kingdee.BOS.Contracts.Report import* +from Kingdee.BOS.Core import * +from Kingdee.BOS.Core.Metadata import * +from Kingdee.BOS.Core.Report import* +from Kingdee.BOS.Core.SqlBuilder import* +from Kingdee.BOS.Core.Enums import * +from Kingdee.BOS.App.Data import* +from Kingdee.BOS.Orm.DataEntity import* +from System import * +from System.ComponentModel import* +from System.Collections.Generic import* +from System.Text import* +from System.Threading.Tasks import* +from Kingdee.BOS.ServiceHelper import * +from ExtensionMethods import BooleanExtension as boolObjEx +from ExtensionMethods import DateTimeExtension as dateObjEx +from ExtensionMethods import ObjectExtension as objEx +from ExtensionMethods import StringExtension as strObjEx +# from K3CExttensionMethods import ListHeaderExtension as lhObjEx + +#初始化,在此事件中设置报表的属性全局参数 +def Initialize(): + this.ReportProperty.ReportType= ReportType.REPORTTYPE_NORMAL; + this.IsCreateTempTableByPlugin = True; + #是否支持分组汇总,在后面GetSummaryColumnInfo方法中添加汇总字段, + #要在BOS中过滤框的汇总页签配置汇总信息,可参考:简单账表分组汇总设置 + this.ReportProperty.IsGroupSummary = True; + #IsUIDesignerColumns=False,表示报表的列通过插件控制,后续在GetReportHeaders中构建列头 + #需要在BOS过滤框的显示隐藏列中维护,字段标识与临时表字段保持一致 + #账表列头构建更多详细说明参考:账表列构建 + this.ReportProperty.IsUIDesignerColumns = False; + # this.ReportProperty.PrimaryKeyFieldName = "FID"; + this.ReportProperty.IdentityFieldName = "FIDENTITYID"; + +#创建临时报表,正式进入账表取数sql拼接并取数,把账表取数结果放到创建的临时表中 +#如果参数(this.IsCreateTempTableByPlugin=True),即调用BuilderReportSqlAndTempTable构建临时表 +#否则调用以下3个接口,完成账表取数逻辑的sql指令即:BuilderSelectFieldSQL、BuilderTempTableOrderBySQL、BuilderFormWhereSQL +#rptfilter:账表参数,可以从这里获取过滤条件等 +#tableName:系统自动创建的账表临时表名,具备唯一性,最终报表页面展示的数据绑定此临时表,所以最终的报表结果数据要写入此临时表中 +def BuilderReportSqlAndTempTable(rptfilter,tableName): + #baseDataTemp=filter.BaseDataTempTable;#基础资料临时表;若设置了数据范围权限,该表会把根据数据范围过滤出来的内码存入临时表; + #循环获取所有基础资料数据范围的数据,可用来拼接到报表SQL里面实现数据权限过滤 + #for b in baseDataTemp: + # baseType=b.BaseDataFormId;#基础资料FormId + # PKFldName=b.PKFieldName;#临时表中基础资料主键字段名,例如,FORGID + # baseTempTab=b.TempTable;#基础资料数据范围临时表名 + #filterStr=filter.FilterParameter.FilterString;#过滤框条件页签过滤表达式 + #过滤框快捷过滤页签的实体数据包,从这里面获取自定义的过滤字段值 + #DynamicObject类型,用前面讲的实体数据包操作方式取值,用绑定实体属性标识 + custFilter = rptfilter.FilterParameter.CustomFilter; + if(custFilter == None): + return; + whereSql = ""; + # 产品id + _proMaterialId = custFilter["ProMaterialId"]; + if _proMaterialId != None: + whereSql = whereSql + " AND t0e.FMATERIALID = " + str(_proMaterialId["Id"]); + + # # 物料id + # _materialId = custFilter["MaterialId"]; + # if(_materialId != None): + # whereSql = whereSql + " AND t1e.FMATERIALID = " + str(_materialId["Id"]); + + # 生产任务单 + _billNo = objEx.ToSafeString(custFilter["BILLNO"]); + if _billNo != "": + whereSql = whereSql + " AND t0.FBILLNO = '{0}'".format(_billNo); + + # # 生产投料单 + # _PPBomBillNo = objEx.ToSafeString(custFilter["PPBOMBILLNO"]); + # if(_PPBomBillNo != ""): + # whereSql = whereSql + " AND t1.FBILLNO LIKE '%{0}%'".format(_PPBomBillNo); + + # 销售订单 + _saleOrderNo = objEx.ToSafeString(custFilter["SALEORDERNO"]); + if _saleOrderNo != "": + whereSql = whereSql + " AND t0e.FSALEORDERNO = '{0}'".format(_saleOrderNo); + + _FSStock = "" + _stockSelectCollection = custFilter["FStockSelect"] + if _stockSelectCollection != None and _stockSelectCollection.Count > 0: + idList = set(map(lambda x : str(x["FStockSelect_Id"]), _stockSelectCollection)) + _FSStock = " AND FSTOCKID IN ({0}) ".format(",".join(idList)) + + _F_ora_SDate = objEx.ToSafeString(custFilter["F_ora_SDate"]) + _F_ora_EDate = objEx.ToSafeString(custFilter["F_ora_EDate"]) + + if whereSql == "": + return + # whereSql = "AND t0e.FMATERIALID = 0" + + _lcId = this.Context.UserLocale.LCID; + #raise Exception(str.Join(',',fldsSql));#调试时,可用此行代码,看看构建的动态列SQL对不对 + #组装最终写入报表临时表的SQL + #注意!!!: 最终临时表一定要有FIDENTITYID ,要从1开始,且不重复 ,不断号,不然前台显示空白!!!! + sql=("""/*dialect*/  +declare + @moBillNo varchar(100) + ,@salesBillNo varchar(100) + ,@ProMateriaNumber varchar(100) + ,@startMaterialId int + ,@endMaterialId int + ,@FSDate varchar (30) + ,@FEDate varchar (30) + ,@FSStock varchar (max) + ,@FName varchar (255) + ,@localId int +SET @moBillNo ='' +SET @salesBillNo ='' +SET @moBillNo = 0 +SET @moBillNo = 0 +SET @FSDate = '{3}' +SET @FEDate = '{4}' +SET @FSStock ='' +SET @FName = '' +SET @localId = {1} + +SET nocount ON +declare @FCloseBALDate varchar (30) +declare @FClosedate varchar (30) + +--查询起始日期最近一期的期末结存日期 +If NOT Exists( + SELECT FORGID,MAX(FCLOSEDATE) fclosedate + FROM T_STK_CLOSEPROFILE + WHERE FORGID IN (1) AND FCATEGORY = 'STK' AND (FCLOSEDATE < @FSDate) + GROUP BY FORGID) +BEGIN + SET @FClosedate='2020-01-01' + SET @FCloseBALDate='2020-01-01' + --print @FClosedate +END +ELSE +BEGIN + --SET @FClosedate='2019-07-01' + SELECT @FClosedate= CONVERT(varchar (30),DATEADD(D,1,MAX(FCLOSEDATE)),23) FROM + T_STK_CLOSEPROFILE WHERE ((FORGID IN (1) AND FCATEGORY = 'STK') AND (FCLOSEDATE < @FSDate)) GROUP BY FORGID + SET @FCloseBALDate=CONVERT(varchar (30),DATEADD(D,-1,@FClosedate),23) + --print @FClosedat +END + + --生成临时选取仓库 + +IF EXISTS(SELECT * FROM tempdb..SYSOBJECTS WHERE id=OBJECT_ID('tempdb..#tmpStockID')) +BEGIN + DROP TABLE #tmpStockID + print '存在' +END +Create Table #tmpStockID ( + FID INT IDENTITY(1,1) + ,FStockID INT +) +DECLARE @Strsql varchar(max) +--SET @Strsql= 'INSERT INTO #tmpStockID SELECT DISTINCT FSTOCKID FROM T_BD_STOCK WHERE 1=1 ' +@FSStock +--EXEC(@Strsql) +INSERT INTO #tmpStockID SELECT DISTINCT FSTOCKID FROM T_BD_STOCK WHERE 1=1 {5} + +--库存状态报表 + +if EXISTS(SELECT * FROM tempdb..sysobjects WHERE id=object_id('tempdb..#Stock_Status_temp')) +begin + DROP TABLE #Stock_Status_temp + print '存在' +END + +Create Table #Stock_Status_temp ( + 序号 INT IDENTITY(1,1), + 物料内码 INT, + 物料代码 varchar(100) null, + 物料名称 varchar(255) null, + 规格型号 varchar(255) null, + 旧编码 varchar(100) null, + --单位 varchar(30) null, + 上期结存 DECIMAL (18,2) Null, + 本期采购入库 DECIMAL (18,2) Null, + 本期耗用 DECIMAL (18,2) Null, + 期末结存 DECIMAL (18,2) Null, + 在途量 DECIMAL (18,2) Null, + 在制数 DECIMAL (18,2) Null, + 进检量 DECIMAL (18,2) Null, + 未发量 DECIMAL (18,2) Null, + 领料数量 DECIMAL (18,2) Null, + 销售出库数量 DECIMAL (18,2) Null, + 仓库拨出数量 DECIMAL (18,2) Null, + 仓库拨入数量 DECIMAL (18,2) Null, + 申购未转数 DECIMAL (18,2) Null, + 受订量 DECIMAL (18,2) Null, + 占用量 DECIMAL (18,2) Null, + 可用库存 DECIMAL (18,2) Null, + 仓库内码 INT, + 仓库代码 varchar(100) null, + 仓库名称 varchar(255) null, + 包装内码 INT, + 包装方式 varchar(255) null +) + +if EXISTS(SELECT * FROM tempdb..sysobjects WHERE id=object_id('tempdb..#TMP')) +begin + DROP TABLE #TMP + print '存在' +END + +CREATE TABLE #TMP ( + FID INT IDENTITY(1,1), + FSTOCKORGID INT NOT NULL DEFAULT 0, + FBILLENTRYID INT NOT NULL DEFAULT 0, + FORDERBY INT NOT NULL DEFAULT 0, + FSTOCKIO CHAR (1) NULL, + FMATERIALID INT NOT NULL DEFAULT 0, + FAUXPROPID INT NOT NULL DEFAULT 0, + FDATE DATETIME NULL, + FSTOCKID INT NOT NULL DEFAULT 0, + FSTOCKLOCID INT NOT NULL DEFAULT 0, + FSTOCKSTATUSID INT NOT NULL DEFAULT 0, + FBILLNAME NVARCHAR (100) NULL, + FBILLID INT NOT NULL DEFAULT 0, + FBILLSEQID INT NULL, + FBILLNO NVARCHAR (100) NULL, + FBASEQCQTY DECIMAL (23,10) NOT NULL DEFAULT 0, + FBASEINQTY DECIMAL (23,10) NOT NULL DEFAULT 0, + FBASEOUTQTY DECIMAL (23,10) NOT NULL DEFAULT 0 +) + +--分析BOM层级物料 + +IF EXISTS(SELECT * FROM TEMPDB..SYSOBJECTS WHERE ID=OBJECT_ID('TEMPDB..#YC_T_MRP')) +BEGIN + DROP TABLE #YC_T_MRP +END + +CREATE TABLE #YC_T_MRP( + FID INT IDENTITY(1,1), + FBOMNumber NVARCHAR(255), + FMATERIALID INT, + 物料编码 NVARCHAR(255), + 物料名称 NVARCHAR(255), + 成品率 DECIMAL(28,10) DEFAULT (0), + 分子 DECIMAL(28,10),--BOM分子 + 分母 DECIMAL(28,10),--BOM分母 + FQty DECIMAL(28,10),--用量 + FLevle INT, + FERPCLSID INT, + FProMaterialId INT, + FOrderNum NVARCHAR(255), + FBOMID INT, + BOM层级 NVARCHAR(200) NULL, + FSEQ1 INT, + FSEQ2 INT, + FSEQ3 INT, + FSEQ4 INT, + FSEQ5 INT, + FSEQ6 INT, + FParentNumber NVARCHAR(255) +) + +IF EXISTS(SELECT * FROM TEMPDB..SYSOBJECTS WHERE ID=OBJECT_ID('TEMPDB..#BOMTMP')) +BEGIN + DROP TABLE #BOMTMP +END + +/* 根据生产订单号,销售订单号,物料进行筛选对应的物料*/ +SELECT + t0.FBILLNO + ,t0.FID + ,t0e.FQTY + ,t0e.FENTRYID + ,t0e.FMATERIALID + ,t0e_a.FREPQUAQTY + --,t0e_a.FREQSRC --1.销售订单 + ,(CASE WHEN t1e.FSRCBILLNO is null THEN (CASE t0e_a.FREQSRC WHEN 1 THEN t0e.FSALEORDERNO ELSE '' END) ELSE t1e.FSRCBILLNO END) AS 'FSALEORDERNO' + INTO #TEMPMO +FROM + T_PRD_MO t0 + INNER JOIN T_PRD_MOENTRY t0e ON t0.FID = t0E.FID + INNER JOIN T_PRD_MOENTRY_A t0e_a ON t0e_a.FENTRYID = t0e.FENTRYID + LEFT JOIN T_SAL_DELIVERYNOTICEENTRY t1e ON t1e.FENTRYID = t0e.FSRCBILLENTRYID AND t0e.FSRCBILLID = t0e.FSALEORDERID +WHERE 1 = 1 + AND t0.FDOCUMENTSTATUS = 'C' + AND (t0e_a.FSTATUS < 5) + {2} + +/*取出所有审核状态的BOM,放入临时表中*/ +SELECT + ID=IDENTITY(INT,1,1) + ,T0.FID + ,T0.FNUMBER + ,T0.FMATERIALID + ,ROW_NUMBER() OVER(PARTITION BY T0.FMATERIALID ORDER BY t0.FID DESC) AS ROWID + ,t0.FDOCUMENTSTATUS + ,t0.FYIELDRATE + INTO #BOMTmp +FROM T_ENG_BOM T0 + INNER JOIN T_BD_MATERIAL TM ON t0.FMATERIALID=TM.FMATERIALID --物料表 +WHERE (t0.FDOCUMENTSTATUS = 'C') AND (t0.FFORBIDSTATUS='A') + --AND tm.FNUMBER = 'TSH182H000208O' + AND tm.FMATERIALID IN (SELECT DISTINCT FMATERIALID FROM #TEMPMO) +ORDER BY FMATERIALID,FNUMBER + +--/*在临时表中,同一个物料代码只保留一个最新版本的BOM*/ +DELETE FROM #BOMTmp WHERE ROWID != 1 + +--查询出第一级产成品信息 +INSERT INTO #YC_T_MRP( + FBOMNumber,FMATERIALID,物料编码,物料名称,成品率 + ,分子,分母,FQty,FLevle,FERPCLSID,FProMaterialId,FOrderNum + ,FBOMID,FSEQ1,FSEQ2,FSEQ3,FSEQ4,FSEQ5,FSEQ6,FParentNumber) +SELECT + t0.FNUMBER,T0.FMATERIALID,t1.FNUMBER '物料编码',t3.FNAME '物料名称',t0.FYIELDRATE '成品率' + ,1 '分子',1 '分母',1 'FQty','0' 'FLevle',T2.FERPCLSID 'FERPCLSID',t1.FMATERIALID,t1.FNUMBER '物料编码' + ,t0.FID 'FBOMID',0 'FSEQ1',0 'FSEQ2',0 'FSEQ3',0 'FSEQ4',0 'FSEQ5',0 'FSEQ6','' 'FParentNumber' +FROM T_ENG_BOM t0 + INNER JOIN T_BD_MATERIAL t1 ON t0.FMATERIALID=t1.FMATERIALID --物料表 + LEFT OUTER JOIN t_BD_MaterialBase t2 ON t1.FMATERIALID = t2.FMATERIALID --物料表 + LEFT OUTER JOIN T_BD_MATERIAL_L t3 ON (t1.FMATERIALID = t3.FMATERIALID AND t3.FLocaleId = 2052)--物料表 + INNER JOIN #BOMTmp t6 ON t0.FMATERIALID=t6.FMATERIALID AND t0.FNUMBER=t6.FNUMBER +WHERE 1=1 + AND (t0.FDOCUMENTSTATUS = 'C') +ORDER BY T0.FNUMBER + +--根据第一级产成品关联查询出第一级产成品下面的材料信息 +DECLARE @num INT,@level int,@LoopCount int +SET @num = 1 +SET @level =1 +SET @LoopCount = 0; + +INSERT INTO #YC_T_MRP( + FBOMNumber,FMATERIALID,物料编码,物料名称,成品率 + ,分子,分母,FQty,FLevle,FERPCLSID,FProMaterialId,FOrderNum + ,FBOMID,FSEQ1,FSEQ2,FSEQ3,FSEQ4,FSEQ5,FSEQ6,FParentNumber) +SELECT + t10.FNUMBER,t7.FMATERIALID,t7.FNUMBER '物料编码',T9.FNAME '物料名称',t10.FYIELDRATE '成品率' + ,t6.FNUMERATOR '分子',t6.FDENOMINATOR '分母',ROUND(t6.FNUMERATOR/t6.FDENOMINATOR,10) 'FQty' + ,@level AS 'FLevle',t8.FERPCLSID 'FERPCLSID',t5.FProMaterialId,T5.FOrderNum + ,0 'FBOMID',T5.FSEQ1 'FSEQ1',t6.FSEQ 'FSEQ2',0 'FSEQ3',0 'FSEQ4',0 'FSEQ5',0 'FSEQ6',t5.物料编码 'FParentNumber' +FROM #YC_T_MRP t5 + LEFT OUTER JOIN T_ENG_BOMCHILD t6 ON t5.FBOMID=t6.FID--BOM表分录 + INNER JOIN T_BD_MATERIAL t7 ON t6.FMATERIALID=t7.FMATERIALID --物料表 + LEFT OUTER JOIN t_BD_MaterialBase t8 ON t8.FMATERIALID = t7.FMATERIALID --物料表 + LEFT OUTER JOIN T_BD_MATERIAL_L t9 ON (t6.FMATERIALID = t9.FMATERIALID AND t9.FLocaleId = 2052)--物料表 + LEFT JOIN T_ENG_BOM t10 ON t10.FID=t6.FID--BOM表 +WHERE (t7.FFORBIDSTATUS = 'A') + AND T5.FLevle = 0 AND T5.FERPCLSID >= 2 + AND t10.FDOCUMENTSTATUS = 'C' + +WHILE (@num > 0 AND @LoopCount < 10) +BEGIN + + SELECT ID=IDENTITY(INT,1,1),T0.FID,T0.FNUMBER,T0.FMATERIALID + INTO #BOMTmp1 FROM #YC_T_MRP t1 + INNER JOIN T_ENG_BOM t0 ON t1.FMATERIALID=t0.FMATERIALID--BOM表头 + WHERE 1=1 AND (t0.FDOCUMENTSTATUS = 'C') AND (t0.FFORBIDSTATUS='A') AND T1.FLevle=@level AND T1.FERPCLSID>=2 + + DELETE FROM #BOMTmp1 WHERE id NOT IN (SELECT max(id) FROM #BOMTmp1 GROUP BY FMATERIALID) + + INSERT INTO #YC_T_MRP(FBOMNumber,FMATERIALID,物料编码,物料名称,成品率,分子,分母,FQty,FLevle + ,FERPCLSID,FProMaterialId,FOrderNum,FBOMID,FSEQ1,FSEQ2,FSEQ3,FSEQ4,FSEQ5,FSEQ6,FParentNumber) + SELECT t5.FNUMBER,t7.FMATERIALID,t7.FNUMBER '物料编码',T9.FNAME '物料名称',t5.FYIELDRATE '成品率' + ,t6.FNUMERATOR '分子',t6.FDENOMINATOR '分母',ROUND(t6.FNUMERATOR/t6.FDENOMINATOR,10) 'FQty' + ,@level + 1 AS 'FLevle',t8.FERPCLSID 'FERPCLSID',t1.FProMaterialId,T1.FOrderNum,0 'FBOMID' + ,t1.FSEQ1 'FSEQ1',t1.FSEQ2 'FSEQ2',t6.FSEQ 'FSEQ3',0 'FSEQ4',0 'FSEQ5',0 'FSEQ6',t1.物料编码 'FParentNumber' + FROM #YC_T_MRP t1 + INNER JOIN T_ENG_BOM t5 ON t1.FMATERIALID=t5.FMATERIALID--BOM表头 + LEFT OUTER JOIN T_ENG_BOMCHILD t6 ON t5.FID=t6.FID--BOM表分录 + INNER JOIN T_BD_MATERIAL t7 ON t6.FMATERIALID=t7.FMATERIALID --物料表 + LEFT OUTER JOIN t_BD_MaterialBase t8 ON t8.FMATERIALID = t7.FMATERIALID --物料表 + LEFT OUTER JOIN T_BD_MATERIAL_L t9 ON (t6.FMATERIALID = t9.FMATERIALID AND t9.FLocaleId = 2052)--物料表 + INNER JOIN #BOMTmp1 t10 ON t5.FMATERIALID=t10.FMATERIALID AND T5.FNUMBER=T10.FNUMBER + WHERE 1 = 1 AND (t7.FFORBIDSTATUS = 'A') AND T1.FLevle=@level AND T1.FERPCLSID>=2 AND t5.FDOCUMENTSTATUS = 'C' + + SET @num = @@ROWCOUNT + SET @level += 1 + SET @LoopCount += 1 + + DROP TABLE #BOMTmp1 + +END + +UPDATE #YC_T_MRP SET BOM层级 =REPLICATE('.',FLevle)++ convert(varchar(4),FLevle) + +--生产入库单 +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT + TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid, + ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate,TSE.FSTOCKID fstockid, + ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'生产入库单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, + TS.FBILLNO fbillno,0 fbaseqcqty,TSE.FBASEREALQTY fbaseinqty,0 fbaseoutqty +FROM T_PRD_INSTOCK TS + INNER JOIN T_PRD_INSTOCKENTRY TSE ON TSE.FID = TS.FID + LEFT OUTER JOIN T_PRD_INSTOCKENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + --((TS.FDATE >= '2019-07-01 00:00:00') AND (TS.FDATE <= '2019-11-12 23:59:59')) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) + AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND TS.FENTRUSTINSTOCKID = 0) + +--初始数据 + +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'初始数据',SUM(TSE.FBASEREALQTY) fbaseqcqty +FROM T_PRD_INSTOCK TS + INNER JOIN T_PRD_INSTOCKENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND TS.FENTRUSTINSTOCKID = 0) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '), + ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + +--入库单 +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE. +FSTOCKSTATUSID fstockstatusid,'入库单' fbillname, +TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty,TSE.FBASEUNITQTY fbaseinqty,0 fbaseoutqty +--t_STK_InStock +FROM T_STK_INSTOCK TS INNER JOIN T_STK_INSTOCKENTRY TSE ON TSE.FID = TS.FID + +INNER JOIN T_STK_INSTOCKENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_STK_INSTOCKFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +--((TS.FDATE >= '2019-07-01 00:00:00') AND (TS.FDATE <= '2019-11-12 23:59:59')) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND TSF.FISGENFORIOS = '0') +--初始数据 + +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'初始数据',SUM(TSE.FBASEUNITQTY) fbaseqcqty +FROM T_STK_INSTOCK TS INNER JOIN T_STK_INSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_INSTOCKFIN TSF ON TSE.FID = TSF.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (( +((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND TSF.FISGENFORIOS = '0') +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0), +ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE. +FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + + +--入库单 + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID, +FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FRECEIVEAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FRECEIVESTOCKID fstockid,ISNULL(TSE.FRECEIVESTOCKLOCID,0) fstocklocid,TSE.FRECEIVESTOCKSTATUS fstockstatusid,'入库单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty,0 fbaseinqty,TSE.FBASEUNITQTY fbaseoutqty +FROM T_STK_INSTOCK TS INNER JOIN T_STK_INSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_INSTOCKENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_STK_INSTOCKFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +--((TS.FDATE >= '2019-07-01 00:00:00')AND (TS.FDATE <= '2019-11-12 23:59:59')) +AND (TSE.FRECEIVESTOCKID > 0)) AND (TSE.FRECEIVESTOCKSTATUS > 0)) AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +AND TS.FCANCELSTATUS = 'A')) AND TSF.FISGENFORIOS = '0') + AND TSE.FRECEIVESTOCKFLAG = '1') + +--初始数据 + +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio, +TSE.FMATERIALID fmaterialid,ISNULL(TSE.FRECEIVEAUXPROPID,0) fauxpropid, +TSE.FRECEIVESTOCKID fstockid,ISNULL(TSE.FRECEIVESTOCKLOCID,0) fstocklocid, +TSE.FRECEIVESTOCKSTATUS fstockstatusid,'初始数据',(0 - SUM(TSE.FBASEUNITQTY)) fbaseqcqty + +FROM T_STK_INSTOCK TS INNER JOIN T_STK_INSTOCKENTRY TSE ON TSE.FID = TS.FID INNER JOIN T_STK_INSTOCKFIN TSF ON TSE.FID = TSF.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (TSE.FRECEIVESTOCKID > 0)) +AND (TSE.FRECEIVESTOCKSTATUS > 0)) AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +AND TS.FCANCELSTATUS = 'A')) AND TSF.FISGENFORIOS = '0') AND TSE.FRECEIVESTOCKFLAG = '1') +GROUP BY TS.FSTOCKORGID,TSE.FRECEIVEOWNERTYPEID,TSE.FRECEIVEOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FRECEIVEAUXPROPID,0), +ISNULL(TSE.FRECEIVELOT_TEXT,' '),ISNULL(TSE.FRECEIVEMTONO,' '),TSE.FRECEIVESTOCKID,ISNULL(TSE.FRECEIVESTOCKLOCID,0), +TSE.FRECEIVESTOCKSTATUS,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--生产领料单 + + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID, +FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) +--生产领料单 +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid, +ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'生产领料单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno, +0 fbaseqcqty,0 fbaseinqty,TSED.FBASESTOCKACTUALQTY fbaseoutqty +FROM T_PRD_PICKMTRL TS INNER JOIN T_PRD_PICKMTRLDATA TSE ON TSE.FID = TS.FID +INNER JOIN T_PRD_PICKMTRLDATA_A TSED ON TSED.FENTRYID = TSE.FENTRYID +LEFT OUTER JOIN T_PRD_PICKMTRLDATA_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND + TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + +--初始数据 + +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid, +ISNULL(TSE.FAUXPROPID,0) fauxpropid,TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid, +TSE.FSTOCKSTATUSID fstockstatusid,'初始数据',SUM(0 - TSED.FBASESTOCKACTUALQTY) fbaseqcqty + +FROM T_PRD_PICKMTRL TS INNER JOIN T_PRD_PICKMTRLDATA TSE ON TSE.FID = TS.FID +INNER JOIN T_PRD_PICKMTRLDATA_A TSED ON TSED.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ( +((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A')AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSED.FOWNERTYPEID,TSED.FOWNERID,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '), + ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSED.FKEEPERTYPEID, + TSED.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0),TS.FDATE + +--销售出库单 + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'销售出库单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno, +0 fbaseqcqty,0 fbaseinqty,TSE.FBASEUNITQTY fbaseoutqty +FROM T_SAL_OUTSTOCK TS INNER JOIN T_SAL_OUTSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_SAL_OUTSTOCKENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_SAL_OUTSTOCKFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_MATERIALBASE TMB ON TSE.FMATERIALID = TMB.FMATERIALID +INNER JOIN T_SAL_OUTSTOCKENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND (TSEF.FRowType = 'Son' OR TSEF.FRowType = 'Standard')) +AND TSF.FISGENFORIOS = '0') AND (TMB.FERPCLSID <> '6')) +--AND TS.FBILLNO='SA1907050103' + + +--初始数据 +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid, + ISNULL(TSE.FAUXPROPID,0) fauxpropid,TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid, + TSE.FSTOCKSTATUSID fstockstatusid, + '初始数据',SUM(0 - TSE.FBASEUNITQTY) fbaseqcqty + FROM T_SAL_OUTSTOCK TS INNER JOIN T_SAL_OUTSTOCKENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_SAL_OUTSTOCKENTRY_F TSEF ON TSE.FENTRYID = TSEF.FENTRYID + INNER JOIN T_SAL_OUTSTOCKFIN TSF ON TSE.FID = TSF.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_MATERIALBASE TMB ON TSE.FMATERIALID = TMB.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((( + ((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') + AND TS.FCANCELSTATUS = 'A')) AND (TSEF.FRowType = 'Son' OR TSEF.FRowType = 'Standard')) AND TSF.FISGENFORIOS = '0') AND (TMB.FERPCLSID <> '6')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '), + ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE, + TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--生产补料单 +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'生产补料单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty,0 fbaseinqty,TSEQ.FBASESTOCKACTUALQTY fbaseoutqty +FROM T_PRD_FEEDMTRL TS +INNER JOIN T_PRD_FEEDMTRLDATA TSE ON TSE.FID = TS.FID +INNER JOIN T_PRD_FEEDMTRLDATA_Q TSEQ ON (TSE.FID = TSEQ.FID AND TSE.FENTRYID = TSEQ.FENTRYID) +LEFT OUTER JOIN T_PRD_FEEDMTRLDATA_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +--AND ts.FBILLNO IN ('M31910140010','M31907010006') + + +--初始数据 + +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid, +ISNULL(TSE.FAUXPROPID,0) fauxpropid,TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid, + TSE.FSTOCKSTATUSID fstockstatusid,'初始数据' fbillname,SUM(0 - TSEQ.FBASESTOCKACTUALQTY) fbaseqcqty + FROM T_PRD_FEEDMTRL TS INNER JOIN T_PRD_FEEDMTRLDATA TSE ON TSE.FID = TS.FID + INNER JOIN T_PRD_FEEDMTRLDATA_Q TSEQ ON (TSE.FID = TSEQ.FID AND TSE.FENTRYID = TSEQ.FENTRYID) + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) + AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '), + TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--生产退料单 +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid, +ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'生产退料单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty,0 fbaseinqty,(0 - TSEA.FBASESTOCKQTY) fbaseoutqty +FROM T_PRD_RETURNMTRL TS +INNER JOIN T_PRD_RETURNMTRLENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_PRD_RETURNMTRLENTRY_A TSEA ON TSE.FENTRYID = TSEA.FENTRYID +LEFT OUTER JOIN T_PRD_RETURNMTRLENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +AND TS.FCANCELSTATUS = 'A')) +--AND ts.FBILLNO='M21907200004' + + +--初始数据 +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'初始数据',SUM(TSEA.FBASESTOCKQTY) fbaseqcqty + FROM T_PRD_RETURNMTRL TS INNER JOIN T_PRD_RETURNMTRLENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_PRD_RETURNMTRLENTRY_A TSEA ON TSE.FENTRYID = TSEA.FENTRYID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0), + ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID, + TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--退料单 +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid, +0 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'退料单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno, +0 fbaseqcqty,(0 - TSE.FBASEUNITQTY) fbaseinqty,0 fbaseoutqty +FROM T_PUR_MRB TS INNER JOIN T_PUR_MRBENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_PUR_MRBENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_PUR_MRBFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_MATERIALBASE TMB ON TM.FMATERIALID = TMB.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND (TSE.FSTOCKID > 0)) +AND TSF.FISGENFORIOS = '0') AND (TSE.FSTOCKFLAG = '1' OR ((TS.FMRTYPE = 'B' AND TMB.FISINVENTORY = '1') AND (TSE.FStockStatusId <> TSE.FReceiveStockStatusId)))) + + +--初始数据 +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid, +ISNULL(TSE.FAUXPROPID,0) fauxpropid,TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'初始数据',SUM(0 - TSE.FBASEUNITQTY) fbaseqcqty +FROM T_PUR_MRB TS INNER JOIN T_PUR_MRBENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_PUR_MRBFIN TSF ON TSE.FID = TSF.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_MATERIALBASE TMB ON TM.FMATERIALID = TMB.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) + AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND (TSE.FSTOCKID > 0)) + AND TSF.FISGENFORIOS = '0') AND (TSE.FSTOCKFLAG = '1' OR ((TS.FMRTYPE= 'B' AND TMB.FISINVENTORY = '1') + AND (TSE.FStockStatusId <> TSE.FReceiveStockStatusId)))) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0), + ISNULL(TSE.FLOT_TEXT,''),ISNULL(TSE.FMTONO,''),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID, + TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--收料单 库存更新标志 FSTOCKFLAG 0:未更新 1:已更新 + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'收料单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty,TSE.FBASEUNITQTY fbaseinqty,0 fbaseoutqty +FROM T_PUR_RECEIVE TS INNER JOIN T_PUR_RECEIVEENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_PUR_RECEIVEENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_PUR_RECEIVEFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_MATERIALBASE TMB ON TMB.FMaterialId = TSE.FMaterialId + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND TMB.FISINVENTORY = '1') +AND (TSE.FSTOCKID > 0)) AND TSE.FSTOCKFLAG = '1') + +--初始数据 +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'初始数据',SUM(TSE.FBASEUNITQTY) fbaseqcqty + +FROM T_PUR_RECEIVE TS +INNER JOIN T_PUR_RECEIVEENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +AND TS.FCANCELSTATUS = 'A')) AND (TSE.FSTOCKID > 0)) AND TSE.FSTOCKFLAG = '1') +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0), + ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID, + TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + + +--销售退货单 + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +--销售退货单 +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio, +TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'销售退货单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty,0 fbaseinqty,(0 - TSE.FBASEUNITQTY) fbaseoutqty +FROM T_SAL_RETURNSTOCK TS INNER JOIN T_SAL_RETURNSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_SAL_RETURNSTOCKENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_SAL_RETURNSTOCKFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_MATERIALBASE TMB ON TSE.FMATERIALID = TMB.FMATERIALID INNER JOIN T_SAL_RETURNSTOCKENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +AND (TSEF.FRowType = 'Son' OR TSEF.FRowType = 'Standard')) AND TSF.FISGENFORIOS = '0') AND (TMB.FERPCLSID <> '6')) + +--AND TS.FBILLNO ='SB1908230003' + +--初始数据 +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid, +ISNULL(TSE.FAUXPROPID,0) fauxpropid,TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid, + TSE.FSTOCKSTATUSID fstockstatusid,'初始数据',SUM(TSE.FBASEUNITQTY) fbaseqcqty + FROM T_SAL_RETURNSTOCK TS INNER JOIN T_SAL_RETURNSTOCKENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_SAL_RETURNSTOCKENTRY_F TSEF ON TSE.FENTRYID = TSEF.FENTRYID + INNER JOIN T_SAL_RETURNSTOCKFIN TSF ON TSE.FID = TSF.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_MATERIALBASE TMB ON TSE.FMATERIALID = TMB.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE ((((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') + AND TS.FCANCELSTATUS = 'A')) AND (TSEF.FRowType = 'Son' OR TSEF.FRowType = 'Standard')) AND TSF.FISGENFORIOS = '0') AND (TMB.FERPCLSID <> '6')) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0), +ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID, +TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + + + +--简单生产入库单 +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'简单生产入库单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty,TSE.FBASEREALQTY fbaseinqty,0 fbaseoutqty +FROM T_SP_INSTOCK TS INNER JOIN T_SP_INSTOCKENTRY TSE ON TSE.FID = TS.FID +LEFT OUTER JOIN T_SP_INSTOCKENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + +--初始数据 +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'初始数据',SUM(TSE.FBASEREALQTY) fbaseqcqty +FROM T_SP_INSTOCK TS INNER JOIN T_SP_INSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0), +ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID, +TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--简单生产领料单 + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'简单生产领料单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty,0 fbaseinqty,TSE.FBASEACTUALQTY fbaseoutqty + +FROM T_SP_PICKMTRL TS INNER JOIN T_SP_PICKMTRLDATA TSE ON TSE.FID = TS.FID +LEFT OUTER JOIN T_SP_PICKMTRLDATA_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + +--初始数据 +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'初始数据',(0 - SUM(TSE.FBASEACTUALQTY)) fbaseqcqty +FROM T_SP_PICKMTRL TS INNER JOIN T_SP_PICKMTRLDATA TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID, +ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + +--简单生产退料单 + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid, + 0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'简单生产退料单' fbillname,TS.FID fbillid,TSE.FSEQ + fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty,0 fbaseinqty,(0 - TSE.FBASEQTY) fbaseoutqty + +FROM T_SP_RETURNMTRL TS INNER JOIN T_SP_RETURNMTRLENTRY TSE ON TSE.FID = TS.FID +LEFT OUTER JOIN T_SP_RETURNMTRLENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + +--初始数据 +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'初始数据',SUM(TSE.FBASEQTY) fbaseqcqty +FROM T_SP_RETURNMTRL TS INNER JOIN T_SP_RETURNMTRLENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0), + TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + +--组装拆卸单 + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,CASE WHEN UPPER(TS.FAFFAIRTYPE) = 'ASSEMBLY' THEN 'I' ELSE 'O' END fstockio, +TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate,TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid, +TSE.FSTOCKSTATUSID fstockstatusid,'组装拆卸单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty, +CASE WHEN UPPER(TS.FAFFAIRTYPE) = 'ASSEMBLY' THEN TSE.FBASEQTY ELSE 0 END fbaseinqty,CASE WHEN UPPER(TS.FAFFAIRTYPE) = 'DASSEMBLY' THEN TSE.FBASEQTY ELSE 0 END fbaseoutqty +FROM T_STK_ASSEMBLY TS INNER JOIN T_STK_ASSEMBLYPRODUCT TSE ON TSE.FID = TS.FID +LEFT OUTER JOIN T_STK_ASSEMBLYPRODUCT_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE +(((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + +--初始数据 +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'初始数据', + SUM(CASE WHEN UPPER(TS.FAFFAIRTYPE) = 'ASSEMBLY' THEN TSE.FBASEQTY ELSE (0 - TSE.FBASEQTY) END) fbaseqcqty + + FROM T_STK_ASSEMBLY TS INNER JOIN T_STK_ASSEMBLYPRODUCT TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID, + TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--组装拆卸单 + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FDETAILID fbillentryid,0 forderby,CASE WHEN UPPER(TS.FAFFAIRTYPE) = 'DASSEMBLY' THEN 'I' ELSE 'O' END fstockio, +TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate,TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid, +TSE.FSTOCKSTATUSID fstockstatusid,'组装拆卸单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty, + +CASE WHEN UPPER(TS.FAFFAIRTYPE) = 'ASSEMBLY' THEN 0 ELSE TSE.FBASEQTY END fbaseinqty,CASE WHEN UPPER(TS.FAFFAIRTYPE) = 'DASSEMBLY' THEN 0 ELSE TSE.FBASEQTY END fbaseoutqty +FROM T_STK_ASSEMBLY TS INNER JOIN T_STK_ASSEMBLYPRODUCT TSEH ON TSEH.FID = TS.FID +INNER JOIN T_STK_ASSEMBLYSUBITEM TSE ON TSE.FENTRYID = TSEH.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +LEFT OUTER JOIN T_STK_ASSEMBLYPRODUCT_R TSR ON TSR.FENTRYID = TSE.FENTRYID + +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + --初始数据 +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid, + ISNULL(TSE.FAUXPROPID,0) fauxpropid,TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid, + TSE.FSTOCKSTATUSID fstockstatusid,'初始数据',SUM(CASE WHEN UPPER(TS.FAFFAIRTYPE) = 'DASSEMBLY' THEN TSE.FBASEQTY ELSE (0 - TSE.FBASEQTY) END) fbaseqcqty + FROM T_STK_ASSEMBLY TS INNER JOIN T_STK_ASSEMBLYPRODUCT TSEH ON TSEH.FID = TS.FID + INNER JOIN T_STK_ASSEMBLYSUBITEM TSE ON TSE.FENTRYID = TSEH.FENTRYID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '), + ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID, + TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0),TS.FDATE + + + +--批号调整单 + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'A' THEN 'O' ELSE 'I' END fstockio, +TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate,TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid, +TSE.FSTOCKSTATUSID fstockstatusid,'批号调整单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty, +CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'B' THEN TSE.FBASEQTY ELSE 0 END fbaseinqty,CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'A' THEN TSE.FBASEQTY ELSE 0 END fbaseoutqty +FROM T_STK_LOTADJUST TS INNER JOIN T_STK_LOTADJUSTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +--((TS.FDATE >= '2019-07-01 00:00:00') AND (TS.FDATE <= '2019-11-12 23:59:59')) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + + + --初始数据 +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, + '初始数据',SUM(CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'B' THEN TSE.FBASEQTY ELSE (0 - TSE.FBASEQTY) END) fbaseqcqty + +FROM T_STK_LOTADJUST TS INNER JOIN T_STK_LOTADJUSTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '), + ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE, + ISNULL(TSE.FBOMID,0) + + + +--其他入库单 + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'其他入库单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno, +0 fbaseqcqty,CASE WHEN TS.FSTOCKDIRECT = 'GENERAL' THEN TSE.FBASEQTY ELSE (0 - TSE.FBASEQTY) END fbaseinqty,0 fbaseoutqty + +FROM T_STK_MISCELLANEOUS TS INNER JOIN T_STK_MISCELLANEOUSENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_MISCELLANEOUSENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +--((TS.FDATE >= '2019-07-01 00:00:00') AND (TS.FDATE<= '2019-11-12 23:59:59')) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + --初始数据 + +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'初始数据', + SUM(CASE WHEN TS.FSTOCKDIRECT = 'GENERAL' THEN TSE.FBASEQTY ELSE (0 - TSE.FBASEQTY) END) fbaseqcqty + FROM T_STK_MISCELLANEOUS TS INNER JOIN T_STK_MISCELLANEOUSENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0), +ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID, +ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + + +--其他出库单 + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'其他出库单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno, +0 fbaseqcqty,0 fbaseinqty,CASE WHEN TS.FSTOCKDIRECT = 'GENERAL' THEN TSE.FBASEQTY ELSE (0 - TSE.FBASEQTY) END fbaseoutqty +FROM T_STK_MISDELIVERY TS +INNER JOIN T_STK_MISDELIVERYENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_MISDELIVERYENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + --初始数据 +INSERT INTO #TMP (FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'初始数据', + SUM(CASE WHEN TS.FSTOCKDIRECT = 'GENERAL' THEN (0 - TSE.FBASEQTY) ELSE TSE.FBASEQTY END) fbaseqcqty + FROM T_STK_MISDELIVERY TS INNER JOIN T_STK_MISDELIVERYENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0), + TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--受托加工材料入库单 + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'受托加工材料入库单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty,FBASEQTY fbaseinqty,0 fbaseoutqty +FROM T_STK_OEMINSTOCK TS +INNER JOIN T_STK_OEMINSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_OEMINSTOCKENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +--((TS.FDATE >= '2019-07-01 00:00:00') AND (TS.FDATE <= '2019-11-12 23:59:59')) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + --初始数据 +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid, +ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'初始数据',SUM(FBASEQTY) fbaseqcqty +FROM T_STK_OEMINSTOCK TS INNER JOIN T_STK_OEMINSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID, +TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--受托加工材料退料单 + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'受托加工材料退料单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty,(0 - FBASEQTY) fbaseinqty,0 fbaseoutqty + +FROM T_STK_OEMINSTOCKRTN TS +INNER JOIN T_STK_OEMINSTOCKRTNENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_OEMINSTOCKRTNENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND FRETURNTYPE = 'StockReMat') + + --初始数据 +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'',(0 - SUM(FBASEQTY)) fbaseqcqty + FROM T_STK_OEMINSTOCKRTN TS INNER JOIN T_STK_OEMINSTOCKRTNENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE ((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + AND FRETURNTYPE = 'StockReMat') + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID, + ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0), + TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + +--形态转换单 + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'A' THEN 'O' ELSE 'I' END fstockio,TSE.FMATERIALID fmaterialid, +ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate,TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'形态转换单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty, +CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'B' THEN TSE.FBASEQTY ELSE 0 END fbaseinqty,CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'A' THEN TSE.FBASEQTY ELSE 0 END fbaseoutqty +FROM T_STK_STATUSCONVERT TS +INNER JOIN T_STK_STATUSCONVERTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + + +--初始数据 +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'初始数据', +SUM(CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'B' THEN TSE.FBASEQTY ELSE (0 - TSE.FBASEQTY) END) fbaseqcqty +FROM T_STK_STATUSCONVERT TS INNER JOIN T_STK_STATUSCONVERTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0), +ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID, +TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--库存状态转换单 + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby, +CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'A' THEN 'O' ELSE 'I' END fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'库存状态转换单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty, +CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'B' THEN TSE.FBASEQTY ELSE 0 END fbaseinqty, +CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'A' THEN TSE.FBASEQTY ELSE 0 END fbaseoutqty +FROM T_STK_STOCKCONVERT TS INNER JOIN T_STK_STOCKCONVERTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_STOCKCONVERTENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + +--初始数据 +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'初始数据', +SUM(CASE WHEN UPPER(TSE.FCONVERTTYPE) = 'B' THEN TSE.FBASEQTY ELSE (0 - TSE.FBASEQTY) END) fbaseqcqty +FROM T_STK_STOCKCONVERT TS INNER JOIN T_STK_STOCKCONVERTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0), +TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + + +--盘盈单 + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'盘盈单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty,TSE.FBASEGAINQTY fbaseinqty,0 fbaseoutqty +FROM T_STK_STKCOUNTGAIN TS +INNER JOIN T_STK_STKCOUNTGAINENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND ((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A')) + + +--初始数据 +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'初始数据',SUM(TSE.FBASEGAINQTY) fbaseqcqty +FROM T_STK_STKCOUNTGAIN TS INNER JOIN T_STK_STKCOUNTGAINENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND ((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0), +ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID, +TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + + +--盘亏单 + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'盘亏单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno, +0 fbaseqcqty,0 fbaseinqty,TSE.FBASELOSSQTY fbaseoutqty +FROM T_STK_STKCOUNTLOSS TS INNER JOIN T_STK_STKCOUNTLOSSENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND ((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A')) + + + +--初始数据 +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, + '初始数据',SUM(0 - TSE.FBASELOSSQTY) fbaseqcqty + FROM T_STK_STKCOUNTLOSS TS INNER JOIN T_STK_STKCOUNTLOSSENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND ((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID, + ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--直接调拨单 + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 'I' ELSE 'O' END fstockio, +TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate,TSE.FDESTSTOCKID fstockid,ISNULL(TSE.FDESTSTOCKLOCID,0) fstocklocid, +TSE.FDESTSTOCKSTATUSID fstockstatusid,'直接调拨单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty, +CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN TSE.FBASEQTY ELSE 0 END fbaseinqty,CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'RETURN' THEN (0 - TSE.FBASEQTY) ELSE 0 END fbaseoutqty + +FROM T_STK_STKTRANSFERIN TS INNER JOIN T_STK_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_STKTRANSFERINENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FDESTSTOCKID = TBS.FSTOCKID + + +WHERE (((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) AND TS +.FOBJECTTYPEID = 'STK_TransferDirect') + + + +--初始数据 + +--初始数据 +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid, +ISNULL(TSE.FAUXPROPID,0) fauxpropid,TSE.FDESTSTOCKID fstockid, +ISNULL(TSE.FDESTSTOCKLOCID,0) fstocklocid,TSE.FDESTSTOCKSTATUSID fstockstatusid,'初始数据', +SUM(CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN TSE.FBASEQTY ELSE 0 END - +CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 0 ELSE (0 - TSE.FBASEQTY) END) fbaseqcqty +FROM T_STK_STKTRANSFERIN TS INNER JOIN T_STK_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FDESTSTOCKID = TBS.FSTOCKID +WHERE (((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +AND (TS.FISGENFORIOS <> '1')) AND TS.FOBJECTTYPEID = 'STK_TransferDirect') +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0), +ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FDESTSTOCKID,ISNULL(TSE.FDESTSTOCKLOCID,0), +TSE.FDESTSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,TSE.FBOMID,TS.FDATE + + + +--直接调拨单 + + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID, +FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKOUTORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby, +CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 'O' ELSE 'I' END fstockio, +TSE.FSRCMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSRCSTOCKID fstockid,ISNULL(TSE.FSRCSTOCKLOCID,0) fstocklocid,TSE.FSRCSTOCKSTATUSID fstockstatusid, +'直接调拨单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty, +CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 0 ELSE (0 - TSE.FBASEQTY) END fbaseinqty, +CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN TSE.FBASEQTY ELSE 0 END fbaseoutqty +FROM T_STK_STKTRANSFERIN TS INNER JOIN T_STK_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_STKTRANSFERINENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FSRCMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID +WHERE (((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKOUTORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) AND TS.FOBJECTTYPEID = 'STK_TransferDirect') + + + +--初始数据 +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKOUTORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio, +TSE.FSRCMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSRCSTOCKID fstockid,ISNULL(TSE.FSRCSTOCKLOCID,0) fstocklocid,TSE.FSRCSTOCKSTATUSID fstockstatusid,'初始数据', + +SUM(CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 0 ELSE (0 - TSE.FBASEQTY) END - +CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN TSE.FBASEQTY ELSE 0 END) fbaseqcqty + + +FROM T_STK_STKTRANSFERIN TS INNER JOIN T_STK_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FSRCMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID +WHERE (((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKOUTORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +AND (TS.FISGENFORIOS <> '1')) AND TS.FOBJECTTYPEID = 'STK_TransferDirect') +GROUP BY TS.FSTOCKOUTORGID,TSE.FOWNERTYPEOUTID,TSE.FOWNEROUTID,TSE.FSRCMATERIALID,ISNULL(TSE.FAUXPROPID,0), +ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSRCSTOCKID,ISNULL(TSE.FSRCSTOCKLOCID,0),TSE.FSRCSTOCKSTATUSID, +TSE.FKEEPERTYPEOUTID,TSE.FKEEPEROUTID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,TSE.FSRCBOMID,TS.FDATE + + +--分步式调入单 + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 'I' ELSE 'O' END fstockio, +TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate,TSE.FDESTSTOCKID fstockid,ISNULL(TSE.FDESTSTOCKLOCID,0) fstocklocid, +TSE.FDESTSTOCKSTATUSID fstockstatusid,'分步式调入单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno, +0 fbaseqcqty,CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GEN +ERAL' THEN TSE.FBASEQTY ELSE 0 END fbaseinqty, +CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'RETURN' THEN (0 - TSE.FBASEQTY) ELSE 0 END fbaseoutqty + +FROM T_STK_STKTRANSFERIN TS INNER JOIN T_STK_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_STKTRANSFERINENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FDESTSTOCKID = TBS.FSTOCKID +WHERE (((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) AND TS.FOBJECTTYPEID = 'STK_TRANSFERIN') + + + +--初始数据 +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FDESTSTOCKID fstockid,ISNULL(TSE.FDESTSTOCKLOCID,0) fstocklocid,TSE.FDESTSTOCKSTATUSID fstockstatusid,'初始数据', + SUM(TSE.FBASEQTY) fbaseqcqty + FROM T_STK_STKTRANSFERIN TS INNER JOIN T_STK_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FDESTSTOCKID = TBS.FSTOCKID + WHERE (((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + AND (TS.FISGENFORIOS <> '1')) AND TS.FOBJECTTYPEID = 'STK_TRANSFERIN') + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FDESTLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FDESTSTOCKID,ISNULL(TSE.FDESTSTOCKLOCID,0),TSE.FDESTSTOCKSTATUSID, + TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,TSE.FBOMID,TS.FDATE + +--分步式调入单 + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKOUTORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FSRCMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSRCSTOCKID fstockid,ISNULL(TSE.FSRCSTOCKLOCID,0) fstocklocid,TSE.FSRCSTOCKSTATUSID fstockstatusid,'分步式调入单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty,((0 - TSE.FBASEQTY) - TSET.FBASEPATHLOSSQTY) fbaseinqty,0 fbaseoutqty +FROM T_STK_STKTRANSFERIN TS INNER JOIN T_STK_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_STKTRANSFERINENTRY_T TSET ON TSE.FENTRYID = TSET.FENTRYID +INNER JOIN T_STK_STKTRANSFERINENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FSRCMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID +WHERE ((((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKOUTORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) +AND TS.FVESTONWAY = 'A') AND TS.FOBJECTTYPEID = 'STK_TRANSFERIN') + + + + + +--初始数据 +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + SELECT TS.FSTOCKOUTORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FSRCMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSRCSTOCKID fstockid,ISNULL(TSE.FSRCSTOCKLOCID,0) fstocklocid,TSE.FSRCSTOCKSTATUSID fstockstatusid,'',SUM((0 - TSE.FBASEQTY) - TSET.FBASEPATHLOSSQTY) fbaseqcqty + FROM T_STK_STKTRANSFERIN TS INNER JOIN T_STK_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_STK_STKTRANSFERINENTRY_T TSET ON TSE.FENTRYID = TSET.FENTRYID + INNER JOIN T_BD_MATERIAL TM ON TSE.FSRCMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID + WHERE ((((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKOUTORGID IN (1) + AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) + AND TS.FVESTONWAY = 'A') AND TS.FOBJECTTYPEID = 'STK_TRANSFERIN') + GROUP BY TS.FSTOCKOUTORGID,TSE.FOWNERTYPEOUTID,TSE.FOWNEROUTID,TSE.FSRCMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FSRCMTONO,' '), + TSE.FSRCSTOCKID,ISNULL(TSE.FSRCSTOCKLOCID,0),TSE.FSRCSTOCKSTATUSID,TSE.FKEEPERTYPEOUTID,TSE.FKEEPEROUTID,TSE.FSRCPRODUCEDATE,TSE.FSRCEXPIRYDATE,TSE.FSRCBOMID,TS.FDATE + +--分步式调出单 + + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 'O' ELSE 'I' END fstockio, +TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate,TSE.FSRCSTOCKID fstockid,ISNULL(TSE.FSRCSTOCKLOCID,0) fstocklocid, +TSE.FSRCSTOCKSTATUSID fstockstatusid,'分步式调出单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty, +CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'RETURN' THEN (0 - TSE.FBASEQTY) ELSE 0 END fbaseinqty, +CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN TSE.FBASEQTY ELSE 0 END fbaseoutqty + +FROM T_STK_STKTRANSFEROUT TS INNER JOIN T_STK_STKTRANSFEROUTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_STKTRANSFEROUTENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID +WHERE ((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) + + + +--初始数据 +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSRCSTOCKID fstockid,ISNULL(TSE.FSRCSTOCKLOCID,0) fstocklocid,TSE.FSRCSTOCKSTATUSID fstockstatusid, + '初始数据',SUM(0 - TSE.FBASEQTY) fbaseqcqty + FROM T_STK_STKTRANSFEROUTENTRY TSE INNER JOIN T_STK_STKTRANSFEROUT TS ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON +TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID + WHERE ((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '), + ISNULL(TSE.FMTONO,' '),TSE.FSRCSTOCKID,ISNULL(TSE.FSRCSTOCKLOCID,0),TSE.FSRCSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID, + TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,TSE.FBOMID,TS.FDATE + +--分步式调出单 + + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSRCSTOCKID fstockid,ISNULL(TSE.FSRCSTOCKLOCID,0) fstocklocid,TSE.FDESTSTOCKSTATUSID fstockstatusid, +'分步式调出单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty,TSE.FBASEQTY fbaseinqty,0 fbaseoutqty +FROM T_STK_STKTRANSFEROUT TS INNER JOIN T_STK_STKTRANSFEROUTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_STKTRANSFEROUTENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID +WHERE (((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) AND TS.FVESTONWAY = 'A') + + --初始数据 +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSRCSTOCKID fstockid,ISNULL(TSE.FSRCSTOCKLOCID,0) fstocklocid,TSE.FDESTSTOCKSTATUSID fstockstatusid, + '初始数据',SUM(TSE.FBASEQTY) fbaseqcqty + FROM T_STK_STKTRANSFEROUT TS INNER JOIN T_STK_STKTRANSFEROUTENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID + WHERE (((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + AND (TS.FISGENFORIOS <> '1')) AND TS.FVESTONWAY = 'A') + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSRCSTOCKID,ISNULL(TSE.FSRCSTOCKLOCID,0), + TSE.FDESTSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,TSE.FBOMID,TS.FDATE + + +--分步式调出单 + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKINORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FDESTMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate,TSE.FDESTSTOCKID fstockid, +ISNULL(TSE.FDESTSTOCKLOCID,0) fstocklocid,TSE.FDESTSTOCKSTATUSID fstockstatusid, +'分步式调出单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty,TSE.FBASEQTY fbaseinqty,0 fbaseoutqty +FROM T_STK_STKTRANSFEROUT TS INNER JOIN T_STK_STKTRANSFEROUTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_STK_STKTRANSFEROUTENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FDESTMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FDESTSTOCKID = TBS.FSTOCKID + +WHERE (((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKINORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +AND (TS.FISGENFORIOS <> '1')) AND TS.FVESTONWAY = 'B') + + +--初始数据 +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKINORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FDESTMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FDESTSTOCKID fstockid,ISNULL(TSE.FDESTSTOCKLOCID,0) fstocklocid,TSE.FDESTSTOCKSTATUSID fstockstatusid, +'初始数据',SUM(TSE.FBASEQTY) fbaseqcqty +FROM T_STK_STKTRANSFEROUT TS INNER JOIN T_STK_STKTRANSFEROUTENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FDESTMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FDESTSTOCKID = TBS.FSTOCKID +WHERE (((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKINORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) AND (TS.FISGENFORIOS <> '1')) AND TS.FVESTONWAY = 'B') +GROUP BY TS.FSTOCKINORGID,TSE.FOWNERTYPEINID,TSE.FOWNERINID,TSE.FDESTMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FDESTLOT_TEXT,' '),ISNULL(TSE.FDESTMTONO,' '),TSE.FDESTSTOCKID, +ISNULL(TSE.FDESTSTOCKLOCID,0),TSE.FDESTSTOCKSTATUSID,TSE.FKEEPERTYPEINID,TSE.FKEEPERINID,TSE.FDESTPRODUCEDATE,TSE.FDESTEXPIRYDATE,ISNULL(TSE.FDESTBOMID,0),TS.FDATE + + + +--生产线在制仓库调拨单 + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 'I' ELSE 'O' END fstockio, +TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate,TSE.FDESTSTOCKID fstockid,ISNULL(TSE.FDESTSTOCKLOCID,0) fstocklocid, +TSE.FDESTSTOCKSTATUSID fstockstatusid,'生产线在制仓库调拨单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno, + 0 fbaseqcqty,CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN TSE.FBASEQTY ELSE 0 END fbaseinqty, + CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'RETURN' THEN (0 - TSE.FBASEQTY) ELSE 0 END fbaseoutqty +FROM T_REM_STKTRANSFERIN TS INNER JOIN T_REM_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_REM_STKTRANSFERINENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FDESTSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + --初始数据 +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FDESTSTOCKID fstockid,ISNULL(TSE.FDESTSTOCKLOCID,0) fstocklocid,TSE.FDESTSTOCKSTATUSID fstockstatusid,'初始数据', + SUM(CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN TSE.FBASEQTY ELSE 0 END - CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 0 ELSE (0 - TSE.FBASEQTY) END) fbaseqcqty + + FROM T_REM_STKTRANSFERIN TS INNER JOIN T_REM_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FDESTSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FDESTLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '), + TSE.FDESTSTOCKID,ISNULL(TSE.FDESTSTOCKLOCID,0),TSE.FDESTSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,TSE.FBOMID,TS.FDATE + + + + --生产线在制仓库调拨单 + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKOUTORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 'O' ELSE 'I' END fstockio, +TSE.FSRCMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate,TSE.FSRCSTOCKID fstockid,ISNULL(TSE.FSRCSTOCKLOCID,0) fstocklocid, + TSE.FSRCSTOCKSTATUSID fstockstatusid, + '生产线在制仓库调拨单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty, + CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 0 ELSE (0 - TSE.FBASEQTY) END fbaseinqty, + CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN TSE.FBASEQTY ELSE 0 END fbaseoutqty + FROM T_REM_STKTRANSFERIN TS + INNER JOIN T_REM_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_REM_STKTRANSFERINENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID + INNER JOIN T_BD_MATERIAL TM ON TSE.FSRCMATERIALID = TM.FMATERIALID + + INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKOUTORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + --初始数据 +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKOUTORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FSRCMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSRCSTOCKID fstockid,ISNULL(TSE.FSRCSTOCKLOCID,0) fstocklocid,TSE.FSRCSTOCKSTATUSID fstockstatusid,'初始数据', + SUM(CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN 0 ELSE (0 - TSE.FBASEQTY) END - CASE WHEN UPPER(TS.FTRANSFERDIRECT) = 'GENERAL' THEN TSE.FBASEQTY ELSE 0 END) fbaseqcqty + FROM T_REM_STKTRANSFERIN TS INNER JOIN T_REM_STKTRANSFERINENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FSRCMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSRCSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKOUTORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) + AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKOUTORGID,TSE.FOWNERTYPEOUTID,TSE.FOWNEROUTID,TSE.FSRCMATERIALID,ISNULL(TSE.FAUXPROPID,0), +ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSRCSTOCKID,ISNULL(TSE.FSRCSTOCKLOCID,0),TSE.FSRCSTOCKSTATUSID,TSE.FKEEPERTYPEOUTID,TSE.FKEEPEROUTID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,TSE.FSRCBOMID,TS.FDATE + + +--委外补料单 + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'委外补料单' fbillname,TS.FID fbillid, +TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty,0 fbaseinqty,TSEQ.FBASESTOCKACTUALQTY fbaseoutqty +FROM T_SUB_FEEDMTRL TS INNER JOIN T_SUB_FEEDMTRLENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_SUB_FEEDMTRLENTRY_Q TSEQ ON (TSE.FID = TSEQ.FID AND TSE.FENTRYID = TSEQ.FENTRYID) +LEFT OUTER JOIN T_SUB_FEEDMTRLENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + --初始数据 +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, + +'初始数据',SUM(0 - TSEQ.FBASESTOCKACTUALQTY) fbaseqcqty + FROM T_SUB_FEEDMTRL TS INNER JOIN T_SUB_FEEDMTRLENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_SUB_FEEDMTRLENTRY_Q TSEQ ON (TSE.FID = TSEQ.FID AND TSE.FENTRYID = TSEQ.FENTRYID) + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID, + TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + + +--委外领料单 + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'委外领料单' fbillname,TS.FID fbillid, +TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty,0 fbaseinqty,TSE.FBASESTOCKACTUALQTY fbaseoutqty +FROM T_SUB_PICKMTRL TS INNER JOIN T_SUB_PICKMTRLDATA TSE ON TSE.FID = TS.FID +INNER JOIN T_SUB_PICKMTRLDATA_A TSEQ ON (TSE.FID = TSEQ.FID AND TSE.FENTRYID = TSEQ.FENTRYID) +LEFT OUTER JOIN T_SUB_PICKMTRLDATA_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + +--初始数据 +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'初始数据',SUM(0 - TSE.FBASESTOCKACTUALQTY) fbaseqcqty + FROM T_SUB_PICKMTRL TS INNER JOIN T_SUB_PICKMTRLDATA TSE ON TSE.FID = TS.FID + INNER JOIN T_SUB_PICKMTRLDATA_A TSEQ ON (TSE.FID = TSEQ.FID AND TSE.FENTRYID = TSEQ.FENTRYID) + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) + AND TM.FFORBIDSTATUS = 'A')AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID,TSEQ.FOWNERTYPEID,TSEQ.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '), + TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSEQ.FKEEPERTYPEID,TSEQ.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--委外退料单 + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'委外退料单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty, +0 fbaseinqty,(0 - TSE.FBASESTOCKQTY) fbaseoutqty +FROM T_SUB_RETURNMTRL TS INNER JOIN T_SUB_RETURNMTRLENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_SUB_RETURNMTRLENTRY_A TSEA ON TSE.FENTRYID = TSEA.FENTRYID +LEFT OUTER JOIN T_SUB_RETURNMTRLENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + --初始数据 +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'初始数据',SUM(TSE.FBASESTOCKQTY) fbaseqcqty +FROM T_SUB_RETURNMTRL TS INNER JOIN T_SUB_RETURNMTRLENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_SUB_RETURNMTRLENTRY_A TSEA ON TSE.FENTRYID = TSEA.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID, +TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSEA.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0), +TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + +--生产线产品入库单 + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby, + 'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'生产线产品入库单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty,TSE.FBASEREALQTY fbaseinqty,0 fbaseoutqty +FROM T_REM_INSTOCK TS INNER JOIN T_REM_INSTOCKENTRY TSE ON TSE.FID = TS.FID +LEFT OUTER JOIN T_REM_INSTOCKENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + +--初始数据 +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, + TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, + '初始数据',SUM(TSE.FBASEREALQTY) fbaseqcqty + FROM T_REM_INSTOCK TS INNER JOIN T_REM_INSTOCKENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID + WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) + AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0), + TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +---生产线产品退库单 + + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO, + FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TS.FDATE fdate,TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'生产线产品退库单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno, +0 fbaseqcqty,(0 - TSE.FBASEREALQTY) fbaseinqty,0 fbaseoutqty +FROM T_REM_OUTSTOCK TS INNER JOIN T_REM_OUTSTOCKENTRY TSE ON TSE.FID = TS.FID +LEFT OUTER JOIN T_REM_OUTSTOCKENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + + --初始数据 +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'初始数据',SUM(TSE.FBASEREALQTY) fbaseqcqty +FROM T_REM_OUTSTOCK TS INNER JOIN T_REM_OUTSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID, +ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + + +--生产线领料单 + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby, +'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'生产线领料单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS +.FBILLNO fbillno,0 fbaseqcqty,0 fbaseinqty,TSED.FBASESTOCKACTUALQTY fbaseoutqty + +FROM T_REM_PICKMTRL TS INNER JOIN T_REM_PICKMTRLDATA TSE ON TSE.FID = TS.FID +INNER JOIN T_REM_PICKMTRLDATA_A TSED ON TSED.FENTRYID = TSE.FENTRYID +LEFT OUTER JOIN T_REM_PICKMTRLDATA_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + --初始数据 +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'初始数据',SUM(0 - TSED.FBASESTOCKACTUALQTY) fbaseqcqty +FROM T_REM_PICKMTRL TS INNER JOIN T_REM_PICKMTRLDATA TSE ON TSE.FID = TS.FID +INNER JOIN T_REM_PICKMTRLDATA_A TSED ON TSED.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) +AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSED.FOWNERTYPEID,TSED.FOWNERID,TSE.FMATERIALID, +ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSED.FKEEPERTYPEID,TSED.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0),TS.FDATE + + +--生产线退料单 +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'生产线退料单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty,0 fbaseinqty,(0 - TSEA.FBASESTOCKQTY) fbaseoutqty + +FROM T_REM_RETURNMTRL TS INNER JOIN T_REM_RETURNMTRLENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_REM_RETURNMTRLENTRY_A TSEA ON TSE.FENTRYID = TSEA.FENTRYID +LEFT OUTER JOIN T_REM_RETURNMTRLENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) + AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + --初始数据 +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'初始数据',SUM(TSEA.FBASESTOCKQTY) fbaseqcqty +FROM T_REM_RETURNMTRL TS INNER JOIN T_REM_RETURNMTRLENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_REM_RETURNMTRLENTRY_A TSEA ON TSE.FENTRYID = TSEA.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0), +TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + + +--委外超耗单 +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'O' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'委外超耗单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty,0 fbaseinqty,TSE.FBASEUNITQTY fbaseoutqty + +FROM T_SUB_EXCONSUME TS INNER JOIN T_SUB_EXCONSUMEENTRY TSE ON TSE.FID = TS.FID +LEFT OUTER JOIN T_SUB_EXCONSUMEENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + --初始数据 +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'初始数据',SUM(0 - TSE.FBASEUNITQTY) fbaseqcqty +FROM T_SUB_EXCONSUME TS INNER JOIN T_SUB_EXCONSUMEENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSE.FOwnerTypeId,TSE.FOwnerId,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '), +ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + +--生产退库单 + + INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'生产退库单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid,TS.FBILLNO fbillno,0 fbaseqcqty,(0 - TSE.FBASEREALQTY) fbaseinqty,0 fbaseoutqty +FROM +T_PRD_RESTOCK TS INNER JOIN T_PRD_RESTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_PRD_RESTOCKENTRY_A TSEA ON TSE.FEntryID = TSEA.FEntryID +LEFT OUTER JOIN T_PRD_RESTOCKENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') +AND TS.FCANCELSTATUS = 'A')) AND TS.FEntrustRetStockId = 0) + + + + --初始数据 +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'初始数据',SUM(0 - TSE.FBASEREALQTY) fbaseqcqty +FROM T_PRD_RESTOCK TS INNER JOIN T_PRD_RESTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE ((((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) +AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS= 'A')) AND TS.FEntrustRetStockId = 0) + GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '), + TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + + +--简单生产退库单 + +INSERT INTO #TMP (FSTOCKORGID,FBILLENTRYID,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FDATE,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBILLID,FBILLSEQID,FBILLNO,FBASEQCQTY,FBASEINQTY,FBASEOUTQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TSE.FENTRYID fbillentryid,0 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate, + +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid,'简单生产退库单' fbillname,TS.FID fbillid,TSE.FSEQ fbillseqid, +TS.FBILLNO fbillno,0 fbaseqcqty,(0 - TSE.FBASEOUTQTY) fbaseinqty,0 fbaseoutqty + +FROM T_SP_OUTSTOCK TS INNER JOIN T_SP_OUTSTOCKENTRY TSE ON TSE.FID = TS.FID +LEFT OUTER JOIN T_SP_OUTSTOCKENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_SP_OUTSTOCKENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) + + + + --初始数据 +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TS.FSTOCKORGID fstockorgid,TS.FDATE fdate,-200 forderby,'I' fstockio,TSE.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TSE.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'初始数据',SUM(0 - TSE.FBASEOUTQTY) fbaseqcqty + FROM T_SP_OUTSTOCK TS INNER JOIN T_SP_OUTSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON TSE.FSTOCKID = TBS.FSTOCKID +WHERE (((TS.FDATE >= @FClosedate) AND (TS.FDATE < @FSDate)) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A')) +GROUP BY TS.FSTOCKORGID,TSE.FOWNERTYPEID,TSE.FOWNERID,TS.FDATE,TSE.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TSE.FLOT_TEXT,' '),ISNULL(TSE.FMTONO,' '),TSE.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID, +TSE.FKEEPERTYPEID,TSE.FKEEPERID,TSE.FPRODUCEDATE,TSE.FEXPIRYDATE,ISNULL(TSE.FBOMID,0) + +INSERT INTO #TMP ( FSTOCKORGID,FDATE,FORDERBY,FSTOCKIO,FMATERIALID,FAUXPROPID,FSTOCKID,FSTOCKLOCID,FSTOCKSTATUSID,FBILLNAME,FBASEQCQTY) + +SELECT TSE.FSTOCKORGID fstockorgid,TSE.FBALDATE fdate,-200 forderby, + 'I' fstockio,TM.FMATERIALID fmaterialid,ISNULL(TSE.FAUXPROPID,0) fauxpropid, +TBS.FSTOCKID fstockid,ISNULL(TSE.FSTOCKLOCID,0) fstocklocid,TSE.FSTOCKSTATUSID fstockstatusid, +'库存余额表',SUM(TSE.FBASEENDQTY) fbaseqcqty +FROM T_STK_INVBAL TSE +INNER JOIN T_BD_MATERIAL TM ON (TM.FMASTERID = TSE.FMATERIALID AND TM.FUSEORGID = TSE.FSTOCKORGID) +INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.FSTOCKID AND TBS.FUSEORGID = TSE.FSTOCKORGID) +LEFT OUTER JOIN T_ENG_BOM TB ON (TB.FMASTERID = TSE.FBOMID AND TB.FUSEORGID = TSE.FSTOCKORGID) +LEFT OUTER JOIN V_ITEMCLASS_OWNER VO ON ((VO.FMASTERID = TSE.FOWNERID AND VO.FFORMID = TSE.FOWNERTYPEID) AND (VO.FUSEORGID = TSE.FSTOCKORGID OR VO.FUSEORGID = 0 +OR EXISTS (SELECT 1 FROM T_META_BASEDATATYPE BT WHERE (BT.FBASEDATATYPEID = VO.FFORMID AND BT.FSTRATEGYTYPE = 1)))) +LEFT OUTER JOIN V_ITEMCLASS_OWNER_L VO_L ON (VO.FITEMID = VO_L.FITEMID AND VO_L.FLOCALEID = 2052) +LEFT OUTER JOIN V_ITEMCLASS_KEEPER VK ON ((VK.FMASTERID = TSE.FKEEPERID AND VK.FFORMID = TSE.FKEEPERTYPEID) AND (VK.FUSEORGID = TSE.FSTOCKORGID OR VK.FUSEORGID = 0 +OR EXISTS (SELECT 1 FROM T_META_BASEDATATYPE BT WHERE (BT.FBASEDATATYPEID = VK.FFORMID AND BT.FSTRATEGYTYPE = 1)))) +LEFT OUTER JOIN V_ITEMCLASS_KEEPER_L VK_L ON (VK.FITEMID = VK_L.FITEMID AND VK_L.FLOCALEID = 2052) +LEFT OUTER JOIN T_BD_LOTMASTER TBLM ON (ISNULL(TSE.FLOT,0) = TBLM.FMASTERID AND TBLM.FUSEORGID IN (1)) + +WHERE ((TSE.FSTOCKORGID IN (1) AND (FBALTYPE IN(0,1) AND (FSTOCKORGID = 1 AND TSE.FBALDATE =@FCloseBALDate ))) +--AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +AND (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TBS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + AND TM.FFORBIDSTATUS = 'A') + + +GROUP BY TSE.FSTOCKORGID,TSE.FOWNERTYPEID,VO.FITEMID,TSE.FBALDATE,TM.FMATERIALID,ISNULL(TSE.FAUXPROPID,0),ISNULL(TBLM.FNUMBER,' '),ISNULL(TSE.FMTONO,' '), +TBS.FSTOCKID,ISNULL(TSE.FSTOCKLOCID,0),TSE.FSTOCKSTATUSID,TSE.FKEEPERTYPEID,VK.FITEMID,TSE.FLOT,TMS.FISBATCHMANAGE,TMS.FISKFPERIOD, +TMS.FISEXPPARTOFLOT,TBLM.FPRODUCEDATE,TSE.FPRODUCEDATE,TBLM.FEXPIRYDATE,TSE.FEXPIRYDATE,ISNULL(TB.FID,0) + +--合并所有出入库数据 + +SELECT FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID,SUM( FBASEQCQTY)FBASEQCQTY,SUM(FBASEINQTY)FBASEINQTY,SUM(FBASEOUTQTY) FBASEOUTQTY +INTO #tmp1 +FROM #TMP +--WHERE FDATE <='2019-08-30' +GROUP BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID +ORDER BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID + + + +INSERT INTO #Stock_Status_temp (物料内码,物料代码,物料名称,规格型号,旧编码,包装方式,仓库内码,仓库名称,仓库代码,包装内码) + +SELECT TM.fmaterialid AS 物料内码,(TM.fnumber) 物料代码,(TML.FNAME) AS 物料名称,(TML.FSPECIFICATION) AS 规格型号,ISNULL(TM.FOLDNUMBER,'') AS 旧编码, +ISNULL(t5.FAUXPTYNUMBER,'') 包装方式,TBS.FSTOCKID 仓库内码,TSL.fname 仓库名称,TBS.fnumber 仓库代码,TSE.FAUXPROPID AS 包装内码 +FROM #tmp1 TSE +INNER JOIN T_BD_MATERIAL TM ON (TM.FMATERIALID = TSE.FMATERIALID AND TM.FUSEORGID = TSE.FSTOCKORGID) +INNER JOIN T_BD_MATERIAL_L TML ON TM.FMATERIALID =TML.FMATERIALID AND TML.FLOCALEID =2052 +INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.FSTOCKID AND TBS.FUSEORGID = TSE.FSTOCKORGID) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = TSE.FSTOCKID AND TSL.FLOCALEID = 2052) +LEFT OUTER JOIN T_BD_FLEXSITEMDETAILV t3 ON TSE.FAUXPROPID=t3.FID +LEFT OUTER JOIN T_BAS_ASSISTANTDATAENTRY_L t4 ON t3.FF100001=t4.FENTRYID +LEFT OUTER JOIN T_BD_AUXPTYVALUEENTITY t5 ON t3.FF100001=t5.FAUXPTYID AND t3.FID =t5.FAUXPTYVALUEID + + +--上期结存数 +--SELECT FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID,SUM( FBASEQCQTY)FBASEQCQTY,SUM(FBASEINQTY)FBASEINQTY,SUM(FBASEOUTQTY) FBASEOUTQTY +--INTO #tmp2 + +--FROM #TMP +----WHERE FDATE <=@FSDate +--GROUP BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID +--ORDER BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID + +--SELECT * +UPDATE t1 SET t1.上期结存=t2.FBASEQCQTY + FROM #Stock_Status_temp t1 +INNER JOIN #tmp1 t2 ON t1.物料内码=t2.FMATERIALID AND t1.仓库内码=t2.FSTOCKID AND t1.包装内码=T2.FAUXPROPID + +--期末结存 +UPDATE t1 SET t1.期末结存=t2.FBASEQCQTY+t2.FBASEINQTY-t2.FBASEOUTQTY + FROM #Stock_Status_temp t1 +INNER JOIN + #tmp1 t2 ON t1.物料内码=t2.FMATERIALID AND t1.仓库内码=t2.FSTOCKID AND t1.包装内码=T2.FAUXPROPID + +--本期采购入库 +SELECT FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID,SUM( FBASEQCQTY)FBASEQCQTY,SUM(FBASEINQTY)FBASEINQTY,SUM(FBASEOUTQTY) FBASEOUTQTY +INTO #tmp4 FROM #TMP TS WHERE FORDERBY<>'-200' AND fstockio='I' AND ( FBILLNAME NOT like'%调拨单%' AND FBILLNAME<>'形态转换单') +AND ((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--TS.FDATE >='2019-08-30'AND TS.FDATE <='2019-11-12' +GROUP BY FSTOCKORGID,FMATERIALID, +FAUXPROPID,FSTOCKID +ORDER BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID +--本期采购入库 + +UPDATE t1 SET t1.本期采购入库=t2.FBASEINQTY + FROM #Stock_Status_temp t1 +INNER JOIN #tmp4 t2 ON t1.物料内码=t2.FMATERIALID AND t1.仓库内码=t2.FSTOCKID AND t1.包装内码=T2.FAUXPROPID + +--本期耗用 +SELECT FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID,SUM( FBASEQCQTY)FBASEQCQTY,SUM(FBASEINQTY)FBASEINQTY,SUM(FBASEOUTQTY) FBASEOUTQTY +INTO #tmp5 FROM #TMP TS WHERE fstockio='O' AND ( FBILLNAME NOT like'%调拨单%' AND FBILLNAME<>'形态转换单') +AND ((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--TS.FDATE >='2019-08-30'AND TS.FDATE <='2019-11-12' +GROUP BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID +ORDER BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID +--本期耗用 + +UPDATE t1 SET t1.本期耗用=t2.FBASEOUTQTY + FROM #Stock_Status_temp t1 +INNER JOIN #tmp5 t2 ON t1.物料内码=t2.FMATERIALID AND t1.仓库内码=t2.FSTOCKID AND t1.包装内码=T2.FAUXPROPID + + +--仓库拨入数量仓库拨出数量 + +SELECT FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID,SUM( FBASEQCQTY)FBASEQCQTY,SUM(FBASEINQTY)FBASEINQTY,SUM(FBASEOUTQTY) FBASEOUTQTY +INTO #tmp6 FROM #TMP TS WHERE FORDERBY<>'-200' AND ( FBILLNAME like'%调拨单%' ) +AND ((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--TS.FDATE >='2019-08-30'AND TS.FDATE <='2019-11-12' +GROUP BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID +ORDER BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID + +--仓库拨入数量--仓库拨出数量 + +UPDATE t1 SET t1.仓库拨入数量=t2.FBASEINQTY,t1.仓库拨出数量=t2.FBASEOUTQTY + FROM #Stock_Status_temp t1 +INNER JOIN #tmp6 t2 ON t1.物料内码=t2.FMATERIALID AND t1.仓库内码=t2.FSTOCKID AND t1.包装内码=T2.FAUXPROPID + + +--领料数量 +SELECT FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID,SUM( FBASEQCQTY)FBASEQCQTY,SUM(FBASEINQTY)FBASEINQTY,SUM(FBASEOUTQTY) FBASEOUTQTY +INTO #tmp7 FROM #TMP TS WHERE ( FBILLNAME IN('生产领料单','委外领料单' )) +AND ((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--TS.FDATE >='2019-08-30'AND TS.FDATE <='2019-11-12' +GROUP BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID +ORDER BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID + +--领料数量 +UPDATE t1 SET t1.领料数量=t2.FBASEOUTQTY + FROM #Stock_Status_temp t1 +INNER JOIN #tmp7 t2 ON t1.物料内码=t2.FMATERIALID AND t1.仓库内码=t2.FSTOCKID AND t1.包装内码=T2.FAUXPROPID + + +--销售出库数量 + +SELECT FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID,SUM( FBASEQCQTY)FBASEQCQTY,SUM(FBASEINQTY)FBASEINQTY,SUM(FBASEOUTQTY) FBASEOUTQTY +INTO #tmp8 FROM #TMP TS WHERE ( FBILLNAME ='销售出库单' ) +AND ((TS.FDATE >= @FSDate) AND (TS.FDATE <= @FEDate)) +--TS.FDATE >='2019-08-30'AND TS.FDATE <='2019-11-12' +GROUP BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID +ORDER BY FSTOCKORGID,FMATERIALID,FAUXPROPID,FSTOCKID + +--销售出库数量 +UPDATE t1 SET t1.销售出库数量=t2.FBASEOUTQTY + FROM #Stock_Status_temp t1 +INNER JOIN #tmp8 t2 ON t1.物料内码=t2.FMATERIALID AND t1.仓库内码=t2.FSTOCKID AND t1.包装内码=T2.FAUXPROPID + +--受订量 +--销售订单受订量 +--******************************************* + +--查询订单数 +--(C.FBASEREMAINOUTQTY+C.FBaseReturnQty)累计退库数量+剩余未出数量 +SELECT (A.FBILLNO) AS 销售单号,(A.FID) 销售内码,(B.FENTRYID) 销售分录,(B.FSEQ) 销售序号, +B.FMATERIALID AS 物料内码,B.FBASEUNITQTY 订单数,(C.FBASEREMAINOUTQTY+C.FBaseReturnQty) AS 未出数量,FBaseReturnQty, +ISNULL(B.FSTOCKID,0) 仓库内码,B.FAUXPROPID,A.FCLOSESTATUS,FCLOSEDATE,A.FDATE,B.FMRPCLOSESTATUS 业务关闭 +INTO #tmpSal +FROM T_SAL_ORDER A +INNER JOIN T_SAL_ORDERENTRY B ON A.FID =B.FID +LEFT JOIN T_SAL_ORDERENTRY_R C ON C.FID=B.FID AND C.FENTRYID =B.FENTRYID +LEFT JOIN T_SAL_ORDERENTRY_E D ON D.FID=B.FID AND D.FENTRYID =B.FENTRYID + +WHERE 1=1 AND A.FCANCELSTATUS='A' AND A.FDOCUMENTSTATUS='C' --AND B.FMRPTERMINATESTATUS='A' +AND (B.FTERMINATEDATE >@FEDate OR ISNULL(B.FTERMINATEDATE,'') ='') +AND (FCLOSEDATE>@FEDate OR ISNULL(FCLOSEDATE,'')='')--关闭日期在开始之前单据不考虑 +AND A.FDATE <=@FEDate --AND A.FBILLNO='SO1909200018' +ORDER BY A.FDATE,A.FID,B.FENTRYID,B.FMATERIALID + + + +--更新未出数量 +--SELECT * +UPDATE t1 SET t1.未出数量=未出数量+t2.fbaseoutqty +FROM #tmpSal t1 +INNER JOIN ( +SELECT TSR.FSOORDERNO,TSR.FSOENTRYID,TSE.FMATERIALID,SUM(TSE.FBASEUNITQTY) fbaseoutqty +FROM T_SAL_OUTSTOCK TS INNER JOIN T_SAL_OUTSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_SAL_OUTSTOCKENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_SAL_OUTSTOCKFIN TSF ON TSE.FID = TSF.FID +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_MATERIALBASE TMB ON TSE.FMATERIALID = TMB.FMATERIALID +INNER JOIN T_SAL_OUTSTOCKENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID + +WHERE TS.FDATE>@FEDate AND +( TS.FCANCELSTATUS = 'A' AND TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +GROUP BY TSR.FSOORDERNO,TSR.FSOENTRYID,TSE.FMATERIALID ) t2 ON t2.FSOORDERNO =t1.销售单号 AND t2.FSOENTRYID=t1.销售分录 AND t1.物料内码=t2.FMATERIALID + +--销售出库退货 +--销售退货单 +--SELECT * +UPDATE t1 SET t1.未出数量=未出数量+t2.fbaseoutqty +FROM #tmpSal t1 +INNER JOIN ( +SELECT TSE.FORDERNO,TSE.FSOENTRYID,TSE.FMATERIALID,SUM((TSE.FBASEUNITQTY)) fbaseoutqty +FROM T_SAL_RETURNSTOCK TS INNER JOIN T_SAL_RETURNSTOCKENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_SAL_RETURNSTOCKENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_SAL_RETURNSTOCKFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID +INNER JOIN T_BD_MATERIALBASE TMB ON TSE.FMATERIALID = TMB.FMATERIALID INNER JOIN T_SAL_RETURNSTOCKENTRY_R TSR ON TSR.FENTRYID = TSE.FENTRYID + +WHERE TS.FDATE>@FEDate +AND ( TS.FCANCELSTATUS = 'A' AND TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +GROUP BY TSE.FORDERNO,TSE.FSOENTRYID,TSE.FMATERIALID +) t2 ON t2.FORDERNO =t1.销售单号 AND t2.FSOENTRYID=t1.销售分录 AND t1.物料内码=t2.FMATERIALID + + + +SELECT 物料内码,订单数,未出数量,FAUXPROPID,CASE WHEN B.仓库内码<>0 THEN B.仓库内码 ELSE ISNULL(tms.FSTOCKID,0) END 仓库内码 +INTO #tmpSal1 FROM #tmpSal B +LEFT JOIN T_BD_MATERIAL TM ON (B.物料内码 = TM.FMATERIALID ) +LEFT JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.仓库内码 ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.仓库内码 ) +--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + +ORDER BY 物料内码 + + +SELECT 物料内码,订单数,未出数量,FAUXPROPID,仓库内码 +INTO #tmpSal3 FROM #tmpSal1 B +LEFT JOIN T_BD_MATERIAL TM ON (B.物料内码 = TM.FMATERIALID ) +--LEFT JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.仓库内码 ) +--LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.仓库内码 ) +WHERE -- (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + +ORDER BY 物料内码 + + + +SELECT 物料内码,SUM(订单数)订单数,SUM(未出数量)未出数量,FAUXPROPID,仓库内码 +INTO #tmpSal2 FROM #tmpSal3 +GROUP BY 仓库内码,物料内码,FAUXPROPID +ORDER BY 仓库内码,物料内码,FAUXPROPID + +--销售订单受订量 +UPDATE t1 SET t1.受订量=t2.未出数量 +FROM #Stock_Status_temp t1 +INNER JOIN #tmpSal2 t2 ON t1.物料内码=t2.物料内码 AND t1.仓库内码=t2.仓库内码 AND t1.包装内码=T2.FAUXPROPID + + +--不存在数据就重新增 + +INSERT INTO #Stock_Status_temp (物料内码,物料代码,物料名称,规格型号,旧编码,包装方式,仓库内码,仓库名称,仓库代码,包装内码,受订量) + +SELECT TM.fmaterialid AS 物料内码,(TM.fnumber) 物料代码,(TML.FNAME) AS + 物料名称,(TML.FSPECIFICATION) AS 规格型号,ISNULL(TM.FOLDNUMBER,'') AS 旧编码, +ISNULL(t5.FAUXPTYNUMBER,'') 包装方式,TBS.FSTOCKID 仓库内码,TSL.fname 仓库名称,TBS.fnumber 仓库代码,TSE.FAUXPROPID AS 包装内码,(未出数量) +FROM #tmpSal2 TSE +INNER JOIN T_BD_MATERIAL TM ON (TM.FMATERIALID = TSE.物料内码 ) + +INNER JOIN T_BD_MATERIAL_L TML ON TM.FMATERIALID =TML.FMATERIALID AND TML.FLOCALEID =2052 +INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.仓库内码 ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = TSE.仓库内码 AND TSL.FLOCALEID = 2052) +LEFT OUTER JOIN T_BD_FLEXSITEMDETAILV t3 ON TSE.FAUXPROPID=t3.FID +LEFT OUTER JOIN T_BAS_ASSISTANTDATAENTRY_L t4 ON t3.FF100001=t4.FENTRYID +LEFT OUTER JOIN T_BD_AUXPTYVALUEENTITY t5 ON t3.FF100001=t5.FAUXPTYID AND t3.FID =t5.FAUXPTYVALUEID + +--SELECT * FROM #tmpSal2 TSE +WHERE NOT EXISTS(SELECT * FROM #Stock_Status_temp t2 WHERE TSE.物料内码=t2.物料内码 AND TSE.仓库内码=t2.仓库内码 AND t2.包装内码=TSE.FAUXPROPID) + +--******************************************* + + + +--在途量 +--************************************************ + +--采购订单 +SELECT ddd.FPurchaseOrgID fstockorgid,ddd.FBILLNO 采购订单,ddd.FID AS 采购内码,B.FENTRYID 采购订单分录,b.FMATERIALID 物料内码, +ISNULL(b.FAUXPROPID,0) fauxpropid,ddd.FDATE fdate,TMS.FSTOCKID 仓库内码,FBASEUNITQTY 采购数量, +FREMAINSTOCKINQTY 剩余入库数量,FBASESTOCKINQTY 入库数量,ddd.FCLOSEDATE +INTO #tmppoorder +FROM t_pur_poorderentry b +INNER JOIN t_pur_poorder ddd ON (ddd.FID = b.FID AND FbusinessType NOT IN ('ZCCG','FYCG')) +INNER JOIN t_pur_poorderentry_r r ON b.fentryid = r.fentryid +INNER JOIN t_pur_poorderentry_d td ON b.fentryid = td.fentryid +INNER JOIN T_BD_MATERIALSTOCK TMS ON b.FMATERIALID = TMS.FMATERIALID +WHERE (ddd.FPurchaseOrgID IN (1) AND (((ddd.FPurchaseOrgID IN (1)) +AND (ddd.FDATE <=@FEDate)) AND ddd.fdocumentStatus = 'C')) +AND (b.FTERMINATEDATE >@FEDate OR ISNULL(b.FTERMINATEDATE,'') ='') +AND (ddd.FCLOSEDATE>@FEDate or ISNULL(ddd.FCLOSEDATE,'')='') + +--入库单 +--SELECT * + +UPDATE t1 SET t1.剩余入库数量=剩余入库数量+t2.fbaseinqty +FROM #tmppoorder t1 +INNER JOIN ( + SELECT TSE.FMATERIALID,tse.FPOORDERENTRYID,tse.FPOORDERNO,SUM(TSE.FBASEUNITQTY) fbaseinqty + FROM T_STK_INSTOCK TS INNER JOIN T_STK_INSTOCKENTRY TSE ON TSE.FID = TS.FID + + INNER JOIN T_STK_INSTOCKENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) + INNER JOIN T_STK_INSTOCKENTRY_LK TSEL ON ( TSE.FENTRYID = TSEL.FENTRYID) + INNER JOIN T_STK_INSTOCKFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + WHERE 1=1 AND TS.FDATE > @FEDate + AND (TS.FSTOCKORGID IN (1) ) AND TM.FFORBIDSTATUS = 'A' AND TS.FCANCELSTATUS = 'A' AND TS.FDOCUMENTSTATUS IN ('C') + GROUP BY TSE.FPOORDERNO,TSE.FPOORDERENTRYID,TSE.FMATERIALID +)t2 ON t2.FPOORDERNO =t1.采购订单 AND t2.FPOORDERENTRYID=t1.采购订单分录 AND t1.物料内码=t2.FMATERIALID + + +--退料单 + --SELECT * +UPDATE t1 SET t1.剩余入库数量=剩余入库数量-t2.fbaseinqty +FROM #tmppoorder t1 +INNER JOIN( + SELECT tse.FPOORDERENTRYID,tse.FORDERNO,TSE.FMATERIALID fmaterialid,SUM( TSE.FBASEUNITQTY) fbaseinqty + + FROM T_PUR_MRB TS INNER JOIN T_PUR_MRBENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_PUR_MRBENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) + INNER JOIN T_PUR_MRBFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_MATERIALBASE TMB ON TM.FMATERIALID = TMB.FMATERIALID + WHERE 1=1 AND (TS.FDATE >@FEDate) + AND TS.FDOCUMENTSTATUS IN ('C') AND TM.FFORBIDSTATUS = 'A' AND TS.FCANCELSTATUS = 'A' AND (TSE.FSTOCKID > 0) + AND TSF.FISGENFORIOS = '0'AND (TSE.FSTOCKFLAG = '1' OR (TS.FMRTYPE = 'B' AND TMB.FISINVENTORY = '1') ) + GROUP BY tse.FPOORDERENTRYID,tse.FORDERNO,TSE.FMATERIALID +)t2 ON t2.FORDERNO =t1.采购订单 AND t2.FPOORDERENTRYID=t1.采购订单分录 AND t1.物料内码=t2.FMATERIALID + + +--更新和新增在途量数据 + +SELECT 物料内码,采购数量,剩余入库数量,FAUXPROPID,CASE WHEN B.仓库内码<>0 THEN B.仓库内码 ELSE ISNULL(tms.FSTOCKID,0) END 仓库内码 +INTO #tmppoorder1 FROM #tmppoorder B +LEFT JOIN T_BD_MATERIAL TM ON (B.物料内码 = TM.FMATERIALID ) +LEFT + JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.仓库内码 ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.仓库内码 AND TSL.FLOCALEID = 2052) +--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +ORDER BY 物料内码 + + + + +SELECT 物料内码,采购数量,剩余入库数量,FAUXPROPID,仓库内码 +INTO #tmppoorder3 FROM #tmppoorder1 B +LEFT JOIN T_BD_MATERIAL TM ON (B.物料内码 = TM.FMATERIALID ) +LEFT JOIN T_BD_STOCK TSK + ON ( TSK.FMASTERID = B.仓库内码 ) +WHERE -- (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + +ORDER BY 物料内码 + + + + +SELECT 物料内码,SUM(采购数量)采购数量,SUM(剩余入库数量)剩余入库数量,FAUXPROPID,仓库内码 +INTO #tmppoorder2 FROM #tmppoorder3 +GROUP BY 仓库内码,物料内码,FAUXPROPID +ORDER BY 仓库内码,物料内码,FAUXPROPID + + +--在途量 +UPDATE t1 SET t1.在途量=t2.剩余入库数量 +FROM #Stock_Status_temp t1 +INNER JOIN #tmppoorder2 t2 ON t1.物料内码=t2.物料内码 AND t1.仓库内码=t2.仓库内码 AND t1.包装内码=T2.FAUXPROPID + +--不存在数据就重新增 + +INSERT INTO #Stock_Status_temp (物料内码,物料代码,物料名称,规格型号,旧编码,包装方式,仓库内码,仓库名称,仓库代码,包装内码,在途量) + +SELECT TM.fmaterialid AS 物料内码,(TM.fnumber) 物料代码,(TML.FNAME) AS 物料名称,(TML.FSPECIFICATION) AS 规格型号,ISNULL(TM.FOLDNUMBER,'') AS 旧编码, +ISNULL(t5.FAUXPTYNUMBER,'') 包装方式,TBS.FSTOCKID 仓库内码,TSL.fname 仓库名称,TBS.fnumber 仓库代码,TSE.FAUXPROPID AS 包装内码,(剩余入库数量) +FROM #tmppoorder2 TSE +INNER JOIN T_BD_MATERIAL TM ON (TM.FMATERIALID = TSE.物料内码 ) +INNER JOIN T_BD_MATERIAL_L TML ON TM.FMATERIALID =TML.FMATERIALID AND TML.FLOCALEID =2052 +INNER + JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.仓库内码 ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = TSE.仓库内码 AND TSL.FLOCALEID = 2052) +LEFT OUTER JOIN T_BD_FLEXSITEMDETAILV t3 ON TSE.FAUXPROPID=t3.FID +LEFT OUTER JOIN T_BAS_ASSISTANTDATAENTRY_L t4 ON t3.FF100001=t4.FENTRYID +LEFT OUTER JOIN T_BD_AUXPTYVALUEENTITY t5 ON t3.FF100001=t5.FAUXPTYID AND t3.FID =t5.FAUXPTYVALUEID + +--SELECT * FROM #tmpSal2 TSE +WHERE 剩余入库数量<>0 AND + NOT EXISTS(SELECT * FROM #Stock_Status_temp t2 WHERE TSE.物料内码=t2.物料内码 AND TSE.仓库内码=t2.仓库内码 AND t2.包装内码=TSE.FAUXPROPID) + + + + + +--************************************************ + +--在制量 +--************************************************* +--查询截止结束日期之前所有生产单 +SELECT (MO.FBILLNO) 生产单号,ME.FPRODUCTTYPE, +(MO.FID) 生产内码,(ME.FENTRYID) 生产单分录,MA.FCONVEYDATE,ME.FMATERIALID 物料内码, +ISNULL(ME.FSTOCKID,0) 仓库内码,ME.FAUXPROPID,MO.FDATE,ME.FSEQ,(ME.FQTY) 生产数量, +--MQ.FBASENOSTOCKINQTY 未入库数量 +(CASE WHEN (MQ.FBASENOSTOCKINQTY)>0 THEN (MQ.FBASENOSTOCKINQTY) ELSE 0 END) AS 未入库数量,MQ.FBASERESTKQTY 退库数量 + +INTO #tmpMO +FROM T_PRD_MO MO +INNER JOIN T_PRD_MOENTRY ME ON MO.FID =ME.FID +LEFT JOIN T_PRD_MOENTRY_A MA ON MA.FID =ME.FID AND ME.FENTRYID =MA.FENTRYID +LEFT JOIN T_PRD_MOENTRY_Q MQ ON MQ.FID =ME.FID AND ME.FENTRYID =MQ.FENTRYID +WHERE 1=1 AND MO.FCANCELSTATUS='A' AND MO.FDOCUMENTSTATUS='C' AND ME.FPRODUCTTYPE =1 +--AND MO.FBILLNO IN('MO1909090271','MO1905070262') +AND MO.FDATE <=@FEDate AND ISNULL(MA.FCONVEYDATE,'')<>'' +AND (FCLOSEDATE>@FEDate OR ISNULL(FCLOSEDATE,'')='') + + +--截止日期之后生成的生产入库单 +--SELECT * +UPDATE t1 SET t1.未入库数量=未入库数量+t2.fbaseInqty +FROM #tmpMO t1 +INNER JOIN( + SELECT TSE.FMATERIALID,TSE.FMOBILLNO,TSE.FMOID,TSE.FMOENTRYID,TSE.FMOENTRYSEQ,SUM(TSE.FBASEREALQTY) fbaseInqty + FROM T_PRD_INSTOCK TS INNER JOIN T_PRD_INSTOCKENTRY TSE ON TSE.FID = TS.FID + LEFT OUTER JOIN T_PRD_INSTOCKENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + WHERE 1=1 + AND TS.FDATE > @FEDate AND (TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) + AND TM.FFORBIDSTATUS = 'A' AND TS.FCANCELSTATUS = 'A' + --AND TS.FBILLNO='MM1909090128' + GROUP BY TSE.FMOBILLNO,TSE.FMOID,TSE.FMOENTRYID,TSE.FMOENTRYSEQ,TSE.FMATERIALID + --ORDER BY TSE.FMOBILLNO,TSE.FMOID,TSE.FMOENTRYID,TSE.FMOENTRYSEQ,TSE.FMATERIALID +) t2 ON t1.生产内码=t2.FMOID AND t1.生产单分录=t2.FMOENTRYID AND t1.物料内码=t2.FMATERIALID + +--截止日期之后生成的生产退库单 +--SELECT * +UPDATE t1 SET t1.未入库数量=未入库数量-t2.fbaseOutqty +FROM #tmpMO t1 +INNER JOIN( + SELECT TSE.FMATERIALID fmaterialid,TSE.FMOBILLNO,TSE.FMOID,TSE.FMOENTRYID,TSE.FMOENTRYSEQ,SUM(TSE.FBASEREALQTY) fbaseOutqty + FROM T_PRD_RESTOCK TS INNER JOIN T_PRD_RESTOCKENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_PRD_RESTOCKENTRY_A TSEA ON TSE.FEntryID = TSEA.FEntryID + LEFT OUTER JOIN T_PRD_RESTOCKENTRY_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + WHERE 1=1 + AND TS.FDATE > @FEDate + AND (TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) AND TM.FFORBIDSTATUS = 'A' + AND TS.FCANCELSTATUS = 'A' AND TS.FEntrustRetStockId = 0 + GROUP BY TSE.FMOBILLNO,TSE.FMOID,TSE.FMOENTRYID,TSE.FMOENTRYSEQ,TSE.FMATERIALID +) t2 ON t1.生产内码=t2.FMOID AND t1.生产单分录=t2.FMOENTRYID AND t1.物料内码=t2.FMATERIALID + + +--更新和新增在制数据 + +SELECT 物料内码,生产数量,未入库数量,FAUXPROPID,CASE WHEN B.仓库内码<>0 THEN B.仓库内码 ELSE ISNULL(tms.FSTOCKID,0) END 仓库内码 +INTO #tmpMO1 FROM #tmpMO B +LEFT JOIN T_BD_MATERIAL TM ON (B.物料内码 = TM.FMATERIALID ) +LEFT JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.仓库内码 ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.仓库内码 AND TSL.FLOCALEID = 2052) +--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +ORDER BY 物料内码 + + + +SELECT 物料内码,生产数量,未入库数量,FAUXPROPID,仓库内码 +INTO #tmpMO3 FROM #tmpMO1 B +LEFT JOIN T_BD_MATERIAL TM ON (B.物料内码 = TM.FMATERIALID ) +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.仓库内码 ) +WHERE -- (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) + +ORDER BY 物料内码 + + + +SELECT 物料内码,SUM(生产数量)生产数量,SUM(未入库数量)未入库数量,FAUXPROPID,仓库内码 +INTO #tmpMO2 FROM #tmpMO3 +GROUP BY 仓库内码,物料内码,FAUXPROPID +ORDER BY 仓库内码,物料内码,FAUXPROPID + +--在制量 +UPDATE t1 SET t1.在制数=t2.未入库数量 +FROM #Stock_Status_temp t1 +INNER JOIN #tmpMO2 t2 ON t1.物料内码=t2.物料内码 AND t1.仓库内码=t2.仓库内码 AND t1.包装内码=T2.FAUXPROPID + +--不存在数据就重新增 + +INSERT INTO #Stock_Status_temp (物料内码,物料代码,物料名称,规格型号,旧编码,包装方式,仓库内码,仓库名称,仓库代码,包装内码,在制数) + +SELECT TM.fmaterialid AS 物料内码,(TM.fnumber) 物料代码,(TML.FNAME) AS 物料名称,(TML.FSPECIFICATION) AS 规格型号,ISNULL(TM.FOLDNUMBER,'') AS 旧编码, +ISNULL(t5.FAUXPTYNUMBER,'') 包装方式,TBS.FSTOCKID 仓库内码,TSL.fname 仓库名称,TBS.fnumber 仓库代码,TSE.FAUXPROPID AS 包装内码,(未入库数量) +FROM #tmpMO2 TSE +INNER JOIN T_BD_MATERIAL TM ON (TM.FMATERIALID = TSE.物料内码 ) +INNER JOIN T_BD_MATERIAL_L TML ON TM.FMATERIALID =TML.FMATERIALID AND TML.FLOCALEID =2052 +INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.仓库内码 ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = TSE.仓库内码 AND TSL.FLOCALEID = 2052) +LEFT OUTER JOIN T_BD_FLEXSITEMDETAILV t3 ON TSE.FAUXPROPID=t3.FID +LEFT OUTER JOIN T_BAS_ASSISTANTDATAENTRY_L t4 ON t3.FF100001=t4.FENTRYID +LEFT OUTER JOIN T_BD_AUXPTYVALUEENTITY t5 ON t3.FF100001=t5.FAUXPTYID AND t3.FID =t5.FAUXPTYVALUEID + +--SELECT * FROM #tmpSal2 TSE +WHERE NOT EXISTS(SELECT * FROM #Stock_Status_temp t2 WHERE TSE.物料内码=t2.物料内码 AND TSE.仓库内码=t2.仓库内码 AND t2.包装内码=TSE.FAUXPROPID) + +--***************END********************************** + + +--进检量 +--******************start******************************* + +----查询截止结束日期之前所有收料单 + +SELECT TS.FSTOCKORGID fstockorgid,TS.FBILLNO 收料单号,TS.FID AS 收料内码,TSE.FENTRYID 收料分录,TSE.FMATERIALID 物料内码, + ISNULL(TSE.FAUXPROPID,0) fauxpropid,TS.FDATE fdate,TSE.FSTOCKID 仓库内码,FBASEUNITQTY 收料数量, +CASE WHEN (FBASEUNITQTY-(TSES.FINSTOCKBASEQTY + TSES.FRETURNBASEQTY))>0 THEN (FBASEUNITQTY-(TSES.FINSTOCKBASEQTY + TSES.FRETURNBASEQTY)) ELSE 0 END 未进检量, +(FBASEUNITQTY-FINSTOCKBASEQTY +FRETURNBASEQTY) 已审进检量 +INTO #TMPRECEIVE +FROM T_PUR_RECEIVE TS +INNER JOIN T_PUR_RECEIVEENTRY TSE ON TSE.FID = TS.FID +INNER JOIN T_PUR_RECEIVEENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) +INNER JOIN T_PUR_RECEIVEENTRY_S TSES ON (TSE.FID = TSES.FID AND TSE.FENTRYID = TSES.FENTRYID) +INNER JOIN T_PUR_RECEIVEENTRY_R TSER ON (TSE.FID = TSER.FID AND TSE.FENTRYID = TSER.FENTRYID) +INNER JOIN T_PUR_RECEIVEFIN TSF ON TSE.FID = TSF.FID +WHERE 1=1 AND (TS.FDATE <= @FEDate) +--AND ts.FBILLNO='T61908290024-' AND FRETURNBASEQTY<>0 +AND( FEXECUTEDATE>@FEDate OR ISNULL(FEXECUTEDATE,'')='')--执行日期 +AND (TS.FSTOCKORGID IN (1)) +AND (TSE.FSTOCKID > 0)AND TSE.FSTOCKFLAG = '0' + +-- AND TS.FDOCUMENTSTATUS IN ('C') +------查询截止结束日期之前所有入库单 + +--SELECT * +UPDATE t1 SET t1.未进检量=未进检量+t2.fbaseInqty +FROM #TMPRECEIVE t1 +INNER JOIN ( + SELECT TSE.FMATERIALID,TSE.FSRCBILLNO,TSEL .FSBILLID,TSEL.FSID,SUM(TSE.FBASEUNITQTY) fbaseinqty + FROM T_STK_INSTOCK TS INNER JOIN T_STK_INSTOCKENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_STK_INSTOCKENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) + INNER JOIN T_STK_INSTOCKENTRY_LK TSEL ON ( TSE.FENTRYID = TSEL.FENTRYID) + INNER JOIN T_STK_INSTOCKFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + WHERE 1=1 AND TS.FDATE >@FEDate + AND (TS.FSTOCKORGID IN (1) ) AND TM.FFORBIDSTATUS = 'A' AND TS.FCANCELSTATUS = 'A' + GROUP BY TSE.FSRCBILLNO,TSEL .FSBILLID,TSEL.FSID,TSE.FMATERIALID + --ORDER BY TSE.FMOBILLNO,TSE.FMOID,TSE.FMOENTRYID,TSE.FMOENTRYSEQ,TSE.FMATERIALID +) t2 ON t1.收料内码=t2.FSBILLID AND t1.收料分录=t2.FSID AND t1.物料内码=t2.FMATERIALID + +-- +--查询截止结束日期之后所有退料单 +--SELECT * +UPDATE t1 SET t1.未进检量=未进检量+t2.fbaseInqty +FROM #TMPRECEIVE t1 +INNER JOIN ( + SELECT TSE.FMATERIALID,TSE.FSRCBILLNO,TSEL .FSBILLID,TSEL.FSID,SUM(TSE.FBASEUNITQTY) fbaseinqty + FROM T_PUR_MRB TS INNER JOIN T_PUR_MRBENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_PUR_MRBENTRY_F TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) + INNER JOIN T_PUR_MRBENTRY_LK TSEL ON ( TSE.FENTRYID = TSEL.FENTRYID) + INNER JOIN T_PUR_MRBFIN TSF ON TSE.FID = TSF.FID INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + INNER JOIN T_BD_MATERIALBASE TMB ON TM.FMATERIALID = TMB.FMATERIALID + WHERE 1=1 AND TS.FDATE >@FEDate + AND (TS.FSTOCKORGID IN (1) ) AND TM.FFORBIDSTATUS = 'A' AND TS.FCANCELSTATUS = 'A' + GROUP BY TSE.FSRCBILLNO,TSEL .FSBILLID,TSEL.FSID,TSE.FMATERIALID + +) t2 ON t1.收料内码=t2.FSBILLID AND t1.收料分录=t2.FSID AND t1.物料内码=t2.FMATERIALID + + + +--更新和新增进检量数据 + +SELECT 物料内码,收料数量,未进检量,FAUXPROPID,CASE WHEN B.仓库内码<>0 THEN B.仓库内码 ELSE ISNULL(tms.FSTOCKID,0) END 仓库内码 +INTO #TMPRECEIVE1 FROM #TMPRECEIVE B +LEFT JOIN T_BD_MATERIAL TM ON (B.物料内码 = TM.FMATERIALID ) +LEFT JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.仓库内码 ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.仓库内码 AND TSL.FLOCALEID = 2052) +--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +ORDER BY 物料内码 + + + + +SELECT 物料内码,收料数量,未进检量,FAUXPROPID,仓库内码 +INTO #TMPRECEIVE3 + FROM #TMPRECEIVE1 B +LEFT JOIN T_BD_MATERIAL TM ON (B.物料内码 = TM.FMATERIALID ) +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.仓库内码 ) +WHERE -- (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +ORDER BY 物料内码 + + +SELECT 物料内码,SUM(收料数量)收料数量,SUM(未进检量)未进检量,FAUXPROPID,仓库内码 +INTO #TMPRECEIVE2 FROM #TMPRECEIVE3 +GROUP BY 仓库内码,物料内码,FAUXPROPID +ORDER BY 仓库内码,物料内码,FAUXPROPID + + +--进检量 +UPDATE t1 SET t1.进检量=t2.未进检量 +FROM #Stock_Status_temp t1 +INNER JOIN #TMPRECEIVE2 t2 ON t1.物料内码=t2.物料内码 AND t1.仓库内码=t2.仓库内码 AND t1.包装内码=T2.FAUXPROPID + +--不存在数据就重新增 + +INSERT INTO #Stock_Status_temp (物料内码,物料代码,物料名称,规格型号,旧编码,包装方式,仓库内码,仓库名称,仓库代码,包装内码,进检量) + +SELECT TM.fmaterialid AS 物料内码,(TM.fnumber) 物料代码,(TML.FNAME) AS 物料名称,(TML.FSPECIFICATION) AS 规格型号,ISNULL(TM.FOLDNUMBER,'') AS 旧编码, +ISNULL(t5.FAUXPTYNUMBER,'') 包装方式,TBS.FSTOCKID 仓库内码,TSL.fname 仓库名称,TBS.fnumber 仓库代码,TSE.FAUXPROPID AS 包装内码,(未进检量) +FROM #TMPRECEIVE2 TSE +INNER JOIN T_BD_MATERIAL TM ON (TM.FMATERIALID = TSE.物料内码 ) +INNER JOIN T_BD_MATERIAL_L TML ON TM.FMATERIALID =TML.FMATERIALID AND TML.FLOCALEID =2052 +INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.仓库内码 ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = TSE.仓库内码 AND TSL.FLOCALEID = 2052) +LEFT OUTER JOIN T_BD_FLEXSITEMDETAILV t3 ON TSE.FAUXPROPID=t3.FID +LEFT OUTER JOIN T_BAS_ASSISTANTDATAENTRY_L t4 ON t3.FF100001=t4.FENTRYID +LEFT OUTER JOIN T_BD_AUXPTYVALUEENTITY t5 ON t3.FF100001=t5.FAUXPTYID AND t3.FID =t5.FAUXPTYVALUEID + +--SELECT * FROM #tmpSal2 TSE +WHERE 未进检量<>0 AND + NOT EXISTS(SELECT * FROM #Stock_Status_temp t2 WHERE TSE.物料内码=t2.物料内码 AND TSE.仓库内码=t2.仓库内码 AND t2.包装内码=TSE.FAUXPROPID) + + +--****************END********************************* + +--*********************未发量***************************************** + +--未发量(生产) +--***********************未发量(生产)***************************** +--查询截止结束日期之前所有生产单用料数 +SELECT (MO.FBILLNO) 生产单号,(MO.FID) 生产内码,(ME.FENTRYID) 生产单分录, +PE.FMATERIALID 物料内码,(PP.FID) 用料内码,PP.FBILLNO 用料单号,(PE.FENTRYID) 用料单分录, +ISNULL(PC.FSTOCKID,0) 仓库内码,PE.FAUXPROPID,(PE.FMUSTQTY) AS 应发数量, +PQ.FSELPICKEDQTY AS 领料选单数量,PQ.FBASENOPICKEDQTY AS 未领数量 +INTO #tmpPPBOM + FROM T_PRD_MO MO +INNER JOIN T_PRD_MOENTRY ME ON MO.FID =ME.FID +INNER JOIN T_PRD_MOENTRY_A MA ON MA.FID =ME.FID AND ME.FENTRYID =MA.FENTRYID +INNER JOIN T_PRD_PPBOM PP ON PP.FMOID=MO.FID AND ME.FENTRYID =PP.FMOENTRYID +INNER JOIN T_PRD_PPBOMENTRY PE ON PP.FID =PE.FID +LEFT JOIN T_PRD_PPBOMENTRY_Q PQ ON PP.FID =PQ.FID AND PE.FENTRYID =PQ.FENTRYID +LEFT JOIN T_PRD_PPBOMENTRY_C PC ON PP.FID =PC.FID AND PE.FENTRYID =PC.FENTRYID +WHERE 1=1 AND MO.FCANCELSTATUS='A' AND MO.FDOCUMENTSTATUS='C' AND ME.FPRODUCTTYPE =1 +AND (MO.FDATE <=@FEDate AND ISNULL(MA.FCONVEYDATE,'')<>'') +AND (MA.FFINISHDATE >@FEDate OR ISNULL(MA.FFINISHDATE,'')='')--2020-04-27之后完工为准完工日期 +--AND (MA.FCLOSEDATE>@FEDate OR ISNULL(MA.FCLOSEDATE,'')='')--2020-04-27之前是结案日期 + +--AND PP.FBILLNO ='PP1910150215' + + --查询截止结束日期之后所有单生产领料单 + --SELECT 未领数量,t2.fbaseOutqty,* +UPDATE t1 SET t1.未领数量=未领数量+t2.fbaseOutqty +FROM #tmpPPBOM t1 +INNER JOIN ( +SELECT tse.FMOID,tse.FMOBILLNO,tse.FMOENTRYID,tse.FPPBOMENTRYID,tse.FPPBOMBILLNO, +TSE.FMATERIALID,SUM(TSED.FBASESTOCKACTUALQTY) fbaseOutqty +FROM T_PRD_PICKMTRL TS INNER JOIN T_PRD_PICKMTRLDATA TSE ON TSE.FID = TS.FID +INNER JOIN T_PRD_PICKMTRLDATA_A TSED ON TSED.FENTRYID = TSE.FENTRYID +LEFT OUTER JOIN T_PRD_PICKMTRLDATA_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + +WHERE (TS.FDATE> @FEDate) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A') +GROUP BY tse.FMOID,tse.FMOBILLNO,tse.FMOENTRYID,tse.FPPBOMENTRYID,tse.FPPBOMBILLNO,TSE.FMATERIALID +) t2 ON t1.生产单号=t2.FMOBILLNO AND t1.生产单分录=t2.FMOENTRYID +AND t1.用料单号=t2.FPPBOMBILLNO AND t1.用料单分录=t2.FPPBOMENTRYID AND t1.物料内码=t2.FMATERIALID + + + +--更新和新增未发量数据 +--SELECT * FROM #tmpPPBOM + +SELECT 物料内码,应发数量,未领数量,FAUXPROPID,CASE WHEN B.仓库内码<>0 THEN B.仓库内码 ELSE ISNULL(tms.FSTOCKID,0) END 仓库内码 +INTO #tmpPPBOM1 FROM #tmpPPBOM B +LEFT JOIN T_BD_MATERIAL TM ON (B.物料内码 = TM.FMATERIALID ) +LEFT JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.仓库内码 ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.仓库内码 AND TSL.FLOCALEID = 2052) +--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +ORDER BY 物料内码 + + + +SELECT 物料内码,应发数量,未领数量,FAUXPROPID,仓库内码 +INTO #tmpPPBOM3 FROM #tmpPPBOM1 B +LEFT JOIN T_BD_MATERIAL TM ON (B.物料内码 = TM.FMATERIALID ) +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.仓库内码 ) +WHERE -- (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +ORDER BY 物料内码 + + + +SELECT 物料内码,SUM(应发数量)应发数量,SUM(未领数量)未领数量,FAUXPROPID,仓库内码 +INTO #tmpPPBOM2 FROM #tmpPPBOM3 +GROUP BY 仓库内码,物料内码,FAUXPROPID +ORDER BY 仓库内码,物料内码,FAUXPROPID + +--未发量(生产) +UPDATE t1 SET t1.未发量=t2.未领数量 +FROM #Stock_Status_temp t1 +INNER JOIN #tmpPPBOM2 +t2 ON t1.物料内码=t2.物料内码 AND t1.仓库内码=t2.仓库内码 AND t1.包装内码=T2.FAUXPROPID + +--不存在数据就重新增 + +INSERT INTO #Stock_Status_temp (物料内码,物料代码,物料名称,规格型号,旧编码,包装方式,仓库内码,仓库名称,仓库代码,包装内码,未发量) + +SELECT TM.fmaterialid AS 物料内码,(TM.fnumber) 物料代码,(TML.FNAME) AS 物料名称,(TML.FSPECIFICATION) AS 规格型号,ISNULL(TM.FOLDNUMBER,'') AS 旧编码, +ISNULL(t5.FAUXPTYNUMBER,'') 包装方式,TBS.FSTOCKID 仓库内码,TSL.fname 仓库名称,TBS.fnumber 仓库代码,TSE.FAUXPROPID AS 包装内码,(未领数量) +FROM #tmpPPBOM2 TSE +INNER JOIN T_BD_MATERIAL TM ON (TM.FMASTERID = TSE.物料内码 ) +INNER JOIN T_BD_MATERIAL_L TML ON TM.FMATERIALID =TML.FMATERIALID AND TML.FLOCALEID =2052 +INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.仓库内码 ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID= TSE.仓库内码 AND TSL.FLOCALEID = 2052) +LEFT OUTER JOIN T_BD_FLEXSITEMDETAILV t3 ON TSE.FAUXPROPID=t3.FID +LEFT OUTER JOIN T_BAS_ASSISTANTDATAENTRY_L t4 ON t3.FF100001=t4.FENTRYID +LEFT OUTER JOIN T_BD_AUXPTYVALUEENTITY t5 ON t3.FF100001=t5.FAUXPTYID AND t3.FID =t5.FAUXPTYVALUEID + +--SELECT * FROM #tmpSal2 TSE +WHERE 未领数量>0 AND + NOT EXISTS(SELECT * FROM #Stock_Status_temp t2 WHERE TSE.物料内码=t2.物料内码 AND TSE.仓库内码=t2.仓库内码 AND t2.包装内码=TSE.FAUXPROPID) + +--*************************未发量(生产)***************************************** + + + +--未发量(委外) +--*************************未发量(委外)*************************** +--查询截止结束日期之前所有委外单用料数 +SELECT (MO.FBILLNO) 委外单号,(MO.FID) 委外内码,(ME.FENTRYID) 委外单分录, +PE.FMATERIALID 物料内码,(PP.FID) 用料内码,PP.FBILLNO 用料单号,(PE.FENTRYID) 用料单分录, +ISNULL(PC.FSTOCKID,0) 仓库内码,PE.FAUXPROPID,(PE.FMUSTQTY) AS 应发数量, +PQ.FSELPICKEDQTY AS 领料选单数量,PQ.FBASENOPICKEDQTY AS 未领数量 +INTO #tmpSubBOM +FROM T_SUB_REQORDER MO +INNER JOIN T_SUB_REQORDERENTRY ME ON MO.FID =ME.FID +--INNER JOIN T_PRD_MOENTRY_A MA ON MA.FID =ME.FID AND ME.FENTRYID =MA.FENTRYID +INNER JOIN T_SUB_PPBOM PP ON PP.FSUBREQID =MO.FID AND ME.FENTRYID =PP.FSUBREQENTRYID +INNER JOIN T_SUB_PPBOMENTRY PE ON PP.FID =PE.FID +LEFT JOIN T_SUB_PPBOMENTRY_Q PQ ON PP.FID =PQ.FID AND PE.FENTRYID =PQ.FENTRYID +LEFT JOIN T_SUB_PPBOMENTRY_C PC ON PP.FID =PC.FID AND PE.FENTRYID =PC.FENTRYID +WHERE 1=1 AND MO.FCANCELSTATUS='A' AND MO.FDOCUMENTSTATUS='C' AND ME.FPRODUCTTYPE =1 +AND (MO.FDATE <=@FEDate AND ISNULL(ME.FCONVEYDATE,'')<>'') +AND (ME.FCLOSEDATE>@FEDate OR ISNULL(ME.FCLOSEDATE,'')='') + + + + + --查询截止结束日期之后所有单生产领料单 + --SELECT 未领数量,t2.fbaseOutqty,* +UPDATE t1 SET t1.未领数量=未领数量+t2.fbaseOutqty +FROM #tmpSubBOM t1 +INNER JOIN ( +SELECT tse.FSUBREQID,tse.FSUBREQBILLNO,tse.FSUBREQENTRYID,tse.FPPBOMENTRYID,tse.FPPBOMBILLNO, +TSE.FMATERIALID,SUM(TSE.FBASESTOCKACTUALQTY) fbaseOutqty +FROM T_SUB_PICKMTRL TS INNER JOIN T_SUB_PICKMTRLDATA TSE ON TSE.FID = TS.FID +INNER JOIN T_SUB_PICKMTRLDATA_A TSED ON TSED.FENTRYID = TSE.FENTRYID +LEFT OUTER JOIN T_SUB_PICKMTRLDATA_L TSL ON (TSE.FENTRYID = TSL.FENTRYID AND FLOCALEID = 2052) +INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + +WHERE (TS.FDATE> @FEDate) +AND (((TS.FSTOCKORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) +AND TM.FFORBIDSTATUS = 'A') AND TS.FCANCELSTATUS = 'A') +GROUP BY tse.FSUBREQID,tse.FSUBREQBILLNO,tse.FSUBREQENTRYID,tse.FPPBOMENTRYID,tse.FPPBOMBILLNO,TSE.FMATERIALID +) t2 ON t1.委外单号=t2.FSUBREQBILLNO AND t1.委外单分录=t2.FSUBREQENTRYID +AND t1.用料单号=t2.FPPBOMBILLNO AND t1.用料单分录=t2.FPPBOMENTRYID AND t1.物料内码=t2.FMATERIALID + + + +--更新和新增未发量数据 +--SELECT * FROM #tmpPPBOM + +SELECT 物料内码,应发数量,未领数量,FAUXPROPID,CASE WHEN B.仓库内码<>0 THEN B.仓库内码 ELSE ISNULL(tms.FSTOCKID,0) END 仓库内码 + INTO #tmpSubBOM1 FROM #tmpSubBOM B +LEFT JOIN T_BD_MATERIAL TM ON (B.物料内码 = TM.FMATERIALID ) +LEFT JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.仓库内码 ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.仓库内码 AND TSL.FLOCALEID = 2052) +--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +ORDER BY 物料内码 + + + +SELECT 物料内码,应发数量,未领数量,FAUXPROPID,仓库内码 +INTO #tmpSubBOM3 FROM #tmpSubBOM1 B +LEFT JOIN T_BD_MATERIAL TM ON (B.物料内码 = TM.FMATERIALID ) +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.仓库内码 ) +WHERE -- (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) + (TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +ORDER BY 物料内码 + + + +SELECT 物料内码,SUM(应发数量)应发数量,SUM(未领数量)未领数量,FAUXPROPID,仓库内码 +INTO #tmpSubBOM2 FROM #tmpSubBOM3 +GROUP BY 仓库内码,物料内码,FAUXPROPID +ORDER BY 仓库内码,物料内码,FAUXPROPID + + +--未发量(委外) +UPDATE t1 SET t1.未发量=ISNULL(t1.未发量,0)+ISNULL(t2.未领数量,0) +FROM #Stock_Status_temp t1 +INNER JOIN #tmpSubBOM2 +t2 ON t1.物料内码=t2.物料内码 AND t1.仓库内码=t2.仓库内码 AND t1.包装内码=T2.FAUXPROPID + + +--不存在数据就重新增 + +INSERT INTO #Stock_Status_temp (物料内码,物料代码,物料名称,规格型号,旧编码,包装方式,仓库内码,仓库名称,仓库代码,包装内码,未发量) + +SELECT TM.fmaterialid AS 物料内码,(TM.fnumber) 物料代码,(TML.FNAME) AS 物料名称,(TML.FSPECIFICATION) AS 规格型号,ISNULL(TM.FOLDNUMBER,'') AS 旧编码 + ,ISNULL(t5.FAUXPTYNUMBER,'') 包装方式,TBS.FSTOCKID 仓库内码,TSL.fname 仓库名称,TBS.fnumber 仓库代码,TSE.FAUXPROPID AS 包装内码,(未领数量) +FROM #tmpSubBOM2 TSE + INNER JOIN T_BD_MATERIAL TM ON (TM.FMASTERID = TSE.物料内码 ) + INNER JOIN T_BD_MATERIAL_L TML ON TM.FMATERIALID =TML.FMATERIALID AND TML.FLOCALEID =2052 + INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.仓库内码 ) + LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID= TSE.仓库内码 AND TSL.FLOCALEID = 2052) + LEFT OUTER JOIN T_BD_FLEXSITEMDETAILV t3 ON TSE.FAUXPROPID=t3.FID + LEFT OUTER JOIN T_BAS_ASSISTANTDATAENTRY_L t4 ON t3.FF100001=t4.FENTRYID + LEFT OUTER JOIN T_BD_AUXPTYVALUEENTITY t5 ON t3.FF100001=t5.FAUXPTYID AND t3.FID =t5.FAUXPTYVALUEID +--SELECT * FROM #tmpSal2 TSE +WHERE 未领数量 > 0 + AND NOT EXISTS(SELECT * FROM #Stock_Status_temp t2 WHERE TSE.物料内码=t2.物料内码 AND TSE.仓库内码=t2.仓库内码 AND t2.包装内码=TSE.FAUXPROPID) + +--*********************未发量(委外)*END******************************* + +-- --截止查询结束日期销售未发数 +-- UPDATE t1 SET t1.未发量=ISNULL(t1.未发量,0)+ISNULL(t1.受订量,0) +--FROM #Stock_Status_temp t1 +--WHERE ISNULL(t1.受订量,0)<>0 + +--**********************END******************************* + +--申购未转数 +--*******************strat***************************** + +--查询截止结束日期之前所有采购申请 + +SELECT TS.FAPPLICATIONORGID fstockorgid,TS.FBILLNO 申请单号,TS.FID AS 申请内码,TSE.FENTRYID 申请分录,TSE.FMATERIALID 物料内码, + ISNULL(TSE.FAUXPROPID,0) FAUXPROPID,TS.FAPPLICATIONDATE fdate,TMS.FSTOCKID 仓库内码, + FBASEUNITQTY 申请数量,TSEF.FREMAINQTY AS 未转数 +INTO #TMPREQ +FROM T_PUR_REQUISITION TS + INNER JOIN T_PUR_REQENTRY TSE ON TSE.FID = TS.FID + INNER JOIN T_PUR_REQENTRY_R TSEF ON (TSE.FID = TSEF.FID AND TSE.FENTRYID = TSEF.FENTRYID) + INNER JOIN T_PUR_REQENTRY_S TSES ON (TSE.FID = TSES.FID AND TSE.FENTRYID = TSES.FENTRYID) + LEFT JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID=TM.FMATERIALID + LEFT JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +WHERE 1=1 +--AND ts.FBILLNO ='SQ1910100001'AND FORDERBASEQTY<>FBASEUNITQTY AND TS.FCLOSESTATUS<>'B' + AND (TS.FAPPLICATIONDATE <=@FEDate) + AND (TS.FCLOSEDATE>@FEDate or ISNULL(TS.FCLOSEDATE,'')='') + AND (TS.FAPPLICATIONORGID IN (1) AND TS.FDOCUMENTSTATUS IN ('C')) + + --查询截止结束日期之后所有采购订单 + --SELECT * +UPDATE t1 SET t1.未转数=未转数+t2.fbaseOrdqty +FROM #TMPREQ t1 +INNER JOIN ( + SELECT t1r.FSRCBILLNO,t1k.FSBILLID,t1k.FSID,t1.FMATERIALID,SUM(t1.FBASEUNITQTY) fbaseOrdqty + FROM T_PUR_POORDER t0 + INNER JOIN T_PUR_POORDERENTRY t1 ON (t0.FID = t1.FID) + INNER JOIN T_PUR_POORDERENTRY_R t1R ON(t1R.FID = t1.FID AND t1.FENTRYID = t1R.FENTRYID) + INNER JOIN T_PUR_POORDERENTRY_LK t1k ON(t1.FENTRYID = t1k.FENTRYID) + INNER JOIN T_BD_MATERIAL TM ON t1.FMATERIALID = TM.FMATERIALID + WHERE t0.FDATE>@FEDate + AND ( t0.FCANCELSTATUS = 'A' AND TM.FFORBIDSTATUS = 'A') + GROUP BY t1r.FSRCBILLNO,t1k.FSBILLID,t1k.FSID,t1.FMATERIALID + +) t2 ON t1.申请内码=t2.FSBILLID AND t1.申请分录=t2.FSID AND t1.物料内码=t2.FMATERIALID + + +--更新和新增进检量数据 + + +SELECT 物料内码,申请数量,未转数,FAUXPROPID,CASE WHEN B.仓库内码<>0 THEN B.仓库内码 ELSE ISNULL(tms.FSTOCKID,0) END 仓库内码 +INTO #TMPREQ1 FROM #TMPREQ B +LEFT JOIN T_BD_MATERIAL TM ON (B.物料内码 = TM.FMATERIALID ) +LEFT JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.仓库内码 ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.仓库内码 AND TSL.FLOCALEID = 2052) +--WHERE (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +ORDER BY 物料内码 + + +SELECT 物料内码,申请数量,未转数,FAUXPROPID,仓库内码 +INTO #TMPREQ3 FROM #TMPREQ1 B +LEFT JOIN T_BD_MATERIAL TM ON (B.物料内码 = TM.FMATERIALID ) +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.仓库内码 ) +WHERE -- (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +(TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +ORDER BY 物料内码 + + +SELECT 物料内码,SUM(申请数量)申请数量,SUM(未转数)未转数,FAUXPROPID,仓库内码 +INTO #TMPREQ2 FROM #TMPREQ3 +GROUP BY 仓库内码,物料内码,FAUXPROPID +ORDER BY 仓库内码,物料内码,FAUXPROPID + +--申购未转数 +UPDATE t1 SET t1.申购未转数=t2.未转数 +FROM #Stock_Status_temp t1 +INNER JOIN #TMPREQ2 t2 ON t1.物料内码=t2.物料内码 AND t1.仓库内码=t2.仓库内码 AND t1.包装内码=T2.FAUXPROPID + +--不存在数据就重新增 + +INSERT INTO #Stock_Status_temp (物料内码,物料代码,物料名称,规格型号,旧编码,包装方式,仓库内码,仓库名称,仓库代码,包装内码,申购未转数) + +SELECT TM.fmaterialid AS 物料内码,(TM.fnumber) 物料代码,(TML.FNAME) AS 物料名称,(TML.FSPECIFICATION) AS 规格型号,ISNULL(TM.FOLDNUMBER,'') AS 旧编码, +ISNULL(t5.FAUXPTYNUMBER,'') 包装方式,TBS.FSTOCKID 仓库内码,TSL.fname 仓库名称,TBS.fnumber 仓库代码,TSE.FAUXPROPID AS 包装内码,(未转数) +FROM #TMPREQ2 TSE +INNER JOIN T_BD_MATERIAL TM ON (TM.FMASTERID = TSE.物料内码 ) +INNER JOIN T_BD_MATERIAL_L TML ON TM.FMATERIALID =TML.FMATERIALID AND TML.FLOCALEID =2052 +INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.仓库内码 ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = TSE.仓库内码 AND TSL.FLOCALEID = 2052) +LEFT OUTER JOIN T_BD_FLEXSITEMDETAILV t3 ON TSE.FAUXPROPID=t3.FID +LEFT OUTER JOIN T_BAS_ASSISTANTDATAENTRY_L t4 ON t3.FF100001=t4.FENTRYID +LEFT OUTER JOIN T_BD_AUXPTYVALUEENTITY t5 ON t3.FF100001=t5.FAUXPTYID AND t3.FID =t5.FAUXPTYVALUEID + +--SELECT * FROM #tmpSal2 TSE +WHERE 未转数<>0 AND + NOT EXISTS(SELECT * FROM #Stock_Status_temp t2 WHERE TSE.物料内码=t2.物料内码 AND TSE.仓库内码=t2.仓库内码 AND t2.包装内码=TSE.FAUXPROPID) + + +--***************************************************** + +--占用量 + +--******************************************************** + SELECT TSE.FMATERIALID 物料内码,(TSE.FBASEQTY)FBASEQTY, + CASE WHEN TSE.FSTOCKID<>0 THEN TSE.FSTOCKID ELSE ISNULL(tms.FSTOCKID,0)END FSTOCKID,TSE.FAUXPROPID + INTO #TMPLINK FROM T_PLN_RESERVELINK TS + INNER JOIN T_PLN_RESERVELINKENTRY TSE ON TS.FID=TSE.FID + INNER JOIN T_BD_MATERIAL TM ON TSE.FMATERIALID = TM.FMATERIALID + LEFT JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID + LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = TSE.FSTOCKID ) +LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = TSE.FSTOCKID AND TSL.FLOCALEID = 2052) + WHERE TSE.FBASEQTY<>0 + --AND (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +--GROUP BY TSE.FSTOCKID,TSE.FMATERIALID,FAUXPROPID +ORDER BY FSTOCKID,TSE.FMATERIALID,FAUXPROPID + + +SELECT 物料内码,SUM(FBASEQTY)FBASEQTY,FAUXPROPID,B.FSTOCKID 仓库内码 +INTO #TMPLINK1 FROM #TMPLINK B +LEFT JOIN T_BD_MATERIAL TM ON (B.物料内码 = TM.FMATERIALID ) +--LEFT JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID +LEFT JOIN T_BD_STOCK TSK ON ( TSK.FMASTERID = B.FSTOCKID ) +--LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = B.FSTOCKID AND TSL.FLOCALEID = 2052) +WHERE -- (TM.FNUMBER >=@FSWL AND TM.FNUMBER <=@FEWL) +(TM.FNUMBER IN(SELECT DISTINCT 物料编码 FROM #YC_T_MRP )) +AND TSK.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID ) +GROUP BY b.FSTOCKID,物料内码,FAUXPROPID +ORDER BY b.FSTOCKID,物料内码,FAUXPROPID + +--占用量 +UPDATE t1 SET t1.占用量=t2.FBASEQTY +FROM #Stock_Status_temp t1 + INNER JOIN #TMPLINK1 t2 ON t1.物料内码=t2.物料内码 + AND t1.仓库内码=t2.仓库内码 + AND t1.包装内码=T2.FAUXPROPID + +--不存在数据就重新增占用量 + +INSERT INTO #Stock_Status_temp (物料内码,物料代码,物料名称,规格型号,旧编码,包装方式,仓库内码,仓库名称,仓库代码,包装内码,占用量) +SELECT + TM.fmaterialid AS 物料内码,(TM.fnumber) 物料代码,(TML.FNAME) AS 物料名称 + ,(TML.FSPECIFICATION) AS 规格型号,ISNULL(TM.FOLDNUMBER,'') AS 旧编码 + ,ISNULL(t5.FAUXPTYNUMBER,'') 包装方式,TBS.FSTOCKID 仓库内码,TSL.fname 仓库名称 + ,TBS.fnumber 仓库代码,TSE.FAUXPROPID AS 包装内码,(FBASEQTY) +FROM #TMPLINK1 TSE + INNER JOIN T_BD_MATERIAL TM ON (TM.FMASTERID = TSE.物料内码 ) + INNER JOIN T_BD_MATERIAL_L TML ON TM.FMATERIALID=TML.FMATERIALID AND TML.FLOCALEID =2052 + INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID + INNER JOIN T_BD_STOCK TBS ON (TBS.FMASTERID = TSE.仓库内码 ) + LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = TSE.仓库内码 AND TSL.FLOCALEID = 2052) + LEFT OUTER JOIN T_BD_FLEXSITEMDETAILV t3 ON TSE.FAUXPROPID=t3.FID + LEFT OUTER JOIN T_BAS_ASSISTANTDATAENTRY_L t4 ON t3.FF100001=t4.FENTRYID + LEFT OUTER JOIN T_BD_AUXPTYVALUEENTITY t5 ON t3.FF100001=t5.FAUXPTYID AND t3.FID =t5.FAUXPTYVALUEID +WHERE FBASEQTY <> 0 + AND NOT EXISTS( + SELECT 1 + FROM #Stock_Status_temp t2 + WHERE TSE.物料内码=t2.物料内码 + AND TSE.仓库内码=t2.仓库内码 + AND t2.包装内码=TSE.FAUXPROPID) + + +--*********************占用量END*********************************** + + +--可用库存 +--******************************************************* + +UPDATE t1 SET t1.可用库存=ISNULL(期末结存,0)+ISNULL(t1.在制数,0)+ISNULL(在途量,0)-ISNULL(未发量,0)-ISNULL(受订量,0) +FROM #Stock_Status_temp t1 + +--*********************可用库存END********************************** + +--新增BOM新增物料 +SELECT 序号=IDENTITY(INT,1,1),物料内码,物料代码,物料名称,规格型号,旧编码,上期结存 + ,本期采购入库,本期耗用,期末结存,在途量,在制数,进检量,未发量,领料数量,销售出库数量 + ,仓库拨出数量,仓库拨入数量,申购未转数,受订量,占用量,可用库存 + ,仓库内码,仓库代码,仓库名称,包装方式,FProMaterialId,产品代码 + INTO #Stock_Bom +FROM ( + SELECT t1.FMATERIALID 物料内码,物料代码,t2.物料名称,规格型号,旧编码,上期结存,本期采购入库,本期耗用,期末结存 + ,在途量,在制数,进检量,未发量,领料数量,销售出库数量,仓库拨出数量,仓库拨入数量,申购未转数 + ,受订量,占用量,可用库存,t2.仓库内码,仓库代码,仓库名称,包装方式,t1.FProMaterialId,t1.FOrderNum 产品代码,FOrderNum + ,FSEQ1,FSEQ2,FSEQ3,FSEQ4,FSEQ5,FSEQ6 + FROM #YC_T_MRP t1 + INNER JOIN #Stock_Status_temp t2 ON t1.物料编码=t2.物料代码 + UNION ALL + SELECT t1.FMATERIALID 物料内码,t1.物料编码 物料代码,t2.FNAME 物料名称,t2.FSPECIFICATION 规格型号 + ,ISNULL(TM.FOLDNUMBER,'') 旧编码,0 上期结存,0 本期采购入库,0 本期耗用,0 期末结存 + ,0 在途量,0 在制数,0 进检量, 0 未发量,0 领料数量,0 销售出库数量,0 仓库拨出数量 + ,0 仓库拨入数量,0 申购未转数,0 受订量,0 占用量,0 可用库存,ts.FSTOCKID,ts.FNUMBER AS 仓库代码 + ,tsl.FNAME AS 仓库名称,''包装方式,t1.FProMaterialId,t1.FOrderNum 产品代码,FOrderNum + ,FSEQ1,FSEQ2,FSEQ3,FSEQ4,FSEQ5,FSEQ6 + FROM #YC_T_MRP t1 + INNER JOIN T_BD_MATERIAL TM ON (TM.FMATERIALID = t1.FMATERIALID ) + INNER JOIN T_BD_MATERIAL_L t2 ON (t2.FMATERIALID = t1.FMATERIALID ) + INNER JOIN T_BD_MATERIALSTOCK TMS ON TM.FMATERIALID = TMS.FMATERIALID + INNER JOIN T_BD_STOCK ts ON tms.FSTOCKID=ts.FSTOCKID + LEFT OUTER JOIN T_BD_STOCK_L TSL ON (TSL.FSTOCKID = TS.FSTOCKID AND TSL.FLOCALEID = 2052) + WHERE 1=1 + AND 物料编码 NOT IN (SELECT DISTINCT 物料代码 FROM #Stock_Status_temp t2) + AND TMS.FSTOCKID IN ( SELECT DISTINCT FStockID FROM #tmpStockID))t +ORDER BY FOrderNum,FSEQ1,FSEQ2,FSEQ3,FSEQ4,FSEQ5,FSEQ6 + +SELECT + t0.FMATERIALID AS 'ProMaterialId' + ,t1e.FMATERIALID + ,t1e_c.FSTOCKID + --,t1.FBILLNO + ,SUM(t1e.FBASENEEDQTY) AS 'FBASENEEDQTY'--基本单位已领数量 + ,SUM(t1e_q.FBASEPICKEDQTY) AS 'FBASEPICKEDQTY'--基本单位已领数量 + ,SUM(t1e_q.FBASENOPICKEDQTY) AS 'FBASENOPICKEDQTY'--基本单位未领数量 + ,ISNULL(stuff((SELECT DISTINCT ','+ CONVERT(nvarchar(100),tt.FID) FROM #TEMPMO tt WHERE tt.FMATERIALID = t0.FMATERIALID for xml path('')),1,1,''),'') AS 'MOIDS' + ,ISNULL(stuff((SELECT DISTINCT ','+ CONVERT(nvarchar(100),tt.FENTRYID) FROM #TEMPMO tt WHERE tt.FMATERIALID = t0.FMATERIALID for xml path('')),1,1,''),'') AS 'MOENTRYIDS' + ,ISNULL(stuff((SELECT DISTINCT ','+ CONVERT(nvarchar(100),tt.FBILLNO) FROM #TEMPMO tt WHERE tt.FMATERIALID = t0.FMATERIALID for xml path('')),1,1,''),'') AS 'MONOS' + ,ISNULL(stuff((SELECT DISTINCT ','+ CONVERT(nvarchar(100),tt.FSALEORDERNO) FROM #TEMPMO tt WHERE tt.FMATERIALID = t0.FMATERIALID AND tt.FSALEORDERNO !='' for xml path('')),1,1,''),'') AS 'SALENOS' + INTO #TEMPMOQTY +FROM #TEMPMO t0 + --INNER JOIN T_PRD_PPBOM t1 ON t0.FENTRYID = t1.FMOENTRYID AND t0.FMATERIALID = t1.FMATERIALID + INNER JOIN T_PRD_PPBOMENTRY t1e ON t1e.FMOENTRYID = t0.FENTRYID --生产用料清单表体 + INNER JOIN T_PRD_PPBOMENTRY_Q t1e_q ON t1e_q.FENTRYID = t1e.FENTRYID + INNER JOIN T_PRD_PPBOMENTRY_C t1e_c ON t1e_c.FENTRYID = t1e.FENTRYID +GROUP BY + t0.FMATERIALID,t1e.FMATERIALID,t1e_c.FSTOCKID + +SELECT t0.ProMaterialId,t0.MONOS,t0.SALENOS,t0.MOIDS,t0.MOENTRYIDS + INTO #TEMPMONO2Pro +FROM #TEMPMOQTY t0 +GROUP BY t0.ProMaterialId,t0.MONOS,t0.SALENOS,t0.MOIDS,t0.MOENTRYIDS + +SELECT 序号 AS 'FIDENTITYID' + ,物料内码 + ,物料代码,物料名称,规格型号,旧编码 + ,上期结存,本期采购入库,本期耗用,期末结存 + ,销售出库数量,仓库拨出数量,仓库拨入数量,申购未转数 + ,在途量,在制数,进检量,未发量,领料数量,受订量,占用量,可用库存 + ,仓库代码,仓库名称,包装方式,产品代码 + ,t1.FBASENEEDQTY + ,t1.FBASENOPICKEDQTY + ,t1.FBASEPICKEDQTY + --,CASE CHARINDEX(',',t2.MONOS) WHEN 0 THEN t2.MONOS ELSE '' END AS 'MONO' + --,CASE CHARINDEX(',',t2.SALENOS) WHEN 0 THEN t2.SALENOS ELSE '' END AS 'SALENO' + ,t2.SALENOS AS SALENO + ,t2.MONOS AS MONO + ,t2.SALENOS,t2.MOENTRYIDS,t2.MOIDS,t2.ProMaterialId + INTO {0} +FROM #Stock_Bom t0 + LEFT JOIN #TEMPMONO2Pro t2 on t2.ProMaterialId = t0.FProMaterialId + LEFT JOIN #TEMPMOQTY t1 ON t0.物料内码 = t1.FMATERIALID AND t0.仓库内码 = t1.FSTOCKID AND t0.FProMaterialId = t1.ProMaterialId + +DROP TABLE #TEMPMO +DROP TABLE #TEMPMOQTY +DROP TABLE #TEMPMONO2Pro +DROP TABLE #Stock_Bom +DROP TABLE #TMP +DROP TABLE #TMP1 +DROP TABLE #TMPLINK +DROP TABLE #TMPLINK1 +DROP TABLE #TMP4 +DROP TABLE #TMP5 +DROP TABLE #TMP6 +DROP TABLE #TMP7 +DROP TABLE #TMP8 +DROP TABLE #tmpSal +DROP TABLE #tmpSal1 +DROP TABLE #tmpSal2 +DROP TABLE #tmpSal3 +DROP TABLE #tmpMO +DROP TABLE #tmpMO1 +DROP TABLE #tmpMO2 +DROP TABLE #tmpMO3 + +DROP TABLE #TMPREQ +DROP TABLE #TMPREQ1 +DROP TABLE #TMPREQ2 +DROP TABLE #TMPREQ3 +DROP TABLE #TMPRECEIVE +DROP TABLE #TMPRECEIVE1 +DROP TABLE #TMPRECEIVE2 +DROP TABLE #TMPRECEIVE3 +DROP TABLE #tmppoorder +DROP TABLE #tmppoorder1 +DROP TABLE #tmppoorder2 +DROP TABLE #tmppoorder3 +DROP TABLE #tmpPPBOM +DROP TABLE #tmpPPBOM1 +DROP TABLE #tmpPPBOM2 +DROP TABLE #tmpPPBOM3 +DROP TABLE #tmpSUBBOM +DROP TABLE #tmpSUBBOM1 +DROP TABLE #tmpSUBBOM2 +DROP TABLE #tmpSUBBOM3 +DROP TABLE #Stock_Status_temp +SET nocount off + """).format(tableName,_lcId,whereSql,_F_ora_SDate,_F_ora_EDate,_FSStock); + # raise Exception(sql);#可以通过此方法弹出Sql语句进行调试验证 + cu = DBUtils.Execute(this.Context,sql);#执行SQL,将报表数据写入临时表 + +#构建账表列头 +def GetReportHeaders(rptfilter): + + header = ReportHeader(); + localEid = this.Context.UserLocale.LCID;#获取当前语言环境代码,中文为2052 + # 索引 + global _colIndex + _colIndex = 0; + def Incr1(val = 1): + global _colIndex + _resNum = _colIndex + _colIndex += val + return _resNum + datas = [ + {"fieldName" :"FIDENTITYID", "showName" :"序号" } + ,{"fieldName" :"MONO", "showName" :"生产订单号" } + ,{"fieldName" :"SALENO", "showName" :"销售订单号" } + ,{"fieldName" :"产品代码", "showName" :"产品代码" } + ,{"fieldName" :"物料代码", "showName" :"物料代码" } + ,{"fieldName" :"物料名称", "showName" :"物料名称" } + ,{"fieldName" :"规格型号", "showName" :"规格型号" } + ,{"fieldName" :"FBASENEEDQTY", "showName" :"订单.需求数量","dataType":SqlStorageType.SqlDecimal } + ,{"fieldName" :"FBASENOPICKEDQTY", "showName" :"订单.未领数量","dataType":SqlStorageType.SqlDecimal } + ,{"fieldName" :"FBASEPICKEDQTY", "showName" :"订单.已领数量","dataType":SqlStorageType.SqlDecimal } + ,{"fieldName" :"上期结存", "showName" :"上期结存" } + ,{"fieldName" :"本期采购入库", "showName" :"本期采购入库","dataType":SqlStorageType.SqlDecimal } + ,{"fieldName" :"本期耗用", "showName" :"本期耗用","dataType":SqlStorageType.SqlDecimal } + ,{"fieldName" :"期末结存", "showName" :"期末结存","dataType":SqlStorageType.SqlDecimal } + ,{"fieldName" :"在途量", "showName" :"在途量","dataType":SqlStorageType.SqlDecimal } + ,{"fieldName" :"在制数", "showName" :"在制数","dataType":SqlStorageType.SqlDecimal } + ,{"fieldName" :"进检量", "showName" :"进检量","dataType":SqlStorageType.SqlDecimal } + ,{"fieldName" :"未发量", "showName" :"未发量","dataType":SqlStorageType.SqlDecimal } + ,{"fieldName" :"领料数量", "showName" :"领料数量","dataType":SqlStorageType.SqlDecimal } + ,{"fieldName" :"销售出库数量", "showName" :"销售出库数量","dataType":SqlStorageType.SqlDecimal } + ,{"fieldName" :"仓库拨出数量", "showName" :"仓库拨出数量","dataType":SqlStorageType.SqlDecimal } + ,{"fieldName" :"仓库拨入数量", "showName" :"仓库拨入数量","dataType":SqlStorageType.SqlDecimal } + ,{"fieldName" :"申购未转数", "showName" :"申购未转数","dataType":SqlStorageType.SqlDecimal } + ,{"fieldName" :"受订量", "showName" :"受订量","dataType":SqlStorageType.SqlDecimal } + ,{"fieldName" :"占用量", "showName" :"占用量","dataType":SqlStorageType.SqlDecimal } + ,{"fieldName" :"可用库存", "showName" :"可用库存","dataType":SqlStorageType.SqlDecimal } + ,{"fieldName" :"仓库代码", "showName" :"仓库代码" } + ,{"fieldName" :"仓库名称", "showName" :"仓库名称" } + ,{"fieldName" :"包装方式", "showName" :"包装方式" } + ,{"fieldName" :"旧编码", "showName" :"旧编码" } + ]; + + for item in datas: + head = header.AddChild(item["fieldName"], LocaleValue(item["showName"], localEid), Incr1()) + if "dataType" in item: + head.ColType = item["dataType"] + if "Mergeable" in item: + head.Mergeable = item["Mergeable"] + if "IsLeaf" in item: + head.IsHyperlink = item["IsHyperlink"] + + return header; + +#设置报表表头字段值 +#这里主要是把过滤框设置的字段值,显示到报表表头 +def GetReportTitles(rptfilter): + reportTitles = ReportTitles(); + + custFilter = rptfilter.FilterParameter.CustomFilter; + if(custFilter == None): + return; + _proMaterialId = custFilter["ProMaterialId"]; + # _materialId = custFilter["MaterialId"]; + + _billNo = objEx.ToSafeString(custFilter["BILLNO"]); + # _PPBomBillNo = objEx.ToSafeString(custFilter["PPBOMBILLNO"]); + _saleOrderNo = objEx.ToSafeString(custFilter["SALEORDERNO"]); + _F_ora_SDate = objEx.ToSafeString(custFilter["F_ora_SDate"]) + _F_ora_EDate = objEx.ToSafeString(custFilter["F_ora_EDate"]) + # 仓库 + _stockSelectCollection = custFilter["FStockSelect"] + if(_proMaterialId != None): + reportTitles.AddTitle("FTitleProMaterialId", _proMaterialId["Name"]); + # if(_materialId != None): + # reportTitles.AddTitle("FTitleMaterialId", _materialId["Name"]); + if(_billNo != ""): + reportTitles.AddTitle("FTitleBILLNO", _billNo); + # if(_PPBomBillNo != ""): + # reportTitles.AddTitle("FTitlePPBOMBILLNO", _PPBomBillNo); + if(_saleOrderNo != ""): + reportTitles.AddTitle("FTitleSALEORDERNO", _saleOrderNo); + if(_F_ora_SDate != ""): + reportTitles.AddTitle("F_ora_SDate", _F_ora_SDate); + if(_F_ora_EDate != ""): + reportTitles.AddTitle("F_ora_EDate", _F_ora_EDate); + + if _stockSelectCollection != None and _stockSelectCollection.Count > 0: + nameList = list(map(lambda x : str(x["FStockSelect"]["Name"]), _stockSelectCollection)) + _stockNames = ",".join(nameList) + reportTitles.AddTitle("FStockSelect" ,_stockNames) + + return reportTitles; + +#报表关闭触发,通常在此处清理报表过程产生的临时表 +def CloseReport(): + this.DropTempTable(); \ No newline at end of file diff --git a/03.珠海市汇威精密制造有限公司/HW.Python/生产订单保存插件.py b/03.珠海市汇威精密制造有限公司/HW.Python/生产订单保存插件.py new file mode 100644 index 0000000..970c319 --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW.Python/生产订单保存插件.py @@ -0,0 +1,52 @@ +#clrп +import clr +#Ӷcloudij +clr.AddReference('System') +clr.AddReference('System.Data') +clr.AddReference('Kingdee.BOS') +clr.AddReference('Kingdee.BOS.Core') +clr.AddReference('Kingdee.BOS.App') +clr.AddReference('Kingdee.BOS.Contracts') +clr.AddReference('Kingdee.BOS.DataEntity') +clr.AddReference('Kingdee.BOS.ServiceHelper') +#dairycloudеijʵ󣨷ռ䵼룬ݹ鵼룩 +from Kingdee.BOS.Core import * +from Kingdee.BOS.Util import * +from Kingdee.BOS.Core.Bill import * +from Kingdee.BOS.Core.Bill.PlugIn import * +from Kingdee.BOS.Orm.DataEntity import * +from Kingdee.BOS.Core.DynamicForm.PlugIn import * +from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import * +from Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel import * +from System import * +from System.Data import * +from Kingdee.BOS.App.Data import * +from System.Collections.Generic import List +from Kingdee.BOS.ServiceHelper import * + +# def OnPreparePropertys(e): +# e.FieldKeys.Add("F_CYG_Worktype") + +def EndOperationTransaction(e): + # 8ύ9126 + if this.FormOperation.OperationId == 8: + if e.DataEntitys != None and e.DataEntitys.Count > 0: + idList = set(map(lambda x : str(x["Id"]),e.DataEntitys)) + + sql ="""/*dialect*/ +-- +UPDATE t1e SET t1e.FMJDZDZID = t0.FMJDZDZID +FROM T_ENG_BOM t0 + INNER JOIN T_PRD_MOENTRY t1e on t0.FID = t1e.FBOMID +WHERE t0.FMJDZDZID != 0 AND t1e.FMJDZDZID != t0.FMJDZDZID + AND t1e.FID IN ({0}) + +--嵥 +UPDATE t0 SET t0.FMJDZDZID = t1.FMJDZDZID +FROM T_PRD_PPBOM t0 + INNER JOIN T_ENG_BOM t1 on t0.FBOMID = t1.FID +WHERE t1.FMJDZDZID != 0 AND t1.FMJDZDZID != t0.FMJDZDZID + AND t0.FMOID IN ({0}) + """.format(",".join(idList)) + + DBUtils.Execute(this.Context,sql) diff --git a/03.珠海市汇威精密制造有限公司/HW.Python/穿透表.py b/03.珠海市汇威精密制造有限公司/HW.Python/穿透表.py new file mode 100644 index 0000000..81991d8 --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW.Python/穿透表.py @@ -0,0 +1,102 @@ +import clr +clr.AddReference("System") +clr.AddReference("System.Data") +clr.AddReference("Kingdee.BOS") +clr.AddReference("Kingdee.BOS.Core") +clr.AddReference("Kingdee.BOS.App") +clr.AddReference("Kingdee.BOS.ServiceHelper") +from Kingdee.BOS import * +from Kingdee.BOS.Core import * +from Kingdee.BOS.Core.Bill import * +from Kingdee.BOS.Core.List import * +from Kingdee.BOS.Core.Report import * +from System import * +from System.Data import * +from System.Net import * +from System.Text import * +from Kingdee.BOS.App.Data import * +from Kingdee.BOS.Core.List.PlugIn import * +from Kingdee.BOS.Core.List.PlugIn.Args import * + +# def FormatCellValue(args): +# # ڸʽ +# if args.Header.ColType == SqlStorageType.SqlDatetime: +# args.FormateValue = ("{0}").format(DateTime.Parse(str(args.FormateValue)).ToString("yyyy-MM-dd")) + +def CellDbClick(e): + e.Cancel = True + fldKey = e.Header.FieldName; + # + if fldKey == "MONO": + reportModel = this.Model + tab = reportModel.DataSource + row = e.CellRowIndex - 1 + data = tab.Rows[row] + moIds = "0"; + if data["MOIDS"] !=None and data["MOIDS"] != "": + moIds = data["MOIDS"]; + filterStr = "FID IN ({0}) AND FMATERIALID = {1} ".format(moIds,data["ProMaterialId"]) + ShowListForm("PRD_MO", filterStr) + + # . + if fldKey == "FBASENEEDQTY": + reportModel = this.Model + tab = reportModel.DataSource + row = e.CellRowIndex - 1 + data = tab.Rows[row] + moIds = "0"; + if data["MOIDS"] !=None and data["MOIDS"] != "": + moIds = data["MOIDS"]; + filterStr = "t1.FMOID IN ({0}) AND t1.FMATERIALID = {1} ".format(moIds,data[""]) + ShowListForm("PRD_PPBOM", filterStr) + # .δ + if fldKey == "FBASENOPICKEDQTY": + reportModel = this.Model + tab = reportModel.DataSource + row = e.CellRowIndex - 1 + data = tab.Rows[row] + moIds = "0"; + if data["MOIDS"] !=None and data["MOIDS"] != "": + moIds = data["MOIDS"]; + filterStr = "t1.FMOID IN ({0}) AND t1.FMATERIALID = {1} ".format(moIds,data[""]) + ShowListForm("PRD_PPBOM", filterStr) + # δ + if fldKey == "δ": + reportModel = this.Model + tab = reportModel.DataSource + row = e.CellRowIndex - 1 + data = tab.Rows[row] + filterStr = "EXISTS (SELECT 1 FROM T_PRD_MOENTRY_A tt WHERE tt.FID = t1.FMOID AND tt.FSTATUS = 4 ) AND t1.FMATERIALID = {0} ".format(data[""]) + ShowListForm("PRD_PPBOM", filterStr) + # + if fldKey == "": + reportModel = this.Model + tab = reportModel.DataSource + row = e.CellRowIndex - 1 + data = tab.Rows[row] + filterStr = "EXISTS (SELECT 1 FROM T_PRD_MOENTRY_A tt WHERE tt.FENTRYID = t1.FENTRYID AND tt.FSTATUS = 4 ) AND t1.FMATERIALID = {0} ".format(data[""]) + ShowListForm("PRD_PPBOM", filterStr) + # ; + if fldKey == ";": + reportModel = this.Model + tab = reportModel.DataSource + row = e.CellRowIndex - 1 + data = tab.Rows[row] + filterStr = "FMRPCLOSESTATUS = 'A' AND FCloseStatus = 'A' AND FMATERIALID = {0} AND FBASEUNITQTY >= FBASESTOCKINQTY".format(data[""]) + # ShowListForm("PUR_PurchaseOrder", filterStr) + showParam = ListShowParameter(); + showParam.FormId = "PUR_PurchaseOrder"; + showParam.ParentPageId = this.View.PageId; + showParam.OpenStyle.ShowType = ShowType.Floating; + showParam.ListFilterParameter.Filter = filterStr + showParam.IsShowQuickFilter = True; + this.View.ShowForm(showParam) + +def ShowListForm(_fromId, _filter, _operationStatus = OperationStatus.VIEW ,_openStyleShowType = ShowType.Floating): + showParam = ListShowParameter(); + showParam.FormId = _fromId; + showParam.ParentPageId = this.View.PageId; + showParam.OpenStyle.ShowType = _openStyleShowType; + showParam.ListFilterParameter.Filter = _filter + showParam.IsShowQuickFilter = True; + this.View.ShowForm(showParam) \ No newline at end of file diff --git a/03.珠海市汇威精密制造有限公司/HW.Python/类1.py b/03.珠海市汇威精密制造有限公司/HW.Python/类1.py new file mode 100644 index 0000000..ba97fdb --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW.Python/类1.py @@ -0,0 +1,181 @@ +import clr +clr.AddReference("System") +clr.AddReference("Kingdee.BOS") +clr.AddReference("Kingdee.BOS.Core") +clr.AddReference("Kingdee.BOS.DataEntity") +clr.AddReference("Kingdee.BOS.App") +clr.AddReference("Kingdee.BOS.Contracts") +clr.AddReference("Kingdee.BOS.ServiceHelper") +from Kingdee.BOS import* +from Kingdee.BOS.Contracts import* +from Kingdee.BOS.Contracts.Report import* +from Kingdee.BOS.Core import * +from Kingdee.BOS.Core.Metadata import * +from Kingdee.BOS.Core.Report import* +from Kingdee.BOS.Core.SqlBuilder import* +from Kingdee.BOS.Core.Enums import * +from Kingdee.BOS.App.Data import* +from Kingdee.BOS.Orm.DataEntity import* +from System import* +from System.ComponentModel import* +from System.Collections.Generic import* +from System.Text import* +from System.Threading.Tasks import* +from Kingdee.BOS.ServiceHelper import * +#ʼڴ¼ñȫֲ +def Initialize(): + this.ReportProperty.ReportType=ReportType.REPORTTYPE_NORMAL; + this.IsCreateTempTableByPlugin=True; + #Ƿַ֧,ںGetSummaryColumnInfoӻֶ, + #ҪBOSй˿ĻҳǩûϢ,ɲο:˱ + this.ReportProperty.IsGroupSummary=True; + #IsUIDesignerColumns=False,ʾͨ,GetReportHeadersйͷ + #ҪBOS˿ʾά,ֶαʶʱֶαһ + #˱ͷϸ˵ο:˱й + this.ReportProperty.IsUIDesignerColumns=False; + +#ʱ,ʽ˱ȡsqlƴӲȡ˱ȡŵʱ +#(this.IsCreateTempTableByPlugin=True)BuilderReportSqlAndTempTableʱ +#3ӿڣ˱ȡ߼sqlָBuilderSelectFieldSQLBuilderTempTableOrderBySQLBuilderFormWhereSQL +#rptfilter:˱Դȡ +#tableName:ϵͳԶ˱ʱ߱Ψһԣձҳչʾݰ󶨴ʱյıҪдʱ +def BuilderReportSqlAndTempTable(rptfilter,tableName): + #baseDataTemp=filter.BaseDataTempTable;#ʱ;ݷΧȨޣñѸݷΧ˳ʱ + #ѭȡлݷΧݣƴӵSQLʵȨ޹ + #for b in baseDataTemp: + # baseType=b.BaseDataFormId;#FormId + # PKFldName=b.PKFieldName;#ʱлֶ,,FORGID + # baseTempTab=b.TempTable;#ݷΧʱ + #filterStr=filter.FilterParameter.FilterString;#˿ҳǩ˱ʽ + #˿ݹҳǩʵݰȡԶĹֵֶ + #DynamicObject,ǰ潲ʵݰʽȡֵðʵԱʶ + custFilter = rptfilter.FilterParameter.CustomFilter; + if(custFilter==None): + return; + orgObj=custFilter["F_BPW_OrgId"];#ȡ֯ + whereOrgs=""; + if(orgObj != None): + orgId=("{0}").format(orgObj["Id"]);#֯ID + whereOrgs=(" and a.FPURCHASEORGID in ({0}) ").format(orgId);#ѡ֯ƴ֯ + materials=custFilter["F_BPW_Materials"];#϶ѡ + matList=List[str](); + if(materials != None): + for m in materials: + materialNum="'"+str(m["F_BPW_Materials"]["Number"])+"'";#ȡ˿ѡĶϱ + matList.Add(materialNum); + whereMat=(" and m.FNumber in ({0})").format(str.Join(",",matList)) if(matList.Count>0) else "";#ƴ϶ѡ + beginDate=str(custFilter["F_BPW_BeginDate"]);#ȡʼ + EndDate=str(custFilter["F_BPW_EndDate"]);#ȡ + beginDate=str(DateTime.Parse(("{0}").format(beginDate)).AddDays(-1));#ʼڵǰһ + itemDate=beginDate; + fldsSql=List[str]();#̬ͷSQL,൱SelectIJֶǶ̬ƴӵģԴʵֶ̬ + #ӿʼѭ1죬һֱڣ˽Ҫ¼Ŀʼڱ<,ڹ˽עʵ + while(itemDate != EndDate): + myDate=DateTime.Parse(("{0}").format(itemDate)); + fldKey=("F{0}_{1}_{2}").format(myDate.Year,myDate.Month,myDate.Day);#ÿڹΨһ + ss=("{0}=SUM(Case when a.FDATE='{1}' then b.FQty else 0 end)").format(fldKey,myDate);#ÿ충ϼSQL + fldsSql.Add(ss);#SQLӵ̬SQLб + nextDate=myDate.AddDays(1); + itemDate=str(nextDate);#+1 + myDate=DateTime.Parse(("{0}").format(itemDate));#ѡĽֹڣѭһˣﲹһ + fldKey=("F{0}_{1}_{2}").format(myDate.Year,myDate.Month,myDate.Day); + ss=("{0}=SUM(Case when a.FDATE='{1}' then b.FQty else 0 end)").format(fldKey,myDate); + fldsSql.Add(ss);#SQLӵ̬SQLб + #raise Exception(str.Join(',',fldsSql));#ʱôд룬Ķ̬SQLԲ + #װд뱨ʱSQL + #ע!!!: ʱһҪFIDENTITYID Ҫ1ʼҲظ ϺţȻǰ̨ʾհ!!!! + sql=("""/*dialect*/?select row_Number() Over(order by a.orgName,a.MaterialNum) FIDENTITYID, a.* +into {0} +from +(select orgL.FNAME orgName,m.FNUMBER MaterialNum,mL.FNAME materialName,mL.FSPECIFICATION SpecNum,unitL.FNAME unit, +{1} +from t_PUR_POOrder a +inner join T_ORG_ORGANIZATIONS org on org.FORGID=a.FPURCHASEORGID +inner join T_ORG_ORGANIZATIONS_L orgL on orgL.FORGID=org.FORGID and orgL.FLOCALEID=2052 +inner join t_PUR_POOrderEntry b on a.FID=b.FID +inner join T_BD_MATERIAL m on m.FMATERIALID=b.FMATERIALID +inner join T_BD_MATERIAL_L mL on mL.FMATERIALID=m.FMATERIALID and mL.FLOCALEID=2052 +inner Join T_BD_UNIT_L unitL on unitL.FUNITID=b.FUNITID and unitL.FLOCALEID=2052 +where a.FDATE>='{3}' and a.FDATE<='{4}' {2} {5} +group by orgL.FNAME,m.FNUMBER,mL.FNAME,mL.FSPECIFICATION,unitL.FNAME +) a + """).format(tableName,str.Join(',',fldsSql),whereOrgs,beginDate,EndDate,whereMat); + #raise Exception(sql);#ͨ˷Sqlе֤ + DBUtils.Execute(this.Context,sql);#ִSQLдʱ + +#˱ͷ +def GetReportHeaders(Filter): + header=ReportHeader(); + localEid=this.Context.UserLocale.LCID;#ȡǰԻ,Ϊ2052 + header.AddChild("orgName",LocaleValue("ɹ֯",localEid));#ֶ,ͷ,ֶʱеֶֶӦ൱ÿһͷӦʱĸֶ + header.AddChild("MaterialNum",LocaleValue("ϱ",localEid)); + header.AddChild("materialName",LocaleValue("",localEid)); + header.AddChild("SpecNum",LocaleValue("ͺ",localEid)); + header.AddChild("unit",LocaleValue("ɹλ",localEid)); + + #ݹѡ䣬̬ͷ,湹SQLֶε߼ + custFilter = Filter.FilterParameter.CustomFilter; + beginDate=str(custFilter["F_BPW_BeginDate"]);#ȡʼ + EndDate=str(custFilter["F_BPW_EndDate"]);#ȡ + itemDate=beginDate; + fldsSql=List[str](); + while(itemDate != EndDate): + myDate=DateTime.Parse(("{0}").format(itemDate)); + fldKey=("F{0}_{1}_{2}").format(myDate.Year,myDate.Month,myDate.Day);#ֶҪǰ湹SQLֶζӦ + header.AddChild(fldKey,LocaleValue(str(("{0}-{1}-{2}").format(myDate.Year,myDate.Month,myDate.Day)),localEid),SqlStorageType.SqlDecimal); + nextDate=myDate.AddDays(1); + itemDate=str(nextDate); + myDate=DateTime.Parse(("{0}").format(itemDate)); + fldKey=("F{0}_{1}_{2}").format(myDate.Year,myDate.Month,myDate.Day);#ֶҪǰ湹SQLֶζӦ + header.AddChild(fldKey,LocaleValue(str(("{0}-{1}-{2}").format(myDate.Year,myDate.Month,myDate.Day)),localEid),SqlStorageType.SqlDecimal); +#еʹ԰ͷ˳ʾ + colIndex=0; + for child in header.GetChilds(): + if(child.GetChildCount()==0): + child.ColIndex=colIndex; + colIndex=colIndex+1; + else: + child.ColIndex = colIndex; + colIndex=colIndex+1; + for childHeader in child.GetChilds(): + childHeader.ColIndex=colIndex; + colIndex=colIndex+1; + return header; + +#ñͷֵֶ +#Ҫǰѹ˿õֵֶʾͷ +def GetReportTitles(Filter): + reportTitles=ReportTitles(); + custFilter=Filter.FilterParameter.CustomFilter;#ȡ˿ݰ + orgObj=custFilter["F_BPW_OrgId"];#ȡ֯ + beginDate=str(custFilter["F_BPW_BeginDate"]);#ȡʼ + EndDate=str(custFilter["F_BPW_EndDate"]);#ȡ + if(orgObj != None): + reportTitles.AddTitle("F_BPW_OrgId", orgObj["Name"]); + reportTitles.AddTitle("F_BPW_BeginDate", beginDate); + reportTitles.AddTitle("F_BPW_EndDate", EndDate); + return reportTitles; + +#ñײϼ +def GetSummaryColumnInfo(rptfilter): + result=List[SummaryField](); + #ֶǶ̬ģҲҪ̬Ӻϼ,ֶǰ汣һ + custFilter = rptfilter.FilterParameter.CustomFilter; + beginDate=str(custFilter["F_BPW_BeginDate"]);#ȡʼ + EndDate=str(custFilter["F_BPW_EndDate"]);#ȡ + itemDate=beginDate; + fldsSql=List[str](); + while(itemDate != EndDate): + myDate=DateTime.Parse(("{0}").format(itemDate)); + fldKey=("F{0}_{1}_{2}").format(myDate.Year,myDate.Month,myDate.Day);#ֶҪǰ湹SQLֶζӦ + result.Add(SummaryField(fldKey,BOSEnums.Enu_SummaryType.SUM)); + nextDate=myDate.AddDays(1); + itemDate=str(nextDate); + myDate=DateTime.Parse(("{0}").format(itemDate)); + fldKey=("F{0}_{1}_{2}").format(myDate.Year,myDate.Month,myDate.Day); + result.Add(SummaryField(fldKey,BOSEnums.Enu_SummaryType.SUM)); + return result; + +#رմͨڴ˴̲ʱ +def CloseReport(): + this.DropTempTable(); diff --git a/03.珠海市汇威精密制造有限公司/HW.Python/计划订单投放插件.py b/03.珠海市汇威精密制造有限公司/HW.Python/计划订单投放插件.py new file mode 100644 index 0000000..b8705f3 --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW.Python/计划订单投放插件.py @@ -0,0 +1,56 @@ +#clrп +import clr +#Ӷcloudij +clr.AddReference('System') +clr.AddReference('System.Data') +clr.AddReference('Kingdee.BOS') +clr.AddReference('Kingdee.BOS.Core') +clr.AddReference('Kingdee.BOS.App') +clr.AddReference('Kingdee.BOS.Contracts') +clr.AddReference('Kingdee.BOS.DataEntity') +clr.AddReference('Kingdee.BOS.ServiceHelper') +#dairycloudеijʵ󣨷ռ䵼룬ݹ鵼룩 +from Kingdee.BOS.Core import * +from Kingdee.BOS.Util import * +from Kingdee.BOS.Core.Bill import * +from Kingdee.BOS.Core.Bill.PlugIn import * +from Kingdee.BOS.Orm.DataEntity import * +from Kingdee.BOS.Core.DynamicForm.PlugIn import * +from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import * +from Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel import * +from System import * +from System.Data import * +from Kingdee.BOS.App.Data import * +from System.Collections.Generic import List +from Kingdee.BOS.ServiceHelper import * + +# def OnPreparePropertys(e): +# e.FieldKeys.Add("F_CYG_Worktype") + +def EndOperationTransaction(e): + # 8ύ9126 + if this.FormOperation.Operation == "Release": #Ͷ + if e.DataEntitys != None and e.DataEntitys.Count > 0: + idList = set(map(lambda x : str(x["Id"]),e.DataEntitys)) + + sql ="""/*dialect*/ +UPDATE t0e SET t0e.FMJDZDZID = t1.FMJDZDZID +FROM T_PRD_MOENTRY t0e + --INNER JOIN T_PRD_MOENTRY_LK t0e_lk on t0e.FENTRYID = t0e_lk.FENTRYID + INNER JOIN T_ENG_BOM t1 on t0e.FBOMID = t1.FID + INNER JOIN T_PLN_PLANORDER t2 on t2.FBILLNO = t0e.FSRCBILLNO +WHERE 1 = 1 + AND t0e.FSRCBILLTYPE = 'PLN_PLANORDER' + --AND t2.FID IN ({0}) + +UPDATE t0 SET t0.FMJDZDZID = t1.FMJDZDZID +FROM T_PRD_PPBOM t0 + INNER JOIN T_ENG_BOM t1 on t0.FBOMID = t1.FID + INNER JOIN T_PRD_MOENTRY t2e on t2e.FENTRYID = t0.FMOENTRYID + INNER JOIN T_PLN_PLANORDER t3 on t3.FBILLNO = t2e.FSRCBILLNO +WHERE 1 = 1 + AND t2e.FSRCBILLTYPE = 'PLN_PLANORDER' + AND t3.FID IN ({0}) + """.format(",".join(idList)) + + DBUtils.Execute(this.Context,sql) diff --git a/03.珠海市汇威精密制造有限公司/HW/HW.csproj b/03.珠海市汇威精密制造有限公司/HW/HW.csproj new file mode 100644 index 0000000..9d5e46b --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW/HW.csproj @@ -0,0 +1,87 @@ + + + + + Debug + AnyCPU + {EFAEA205-7808-498D-9D82-91ACF2F663DB} + Library + Properties + HW + HW + v4.0 + 512 + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.dll + + + ..\..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.App.dll + + + ..\..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.Contracts.dll + + + ..\..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.Core.dll + + + ..\..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.DataEntity.dll + + + ..\..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.Model.dll + + + ..\..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.K3.BD.Contracts.dll + + + ..\..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.K3.Core.dll + + + ..\..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.K3.SCM.App.Sal.Report.dll + + + ..\..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.K3.SCM.Sal.Report.PlugIn.dll + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/06.泰诺麦博/TNMB.PUR_RPT_POOrderTrace/Properties/AssemblyInfo.cs b/03.珠海市汇威精密制造有限公司/HW/Properties/AssemblyInfo.cs similarity index 83% rename from 06.泰诺麦博/TNMB.PUR_RPT_POOrderTrace/Properties/AssemblyInfo.cs rename to 03.珠海市汇威精密制造有限公司/HW/Properties/AssemblyInfo.cs index 951b346..83edcb3 100644 --- a/06.泰诺麦博/TNMB.PUR_RPT_POOrderTrace/Properties/AssemblyInfo.cs +++ b/03.珠海市汇威精密制造有限公司/HW/Properties/AssemblyInfo.cs @@ -5,12 +5,12 @@ using System.Runtime.InteropServices; // 有关程序集的一般信息由以下 // 控制。更改这些特性值可修改 // 与程序集关联的信息。 -[assembly: AssemblyTitle("TNMB.PUR_RPT_POOrderTrace")] +[assembly: AssemblyTitle("HW")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("TNMB.PUR_RPT_POOrderTrace")] -[assembly: AssemblyCopyright("Copyright © 2023")] +[assembly: AssemblyProduct("HW")] +[assembly: AssemblyCopyright("Copyright © 2024")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -20,7 +20,7 @@ using System.Runtime.InteropServices; [assembly: ComVisible(false)] // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID -[assembly: Guid("bcc79c5a-0154-4484-981e-13b7a4ffb4d3")] +[assembly: Guid("efaea205-7808-498d-9d82-91acf2f663db")] // 程序集的版本信息由下列四个值组成: // diff --git a/03.珠海市汇威精密制造有限公司/HW/SaleOutStockDetailRptPlugInEx/SaleOutStockDetailRptEx.cs b/03.珠海市汇威精密制造有限公司/HW/SaleOutStockDetailRptPlugInEx/SaleOutStockDetailRptEx.cs new file mode 100644 index 0000000..a3b9e55 --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW/SaleOutStockDetailRptPlugInEx/SaleOutStockDetailRptEx.cs @@ -0,0 +1,55 @@ +using Kingdee.BOS.App.Data; +using Kingdee.BOS.Contracts; +using Kingdee.BOS.Core.Report; +using Kingdee.K3.SCM.App.Sal.Report; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace HW.SaleOutStockDetailRptPlugInEx +{ + internal class SaleOutStockDetailRptEx: SaleOutStockDetailRpt + { + private string[] TempTableName; + + public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName) + { + //创建临时表用于保存自己的数据 + IDBService dbservice = Kingdee.BOS.App.ServiceHelper.GetService(); + TempTableName = dbservice.CreateTemporaryTableName(this.Context, 1); + string strTable = TempTableName[0]; + + //调用基类方式获取初步查询数据 + base.BuilderReportSqlAndTempTable(filter, strTable); + + string strSql = $@"/*dialect*/ +SELECT + A.* + ,BE.F_ORA_TEXT2 AS FSALESCATEGORY + INTO {tableName} +FROM + {strTable} A + LEFT JOIN T_SAL_OUTSTOCK B ON A.FID = B.FID AND A.FBILLNUMBER = B.FBILLNO + LEFT JOIN T_SAL_OUTSTOCKENTRY BE ON A.FID = B.FID AND BE.FENTRYID = A.FENTRYID "; + + DBUtils.Execute(this.Context, strSql); + } + + public override void CloseReport() + { + //删除临时表 + if (TempTableName == null || TempTableName.Length == 0) + { + return; + } + + IDBService dbservice = Kingdee.BOS.App.ServiceHelper.GetService(); + + dbservice.DeleteTemporaryTableName(this.Context, TempTableName); + + + base.CloseReport(); + } + } +} diff --git a/03.珠海市汇威精密制造有限公司/HW/SqlServer/SQLQuery4.sql b/03.珠海市汇威精密制造有限公司/HW/SqlServer/SQLQuery4.sql new file mode 100644 index 0000000..4b5d47d --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW/SqlServer/SQLQuery4.sql @@ -0,0 +1,55 @@ +SELECT * INTO #TMP123 FROM #TPRDMOINFO +DROP TABLE #TPRDMOINFO + +SELECT + '' AS 'к', + '' AS '', + A.FBILLNO AS 'Ͷϵ', + '' AS '۶', + '' AS 'λ', + A.FMNEMONICCODE AS '', + A.FBILLNO AS '񵥺', + A.FNUMBER AS 'Ʒ', + A.FNAME AS 'Ʒ', + A.FSPECIFICATION AS 'Ʒͺ', + A.FNAME AS 'Ʒλ', + A.FQTY AS 'Ʒ', + A.FNUMBER AS 'ϴ', + A.FNAME AS '', + ( CASE A.FMATERIALSRC WHEN 'A' THEN 'PLM' WHEN 'B' THEN 'ERP' ELSE '' END ) AS 'Դ', + A.FSPECIFICATION AS 'Ϲͺ', + '' AS 'ϼ׼', + A.FSTDQTY AS 'ϵλ', + A.FUNITID AS 'ϵλ', + A.FINVENTORYQTY AS 'Ͽ', + '' AS 'ϴ', + A.FNEEDQTY AS '', + '' AS 'ǰƷ', + '' AS 'Ƿ', + '' AS ';', + '' AS 'ƻͶ', + A.FPICKEDQTY AS '', + A.FNOPICKEDQTY AS 'δ', + '' AS '׼', + A.FMUSTQTY AS 'Ӧ', + '' AS 'ע', + '' AS '', + A.FSCRAPQTY AS '', + '' AS 'ƻ', + '' AS 'ֿ', + '' AS 'λ', + A.FREPICKEDQTY AS '', + A.FPLANSTARTDATE AS 'ƻ', + A.FPLANFINISHDATE AS 'ƻ깤', + '' AS 'λ', + '' AS 'ע', + '' AS 'BOMע', + A.FBILLTYPE AS '', + A.FWORKSHOPID AS '', + ( CASE AE_A.FSTATUS WHEN 6 THEN 'ѽ᰸' ELSE '' END ) AS '񵥽᰸', + A.FDOCUMENTSTATUS AS 'Ͷϵ״̬', + '' AS 'PRδתPO' +FROM + #TMP123 A + + DROP TABLE #TMP123 \ No newline at end of file diff --git a/03.珠海市汇威精密制造有限公司/HW/SqlServer/SQLQuery5.sql b/03.珠海市汇威精密制造有限公司/HW/SqlServer/SQLQuery5.sql new file mode 100644 index 0000000..029a63c --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW/SqlServer/SQLQuery5.sql @@ -0,0 +1,21 @@ + +SELECT + TOP 1000 + T0E.FMATERIALID + ,T0E.FMATERIALIDSUB +FROM + T_PRD_PMPPBOMENTRY T0E + INNER JOIN T_PRD_PMPPBOMENTRY_A T0E_A ON T0E_A.FENTRYID = T0E.FENTRYID +WHERE T0E.FID = 101118 +GROUP BY T0E.FMATERIALID,T0E.FMATERIALIDSUB + + +SELECT + TOP 1000 + t0E.* + ,T0E_A.* +FROM + T_PRD_LACKANALYSEBILL t0 + INNER JOIN T_PRD_PMPPBOMENTRY T0E on t0.FID = T0E.FID + INNER JOIN T_PRD_PMPPBOMENTRY_A T0E_A ON T0E_A.FENTRYID = T0E.FENTRYID +WHERE t0.FBILLNO = 'SCQL000671' \ No newline at end of file diff --git a/03.珠海市汇威精密制造有限公司/HW/SqlServer/仓位值1.sql b/03.珠海市汇威精密制造有限公司/HW/SqlServer/仓位值1.sql new file mode 100644 index 0000000..2befea2 --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW/SqlServer/仓位值1.sql @@ -0,0 +1,37 @@ +SELECT * FROM T_BD_STOCK +SELECT * FROM T_BD_STOCKFLEXITEM +SELECT * FROM T_BD_STOCKFLEXDETAIL +SELECT * FROM T_BAS_FLEXVALUES +SELECT * FROM T_BAS_FLEXVALUESENTRY +SELECT * FROM T_BAS_FLEXVALUESENTRY_L +SELECT * FROM T_BD_FLEXVALUESCOM +SELECT * FROM T_BAS_FLEXVALUESDETAIL + +SELECT + t1.FNUMBER + ,t1_l.FNAME + ,t0.FMATERIALID + ,t0.FSTOCKID + ,t0.FSTOCKLOCID + ,stuff((select CAST(t2.FF100001 AS varchar) +'.'+ CAST(t2.FF100002 AS varchar) FROM T_BAS_FLEXVALUESDETAIL t2 WHERE t2.FID = t0.FSTOCKLOCID for xml path('')),1,1,'') +FROM T_STK_INVENTORY t0 + LEFT JOIN T_BD_MATERIAL t1 on t1.FMATERIALID = t0.FMATERIALID + LEFT JOIN T_BD_MATERIAL_L t1_l on t1_l.FMATERIALID = t0.FMATERIALID AND t1_l.FLOCALEID = 2052 + --LEFT JOIN T_BAS_FLEXVALUESDETAIL t2 on t2.FID = t0.FSTOCKLOCID +WHERE + t0.FSTOCKLOCID > 0 + +DECLARE @columns NVARCHAR(MAX), @sql NVARCHAR(MAX); +SELECT @columns = COALESCE(@columns + ',', '') + CONCAT('t0.',t0.FFLEXNUMBER) +FROM T_BAS_FLEXVALUES t0 +WHERE t0.FDOCUMENTSTATUS = 'C' AND t0.FFORBIDSTATUS = 'A' + +SET @sql = N' +SELECT + t0.FID + ,CONCAT(' + @columns + ' +''.'', '''') +FROM T_BAS_FLEXVALUESDETAIL t0 + +'; + +EXEC sp_executesql @sql; \ No newline at end of file diff --git a/03.珠海市汇威精密制造有限公司/HW/SqlServer/仓位值2.sql b/03.珠海市汇威精密制造有限公司/HW/SqlServer/仓位值2.sql new file mode 100644 index 0000000..9cadc9b --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW/SqlServer/仓位值2.sql @@ -0,0 +1,26 @@ +DECLARE @columns NVARCHAR(MAX), @sql NVARCHAR(MAX),@LOCALEID char(10); +SET @LOCALEID = '2052' +SELECT @columns = COALESCE(@columns + ',', '') + CONCAT('',t0.FFLEXNUMBER) +FROM T_BAS_FLEXVALUES t0 +WHERE t0.FDOCUMENTSTATUS = 'C' AND t0.FFORBIDSTATUS = 'A' + +SET @SQL = N' +SELECT + t0.FID + ,t0.aColumn + ,t0.aValue + ,t1e_l.FNAME + ,ROW_NUMBER() OVER (PARTITION BY t0.FID ORDER BY t1.FNUMBER) AS RowId +FROM + (SELECT FID,'+@columns+' + FROM T_BAS_FLEXVALUESDETAIL) AS P +UNPIVOT + (aValue FOR aColumn IN + ('+@columns+') + )AS t0 + INNER JOIN T_BAS_FLEXVALUES t1 on t1.FFLEXNUMBER = t0.aColumn + INNER JOIN T_BAS_FLEXVALUESENTRY_L t1e_l on t0.aValue = t1e_l.FENTRYID AND t1e_l.FLOCALEID = '+@LOCALEID+' +;'; +EXEC(@SQL); + +--SELECT * FROM T_BAS_FLEXVALUES diff --git a/03.珠海市汇威精密制造有限公司/HW/SqlServer/仓库值.sql b/03.珠海市汇威精密制造有限公司/HW/SqlServer/仓库值.sql new file mode 100644 index 0000000..69752f9 --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW/SqlServer/仓库值.sql @@ -0,0 +1,12 @@ +SELECT T2.FSTOCKID, T2.FNUMBER, T3.FNAME, T4.FFLEXENTRYID AS λֵ, T41.FNUMBER λֵ, T41L.FNAME λֵ, T1.FFLEXID λֵά,T31.FNUMBER λֵ,T31L.FNAME λֵ +FROM + T_BD_STOCKFLEXITEM T1 + JOIN T_BD_STOCKFLEXDETAIL T4 ON T1.FENTRYID = T4.FENTRYID + JOIN T_BAS_FLEXVALUES T31 ON T1.FFLEXID = T31.FID + JOIN T_BAS_FLEXVALUES_L T31L ON T31L.FID = T31.FID AND T31L.FLOCALEID = 2052 + JOIN T_BAS_FLEXVALUESENTRY T41 ON T4.FFLEXENTRYID = T41.FENTRYID + JOIN T_BAS_FLEXVALUESENTRY_L T41L ON T41L.FENTRYID = T41.FENTRYID AND T41L.FLOCALEID = 2052 + JOIN T_BD_STOCK T2 ON T1.FSTOCKID = T2.FSTOCKID + JOIN T_BD_STOCK_L T3 ON T2.FSTOCKID = T3.FSTOCKID AND T3.FLOCALEID = 2052 +ORDER BY + T2.FSTOCKID, T31.FNUMBER, T41.FNUMBER diff --git a/03.珠海市汇威精密制造有限公司/HW/SqlServer/存储过程-生产用料清单.sql b/03.珠海市汇威精密制造有限公司/HW/SqlServer/存储过程-生产用料清单.sql new file mode 100644 index 0000000..8ac22b6 --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW/SqlServer/存储过程-生产用料清单.sql @@ -0,0 +1,154 @@ +IF EXISTS(SELECT * FROM SYS.PROCEDURES WHERE NAME='PROC_PPBOM_RPT') + DROP PROCEDURE DBO.PROC_PPBOM_RPT; +GO + +CREATE PROCEDURE PROC_PPBOM_RPT + @tableName varchar(80) + ,@seqFid varchar(80) + ,@proMaterialId int + ,@materialId int + ,@FBILLNO varchar(80) + ,@FPPBOMBILLNO varchar(80) + ,@FSALEORDERNO varchar(80) + ,@LCID int +AS +BEGIN +SELECT + --ROW_NUMBER() OVER(ORDER BY t0.FID) AS FIDENTITYID--1.к + t0.FID + ,t0e.FSEQ + ,t0e.FENTRYID + ,t0.FDATE --2. + ,t0e.FPLANSTARTDATE--38.ƻ + ,t0e.FPLANFINISHDATE--39.ƻ깤 + ,t0e.FSALEORDERNO --4.۶ + ,t0.FBILLNO--7.񵥺 + ,t0e.FQTY--12.Ʒ + --,t0e.FSTOCKID--35.ֿ + --,t0e.FSTOCKLOCID--36.λ + ,t0e.FYIELDRATE + ,t0e.FROUTINGID + ,(CASE t0e_a.FSTATUS WHEN 6 THEN 'ѽ᰸'ELSE '' END) AS 'StatusIs6'--45.񵥽᰸ + ,(CASE t0e.FPRODUCTTYPE WHEN 1 THEN 'Ʒ' WHEN 2 THEN 'Ʒ' WHEN 3 THEN 'Ʒ' ELSE '' END) AS 'PRODUCTTYPE'--43. + ,t0e.FMATERIALID AS 'ProMaterialId' + ,t1.FMNEMONICCODE AS 'ProMnemoniccode'--6. + ,t1.FNUMBER AS 'ProNumber'--8.Ʒ + ,t1_l.FNAME AS 'ProName'--9.Ʒ + ,t1_l.FSPECIFICATION AS 'ProSpecification'--10.Ʒͺ + ,t2_l.FUNITID AS 'PrdUnitId' + ,t2_l.FNAME AS 'ProUnitName'--11.Ʒλ + --,(CASE t1.FMATERIALSRC WHEN 'A' THEN 'PLM' WHEN 'B' THEN 'ERP' ELSE '' END) AS 'ProMaterialsrc' --15.Դ + INTO #TmpTable0 + FROM + T_PRD_MO t0 + INNER JOIN T_PRD_MOENTRY t0e on t0e.FID = t0.FID + INNER JOIN T_PRD_MOENTRY_A t0e_a on t0e_a.FENTRYID = t0e.FENTRYID + LEFT JOIN T_BD_MATERIAL t1 ON t1.FMATERIALID = t0e.FMATERIALID + LEFT JOIN T_BD_MATERIAL_L t1_l ON t1_l.FMATERIALID = t0e.FMATERIALID AND t1_l.FLOCALEID = @LCID + LEFT JOIN T_BD_UNIT_L t2_l ON t2_l.FUNITID = t0e.FUNITID AND t2_l.FLOCALEID = @LCID + WHERE + t0.FBILLNO = (CASE WHEN @FBILLNO != '' THEN @FBILLNO ELSE t0.FBILLNO END) + AND t0e.FSALEORDERNO = (CASE WHEN @FSALEORDERNO != '' THEN @FSALEORDERNO ELSE t0e.FSALEORDERNO END) + AND t0e.FMATERIALID = (CASE WHEN @proMaterialId <> 0 THEN @proMaterialId ELSE t0e.FMATERIALID END) + --AND T1.FNUMBER = (CASE WHEN @MAINNUMBER != '' THEN @MAINNUMBER ELSE T1.FNUMBER END) + --AND T1_L.FNAME = (CASE WHEN @MAINNAME != '' THEN @MAINNAME ELSE T1_L.FNAME END) + + SELECT + t1.* + ,t0.FBILLNO AS 'FPPBOMBILLNO'--3.Ͷϵ + ,t0e.FMATERIALID + ,(t0e.FNUMERATOR / t0e.FDENOMINATOR) AS 'FUnitNeedQty' --18.ϵλ + ,t0e.FNEEDQTY --22. + ,t0e.FUNITID + ,t0e.FBOMENTRYID + ,t0e_q.FBASEWIPQTY --23.ǰƷ + ,t0e_q.FPICKEDQTY --27. + ,t0e_q.FNOPICKEDQTY --28.δ + ,t0e.FSTDQTY --׼ --29.׼ + ,t0e.FMUSTQTY --Ӧ --30.Ӧ + ,t0e_l.FMEMO --31.ע + ,t0e_q.FPICKEDQTY * (100 - t1.FYIELDRATE) AS 'FLossQty'--32. + ,t0e_q.FSCRAPQTY --33. + ,t0e_q.FREPICKEDQTY --37. + ,t0.FWORKSHOPID + ,t0e_c.FSTOCKID + ,t0e_c.FSTOCKLOCID + ,(CASE t0.FDOCUMENTSTATUS WHEN 'A' THEN '' WHEN 'B' THEN '' WHEN 'C' THEN '' WHEN 'D' THEN '' WHEN 'Z' THEN 'ݴ' ELSE '' END) AS 'PPBOMStatus'--46.Ͷϵ״̬ + INTO #TmpTable1 + FROM + #TmpTable0 t1 + LEFT JOIN T_PRD_PPBOM t0 on t1.FID = t0.FMOID AND t0.FMOENTRYSEQ = t1.FSEQ AND t0.FMOENTRYSEQ = t1.FSEQ --嵥 + INNER JOIN T_PRD_PPBOMENTRY t0e ON t0.FID = t0e.FID + LEFT JOIN T_PRD_PPBOMENTRY_Q t0e_q ON t0e_q.FENTRYID = t0e.FENTRYID --嵥ֱ + LEFT JOIN T_PRD_PPBOMENTRY_C t0e_c ON t0e_c.FENTRYID = t0e.FENTRYID + LEFT JOIN T_PRD_PPBOMENTRY_L t0e_l on t0e_l.FENTRYID = t0e.FENTRYID AND t0e_l.FLOCALEID = @LCID + WHERE + T0.FBILLNO = (CASE WHEN @FPPBOMBILLNO != '' THEN @FPPBOMBILLNO ELSE T0.FBILLNO END) + AND t0e.FMATERIALID = (CASE WHEN @materialId <> 0 THEN @materialId ELSE t0e.FMATERIALID END) + + SELECT + t0.* + ,t1.FNUMBER AS 'MaterialNumber'--8.ϱ + ,t1_l.FNAME AS 'MaterialName'--9. + ,t1_l.FSPECIFICATION AS 'MaterialSpecification'--10.Ϲͺ + ,t2_l.FNAME AS 'MaterialUnitName'--11.ϵλ + ,(CASE t1.FMATERIALSRC WHEN 'A' THEN 'PLM' WHEN 'B' THEN 'ERP' ELSE '' END) AS 'Materialsrc' --15.Դ + ,t4_l.FNAME AS 'WORKSHOPNAME' --44. + ,t1.FMASTERID + ,t1.FUSEORGID + ,t5_l.FMEMO AS 'BOMMEMO' --42.BOMע + ,t3_l.FNAME AS 'FSTOCKNAME' + into #TmpTable2 + FROM + #TmpTable1 t0 + LEFT JOIN T_BD_MATERIAL t1 ON t1.FMATERIALID = t0.FMATERIALID + LEFT JOIN T_BD_MATERIAL_L t1_l ON t1_l.FMATERIALID = t0.FMATERIALID AND t1_l.FLOCALEID = @LCID + LEFT JOIN T_BD_UNIT_L t2_l ON t2_l.FUNITID = t0.FUNITID AND t2_l.FLOCALEID = @LCID + LEFT JOIN T_BD_STOCK_L t3_l ON t3_l.FSTOCKID = t0.FSTOCKID AND t3_l.FLOCALEID =@LCID + LEFT JOIN T_BD_DEPARTMENT_L t4_l on t4_l.FDEPTID = t0.FWORKSHOPID AND t4_l.FLOCALEID = @LCID + LEFT JOIN T_ENG_BOMCHILD_L t5_l ON t5_l.FENTRYID = t0.FBOMENTRYID AND t5_L.FLOCALEID = @LCID + --WHERE + --t1.FNUMBER = (CASE WHEN @FNUMBER != '' THEN @FNUMBER ELSE t1.FNUMBER END) + --AND t1_L.FNAME = (CASE WHEN @FNAME != '' THEN @FNAME ELSE t1_L.FNAME END) + + SELECT + t0.* + ,t1.FBASEQTY + ,t2_l.FNAME AS 'ROUTENAME' + ,t3e_A.FBASEINVQTY + ,t3e.FBASELACKQTY AS 'FBASELACKQTY'--24.Ƿ + ,t3e_A.FBASEONORDERQTY AS 'FBASEONORDERQTY' --25.; + ,6 AS 'LOWEST6' + INTO #TmpTable3 + FROM + #TmpTable2 t0 + LEFT JOIN ( + SELECT + t0.FMATERIALID + ,t0.FSTOCKORGID + ,sum(t0.FBASEQTY) AS FBASEQTY + FROM + T_STK_INVENTORY t0 + GROUP BY + t0.FMATERIALID + ,t0.FSTOCKORGID + ) t1 on t1.FMATERIALID = t0.FMASTERID AND t1.FSTOCKORGID = t0.FUSEORGID + LEFT JOIN T_ENG_ROUTE_L t2_L on t2_L.FID = t0.FROUTINGID AND t2_L.FLOCALEID = @LCID + LEFT JOIN T_PRD_PMPPBOMENTRY t3e on t3e.FMOID = t0.FID AND t3e.FMOENTRYID = t0.FENTRYID AND t3e.FMOENTRYSEQ = t0.FSEQ AND t3e.FMATERIALIDSUB = t0.FMATERIALID --AND t3e.FMATERIALID = t0.FMATERIALID + LEFT JOIN T_PRD_PMPPBOMENTRY_A t3e_A ON t3e_A.FENTRYID = t3e.FENTRYID + + + exec(N' + SELECT + t0.* + ,' + @seqFid+ ' + INTO ' + @tableName + ' + FROM + #TmpTable3 t0 + ') + + drop table #TmpTable0 + drop table #TmpTable1 + drop table #TmpTable2 + drop table #TmpTable3 +END diff --git a/03.珠海市汇威精密制造有限公司/HW/SqlServer/生产用料清单.sql b/03.珠海市汇威精密制造有限公司/HW/SqlServer/生产用料清单.sql new file mode 100644 index 0000000..1b14f18 --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW/SqlServer/生产用料清单.sql @@ -0,0 +1,130 @@ + DECLARE @FBILLNO varchar(80) + ,@MainNumber varchar(80) + ,@MainName varchar(80) + ,@FMOBILLNO varchar(80) + ,@FNumber varchar(80) + ,@FName varchar(80) + ,@FSALEORDERNO varchar(80) + ,@LCID int + set @FBILLNO = '' + set @MainNumber = '' + set @MainName = '' + set @FMOBILLNO = '' + set @FNumber = '' + set @FName = '' + set @FSALEORDERNO = '' + set @LCID = 2052 + + --set @FBILLNO ='' + --set @MainNumber='' + --set @MainName='' + --set @FMOBILLNO='' + --set @FNumber='' + --set @FName='' + --set @FSALEORDERNO='' + --set @LCID=2052 + + SELECT + top 1000 + ROW_NUMBER() OVER(ORDER BY T0.FMATERIALID) AS 'к' --1.к + ,T0.FID + --,T0.FFORMID + ,t7.FDATE AS '' --2. + ,T0.FBILLNO AS 'Ͷϵ'--3.Ͷϵ + --,T0.FMOID -- + ----,T0.FMOENTRYID --ӱ + --,t0.FSALEORDERID + --,t0.FSALEORDERENTRYID + ,T0.FSALEORDERNO AS '۶' --4.۶ + --,T0.FMATERIALID --ƷID + --5.λ + ,T1.FMNEMONICCODE AS ''--6. + ,T0.FMOBILLNO AS '񵥺'--7.񵥺 + ,T1.FNUMBER AS 'Ʒ'--8.Ʒ + ,T1_L.FNAME AS 'Ʒ'--9.Ʒ + ,T1_L.FSPECIFICATION AS 'Ʒͺ'--10.Ʒͺ + ,T3_L.FNAME AS 'Ʒλ'--11.Ʒλ + ,T0.FQTY AS 'Ʒ'--12.Ʒ + ,T2.FNUMBER AS 'ϴ'--13.ϴ + ,T2_L.FNAME AS ''--14. + ,(CASE T2.FMATERIALSRC WHEN 'A' THEN 'PLM' WHEN 'B' THEN 'ERP' ELSE '' END) AS 'Դ' --15.Դ + ,T2_L.FSPECIFICATION AS 'Ϲͺ'--16.Ϲͺ + ,t10_L.FNAME AS 'ϼ׼'--17.ϼ׼ + ,(T0E.FNUMERATOR / T0E.FDENOMINATOR) AS 'ϵλ' --18.ϵλ + --,T0E.FUNITID AS ENTRYUNITID + ,T4_L.FNAME AS 'ϵλ' --19.ϵλ + ,t9.FBASEQTY AS 'Ͽ'--20.Ͽ + ,T11E_A.FBASEINVQTY + --21.ϴ + ,T0E.FNEEDQTY AS ''--22. + ,T0E_Q.FBASEWIPQTY AS 'ǰƷ'--23.ǰƷ + --,(case when t9.FBASEQTY > T0E.FNEEDQTY then 0 else T0E.FNEEDQTY - t9.FBASEQTY end) AS 'Ƿ'--24.Ƿ + ,T11E.FBASELACKQTY AS 'Ƿ'--24.Ƿ + ,T11E_A.FBASEONORDERQTY AS ';' --25.; + ,T11E_A.FENTRYID + --26.ƻͶ + ,T0E_Q.FPICKEDQTY AS ''--27. + ,T0E_Q.FNOPICKEDQTY AS 'δ'--28.δ + ,T0E.FSTDQTY AS '׼'--׼ --29.׼ + ,T0E.FMUSTQTY AS 'Ӧ'--Ӧ --30.Ӧ + ,t0E_L.FMEMO AS 'ע'--31.ע + ,T0E_Q.FPICKEDQTY * (100 - t7E.FYIELDRATE) AS ''--32. + ,T0E_Q.FSCRAPQTY AS '' --33. + --34.ƻ + ,T0E_C.FSTOCKID + ,T5_L.FNAME AS 'ֿ'--35.ֿ + ,T0E_C.FSTOCKLOCID --36.λ + ,T0E_Q.FREPICKEDQTY AS ''--37. + ,t7E.FPLANSTARTDATE AS 'ƻ'--38.ƻ + ,t7E.FPLANFINISHDATE AS 'ƻ깤'--39.ƻ깤 + --40.λ + --,7E.FMEMO AS 'ע' --41.ע + ,t8_L.FMEMO AS 'BOMע'--42.BOMע + --,t8.FNUMERATOR + ,(CASE T7e.FPRODUCTTYPE WHEN 1 THEN 'Ʒ' WHEN 2 THEN 'Ʒ' WHEN 3 THEN 'Ʒ' ELSE '' END) AS ''--43. + --,T0.FWORKSHOPID + ,T6_L.FNAME AS ''--44. + ,(CASE T7E_A.FSTATUS WHEN 6 THEN 'ѽ᰸'ELSE '' END) AS '񵥽᰸'--45.񵥽᰸ + ,(CASE t0.FDOCUMENTSTATUS WHEN 'A' THEN '' WHEN 'B' THEN '' WHEN 'C' THEN '' WHEN 'D' THEN '' WHEN 'Z' THEN 'ݴ' ELSE '' END) AS 'Ͷϵ״̬'--46.Ͷϵ״̬ + --47.PRδתPO + ,6 AS FDECIMALS + FROM + T_PRD_MO t7 -- + LEFT JOIN T_PRD_MOENTRY t7E on t7E.FID = t7.FID + LEFT JOIN T_PRD_MOENTRY_A t7E_A on t7E_A.FENTRYID = t7E.FENTRYID + LEFT JOIN T_PRD_PPBOM T0 on T0.FMOID = t7.FID --嵥 + LEFT JOIN T_PRD_PPBOMENTRY T0E ON T0.FID = T0E.FID AND t0.FMOENTRYSEQ = t7e.FSEQ--嵥ӱ + LEFT JOIN T_PRD_PPBOMENTRY_Q T0E_Q ON T0E_Q.FENTRYID = T0E.FENTRYID --嵥ֱ + LEFT JOIN T_PRD_PPBOMENTRY_C T0E_C ON T0E_C.FENTRYID = T0E.FENTRYID + LEFT JOIN T_PRD_PPBOMENTRY_L t0E_L on t0E_L.FENTRYID = T0E.FENTRYID AND t0E_L.FLOCALEID = @LCID + LEFT JOIN T_BD_MATERIAL T1 ON T1.FMATERIALID = T0.FMATERIALID + LEFT JOIN T_BD_MATERIAL_L T1_L ON T1_L.FMATERIALID = T0.FMATERIALID AND T1_L.FLOCALEID = @LCID + LEFT JOIN T_BD_MATERIAL T2 ON T2.FMATERIALID = T0E.FMATERIALID + LEFT JOIN T_BD_MATERIAL_L T2_L ON T2_L.FMATERIALID = T0E.FMATERIALID AND T2_L.FLOCALEID = @LCID + LEFT JOIN T_BD_UNIT_L T3_L ON T3_L.FUNITID = T0.FUNITID AND T3_L.FLOCALEID = @LCID + LEFT JOIN T_BD_UNIT_L T4_L ON T4_L.FUNITID = T0E.FUNITID AND T4_L.FLOCALEID = @LCID + LEFT JOIN T_BD_STOCK_L T5_L ON T5_L.FSTOCKID = T0E_C.FSTOCKID AND T5_L.FLOCALEID =@LCID + LEFT JOIN T_BD_DEPARTMENT_L T6_L ON T6_L.FDEPTID = T0.FWORKSHOPID AND T6_L.FLOCALEID = @LCID + LEFT JOIN T_ENG_BOMCHILD_L t8_L ON t8_L.FENTRYID = T0E.FBOMENTRYID AND t8_L.FLOCALEID = @LCID + LEFT JOIN ( + SELECT + t0.FMATERIALID + ,t0.FSTOCKORGID + ,sum(t0.FBASEQTY) AS FBASEQTY + FROM + T_STK_INVENTORY t0 + GROUP BY + t0.FMATERIALID + ,t0.FSTOCKORGID + ) t9 on t9.FMATERIALID = T2.FMASTERID AND t9.FSTOCKORGID = t2.FUSEORGID + LEFT JOIN T_ENG_ROUTE_L t10_L on t10_L.FID = t7E.FROUTINGID AND t10_L.FLOCALEID = @LCID + LEFT JOIN T_PRD_PMPPBOMENTRY T11E on T11E.FMOID = t7e.FID AND T11E.FMOENTRYID = t7e.FENTRYID AND T11E.FMOENTRYSEQ = t7E.FSEQ AND T11E.FMATERIALIDSUB = T0E.FMATERIALID AND T11E.FMATERIALID = t0.FMATERIALID + LEFT JOIN T_PRD_PMPPBOMENTRY_A T11E_A ON T11E_A.FENTRYID = T11E.FENTRYID + WHERE + T0.FBILLNO = (CASE WHEN @FBILLNO != '' THEN @FBILLNO ELSE T0.FBILLNO END) + AND T0.FMOBILLNO = (CASE WHEN @FMOBILLNO != '' THEN @FMOBILLNO ELSE T0.FMOBILLNO END) + AND T0.FSALEORDERNO = (CASE WHEN @FSALEORDERNO != '' THEN @FSALEORDERNO ELSE T0.FSALEORDERNO END) + AND T1.FNUMBER = (CASE WHEN @MAINNUMBER != '' THEN @MAINNUMBER ELSE T1.FNUMBER END) + AND T1_L.FNAME = (CASE WHEN @MAINNAME != '' THEN @MAINNAME ELSE T1_L.FNAME END) + AND T2.FNUMBER = (CASE WHEN @FNUMBER != '' THEN @FNUMBER ELSE T2.FNUMBER END) + AND T2_L.FNAME = (CASE WHEN @FNAME != '' THEN @FNAME ELSE T2_L.FNAME END) \ No newline at end of file diff --git a/03.珠海市汇威精密制造有限公司/HW/SqlServer/生产用料清单查询.sql b/03.珠海市汇威精密制造有限公司/HW/SqlServer/生产用料清单查询.sql new file mode 100644 index 0000000..1e71622 --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW/SqlServer/生产用料清单查询.sql @@ -0,0 +1,192 @@ + IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].TMP123123123123123') AND type IN ('U')) + DROP TABLE [dbo].TMP123123123123123 + GO + + declare @tableName varchar(80) + ,@seqFid varchar(80) + ,@proMaterialId int + ,@materialId int + ,@FBILLNO varchar(80) + ,@FPPBOMBILLNO varchar(80) + ,@FSALEORDERNO varchar(80) + ,@LCID int + + SET @tableName = 'TMP123123123123123' + SET @seqFid = 'ROW_NUMBER() OVER(ORDER BY t0.FID) AS FIDENTITYID' + SET @proMaterialId = '' + SET @materialId = '' + SET @FBILLNO = '' + SET @FPPBOMBILLNO = '' + SET @FSALEORDERNO = '' + SET @LCID = 2052 + SELECT + --ROW_NUMBER() OVER(ORDER BY t0.FID) AS FIDENTITYID--1.к + t0.FID + ,t0e.FSEQ + ,t0e.FENTRYID + ,t0.FDATE --2. + ,t0e.FPLANSTARTDATE--38.ƻ + ,t0e.FPLANFINISHDATE--39.ƻ깤 + ,t0e.FSALEORDERNO --4.۶ + ,t0.FBILLNO--7.񵥺 + ,t0e.FQTY--12.Ʒ + --,t0e.FSTOCKID--35.ֿ + --,t0e.FSTOCKLOCID--36.λ + ,t0e.FYIELDRATE + ,t0e.FROUTINGID + ,(CASE t0e_a.FSTATUS WHEN 6 THEN 'ѽ᰸'ELSE '' END) AS 'StatusIs6'--45.񵥽᰸ + ,(CASE t0e.FPRODUCTTYPE WHEN 1 THEN 'Ʒ' WHEN 2 THEN 'Ʒ' WHEN 3 THEN 'Ʒ' ELSE '' END) AS 'PRODUCTTYPE'--43. + ,t0e.FMATERIALID AS 'ProMaterialId' + ,t1.FMNEMONICCODE AS 'ProMnemoniccode'--6. + ,t1.FNUMBER AS 'ProNumber'--8.Ʒ + ,t1_l.FNAME AS 'ProName'--9.Ʒ + ,t1_l.FSPECIFICATION AS 'ProSpecification'--10.Ʒͺ + ,t2_l.FUNITID AS 'PrdUnitId' + ,t2_l.FNAME AS 'ProUnitName'--11.Ʒλ + --,(CASE t1.FMATERIALSRC WHEN 'A' THEN 'PLM' WHEN 'B' THEN 'ERP' ELSE '' END) AS 'ProMaterialsrc' --15.Դ + INTO #TmpTable0 + FROM + T_PRD_MO t0 + INNER JOIN T_PRD_MOENTRY t0e on t0e.FID = t0.FID + INNER JOIN T_PRD_MOENTRY_A t0e_a on t0e_a.FENTRYID = t0e.FENTRYID + LEFT JOIN T_BD_MATERIAL t1 ON t1.FMATERIALID = t0e.FMATERIALID + LEFT JOIN T_BD_MATERIAL_L t1_l ON t1_l.FMATERIALID = t0e.FMATERIALID AND t1_l.FLOCALEID = @LCID + LEFT JOIN T_BD_UNIT_L t2_l ON t2_l.FUNITID = t0e.FUNITID AND t2_l.FLOCALEID = @LCID + LEFT JOIN ( + SELECT + t0e.FMOENTRYID + ,t0e.FMOENTRYSEQ + ,t0e.FMATERIALID + ,SUM(t0e_A.FBASESELINSPECTQTY) AS 'FBASESELINSPECTQTY'--ѡ + ,SUM(t0e_A.FBASEINSPECTQTY) AS 'FBASEINSPECTQTY' -- + ,SUM(t0e.FBASEFINISHQTY) AS 'FBASEFINISHQTY'-- + FROM T_PRD_MORPT t0 + INNER JOIN T_PRD_MORPTENTRY t0e on t0.FID = t0e.FID + INNER JOIN T_PRD_MORPTENTRY_A t0e_A on t0e_A.FENTRYID = t0e.FENTRYID + GROUP BY + t0e.FMOENTRYID + ,t0e.FMOENTRYSEQ + ,t0e.FMATERIALID + ) t3 on t3.FMATERIALID = t0e.FMATERIALID AND t3.FMOENTRYID = t0e.FENTRYID AND t3.FMOENTRYSEQ = t0e.FSEQ + WHERE + t0.FBILLNO = (CASE WHEN @FBILLNO != '' THEN @FBILLNO ELSE t0.FBILLNO END) + AND t0e.FSALEORDERNO = (CASE WHEN @FSALEORDERNO != '' THEN @FSALEORDERNO ELSE t0e.FSALEORDERNO END) + AND t0e.FMATERIALID = (CASE WHEN @proMaterialId <> 0 THEN @proMaterialId ELSE t0e.FMATERIALID END) + --AND T1.FNUMBER = (CASE WHEN @MAINNUMBER != '' THEN @MAINNUMBER ELSE T1.FNUMBER END) + --AND T1_L.FNAME = (CASE WHEN @MAINNAME != '' THEN @MAINNAME ELSE T1_L.FNAME END) + + SELECT + t0e.FMOENTRYID + ,t0e.FMOENTRYSEQ + ,t0e.FMATERIALID + ,SUM(t0e_A.FBASESELINSPECTQTY) AS 'FBASESELINSPECTQTY'--ѡ + ,SUM(t0e_A.FBASEINSPECTQTY) AS 'FBASEINSPECTQTY' -- + ,SUM(t0e.FBASEFINISHQTY) AS 'FBASEFINISHQTY'-- + FROM T_PRD_MORPT t0 + INNER JOIN T_PRD_MORPTENTRY t0e on t0.FID = t0e.FID + INNER JOIN T_PRD_MORPTENTRY_A t0e_A on t0e_A.FENTRYID = t0e.FENTRYID + GROUP BY + t0e.FMOENTRYID + ,t0e.FMOENTRYSEQ + ,t0e.FMATERIALID + + SELECT + t1.* + ,t0.FBILLNO AS 'FPPBOMBILLNO'--3.Ͷϵ + ,t0e.FMATERIALID + ,(t0e.FNUMERATOR / t0e.FDENOMINATOR) AS 'FUnitNeedQty' --18.ϵλ + ,t0e.FNEEDQTY --22. + ,t0e.FUNITID + ,t0e.FBOMENTRYID + ,t0e_q.FBASEWIPQTY --23.ǰƷ + ,t0e_q.FPICKEDQTY --27. + ,t0e_q.FNOPICKEDQTY --28.δ + ,t0e.FSTDQTY --׼ --29.׼ + ,t0e.FMUSTQTY --Ӧ --30.Ӧ + ,t0e_l.FMEMO --31.ע + ,t0e_q.FPICKEDQTY * (100 - t1.FYIELDRATE) AS 'FLossQty'--32. + ,t0e_q.FSCRAPQTY --33. + ,t0e_q.FREPICKEDQTY --37. + ,t0.FWORKSHOPID + ,t0e_c.FSTOCKID + ,t0e_c.FSTOCKLOCID + ,(CASE t0.FDOCUMENTSTATUS WHEN 'A' THEN '' WHEN 'B' THEN '' WHEN 'C' THEN '' WHEN 'D' THEN '' WHEN 'Z' THEN 'ݴ' ELSE '' END) AS 'PPBOMStatus'--46.Ͷϵ״̬ + INTO #TmpTable1 + FROM + #TmpTable0 t1 + LEFT JOIN T_PRD_PPBOM t0 on t1.FID = t0.FMOID AND t0.FMOENTRYSEQ = t1.FSEQ AND t0.FMOENTRYSEQ = t1.FSEQ --嵥 + INNER JOIN T_PRD_PPBOMENTRY t0e ON t0.FID = t0e.FID + LEFT JOIN T_PRD_PPBOMENTRY_Q t0e_q ON t0e_q.FENTRYID = t0e.FENTRYID --嵥ֱ + LEFT JOIN T_PRD_PPBOMENTRY_C t0e_c ON t0e_c.FENTRYID = t0e.FENTRYID + LEFT JOIN T_PRD_PPBOMENTRY_L t0e_l on t0e_l.FENTRYID = t0e.FENTRYID AND t0e_l.FLOCALEID = @LCID + WHERE + T0.FBILLNO = (CASE WHEN @FPPBOMBILLNO != '' THEN @FPPBOMBILLNO ELSE T0.FBILLNO END) + AND t0e.FMATERIALID = (CASE WHEN @materialId <> 0 THEN @materialId ELSE t0e.FMATERIALID END) + + SELECT + t0.* + ,t1.FNUMBER AS 'MaterialNumber'--8.ϱ + ,t1_l.FNAME AS 'MaterialName'--9. + ,t1_l.FSPECIFICATION AS 'MaterialSpecification'--10.Ϲͺ + ,t2_l.FNAME AS 'MaterialUnitName'--11.ϵλ + ,(CASE t1.FMATERIALSRC WHEN 'A' THEN 'PLM' WHEN 'B' THEN 'ERP' ELSE '' END) AS 'Materialsrc' --15.Դ + ,t4_l.FNAME AS 'WORKSHOPNAME' --44. + ,t1.FMASTERID + ,t1.FUSEORGID + ,t5_l.FMEMO AS 'BOMMEMO' --42.BOMע + ,t3_l.FNAME AS 'FSTOCKNAME' + into #TmpTable2 + FROM + #TmpTable1 t0 + LEFT JOIN T_BD_MATERIAL t1 ON t1.FMATERIALID = t0.FMATERIALID + LEFT JOIN T_BD_MATERIAL_L t1_l ON t1_l.FMATERIALID = t0.FMATERIALID AND t1_l.FLOCALEID = @LCID + LEFT JOIN T_BD_UNIT_L t2_l ON t2_l.FUNITID = t0.FUNITID AND t2_l.FLOCALEID = @LCID + LEFT JOIN T_BD_STOCK_L t3_l ON t3_l.FSTOCKID = t0.FSTOCKID AND t3_l.FLOCALEID =@LCID + LEFT JOIN T_BD_DEPARTMENT_L t4_l on t4_l.FDEPTID = t0.FWORKSHOPID AND t4_l.FLOCALEID = @LCID + LEFT JOIN T_ENG_BOMCHILD_L t5_l ON t5_l.FENTRYID = t0.FBOMENTRYID AND t5_L.FLOCALEID = @LCID + --WHERE + --t1.FNUMBER = (CASE WHEN @FNUMBER != '' THEN @FNUMBER ELSE t1.FNUMBER END) + --AND t1_L.FNAME = (CASE WHEN @FNAME != '' THEN @FNAME ELSE t1_L.FNAME END) + + SELECT + t0.* + ,t1.FBASEQTY + ,t2_l.FNAME AS 'ROUTENAME' + ,t3e_A.FBASEINVQTY + ,t3e.FBASELACKQTY AS 'FBASELACKQTY'--24.Ƿ + ,t3e_A.FBASEONORDERQTY AS 'FBASEONORDERQTY' --25.; + ,6 AS 'LOWEST6' + INTO #TmpTable3 + FROM + #TmpTable2 t0 + LEFT JOIN ( + SELECT + t0.FMATERIALID + ,t0.FSTOCKORGID + ,sum(t0.FBASEQTY) AS FBASEQTY + FROM + T_STK_INVENTORY t0 + GROUP BY + t0.FMATERIALID + ,t0.FSTOCKORGID + ) t1 on t1.FMATERIALID = t0.FMASTERID AND t1.FSTOCKORGID = t0.FUSEORGID + LEFT JOIN T_ENG_ROUTE_L t2_L on t2_L.FID = t0.FROUTINGID AND t2_L.FLOCALEID = @LCID + LEFT JOIN T_PRD_PMPPBOMENTRY t3e on t3e.FMOID = t0.FID AND t3e.FMOENTRYID = t0.FENTRYID AND t3e.FMOENTRYSEQ = t0.FSEQ AND t3e.FMATERIALIDSUB = t0.FMATERIALID --AND t3e.FMATERIALID = t0.FMATERIALID + LEFT JOIN T_PRD_PMPPBOMENTRY_A t3e_A ON t3e_A.FENTRYID = t3e.FENTRYID + + + exec(N' + SELECT + t0.* + ,' + @seqFid+ ' + INTO ' + @tableName + ' + FROM + #TmpTable3 t0 + ') + + drop table #TmpTable0 + drop table #TmpTable1 + drop table #TmpTable2 + drop table #TmpTable3 + + exec(N'SELECT * FROM '+ @tableName) \ No newline at end of file diff --git a/03.珠海市汇威精密制造有限公司/HW/SqlServer/生产订单.sql b/03.珠海市汇威精密制造有限公司/HW/SqlServer/生产订单.sql new file mode 100644 index 0000000..cda13e1 --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW/SqlServer/生产订单.sql @@ -0,0 +1,10 @@ +SELECT + A.FID + ,A.FBILLNO + ,AE.FPLANSTARTDATE --ƻʱ + ,AE.FPLANFINISHDATE --ƻ깤ʱ + ,AE.FPRODUCTTYPE -- + ,AE.FWORKSHOPID -- +FROM + T_PRD_MO A + LEFT JOIN T_PRD_MOENTRY AE ON A.FID = AE.FID \ No newline at end of file diff --git a/03.珠海市汇威精密制造有限公司/HW/SqlServer/获取产品类型.sql b/03.珠海市汇威精密制造有限公司/HW/SqlServer/获取产品类型.sql new file mode 100644 index 0000000..379c122 --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW/SqlServer/获取产品类型.sql @@ -0,0 +1,13 @@ +CREATE FUNCTION GetProductTypeText(@docStatu int) +RETURNS varchar(10) --طֵ +as +BEGIN +declare @result varchar(10) +select @result = (CASE @docStatu + WHEN 1 THEN 'Ʒ' + WHEN 2 THEN 'Ʒ' + WHEN 3 THEN 'Ʒ' + ELSE '' + END) +RETURN @result +END \ No newline at end of file diff --git a/03.珠海市汇威精密制造有限公司/HW/SqlServer/获取单据状态.sql b/03.珠海市汇威精密制造有限公司/HW/SqlServer/获取单据状态.sql new file mode 100644 index 0000000..3a17eba --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW/SqlServer/获取单据状态.sql @@ -0,0 +1,15 @@ +create FUNCTION ReturnStatuText(@docStatu varchar(10)) +RETURNS varchar(10) --طֵ +as +BEGIN +declare @result varchar(10) +select @result = (CASE @docStatu + WHEN 'A' THEN '' + WHEN 'B' THEN '' + WHEN 'C' THEN '' + WHEN 'D' THEN '' + WHEN 'Z' THEN 'ݴ' + ELSE '' + END) +RETURN @result +END \ No newline at end of file diff --git a/03.珠海市汇威精密制造有限公司/HW/TablePlugIn.cs b/03.珠海市汇威精密制造有限公司/HW/TablePlugIn.cs new file mode 100644 index 0000000..3836344 --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/HW/TablePlugIn.cs @@ -0,0 +1,340 @@ +using Kingdee.BOS; +using Kingdee.BOS.Core.List; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.List.PlugIn.Args; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core.Metadata.ConvertElement; +using Kingdee.BOS.Core.Metadata.EntityElement; +//using Kingdee.BOS.Core.Report.PlugIn; +//using Kingdee.BOS.Core.Report.PlugIn.Args; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.K3.Core.MFG.EntityHelper; +using Kingdee.BOS.Resource; +using System; +using System.Collections.Generic; +using System.Linq; +using Kingdee.BOS.Core.BusinessFlow.ServiceArgs; + +namespace HW.ProductionMaterialsReport +{ + public class TablePlugIn : AbstractDynamicFormPlugIn + { + private readonly string _fromId; + + //public override void FormatCellValue(FormatCellValueArgs args) + //{ + // var billParam = new BillShowParameter(); + + //} + + //public override void CellDbClick(CellEventArgs args) + //{ + // base.CellDbClick(args); + + //} + private void ListShowFrom() + { + //ListShowParameter showParam = new ListShowParameter(); + //showParam.IsLookUp = false; + //showParam.OpenStyle.ShowType = ShowType.Modal; + //showParam.FormId = "YourFormId"; + //showParam.Width = 1000; + //showParam.Height = 600; + //showParam.IsShowQuickFilter = false; + + //ListRegularFilterParameter regularFilterPara = new ListRegularFilterParameter(); + //string filter = "YourFilterCondition"; + //regularFilterPara.Filter = filter; + //showParam.ListFilterParameter = regularFilterPara; + + //this.View.ShowForm(showParam); + } + + protected void TrckDown() + { + List selectedRows = this.GetSelectedRows(); + if (selectedRows.Count == 0) + { + this.View.ShowMessage(ResManager.LoadKDString("请选择需要下查的的分录!", "015649000004851", SubSystemType.MFG, new object[0]), MessageBoxType.Notice); + return; + } + ViewLinkDataParameter viewLinkDataParameter = this.BuildViewLinkDataParameter(); + ShowConvertOpFormEventArgs thirdConvertEventArgs = null; + List list = this.LoadConvertBills(viewLinkDataParameter, out thirdConvertEventArgs); + if (list == null || list.Count == 0) + { + this.View.ShowMessage(ResManager.LoadKDString("没有关联业务数据!", "015649000004852", SubSystemType.MFG, new object[0]), MessageBoxType.Notice); + return; + } + if (!this.ExistsTrackerData(viewLinkDataParameter, thirdConvertEventArgs)) + { + this.View.ShowMessage(ResManager.LoadKDString("没有关联业务数据!", "015649000004852", SubSystemType.MFG, new object[0]), MessageBoxType.Notice); + return; + } + this.ShowLookUpTrackerForm(viewLinkDataParameter, list, thirdConvertEventArgs); + } + + private bool ExistsTrackerData(ViewLinkDataParameter viewParameter, ShowConvertOpFormEventArgs thirdConvertEventArgs) + { + if (thirdConvertEventArgs.ReplaceRelations != null && thirdConvertEventArgs.ReplaceRelations.Count > 0) + { + return true; + } + if (viewParameter.Instances.Count == 0) + { + return false; + } + string formId = viewParameter.BillInfo.FormId; + foreach (KeyValuePair> keyValuePair in viewParameter.Instances) + { + string key = keyValuePair.Key; + List value = keyValuePair.Value; + TableDefine tableDefine = BusinessFlowServiceHelper.LoadTableDefine(this.View.Context, formId, key); + List list = new List(); + foreach (BusinessFlowInstance businessFlowInstance in value) + { + if (!this.ValidateInstance(businessFlowInstance, viewParameter.LookUpType, tableDefine.TableNumber)) + { + list.Add(businessFlowInstance); + } + } + foreach (BusinessFlowInstance item in list) + { + value.Remove(item); + } + } + foreach (KeyValuePair> keyValuePair2 in viewParameter.Instances) + { + List value2 = keyValuePair2.Value; + if (value2.Count > 0) + { + return true; + } + } + return false; + } + + private bool ValidateInstance(BusinessFlowInstance instance, ViewLinkDataParameter.Enum_LookUpType lookUpType, string tableNumber) + { + if (instance.FirstNode == null) + { + return false; + } + List list = instance.SerarchTargetFormNodes(tableNumber); + if (lookUpType == ViewLinkDataParameter.Enum_LookUpType.Down) + { + using (List.Enumerator enumerator = list.GetEnumerator()) + { + while (enumerator.MoveNext()) + { + RouteTreeNode routeTreeNode = enumerator.Current; + if (routeTreeNode.ChildNodes.Count > 0) + { + return true; + } + } + return false; + } + } + foreach (RouteTreeNode routeTreeNode2 in list) + { + if (routeTreeNode2.ParentNode != null) + { + return true; + } + } + return false; + } + + private FormMetadata _oplanMeta; + + protected FormMetadata OPlanMetaData + { + get + { + if (this._oplanMeta == null) + { + this._oplanMeta = (MetaDataServiceHelper.Load(this.View.Context, "SFC_OperationPlanning", true) as FormMetadata); + } + return this._oplanMeta; + } + } + + protected List LoadConvertBills(ViewLinkDataParameter viewParameter, out ShowConvertOpFormEventArgs thirdConvertEventArgs) + { + List list = ConvertServiceHelper.GetConvertBills(this.View.Context, FormOperationEnum.Push, viewParameter.BillInfo.FormId, false); + DynamicFormViewPlugInProxy service = this.View.GetService(); + thirdConvertEventArgs = new ShowConvertOpFormEventArgs(FormOperationEnum.TrackDown, list); + if (service != null) + { + new List(); + thirdConvertEventArgs.SelectedRows = this.GetSelectedEntityRows(); + list = (thirdConvertEventArgs.Bills as List); + } + if (list == null || list.Count == 0) + { + this.View.ShowMessage(ResManager.LoadKDString("从启用的单据转换流程中找不到可下查的单据", "015649000004854", SubSystemType.MFG, new object[0]), MessageBoxType.Notice); + return new List(); + } + return list; + } + + public ListSelectedRow[] GetSelectedEntityRows() + { + List list = new List(); + List selectedRows = this.GetSelectedRows(); + foreach (DynamicObject dynamicObject in selectedRows) + { + long dynamicObjectItemValue = dynamicObject.GetDynamicObjectItemValue("OperId", 0L); + list.Add(new ListSelectedRow(this.currNodeID, dynamicObjectItemValue.ToString(), 0, this._oplanMeta.Id) + { + EntryEntityKey = "FENTITY" + }); + } + if (list.Count == 0) + { + ListSelectedRow item = new ListSelectedRow(this.currNodeID, "0", 0, this._oplanMeta.Id); + list.Add(item); + } + return list.ToArray(); + } + + private ViewLinkDataParameter BuildViewLinkDataParameter() + { + if (!this.CheckSelectDataId() && this.GetSelectedRows().Count == 0) + { + this.View.ShowMessage(ResManager.LoadKDString("没有选择要下查的数据!", "015649000004853", SubSystemType.MFG, new object[0]), MessageBoxType.Notice); + return null; + } + Dictionary>> linkIds = this.GetLinkIds(); + ViewLinkDataParameter viewLinkDataParameter = new ViewLinkDataParameter(this.OPlanMetaData.Id, ViewLinkDataParameter.Enum_LookUpType.Down); + foreach (KeyValuePair>> keyValuePair in linkIds) + { + string key = keyValuePair.Key; + List> value = keyValuePair.Value; + foreach (Tuple tuple in value) + { + ViewLinkDataRowInfo item = new ViewLinkDataRowInfo(key, tuple.Item1, tuple.Item2); + viewLinkDataParameter.BillInfo.Rows.Add(item); + } + } + this.BuildInstanceParameter(viewLinkDataParameter, linkIds); + return viewLinkDataParameter; + } + + private string currNodeID = string.Empty; + + protected Dictionary>> GetLinkIds() + { + Dictionary>> dictionary = new Dictionary>>(); + List list = new List(); + List> list2 = new List>(); + long num = Convert.ToInt64(this.currNodeID); + list.Add(num); + list2.Add(new Tuple(num, num)); + dictionary.Add("FBILLHEAD", list2); + List list3 = new List(); + List> list4 = new List>(); + List selectedRows = this.GetSelectedRows(); + foreach (DynamicObject dynamicObject in selectedRows) + { + long dynamicObjectItemValue = dynamicObject.GetDynamicObjectItemValue("SeqId", 0L); + if (!list3.Contains(dynamicObjectItemValue)) + { + list3.Add(dynamicObjectItemValue); + list4.Add(new Tuple(num, dynamicObjectItemValue)); + } + } + if (list3.Count > 0) + { + dictionary.Add("FENTITY", list4); + } + return dictionary; + } + + + private bool CheckSelectDataId() + { + bool result = true; + object value = this.Model.GetValue("FOPlanID"); + if (value == null) + { + result = false; + this.View.ShowMessage(ResManager.LoadKDString("没有选择工序计划!", "015376000004785", SubSystemType.MFG, new object[0]), MessageBoxType.Notice); + } + long num = Convert.ToInt64(value); + if (num == 0L) + { + result = false; + this.View.ShowMessage(ResManager.LoadKDString("没有选择工序计划!", "015376000004785", SubSystemType.MFG, new object[0]), MessageBoxType.Notice); + } + if (!ShopWorkBenchServiceHelper.IsExistOPlan(base.Context, num)) + { + result = false; + this.View.ShowMessage(ResManager.LoadKDString("工序计划已经删除,请刷新界面或重新选择其他工序计划!", "015376000004804", SubSystemType.MFG, new object[0]), MessageBoxType.Notice); + } + return result; + } + + private void BuildInstanceParameter(ViewLinkDataParameter viewParameter, Dictionary>> allEntityIds) + { + string formId = viewParameter.BillInfo.FormId; + foreach (KeyValuePair>> keyValuePair in allEntityIds) + { + string key = keyValuePair.Key; + List> value = keyValuePair.Value; + List list = (from p in value + select p.Item2).ToList(); + BusinessFlowInstanceCollection businessFlowInstanceCollection = this.LoadInstances(this.View.Context, formId, key, list.ToArray()); + List list2 = new List(); + foreach (BusinessFlowInstance businessFlowInstance in businessFlowInstanceCollection) + { + if (businessFlowInstance.FirstNode != null) + { + list2.Add(businessFlowInstance); + } + } + if (list2.Count > 0) + { + viewParameter.Instances[key] = list2; + } + } + } + + public BusinessFlowInstanceCollection LoadInstances(Context ctx, string formId, string entityKey, long[] entityIds) + { + LoadInstancesByEntityIdArgs args = new LoadInstancesByEntityIdArgs(formId, entityKey, entityIds); + return BusinessFlowDataServiceHelper.LoadInstancesByEntityId(ctx, args); + } + + private bool ShowLookUpTrackerForm(ViewLinkDataParameter viewParamter, List convertBills, ShowConvertOpFormEventArgs thirdConvertEventArgs) + { + if (convertBills != null && convertBills.Count > 0) + { + string key = "LookUpTrackerParam"; + Dictionary dictionary = new Dictionary(); + dictionary["ViewParameter"] = viewParamter; + dictionary["ConvertBills"] = convertBills; + dictionary["PlugParam"] = thirdConvertEventArgs; + this.View.Session[key] = dictionary; + DynamicFormShowParameter dynamicFormShowParameter = new DynamicFormShowParameter(); + dynamicFormShowParameter.FormId = "BF_LookUpTracker"; + dynamicFormShowParameter.ParentPageId = this.View.PageId; + dynamicFormShowParameter.OpenStyle.ShowType = ShowType.Default; + this.View.ShowForm(dynamicFormShowParameter); + return true; + } + return false; + } + + private List GetSelectedRows() + { + EntryEntity entryEntity = this.View.BusinessInfo.GetEntryEntity("FDetailEntity"); + List list = new List(); + return (from w in this.Model.GetEntityDataObject(entryEntity) + where w.GetDynamicObjectItemValue("IsSelect", false) + select w).ToList(); + } + } +} diff --git a/03.珠海市汇威精密制造有限公司/Kingdee.K3.SCM.Sal.Report.PlugInEx/HW.App.Sal.Report.PlugInEx.csproj b/03.珠海市汇威精密制造有限公司/Kingdee.K3.SCM.Sal.Report.PlugInEx/HW.App.Sal.Report.PlugInEx.csproj index 95b37f2..50414c5 100644 --- a/03.珠海市汇威精密制造有限公司/Kingdee.K3.SCM.Sal.Report.PlugInEx/HW.App.Sal.Report.PlugInEx.csproj +++ b/03.珠海市汇威精密制造有限公司/Kingdee.K3.SCM.Sal.Report.PlugInEx/HW.App.Sal.Report.PlugInEx.csproj @@ -73,8 +73,16 @@ + - + + + + + + + + \ No newline at end of file diff --git a/03.珠海市汇威精密制造有限公司/Kingdee.K3.SCM.Sal.Report.PlugInEx/SQLServer/SQLQuery4.sql b/03.珠海市汇威精密制造有限公司/Kingdee.K3.SCM.Sal.Report.PlugInEx/SQLServer/SQLQuery4.sql new file mode 100644 index 0000000..4b5d47d --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/Kingdee.K3.SCM.Sal.Report.PlugInEx/SQLServer/SQLQuery4.sql @@ -0,0 +1,55 @@ +SELECT * INTO #TMP123 FROM #TPRDMOINFO +DROP TABLE #TPRDMOINFO + +SELECT + '' AS 'к', + '' AS '', + A.FBILLNO AS 'Ͷϵ', + '' AS '۶', + '' AS 'λ', + A.FMNEMONICCODE AS '', + A.FBILLNO AS '񵥺', + A.FNUMBER AS 'Ʒ', + A.FNAME AS 'Ʒ', + A.FSPECIFICATION AS 'Ʒͺ', + A.FNAME AS 'Ʒλ', + A.FQTY AS 'Ʒ', + A.FNUMBER AS 'ϴ', + A.FNAME AS '', + ( CASE A.FMATERIALSRC WHEN 'A' THEN 'PLM' WHEN 'B' THEN 'ERP' ELSE '' END ) AS 'Դ', + A.FSPECIFICATION AS 'Ϲͺ', + '' AS 'ϼ׼', + A.FSTDQTY AS 'ϵλ', + A.FUNITID AS 'ϵλ', + A.FINVENTORYQTY AS 'Ͽ', + '' AS 'ϴ', + A.FNEEDQTY AS '', + '' AS 'ǰƷ', + '' AS 'Ƿ', + '' AS ';', + '' AS 'ƻͶ', + A.FPICKEDQTY AS '', + A.FNOPICKEDQTY AS 'δ', + '' AS '׼', + A.FMUSTQTY AS 'Ӧ', + '' AS 'ע', + '' AS '', + A.FSCRAPQTY AS '', + '' AS 'ƻ', + '' AS 'ֿ', + '' AS 'λ', + A.FREPICKEDQTY AS '', + A.FPLANSTARTDATE AS 'ƻ', + A.FPLANFINISHDATE AS 'ƻ깤', + '' AS 'λ', + '' AS 'ע', + '' AS 'BOMע', + A.FBILLTYPE AS '', + A.FWORKSHOPID AS '', + ( CASE AE_A.FSTATUS WHEN 6 THEN 'ѽ᰸' ELSE '' END ) AS '񵥽᰸', + A.FDOCUMENTSTATUS AS 'Ͷϵ״̬', + '' AS 'PRδתPO' +FROM + #TMP123 A + + DROP TABLE #TMP123 \ No newline at end of file diff --git a/03.珠海市汇威精密制造有限公司/Kingdee.K3.SCM.Sal.Report.PlugInEx/SQLServer/SQLQuery5.sql b/03.珠海市汇威精密制造有限公司/Kingdee.K3.SCM.Sal.Report.PlugInEx/SQLServer/SQLQuery5.sql new file mode 100644 index 0000000..029a63c --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/Kingdee.K3.SCM.Sal.Report.PlugInEx/SQLServer/SQLQuery5.sql @@ -0,0 +1,21 @@ + +SELECT + TOP 1000 + T0E.FMATERIALID + ,T0E.FMATERIALIDSUB +FROM + T_PRD_PMPPBOMENTRY T0E + INNER JOIN T_PRD_PMPPBOMENTRY_A T0E_A ON T0E_A.FENTRYID = T0E.FENTRYID +WHERE T0E.FID = 101118 +GROUP BY T0E.FMATERIALID,T0E.FMATERIALIDSUB + + +SELECT + TOP 1000 + t0E.* + ,T0E_A.* +FROM + T_PRD_LACKANALYSEBILL t0 + INNER JOIN T_PRD_PMPPBOMENTRY T0E on t0.FID = T0E.FID + INNER JOIN T_PRD_PMPPBOMENTRY_A T0E_A ON T0E_A.FENTRYID = T0E.FENTRYID +WHERE t0.FBILLNO = 'SCQL000671' \ No newline at end of file diff --git a/03.珠海市汇威精密制造有限公司/Kingdee.K3.SCM.Sal.Report.PlugInEx/SQLServer/仓位值1.sql b/03.珠海市汇威精密制造有限公司/Kingdee.K3.SCM.Sal.Report.PlugInEx/SQLServer/仓位值1.sql new file mode 100644 index 0000000..2befea2 --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/Kingdee.K3.SCM.Sal.Report.PlugInEx/SQLServer/仓位值1.sql @@ -0,0 +1,37 @@ +SELECT * FROM T_BD_STOCK +SELECT * FROM T_BD_STOCKFLEXITEM +SELECT * FROM T_BD_STOCKFLEXDETAIL +SELECT * FROM T_BAS_FLEXVALUES +SELECT * FROM T_BAS_FLEXVALUESENTRY +SELECT * FROM T_BAS_FLEXVALUESENTRY_L +SELECT * FROM T_BD_FLEXVALUESCOM +SELECT * FROM T_BAS_FLEXVALUESDETAIL + +SELECT + t1.FNUMBER + ,t1_l.FNAME + ,t0.FMATERIALID + ,t0.FSTOCKID + ,t0.FSTOCKLOCID + ,stuff((select CAST(t2.FF100001 AS varchar) +'.'+ CAST(t2.FF100002 AS varchar) FROM T_BAS_FLEXVALUESDETAIL t2 WHERE t2.FID = t0.FSTOCKLOCID for xml path('')),1,1,'') +FROM T_STK_INVENTORY t0 + LEFT JOIN T_BD_MATERIAL t1 on t1.FMATERIALID = t0.FMATERIALID + LEFT JOIN T_BD_MATERIAL_L t1_l on t1_l.FMATERIALID = t0.FMATERIALID AND t1_l.FLOCALEID = 2052 + --LEFT JOIN T_BAS_FLEXVALUESDETAIL t2 on t2.FID = t0.FSTOCKLOCID +WHERE + t0.FSTOCKLOCID > 0 + +DECLARE @columns NVARCHAR(MAX), @sql NVARCHAR(MAX); +SELECT @columns = COALESCE(@columns + ',', '') + CONCAT('t0.',t0.FFLEXNUMBER) +FROM T_BAS_FLEXVALUES t0 +WHERE t0.FDOCUMENTSTATUS = 'C' AND t0.FFORBIDSTATUS = 'A' + +SET @sql = N' +SELECT + t0.FID + ,CONCAT(' + @columns + ' +''.'', '''') +FROM T_BAS_FLEXVALUESDETAIL t0 + +'; + +EXEC sp_executesql @sql; \ No newline at end of file diff --git a/03.珠海市汇威精密制造有限公司/Kingdee.K3.SCM.Sal.Report.PlugInEx/SQLServer/仓位值2.sql b/03.珠海市汇威精密制造有限公司/Kingdee.K3.SCM.Sal.Report.PlugInEx/SQLServer/仓位值2.sql new file mode 100644 index 0000000..9cadc9b --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/Kingdee.K3.SCM.Sal.Report.PlugInEx/SQLServer/仓位值2.sql @@ -0,0 +1,26 @@ +DECLARE @columns NVARCHAR(MAX), @sql NVARCHAR(MAX),@LOCALEID char(10); +SET @LOCALEID = '2052' +SELECT @columns = COALESCE(@columns + ',', '') + CONCAT('',t0.FFLEXNUMBER) +FROM T_BAS_FLEXVALUES t0 +WHERE t0.FDOCUMENTSTATUS = 'C' AND t0.FFORBIDSTATUS = 'A' + +SET @SQL = N' +SELECT + t0.FID + ,t0.aColumn + ,t0.aValue + ,t1e_l.FNAME + ,ROW_NUMBER() OVER (PARTITION BY t0.FID ORDER BY t1.FNUMBER) AS RowId +FROM + (SELECT FID,'+@columns+' + FROM T_BAS_FLEXVALUESDETAIL) AS P +UNPIVOT + (aValue FOR aColumn IN + ('+@columns+') + )AS t0 + INNER JOIN T_BAS_FLEXVALUES t1 on t1.FFLEXNUMBER = t0.aColumn + INNER JOIN T_BAS_FLEXVALUESENTRY_L t1e_l on t0.aValue = t1e_l.FENTRYID AND t1e_l.FLOCALEID = '+@LOCALEID+' +;'; +EXEC(@SQL); + +--SELECT * FROM T_BAS_FLEXVALUES diff --git a/03.珠海市汇威精密制造有限公司/Kingdee.K3.SCM.Sal.Report.PlugInEx/SQLServer/仓库值.sql b/03.珠海市汇威精密制造有限公司/Kingdee.K3.SCM.Sal.Report.PlugInEx/SQLServer/仓库值.sql new file mode 100644 index 0000000..69752f9 --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/Kingdee.K3.SCM.Sal.Report.PlugInEx/SQLServer/仓库值.sql @@ -0,0 +1,12 @@ +SELECT T2.FSTOCKID, T2.FNUMBER, T3.FNAME, T4.FFLEXENTRYID AS λֵ, T41.FNUMBER λֵ, T41L.FNAME λֵ, T1.FFLEXID λֵά,T31.FNUMBER λֵ,T31L.FNAME λֵ +FROM + T_BD_STOCKFLEXITEM T1 + JOIN T_BD_STOCKFLEXDETAIL T4 ON T1.FENTRYID = T4.FENTRYID + JOIN T_BAS_FLEXVALUES T31 ON T1.FFLEXID = T31.FID + JOIN T_BAS_FLEXVALUES_L T31L ON T31L.FID = T31.FID AND T31L.FLOCALEID = 2052 + JOIN T_BAS_FLEXVALUESENTRY T41 ON T4.FFLEXENTRYID = T41.FENTRYID + JOIN T_BAS_FLEXVALUESENTRY_L T41L ON T41L.FENTRYID = T41.FENTRYID AND T41L.FLOCALEID = 2052 + JOIN T_BD_STOCK T2 ON T1.FSTOCKID = T2.FSTOCKID + JOIN T_BD_STOCK_L T3 ON T2.FSTOCKID = T3.FSTOCKID AND T3.FLOCALEID = 2052 +ORDER BY + T2.FSTOCKID, T31.FNUMBER, T41.FNUMBER diff --git a/03.珠海市汇威精密制造有限公司/Kingdee.K3.SCM.Sal.Report.PlugInEx/SQLServer/存储过程-生产用料清单.sql b/03.珠海市汇威精密制造有限公司/Kingdee.K3.SCM.Sal.Report.PlugInEx/SQLServer/存储过程-生产用料清单.sql new file mode 100644 index 0000000..8ac22b6 --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/Kingdee.K3.SCM.Sal.Report.PlugInEx/SQLServer/存储过程-生产用料清单.sql @@ -0,0 +1,154 @@ +IF EXISTS(SELECT * FROM SYS.PROCEDURES WHERE NAME='PROC_PPBOM_RPT') + DROP PROCEDURE DBO.PROC_PPBOM_RPT; +GO + +CREATE PROCEDURE PROC_PPBOM_RPT + @tableName varchar(80) + ,@seqFid varchar(80) + ,@proMaterialId int + ,@materialId int + ,@FBILLNO varchar(80) + ,@FPPBOMBILLNO varchar(80) + ,@FSALEORDERNO varchar(80) + ,@LCID int +AS +BEGIN +SELECT + --ROW_NUMBER() OVER(ORDER BY t0.FID) AS FIDENTITYID--1.к + t0.FID + ,t0e.FSEQ + ,t0e.FENTRYID + ,t0.FDATE --2. + ,t0e.FPLANSTARTDATE--38.ƻ + ,t0e.FPLANFINISHDATE--39.ƻ깤 + ,t0e.FSALEORDERNO --4.۶ + ,t0.FBILLNO--7.񵥺 + ,t0e.FQTY--12.Ʒ + --,t0e.FSTOCKID--35.ֿ + --,t0e.FSTOCKLOCID--36.λ + ,t0e.FYIELDRATE + ,t0e.FROUTINGID + ,(CASE t0e_a.FSTATUS WHEN 6 THEN 'ѽ᰸'ELSE '' END) AS 'StatusIs6'--45.񵥽᰸ + ,(CASE t0e.FPRODUCTTYPE WHEN 1 THEN 'Ʒ' WHEN 2 THEN 'Ʒ' WHEN 3 THEN 'Ʒ' ELSE '' END) AS 'PRODUCTTYPE'--43. + ,t0e.FMATERIALID AS 'ProMaterialId' + ,t1.FMNEMONICCODE AS 'ProMnemoniccode'--6. + ,t1.FNUMBER AS 'ProNumber'--8.Ʒ + ,t1_l.FNAME AS 'ProName'--9.Ʒ + ,t1_l.FSPECIFICATION AS 'ProSpecification'--10.Ʒͺ + ,t2_l.FUNITID AS 'PrdUnitId' + ,t2_l.FNAME AS 'ProUnitName'--11.Ʒλ + --,(CASE t1.FMATERIALSRC WHEN 'A' THEN 'PLM' WHEN 'B' THEN 'ERP' ELSE '' END) AS 'ProMaterialsrc' --15.Դ + INTO #TmpTable0 + FROM + T_PRD_MO t0 + INNER JOIN T_PRD_MOENTRY t0e on t0e.FID = t0.FID + INNER JOIN T_PRD_MOENTRY_A t0e_a on t0e_a.FENTRYID = t0e.FENTRYID + LEFT JOIN T_BD_MATERIAL t1 ON t1.FMATERIALID = t0e.FMATERIALID + LEFT JOIN T_BD_MATERIAL_L t1_l ON t1_l.FMATERIALID = t0e.FMATERIALID AND t1_l.FLOCALEID = @LCID + LEFT JOIN T_BD_UNIT_L t2_l ON t2_l.FUNITID = t0e.FUNITID AND t2_l.FLOCALEID = @LCID + WHERE + t0.FBILLNO = (CASE WHEN @FBILLNO != '' THEN @FBILLNO ELSE t0.FBILLNO END) + AND t0e.FSALEORDERNO = (CASE WHEN @FSALEORDERNO != '' THEN @FSALEORDERNO ELSE t0e.FSALEORDERNO END) + AND t0e.FMATERIALID = (CASE WHEN @proMaterialId <> 0 THEN @proMaterialId ELSE t0e.FMATERIALID END) + --AND T1.FNUMBER = (CASE WHEN @MAINNUMBER != '' THEN @MAINNUMBER ELSE T1.FNUMBER END) + --AND T1_L.FNAME = (CASE WHEN @MAINNAME != '' THEN @MAINNAME ELSE T1_L.FNAME END) + + SELECT + t1.* + ,t0.FBILLNO AS 'FPPBOMBILLNO'--3.Ͷϵ + ,t0e.FMATERIALID + ,(t0e.FNUMERATOR / t0e.FDENOMINATOR) AS 'FUnitNeedQty' --18.ϵλ + ,t0e.FNEEDQTY --22. + ,t0e.FUNITID + ,t0e.FBOMENTRYID + ,t0e_q.FBASEWIPQTY --23.ǰƷ + ,t0e_q.FPICKEDQTY --27. + ,t0e_q.FNOPICKEDQTY --28.δ + ,t0e.FSTDQTY --׼ --29.׼ + ,t0e.FMUSTQTY --Ӧ --30.Ӧ + ,t0e_l.FMEMO --31.ע + ,t0e_q.FPICKEDQTY * (100 - t1.FYIELDRATE) AS 'FLossQty'--32. + ,t0e_q.FSCRAPQTY --33. + ,t0e_q.FREPICKEDQTY --37. + ,t0.FWORKSHOPID + ,t0e_c.FSTOCKID + ,t0e_c.FSTOCKLOCID + ,(CASE t0.FDOCUMENTSTATUS WHEN 'A' THEN '' WHEN 'B' THEN '' WHEN 'C' THEN '' WHEN 'D' THEN '' WHEN 'Z' THEN 'ݴ' ELSE '' END) AS 'PPBOMStatus'--46.Ͷϵ״̬ + INTO #TmpTable1 + FROM + #TmpTable0 t1 + LEFT JOIN T_PRD_PPBOM t0 on t1.FID = t0.FMOID AND t0.FMOENTRYSEQ = t1.FSEQ AND t0.FMOENTRYSEQ = t1.FSEQ --嵥 + INNER JOIN T_PRD_PPBOMENTRY t0e ON t0.FID = t0e.FID + LEFT JOIN T_PRD_PPBOMENTRY_Q t0e_q ON t0e_q.FENTRYID = t0e.FENTRYID --嵥ֱ + LEFT JOIN T_PRD_PPBOMENTRY_C t0e_c ON t0e_c.FENTRYID = t0e.FENTRYID + LEFT JOIN T_PRD_PPBOMENTRY_L t0e_l on t0e_l.FENTRYID = t0e.FENTRYID AND t0e_l.FLOCALEID = @LCID + WHERE + T0.FBILLNO = (CASE WHEN @FPPBOMBILLNO != '' THEN @FPPBOMBILLNO ELSE T0.FBILLNO END) + AND t0e.FMATERIALID = (CASE WHEN @materialId <> 0 THEN @materialId ELSE t0e.FMATERIALID END) + + SELECT + t0.* + ,t1.FNUMBER AS 'MaterialNumber'--8.ϱ + ,t1_l.FNAME AS 'MaterialName'--9. + ,t1_l.FSPECIFICATION AS 'MaterialSpecification'--10.Ϲͺ + ,t2_l.FNAME AS 'MaterialUnitName'--11.ϵλ + ,(CASE t1.FMATERIALSRC WHEN 'A' THEN 'PLM' WHEN 'B' THEN 'ERP' ELSE '' END) AS 'Materialsrc' --15.Դ + ,t4_l.FNAME AS 'WORKSHOPNAME' --44. + ,t1.FMASTERID + ,t1.FUSEORGID + ,t5_l.FMEMO AS 'BOMMEMO' --42.BOMע + ,t3_l.FNAME AS 'FSTOCKNAME' + into #TmpTable2 + FROM + #TmpTable1 t0 + LEFT JOIN T_BD_MATERIAL t1 ON t1.FMATERIALID = t0.FMATERIALID + LEFT JOIN T_BD_MATERIAL_L t1_l ON t1_l.FMATERIALID = t0.FMATERIALID AND t1_l.FLOCALEID = @LCID + LEFT JOIN T_BD_UNIT_L t2_l ON t2_l.FUNITID = t0.FUNITID AND t2_l.FLOCALEID = @LCID + LEFT JOIN T_BD_STOCK_L t3_l ON t3_l.FSTOCKID = t0.FSTOCKID AND t3_l.FLOCALEID =@LCID + LEFT JOIN T_BD_DEPARTMENT_L t4_l on t4_l.FDEPTID = t0.FWORKSHOPID AND t4_l.FLOCALEID = @LCID + LEFT JOIN T_ENG_BOMCHILD_L t5_l ON t5_l.FENTRYID = t0.FBOMENTRYID AND t5_L.FLOCALEID = @LCID + --WHERE + --t1.FNUMBER = (CASE WHEN @FNUMBER != '' THEN @FNUMBER ELSE t1.FNUMBER END) + --AND t1_L.FNAME = (CASE WHEN @FNAME != '' THEN @FNAME ELSE t1_L.FNAME END) + + SELECT + t0.* + ,t1.FBASEQTY + ,t2_l.FNAME AS 'ROUTENAME' + ,t3e_A.FBASEINVQTY + ,t3e.FBASELACKQTY AS 'FBASELACKQTY'--24.Ƿ + ,t3e_A.FBASEONORDERQTY AS 'FBASEONORDERQTY' --25.; + ,6 AS 'LOWEST6' + INTO #TmpTable3 + FROM + #TmpTable2 t0 + LEFT JOIN ( + SELECT + t0.FMATERIALID + ,t0.FSTOCKORGID + ,sum(t0.FBASEQTY) AS FBASEQTY + FROM + T_STK_INVENTORY t0 + GROUP BY + t0.FMATERIALID + ,t0.FSTOCKORGID + ) t1 on t1.FMATERIALID = t0.FMASTERID AND t1.FSTOCKORGID = t0.FUSEORGID + LEFT JOIN T_ENG_ROUTE_L t2_L on t2_L.FID = t0.FROUTINGID AND t2_L.FLOCALEID = @LCID + LEFT JOIN T_PRD_PMPPBOMENTRY t3e on t3e.FMOID = t0.FID AND t3e.FMOENTRYID = t0.FENTRYID AND t3e.FMOENTRYSEQ = t0.FSEQ AND t3e.FMATERIALIDSUB = t0.FMATERIALID --AND t3e.FMATERIALID = t0.FMATERIALID + LEFT JOIN T_PRD_PMPPBOMENTRY_A t3e_A ON t3e_A.FENTRYID = t3e.FENTRYID + + + exec(N' + SELECT + t0.* + ,' + @seqFid+ ' + INTO ' + @tableName + ' + FROM + #TmpTable3 t0 + ') + + drop table #TmpTable0 + drop table #TmpTable1 + drop table #TmpTable2 + drop table #TmpTable3 +END diff --git a/03.珠海市汇威精密制造有限公司/Kingdee.K3.SCM.Sal.Report.PlugInEx/SQLServer/生产用料清单.sql b/03.珠海市汇威精密制造有限公司/Kingdee.K3.SCM.Sal.Report.PlugInEx/SQLServer/生产用料清单.sql new file mode 100644 index 0000000..1b14f18 --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/Kingdee.K3.SCM.Sal.Report.PlugInEx/SQLServer/生产用料清单.sql @@ -0,0 +1,130 @@ + DECLARE @FBILLNO varchar(80) + ,@MainNumber varchar(80) + ,@MainName varchar(80) + ,@FMOBILLNO varchar(80) + ,@FNumber varchar(80) + ,@FName varchar(80) + ,@FSALEORDERNO varchar(80) + ,@LCID int + set @FBILLNO = '' + set @MainNumber = '' + set @MainName = '' + set @FMOBILLNO = '' + set @FNumber = '' + set @FName = '' + set @FSALEORDERNO = '' + set @LCID = 2052 + + --set @FBILLNO ='' + --set @MainNumber='' + --set @MainName='' + --set @FMOBILLNO='' + --set @FNumber='' + --set @FName='' + --set @FSALEORDERNO='' + --set @LCID=2052 + + SELECT + top 1000 + ROW_NUMBER() OVER(ORDER BY T0.FMATERIALID) AS 'к' --1.к + ,T0.FID + --,T0.FFORMID + ,t7.FDATE AS '' --2. + ,T0.FBILLNO AS 'Ͷϵ'--3.Ͷϵ + --,T0.FMOID -- + ----,T0.FMOENTRYID --ӱ + --,t0.FSALEORDERID + --,t0.FSALEORDERENTRYID + ,T0.FSALEORDERNO AS '۶' --4.۶ + --,T0.FMATERIALID --ƷID + --5.λ + ,T1.FMNEMONICCODE AS ''--6. + ,T0.FMOBILLNO AS '񵥺'--7.񵥺 + ,T1.FNUMBER AS 'Ʒ'--8.Ʒ + ,T1_L.FNAME AS 'Ʒ'--9.Ʒ + ,T1_L.FSPECIFICATION AS 'Ʒͺ'--10.Ʒͺ + ,T3_L.FNAME AS 'Ʒλ'--11.Ʒλ + ,T0.FQTY AS 'Ʒ'--12.Ʒ + ,T2.FNUMBER AS 'ϴ'--13.ϴ + ,T2_L.FNAME AS ''--14. + ,(CASE T2.FMATERIALSRC WHEN 'A' THEN 'PLM' WHEN 'B' THEN 'ERP' ELSE '' END) AS 'Դ' --15.Դ + ,T2_L.FSPECIFICATION AS 'Ϲͺ'--16.Ϲͺ + ,t10_L.FNAME AS 'ϼ׼'--17.ϼ׼ + ,(T0E.FNUMERATOR / T0E.FDENOMINATOR) AS 'ϵλ' --18.ϵλ + --,T0E.FUNITID AS ENTRYUNITID + ,T4_L.FNAME AS 'ϵλ' --19.ϵλ + ,t9.FBASEQTY AS 'Ͽ'--20.Ͽ + ,T11E_A.FBASEINVQTY + --21.ϴ + ,T0E.FNEEDQTY AS ''--22. + ,T0E_Q.FBASEWIPQTY AS 'ǰƷ'--23.ǰƷ + --,(case when t9.FBASEQTY > T0E.FNEEDQTY then 0 else T0E.FNEEDQTY - t9.FBASEQTY end) AS 'Ƿ'--24.Ƿ + ,T11E.FBASELACKQTY AS 'Ƿ'--24.Ƿ + ,T11E_A.FBASEONORDERQTY AS ';' --25.; + ,T11E_A.FENTRYID + --26.ƻͶ + ,T0E_Q.FPICKEDQTY AS ''--27. + ,T0E_Q.FNOPICKEDQTY AS 'δ'--28.δ + ,T0E.FSTDQTY AS '׼'--׼ --29.׼ + ,T0E.FMUSTQTY AS 'Ӧ'--Ӧ --30.Ӧ + ,t0E_L.FMEMO AS 'ע'--31.ע + ,T0E_Q.FPICKEDQTY * (100 - t7E.FYIELDRATE) AS ''--32. + ,T0E_Q.FSCRAPQTY AS '' --33. + --34.ƻ + ,T0E_C.FSTOCKID + ,T5_L.FNAME AS 'ֿ'--35.ֿ + ,T0E_C.FSTOCKLOCID --36.λ + ,T0E_Q.FREPICKEDQTY AS ''--37. + ,t7E.FPLANSTARTDATE AS 'ƻ'--38.ƻ + ,t7E.FPLANFINISHDATE AS 'ƻ깤'--39.ƻ깤 + --40.λ + --,7E.FMEMO AS 'ע' --41.ע + ,t8_L.FMEMO AS 'BOMע'--42.BOMע + --,t8.FNUMERATOR + ,(CASE T7e.FPRODUCTTYPE WHEN 1 THEN 'Ʒ' WHEN 2 THEN 'Ʒ' WHEN 3 THEN 'Ʒ' ELSE '' END) AS ''--43. + --,T0.FWORKSHOPID + ,T6_L.FNAME AS ''--44. + ,(CASE T7E_A.FSTATUS WHEN 6 THEN 'ѽ᰸'ELSE '' END) AS '񵥽᰸'--45.񵥽᰸ + ,(CASE t0.FDOCUMENTSTATUS WHEN 'A' THEN '' WHEN 'B' THEN '' WHEN 'C' THEN '' WHEN 'D' THEN '' WHEN 'Z' THEN 'ݴ' ELSE '' END) AS 'Ͷϵ״̬'--46.Ͷϵ״̬ + --47.PRδתPO + ,6 AS FDECIMALS + FROM + T_PRD_MO t7 -- + LEFT JOIN T_PRD_MOENTRY t7E on t7E.FID = t7.FID + LEFT JOIN T_PRD_MOENTRY_A t7E_A on t7E_A.FENTRYID = t7E.FENTRYID + LEFT JOIN T_PRD_PPBOM T0 on T0.FMOID = t7.FID --嵥 + LEFT JOIN T_PRD_PPBOMENTRY T0E ON T0.FID = T0E.FID AND t0.FMOENTRYSEQ = t7e.FSEQ--嵥ӱ + LEFT JOIN T_PRD_PPBOMENTRY_Q T0E_Q ON T0E_Q.FENTRYID = T0E.FENTRYID --嵥ֱ + LEFT JOIN T_PRD_PPBOMENTRY_C T0E_C ON T0E_C.FENTRYID = T0E.FENTRYID + LEFT JOIN T_PRD_PPBOMENTRY_L t0E_L on t0E_L.FENTRYID = T0E.FENTRYID AND t0E_L.FLOCALEID = @LCID + LEFT JOIN T_BD_MATERIAL T1 ON T1.FMATERIALID = T0.FMATERIALID + LEFT JOIN T_BD_MATERIAL_L T1_L ON T1_L.FMATERIALID = T0.FMATERIALID AND T1_L.FLOCALEID = @LCID + LEFT JOIN T_BD_MATERIAL T2 ON T2.FMATERIALID = T0E.FMATERIALID + LEFT JOIN T_BD_MATERIAL_L T2_L ON T2_L.FMATERIALID = T0E.FMATERIALID AND T2_L.FLOCALEID = @LCID + LEFT JOIN T_BD_UNIT_L T3_L ON T3_L.FUNITID = T0.FUNITID AND T3_L.FLOCALEID = @LCID + LEFT JOIN T_BD_UNIT_L T4_L ON T4_L.FUNITID = T0E.FUNITID AND T4_L.FLOCALEID = @LCID + LEFT JOIN T_BD_STOCK_L T5_L ON T5_L.FSTOCKID = T0E_C.FSTOCKID AND T5_L.FLOCALEID =@LCID + LEFT JOIN T_BD_DEPARTMENT_L T6_L ON T6_L.FDEPTID = T0.FWORKSHOPID AND T6_L.FLOCALEID = @LCID + LEFT JOIN T_ENG_BOMCHILD_L t8_L ON t8_L.FENTRYID = T0E.FBOMENTRYID AND t8_L.FLOCALEID = @LCID + LEFT JOIN ( + SELECT + t0.FMATERIALID + ,t0.FSTOCKORGID + ,sum(t0.FBASEQTY) AS FBASEQTY + FROM + T_STK_INVENTORY t0 + GROUP BY + t0.FMATERIALID + ,t0.FSTOCKORGID + ) t9 on t9.FMATERIALID = T2.FMASTERID AND t9.FSTOCKORGID = t2.FUSEORGID + LEFT JOIN T_ENG_ROUTE_L t10_L on t10_L.FID = t7E.FROUTINGID AND t10_L.FLOCALEID = @LCID + LEFT JOIN T_PRD_PMPPBOMENTRY T11E on T11E.FMOID = t7e.FID AND T11E.FMOENTRYID = t7e.FENTRYID AND T11E.FMOENTRYSEQ = t7E.FSEQ AND T11E.FMATERIALIDSUB = T0E.FMATERIALID AND T11E.FMATERIALID = t0.FMATERIALID + LEFT JOIN T_PRD_PMPPBOMENTRY_A T11E_A ON T11E_A.FENTRYID = T11E.FENTRYID + WHERE + T0.FBILLNO = (CASE WHEN @FBILLNO != '' THEN @FBILLNO ELSE T0.FBILLNO END) + AND T0.FMOBILLNO = (CASE WHEN @FMOBILLNO != '' THEN @FMOBILLNO ELSE T0.FMOBILLNO END) + AND T0.FSALEORDERNO = (CASE WHEN @FSALEORDERNO != '' THEN @FSALEORDERNO ELSE T0.FSALEORDERNO END) + AND T1.FNUMBER = (CASE WHEN @MAINNUMBER != '' THEN @MAINNUMBER ELSE T1.FNUMBER END) + AND T1_L.FNAME = (CASE WHEN @MAINNAME != '' THEN @MAINNAME ELSE T1_L.FNAME END) + AND T2.FNUMBER = (CASE WHEN @FNUMBER != '' THEN @FNUMBER ELSE T2.FNUMBER END) + AND T2_L.FNAME = (CASE WHEN @FNAME != '' THEN @FNAME ELSE T2_L.FNAME END) \ No newline at end of file diff --git a/03.珠海市汇威精密制造有限公司/Kingdee.K3.SCM.Sal.Report.PlugInEx/SQLServer/生产用料清单查询.sql b/03.珠海市汇威精密制造有限公司/Kingdee.K3.SCM.Sal.Report.PlugInEx/SQLServer/生产用料清单查询.sql new file mode 100644 index 0000000..1e71622 --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/Kingdee.K3.SCM.Sal.Report.PlugInEx/SQLServer/生产用料清单查询.sql @@ -0,0 +1,192 @@ + IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].TMP123123123123123') AND type IN ('U')) + DROP TABLE [dbo].TMP123123123123123 + GO + + declare @tableName varchar(80) + ,@seqFid varchar(80) + ,@proMaterialId int + ,@materialId int + ,@FBILLNO varchar(80) + ,@FPPBOMBILLNO varchar(80) + ,@FSALEORDERNO varchar(80) + ,@LCID int + + SET @tableName = 'TMP123123123123123' + SET @seqFid = 'ROW_NUMBER() OVER(ORDER BY t0.FID) AS FIDENTITYID' + SET @proMaterialId = '' + SET @materialId = '' + SET @FBILLNO = '' + SET @FPPBOMBILLNO = '' + SET @FSALEORDERNO = '' + SET @LCID = 2052 + SELECT + --ROW_NUMBER() OVER(ORDER BY t0.FID) AS FIDENTITYID--1.к + t0.FID + ,t0e.FSEQ + ,t0e.FENTRYID + ,t0.FDATE --2. + ,t0e.FPLANSTARTDATE--38.ƻ + ,t0e.FPLANFINISHDATE--39.ƻ깤 + ,t0e.FSALEORDERNO --4.۶ + ,t0.FBILLNO--7.񵥺 + ,t0e.FQTY--12.Ʒ + --,t0e.FSTOCKID--35.ֿ + --,t0e.FSTOCKLOCID--36.λ + ,t0e.FYIELDRATE + ,t0e.FROUTINGID + ,(CASE t0e_a.FSTATUS WHEN 6 THEN 'ѽ᰸'ELSE '' END) AS 'StatusIs6'--45.񵥽᰸ + ,(CASE t0e.FPRODUCTTYPE WHEN 1 THEN 'Ʒ' WHEN 2 THEN 'Ʒ' WHEN 3 THEN 'Ʒ' ELSE '' END) AS 'PRODUCTTYPE'--43. + ,t0e.FMATERIALID AS 'ProMaterialId' + ,t1.FMNEMONICCODE AS 'ProMnemoniccode'--6. + ,t1.FNUMBER AS 'ProNumber'--8.Ʒ + ,t1_l.FNAME AS 'ProName'--9.Ʒ + ,t1_l.FSPECIFICATION AS 'ProSpecification'--10.Ʒͺ + ,t2_l.FUNITID AS 'PrdUnitId' + ,t2_l.FNAME AS 'ProUnitName'--11.Ʒλ + --,(CASE t1.FMATERIALSRC WHEN 'A' THEN 'PLM' WHEN 'B' THEN 'ERP' ELSE '' END) AS 'ProMaterialsrc' --15.Դ + INTO #TmpTable0 + FROM + T_PRD_MO t0 + INNER JOIN T_PRD_MOENTRY t0e on t0e.FID = t0.FID + INNER JOIN T_PRD_MOENTRY_A t0e_a on t0e_a.FENTRYID = t0e.FENTRYID + LEFT JOIN T_BD_MATERIAL t1 ON t1.FMATERIALID = t0e.FMATERIALID + LEFT JOIN T_BD_MATERIAL_L t1_l ON t1_l.FMATERIALID = t0e.FMATERIALID AND t1_l.FLOCALEID = @LCID + LEFT JOIN T_BD_UNIT_L t2_l ON t2_l.FUNITID = t0e.FUNITID AND t2_l.FLOCALEID = @LCID + LEFT JOIN ( + SELECT + t0e.FMOENTRYID + ,t0e.FMOENTRYSEQ + ,t0e.FMATERIALID + ,SUM(t0e_A.FBASESELINSPECTQTY) AS 'FBASESELINSPECTQTY'--ѡ + ,SUM(t0e_A.FBASEINSPECTQTY) AS 'FBASEINSPECTQTY' -- + ,SUM(t0e.FBASEFINISHQTY) AS 'FBASEFINISHQTY'-- + FROM T_PRD_MORPT t0 + INNER JOIN T_PRD_MORPTENTRY t0e on t0.FID = t0e.FID + INNER JOIN T_PRD_MORPTENTRY_A t0e_A on t0e_A.FENTRYID = t0e.FENTRYID + GROUP BY + t0e.FMOENTRYID + ,t0e.FMOENTRYSEQ + ,t0e.FMATERIALID + ) t3 on t3.FMATERIALID = t0e.FMATERIALID AND t3.FMOENTRYID = t0e.FENTRYID AND t3.FMOENTRYSEQ = t0e.FSEQ + WHERE + t0.FBILLNO = (CASE WHEN @FBILLNO != '' THEN @FBILLNO ELSE t0.FBILLNO END) + AND t0e.FSALEORDERNO = (CASE WHEN @FSALEORDERNO != '' THEN @FSALEORDERNO ELSE t0e.FSALEORDERNO END) + AND t0e.FMATERIALID = (CASE WHEN @proMaterialId <> 0 THEN @proMaterialId ELSE t0e.FMATERIALID END) + --AND T1.FNUMBER = (CASE WHEN @MAINNUMBER != '' THEN @MAINNUMBER ELSE T1.FNUMBER END) + --AND T1_L.FNAME = (CASE WHEN @MAINNAME != '' THEN @MAINNAME ELSE T1_L.FNAME END) + + SELECT + t0e.FMOENTRYID + ,t0e.FMOENTRYSEQ + ,t0e.FMATERIALID + ,SUM(t0e_A.FBASESELINSPECTQTY) AS 'FBASESELINSPECTQTY'--ѡ + ,SUM(t0e_A.FBASEINSPECTQTY) AS 'FBASEINSPECTQTY' -- + ,SUM(t0e.FBASEFINISHQTY) AS 'FBASEFINISHQTY'-- + FROM T_PRD_MORPT t0 + INNER JOIN T_PRD_MORPTENTRY t0e on t0.FID = t0e.FID + INNER JOIN T_PRD_MORPTENTRY_A t0e_A on t0e_A.FENTRYID = t0e.FENTRYID + GROUP BY + t0e.FMOENTRYID + ,t0e.FMOENTRYSEQ + ,t0e.FMATERIALID + + SELECT + t1.* + ,t0.FBILLNO AS 'FPPBOMBILLNO'--3.Ͷϵ + ,t0e.FMATERIALID + ,(t0e.FNUMERATOR / t0e.FDENOMINATOR) AS 'FUnitNeedQty' --18.ϵλ + ,t0e.FNEEDQTY --22. + ,t0e.FUNITID + ,t0e.FBOMENTRYID + ,t0e_q.FBASEWIPQTY --23.ǰƷ + ,t0e_q.FPICKEDQTY --27. + ,t0e_q.FNOPICKEDQTY --28.δ + ,t0e.FSTDQTY --׼ --29.׼ + ,t0e.FMUSTQTY --Ӧ --30.Ӧ + ,t0e_l.FMEMO --31.ע + ,t0e_q.FPICKEDQTY * (100 - t1.FYIELDRATE) AS 'FLossQty'--32. + ,t0e_q.FSCRAPQTY --33. + ,t0e_q.FREPICKEDQTY --37. + ,t0.FWORKSHOPID + ,t0e_c.FSTOCKID + ,t0e_c.FSTOCKLOCID + ,(CASE t0.FDOCUMENTSTATUS WHEN 'A' THEN '' WHEN 'B' THEN '' WHEN 'C' THEN '' WHEN 'D' THEN '' WHEN 'Z' THEN 'ݴ' ELSE '' END) AS 'PPBOMStatus'--46.Ͷϵ״̬ + INTO #TmpTable1 + FROM + #TmpTable0 t1 + LEFT JOIN T_PRD_PPBOM t0 on t1.FID = t0.FMOID AND t0.FMOENTRYSEQ = t1.FSEQ AND t0.FMOENTRYSEQ = t1.FSEQ --嵥 + INNER JOIN T_PRD_PPBOMENTRY t0e ON t0.FID = t0e.FID + LEFT JOIN T_PRD_PPBOMENTRY_Q t0e_q ON t0e_q.FENTRYID = t0e.FENTRYID --嵥ֱ + LEFT JOIN T_PRD_PPBOMENTRY_C t0e_c ON t0e_c.FENTRYID = t0e.FENTRYID + LEFT JOIN T_PRD_PPBOMENTRY_L t0e_l on t0e_l.FENTRYID = t0e.FENTRYID AND t0e_l.FLOCALEID = @LCID + WHERE + T0.FBILLNO = (CASE WHEN @FPPBOMBILLNO != '' THEN @FPPBOMBILLNO ELSE T0.FBILLNO END) + AND t0e.FMATERIALID = (CASE WHEN @materialId <> 0 THEN @materialId ELSE t0e.FMATERIALID END) + + SELECT + t0.* + ,t1.FNUMBER AS 'MaterialNumber'--8.ϱ + ,t1_l.FNAME AS 'MaterialName'--9. + ,t1_l.FSPECIFICATION AS 'MaterialSpecification'--10.Ϲͺ + ,t2_l.FNAME AS 'MaterialUnitName'--11.ϵλ + ,(CASE t1.FMATERIALSRC WHEN 'A' THEN 'PLM' WHEN 'B' THEN 'ERP' ELSE '' END) AS 'Materialsrc' --15.Դ + ,t4_l.FNAME AS 'WORKSHOPNAME' --44. + ,t1.FMASTERID + ,t1.FUSEORGID + ,t5_l.FMEMO AS 'BOMMEMO' --42.BOMע + ,t3_l.FNAME AS 'FSTOCKNAME' + into #TmpTable2 + FROM + #TmpTable1 t0 + LEFT JOIN T_BD_MATERIAL t1 ON t1.FMATERIALID = t0.FMATERIALID + LEFT JOIN T_BD_MATERIAL_L t1_l ON t1_l.FMATERIALID = t0.FMATERIALID AND t1_l.FLOCALEID = @LCID + LEFT JOIN T_BD_UNIT_L t2_l ON t2_l.FUNITID = t0.FUNITID AND t2_l.FLOCALEID = @LCID + LEFT JOIN T_BD_STOCK_L t3_l ON t3_l.FSTOCKID = t0.FSTOCKID AND t3_l.FLOCALEID =@LCID + LEFT JOIN T_BD_DEPARTMENT_L t4_l on t4_l.FDEPTID = t0.FWORKSHOPID AND t4_l.FLOCALEID = @LCID + LEFT JOIN T_ENG_BOMCHILD_L t5_l ON t5_l.FENTRYID = t0.FBOMENTRYID AND t5_L.FLOCALEID = @LCID + --WHERE + --t1.FNUMBER = (CASE WHEN @FNUMBER != '' THEN @FNUMBER ELSE t1.FNUMBER END) + --AND t1_L.FNAME = (CASE WHEN @FNAME != '' THEN @FNAME ELSE t1_L.FNAME END) + + SELECT + t0.* + ,t1.FBASEQTY + ,t2_l.FNAME AS 'ROUTENAME' + ,t3e_A.FBASEINVQTY + ,t3e.FBASELACKQTY AS 'FBASELACKQTY'--24.Ƿ + ,t3e_A.FBASEONORDERQTY AS 'FBASEONORDERQTY' --25.; + ,6 AS 'LOWEST6' + INTO #TmpTable3 + FROM + #TmpTable2 t0 + LEFT JOIN ( + SELECT + t0.FMATERIALID + ,t0.FSTOCKORGID + ,sum(t0.FBASEQTY) AS FBASEQTY + FROM + T_STK_INVENTORY t0 + GROUP BY + t0.FMATERIALID + ,t0.FSTOCKORGID + ) t1 on t1.FMATERIALID = t0.FMASTERID AND t1.FSTOCKORGID = t0.FUSEORGID + LEFT JOIN T_ENG_ROUTE_L t2_L on t2_L.FID = t0.FROUTINGID AND t2_L.FLOCALEID = @LCID + LEFT JOIN T_PRD_PMPPBOMENTRY t3e on t3e.FMOID = t0.FID AND t3e.FMOENTRYID = t0.FENTRYID AND t3e.FMOENTRYSEQ = t0.FSEQ AND t3e.FMATERIALIDSUB = t0.FMATERIALID --AND t3e.FMATERIALID = t0.FMATERIALID + LEFT JOIN T_PRD_PMPPBOMENTRY_A t3e_A ON t3e_A.FENTRYID = t3e.FENTRYID + + + exec(N' + SELECT + t0.* + ,' + @seqFid+ ' + INTO ' + @tableName + ' + FROM + #TmpTable3 t0 + ') + + drop table #TmpTable0 + drop table #TmpTable1 + drop table #TmpTable2 + drop table #TmpTable3 + + exec(N'SELECT * FROM '+ @tableName) \ No newline at end of file diff --git a/03.珠海市汇威精密制造有限公司/Kingdee.K3.SCM.Sal.Report.PlugInEx/SQLServer/生产订单.sql b/03.珠海市汇威精密制造有限公司/Kingdee.K3.SCM.Sal.Report.PlugInEx/SQLServer/生产订单.sql new file mode 100644 index 0000000..cda13e1 --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/Kingdee.K3.SCM.Sal.Report.PlugInEx/SQLServer/生产订单.sql @@ -0,0 +1,10 @@ +SELECT + A.FID + ,A.FBILLNO + ,AE.FPLANSTARTDATE --ƻʱ + ,AE.FPLANFINISHDATE --ƻ깤ʱ + ,AE.FPRODUCTTYPE -- + ,AE.FWORKSHOPID -- +FROM + T_PRD_MO A + LEFT JOIN T_PRD_MOENTRY AE ON A.FID = AE.FID \ No newline at end of file diff --git a/03.珠海市汇威精密制造有限公司/Kingdee.K3.SCM.Sal.Report.PlugInEx/SQLServer/获取产品类型.sql b/03.珠海市汇威精密制造有限公司/Kingdee.K3.SCM.Sal.Report.PlugInEx/SQLServer/获取产品类型.sql new file mode 100644 index 0000000..379c122 --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/Kingdee.K3.SCM.Sal.Report.PlugInEx/SQLServer/获取产品类型.sql @@ -0,0 +1,13 @@ +CREATE FUNCTION GetProductTypeText(@docStatu int) +RETURNS varchar(10) --طֵ +as +BEGIN +declare @result varchar(10) +select @result = (CASE @docStatu + WHEN 1 THEN 'Ʒ' + WHEN 2 THEN 'Ʒ' + WHEN 3 THEN 'Ʒ' + ELSE '' + END) +RETURN @result +END \ No newline at end of file diff --git a/03.珠海市汇威精密制造有限公司/Kingdee.K3.SCM.Sal.Report.PlugInEx/SQLServer/获取单据状态.sql b/03.珠海市汇威精密制造有限公司/Kingdee.K3.SCM.Sal.Report.PlugInEx/SQLServer/获取单据状态.sql new file mode 100644 index 0000000..3a17eba --- /dev/null +++ b/03.珠海市汇威精密制造有限公司/Kingdee.K3.SCM.Sal.Report.PlugInEx/SQLServer/获取单据状态.sql @@ -0,0 +1,15 @@ +create FUNCTION ReturnStatuText(@docStatu varchar(10)) +RETURNS varchar(10) --طֵ +as +BEGIN +declare @result varchar(10) +select @result = (CASE @docStatu + WHEN 'A' THEN '' + WHEN 'B' THEN '' + WHEN 'C' THEN '' + WHEN 'D' THEN '' + WHEN 'Z' THEN 'ݴ' + ELSE '' + END) +RETURN @result +END \ No newline at end of file diff --git a/04.天大药业(珠海)有限公司/2.天大中医/提取一般药品养护.sql b/04.天大药业(珠海)有限公司/2.天大中医/提取一般药品养护.sql new file mode 100644 index 0000000..afeb374 --- /dev/null +++ b/04.天大药业(珠海)有限公司/2.天大中医/提取一般药品养护.sql @@ -0,0 +1,32 @@ +declare @FORG int +set @FORG = 1 +SELECT i.fid F_BGP_INVENTORYID, i.FSTOCKID, m.FMaterialId, FLot +,FStockUnitId, FBaseUnitId, FQty,FBaseQty, FStockStatusId +,FStockLocId ,DATEDIFF(day,Maintdate ,getdate())-89 overday +,dateadd(day,90.7,Maintdate) as F_BGP_ShouldMainteDate +,isnull(l.FPRODUCEDATE,i.FPRODUCEDATE)FPRODUCEDATE +,isnull(l.FEXPIRYDATE,i.FEXPIRYDATE)FEXPIRYDATE +,getdate() F_BGP_MAINTEPLANDATE,FOwnerTypeId +,FOwnerId,FKeeperTypeId,FKeeperId,FStockStatusId +,FAuxPropId,FSecQty,FSecUnitId,Maintdate +FROM T_STK_INVENTORY i + ,T_BD_MATERIAL m + ,T_BGP_MaintainType mt + ,(SELECT isnull(F_BGP_MaintDate,FInStockDate) Maintdate + ,FLOTID,FPRODUCEDATE,FEXPIRYDATE + FROM T_BD_LOTMASTER) +l WHERE i.FMaterialId = m.FMasterId + AND F_BGP_MaintainClass=mt.FID + AND F_BGP_DAY = 90 + AND l.FLOTID=i.FLot + AND DATEDIFF(day,Maintdate ,getdate()) > 90 - 90 + AND i.FSTOCKORGID = @FORG + AND FBaseQty > 0 + AND m.FDOCUMENTSTATUS='C' + AND FStockStatusId = 10000 + AND m.FuseORGID=@FORG + AND NOT EXISTS( + SELECT F_BGP_INVENTORYID + FROM T_BGP_MaintePlanB mb + WHERE F_BGP_BaseQty > F_BGP_BaseMaintQty AND F_BGP_INVENTORYID= i.fid ) +ORDER BY F_BGP_DosageForm,FSTOCKID,FMaterialId \ No newline at end of file diff --git a/05.长园/CY.PRD_MORPT/CY.PRD_MORPT.csproj b/05.长园/CY.PRD_MORPT/CY.PRD_MORPT.csproj index bf11ed9..11a7aa4 100644 --- a/05.长园/CY.PRD_MORPT/CY.PRD_MORPT.csproj +++ b/05.长园/CY.PRD_MORPT/CY.PRD_MORPT.csproj @@ -63,7 +63,6 @@ - diff --git a/05.长园/CY.PRD_MORPT/SetWorkTimeAfterAuditOperationServicePlugIn.cs b/05.长园/CY.PRD_MORPT/SetWorkTimeAfterAuditOperationServicePlugIn.cs index 13cb273..1ca184d 100644 --- a/05.长园/CY.PRD_MORPT/SetWorkTimeAfterAuditOperationServicePlugIn.cs +++ b/05.长园/CY.PRD_MORPT/SetWorkTimeAfterAuditOperationServicePlugIn.cs @@ -19,117 +19,6 @@ namespace CY.PRD_MORPT [Description("【服务插件_ex】任务汇报审核时,计算人员实作工时"), HotUpdate] public class SetWorkTimeAfterAuditOperationServicePlugIn : AbstractOperationServicePlugIn { - public override void OnPreparePropertys(PreparePropertysEventArgs e) - { - base.OnPreparePropertys(e); - //本地测试-工时类型 - e.FieldKeys.Add("FWorkTimeType"); - //长园-工时类型 - //e.FieldKeys.Add("F_CYG_Worktype"); - e.FieldKeys.Add("FFinishQty"); - e.FieldKeys.Add("FStdManHour"); - e.FieldKeys.Add("FMaterialId"); - } - - /// - /// 操作事物后事件(事务内触发) - /// - /// - /// - /// 1. 此事件在操作执行代码之后,操作的内部逻辑已经执行完毕 - /// 2. 此事件在操作事务提交之前 - /// 3. 此事件中的数据库处理,受操作的事务保护 - /// 4. 通常此事件,可以用来做同步数据,如同步生成其他单据,而且需要受事务保护 - /// - public override void EndOperationTransaction(EndOperationTransactionArgs e) - { - base.EndOperationTransaction(e); - // 保存8提交9审核1反审核26 - if (this.FormOperation.OperationId == 1) - //if (this.FormOperation.Operation.EqualsIgnoreCase("Audit")) - { - var dataEntitys = e.DataEntitys; - if (dataEntitys.Any()) - { - var updateSQLList = new StringBuilder(); - foreach (var data in dataEntitys) - { - var id = data["Id"].ToString(); - var formId = data["FFormId"].ToString(); - foreach (var item in data["PRD_MORPTENTRY"] as DynamicObjectCollection) - { - var entryId = item["Id"].ToString(); - var entrySeq = item["Seq"].ToString(); - //人员实作工时 - var hrWorkTime = item["FHRWORKTIME"].ToDouble(); - - // 安装 F_CYG_FitTime - var fitTimeTotal = 0D; - // 指导安装 F_CYG_GuideTime - var guideTimeTotal = 0D; - - //工时类型 0.无 1.含安装工时 2.指导安装工时 3.不含安装工时 - var workTimeType = item["FWorkTimeType"].Long2Int(); - - if (workTimeType > 0) - { - //完成数量 - var finishQty = item["FinishQty"].ToDouble(); - //单位标准工时 - var stdManHour = item["StdManHour"].ToDouble(); - - if (stdManHour != 0) - hrWorkTime = finishQty * stdManHour; - - if (workTimeType != 3) - { - var materialId = item["MaterialId"] as DynamicObject; - - if (workTimeType == 1) - { - var fitTime = materialId["F_CYG_FitTime"].ToDouble(); - fitTimeTotal = fitTime * finishQty; - if (stdManHour == 0) - hrWorkTime -= fitTimeTotal; - } - - if (workTimeType == 2) - { - var guideTime = materialId["F_CYG_GuideTime"].ToDouble(); - guideTimeTotal = guideTime * finishQty; - if (stdManHour == 0) - hrWorkTime -= guideTimeTotal; - } - } - } - - updateSQLList.AppendLine($@" -UPDATE T_CB_WORKHOURSENTRY -SET FWorkTimeType = '{workTimeType}' ,FFitTimeTotal = {fitTimeTotal},FguideTimeTotal = {guideTimeTotal},FHrWorkTimePart = {hrWorkTime} -WHERE FSRCBILLID = {id} - AND FSRCENTRYID = {entryId} - AND FSRCSEQ = {entrySeq} - AND FSRCBILLFORMID = '{formId}';"); - } - } - //Logger.Info("审核测试", JsonConvert.SerializeObject(e)); - //Logger.Info("审核测试2", updateSQLList.ToString()); - var sql = updateSQLList.ToString(); - - if (!updateSQLList.IsNullOrEmpty()) - DBUtils.Execute(this.Context, "/*dialect*/" + sql); - - - } - - - // 保存变更后的数据 - - //new BusinessDataWriter(Context).Save(e.DataEntitys); - - } - } - } } diff --git a/05.长园/CYG.Python/CYG.Python.pyproj b/05.长园/CYG.Python/CYG.Python.pyproj index fc6c38d..e66aa91 100644 --- a/05.长园/CYG.Python/CYG.Python.pyproj +++ b/05.长园/CYG.Python/CYG.Python.pyproj @@ -22,13 +22,18 @@ false + + + + + diff --git a/05.长园/CYG.Python/PRD_MORPT/OperationEventPlugInEx.py b/05.长园/CYG.Python/PRD_MORPT/OperationEventPlugInEx.py new file mode 100644 index 0000000..508a148 --- /dev/null +++ b/05.长园/CYG.Python/PRD_MORPT/OperationEventPlugInEx.py @@ -0,0 +1,83 @@ +#clrп +import clr +#Ӷcloudij +clr.AddReference('System') +clr.AddReference('System.Data') +clr.AddReference('Kingdee.BOS') +clr.AddReference('Kingdee.BOS.Core') +clr.AddReference('Kingdee.BOS.App') +clr.AddReference('Kingdee.BOS.Contracts') +clr.AddReference('Kingdee.BOS.DataEntity') +clr.AddReference('Kingdee.BOS.ServiceHelper') +#dairycloudеijʵ󣨷ռ䵼룬ݹ鵼룩 +from Kingdee.BOS.Core import * +from Kingdee.BOS.Util import * +from Kingdee.BOS.Core.Bill import * +from Kingdee.BOS.Core.Bill.PlugIn import * +from Kingdee.BOS.Orm.DataEntity import * +from Kingdee.BOS.Core.DynamicForm.PlugIn import * +from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import * +from Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel import * +from System import * +from System.Data import * +from Kingdee.BOS.App.Data import * +from System.Collections.Generic import List +from Kingdee.BOS.ServiceHelper import * + +def OnPreparePropertys(e): + e.FieldKeys.Add("F_CYG_Worktype") + e.FieldKeys.Add("FFinishQty") + e.FieldKeys.Add("FStdManHour") + e.FieldKeys.Add("FMaterialId") + e.FieldKeys.Add("FHRWORKTIME") + +def EndOperationTransaction(e): + # 8ύ9126ɾ3 + if this.FormOperation.OperationId == 1: + Audit2DoUpdMoRptInfo(e) + +def Audit2DoUpdMoRptInfo(e): + # sqlList = """""" + sqlLList=List[str](); + for data in e.DataEntitys: + billId = data["Id"] + formId = data["FFormId"] + for item in data["PRD_MORPTENTRY"]: + entryId =item["Id"] + entrySeq = item["Seq"] + # ĬȡεԱʵʱ + hrWorkTime = item["HrWorkTime"] + fitTimeTotal = 0 + guideTimeTotal = 0 + workTimeTypeVal = item["F_CYG_Worktype"] + workTimeType = (0 if workTimeTypeVal.strip() == '' else int(workTimeTypeVal)) + # ʱ 0. 1.װʱ 2.ָװʱ 3.װʱ + if (workTimeType) > 0: + # + finishQty = item["FinishQty"] + # ׼λʱ + stdManHour = item["StdManHour"] + # 1.׼λʱ䲻ΪʱԱʵʱ = * ׼λʱ䣩 + if stdManHour != 0: + hrWorkTime = finishQty * stdManHour + if workTimeType != 3: + materialId = item["MaterialId"] + if workTimeType == 1: + fitTime = materialId["F_CYG_FitTime"] + fitTimeTotal = fitTime * finishQty + # 2.װʱ ׼λʱΪ0ʱ Աʵʱ = εݹʱ + if stdManHour == 0: + hrWorkTime = hrWorkTime - fitTimeTotal + if workTimeType == 2: + guideTime = materialId["F_CYG_GuideTime"] + guideTimeTotal = guideTime * finishQty + # 3.ָװʱ ׼λʱΪ0ʱ Աʵʱ = εݹʱ + if stdManHour == 0: + hrWorkTime = hrWorkTime - guideTimeTotal + sql = ("""/*dialect*/UPDATE T_CB_WORKHOURSENTRY SET F_CYG_Worktype = '{0}' ,FFitTimeTotal = {1},FguideTimeTotal = {2},FHrWorkTimePart = {3} + WHERE FSRCBILLID = {4} AND FSRCENTRYID = {5} AND FSRCSEQ = {6} AND FSRCBILLFORMID = '{7}' ;""").format(workTimeType,fitTimeTotal,guideTimeTotal,hrWorkTime,billId,entryId,entrySeq,formId) + # sqlList = sqlList + sql; + sqlLList.Add(sql); + # DBUtils.Execute(this.Context,sqlList) + if(sqlLList.Count > 0): + DBUtils.ExecuteBatch(this.Context,sqlLList,sqlLList.Count); \ No newline at end of file diff --git a/05.长园/CYG.Python/PRD_MORPT/SQLServer/实际工时归集关联查询.sql b/05.长园/CYG.Python/PRD_MORPT/SQLServer/实际工时归集关联查询.sql new file mode 100644 index 0000000..3e4a0dc --- /dev/null +++ b/05.长园/CYG.Python/PRD_MORPT/SQLServer/实际工时归集关联查询.sql @@ -0,0 +1,72 @@ + SELECT + t0.FBILLNO + ,t0e.FSRCBILLNO + ,t0e.FENTRYID + ,t1e.F_CYG_WORKTYPE + ,t1e.FFINISHQTY + ,t1e.FSTDMANHOUR + ,t1e.FHRWORKTIME + ,t2p.FPERUNITSTANDHOUR + ,(CASE t1e.F_CYG_WORKTYPE --ʱ + WHEN '' THEN t1e.FHRWORKTIME --Աʵʱ + ELSE (CASE t1e.FSTDMANHOUR + WHEN 0 THEN t1e.FHRWORKTIME + ELSE t1e.FSTDMANHOUR * t1e.FFINISHQTY + END) + END) 'NEW_FHRWORKTIME' + ,t2.F_CYG_FITTIME + ,CASE t1e.F_CYG_WORKTYPE WHEN '1' THEN t2.F_CYG_FITTIME * t1e.FFINISHQTY ELSE 0 END 'NEW_FITTIME' + ,t2.F_CYG_GUIDETIME + ,CASE t1e.F_CYG_WORKTYPE WHEN '2' THEN t2.F_CYG_GUIDETIME * t1e.FFINISHQTY ELSE 0 END 'NEW_GUIDETIME' + INTO #temp + FROM T_CB_WORKHOURS t0 --ʵʹʱ鼯ͷ + INNER JOIN T_CB_WORKHOURSENTRY t0e on t0.FID = t0e.FID --ʵʹʱ鼯 + INNER JOIN T_PRD_MORPTENTRY t1e on t1e.FENTRYID = t0e.FSRCENTRYID --㱨 + AND t1e.FID = t0e.FSRCBILLID AND t1e.FSEQ = t0e.FSRCSEQ AND t0e.FSRCBILLFORMID = 'PRD_MORPT' + INNER JOIN T_BD_MATERIAL t2 on t2.FMATERIALID = t1e.FMATERIALID + INNER JOIN T_BD_MATERIALPRODUCE t2p on t2p.FMATERIALID = t1e.FMATERIALID + +--ʱ ''. 1.װʱ 2.ָװʱ 3.װʱ +--㱨.ʱ == '' ʵʹʱ鼯.Աʵʱ# = 㱨.Աʵʱ + +--㱨.ʱ == 1 㱨.λ׼ʱ 0 :ʵʹʱ鼯.Աʵʱ# = 㱨.Աʵʱ - 㱨. * .װʱ# +-- 㱨.λ׼ʱ 0 :ʵʹʱ鼯.Աʵʱ# = 㱨. * 㱨.λ׼ʱ + +--㱨.ʱ == 2 㱨.λ׼ʱ 0 :ʵʹʱ鼯.Աʵʱ# = 㱨.Աʵʱ - 㱨. * .ָװʱ +-- 㱨.λ׼ʱ 0 :ʵʹʱ鼯.Աʵʱ# = 㱨. * 㱨.λ׼ʱ + +--㱨.ʱ == 3 㱨.λ׼ʱ 0 :ʵʹʱ鼯.Աʵʱ# = 㱨.Աʵʱ +-- 㱨.λ׼ʱ 0 :ʵʹʱ鼯.Աʵʱ# = 㱨. * 㱨.λ׼ʱ + + +--SELECT +-- t0.FBILLNO +-- ,t0.FSRCBILLNO +-- ,t0.FENTRYID +-- ,t0.F_CYG_WORKTYPE +-- ,t0.FFINISHQTY +-- ,t0.FSTDMANHOUR +-- ,t0.FHRWORKTIME +-- ,t0.FPERUNITSTANDHOUR +-- ,t0.NEW_FHRWORKTIME +-- ,t0.F_CYG_FITTIME +-- ,t0.NEW_FITTIME +-- ,t0.F_CYG_GUIDETIME +-- ,t0.NEW_GUIDETIME +-- INTO #temp1 +--FROM #temp t0 +--WHERE t0.FSTDMANHOUR = 0 + +-- +--UPDATE t0e +--SET t0e.F_CYG_WORKTYPE = t1.F_CYG_WORKTYPE +-- ,t0e.FFitTimeTotal =t1.NEW_FITTIME +-- ,t0e.FguideTimeTotal = t1.NEW_GUIDETIME +-- ,t0e.FHrWorkTimePart = t1.NEW_FHRWORKTIME +--FROM T_CB_WORKHOURSENTRY t0e +-- INNER JOIN #temp t1 on t0e.FENTRYID = t1.FENTRYID + +SELECT * FROM #temp +DROP TABLE #temp +--SELECT * FROM #temp1 +--DROP TABLE #temp1 \ No newline at end of file diff --git a/05.长园/CYG.Python/PRD_MORPT/SQLServer/长园客户与开票单位数据置换.sql b/05.长园/CYG.Python/PRD_MORPT/SQLServer/长园客户与开票单位数据置换.sql new file mode 100644 index 0000000..820c46c --- /dev/null +++ b/05.长园/CYG.Python/PRD_MORPT/SQLServer/长园客户与开票单位数据置换.sql @@ -0,0 +1,22 @@ +SELECT + t0.FBILLNO + ,t0.FID + ,t0.F_CYG_BASE AS 'NewCYG_BASE1' + ,t0.F_CYG_BASE1 AS 'NewCYG_BASE' + INTO #TEMP1 +FROM T_AR_REFUNDBILL t0 + +----SELECT * FROM #TEMP1 +SELECT + t0.FID + ,t0.F_CYG_BASE + ,tt.NewCYG_BASE + ,t0.F_CYG_BASE1 + ,tt.NewCYG_BASE1 +FROM T_AR_REFUNDBILL t0 + INNER JOIN #TEMP1 tt on t0.FID = tt.FID + +--UPDATE t0 SET t0.F_CYG_BASE =tt.NewCYG_BASE,t0.F_CYG_BASE1 =tt.NewCYG_BASE1 +--FROM T_AR_REFUNDBILL t0 +-- INNER JOIN #TEMP1 tt on t0.FID = tt.FID +DROP TABLE #TEMP1 \ No newline at end of file diff --git a/05.长园/CYG.Python/SAL_SaleOrder/OperationEventPlugInEx.py b/05.长园/CYG.Python/SAL_SaleOrder/OperationEventPlugInEx.py index 5c8bcdb..254ae71 100644 --- a/05.长园/CYG.Python/SAL_SaleOrder/OperationEventPlugInEx.py +++ b/05.长园/CYG.Python/SAL_SaleOrder/OperationEventPlugInEx.py @@ -27,6 +27,9 @@ from Kingdee.BOS.ServiceHelper import * def EndOperationTransaction(e): # 8ύ9126ɾ3 if this.FormOperation.OperationId == 8: + Audit2DoUpdDownstreamDocument(e) + +def Save2DoUpdDownstreamDocument(e): for data in e.DataEntitys: documentStatus = data["DocumentStatus"] if documentStatus == "C": diff --git a/05.长园/CYG/CB_PROACNTGROUP/BillEventPlugInEx.cs b/05.长园/CYG/CB_PROACNTGROUP/BillEventPlugInEx.cs new file mode 100644 index 0000000..55fe4c0 --- /dev/null +++ b/05.长园/CYG/CB_PROACNTGROUP/BillEventPlugInEx.cs @@ -0,0 +1,42 @@ +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Util; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; + +namespace CYG.CB_PROACNTGROUP +{ + /// + /// 【表单插件】1.单据上查询辅助资料时设置过滤条件 + /// + [Description("【表单插件】单据上查询基础资料时设置过滤条件"), HotUpdate] + public class BillEventPlugInEx : AbstractDynamicFormPlugIn + { + public override void BeforeF7Select(BeforeF7SelectEventArgs e) + { + base.BeforeF7Select(e); + + // 给某个辅助资料字段的查询附加过滤条件 + + if (e.FieldKey.EqualsIgnoreCase("FPRODUCTID")) + { + var id = this.Model.DataObject["Id"].Long2Int(); + + var details = this.View.BusinessInfo.GetEntity("FEntity"); + var entry = this.View.Model.GetEntityDataObject(details); + var idList = entry.Select(x => x["PRODUCTID_Id"].Long2Int()).Where(w => w != 0); + // 只显示编码0开头的辅助资料 + + if (idList.Any()) + e.ListFilterParameter.Filter = e.ListFilterParameter.Filter.JoinFilterString($" FMATERIALID NOT IN ({string.Join(",", idList)})"); + + e.ListFilterParameter.Filter = e.ListFilterParameter.Filter.JoinFilterString($" FMATERIALID NOT IN (SELECT FPRODUCTID FROM T_CB_PROACNTENTRY WHERE FPRODUCTGROUPID != {id})"); + + return; + } + } + } +} diff --git a/05.长园/CYG/CYG.csproj b/05.长园/CYG/CYG.csproj index 90ecb34..fd1845b 100644 --- a/05.长园/CYG/CYG.csproj +++ b/05.长园/CYG/CYG.csproj @@ -31,6 +31,21 @@ 4 + + ..\..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.dll + + + ..\..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.App.dll + + + ..\..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.Contracts.dll + + + ..\..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.Core.dll + + + ..\..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.DataEntity.dll + @@ -40,7 +55,23 @@ + + + + + + + + {beae0bf6-7ab9-4af5-83ce-d08e3c6880ef} + ExtensionMethods + + + + + + + \ No newline at end of file diff --git a/05.长园/CYG/PRD_MORPT/OperationEventPlugInEx.cs b/05.长园/CYG/PRD_MORPT/OperationEventPlugInEx.cs new file mode 100644 index 0000000..73836e1 --- /dev/null +++ b/05.长园/CYG/PRD_MORPT/OperationEventPlugInEx.cs @@ -0,0 +1,139 @@ +using ExtensionMethods; +using Kingdee.BOS.App.Data; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.Util; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.AccessControl; +using System.Text; + +namespace CYG.PRD_MORPT +{ + /// + /// 【服务插件】1.审核时更新实际工时归集 + /// + public class OperationEventPlugInEx : AbstractOperationServicePlugIn + { + public override void OnPreparePropertys(PreparePropertysEventArgs e) + { + base.OnPreparePropertys(e); + //本地测试-工时类型 + e.FieldKeys.Add("FWorkTimeType"); + //长园-工时类型 + //e.FieldKeys.Add("F_CYG_Worktype"); + e.FieldKeys.Add("FFinishQty"); + e.FieldKeys.Add("FStdManHour"); + e.FieldKeys.Add("FMaterialId"); + } + + /// + /// 操作事物后事件(事务内触发) + /// + /// + /// + /// 1. 此事件在操作执行代码之后,操作的内部逻辑已经执行完毕 + /// 2. 此事件在操作事务提交之前 + /// 3. 此事件中的数据库处理,受操作的事务保护 + /// 4. 通常此事件,可以用来做同步数据,如同步生成其他单据,而且需要受事务保护 + /// + public override void EndOperationTransaction(EndOperationTransactionArgs e) + { + base.EndOperationTransaction(e); + // 保存8提交9审核1反审核26 + if (this.FormOperation.OperationId == 1) + //if (this.FormOperation.Operation.EqualsIgnoreCase("Audit")) + { + Audit2DoUpdMoRptInfo(e); + } + } + + /// + /// 审核时更新实际工时归集 + /// + /// + public void Audit2DoUpdMoRptInfo(EndOperationTransactionArgs e) + { + var dataEntitys = e.DataEntitys; + if (dataEntitys.Any()) + { + var updateSQLList = new StringBuilder(); + foreach (var data in dataEntitys) + { + var id = data["Id"].ToString(); + var formId = data["FFormId"].ToString(); + foreach (var item in data["PRD_MORPTENTRY"] as DynamicObjectCollection) + { + var entryId = item["Id"].ToString(); + var entrySeq = item["Seq"].ToString(); + //人员实作工时 + var hrWorkTime = item["FHRWORKTIME"].ToDouble(); + + // 安装 F_CYG_FitTime + var fitTimeTotal = 0D; + // 指导安装 F_CYG_GuideTime + var guideTimeTotal = 0D; + + //工时类型 0.无 1.含安装工时 2.指导安装工时 3.不含安装工时 + var workTimeType = item["FWorkTimeType"].Long2Int(); + + if (workTimeType > 0) + { + //完成数量 + var finishQty = item["FinishQty"].ToDouble(); + //单位标准工时 + var stdManHour = item["StdManHour"].ToDouble(); + + if (stdManHour != 0) + hrWorkTime = finishQty * stdManHour; + + if (workTimeType != 3) + { + var materialId = item["MaterialId"] as DynamicObject; + + if (workTimeType == 1) + { + var fitTime = materialId["F_CYG_FitTime"].ToDouble(); + fitTimeTotal = fitTime * finishQty; + if (stdManHour == 0) + hrWorkTime -= fitTimeTotal; + } + + if (workTimeType == 2) + { + var guideTime = materialId["F_CYG_GuideTime"].ToDouble(); + guideTimeTotal = guideTime * finishQty; + if (stdManHour == 0) + hrWorkTime -= guideTimeTotal; + } + } + } + + updateSQLList.AppendLine($@" +UPDATE T_CB_WORKHOURSENTRY +SET FWorkTimeType = '{workTimeType}' ,FFitTimeTotal = {fitTimeTotal},FguideTimeTotal = {guideTimeTotal},FHrWorkTimePart = {hrWorkTime} +WHERE FSRCBILLID = {id} + AND FSRCENTRYID = {entryId} + AND FSRCSEQ = {entrySeq} + AND FSRCBILLFORMID = '{formId}';"); + } + } + //Logger.Info("审核测试", JsonConvert.SerializeObject(e)); + //Logger.Info("审核测试2", updateSQLList.ToString()); + var sql = updateSQLList.ToString(); + + if (!updateSQLList.IsNullOrEmpty()) + DBUtils.Execute(this.Context, "/*dialect*/" + sql); + + + } + + + // 保存变更后的数据 + + //new BusinessDataWriter(Context).Save(e.DataEntitys); + } + } +} diff --git a/05.长园/CYG/PRD_MORPT/sql/实际工时归集关联查询.sql b/05.长园/CYG/PRD_MORPT/sql/实际工时归集关联查询.sql new file mode 100644 index 0000000..1623a10 --- /dev/null +++ b/05.长园/CYG/PRD_MORPT/sql/实际工时归集关联查询.sql @@ -0,0 +1,51 @@ + SELECT + t0.FBILLNO + ,t0e.FSRCBILLNO + ,t0e.FENTRYID + ,t1e.F_CYG_WORKTYPE + ,t1e.FFINISHQTY + ,t1e.FSTDMANHOUR + ,t1e.FHRWORKTIME + ,t2p.FPERUNITSTANDHOUR + ,CASE t1e.F_CYG_WORKTYPE WHEN '' THEN t1e.FHRWORKTIME ELSE (CASE t1e.FSTDMANHOUR WHEN 0 THEN t1e.FHRWORKTIME ELSE t1e.FSTDMANHOUR * t1e.FFINISHQTY END) END 'NEW_FHRWORKTIME' + ,t2.F_CYG_FITTIME + ,CASE t1e.F_CYG_WORKTYPE WHEN '1' THEN t2.F_CYG_FITTIME * t1e.FFINISHQTY ELSE 0 END 'NEW_FITTIME' + ,t2.F_CYG_GUIDETIME + ,CASE t1e.F_CYG_WORKTYPE WHEN '2' THEN t2.F_CYG_GUIDETIME * t1e.FFINISHQTY ELSE 0 END 'NEW_GUIDETIME' + INTO #temp + FROM T_CB_WORKHOURS t0 + INNER JOIN T_CB_WORKHOURSENTRY t0e on t0.FID = t0e.FID + INNER JOIN T_PRD_MORPTENTRY t1e on t1e.FENTRYID = t0e.FSRCENTRYID + AND t1e.FID = t0e.FSRCBILLID AND t1e.FSEQ = t0e.FSRCSEQ AND t0e.FSRCBILLFORMID = 'PRD_MORPT' + INNER JOIN T_BD_MATERIAL t2 on t2.FMATERIALID = t1e.FMATERIALID + INNER JOIN T_BD_MATERIALPRODUCE t2p on t2p.FMATERIALID = t1e.FMATERIALID + +--SELECT +-- t0.FBILLNO +-- ,t0.FSRCBILLNO +-- ,t0.FENTRYID +-- ,t0.F_CYG_WORKTYPE +-- ,t0.FFINISHQTY +-- ,t0.FSTDMANHOUR +-- ,t0.FHRWORKTIME +-- ,t0.FPERUNITSTANDHOUR +-- ,t0.NEW_FHRWORKTIME +-- ,t0.F_CYG_FITTIME +-- ,t0.NEW_FITTIME +-- ,t0.F_CYG_GUIDETIME +-- ,t0.NEW_GUIDETIME +-- INTO #temp1 +--FROM #temp t0 +--WHERE t0.FSTDMANHOUR = 0 +UPDATE t0e +SET t0e.F_CYG_WORKTYPE = t1.F_CYG_WORKTYPE + ,t0e.FFitTimeTotal =t1.NEW_FITTIME + ,t0e.FguideTimeTotal = t1.NEW_GUIDETIME + ,t0e.FHrWorkTimePart = t1.NEW_FHRWORKTIME +FROM T_CB_WORKHOURSENTRY t0e + INNER JOIN #temp t1 on t0e.FENTRYID = t1.FENTRYID + +SELECT * FROM #temp +DROP TABLE #temp +--SELECT * FROM #temp1 +--DROP TABLE #temp1 \ No newline at end of file diff --git a/05.长园/CYG/SAL_OutStock/AutoPushLostOutStock2Pay.cs b/05.长园/CYG/SAL_OutStock/AutoPushLostOutStock2Pay.cs new file mode 100644 index 0000000..7502608 --- /dev/null +++ b/05.长园/CYG/SAL_OutStock/AutoPushLostOutStock2Pay.cs @@ -0,0 +1,154 @@ +using Kingdee.BOS.App.Data; +using Kingdee.BOS.App; +using Kingdee.BOS; +using Kingdee.BOS.Contracts; +using Kingdee.BOS.Core.DynamicForm.Operation; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.List; +using Kingdee.BOS.Core.Metadata.ConvertElement.ServiceArgs; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core; +using Kingdee.BOS.Log; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.Orm.Exceptions; +using Kingdee.BOS.Orm; +using Kingdee.BOS.Util; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data.SqlClient; +using System.Linq; +using System.Text; + +namespace CYG.SAL_OutStock +{ + [Description("自动下推"), HotUpdate] + public class AutoPushLostOutStock2Pay : IScheduleService + { + public void Run(Context ctx, Schedule schedule) + { + Logger.Info(schedule.Name, $"销售出库单自动下推应付单start..."); + var succeedNum = 0; + var failNum = 0; + try + { + IConvertService service = ServiceHelper.GetService(); + + //源单据标识 + string sourceFormId = "SAL_OUTSTOCK"; + //目标单据标识 + string targetFormId = "AR_RECEIVABLE"; + //目标单据类型id-标准应收单 + string targetBillTypeId = "180ecd4afd5d44b5be78a6efe4a7e041"; + //转换规则 + string convertRuleId = "AR_OutStockToReceivableMap"; //销售出库单下推应付单 + var ruleMeta = service.GetConvertRule(ctx, convertRuleId); + + var rule = ruleMeta.Rule; + var dbList = GetDBData(ctx); + if (dbList != null && dbList.Any()) + { + var groupbyList = dbList.GroupBy(x => x["FBILLNO"].ToString()); + Logger.Info(schedule.Name, $"找到{groupbyList.Count()}条数据"); + + foreach (var list in groupbyList) + { + List selectedRows = list.Select(x => new ListSelectedRow(x["FID"].ToString(), x["FENTRYID"].ToString(), 0, sourceFormId)).ToList(); + + PushArgs pushArgs = new PushArgs(rule, selectedRows.ToArray());//下推入口参数 + pushArgs.TargetBillTypeId = targetBillTypeId; + + OperateOption option = OperateOption.Create();//选项参数 + + try + { + ConvertOperationResult convertResult = service.Push(ctx, pushArgs, option); + + DynamicObject[] destObjs = convertResult.TargetDataEntities.Select(r => r.DataEntity).ToArray(); + + FormMetadata destFormMetadata = ServiceHelper.GetService().Load(ctx, targetFormId) as FormMetadata; + + IOperationResult saveResult = ServiceHelper.GetService().Save(ctx, destFormMetadata.BusinessInfo, destObjs, OperateOption.Create()); + + string msg = string.Empty; + + if (saveResult.ValidationErrors != null && saveResult.ValidationErrors.Count > 0) + { + var errorInfo = string.Join(";", saveResult.ValidationErrors.Select(x => x.Message)); + + throw new KDBusinessException("", "未知原因导致自动保存失败原因:" + errorInfo); + } + + object[] pkArray = (from p in destObjs select p[0]).ToArray(); + //设置提交参数 + IOperationResult submitResult = ServiceHelper.GetService().Submit(ctx, destFormMetadata.BusinessInfo, pkArray, "Submit", OperateOption.Create()); + + // 判断提交结果,如果失败,则内部会抛出错误,回滚代码 + if (submitResult.IsSuccess == false) + { + throw new KDBusinessException("", "未知原因导致自动提交失败!"); + } + + //设置审核参数 + IOperationResult auditResult = ServiceHelper.GetService().Audit(ctx, destFormMetadata.BusinessInfo, pkArray, OperateOption.Create()); + // 判断提交结果,如果失败,则内部会抛出错误,回滚代码 + if (auditResult.IsSuccess == false) + { + throw new KDBusinessException("", "未知原因导致自动审核失败!"); + } + + succeedNum++; + Logger.Info(schedule.Name, $"销售出库单:{list.Key},下推应付单:{saveResult.OperateResult[0].Number}成功!"); + } + catch (OrmException ex) + { + failNum++; + Logger.Error($"服务器插件:{schedule.Name}错误(Orm)", $"销售出库单:{list.Key}", ex); + } + catch (KDBusinessException ex) + { + failNum++; + Logger.Error($"服务器插件:{schedule.Name}错误(KDB)", $"销售出库单:{list.Key}", ex); + } + catch (SqlException ex) + { + failNum++; + Logger.Error($"服务器插件:{schedule.Name}错误(Sql)", $"销售出库单:{list.Key}", ex); + } + catch (Exception ex) + { + failNum++; + Logger.Error($"服务器插件:{schedule.Name}", $"销售出库单:{list.Key}", ex); + } + finally + { + + } + } + + } + } + catch (Exception ex) + { + Logger.Error($"服务器插件:{schedule.Name}", ex.Message, ex); + } + finally + { + Logger.Info(schedule.Name, $"成功{succeedNum}条,失败{failNum}条"); + Logger.Info(schedule.Name, $"销售出库单自动下推应付单end..."); + } + } + + + + private DynamicObjectCollection GetDBData(Context ctx) + { + var unSql = $@" +SELECT * from V_NOT_RECEIVABLE_OUTSTOCK +"; + var dbList = DBUtils.ExecuteDynamicObject(ctx, $"/*dialect*/{unSql}"); + + return dbList; + } + } +} diff --git a/05.长园/CYG/SAL_OutStock/SQLServer/SQLQuery4.sql b/05.长园/CYG/SAL_OutStock/SQLServer/SQLQuery4.sql new file mode 100644 index 0000000..cd48bfa --- /dev/null +++ b/05.长园/CYG/SAL_OutStock/SQLServer/SQLQuery4.sql @@ -0,0 +1,5 @@ + +UPDATE T_BD_MATERIAL SET F_CYG_CHECKBOX = 0 + +UPDATE A SET F_CYG_CHECKBOX = 1 FROM T_BD_MATERIAL A +INNER JOIN T_CB_PROACNTENTRY B ON A.FMATERIALID = B.FPRODUCTID \ No newline at end of file diff --git a/05.长园/CYG/SAL_OutStock/SQLServer/无关联应收单.sql b/05.长园/CYG/SAL_OutStock/SQLServer/无关联应收单.sql new file mode 100644 index 0000000..52591e8 --- /dev/null +++ b/05.长园/CYG/SAL_OutStock/SQLServer/无关联应收单.sql @@ -0,0 +1,27 @@ +IF EXISTS (SELECT * FROM sysobjects WHERE name='V_NOT_RECEIVABLE_OUTSTOCK') --Ϊͼ + DROP VIEW V_NOT_RECEIVABLE_OUTSTOCK --ͼ +GO +CREATE VIEW V_NOT_RECEIVABLE_OUTSTOCK +AS +SELECT + A.FID + ,A.FBILLNO + ,A.FSTOCKORGID + ,AE.FENTRYID +FROM + T_SAL_OUTSTOCK A + LEFT JOIN T_SAL_OUTSTOCKENTRY AE ON A.FID = AE.FID + LEFT JOIN (SELECT + A.FID + ,A.FBILLNO + ,AE.FENTRYID + ,BE.FORDERENTRYID + ,BE_LK.FSID + FROM + T_SAL_OUTSTOCK A + LEFT JOIN T_SAL_OUTSTOCKENTRY AE ON A.FID = AE.FID + LEFT JOIN T_AR_RECEIVABLEENTRY_LK BE_LK ON BE_LK.FSBILLID = AE.FID AND BE_LK.FSID = AE.FENTRYID + LEFT JOIN T_AR_RECEIVABLEENTRY BE ON BE.FENTRYID = BE_LK.FENTRYID + WHERE + BE_LK.FSTABLENAME = 'T_SAL_OUTSTOCKENTRY' and FARNOTJOINQTY > 0) B ON A.FID = B.FID +WHERE B.FID IS NULL and a.FDOCUMENTSTATUS ='C' \ No newline at end of file diff --git a/05.长园/CYG/SAL_OutStock/SQLServer/无关联应收单2-未关联应收数量.sql b/05.长园/CYG/SAL_OutStock/SQLServer/无关联应收单2-未关联应收数量.sql new file mode 100644 index 0000000..c319ff9 --- /dev/null +++ b/05.长园/CYG/SAL_OutStock/SQLServer/无关联应收单2-未关联应收数量.sql @@ -0,0 +1,18 @@ +IF EXISTS (SELECT * FROM SYSOBJECTS WHERE NAME='V_NOT_RECEIVABLE_OUTSTOCK') --Ϊͼ + DROP VIEW V_NOT_RECEIVABLE_OUTSTOCK --ͼ +GO +CREATE VIEW V_NOT_RECEIVABLE_OUTSTOCK +AS +SELECT + A.FID + ,A.FBILLNO + ,AE.FENTRYID + ,AE_R.FARNOTJOINQTY + ,A.FDOCUMENTSTATUS +FROM + T_SAL_OUTSTOCK A + LEFT JOIN T_SAL_OUTSTOCKENTRY AE ON A.FID = AE.FID + LEFT JOIN T_SAL_OUTSTOCKENTRY_R AE_R ON AE.FENTRYID = AE_R.FENTRYID +WHERE +AE_R.FARNOTJOINQTY > 0 AND +A.FDOCUMENTSTATUS ='C' \ No newline at end of file diff --git a/05.长园/CYG/SAL_OutStock/TestAutoPushPlugIn.cs b/05.长园/CYG/SAL_OutStock/TestAutoPushPlugIn.cs new file mode 100644 index 0000000..766620f --- /dev/null +++ b/05.长园/CYG/SAL_OutStock/TestAutoPushPlugIn.cs @@ -0,0 +1,168 @@ +using Kingdee.BOS.App.Data; +using Kingdee.BOS.Contracts; +using Kingdee.BOS.Core.DynamicForm.Operation; +using Kingdee.BOS.Core.List; +using Kingdee.BOS.Core.Metadata.ConvertElement.ServiceArgs; +using Kingdee.BOS.Core; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.Orm; +using Kingdee.BOS.Util; +using System; +using System.Collections.Generic; +using System.Linq; +using Kingdee.BOS; +using System.ComponentModel; +using Kingdee.BOS.Core.List.PlugIn; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.App; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Log; +using Kingdee.BOS.Orm.Exceptions; +using System.Data.SqlClient; + +namespace CYG.SAL_OutStock +{ + [Description("测试自动下推功能"), HotUpdate] + public class TestAutoPushPlugIn : AbstractListPlugIn + { + + + public override void BarItemClick(BarItemClickEventArgs e) + { + base.BarItemClick(e); + + if (e.BarItemKey.Equals("tbTestAutoP")) + { + Run(this.Context, new Schedule + { + Name =new LocaleValue("tbTestAutoP销售出库单自定下推Test") + }); + } + } + + public void Run(Context ctx, Schedule schedule) + { + Logger.Info(schedule.Name, $"销售出库单自动下推应付单start..."); + var succeedNum = 0; + var failNum = 0; + try + { + IConvertService service = ServiceHelper.GetService(); + + //源单据标识 + string sourceFormId = "SAL_OUTSTOCK"; + //目标单据标识 + string targetFormId = "AR_RECEIVABLE"; + //目标单据类型id-标准应收单 + string targetBillTypeId = "180ecd4afd5d44b5be78a6efe4a7e041"; + //转换规则 + string convertRuleId = "AR_OutStockToReceivableMap"; //销售出库单下推应付单 + var ruleMeta = service.GetConvertRule(ctx, convertRuleId); + + var rule = ruleMeta.Rule; + var dbList = GetDBData(ctx); + if (dbList != null && dbList.Any()) + { + var groupbyList = dbList.GroupBy(x => x["FBILLNO"].ToString()); + Logger.Info(schedule.Name, $"找到{groupbyList.Count()}条数据"); + + foreach (var list in groupbyList) + { + List selectedRows = list.Select(x => new ListSelectedRow(x["FID"].ToString(), x["FENTRYID"].ToString(), 0, sourceFormId)).ToList(); + + PushArgs pushArgs = new PushArgs(rule, selectedRows.ToArray());//下推入口参数 + pushArgs.TargetBillTypeId = targetBillTypeId; + + OperateOption option = OperateOption.Create();//选项参数 + + try + { + //下推 + ConvertOperationResult convertResult = service.Push(ctx, pushArgs, option); + + //下推数据 + DynamicObject[] destObjs = convertResult.TargetDataEntities.Select(r => r.DataEntity).ToArray(); + + FormMetadata destFormMetadata = ServiceHelper.GetService().Load(ctx, targetFormId) as FormMetadata; + + //保存 + IOperationResult saveResult = ServiceHelper.GetService().Save(ctx, destFormMetadata.BusinessInfo, destObjs, OperateOption.Create()); + + string msg = string.Empty; + + if (saveResult.ValidationErrors != null && saveResult.ValidationErrors.Count > 0) + { + var errorInfo = string.Join(";", saveResult.ValidationErrors.Select(x => x.Message)); + + throw new KDBusinessException("", "未知原因导致自动保存失败原因:" + errorInfo); + } + + object[] pkArray = (from p in destObjs select p[0]).ToArray(); + //设置提交参数 + IOperationResult submitResult = ServiceHelper.GetService().Submit(ctx, destFormMetadata.BusinessInfo, pkArray, "Submit", OperateOption.Create()); + + // 判断提交结果,如果失败,则内部会抛出错误,回滚代码 + if (submitResult.IsSuccess == false) + { + throw new KDBusinessException("", "未知原因导致自动提交失败!"); + } + + //设置审核参数 + IOperationResult auditResult = ServiceHelper.GetService().Audit(ctx, destFormMetadata.BusinessInfo, pkArray, OperateOption.Create()); + // 判断提交结果,如果失败,则内部会抛出错误,回滚代码 + if (auditResult.IsSuccess == false) + { + throw new KDBusinessException("", "未知原因导致自动审核失败!"); + } + + succeedNum++; + Logger.Info(schedule.Name, $"销售出库单:{list.Key},下推应付单:{saveResult.OperateResult[0].Number}成功!"); + } + catch (OrmException ex) + { + failNum++; + Logger.Error($"服务器插件:{schedule.Name}错误(Orm)", $"销售出库单:{list.Key}", ex); + } + catch (KDBusinessException ex) + { + failNum++; + Logger.Error($"服务器插件:{schedule.Name}错误(KDB)", $"销售出库单:{list.Key}", ex); + } + catch (SqlException ex) + { + failNum++; + Logger.Error($"服务器插件:{schedule.Name}错误(Sql)", $"销售出库单:{list.Key}", ex); + } + catch (Exception ex) + { + failNum++; + Logger.Error($"服务器插件:{schedule.Name}", $"销售出库单:{list.Key}", ex); + } + } + } + } + catch (Exception ex) + { + Logger.Error($"服务器插件:{schedule.Name}", ex.Message, ex); + } + finally + { + Logger.Info(schedule.Name, $"成功{succeedNum}条,失败{failNum}条"); + Logger.Info(schedule.Name, $"销售出库单自动下推应付单end..."); + } + } + + + + private DynamicObjectCollection GetDBData(Context ctx) + { + var unSql = $@" +select * from V_NOT_RECEIVABLE_OUTSTOCK +"; + var dbList = DBUtils.ExecuteDynamicObject(ctx, $"/*dialect*/{unSql}"); + + return dbList; + } + } +} diff --git a/06.泰诺麦博/TNMB.PUR_RPT_POOrderTrace/POOrderTraceServiceRptEx.cs b/06.泰诺麦博/TNMB.PUR_RPT_POOrderTrace/POOrderTraceServiceRptEx.cs deleted file mode 100644 index da7c0ae..0000000 --- a/06.泰诺麦博/TNMB.PUR_RPT_POOrderTrace/POOrderTraceServiceRptEx.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace TNMB.PUR_RPT_POOrderTrace -{ - public class POOrderTraceServiceRptEx - { - - } -} diff --git a/06.泰诺麦博/TNMB.PUR_RPT_POOrderTrace/TNMB.PUR_RPT_POOrderTrace.csproj b/06.泰诺麦博/TNMB.PUR_RPT_POOrderTrace/TNMB.PUR_RPT_POOrderTrace.csproj deleted file mode 100644 index 8276b66..0000000 --- a/06.泰诺麦博/TNMB.PUR_RPT_POOrderTrace/TNMB.PUR_RPT_POOrderTrace.csproj +++ /dev/null @@ -1,47 +0,0 @@ - - - - - Debug - AnyCPU - {BCC79C5A-0154-4484-981E-13B7A4FFB4D3} - Library - Properties - TNMB.PUR_RPT_POOrderTrace - TNMB.PUR_RPT_POOrderTrace - v4.0 - 512 - true - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/06.泰诺麦博/Trinomab/Trinomab.csproj b/06.泰诺麦博/Trinomab/Trinomab.csproj index 65a86fa..35cbe0f 100644 --- a/06.泰诺麦博/Trinomab/Trinomab.csproj +++ b/06.泰诺麦博/Trinomab/Trinomab.csproj @@ -42,5 +42,8 @@ + + + \ No newline at end of file diff --git a/07.珠海英搏尔/Enpower/PRD_MO/SQLserver/英博尔测试20240220.sql b/07.珠海英搏尔/Enpower/PRD_MO/SQLserver/英博尔测试20240220.sql index d9813e8..ef8fce3 100644 --- a/07.珠海英搏尔/Enpower/PRD_MO/SQLserver/英博尔测试20240220.sql +++ b/07.珠海英搏尔/Enpower/PRD_MO/SQLserver/英博尔测试20240220.sql @@ -133,14 +133,14 @@ inner join #temp2 f on f.Fname=a.FBILLNO -- AND A.FBILLNO =@FBILLNO --嵥 - UPDATE D SET FFORECASTGROUP= c.FFORECASTGROUP + UPDATE D SET FFORECASTGROUP= c.FFORECASTGROUP FROM T_PRD_PPBOM A INNER JOIN T_PRD_PPBOMENTRY D ON A.FID=D.FID - INNER JOIN T_PRD_MO B ON B.FBILLNO=A.FMOBillNO - INNER JOIN T_PRD_MOENTRY C ON C.FID=B.FID - inner join #temp2 f on f.Fname=a.FMOBILLNO - where d.FFORECASTGROUP = '' - --AND A.FMOBILLNO =@FBILLNO + --INNER JOIN T_PRD_MO B ON B.FBILLNO=A.FMOBillNO + INNER JOIN T_PRD_MOENTRY C ON C.FID=D.FMOID AND C.FENTRYID = D.FMOENTRYID + INNER JOIN #temp2 f on f.Fname=a.FMOBILLNO + where d.FFORECASTGROUP = '' + --AND A.FMOBILLNO =@FBILLNO @@ -154,9 +154,8 @@ inner join #temp2 f on f.Fname=a.FBILLNO GROUP BY B.FMATERIALID ) B ON A.FMATERIALID=B.FMATERIALID inner join t_prd_mo c on c.fid=a.fid - inner join #temp2 f on f.Fname=c.FBILLNO WHERE FINVSTOCKQTY = 0 - - --AND c.FBILLNO =@FBILLNO + inner join #temp2 f on f.Fname=c.FBILLNO WHERE FINVSTOCKQTY = 0 +--AND c.FBILLNO =@FBILLNO diff --git a/08.昶东/EastChanger/EastChanger.csproj b/08.昶东/EastChanger/EastChanger.csproj index cbb891e..f63addf 100644 --- a/08.昶东/EastChanger/EastChanger.csproj +++ b/08.昶东/EastChanger/EastChanger.csproj @@ -65,6 +65,7 @@ + @@ -85,6 +86,7 @@ + diff --git a/08.昶东/EastChanger/Entites/Entities2GroupBy.cs b/08.昶东/EastChanger/Entites/Entities2GroupBy.cs new file mode 100644 index 0000000..8e474a4 --- /dev/null +++ b/08.昶东/EastChanger/Entites/Entities2GroupBy.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace EastChanger.Entites +{ + public class Entities2GroupBy + { + //public int Id { get; set; } + public string BillNo { get; set; } + + public bool SyncStatus { get; set; } + } +} diff --git a/08.昶东/EastChanger/ISynchonService.cs b/08.昶东/EastChanger/ISynchonService.cs index 10c2bd5..dea0f38 100644 --- a/08.昶东/EastChanger/ISynchonService.cs +++ b/08.昶东/EastChanger/ISynchonService.cs @@ -15,7 +15,7 @@ namespace EastChanger /// /// /// - /// 1.删除 + /// 1.删除 2.变更 void HandleSyncData(List idList, IOperationResult opResult, int action); } } diff --git a/08.昶东/EastChanger/SQLServer/3.其他入库单.sql b/08.昶东/EastChanger/SQLServer/3.其他入库单.sql new file mode 100644 index 0000000..f16782f --- /dev/null +++ b/08.昶东/EastChanger/SQLServer/3.其他入库单.sql @@ -0,0 +1,45 @@ +IF EXISTS(SELECT * FROM sysobjects WHERE name = 'V_SYNC_STKMiscellaneous')--单引号里面为视图名称 + DROP VIEW V_SYNC_STKMiscellaneous--视图名称 +GO +CREATE VIEW V_SYNC_STKMiscellaneous AS +SELECT + t0.FID + ,t0.FBILLNO + --,t1.FDECLAENTCREDITCODE + --,t1.FDECLAENTCUSCODE + --,t1.FDECLAENTNAME + --,t1.FENTCREDITCODE + --,t1.FENTCUSCODE + --,t1.FENTNAME + ,t1e.FID AS LEDGERID + ,t1e.FENTRYID AS BookNumId + ,t1e.FBOOKNUM + ,t1e.FCUSTOMSCODE + ,t0.FDATE + ,t0.FSTATUS AS SyncStatus + ,t0e.FSEQ + ,'QTRK' AS storageType + ,t0e.FINSTOCKDATE + ,t2.FNUMBER AS materialCd + ,t2_l.FNAME AS materialDesc + ,t0e.FQTY AS storageCnt + ,t3.FNUMBER AS calcUnit + ,t0e.FHSCODE AS hscode + ,t0e.FINVENTORY as inventory + ,t0e.FINVENTORYORDERNO as inventoryOrderNo + ,t4.FNUMBER as warehouseCd + ,t5.FNUMBER as warehousePosiCd + ,'' AS bookSn + ,ROW_NUMBER() OVER(PARTITION BY t0e.FID,t1e.FENTRYID ORDER BY t0e.FSEQ ASC) AS itemNo +FROM T_STK_MISCELLANEOUS t0 + INNER JOIN T_STK_MISCELLANEOUSENTRY t0e on t0.FID = t0e.FID + INNER JOIN T_BD_LEDGERSTOCK t1es on t1es.FLEDGERSTOCKID = t0e.FSTOCKID + INNER JOIN T_BD_LEDGERENTRY t1e on t1e.FENTRYID = t1es.FENTRYID + --INNER JOIN T_BD_LEDGER t1 on t1.FID = t1e.FID + INNER JOIN T_BD_MATERIAL t2 on t2.FMATERIALID = t0e.FMATERIALID + INNER JOIN T_BD_MATERIAL_L t2_l on t2_l.FMATERIALID = t2.FMATERIALID AND t2_l.FLOCALEID = 2052 + INNER JOIN T_BD_UNIT t3 on t3.FUNITID = t0e.FUNITID + INNER JOIN T_BD_STOCK t4 on t4.FSTOCKID = t0e.FSTOCKID + LEFT JOIN T_BAS_FLEXVALUESDETAIL t6 on t6.FID = t0e.FSTOCKID + LEFT JOIN T_BAS_FLEXVALUESENTRY t5 ON t5.FENTRYID = t6.FF100001 OR t5.FENTRYID = t6.FF100002 +WHERE t0.FDOCUMENTSTATUS = 'C' AND t1.FDOCUMENTSTATUS = 'C' \ No newline at end of file diff --git a/08.昶东/EastChanger/STK_Miscellaneous/STKMiscellaneousService.cs b/08.昶东/EastChanger/STK_Miscellaneous/STKMiscellaneousService.cs index 2a481e5..a391293 100644 --- a/08.昶东/EastChanger/STK_Miscellaneous/STKMiscellaneousService.cs +++ b/08.昶东/EastChanger/STK_Miscellaneous/STKMiscellaneousService.cs @@ -1,5 +1,10 @@ -using Kingdee.BOS; +using EastChanger.Entites; +using ExtensionMethods; +using Kingdee.BOS; +using Kingdee.BOS.App.Data; using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Util; +using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Linq; @@ -20,7 +25,122 @@ namespace EastChanger.STK_Miscellaneous public void HandleSyncData(List idList, IOperationResult opResult, int action) { - throw new NotImplementedException(); + var declInfos = GetDeclInfos(); + var headSql = $@" +SELECT + rowSet.resVal AS ID + INTO #TMPMATERIALNUM +FROM ( + SELECT CAST(''+ REPLACE('{string.Join(",", idList)}',',','') + '' AS XML) AS xmlVal +) AS valSet +OUTER APPLY ( + SELECT T.C.value('.','varchar(100)') resVal + FROM valSet.xmlVal.nodes('/v') AS T(C) +) rowSet + +SELECT t1.ID EntityId,t2.FBILLNO AS EntityBillNo,t0.* +FROM (SELECT t0.* FROM V_SYNC_STKMiscellaneous t0 WHERE 1 = 1 {{0}}) t0 + RIGHT JOIN #TMPMATERIALNUM t1 on t0.FID = t1.FID + INNER JOIN T_STK_MISCELLANEOUS t2 on t2.FID = t1.FID +"; + + var whereSql = ""; + if (action == 0) + whereSql = " AND t0.SyncStatus != '-1' AND t0.SyncStatus != 1 "; + else + whereSql = " AND (t0.SyncStatus IN('-1','1')) "; + + var toSql = string.Format(headSql, whereSql); + //var toSql = headSql + whereSql; + var dbList = DBUtils.ExecuteDynamicObject(_context, $"/*dialect*/{toSql}"); + if (dbList != null && dbList.Any()) + { + var gbList = dbList.GroupBy(x => new Entities2GroupBy { BillNo = x["EntityBillNo"].ToString(), SyncStatus = x["FID"].Long2Int() > 0 }); + foreach (var bill in gbList) + { + + if (bill.Key.SyncStatus) + ExecuteOperateResult(opResult, bill.Key.BillNo, "单据不符合同步条件,请检查单据状态", false); + + var billNo = bill.Key.BillNo; + var sort = 0; + Dictionary main = null; + List> itemList = new List>(); + foreach (var entity in bill) + { + if (sort == 0) + { + var bookNum = entity["FBOOKNUM"].ToSafeTurnString(); + var syncStatus = entity["SyncStatus"].Long2Int(); + + //申报类型 + var declaType = ""; + if (action == 1) + declaType = "99"; + else if (action == 2) + declaType = "01"; + else + declaType = "00"; + + main = new Dictionary(declInfos[bookNum]); + main.Add("declaCode", entity["FBILLNO"].ToSafeTurnString()); + main.Add("storageTm", entity["FINSTOCKDATE"].ToSafeTurnString()); + main.Add("storageType", entity["storageType"].ToSafeTurnString()); + main.Add("inputMan", entity["inputMan"].ToSafeTurnString()); + main.Add("busiType", "03"); + main.Add("declaType", declaType); + main.Add("inputDate", entity["FDATE"].ToString()); + main.Add("declaDate", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); + main.Add("itemList", itemList); + sort++; + } + + var item = new Dictionary(); + item.Add("itemNo", entity["itemNo"].ToString()); + item.Add("storageOrderNo", entity["itemNo"].ToString()); + item.Add("materialCd", entity["materialCd"].ToSafeTurnString()); + item.Add("materialDesc", entity["materialDesc"].ToSafeTurnString()); + item.Add("storageCnt", entity["storageCnt"].ToSafeTurnString()); + item.Add("calcUnit", entity["calcUnit"].ToSafeTurnString()); + item.Add("hscode", entity["hscode"].ToSafeTurnString()); + item.Add("inventory", entity["inventory"].ToSafeTurnString()); + item.Add("inventoryOrderNo", entity["inventoryOrderNo"].ToSafeTurnString()); + item.Add("warehouseCd", entity["warehouseCd"].ToSafeTurnString()); + item.Add("warehousePosiCd", entity["warehousePosiCd"].ToSafeTurnString()); + item.Add("bookSn", entity["bookSn"].ToSafeTurnString()); + itemList.Add(item); + + } + + var dataJson = JsonUtil.Serialize(main); + var result = this.DoSubmit(dataJson); + + if (!result.IsNullOrEmpty()) + { + JToken resData = JsonUtil.DeserializeObject(result); + var code = resData["code"].Long2Int(); + if (code == 0) + { + var data = resData["data"]; + var rtnFlag = data["rtnFlag"].Long2Int() == 0; + var rtnMessage = data["rtnMessage"].ToString(); + UpdateStatus(this._context, billNo, rtnFlag ? "1" : (action == 0 ? "-2" : "-1")); + ExecuteOperateResult(opResult, billNo, rtnMessage, rtnFlag); + } + else + { + UpdateStatus(this._context, billNo, action == 0 ? "-2" : "-1"); + ExecuteOperateResult(opResult, billNo, resData["msg"].ToString(), false); + } + } + } + } + } + + public void UpdateStatus(Context context, string id, string status) + { + var headSql = @"UPDATE T_STK_MISCELLANEOUS set FSTATUS=" + status + " where FID = " + id; + DBUtils.ExecuteDynamicObject(context, $"/*dialect*/{headSql}"); } } } diff --git a/08.昶东/EastChanger/STK_StockCountGain/STKStockCountGainService.cs b/08.昶东/EastChanger/STK_StockCountGain/STKStockCountGainService.cs index 4017490..7e861ae 100644 --- a/08.昶东/EastChanger/STK_StockCountGain/STKStockCountGainService.cs +++ b/08.昶东/EastChanger/STK_StockCountGain/STKStockCountGainService.cs @@ -66,12 +66,13 @@ WHERE 1 = 1 if (headList != null && headList.Any()) { - var groupList = entryList.GroupBy(x => x["ID"].ToString()); + var groupList = entryList.GroupBy(x => x["ID"].Long2Int()); foreach (var head in headList) { var itemList = new List>(); - var id = head["ID"].ToSafeTurnString(); + var billNo = head["FBILLNO"].ToSafeTurnString(); + var id = head["ID"].Long2Int(); var bookNum = head["FBOOKNUM"].ToSafeTurnString(); var syncStatus = head["SyncStatus"].Long2Int(); @@ -85,7 +86,7 @@ WHERE 1 = 1 //申报通用表头信息 #region 表头信息 var main = new Dictionary(declInfos[bookNum]); - main.Add("declaCode", id); + main.Add("declaCode", billNo); main.Add("inventoryDt", head["inventoryDt"].ToSafeTurnString()); main.Add("inputMan", head["inputMan"].ToSafeTurnString()); main.Add("declaType", declaType); @@ -133,12 +134,12 @@ WHERE 1 = 1 var rtnFlag = data["rtnFlag"].Long2Int() == 0; var rtnMessage = data["rtnMessage"].ToString(); UpdateStatus(this._context, id, (rtnFlag ? "1" : "-1")); - ExecuteOperateResult(opResult, id, rtnMessage, rtnFlag); + ExecuteOperateResult(opResult, billNo, rtnMessage, rtnFlag); } else { UpdateStatus(this._context, id, "-1"); - ExecuteOperateResult(opResult, id, resData["msg"].ToString(), false); + ExecuteOperateResult(opResult, billNo, resData["msg"].ToString(), false); } } } @@ -151,7 +152,7 @@ WHERE 1 = 1 /// /// /// - public void UpdateStatus(Context context, string id, string status) + public void UpdateStatus(Context context, long id, string status) { var headSql = $@"UPDATE T_STK_STKCOUNTGAIN set FSTATUS='{status}' where FID = " + id; DBUtils.ExecuteDynamicObject(context, $"/*dialect*/{headSql}"); diff --git a/08.昶东/EastChanger/STK_StockCountLoss/STKStockCountLossService.cs b/08.昶东/EastChanger/STK_StockCountLoss/STKStockCountLossService.cs index cc4a640..c2e1d77 100644 --- a/08.昶东/EastChanger/STK_StockCountLoss/STKStockCountLossService.cs +++ b/08.昶东/EastChanger/STK_StockCountLoss/STKStockCountLossService.cs @@ -52,12 +52,13 @@ WHERE 1 = 1 if (headList != null && headList.Any()) { - var groupList = entryList.GroupBy(x => x["ID"].ToString()); + var groupList = entryList.GroupBy(x => x["ID"].Long2Int()); foreach (var head in headList) { var itemList = new List>(); - var id = head["ID"].ToSafeTurnString(); + var id = head["ID"].Long2Int(); + var billNo = head["FBILLNO"].ToSafeTurnString(); var bookNum = head["FBOOKNUM"].ToSafeTurnString(); var syncStatus = head["SyncStatus"].Long2Int(); @@ -119,12 +120,12 @@ WHERE 1 = 1 var rtnFlag = data["rtnFlag"].Long2Int() == 0; var rtnMessage = data["rtnMessage"].ToString(); UpdateStatus(this._context, id, (rtnFlag ? "1" : "-1")); - ExecuteOperateResult(opResult, id, rtnMessage, rtnFlag); + ExecuteOperateResult(opResult, billNo, rtnMessage, rtnFlag); } else { UpdateStatus(this._context, id, "-1"); - ExecuteOperateResult(opResult, id, resData["msg"].ToString(), false); + ExecuteOperateResult(opResult, billNo, resData["msg"].ToString(), false); } } } @@ -137,7 +138,7 @@ WHERE 1 = 1 /// /// /// - public void UpdateStatus(Context context, string id, string status) + public void UpdateStatus(Context context, long id, string status) { var headSql = $@"UPDATE T_STK_STKCOUNTGAIN set FSTATUS='{status}' where FID = " + id; DBUtils.ExecuteDynamicObject(context, $"/*dialect*/{headSql}"); diff --git a/GateDge2023.sln b/GateDge2023.sln index b3ed83a..6df22c2 100644 --- a/GateDge2023.sln +++ b/GateDge2023.sln @@ -32,16 +32,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EastChanger", "08.昶东\Ea EndProject Project("{888888A0-9F3D-457C-B088-3A5042F75D52}") = "EastChanger.Python", "08.昶东\EastChanger.Python\EastChanger.Python.pyproj", "{FD2C3C66-8C36-4D3B-B80F-26AAFF839CCB}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CY.AR_RecMatchFilter", "05.长园\CY.AR_RecMatchFilter\CY.AR_RecMatchFilter.csproj", "{7822C382-D01D-41A5-A94A-4A953DD178A7}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CY.CB_PROACNTGROUP", "05.长园\CY.CB_PROACNTGROUP\CY.CB_PROACNTGROUP.csproj", "{5A26AFF4-AE8C-43A3-8C60-BBA153DAE608}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CY.PRD_MORPT", "05.长园\CY.PRD_MORPT\CY.PRD_MORPT.csproj", "{472326F6-01F0-41CA-B124-06D987BA6668}" -EndProject -Project("{888888A0-9F3D-457C-B088-3A5042F75D52}") = "CY.PRD_MORPT.Python", "05.长园\CY.PRD_MORPT.Python\CY.PRD_MORPT.Python.pyproj", "{72A852A8-55C5-4C72-95ED-13B3A6E670EF}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CY.SAL_OUTSTOCK", "05.长园\CY.SAL_OUTSTOCK\CY.SAL_OUTSTOCK.csproj", "{6A52A594-F6A9-4754-BF53-22A126B54081}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VerifyTest", "00.未分类\VerifyTest\VerifyTest.csproj", "{89C1A54B-6FB2-4DBE-A36E-F21650623538}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProductionMaterialRequisition", "00.未分类\ProductionMaterialRequisition\ProductionMaterialRequisition.csproj", "{956A86C4-3938-4373-980B-D96B880ED333}" @@ -54,32 +44,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HandleUtils", "01.扩展\Ha EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "K3CExttensionMethods", "01.扩展\K3CExttensionMethods\K3CExttensionMethods.csproj", "{6D24872E-8FAA-4CE6-9542-1EB0DB405A7A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAL_OUTSTOCK", "02.珠海市供水有限公司\SAL_OUTSTOCK\SAL_OUTSTOCK.csproj", "{C07EB866-7BC7-43C4-B1C1-271E985C55CC}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnPayableInStock", "02.珠海市供水有限公司\UnPayableInStock\UnPayableInStock.csproj", "{C7AACA24-410B-4497-8400-EAF0A81C2133}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UseGetFmaterialData", "02.珠海市供水有限公司\UseGetFmaterialData\UseGetFmaterialData.csproj", "{7014B4E2-94AC-430F-BD20-72BA2BA6EBA3}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonthlyProductionSchedule", "04.天大药业(珠海)有限公司\MonthlyProductionSchedule\MonthlyProductionSchedule.csproj", "{548EE4F5-AFFE-425F-B1A7-4552902F12A6}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HW.PRD_MO", "03.珠海市汇威精密制造有限公司\HW.PRD_MO\HW.PRD_MO.csproj", "{3134279E-5C1B-421C-9E2D-5013D599FA53}" -EndProject -Project("{888888A0-9F3D-457C-B088-3A5042F75D52}") = "HW.PRD_MO.Python", "03.珠海市汇威精密制造有限公司\HW.PRD_MO.Python\HW.PRD_MO.Python.pyproj", "{63FA856A-E38D-4464-A164-11EED1DFE0F8}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HW.ProductionMateralsPlugIn", "03.珠海市汇威精密制造有限公司\HW.ProductionMateralsPlugIn\HW.ProductionMateralsPlugIn.csproj", "{89236B39-F2B6-4757-AB69-DF89FDBCE3A5}" -EndProject -Project("{888888A0-9F3D-457C-B088-3A5042F75D52}") = "HW.PythonPlugIn", "03.珠海市汇威精密制造有限公司\HW.PythonPlugIn\HW.PythonPlugIn.pyproj", "{615361A4-2F0E-4521-A8C5-46BDB8AA6F28}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HW.App.Sal.Report.PlugInEx", "03.珠海市汇威精密制造有限公司\Kingdee.K3.SCM.Sal.Report.PlugInEx\HW.App.Sal.Report.PlugInEx.csproj", "{6AA65F8D-BA02-4CA7-85FB-551A1D7C1143}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HW.ProductionMaterialsReport", "03.珠海市汇威精密制造有限公司\ProductionMaterialsReport\HW.ProductionMaterialsReport.csproj", "{17EF8474-392A-4595-A4D4-D224F16AF8C4}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTestProject2", "00.未分类\UnitTestProject2\UnitTestProject2.csproj", "{3F9DAEFD-D6AF-4FA8-B6B2-485832AB9B26}" EndProject -Project("{888888A0-9F3D-457C-B088-3A5042F75D52}") = "HW.PRD_LackAnalyeBill.Python", "03.珠海市汇威精密制造有限公司\HW.PRD_LackAnalyeBill.Python\HW.PRD_LackAnalyeBill.Python.pyproj", "{0BC2F871-B50D-41C3-9267-ABDE125D9B17}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HW.PRD_LACKANAYLEBILL", "03.珠海市汇威精密制造有限公司\HW.PRD_LACKANAYLEBILL\HW.PRD_LACKANAYLEBILL.csproj", "{B6FD6277-A4DA-4FAC-BDA9-841D51E3D57F}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CYG", "05.长园\CYG\CYG.csproj", "{2F638D52-C946-4F1B-89A1-ADB47D5FDBD9}" EndProject Project("{888888A0-9F3D-457C-B088-3A5042F75D52}") = "CYG.Python", "05.长园\CYG.Python\CYG.Python.pyproj", "{62BC7EFA-7E95-4593-A146-8A6AC44278FB}" @@ -96,6 +64,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Enpower", "07.珠海英搏 EndProject Project("{888888A0-9F3D-457C-B088-3A5042F75D52}") = "Enpower.Python", "07.珠海英搏尔\Enpower.Python\Enpower.Python.pyproj", "{E16A75BC-5FB5-47FC-962D-4AD20E686D59}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HW", "03.珠海市汇威精密制造有限公司\HW\HW.csproj", "{EFAEA205-7808-498D-9D82-91ACF2F663DB}" +EndProject +Project("{888888A0-9F3D-457C-B088-3A5042F75D52}") = "HW.Python", "03.珠海市汇威精密制造有限公司\HW.Python\HW.Python.pyproj", "{5C329922-5F37-4FA3-A9D5-9C5784F98360}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -108,24 +80,6 @@ Global {735CF076-6103-45CE-8B2F-58A9296FE424}.Release|Any CPU.Build.0 = Release|Any CPU {FD2C3C66-8C36-4D3B-B80F-26AAFF839CCB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {FD2C3C66-8C36-4D3B-B80F-26AAFF839CCB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7822C382-D01D-41A5-A94A-4A953DD178A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7822C382-D01D-41A5-A94A-4A953DD178A7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7822C382-D01D-41A5-A94A-4A953DD178A7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7822C382-D01D-41A5-A94A-4A953DD178A7}.Release|Any CPU.Build.0 = Release|Any CPU - {5A26AFF4-AE8C-43A3-8C60-BBA153DAE608}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5A26AFF4-AE8C-43A3-8C60-BBA153DAE608}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5A26AFF4-AE8C-43A3-8C60-BBA153DAE608}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5A26AFF4-AE8C-43A3-8C60-BBA153DAE608}.Release|Any CPU.Build.0 = Release|Any CPU - {472326F6-01F0-41CA-B124-06D987BA6668}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {472326F6-01F0-41CA-B124-06D987BA6668}.Debug|Any CPU.Build.0 = Debug|Any CPU - {472326F6-01F0-41CA-B124-06D987BA6668}.Release|Any CPU.ActiveCfg = Release|Any CPU - {472326F6-01F0-41CA-B124-06D987BA6668}.Release|Any CPU.Build.0 = Release|Any CPU - {72A852A8-55C5-4C72-95ED-13B3A6E670EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {72A852A8-55C5-4C72-95ED-13B3A6E670EF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6A52A594-F6A9-4754-BF53-22A126B54081}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6A52A594-F6A9-4754-BF53-22A126B54081}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6A52A594-F6A9-4754-BF53-22A126B54081}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6A52A594-F6A9-4754-BF53-22A126B54081}.Release|Any CPU.Build.0 = Release|Any CPU {89C1A54B-6FB2-4DBE-A36E-F21650623538}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {89C1A54B-6FB2-4DBE-A36E-F21650623538}.Debug|Any CPU.Build.0 = Debug|Any CPU {89C1A54B-6FB2-4DBE-A36E-F21650623538}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -150,52 +104,14 @@ Global {6D24872E-8FAA-4CE6-9542-1EB0DB405A7A}.Debug|Any CPU.Build.0 = Debug|Any CPU {6D24872E-8FAA-4CE6-9542-1EB0DB405A7A}.Release|Any CPU.ActiveCfg = Release|Any CPU {6D24872E-8FAA-4CE6-9542-1EB0DB405A7A}.Release|Any CPU.Build.0 = Release|Any CPU - {C07EB866-7BC7-43C4-B1C1-271E985C55CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C07EB866-7BC7-43C4-B1C1-271E985C55CC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C07EB866-7BC7-43C4-B1C1-271E985C55CC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C07EB866-7BC7-43C4-B1C1-271E985C55CC}.Release|Any CPU.Build.0 = Release|Any CPU - {C7AACA24-410B-4497-8400-EAF0A81C2133}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C7AACA24-410B-4497-8400-EAF0A81C2133}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C7AACA24-410B-4497-8400-EAF0A81C2133}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C7AACA24-410B-4497-8400-EAF0A81C2133}.Release|Any CPU.Build.0 = Release|Any CPU - {7014B4E2-94AC-430F-BD20-72BA2BA6EBA3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7014B4E2-94AC-430F-BD20-72BA2BA6EBA3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7014B4E2-94AC-430F-BD20-72BA2BA6EBA3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7014B4E2-94AC-430F-BD20-72BA2BA6EBA3}.Release|Any CPU.Build.0 = Release|Any CPU {548EE4F5-AFFE-425F-B1A7-4552902F12A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {548EE4F5-AFFE-425F-B1A7-4552902F12A6}.Debug|Any CPU.Build.0 = Debug|Any CPU {548EE4F5-AFFE-425F-B1A7-4552902F12A6}.Release|Any CPU.ActiveCfg = Release|Any CPU {548EE4F5-AFFE-425F-B1A7-4552902F12A6}.Release|Any CPU.Build.0 = Release|Any CPU - {3134279E-5C1B-421C-9E2D-5013D599FA53}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3134279E-5C1B-421C-9E2D-5013D599FA53}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3134279E-5C1B-421C-9E2D-5013D599FA53}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3134279E-5C1B-421C-9E2D-5013D599FA53}.Release|Any CPU.Build.0 = Release|Any CPU - {63FA856A-E38D-4464-A164-11EED1DFE0F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {63FA856A-E38D-4464-A164-11EED1DFE0F8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {89236B39-F2B6-4757-AB69-DF89FDBCE3A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {89236B39-F2B6-4757-AB69-DF89FDBCE3A5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {89236B39-F2B6-4757-AB69-DF89FDBCE3A5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {89236B39-F2B6-4757-AB69-DF89FDBCE3A5}.Release|Any CPU.Build.0 = Release|Any CPU - {615361A4-2F0E-4521-A8C5-46BDB8AA6F28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {615361A4-2F0E-4521-A8C5-46BDB8AA6F28}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6AA65F8D-BA02-4CA7-85FB-551A1D7C1143}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6AA65F8D-BA02-4CA7-85FB-551A1D7C1143}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6AA65F8D-BA02-4CA7-85FB-551A1D7C1143}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6AA65F8D-BA02-4CA7-85FB-551A1D7C1143}.Release|Any CPU.Build.0 = Release|Any CPU - {17EF8474-392A-4595-A4D4-D224F16AF8C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {17EF8474-392A-4595-A4D4-D224F16AF8C4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {17EF8474-392A-4595-A4D4-D224F16AF8C4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {17EF8474-392A-4595-A4D4-D224F16AF8C4}.Release|Any CPU.Build.0 = Release|Any CPU {3F9DAEFD-D6AF-4FA8-B6B2-485832AB9B26}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3F9DAEFD-D6AF-4FA8-B6B2-485832AB9B26}.Debug|Any CPU.Build.0 = Debug|Any CPU {3F9DAEFD-D6AF-4FA8-B6B2-485832AB9B26}.Release|Any CPU.ActiveCfg = Release|Any CPU {3F9DAEFD-D6AF-4FA8-B6B2-485832AB9B26}.Release|Any CPU.Build.0 = Release|Any CPU - {0BC2F871-B50D-41C3-9267-ABDE125D9B17}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0BC2F871-B50D-41C3-9267-ABDE125D9B17}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B6FD6277-A4DA-4FAC-BDA9-841D51E3D57F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B6FD6277-A4DA-4FAC-BDA9-841D51E3D57F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B6FD6277-A4DA-4FAC-BDA9-841D51E3D57F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B6FD6277-A4DA-4FAC-BDA9-841D51E3D57F}.Release|Any CPU.Build.0 = Release|Any CPU {2F638D52-C946-4F1B-89A1-ADB47D5FDBD9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2F638D52-C946-4F1B-89A1-ADB47D5FDBD9}.Debug|Any CPU.Build.0 = Debug|Any CPU {2F638D52-C946-4F1B-89A1-ADB47D5FDBD9}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -220,6 +136,12 @@ Global {AFEF4E4D-92E3-4F04-9F19-ED01C0B2F24A}.Release|Any CPU.Build.0 = Release|Any CPU {E16A75BC-5FB5-47FC-962D-4AD20E686D59}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E16A75BC-5FB5-47FC-962D-4AD20E686D59}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EFAEA205-7808-498D-9D82-91ACF2F663DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EFAEA205-7808-498D-9D82-91ACF2F663DB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EFAEA205-7808-498D-9D82-91ACF2F663DB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EFAEA205-7808-498D-9D82-91ACF2F663DB}.Release|Any CPU.Build.0 = Release|Any CPU + {5C329922-5F37-4FA3-A9D5-9C5784F98360}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5C329922-5F37-4FA3-A9D5-9C5784F98360}.Release|Any CPU.ActiveCfg = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -229,30 +151,14 @@ Global {88CCFE9E-3837-4EA9-80EB-A064110523F8} = {42311C80-7B4C-4353-BCA9-4ABD024290C8} {735CF076-6103-45CE-8B2F-58A9296FE424} = {2949452D-321C-4EB5-975D-62B8C8DB94C8} {FD2C3C66-8C36-4D3B-B80F-26AAFF839CCB} = {2949452D-321C-4EB5-975D-62B8C8DB94C8} - {7822C382-D01D-41A5-A94A-4A953DD178A7} = {270F576A-EFFF-4728-8E5C-ABDF5C3F3C8B} - {5A26AFF4-AE8C-43A3-8C60-BBA153DAE608} = {270F576A-EFFF-4728-8E5C-ABDF5C3F3C8B} - {472326F6-01F0-41CA-B124-06D987BA6668} = {270F576A-EFFF-4728-8E5C-ABDF5C3F3C8B} - {72A852A8-55C5-4C72-95ED-13B3A6E670EF} = {270F576A-EFFF-4728-8E5C-ABDF5C3F3C8B} - {6A52A594-F6A9-4754-BF53-22A126B54081} = {270F576A-EFFF-4728-8E5C-ABDF5C3F3C8B} {89C1A54B-6FB2-4DBE-A36E-F21650623538} = {2217EA0E-E53F-4ECC-A49D-F38BC743F47A} {956A86C4-3938-4373-980B-D96B880ED333} = {2217EA0E-E53F-4ECC-A49D-F38BC743F47A} {F76F54B5-3DF1-486C-A632-2CF188A0F9AD} = {2217EA0E-E53F-4ECC-A49D-F38BC743F47A} {BEAE0BF6-7AB9-4AF5-83CE-D08E3C6880EF} = {4ACB1DA8-8A4D-451A-A5FB-3CBD7A261263} {D6A5E5A0-7529-4FFA-9F9D-B2C610919BF6} = {4ACB1DA8-8A4D-451A-A5FB-3CBD7A261263} {6D24872E-8FAA-4CE6-9542-1EB0DB405A7A} = {4ACB1DA8-8A4D-451A-A5FB-3CBD7A261263} - {C07EB866-7BC7-43C4-B1C1-271E985C55CC} = {F03B5F75-6DCD-4FF8-989F-403C5EA0AA5B} - {C7AACA24-410B-4497-8400-EAF0A81C2133} = {F03B5F75-6DCD-4FF8-989F-403C5EA0AA5B} - {7014B4E2-94AC-430F-BD20-72BA2BA6EBA3} = {F03B5F75-6DCD-4FF8-989F-403C5EA0AA5B} {548EE4F5-AFFE-425F-B1A7-4552902F12A6} = {A362AFBC-FC73-46A6-9185-15C17E694538} - {3134279E-5C1B-421C-9E2D-5013D599FA53} = {42311C80-7B4C-4353-BCA9-4ABD024290C8} - {63FA856A-E38D-4464-A164-11EED1DFE0F8} = {42311C80-7B4C-4353-BCA9-4ABD024290C8} - {89236B39-F2B6-4757-AB69-DF89FDBCE3A5} = {42311C80-7B4C-4353-BCA9-4ABD024290C8} - {615361A4-2F0E-4521-A8C5-46BDB8AA6F28} = {42311C80-7B4C-4353-BCA9-4ABD024290C8} - {6AA65F8D-BA02-4CA7-85FB-551A1D7C1143} = {42311C80-7B4C-4353-BCA9-4ABD024290C8} - {17EF8474-392A-4595-A4D4-D224F16AF8C4} = {42311C80-7B4C-4353-BCA9-4ABD024290C8} {3F9DAEFD-D6AF-4FA8-B6B2-485832AB9B26} = {2217EA0E-E53F-4ECC-A49D-F38BC743F47A} - {0BC2F871-B50D-41C3-9267-ABDE125D9B17} = {42311C80-7B4C-4353-BCA9-4ABD024290C8} - {B6FD6277-A4DA-4FAC-BDA9-841D51E3D57F} = {42311C80-7B4C-4353-BCA9-4ABD024290C8} {2F638D52-C946-4F1B-89A1-ADB47D5FDBD9} = {270F576A-EFFF-4728-8E5C-ABDF5C3F3C8B} {62BC7EFA-7E95-4593-A146-8A6AC44278FB} = {270F576A-EFFF-4728-8E5C-ABDF5C3F3C8B} {45C22F98-7AAC-465E-B8BB-81A1A320D00A} = {0C4E3DC3-F1FA-4BD7-8D81-BF5EFD452A51} @@ -261,6 +167,8 @@ Global {0EFB3769-37F2-4D7A-9EFF-4C1CB749475C} = {F03B5F75-6DCD-4FF8-989F-403C5EA0AA5B} {AFEF4E4D-92E3-4F04-9F19-ED01C0B2F24A} = {CAE5A042-7B8F-49E7-8510-4B93DA85D6D8} {E16A75BC-5FB5-47FC-962D-4AD20E686D59} = {CAE5A042-7B8F-49E7-8510-4B93DA85D6D8} + {EFAEA205-7808-498D-9D82-91ACF2F663DB} = {42311C80-7B4C-4353-BCA9-4ABD024290C8} + {5C329922-5F37-4FA3-A9D5-9C5784F98360} = {42311C80-7B4C-4353-BCA9-4ABD024290C8} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {16F7DBDD-F487-41D6-A856-9E9B7B3F61C5}