using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Web;
|
using System.Web.UI;
|
using System.Web.UI.WebControls;
|
using CY.BLL.OA;
|
using System.Data;
|
using System.Data.SqlClient;
|
using CY.Infrastructure.Common;
|
using CY.Model;
|
using CY.BLL.Sys;
|
using CY.BLL;
|
using System.Transactions;
|
|
namespace CY.WebForm.Pages.financial
|
{
|
//吴辉
|
//采购付款选择账户
|
public partial class CaigouPayEdit : BasePage
|
{
|
|
OA_WarehouseInfoBLL _OA_WarehouseInfoBLL = null;
|
OA_CargoSpaceBLL _OA_CargoSpaceBLL = null;
|
OA_OutOfStorageBLL bll_OA_OutOfStorageBLL = null;
|
OA_SubjectSetBLL bll_OA_SubjectSetBLL = null;
|
Sys_DictionaryBLL bll_Sys_DictionaryBLL = null;
|
OA_ProcurementBLL bll_OA_ProcurementBLL = null;
|
OA_FirmAccountBLL bll_OA_FirmAccountBLL = null;
|
OA_SuppliersBLL bll_OA_SuppliersBLL = null;
|
OA_FukuanshenqingBLL _fukuanshenqingBLL = null;
|
decimal? AllMoney = 0;
|
decimal? ReceiveMoney = 0;
|
//初始化
|
public CaigouPayEdit()
|
{
|
bll_OA_OutOfStorageBLL = new OA_OutOfStorageBLL();
|
_OA_WarehouseInfoBLL = new OA_WarehouseInfoBLL();
|
_OA_CargoSpaceBLL = new OA_CargoSpaceBLL();
|
bll_OA_SubjectSetBLL = new OA_SubjectSetBLL();
|
bll_Sys_DictionaryBLL = new Sys_DictionaryBLL();
|
bll_OA_ProcurementBLL = new OA_ProcurementBLL();
|
bll_OA_FirmAccountBLL = new OA_FirmAccountBLL();
|
bll_OA_SuppliersBLL = new OA_SuppliersBLL();
|
_fukuanshenqingBLL = new OA_FukuanshenqingBLL();
|
}
|
|
//页面加载
|
protected void Page_Load(object sender, EventArgs e)
|
{
|
if (!IsPostBack)
|
{
|
InitialData();
|
}
|
|
}
|
|
//加载数据
|
protected void InitialData()
|
{
|
//科目名称
|
this.selSubject.DataSource = bll_OA_SubjectSetBLL.getAllSubject(CurrentUser.MemberId, "贷");
|
this.selSubject.DataBind();
|
this.selSubject.Items.Insert(0, new ListItem("请选择", ""));
|
|
//账户类型
|
this.selAcoountTypeOut.DataSource = bll_Sys_DictionaryBLL.GetDataByType("账户类型");
|
this.selAcoountTypeOut.DataBind();
|
|
var id = Request["id"];
|
var fukuanshenqing = _fukuanshenqingBLL.GetModelByKeyid(id.ToInt32().Value);
|
if (fukuanshenqing != null)
|
{
|
this.Keyid.Value = id;
|
this.txtYouwufapiao.Value = fukuanshenqing.YouwufapiaoName;
|
string[] Keys = fukuanshenqing.DindanId.Trim(',').Split(',');
|
foreach (var item in Keys)
|
{
|
if (!string.IsNullOrEmpty(item))
|
{
|
OA_Procurement m_OA_Procurement = bll_OA_ProcurementBLL.SelectSingleModel(item);
|
if (m_OA_Procurement != null)
|
{
|
AllMoney += m_OA_Procurement.AllMoney;
|
ReceiveMoney += (m_OA_Procurement.AllMoney - m_OA_Procurement.ReceiveMoney);
|
}
|
}
|
}
|
this.spanAllMoney.InnerHtml = "¥" + (AllMoney ?? 0).ToString("0.00");
|
this.spanReceiveMoney.InnerHtml = "¥" + ReceiveMoney.Value.ToString("0.00");
|
this.spanCountRe.InnerHtml = Keys.Count().ToString2() + " 单";
|
|
this.txtReciveMoney.Enabled = false;
|
this.txtReciveMoney.Text = (ReceiveMoney ?? 0).ToString("0.00");
|
this.txtReciveMoney.Attributes.Add("max", (ReceiveMoney ?? 0).ToString("0.00"));
|
}
|
|
|
|
|
|
}
|
|
//提交事件
|
protected void btn_Submit_form(object sender, EventArgs e)
|
{
|
try
|
{
|
if (string.IsNullOrEmpty(Request["selAccountNameOut"]))
|
{
|
JavaScript.MessageBox("请选择账户", this);
|
return;
|
}
|
ReceiveMoney = this.txtReciveMoney.Text.ToDecimal2();
|
int? SubjectId = this.selSubject.Value.ToInt32();
|
|
decimal? money = ReceiveMoney;
|
if (Request["amount"].ToString2() == "one")
|
{
|
money = this.txtReciveMoney.Text.ToDecimal2();
|
}
|
|
int? AccountIdOut = Request["selAccountNameOut"].ToInt32();
|
|
if (SubjectId == null || money == null || AccountIdOut == null)
|
JavaScript.MessageBox("操作失败", this);
|
else
|
{
|
DateTime nowTime = DateTime.Now;
|
OA_SubjectSet m_OA_SubjectSet = bll_OA_SubjectSetBLL.getSingleSubject(SubjectId);
|
OA_FirmAccount m_OA_FirmAccountOut = bll_OA_FirmAccountBLL.getSingleSubject(AccountIdOut);
|
|
if (m_OA_FirmAccountOut.Balance < money)
|
{
|
JavaScript.MessageBox("账户余额不足", this);
|
}
|
else
|
{
|
var id = this.Keyid.Value.ToInt32().Value;
|
var fukuanshenqing = _fukuanshenqingBLL.GetModelByKeyid(id);
|
var Youwufapiao = Request["rdoReceiveQuannbu"];
|
if (fukuanshenqing.Youwufapiao == 2 && Youwufapiao == "1")
|
{
|
JavaScript.MessageBox("已经保存为有发票,无法修改为无发票!", this);
|
return;
|
}
|
string[] Keys = fukuanshenqing.DindanId.Trim(',').Split(',');
|
var ssss = false;
|
using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required,
|
new TransactionOptions
|
{
|
IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted,
|
Timeout = TransactionManager.MaximumTimeout
|
}
|
))
|
{
|
try
|
{
|
var yishoumoney = fukuanshenqing.Yishoumoney.HasValue ? fukuanshenqing.Yishoumoney.Value : 0;
|
if (money >= (fukuanshenqing.Fukuanmoney - fukuanshenqing.Yishoumoney))
|
{
|
fukuanshenqing.FukuanStatus = 2;
|
}
|
fukuanshenqing.Yishoumoney = yishoumoney + money;
|
fukuanshenqing.Updater = CurrentUser.ShortName;
|
fukuanshenqing.LastUpdateTime = DateTime.Now;
|
fukuanshenqing.Youwufapiao = Youwufapiao.ToInt32();
|
ssss = _fukuanshenqingBLL.UpdateModel(fukuanshenqing);
|
if (this.txtReciveMoney.Text.ToDecimal2() > 0)
|
{
|
List<OA_Procurement> m_OA_ProcurementList = new List<OA_Procurement>();
|
List<OA_FirmAccountRecord> m_OA_FirmAccountRecordList = new List<OA_FirmAccountRecord>();
|
m_OA_FirmAccountOut.Balance -= money;
|
m_OA_FirmAccountOut.AllExpenses += money;
|
foreach (var item in Keys)
|
{
|
OA_Procurement m_OA_Procurement = bll_OA_ProcurementBLL.SelectSingleModel(item);
|
if (m_OA_Procurement != null)
|
{
|
if (Request["amount"].ToString2() == "one")
|
m_OA_Procurement.ReceiveMoney += money;
|
else
|
m_OA_Procurement.ReceiveMoney = m_OA_Procurement.AllMoney;
|
|
if (m_OA_Procurement.ReceiveMoney == m_OA_Procurement.AllMoney)
|
m_OA_Procurement.ClearingStatusId = bll_Sys_DictionaryBLL.GetKeyIdByKeyid(1, "结账状态");
|
|
m_OA_Procurement.Operator = CurrentUser.ShortName;
|
m_OA_Procurement.LastUpdateTime = DateTime.Now;
|
|
|
OA_Suppliers m_OA_Suppliers = bll_OA_SuppliersBLL.getSingleSupplier(m_OA_Procurement.SuppliersId.ToString2());
|
OA_FirmAccountRecord m_OA_FirmAccountRecordOut = new OA_FirmAccountRecord();
|
m_OA_FirmAccountRecordOut.AccountId = m_OA_FirmAccountOut.Keyid;
|
m_OA_FirmAccountRecordOut.RecordTypeId = 2;//支出
|
|
if (Request["amount"].ToString2() == "one")
|
m_OA_FirmAccountRecordOut.Money = money;
|
else
|
m_OA_FirmAccountRecordOut.Money = (m_OA_Procurement.AllMoney - m_OA_Procurement.ReceiveMoney);
|
|
m_OA_FirmAccountRecordOut.SubjectId = m_OA_SubjectSet.Keyid;
|
m_OA_FirmAccountRecordOut.OperationalMatters = "采购付款";
|
m_OA_FirmAccountRecordOut.PaymentUnit = m_OA_Suppliers.Name;
|
m_OA_FirmAccountRecordOut.LastUpdateTime = nowTime;
|
m_OA_FirmAccountRecordOut.Operator = CurrentUser.ShortName.ToString2();
|
m_OA_FirmAccountRecordOut.Remark = "";
|
m_OA_FirmAccountRecordOut.ResidualAmount = m_OA_FirmAccountOut.Balance;
|
m_OA_FirmAccountRecordList.Add(m_OA_FirmAccountRecordOut);
|
m_OA_ProcurementList.Add(m_OA_Procurement);
|
}
|
}
|
|
|
if (m_OA_ProcurementList.Count > 0)
|
{
|
ssss = bll_OA_FirmAccountBLL.PurchasePayList(m_OA_FirmAccountRecordList, m_OA_ProcurementList, m_OA_FirmAccountOut);
|
|
}
|
}
|
|
|
|
if (ssss)
|
{
|
|
scope.Complete();
|
JavaScript.MessageBox("付款成功", this, "top.frmright.ReLoad();top.Dialog.close();");
|
}
|
else
|
JavaScript.MessageBox("添加失败", this);
|
}
|
catch (Exception ex)
|
{
|
PAGEHandleException(ex);
|
JavaScript.MessageBox("添加失败", this);
|
}
|
finally
|
{
|
scope.Dispose();
|
}
|
|
}
|
|
|
|
|
}
|
}
|
|
}
|
catch (Exception ex)
|
{
|
PAGEHandleException(ex);
|
JavaScript.MessageBox("操作失败", this);
|
}
|
}
|
|
}
|
}
|