public override void BeginOperationTransaction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeginOperationTransactionArgs e) { base.BeginOperationTransaction(e); if (e.DataEntitys == null || e.DataEntitys.Count() <= 0) { return; } foreach (DynamicObject data in e.DataEntitys) { string FCONTACTUNITTYPE = Convert.ToString(data["CONTACTUNITTYPE"]); int FCONTACTUNIT_Id = Convert.ToInt32(data["CONTACTUNIT_Id"]); DynamicObject FCONTACTUNIT = data["CONTACTUNIT"] as DynamicObject; DynamicObject FJNFistSaler = data["FJNFistSaler"] as DynamicObject; if (FCONTACTUNITTYPE == "BD_Customer" && FCONTACTUNIT != null && FJNFistSaler == null) { FormMetadata formMetadata = MetaDataServiceHelper.Load(this.Context, "BD_Customer") as FormMetadata; DynamicObject CustObject = BusinessDataServiceHelper.LoadSingle( this.Context, FCONTACTUNIT_Id, formMetadata.BusinessInfo.GetDynamicObjectType()); if (CustObject != null) { DynamicObject Saler = CustObject["JN_SalesId"] as DynamicObject; if (Saler != null) { int Saler_Id = Convert.ToInt32(Saler["id"]); int billid = Convert.ToInt32(data["id"]); string strSQL = string.Format("/*dialect*/update T_AR_RECEIVEBILL set FJNFISTSALER ={0} where fid={1}", Saler_Id, billid); DBUtils.Execute(this.Context, strSQL); } } } //AppServiceContext.SaveService.Save(this.Context, formMetadata.BusinessInfo, dataObjects); } }
public override void BeginOperationTransaction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeginOperationTransactionArgs e) { var billGroups = e.DataEntitys; foreach (var billGroup in billGroups) { DynamicObjectCollection BILLENTRYDATAs = billGroup["PAYBILLENTRY"] as DynamicObjectCollection; foreach (var BILLENTRYDATA in BILLENTRYDATAs) { string FBandStatus = Convert.ToString(BILLENTRYDATA["BankStatus"]); string FSubmitStatus = Convert.ToString(BILLENTRYDATA["SubmitStatus"]); Int32 EntryID = Convert.ToInt32(BILLENTRYDATA["Id"]); if ((FBandStatus == "D" || FBandStatus == "E") && FSubmitStatus == "B") { BusinessDataServiceHelper.SetState(this.Context, "T_AP_PAYBILLENTRY_B", "FBankStatus", "A", "FEntryID", new object[] { EntryID }); BusinessDataServiceHelper.SetState(this.Context, "T_AP_PAYBILLENTRY_B", "FSubmitStatus", "A", "FEntryID", new object[] { EntryID }); } } } }
/// <summary> /// 调用操作事物前触发 /// </summary> /// <param name="e"></param> public override void BeginOperationTransaction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeginOperationTransactionArgs e) { base.BeginOperationTransaction(e); List <DynamicObject> data = e.DataEntitys.ToList(); foreach (var item in data) { long fid = Convert.ToInt64(item["Id"]); string sql = string.Format(@"select FSRCBILLNO from T_QM_INSPECTBILLENTRY_A where FID={0} and FSRCBILLTYPE='PUR_ReceiveBill' group by FSRCBILLNO" , fid); billNoDynamic = DBUtils.ExecuteDynamicObject(this.Context, sql, null, null, CommandType.Text, null); } }
/// <summary> /// 更新批准价格 /// </summary> /// <param name="e"></param> public override void BeginOperationTransaction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeginOperationTransactionArgs e) { base.BeginOperationTransaction(e); if (e.DataEntitys == null) { return; } var billdata = e.DataEntitys[0]; if (billdata["IsBorrow"].ToString() == "False") { return; } DynamicObjectCollection Entitydata = billdata["FEntity"] as DynamicObjectCollection; double checkedBorrowAmount = Convert.ToDouble(billdata["F_JN_checkedBorrowAmount"]); double BorrowAmount = checkedBorrowAmount; double listBorrowAmount = 0; int countrows = Entitydata.Count; for (int i = 0; i < countrows; i++) { //计算明细的借支金额,表头借支金额自上而下分摊到明细借支金额 double CheckedOrgAmount = Convert.ToDouble(Entitydata[i]["CheckedOrgAmount"]); if (BorrowAmount > 0 && BorrowAmount <= CheckedOrgAmount) { listBorrowAmount = BorrowAmount; } else if (BorrowAmount <= 0) { listBorrowAmount = 0; } else { listBorrowAmount = CheckedOrgAmount; } //当明细为最后一项时,明细借支金额=余额 if (i == countrows - 1) { listBorrowAmount = BorrowAmount; } BorrowAmount = BorrowAmount - CheckedOrgAmount; string fid = Convert.ToString(Entitydata[i]["id"]); string sql = string.Format(@"update T_ER_ExpenseRequestEntry set F_JN_LISTCHECKEDBORROWAMOUNT ={0} where FENTRYID={1} ", listBorrowAmount.ToString(), fid); DBUtils.Execute(this.Context, sql); } }
/// <summary> /// 事务后事件 /// </summary> /// <param name="e"></param> public override void BeginOperationTransaction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeginOperationTransactionArgs e) { base.BeginOperationTransaction(e); if (e.DataEntitys == null) { return; } var billGroups = e.DataEntitys; //List<string> sql = new List<string>(); foreach (var billGroup in billGroups) { bool flag = false; int Id = Convert.ToInt32(billGroup["Id"]); DateTime date = Convert.ToDateTime(billGroup["Date"]); DynamicObjectCollection dynamicOs = billGroup["SaleOrderEntry"] as DynamicObjectCollection;//分录明细 foreach (var dynamicO in dynamicOs) { decimal taxPrice = Convert.ToDecimal(dynamicO["TaxPrice"]); //含税单价 int auxPropId = Convert.ToInt32(dynamicO["AuxPropId_Id"]); //辅助属性 int materialId = Convert.ToInt32(dynamicO["MaterialId_Id"]); //当前物料 DynamicObject PriceListEntry = dynamicO["PriceListEntry"] as DynamicObject; //行价目表 if (PriceListEntry == null) { continue; } DynamicObjectCollection salPriceListtrys = PriceListEntry["SAL_PRICELISTENTRY"] as DynamicObjectCollection; //价目表明细 var priceList = salPriceListtrys.Where(f => Convert.ToInt32(f["MaterialId_Id"]) == materialId && Convert.ToDateTime(f["EffectiveDate"]) <= date && Convert.ToDateTime(f["ExpiryDate"]) > date); //物料、生效(失效)日期判断, if (priceList.Count() == 1) { //string sqlUpdate = string.Format("update T_SAL_ORDER set FJNPRICECHANGE='1' where FID={0}", Id); //sql.Add(sqlUpdate); foreach (var obj in priceList) { //当分录中存在含税单价低于最低限价时,限价标识自动勾选上 if (taxPrice < Convert.ToDecimal(obj["DownPrice"])) { flag = true; break; } } } if (priceList.Count() > 1) { //辅助属性判断 var priceEntry = priceList.Where(f => Convert.ToInt32(f["AuxPropId_Id"]) == auxPropId); if (priceEntry.Count() == 1) { //string sqlUpdate = string.Format("update T_SAL_ORDER set FJNPRICECHANGE='1' where FID={0}", Id); //sql.Add(sqlUpdate); foreach (var obj in priceEntry) { //当分录中存在含税单价低于最低限价时,限价标识自动勾选上 if (taxPrice < Convert.ToDecimal(obj["DownPrice"])) { flag = true; break; } } } } } if (flag) { billGroup["FJNPRICECHANGE"] = true; //JN.K3.YDL.Core.AppServiceContext.SaveService.Save(this.Context, new DynamicObject[] { billGroup });//保存数据包 } } //if (sql.Count > 0) //{ // DBUtils.ExecuteBatch (this.Context, sql,50);//批量处理sql,50表示一次提交50条 //} }
public override void BeginOperationTransaction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeginOperationTransactionArgs e) { if (e.DataEntitys != null && e.DataEntitys.Count <DynamicObject>() > 0) { foreach (DynamicObject item in e.DataEntitys) { long id = Convert.ToInt64(item["id"]); long custId = Convert.ToInt64(item["FCUSTOMERID_Id"]); long orgId = Convert.ToInt64(item["F_PAEZ_OrgId_Id"]); string beginDate = Convert.ToDateTime(item["FBeginDate"]).ToString(); DateTime endDate = Convert.ToDateTime(item["FEndDate"]); string bfYear = Convert.ToString(endDate.Year - 1);//上一年 string strSql = string.Format(@"/*dialect*/select FRECEIVEAMOUNT,FREFUNDBILL,FJXAMOUNT,FSOAMOUNT,FREBATAMOUNT,FSALERETURNAMOUNT,FALLAMOUNT,FBalance from K_CS_FINALSTATEMENT where FCSYEAR = {0} and F_PAEZ_OrgId = {1} and FCUSTOMERID = {2}", bfYear, orgId, custId); DynamicObjectCollection queryResult = DBUtils.ExecuteDynamicObject(this.Context, strSql); if (queryResult.Count != 0) { //上一年存在年结单 } else { //上一年不存在年结单 beginDate = "1970/1/1 0:00:00"; } //获取上一年年结单中各个指标的数据 //Decimal RECEIVEAMOUN = Convert.ToDecimal(queryResult[0]["FRECEIVEAMOUNT"]);//累计收款 //Decimal JXAMOUNT = Convert.ToDecimal(queryResult[0]["FJXAMOUNT"]);//累计利息 //Decimal SOAMOUNT = Convert.ToDecimal(queryResult[0]["FSOAMOUNT"]);//累计订单 //Decimal REBATAMOUNT = Convert.ToDecimal(queryResult[0]["FREBATAMOUNT"]);//累计返利费用 //Decimal SALERETURNAMOUNT = Convert.ToDecimal(queryResult[0]["FSALERETURNAMOUNT"]);//累计退货 //Decimal ALLAMOUNT = Convert.ToDecimal(queryResult[0]["FALLAMOUNT"]);//累计应收费用 //今年各项指标的数据 //获取临时表名 TimeSpan ts = DateTime.Now.ToUniversalTime() - new DateTime(1970, 1, 1); string tem = ts.TotalMilliseconds.ToString(); int index = tem.IndexOf('.'); string tp = tem.Substring(0, index); string em = tem.Substring(index + 1, tem.Length - 1 - index); string tmpTableName = "TMP" + tp + em; string createSql = string.Format(@"/*dialect*/ create table {0} (FSeq bigint,FBILLNO nvarchar(255),FormId nvarchar(255), FDATE datetime ,FCUSTOMERID int,FORGID int,FAMOUNT decimal(38, 10), FCUSTOMERNUMBER nvarchar(255),FORMNAME nvarchar(255),FCUSTOMERNAME nvarchar(255))", tmpTableName); DBUtils.Execute(this.Context, createSql); string strSql_1 = string.Format(@"/*dialect*/ insert into {0} Select distinct ROW_NUMBER() OVER(order by FBILLNO) AS FSeq, C.* ,TMPC.FNUMBER AS FCUSTOMERNUMBER ,OL.FNAME AS FORMNAME ,TMPCL.FNAME AS FCUSTOMERNAME FROM ( SELECT R.FBILLNO, 'AR_RECEIVEBILL' AS FormId, R.FDATE, R.FCONTACTUNIT AS FCUSTOMERID, r.FSETTLEORGID AS FORGID, SUM(RE.FRECTOTALAMOUNTFOR) AS FAMOUNT FROM T_AR_RECEIVEBILL R INNER JOIN T_AR_RECEIVEBILLENTRY RE ON R.FID=RE.FID WHERE R.FBILLTYPEID='36cf265bd8c3452194ed9c83ec5e73d2' AND R.FDOCUMENTSTATUS='C' AND R.FCONTACTUNITTYPE='BD_Customer' GROUP BY R.FBILLNO,R.FDATE,R.FCONTACTUNIT ,FSETTLEORGID UNION ALL SELECT R.FBILLNO, 'AR_REFUNDBILL' AS FormId, R.FDATE, R.FCONTACTUNIT AS FCUSTOMERID, r.FSETTLEORGID AS FORGID, SUM(RE.FREFUNDAMOUNTFOR) AS FAMOUNT FROM T_AR_REFUNDBILL R INNER JOIN T_AR_REFUNDBILLENTRY RE ON R.FID=RE.FID WHERE R.FDOCUMENTSTATUS='C' AND R.FCONTACTUNITTYPE='BD_Customer' GROUP BY R.FBILLNO,R.FDATE,R.FCONTACTUNIT ,FSETTLEORGID UNION ALL SELECT T1.FBILLNO, 'KLM_SKJXSUMBILL' AS FormId, T1.FREQDATE AS FDATE, T2.FKLMCUSTOMER AS FCUSTOMERID, t2.FKLMORGID AS FORGID, SUM(T2.FKLMSUMAMOUNT) AS FAMOUNT FROM T_KLMSKJXSUM T1 INNER JOIN T_KLMSKJXSUMENTRY T2 ON T1.FID=T2.FID WHERE T1.FDOCUMENTSTATUS='C' GROUP BY T1.FBILLNO,T1.FREQDATE,T2.FKLMCUSTOMER,t2.FKLMORGID UNION ALL SELECT R.FBILLNO, 'SAL_RETURNSTOCK' AS FormId, R.FDATE, R.FRETCUSTID AS FCUSTOMERID, FSALEORGID AS FORGID, SUM(RE.FREALQTY*REF.FTAXPRICE) AS FAMOUNT FROM T_SAL_RETURNSTOCK R INNER JOIN T_SAL_RETURNSTOCKENTRY RE ON R.FID=RE.FID INNER JOIN T_SAL_RETURNSTOCKENTRY_F REF ON RE.FENTRYID=REF.FENTRYID WHERE R.FDOCUMENTSTATUS='C' GROUP BY R.FBILLNO,R.FDATE,R.FRETCUSTID,FSALEORGID UNION ALL SELECT SO.FBILLNO, 'SAL_SaleOrder' AS FormId, SO.FDATE,SO.FCUSTID AS FCUSTOMERID, SO.FSALEORGID AS FORGID, SUM(SOEF.FALLAMOUNT) AS FAMOUNT FROM T_SAL_ORDER SO INNER JOIN T_SAL_ORDERENTRY SOE ON SO.FID=SOE.FID INNER JOIN T_SAL_ORDERENTRY_F SOEF ON SOE.FENTRYID=SOEF.FENTRYID WHERE SO.FDOCUMENTSTATUS='C' AND SO.FCANCELSTATUS='A' AND SOE.FENTRYID NOT IN( SELECT T5.FENTRYID FROM T_SAL_OUTSTOCK T1 INNER JOIN T_SAL_OUTSTOCKENTRY T2 ON T1.FID=T2.FID INNER JOIN T_SAL_OUTSTOCKENTRY_R T2R ON T2.FENTRYID=T2R.FENTRYID INNER JOIN T_AR_RECEIVABLEENTRY_LK T3LK ON T3LK.FSID=T2.FENTRYID AND T3LK.FSBILLID=T2.FID AND T3LK.FSTABLENAME='T_SAL_OUTSTOCKENTRY' INNER JOIN T_AR_RECEIVABLEENTRY T3 ON T3.FENTRYID=T3LK.FENTRYID INNER JOIN T_AR_RECEIVABLE T4 ON T3.FID=T4.FID AND T4.FSETACCOUNTTYPE='3' INNER JOIN T_SAL_ORDERENTRY T5 ON T5.FENTRYID=T2R.FSOENTRYID INNER JOIN T_SAL_ORDER T6 ON T6.FBILLNO=T2R.FSOORDERNO ) GROUP BY SO.FBILLNO,SO.FDATE,SO.FCUSTID,SO.FSALEORGID UNION ALL SELECT SO.FBILLNO, 'SAL_OUTSTOCK' AS FormId, SO.FDATE,SO.FCustomerID AS FCUSTOMERID, SO.FSALEORGID AS FORGID, SUM(SOEF.FALLAMOUNT) AS FAMOUNT FROM T_SAL_OUTSTOCK SO INNER JOIN T_SAL_OUTSTOCKENTRY SOE ON SO.FID=SOE.FID INNER JOIN T_SAL_OUTSTOCKENTRY_R SOER ON SOE.FENTRYID=SOER.FENTRYID INNER JOIN T_SAL_OUTSTOCKENTRY_F SOEF ON SOE.FENTRYID=SOEF.FENTRYID WHERE SO.FDOCUMENTSTATUS='C' AND SO.FCANCELSTATUS='A'AND SOER.FSRCTYPE ='' AND SOE.FENTRYID NOT IN( SELECT DISTINCT T2.FENTRYID FROM T_SAL_OUTSTOCK T1 INNER JOIN T_SAL_OUTSTOCKENTRY T2 ON T1.FID=T2.FID INNER JOIN T_SAL_OUTSTOCKENTRY_R T2R ON T2.FENTRYID=T2R.FENTRYID INNER JOIN T_AR_RECEIVABLEENTRY_LK T3LK ON T3LK.FSID=T2.FENTRYID AND T3LK.FSBILLID=T2.FID AND T3LK.FSTABLENAME='T_SAL_OUTSTOCKENTRY' INNER JOIN T_AR_RECEIVABLEENTRY T3 ON T3.FENTRYID=T3LK.FENTRYID INNER JOIN T_AR_RECEIVABLE T4 ON T3.FID=T4.FID WHERE FSRCTYPE ='' and t4.FSETACCOUNTTYPE='3') GROUP BY SO.FBILLNO,SO.FDATE,SO.FCustomerID,SO.FSALEORGID UNION ALL SELECT R.FBILLNO, 'KLM_RebateBill' AS FormId, R.FDATE, R.FCUSTOMERID AS FCUSTOMERID, R.F_KLM_ORGID AS FORGID, SUM(FAMOUNT) AS FAMOUNT FROM T_KLM_RebateBill R GROUP BY R.FBILLNO,R.FDATE,R.FCUSTOMERID,R.F_KLM_ORGID UNION ALL select FBILLNO,'AR_receivable' as FormId,FDATE,FCUSTOMERID,FPAYORGID AS FORGID,sum(FALLAMOUNT) as FAMOUNT from t_AR_receivable TAR,t_AR_receivableFIN TARF where TAR.FID=TARF.FID and FBILLTYPEID='00505694799c955111e325bc9e6eb056' and FDOCUMENTSTATUS='c' GROUP BY FBILLNO,FDATE,FCUSTOMERID,FPAYORGID UNION ALL select FBILLNO,'PAEZ_Balance_Aadjustment' as FormId, FDATE,FCUSTOMERID,F_PAEZ_OrgId as FORGID , sum(FAmount) as FAMOUNT from K_CS_CAUSEOfADJUSTMENT where FDOCUMENTSTATUS = 'c' GROUP BY FBILLNO,FDATE,FCUSTOMERID,F_PAEZ_OrgId ) AS C INNER JOIN T_BD_CUSTOMER TMPC ON C.FCUSTOMERID=TMPC.FCUSTID INNER JOIN T_BD_CUSTOMER_L TMPCL ON TMPC.FCUSTID=TMPCL.FCUSTID AND TMPCL.FLOCALEID=2052 INNER JOIN T_META_OBJECTTYPE_L OL ON C.FORMID=OL.FID AND OL.FLOCALEID=2052 where tmpc.FCUSTID={1} and c.FDATE>= '{2}' and c.FDATE<= '{3}' and c.FORGID ={4} ", tmpTableName, custId, beginDate, endDate, orgId); DBUtils.Execute(this.Context, strSql_1); string strSql_2 = string.Format(@"/*dialect*/ SELECT FRebatAMOUNT + {0} as FRebatAMOUNT, FREFUNDBILL + {8} as FREFUNDBILL, FSOAMOUNT + {1} as FSOAMOUNT, FReceiveAMOUNT+ {2} as FReceiveAMOUNT, FSaleReturnAMOUNT+ {3} as FSaleReturnAMOUNT, FJXAMOUNT+ {4} as FJXAMOUNT, Freceivable+ {5} as Freceivable, FBalance+{6} as FBalance FROM ( select FCUSTOMERName,FCUSTOMERNUMBER,FCUSTOMERID,FORGID, cast(sum(case when formId='KLM_RebateBill' then fAmount else 0 end ) as decimal(18,2)) as FRebatAMOUNT, cast(sum(case when formId='AR_REFUNDBILL' then fAmount else 0 end ) as decimal(18,2)) as FREFUNDBILL, cast(sum(case when formId='SAL_SaleOrder' then fAmount else 0 end ) as decimal(18,2)) as FSOAMOUNT, cast(sum(case when formId='AR_RECEIVEBILL' then fAmount else 0 end ) as decimal(18,2)) as FReceiveAMOUNT, cast(sum(case when formId='SAL_RETURNSTOCK' then fAmount else 0 end ) as decimal(18,2)) as FSaleReturnAMOUNT, cast(sum(case when formId='KLM_SKJXSUMBILL' then fAmount else 0 end ) as decimal(18,2)) as FJXAMOUNT, cast(sum(case when formId='AR_receivable' then fAmount else 0 end ) as decimal(18,2)) as Freceivable, cast(sum(case when formId='PAEZ_Balance_Aadjustment' then fAmount else 0 end ) as decimal(18,2)) as FBalance from {7} group by FCUSTOMERName,FCUSTOMERNUMBER,FCUSTOMERID,FORGID ) C ", queryResult.Count == 0 ? 0 : Convert.ToDecimal(queryResult[0]["FREBATAMOUNT"]), queryResult.Count == 0 ? 0 : Convert.ToDecimal(queryResult[0]["FSOAMOUNT"]), queryResult.Count == 0 ? 0 : Convert.ToDecimal(queryResult[0]["FRECEIVEAMOUNT"]), queryResult.Count == 0 ? 0 : Convert.ToDecimal(queryResult[0]["FSALERETURNAMOUNT"]), queryResult.Count == 0 ? 0 : Convert.ToDecimal(queryResult[0]["FJXAMOUNT"]), queryResult.Count == 0 ? 0 : Convert.ToDecimal(queryResult[0]["FALLAMOUNT"]), queryResult.Count == 0 ? 0 : Convert.ToDecimal(queryResult[0]["FBalance"]), tmpTableName, queryResult.Count == 0 ? 0 : Convert.ToDecimal(queryResult[0]["FREFUNDBILL"])); DynamicObjectCollection finalResult = DBUtils.ExecuteDynamicObject(this.Context, strSql_2); if (finalResult.Count <= 0) { string strSql_5 = string.Format(@"/*dialect*/UPDATE K_CS_FINALSTATEMENT set FRECEIVEAMOUNT = 0,FJXAMOUNT = 0,FSOAMOUNT = 0,FREBATAMOUNT = 0,FSALERETURNAMOUNT = 0,FALLAMOUNT = 0,FBalance = 0,FCSAMOUNT = 0,FREFUNDBILL = 0 where FID = {0}", id); DBUtils.Execute(this.Context, strSql_5); string strSql_6 = string.Format(@"/*dialect*/drop table {0}", tmpTableName); DBUtils.Execute(this.Context, strSql_6); continue; } string strSql_3 = string.Format(@"/*dialect*/UPDATE K_CS_FINALSTATEMENT set FRECEIVEAMOUNT = {0},FJXAMOUNT = {1},FSOAMOUNT = {2},FREBATAMOUNT = {3},FSALERETURNAMOUNT = {4},FALLAMOUNT = {5},FBalance = {6},FCSAMOUNT = {7},FREFUNDBILL ={9} where FID = {8}", finalResult[0]["FReceiveAMOUNT"], finalResult[0]["FJXAMOUNT"], finalResult[0]["FSOAMOUNT"], finalResult[0]["FRebatAMOUNT"], finalResult[0]["FSaleReturnAMOUNT"], finalResult[0]["Freceivable"], finalResult[0]["FBalance"], Convert.ToDecimal(finalResult[0]["FReceiveAMOUNT"]) + Convert.ToDecimal(finalResult[0]["FJXAMOUNT"]) - Convert.ToDecimal(finalResult[0]["FSOAMOUNT"]) + Convert.ToDecimal(finalResult[0]["FRebatAMOUNT"]) + Convert.ToDecimal(finalResult[0]["FSaleReturnAMOUNT"]) - Convert.ToDecimal(finalResult[0]["Freceivable"]) + Convert.ToDecimal(finalResult[0]["FBalance"]) - Convert.ToDecimal(finalResult[0]["FREFUNDBILL"]), id, finalResult[0]["FREFUNDBILL"]); DBUtils.Execute(this.Context, strSql_3); string strSql_4 = string.Format(@"/*dialect*/drop table {0}", tmpTableName); DBUtils.Execute(this.Context, strSql_4); } } }
/// <summary> /// 操作执行前逻辑 /// </summary> /// <param name="e"></param> public override void BeginOperationTransaction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeginOperationTransactionArgs e) { JNBandPara actband = new JNBandPara(); JNBandPara toband = new JNBandPara(); double payamount = 0; var billGroups = e.DataEntitys; string database = this.Context.DataCenterName; string token = ""; int i = 0; foreach (var billGroup in billGroups) { DynamicObject BillType = billGroup["BillTypeID"] as DynamicObject; string BillTypeName = Convert.ToString(BillType["name"]); if (BillTypeName != "其他业务付款单") { DynamicObjectCollection BILLENTRYDATAs = billGroup["PAYBILLENTRY"] as DynamicObjectCollection; foreach (var BILLENTRYDATA in BILLENTRYDATAs) { DynamicObject FrACCOUNT = BILLENTRYDATA["FACCOUNTID"] as DynamicObject; int SETTLETYPEID = Convert.ToInt16(BILLENTRYDATA["SETTLETYPEID_Id"]); if (FrACCOUNT != null) { DynamicObject FrBAND = FrACCOUNT["BANKID"] as DynamicObject; if (FrBAND != null && SETTLETYPEID == 4) { actband.bandid = Convert.ToInt32(BILLENTRYDATA["FACCOUNTID_Id"]); //actband.addr = Convert.ToString(FrACCOUNT["BANKADDRESS"]); actband.name = Convert.ToString(FrACCOUNT["Name"]); actband.bandnum = Convert.ToString(FrACCOUNT["ACNTBRANCHNUMBER"]); actband.cn = Convert.ToString(FrACCOUNT["NUMBER"]); actband.bandname = Convert.ToString(FrBAND["Name"]); toband.addr = Convert.ToString(BILLENTRYDATA["OpenAddressRec"]); toband.cn = Convert.ToString(BILLENTRYDATA["OPPOSITEBANKACCOUNT"]); toband.bandname = Convert.ToString(BILLENTRYDATA["OPPOSITEBANKNAME"]); toband.name = Convert.ToString(BILLENTRYDATA["OPPOSITECCOUNTNAME"]); payamount = Convert.ToDouble(BILLENTRYDATA["REALPAYAMOUNTFOR"]); Int32 EntryID = Convert.ToInt32(BILLENTRYDATA["Id"]); if (i == 0)//首单获取令牌 { token = checkin(this.Context, actband); i++; } //判断对公对私业务 int RecType = Convert.ToInt16(BILLENTRYDATA["RecType"]); string result = ""; if (RecType == 0)//对公 { result = BtoBPay(this.Context, actband, toband, payamount, "", token); } else//对私 { int F_VTR_Bocflag = Convert.ToInt32(BILLENTRYDATA["F_VTR_Bocflag"]); result = BtoCPay(this.Context, actband, toband, payamount, "", F_VTR_Bocflag, token); } if (result.Length > 0) { BusinessDataServiceHelper.SetState(this.Context, "T_AP_PAYBILLENTRY_B", "FSUBMITSTATUS", "B", "FEntryID", new object[] { EntryID }); //BusinessDataServiceHelper.s string sql = string.Format("update T_AP_PAYBILLENTRY_B set F_JNobssid={0} where FEntryID={1}", result, EntryID.ToString()); DBUtils.Execute(this.Context, sql); } else { // 定义交互消息标识,以与其他交互消息区分开 string spensorKey = "JNbandAudit.ServicePlugIn.Operation.S160425ShowInteractionOpPlug.ShowK3DisplayMessage"; // 提示信息的列标题,以“~|~”分开两列 string titleMsg = "提交银行失败"; // 对应的提示信息格式,以"~|~"分开两列,以{n}进行占位 string errMsg = "提交银行失败"; K3DisplayerModel model = K3DisplayerModel.Create(Context, titleMsg); // 消息内容:可以添加多行 string rowMsg = string.Format(errMsg, "提交银行失败"); ((K3DisplayerModel)model).AddMessage(rowMsg); model.Option.SetVariableValue(K3DisplayerModel.CST_FormTitle, "本节点为最后节点,是否继续完成审批?"); // 是否继续按钮 model.FieldAppearances[1].Width = new LocaleValue("300"); model.OKButton.Visible = true; model.OKButton.Caption = new LocaleValue("继续", Context.UserLocale.LCID); model.CancelButton.Visible = true; model.CancelButton.Caption = new LocaleValue("取消", Context.UserLocale.LCID); // 创建一个交互提示错误对象KDInteractionException: // 通过throw new KDInteractionException()的方式,向操作调用者,输出交互信息 KDInteractionException ie = new KDInteractionException(this.Option, spensorKey); // 提示信息显示界面 ie.InteractionContext.InteractionFormId = Kingdee.BOS.Core.FormIdConst.BOS_K3Displayer; // 提示内容 ie.InteractionContext.K3DisplayerModel = model; // 是否需要交互 ie.InteractionContext.IsInteractive = true; // 抛出错误,终止流程 throw ie; } } } } //i++; } } if (token.Length > 1) { checkout(this.Context, actband); } }
/// <summary> /// 操作执行前逻辑 /// </summary> /// <param name="e"></param> public override void BeginOperationTransaction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeginOperationTransactionArgs e) { JNBandPara actband = new JNBandPara(); var billGroups = e.DataEntitys; string token = ""; int i = 0; foreach (var billGroup in billGroups) { string result = ""; DynamicObjectCollection BILLENTRYDATAs = billGroup["PAYBILLENTRY"] as DynamicObjectCollection; foreach (var BILLENTRYDATA in BILLENTRYDATAs) { DynamicObject FrACCOUNT = BILLENTRYDATA["FACCOUNTID"] as DynamicObject; DynamicObject FrBAND = FrACCOUNT["BANKID"] as DynamicObject; actband.bandid = Convert.ToInt32(BILLENTRYDATA["FACCOUNTID_Id"]); //actband.addr = Convert.ToString(FrACCOUNT["BANKADDRESS"]); actband.name = Convert.ToString(FrACCOUNT["Name"]); actband.bandnum = Convert.ToString(FrACCOUNT["ACNTBRANCHNUMBER"]); actband.cn = Convert.ToString(FrACCOUNT["NUMBER"]); actband.bandname = Convert.ToString(FrBAND["Name"]); if (i == 0)//首单获取令牌 { token = checkin(this.Context, actband); i++; } string obssid = Convert.ToString(BILLENTRYDATA["F_JNOBSSID"]); if (obssid.Length > 1) { result = findPay(this.Context, actband, obssid, token); } if (result.Length > 0) { switch (result) { default: BusinessDataServiceHelper.SetState(this.Context, "T_AP_PAYBILLENTRY_B", "FBankStatus", "A", "F_JNOBSSID", new object[] { obssid }); break; case "待授权": BusinessDataServiceHelper.SetState(this.Context, "T_AP_PAYBILLENTRY_B", "FBankStatus", "B", "F_JNOBSSID", new object[] { obssid }); break; case "ok": BusinessDataServiceHelper.SetState(this.Context, "T_AP_PAYBILLENTRY_B", "FBankStatus", "C", "F_JNOBSSID", new object[] { obssid }); break; case "授权拒绝": BusinessDataServiceHelper.SetState(this.Context, "T_AP_PAYBILLENTRY_B", "FBankStatus", "D", "F_JNOBSSID", new object[] { obssid }); break; case "交易处理中": BusinessDataServiceHelper.SetState(this.Context, "T_AP_PAYBILLENTRY_B", "FBankStatus", "B", "F_JNOBSSID", new object[] { obssid }); break; } } } } if (token.Length > 1) { checkout(this.Context, actband); } }