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<int>();
|
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);
|
}
|
}
|
}
|
}
|