public int Pay(BillingChld chld, CustAcnt acnt) { if (null == chld) { return(0); } return(service.UpdateAmount(chld, acnt)); }
public int UpdateAmount(BillingChld chld, CustAcnt acnt) { DateTime now = DateTime.Now; int cnt = 0; Dictionary <string, object> values = null; long?acntId; if (null != acnt && null == acnt.ID__PK) { string acntSql = "SELECT MAX(ID) FROM CUST_ACNT WHERE AcntType=@type AND AcntNO=@acntNO AND CustID=@custId "; values = new Dictionary <string, object>(); values.Add("type", acnt.AcntType); values.Add("acntNO", acnt.AcntNO); values.Add("custId", acnt.CustID); if (PAY_MODE.THIRD_PLATFORM == chld.PayMode) { acnt.AcntType = ACNT_TYPE.THIRD_PLATFORM; acntSql += "AND Platform=@patf "; values.Add("patf", acnt.Platform); } else if (PAY_MODE.BANK_TRANSFER == chld.PayMode) { acnt.AcntType = ACNT_TYPE.BANCK_NO; acnt.Platform = null; } Connector.Save <CustAcnt>(acnt); acntId = Connector.ScalarLong(acntSql, values); } else if (null != acnt && null != acnt.ID__PK) { acntId = (long)acnt.ID__PK; } else { acntId = null; } chld.OprtTmst = now; chld.AcntId = acntId; cnt = Connector.Save <BillingChld>(chld); string sql = "UPDATE BILLING SET FactAmount=(SELECT SUM(Amount) FROM BILLING_CHLD WHERE BillNO=@billNO) " + "WHERE BillNO=@billNO"; values = new Dictionary <string, object>(); values.Add("billNO", chld.BillNO); cnt += Connector.DbHelper.ExecuteSql(sql, values); return(cnt); }
private void btnCnfrm_Click(object sender, System.EventArgs e) { decimal?amount = null; try { amount = decimal.Parse(txtPymnt.Text.Trim()); } catch { txtPymnt.Text = string.Empty; return; } if (billGoods.Amount - billGoods.FactAmount < amount) { MainForm.Warn("入账金额超出!"); return; } int cnt = 0; BillingChld chld = new BillingChld(); chld.BillNO = billGoods.BillNO__PK; chld.PayMode = StringUtil.Obj2Str(cboxPayMode.SelectedValue); chld.Amount = amount; chld.OprtUsrId = MainForm.usr.UId__PK; CustAcnt custAcnt = new CustAcnt(); if (PAY_MODE.CASH == chld.PayMode) { custAcnt = null; } else { if (null != autxtAcntNO.SelectedObj) { custAcnt = autxtAcntNO.SelectedObj as CustAcnt; } else { if (!StringUtil.isEmpty(autxtAcntNO.Term)) { custAcnt.AcntNO = autxtAcntNO.Term.Trim(); custAcnt.CustID = custId; custAcnt.St = ST.VALID; if (PAY_MODE.BANK_TRANSFER == chld.PayMode) { custAcnt.AcntType = ACNT_TYPE.BANCK_NO; custAcnt.Platform = null; } else if (PAY_MODE.THIRD_PLATFORM == chld.PayMode) { custAcnt.AcntType = ACNT_TYPE.THIRD_PLATFORM; custAcnt.Platform = StringUtil.Obj2Str(cboxPlatform.SelectedValue); } } else { custAcnt = null; } } } if (grade == GRADE.SUPPLIER) { cnt = supplierManager.Pay(chld, custAcnt); } else if (grade == GRADE.RESELLER) { cnt = resellerManager.Rcv(chld, custAcnt); } if (cnt < 1) { MainForm.Warn("操作失败!"); } else { tabPymnt.SelectedTab = tabPChld; InitChldTable(billGoods.BillNO__PK); txtPymnt.Text = string.Empty; cboxPayMode.SelectedIndex = 0; cboxPlatform.SelectedIndex = 0; autxtAcntNO.clear(); } }