Merge branch 'master' of http://8.130.121.29:3000/yuyubo/Pilot_KD_Parino_yuyubo
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
using Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn;
|
||||
using Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn.Args;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Kingdee.BOS.Util;
|
||||
|
||||
namespace Pilot_KD_Parino.Sal_Order.ConvertPlugIn
|
||||
{
|
||||
public class SalOrder2DeliveryConvert : AbstractConvertPlugIn
|
||||
{
|
||||
public override void AfterConvert(AfterConvertEventArgs e)
|
||||
{
|
||||
base.AfterConvert(e);
|
||||
if (e.Result.FindByEntityKey("FBillHead").Any())
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnGetSourceData(GetSourceDataEventArgs e)
|
||||
{
|
||||
base.OnGetSourceData(e);
|
||||
}
|
||||
|
||||
public override void OnBeforeFieldMapping(BeforeFieldMappingEventArgs e)
|
||||
{
|
||||
base.OnBeforeFieldMapping(e);
|
||||
e.FireFieldMappingEvent = true;
|
||||
}
|
||||
|
||||
public override void OnFieldMapping(FieldMappingEventArgs e)
|
||||
{
|
||||
base.OnFieldMapping(e);
|
||||
if (e.TargetField.Key.EqualsIgnoreCase("F_SFYFH"))
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,112 @@
|
||||
import clr
|
||||
clr.AddReference("System")
|
||||
clr.AddReference('System.Data')
|
||||
clr.AddReference("Kingdee.BOS")
|
||||
clr.AddReference("Kingdee.BOS.DataEntity")
|
||||
clr.AddReference("Kingdee.BOS.Core")
|
||||
clr.AddReference('Kingdee.BOS.App')
|
||||
clr.AddReference("Kingdee.BOS.ServiceHelper")
|
||||
|
||||
from Kingdee.BOS.Core import *
|
||||
from Kingdee.BOS.Util import *
|
||||
from Kingdee.BOS.Orm.DataEntity import *
|
||||
from Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn import *
|
||||
from Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn.Args import *
|
||||
from System import *
|
||||
from System.Data import *
|
||||
from System.Collections.Generic import *
|
||||
from Kingdee.BOS.ServiceHelper import *
|
||||
|
||||
|
||||
def FirstOrDefault(collection, func):
|
||||
"""仿Linq的FirstOrDefault
|
||||
|
||||
Args:
|
||||
collection (_type_): 数据集
|
||||
func (_type_): lambda公式
|
||||
|
||||
Returns:
|
||||
_type_: 获取数据集第一个或null
|
||||
"""
|
||||
result = filter(func, collection)
|
||||
|
||||
if len(result) == 0: return None
|
||||
|
||||
return result[0]
|
||||
|
||||
def AfterConvert(e):
|
||||
billHeadEntites = e.Result.FindByEntityKey("FBillHead")
|
||||
if billHeadEntites !=None and billHeadEntites.Count > 0:
|
||||
for billHeadEntity in billHeadEntites:
|
||||
billHead = billHeadEntity.DataEntity;
|
||||
# raise Exception(JsonUtil.Serialize(billHead));
|
||||
entrys = billHead["SAL_DELIVERYNOTICEENTRY"]
|
||||
idList = List[str]()
|
||||
for entry in entrys:
|
||||
entityLink = entry["FEntity_Link"]
|
||||
if entityLink != None and entityLink.Count > 0:
|
||||
link = entityLink[0]
|
||||
idList.Add(link["SBillId"])
|
||||
|
||||
if idList is None or len(idList) == 0:
|
||||
continue;
|
||||
sql = """/*dialect*/
|
||||
SELECT t0.FID,t0.F_Amount '累计核销金额',t0p.FRECADVANCEAMOUNT '款到发货应收金额',t0p.CountTotal
|
||||
FROM T_SAL_ORDER t0
|
||||
CROSS APPLY (
|
||||
SELECT SUM(t0p.FRECADVANCEAMOUNT) 'FRECADVANCEAMOUNT',COUNT(1) 'CountTotal'
|
||||
FROM T_SAL_ORDERPLAN t0p
|
||||
INNER JOIN T_BD_RECCONDITION_L t1_l on t1_l.FID = t0p.F_RECCONDITIONID
|
||||
AND t1_l.FLOCALEID = 2052 AND CHARINDEX('款到发货',t1_l.FNAME) = 1
|
||||
WHERE t0.FID = t0p.FID
|
||||
GROUP BY t0p.FID
|
||||
) t0p
|
||||
WHERE t0.FID IN ({0})
|
||||
""".format(",".join(set(idList)))
|
||||
dataList = DBServiceHelper.ExecuteDynamicObject(this.Context, sql);
|
||||
if dataList != None and len(dataList) > 0:
|
||||
data = dataList[0]
|
||||
isPreShipment = False;
|
||||
if data["累计核销金额"] >= data["款到发货应收金额"]:
|
||||
isPreShipment = False;
|
||||
else:
|
||||
isPreShipment = True;
|
||||
|
||||
return;
|
||||
|
||||
# 数据转换完毕后触发事件
|
||||
def OnBeforeFieldMapping(e):
|
||||
e.FireFieldMappingEvent = True;
|
||||
return
|
||||
|
||||
def OnFieldMapping(e):
|
||||
if e.TargetField.Key == "F_SFYFH":
|
||||
return;
|
||||
sourceData = e.ConvertSource
|
||||
idList = set(map((lambda x:x["FID"]) ,filter((lambda x:x["FSaleOrgId"] == 100303) ,sourceData)))
|
||||
if idList is None or len(idList) == 0:
|
||||
return
|
||||
# raise Exception(JsonUtil.Serialize(srcDBDatas))
|
||||
sql = """/*dialect*/
|
||||
SELECT t0.FID,t0.F_Amount '累计核销金额',t0p.FRECADVANCEAMOUNT '款到发货应收金额',t0p.CountTotal
|
||||
FROM T_SAL_ORDER t0
|
||||
CROSS APPLY (
|
||||
SELECT SUM(t0p.FRECADVANCEAMOUNT) 'FRECADVANCEAMOUNT',COUNT(1) 'CountTotal'
|
||||
FROM T_SAL_ORDERPLAN t0p
|
||||
INNER JOIN T_BD_RECCONDITION_L t1_l on t1_l.FID = t0p.F_RECCONDITIONID
|
||||
AND t1_l.FLOCALEID = 2052 AND CHARINDEX('款到发货',t1_l.FNAME) = 1
|
||||
WHERE t0.FID = t0p.FID
|
||||
GROUP BY t0p.FID
|
||||
) t0p
|
||||
WHERE t0.FID IN ({0})
|
||||
""".format(",".join(idList))
|
||||
dataList = DBServiceHelper.ExecuteDynamicObject(this.Context, sql);
|
||||
if dataList != None and len(dataList) > 0:
|
||||
data = dataList[0]
|
||||
isPreShipment = False;
|
||||
if data["累计核销金额"] >= data["款到发货应收金额"]:
|
||||
isPreShipment = False;
|
||||
else:
|
||||
isPreShipment = True;
|
||||
return;
|
||||
|
||||
@@ -49,6 +49,9 @@ namespace Pilot_KD_Parino.Sal_Order
|
||||
|
||||
var FEntity = this.View.Model.DataObject;
|
||||
BillObj = FEntity;
|
||||
//var sdsas = JsonHelper.ToJson(BillObj);
|
||||
//Logger.Error("销售出库单对象", sdsas, new Exception());
|
||||
|
||||
var id = FEntity["id"];
|
||||
fid = Convert.ToString(id);
|
||||
string formid = FEntity["FFormId"].ToString();
|
||||
@@ -147,6 +150,7 @@ namespace Pilot_KD_Parino.Sal_Order
|
||||
result = Invoke("PUR_PurchaseOrder", "PUR_ReceiveBill", tempFid.ToString(), "7cd93c259999489c97798063f2f7bd70", ref stockId,"收料通知单");
|
||||
}
|
||||
}
|
||||
return;
|
||||
if (result != null)
|
||||
{
|
||||
sheet = result.SuccessDataEnity.FirstOrDefault();
|
||||
|
||||
Reference in New Issue
Block a user