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.DataEntity')
clr.AddReference('Kingdee.BOS.Contracts')
clr.AddReference('Kingdee.BOS.ServiceHelper')
clr.AddReference('Newtonsoft.Json')
from Kingdee.BOS import *
from Kingdee.BOS.Core import *
from Kingdee.BOS.Contracts import *
from Kingdee.BOS.Orm.DataEntity import *
from Kingdee.BOS.Core.Bill import *
from Kingdee.BOS.Core.DynamicForm import *
from Kingdee.BOS.Core.DynamicForm.PlugIn 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 *
from Newtonsoft.Json import JsonConvert
from Newtonsoft.Json.Linq import *

def OnPrepareOperationServiceOption(e):
    e.SupportTransaction = True
    e.SurportBatchTransaction = True

def OnPreparePropertys(e):
    e.FieldKeys.Add("FBillTypeID")
    e.FieldKeys.Add("FQty")
    e.FieldKeys.Add("FAmount")

def OnAddValidators(e):
    vlidators = e.Validators

def BeforeExecuteOperationTransaction(e):
    e.Cancel = False
    if e.Cancel == True:
        e.CancelMessage = "被取消了"

def BeginOperationTransaction(e):
    for billObj in e.DataEntitys:
        billId = billObj["Id"]
        billNo = billObj["BillNo"]  # PropertyName

def EndOperationTransaction(e):
    for billObj in e.DataEntitys:
        billId = billObj["Id"]

def RollbackData(e):
    for billObj in e.DataEntitys:
        billId = billObj["Id"]

def AfterExecuteOperationTransaction(e):
    for billObj in e.DataEntitys:
        billId = billObj["Id"]
    result = OperateResult()
    result.SuccessStatus = True
    result.Message = "提示信息"
    this.OperationResult.OperateResult.Add(result)
