using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using CY.BLL; using CY.BLL.Sys; using CY.Infrastructure.Query; using CY.Infrastructure.Common; using CY.Model; using CY.BLL.OA; using System.Transactions; namespace CY.WebForm.Pages.financial { //吴辉 //客户预付款存入 public partial class DepositsCustomershouruqueren : BasePage { OA_CorporateClientsBLL bll_OA_CorporateClientsBLL = null; Sys_DictionaryBLL _Sys_DictionaryBLL = null; OA_AdvanceMoneyRecordBLL bll_OA_AdvanceMoneyRecordBLL = null; OA_SubjectSetBLL _OA_SubjectSetBLL = null; OA_FirmAccountBLL _OA_FirmAccountBLL = null; OA_FirmAccountRecordBLL _OA_FirmAccountRecordBLL = null; OA_KaipiaoshenqingBLL oA_KaipiaoshenqingBLL = null; OA_KaipiaoJineQuerenBLL oA_KaipiaoJineQuerenBLL = null; OA_AdvanceMoneyRecordBLL oA_AdvanceMoneyRecordBLL = null; //初始化 public DepositsCustomershouruqueren() { _Sys_DictionaryBLL = new Sys_DictionaryBLL(); bll_OA_CorporateClientsBLL = new OA_CorporateClientsBLL(); bll_OA_AdvanceMoneyRecordBLL = new OA_AdvanceMoneyRecordBLL(); _Sys_DictionaryBLL = new Sys_DictionaryBLL(); _OA_FirmAccountBLL = new OA_FirmAccountBLL(); _OA_FirmAccountRecordBLL = new OA_FirmAccountRecordBLL(); _OA_SubjectSetBLL = new OA_SubjectSetBLL(); oA_KaipiaoshenqingBLL = new OA_KaipiaoshenqingBLL(); oA_KaipiaoJineQuerenBLL = new OA_KaipiaoJineQuerenBLL(); oA_AdvanceMoneyRecordBLL = new OA_AdvanceMoneyRecordBLL(); } //页面加载 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { BindList(); } } //绑定数据 private void BindList() { try { //科目名称 //selSubject.DataSource = _OA_SubjectSetBLL.getAllSubject(CurrentUser.MemberId, "借"); //selSubject.DataBind(); //selSubject.Items.Insert(0, new ListItem("请选择", "")); var shenqid = Request["Keyid"].ToGuid2(); var kaipiaoshenqing = oA_KaipiaoshenqingBLL.GetModelByKeyid(shenqid); //账户信息 OA_CorporateClients m_OA_CorporateClients = bll_OA_CorporateClientsBLL.GetModel(kaipiaoshenqing.BuyerId); this.spanCustomName.InnerText = m_OA_CorporateClients.CompanyName; this.spanCustomMoney.InnerText = "¥ " + m_OA_CorporateClients.Prepayments.ToDecimal2Yen(); this.spanFapiaohao.InnerText = kaipiaoshenqing.Fapiaohao; this.spankpmoney.InnerText = "¥ " + kaipiaoshenqing.kpmoney.ToDecimal2Yen(); this.spanKehumoney.InnerText = "¥ " + kaipiaoshenqing.Kehumoney.ToDecimal2Yen(); var kpmoney = kaipiaoshenqing.kpmoney.HasValue ? kaipiaoshenqing.kpmoney.Value:0; var Kehumoney = kaipiaoshenqing.Kehumoney.HasValue ? kaipiaoshenqing.Kehumoney.Value : 0; this.txtOperatMoney.Value = (kpmoney - Kehumoney).ToString(); var oA_KaipiaoJineQuerens = oA_KaipiaoJineQuerenBLL.GetModelBybuyerid(kaipiaoshenqing.BuyerId).Where(x => x.Querenstatus == 0); rptData.DataSource = oA_KaipiaoJineQuerens; rptData.DataBind(); } catch (Exception ex) { PAGEHandleException(ex); } } //分页事件 protected void AspNetPager1_PageChanged(object src, EventArgs e) { BindList(); } //提交表单 protected void btn_Submit_Deposits(object sender, EventArgs e) { try { var shenqid = Request["Keyid"].ToGuid2(); var ids = this.ids.Value; var kaipiaoshenqing = oA_KaipiaoshenqingBLL.GetModelByKeyid(shenqid); decimal? money = this.txtOperatMoney.Value.ToDecimal2(); if ( money == null) JavaScript.MessageBox("操作失败", this); else { var kpmoney = kaipiaoshenqing.kpmoney.HasValue ? kaipiaoshenqing.kpmoney.Value : 0; var Kehumoney = kaipiaoshenqing.Kehumoney.HasValue ? kaipiaoshenqing.Kehumoney.Value : 0; if (money<=0) { JavaScript.MessageBox("请填写存入金额", this); return; } if (money > (kpmoney -Kehumoney)) { JavaScript.MessageBox("本次存入金额大于客户未付款", this); return; } var idssss = ids.Trim(',').Split(','); var idsssssint = new List(); foreach (var iddd in idssss) { idsssssint.Add(int.Parse(iddd)); } var oA_KaipiaoJineQuerens = oA_KaipiaoJineQuerenBLL.GetModelBybuyerid(kaipiaoshenqing.BuyerId).Where(x => x.Querenstatus == 0 && idsssssint.Contains(x.Keyid)); var WeiHexiaomoney = oA_KaipiaoJineQuerens.Sum(x => x.WeiHexiaomoney); if (WeiHexiaomoney < money) { JavaScript.MessageBox("本次收款金额大于未确认收入!", this); return; } bool isWin = false; using (var scope = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted, Timeout = TransactionManager.MaximumTimeout } )) { try { //更新确认收入 decimal weiReceiveMoney = money.Value; foreach (var a_KaipiaoJineQueren in oA_KaipiaoJineQuerens) { if (a_KaipiaoJineQueren.WeiHexiaomoney <= weiReceiveMoney) { var a_KaipiaoJineQuerendetail = new OA_KaipiaoJineQuerendetail(); a_KaipiaoJineQuerendetail.KaipiaoJineQuerenId = a_KaipiaoJineQueren.Keyid; a_KaipiaoJineQuerendetail.KaipiaoshenqingId = shenqid; a_KaipiaoJineQuerendetail.Hexiaomoney = a_KaipiaoJineQueren.WeiHexiaomoney; a_KaipiaoJineQuerendetail.Creater = CurrentUser.ShortName; a_KaipiaoJineQuerendetail.CreateTime = DateTime.Now; a_KaipiaoJineQuerendetail.Updater = CurrentUser.ShortName; a_KaipiaoJineQuerendetail.LastUpdateTime = a_KaipiaoJineQuerendetail.CreateTime; isWin = oA_KaipiaoJineQuerenBLL.InserModeldetail(a_KaipiaoJineQuerendetail); weiReceiveMoney = money.Value - a_KaipiaoJineQueren.WeiHexiaomoney.Value; a_KaipiaoJineQueren.Hexiaomoney = a_KaipiaoJineQueren.Fukuanmoney; a_KaipiaoJineQueren.Querenstatus = 1; isWin = oA_KaipiaoJineQuerenBLL.UpdateModel(a_KaipiaoJineQueren); } else { var a_KaipiaoJineQuerendetail = new OA_KaipiaoJineQuerendetail(); a_KaipiaoJineQuerendetail.KaipiaoJineQuerenId = a_KaipiaoJineQueren.Keyid; a_KaipiaoJineQuerendetail.KaipiaoshenqingId = shenqid; a_KaipiaoJineQuerendetail.Hexiaomoney = weiReceiveMoney; a_KaipiaoJineQuerendetail.Creater = CurrentUser.ShortName; a_KaipiaoJineQuerendetail.CreateTime = DateTime.Now; a_KaipiaoJineQuerendetail.Updater = CurrentUser.ShortName; a_KaipiaoJineQuerendetail.LastUpdateTime = a_KaipiaoJineQuerendetail.CreateTime; isWin = oA_KaipiaoJineQuerenBLL.InserModeldetail(a_KaipiaoJineQuerendetail); a_KaipiaoJineQueren.Hexiaomoney = a_KaipiaoJineQueren.Hexiaomoney.Value + weiReceiveMoney; isWin = oA_KaipiaoJineQuerenBLL.UpdateModel(a_KaipiaoJineQueren); weiReceiveMoney = 0; } if (weiReceiveMoney <= 0) { break; } } OA_CorporateClients m_OA_CorporateClients = bll_OA_CorporateClientsBLL.GetModel(kaipiaoshenqing.BuyerId); m_OA_CorporateClients.Prepayments += money; m_OA_CorporateClients.Operator = CurrentUser.ShortName; m_OA_CorporateClients.LastUpdateTime = DateTime.Now; ; OA_AdvanceMoneyRecord m_OA_AdvanceMoneyRecord = new OA_AdvanceMoneyRecord(); m_OA_AdvanceMoneyRecord.CustomerId = m_OA_CorporateClients.Keyid; m_OA_AdvanceMoneyRecord.OperatTypeId = _Sys_DictionaryBLL.GetNameByMeanValue(1, "客户预付款明细类型"); m_OA_AdvanceMoneyRecord.OperatMoney = money; m_OA_AdvanceMoneyRecord.SubjectName = money > 0 ? "预付款收入" : "预付款收入(负)"; m_OA_AdvanceMoneyRecord.AccountType = "收入确认"; m_OA_AdvanceMoneyRecord.AccountName = "收入确认"; m_OA_AdvanceMoneyRecord.LastUpdateTime = DateTime.Now; m_OA_AdvanceMoneyRecord.Operator = CurrentUser.ShortName.ToString2(); m_OA_AdvanceMoneyRecord.Remark = ""; kaipiaoshenqing.Kehumoney = Kehumoney + money.Value; isWin = oA_KaipiaoshenqingBLL.UpdateModel(kaipiaoshenqing); isWin = bll_OA_CorporateClientsBLL.UpdateModel(m_OA_CorporateClients); isWin = oA_AdvanceMoneyRecordBLL.InsertModel(m_OA_AdvanceMoneyRecord); if (isWin) { BindList(); JavaScript.MessageBox("存入成功", this, true, true); } else JavaScript.MessageBox("操作失败", this); scope.Complete(); } catch (Exception ex) { // 回滚事务 } finally { // 释放资源 scope.Dispose(); } } } } catch (Exception ex) { PAGEHandleException(ex); JavaScript.MessageBox("操作失败", this); } } protected void btn_Query_Deposits(object sender, EventArgs e) { try { BindList(); } catch (Exception ex) { PAGEHandleException(ex); JavaScript.MessageBox("操作失败", this); } } } }