コード例 #1
0
ファイル: SI35.cs プロジェクト: lizw-hwpg/POneIntf
        public string InvokeRequest(string postStr)
        {
            Model.Rsp35 rsp = new Model.Rsp35();

            try
            {
                Helper.LogWrite("SI35 Request:" + postStr);
                this.req = Helper.JsonDeserialize <Model.Req35>(postStr);

                /// 0 在本地保存支付信息
                this.Save();

                /// 1 创建receipt
                M_Receipt r = CreateReceipt();

                /// 2 更新本地支付信息
                M_T_PAYMENT ety = this.GetPayInfo(etyH.paymentid);
                ety.status = "1";
                this.UpdatePayInfo(ety);

                /// 3 创建分录
                this.CreateDisribution(r.RECEIPT_NUMBER, r.RECEIPT_TYPE);
            }
            catch (Exception)
            {
                throw;
            }

            rsp.raw = Common.Helper.JsonSerialize(rsp);
            return(Common.Helper.JsonSerialize(rsp));
        }
コード例 #2
0
    /// <summary>
    /// 发起处理请求
    /// </summary>
    /// <returns></returns>
    public override string InvokeRequest()
    {
        Resp35      resp   = new Resp35(); //定义返回数据实体
        M_T_PAYMENT etyTmp = null;         //定义支付表实体.

        DbHelper db = new DbHelper(true);
        Receipt  r  = null;

        try
        {
            /// 0 在本地保存支付信息
            this.DAL_Insert_Pay();

            /// 1 创建receipt
            r = new Receipt(db);
            r.Create(req.data); //创建receipt
            db.Commit();

            etyTmp        = this.DAL_Select_PayById(etyH.paymentid);
            etyTmp.status = "1"; //创建receipt完成后,状态位置1
            this.DAL_Update_Pay(etyTmp);
        }
        catch (Exception err)
        {
            db.Abort();
            resp.status = "false";
            resp.time   = Common.Today;
            resp.code   = "200";
            resp.msg    = "接口操作失败!" + err.Message;
            return(Common.Serialize <Resp35>(resp));
        }

        /// 2 创建distribution
        try
        {
            this.CreateDistribution(r.EtyReceipt.RECEIPT_NUMBER, r.EtyReceipt.RECEIPT_TYPE);

            etyTmp        = this.DAL_Select_PayById(etyH.paymentid);
            etyTmp.status = "2";
            this.DAL_Update_Pay(etyTmp);
        }
        catch (Exception err)
        {
            resp.status = "false";
            resp.time   = Common.Today;
            resp.code   = "200";
            resp.msg    = "Receipt创建成功!但Distribution创建失败!" + err.Message;
            return(Common.Serialize <Resp35>(resp));
        }

        resp.status       = "true";
        resp.time         = Common.Today;
        resp.code         = "100";
        resp.msg          = "接口操作成功!";
        resp.data.result  = "100";
        resp.data.message = "Receipt创建成功!";

        return(Common.Serialize <Resp35>(resp));
    }
コード例 #3
0
ファイル: SI35.cs プロジェクト: lizw-hwpg/POneIntf
        private void UpdatePayInfo(M_T_PAYMENT ety)
        {
            CRUD dbiz = new CRUD(DbVendor.Oracle, Runtime.OracleConnStrLocal, true);

            try
            {
                dbiz.Update(ety, "paymentid");
                dbiz.Commit();
            }
            catch (Exception)
            {
                dbiz.Abort();
                throw;
            }
        }
コード例 #4
0
    private void DAL_Update_Pay(M_T_PAYMENT etyH)
    {
        DbHelper db = new DbHelper(Common.OracleConnStrLocal, true);

        try
        {
            List <string> keys = new List <string>();
            keys.Add("paymentid");
            Common.Update <M_T_PAYMENT>("T_Payment", etyH, db, keys);
            db.Commit();
        }
        catch (Exception err)
        {
            db.Abort();
            throw err;
        }
    }
コード例 #5
0
ファイル: SI35.cs プロジェクト: lizw-hwpg/POneIntf
        /// <summary>
        /// 创建receipt后保存支付信息
        /// </summary>
        private void Save()
        {
            BLL.CRUD biz = new CRUD(DbVendor.Oracle, Runtime.OracleConnStrLocal, true);
            try
            {
                etyH             = new M_T_PAYMENT();
                etyH.paymentid   = Bizhub.FetchPaymentId(biz) + 1;
                etyH.amount      = this.req.data.actualamount;
                etyH.leasenumber = this.req.data.leasenum;
                etyH.paydate     = DateTime.Parse(this.req.data.actualpaydate);
                etyH.paytype     = this.req.data.actualpaytype;
                etyH.status      = "0"; // Status取值定义:0=本地保存完成;1=Receipt创建完成;2=分录创建完成。状态必须从0~2顺序转换。
                biz.Create(etyH);


                Model.Req35dataDtl detail = null;
                etyD = new M_T_PAYMENT_INFO();
                for (int i = 0; i < this.req.data.actualpayinfo.Count; i++)
                {
                    detail = this.req.data.actualpayinfo[i];

                    etyD.actualpay      = detail.actualpay;
                    etyD.amount         = detail.amount;
                    etyD.chargecode     = detail.chargecode;
                    etyD.invoicenumber  = detail.transno;
                    etyD.invoicelinenum = detail.invoicelinenum;
                    etyD.paymentid      = etyH.paymentid;
                    biz.Create(etyD);
                }
                biz.Commit();
            }
            catch (Exception err)
            {
                biz.Abort();
                throw err;
            }
        }
コード例 #6
0
    /// <summary>
    /// 创建receipt后保存支付信息
    /// </summary>
    private void DAL_Insert_Pay()
    {
        DbHelper db = new DbHelper(Common.OracleConnStrLocal, true);

        try
        {
            etyH             = new M_T_PAYMENT();
            etyH.paymentid   = BHelper.FetchPaymentId(db) + 1;
            etyH.amount      = this.req.data.actualamount;
            etyH.leasenumber = this.req.data.leasenum;
            etyH.paydate     = DateTime.Parse(this.req.data.actualpaydate);
            etyH.paytype     = this.req.data.actualpaytype;
            etyH.status      = "0"; // Status取值定义:0=本地保存完成;1=Receipt创建完成;2=分录创建完成。状态必须从0~2顺序转换。
            Common.Insert <M_T_PAYMENT>(etyH, db);

            Req35_2 detail = null;
            etyD = new M_T_PAYMENT_INFO();
            for (int i = 0; i < this.req.data.actualpayinfo.Count; i++)
            {
                detail = this.req.data.actualpayinfo[i];

                etyD.actualpay      = detail.actualpay;
                etyD.amount         = detail.amount;
                etyD.chargecode     = detail.chargecode;
                etyD.invoicenumber  = detail.transno;
                etyD.invoicelinenum = detail.invoicelinenum;
                etyD.paymentid      = etyH.paymentid;
                Common.Insert <M_T_PAYMENT_INFO>(etyD, db);
            }
            db.Commit();
        }
        catch (Exception err)
        {
            db.Abort();
            throw err;
        }
    }