Beispiel #1
0
 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);
     }
 }
Beispiel #2
0
        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 });
                    }
                }
            }
        }
Beispiel #3
0
        /// <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);
            }
        }
Beispiel #4
0
        /// <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);
            }
        }
Beispiel #5
0
        /// <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);
                }
            }
        }
Beispiel #7
0
        /// <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);
            }
        }
Beispiel #8
0
        /// <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);
            }
        }