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)); }
/// <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)); }
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; } }
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; } }
/// <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; } }
/// <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; } }