aa
This commit is contained in:
@@ -0,0 +1,265 @@
|
||||
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.Util import *
|
||||
from Kingdee.BOS.Core import *
|
||||
from Kingdee.BOS.Core.DependencyRules 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.Core.CommonFilter import *
|
||||
from System import *
|
||||
from System.ComponentModel import*
|
||||
from System.Collections.Generic import*
|
||||
from System.Text import*
|
||||
from Kingdee.BOS.ServiceHelper import *
|
||||
from Kingdee.BOS.KDThread import *
|
||||
# 产品成本汇总快捷查询
|
||||
# POSH_PRODUCTCOSTQUICKQUERY
|
||||
# showParameter = None
|
||||
_whereSql = ""
|
||||
def BarItemClick(e):
|
||||
# 新增过滤窗口
|
||||
if e.BarItemKey == "tbShowFilterForm":
|
||||
# global showParameter
|
||||
# if showParameter == None:
|
||||
showParameter = FilterShowParameter();
|
||||
showParameter.FormId = "POSH_PRODUCTCOSTQUICKQUERY_FILTER";
|
||||
showParameter.ParentPageId = this.View.PageId;
|
||||
|
||||
this.View.ShowForm(showParameter,lambda x:DoSetData(x));
|
||||
|
||||
def DoSetData(resultData):
|
||||
dateVal = ""
|
||||
whereSql = ""
|
||||
if resultData.ReturnData is None:
|
||||
return
|
||||
else:
|
||||
|
||||
filterString = resultData.ReturnData.FilterString;
|
||||
if filterString != None and filterString != "":
|
||||
whereSql += " AND " + filterString.replace("FBILLNO","t0.FPRODUCTNO");
|
||||
|
||||
customFilter = resultData.ReturnData.CustomFilter;
|
||||
if customFilter != None:
|
||||
FYear = customFilter["FYear"]
|
||||
FPeriod = customFilter["FPeriod"]
|
||||
yearVal = 0 if FYear == None or FYear == "" else int(FYear)
|
||||
periodVal = 0 if FPeriod == None or FPeriod == "" else int(FPeriod)
|
||||
if yearVal > 0:
|
||||
if periodVal > 0:
|
||||
dateVal = str(yearVal * 100 + periodVal)
|
||||
whereSql += " AND (t2.FYEAR * 100 + t2.FPERIOD) = {0} ".format(dateVal)
|
||||
else:
|
||||
whereSql += " AND t2.FYEAR = {0} ".format(yearVal)
|
||||
|
||||
FSelMoBillNo = customFilter["FSelMoBillNo"]
|
||||
moBillNo = "" if FSelMoBillNo == None else FSelMoBillNo
|
||||
if moBillNo != "":
|
||||
whereSql += " AND t0.FPRODUCTNO = '{0}' ".format(moBillNo)
|
||||
|
||||
# raise Exception(dataWhere)
|
||||
|
||||
if whereSql == "":
|
||||
raise Exception("查询条件不能为空!")
|
||||
|
||||
moSqlL = """/*dialect*/
|
||||
DECLARE @period int
|
||||
DECLARE @dbName varchar(100)
|
||||
DECLARE @ACCTGORGID int
|
||||
DECLARE @billNo varchar(100)
|
||||
SET @ACCTGORGID = 1
|
||||
|
||||
;WITH #列表数据 AS (
|
||||
SELECT t0.FPRODUCTNO
|
||||
,t0.FBILLID
|
||||
,t0.FBILLENTRYID
|
||||
,t0.FPRODUCTID
|
||||
,t0.FFORMID
|
||||
,t1.FPRODUCTDIMEID
|
||||
,t3.FQUALIFIEDINQTY AS '本期完工数量'
|
||||
,t3.FCURRINPUTQTY AS '本期投入数量'
|
||||
,t3.FSUMCURRINPUTQTY AS '累计投入数量'
|
||||
,t3.FSUMQUALIFIEDINQTY AS '累计完工数量'
|
||||
,RANK() OVER (PARTITION BY t0.FBILLID,t0.FBILLENTRYID ORDER BY (t2.FYEAR * 100 + t2.FPERIOD) DESC) 'RN'
|
||||
,(t2.FYEAR * 100 + t2.FPERIOD) AS 'FPERIOD'
|
||||
FROM T_CB_PROORDERDIME t0
|
||||
INNER JOIN V_CB_PROORDERINFO t1 on t1.FPRODUCTDIMEID = t0.FPRODUCTDIMEID
|
||||
INNER JOIN V_HS_OUTACCTG t2 on t1.FACCTGID = t2.FID
|
||||
LEFT JOIN V_CB_COSTCALEXPENSE t3 on t3.FID = t1.FID
|
||||
WHERE 1 = 1
|
||||
AND t2.FACCTGORGID = @ACCTGORGID
|
||||
AND t2.FCOMPUTEID != ''
|
||||
AND t1.FENDINITKEY = 1
|
||||
AND t0.FFORMID = 'PRD_MO'
|
||||
{0}
|
||||
)
|
||||
|
||||
,#初始数据 AS (
|
||||
SELECT t0.FPRODUCTNO
|
||||
,t0.FBILLID
|
||||
,t0.FBILLENTRYID
|
||||
,t0.FPRODUCTID
|
||||
,t0.FFORMID
|
||||
,t0.本期完工数量
|
||||
,t0.本期投入数量
|
||||
,t1.FPRODUCTDIMEID
|
||||
,t3.FEXPTYPE
|
||||
,t3.FCURRINPUTQTY
|
||||
,t3.FQUALIFIEDINQTY
|
||||
,t3d.FCURRINPUTAMOUNT
|
||||
,t3d.FCOSTITEMID
|
||||
,t3d.FEXPENSESITEMID
|
||||
,t3d.FQUALIFIEDINAMOUNT
|
||||
FROM #列表数据 t0
|
||||
INNER JOIN V_CB_PROORDERINFO t1 on t1.FPRODUCTDIMEID = t0.FPRODUCTDIMEID
|
||||
INNER JOIN V_HS_OUTACCTG t2 on t1.FACCTGID = t2.FID
|
||||
AND (t2.FYEAR * 100 + t2.FPERIOD) <= t0.FPERIOD
|
||||
LEFT JOIN V_CB_COSTMATTERIAL t3 on t3.FID = t1.FID
|
||||
LEFT JOIN V_CB_COSTMATTERIALDETAIL t3d on t3d.FENTRYID = t3.FENTRYID
|
||||
WHERE 1 = 1
|
||||
AND t0.RN = 1
|
||||
AND t2.FACCTGORGID = @ACCTGORGID
|
||||
AND t2.FCOMPUTEID != ''
|
||||
AND t1.FENDINITKEY = 1
|
||||
AND t0.FFORMID = 'PRD_MO'
|
||||
)
|
||||
, #成本转换 AS (
|
||||
SELECT t1.FPRODUCTNO,t1.FPRODUCTID,t1.FPRODUCTDIMEID,t1.FBILLID,t1.FBILLENTRYID--,t1.FMATERIALID
|
||||
,t1.FEXPTYPE
|
||||
,t1.FCURRINPUTAMOUNT,t1.本期完工数量,t1.本期投入数量,t1.FQUALIFIEDINQTY
|
||||
,t1.O0,t1.O1,t1.O2,t1.O3,t1.O4,t1.O5,t1.O6,t1.O7,t1.O8,t1.O9,t1.O10,t1.O11,t1.O12,t1.O13,t1.O14,t1.O15
|
||||
FROM (
|
||||
SELECT t0.FPRODUCTNO,t0.FPRODUCTID,t0.FPRODUCTDIMEID,t0.FBILLID,t0.FBILLENTRYID
|
||||
,t0.FQUALIFIEDINAMOUNT,t0.FCURRINPUTAMOUNT,t0.FEXPTYPE
|
||||
,t0.FQUALIFIEDINQTY
|
||||
,t0.本期完工数量,t0.本期投入数量
|
||||
,t1.fieldName
|
||||
FROM #初始数据 t0
|
||||
LEFT JOIN V_BD_COST_RESTORE_EXPENSE_V2 t1 on t0.FEXPENSESITEMID = t1.FEXPID
|
||||
) t0
|
||||
PIVOT
|
||||
(
|
||||
SUM(t0.FQUALIFIEDINAMOUNT) FOR
|
||||
t0.fieldName IN (O0,O1,O2,O3,O4,O5,O6,O7,O8,O9,O10,O11,O12,O13,O14,O15)
|
||||
) AS t1
|
||||
)
|
||||
, #物料属性 AS (
|
||||
SELECT t0e.FENUMID,t0e.FSEQ,t0e.FVALUE,t0e_l.FCAPTION
|
||||
FROM T_META_FORMENUMITEM t0e
|
||||
INNER JOIN T_META_FORMENUMITEM_L t0e_l on t0e.FENUMID = t0e_l.FENUMID AND t0e_l.FLOCALEID = 2052
|
||||
WHERE 1 = 1
|
||||
AND t0e.FID = 'ac14913e-bd72-416d-a50b-2c7432bbff63'
|
||||
)
|
||||
SELECT t0.FPRODUCTNO,t0.FPRODUCTID,t0.FPRODUCTDIMEID
|
||||
,ROW_NUMBER() OVER (ORDER BY t0.FPRODUCTNO) FRN
|
||||
,t0.FBILLID,t0.FBILLENTRYID
|
||||
,t3_l.FNAME,t3.FNUMBER
|
||||
,t1.本期投入数量
|
||||
,t1.本期完工数量
|
||||
,t1.累计投入数量
|
||||
,t1.累计完工数量
|
||||
,t0.累计投入成本
|
||||
,t0.总工时
|
||||
,t0.材料成本Q + t0.制造费用O + t0.直接人工S AS '料工费R'
|
||||
,t0.原材料Q1
|
||||
,t0.直接人工S AS '直接人工S'
|
||||
,t0.直接人工S1
|
||||
,t0.间接人工S2
|
||||
,t0.制造费用O + t0.间接材料Q2 AS '制造费用O'
|
||||
,t0.间接材料Q2
|
||||
,t0.制造费用_职工薪酬,t0.制造费用_股份支付,t0.制造费用_劳动保护费,t0.制造费用_差旅费,t0.制造费用_业务招待费,t0.制造费用_办公费,t0.制造费用_折旧与摊销,t0.制造费用_租赁费,t0.制造费用_水电费,t0.制造费用_物料消耗,t0.制造费用_加工_修理_检测费,t0.制造费用_车辆使用费
|
||||
,t0.制造费用_其他 AS '制造费用_其他'
|
||||
,t0.制造费用_委外加工费
|
||||
FROM ( SELECT t0.FPRODUCTNO,t0.FPRODUCTID,t0.FPRODUCTDIMEID
|
||||
,t0.FBILLID,t0.FBILLENTRYID
|
||||
--,AVG(t0.本期完工数量) AS '本期完工数量'
|
||||
--,AVG(t0.本期投入数量) AS '本期投入数量'
|
||||
,SUM(CASE t0.FEXPTYPE WHEN 9 THEN ISNULL(t0.FQUALIFIEDINQTY,0) ELSE 0 END) AS '总工时'
|
||||
,SUM(ISNULL(t0.FCURRINPUTAMOUNT,0)) AS '累计投入成本'
|
||||
,SUM(ISNULL(t0.O0,0)) AS '直接人工S'
|
||||
,SUM(CASE t0.FEXPTYPE WHEN 0 THEN ISNULL(t0.O0,0) ELSE 0 END) AS '直接人工S1'
|
||||
,SUM(CASE WHEN t0.FEXPTYPE != 0 THEN ISNULL(t0.O0,0) ELSE 0 END) AS '间接人工S2'
|
||||
,SUM(ISNULL(t0.O1,0)) AS '材料成本Q'
|
||||
,SUM(CASE t0.FEXPTYPE WHEN 0 THEN ISNULL(t0.O1,0) ELSE 0 END) AS '原材料Q1'
|
||||
,SUM(CASE WHEN t0.FEXPTYPE != 0 THEN ISNULL(t0.O1,0) ELSE 0 END) AS '间接材料Q2'
|
||||
,SUM(ISNULL(t0.O2,0) + ISNULL(t0.O3,0)+ISNULL(t0.O4,0)+ISNULL(t0.O5,0)+ISNULL(t0.O6,0)+ISNULL(t0.O7,0)+ISNULL(t0.O8,0)+ISNULL(t0.O9,0)+ISNULL(t0.O10,0)+ISNULL(t0.O11,0)+ISNULL(t0.O12,0)+ISNULL(t0.O13,0)+ISNULL(t0.O14,0)+ISNULL(t0.O15,0)) AS '制造费用O'
|
||||
,SUM(ISNULL(t0.O2,0)) AS '制造费用_职工薪酬'
|
||||
,SUM(ISNULL(t0.O3,0)) AS '制造费用_股份支付'
|
||||
,SUM(ISNULL(t0.O4,0)) AS '制造费用_劳动保护费'
|
||||
,SUM(ISNULL(t0.O5,0)) AS '制造费用_差旅费'
|
||||
,SUM(ISNULL(t0.O6,0)) AS '制造费用_业务招待费'
|
||||
,SUM(ISNULL(t0.O7,0)) AS '制造费用_办公费'
|
||||
,SUM(ISNULL(t0.O8,0)) AS '制造费用_折旧与摊销'
|
||||
,SUM(ISNULL(t0.O9,0)) AS '制造费用_租赁费'
|
||||
,SUM(ISNULL(t0.O10,0)) AS '制造费用_水电费'
|
||||
,SUM(ISNULL(t0.O11,0)) AS '制造费用_物料消耗'
|
||||
,SUM(ISNULL(t0.O12,0)) AS '制造费用_加工_修理_检测费'
|
||||
,SUM(ISNULL(t0.O13,0)) AS '制造费用_车辆使用费'
|
||||
,SUM(ISNULL(t0.O14,0)) AS '制造费用_其他'
|
||||
,SUM(ISNULL(t0.O15,0)) AS '制造费用_委外加工费'
|
||||
FROM #成本转换 t0
|
||||
GROUP BY t0.FPRODUCTNO,t0.FPRODUCTID
|
||||
,t0.FPRODUCTDIMEID
|
||||
,t0.FBILLID,t0.FBILLENTRYID
|
||||
) t0
|
||||
INNER JOIN #列表数据 t1 on t1.FPRODUCTDIMEID = t0.FPRODUCTDIMEID AND t1.RN = 1
|
||||
INNER JOIN T_BD_MATERIAL t3 on t0.FPRODUCTID = t3.FMATERIALID
|
||||
INNER JOIN T_BD_MATERIAL_L t3_l on t3_l.FMATERIALID = t0.FPRODUCTID AND t3_l.FLOCALEID = 2052
|
||||
|
||||
""".format(whereSql)
|
||||
|
||||
# raise Exception(moSqlL);
|
||||
proEntity = this.View.Model.BusinessInfo.GetEntryEntity("FEntity")
|
||||
proRows = this.View.Model.GetEntityDataObject(proEntity)
|
||||
this.View.Model.BeginIniti();
|
||||
proRows.Clear()
|
||||
datas = DBServiceHelper.ExecuteDynamicObject(this.Context, moSqlL);
|
||||
if datas != None and datas.Count > 0:
|
||||
# raise Exception(str(datas.Count));
|
||||
|
||||
# this.View.Session["ProcessRateValue"] = 1
|
||||
|
||||
for data in datas:
|
||||
row = DynamicObject(proEntity.DynamicObjectType)
|
||||
|
||||
row["FRN"] = data["FRN"]
|
||||
row["FMoBillNo"] = data["FPRODUCTNO"]
|
||||
row["FProMaterialNumber"] = data["FNUMBER"]
|
||||
row["FProMaterialName"] = data["FNAME"]
|
||||
row["FQUALIFIEDINQTY"] = data["本期完工数量"]
|
||||
row["FMaterialCostQ"] = data["原材料Q1"]
|
||||
row["FMaterialCostT"] = data["间接材料Q2"]
|
||||
row["FLaborCostS"] = data["直接人工S"]
|
||||
row["FProcessCostO"] = data["制造费用O"]
|
||||
row["FQ_O_S_T_R"] = data["料工费R"]
|
||||
row["FO2"] = data["制造费用_职工薪酬"]
|
||||
row["FO3"] = data["制造费用_股份支付"]
|
||||
row["FO4"] = data["制造费用_劳动保护费"]
|
||||
row["FO5"] = data["制造费用_差旅费"]
|
||||
row["FO6"] = data["制造费用_业务招待费"]
|
||||
row["FO7"] = data["制造费用_办公费"]
|
||||
row["FO8"] = data["制造费用_折旧与摊销"]
|
||||
row["FO9"] = data["制造费用_租赁费"]
|
||||
row["FO10"] = data["制造费用_水电费"]
|
||||
row["FO11"] = data["制造费用_物料消耗"]
|
||||
row["FO12"] = data["制造费用_加工_修理_检测费"]
|
||||
row["FO13"] = data["制造费用_车辆使用费"]
|
||||
row["FO14"] = data["制造费用_其他"]
|
||||
row["FO15"] = data["制造费用_委外加工费"]
|
||||
row["FALLHRWORKTIME"] = data["总工时"]
|
||||
# row["FO16"] = data["O16"]
|
||||
|
||||
proRows.Add(row)
|
||||
|
||||
this.View.UpdateView("FEntity")
|
||||
this.View.Model.EndIniti();
|
||||
Reference in New Issue
Block a user