42 lines
1.6 KiB
Python
42 lines
1.6 KiB
Python
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.Core.DynamicForm.PlugIn import *
|
|
from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import *
|
|
from Kingdee.BOS.Util import StringUtils,JsonUtil
|
|
from System import *
|
|
from System.ComponentModel import *
|
|
from System.Collections.Generic import *
|
|
from System.Text import*
|
|
from Kingdee.BOS.ServiceHelper import *
|
|
|
|
def BeforeF7Select(e):
|
|
if e.FieldKey.upper() == "FLEDGERSTOCKID":
|
|
id = this.Model.DataObject["Id"]
|
|
details = this.View.BusinessInfo.GetEntity("F_VUOY_LEDGERSTOCK")
|
|
entry = this.View.Model.GetEntityDataObject(details)
|
|
joinFilterSrt = """
|
|
FSTOCKID NOT IN (
|
|
SELECT t0es.FLEDGERSTOCKID
|
|
FROM T_BD_LEDGERENTRY t0e
|
|
INNER JOIN T_BD_LEDGERSTOCK t0es on t0e.FEntryID = t0es.FEntryID
|
|
WHERE FID != {0})
|
|
""".format(id)
|
|
|
|
if entry != None and entry.Count > 0:
|
|
idList = map(str,set(map(lambda x : x["FLedgerStockId_Id"], entry)))
|
|
if idList.Count > 0:
|
|
e.ListFilterParameter.Filter = StringUtils.JoinFilterString(e.ListFilterParameter.Filter," FSTOCKID NOT IN ({0})".format(",".join(idList)))
|
|
|
|
e.ListFilterParameter.Filter = StringUtils.JoinFilterString(e.ListFilterParameter.Filter, joinFilterSrt)
|
|
return |