李狗蛋 69cf26105d 0
2025-03-14 10:00:24 +08:00

116 lines
4.4 KiB
C#

using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Core.Report.PlugIn;
using Kingdee.BOS.Util;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Kingdee.BOS.App.Data;
namespace Pilot.Report.Exploitation.AccountsReceivable
{
/// <summary>
/// 【表单插件】简易版-确认按钮
/// </summary>
[Description("【表单插件】简易版-确认按钮-添加数据库"), HotUpdate]
public class YourDataPlugIn: AbstractSysReportPlugIn
{
public override void BarItemClick(BarItemClickEventArgs e)
{
base.BarItemClick(e);
// 判断 应收对账单【简易版】确认生成单据按钮
if (e.BarItemKey == "Test_Button_2")
{
#region
var reportModel = this.SysReportModel;
//单据头
var rptTitles = reportModel.ReportTitles;
string fClient = rptTitles.FirstOrDefault(a => a.TitleKey == "FClient").TitleValue.ToString();
string fDate = rptTitles.FirstOrDefault(a => a.TitleKey == "FDate").TitleValue.ToString();
int creatorId = Convert.ToInt32(this.Context.UserId);
DateTime fDate2 = DateTime.Now;
//单据体
var list = reportModel.DataSource.Rows;
string sqlKH = string.Format(@"/*dialect*/Select FCUSTID From T_BD_CUSTOMER_L Where FNAME = '{0}'", fClient);
var sqlKHList = DBUtils.ExecuteDynamicObject(Context, sqlKH);
int fClientId = Convert.ToInt32(sqlKHList[0]["FCUSTID"]);
string sqlTest = string.Format(@"/*dialect*/Select * From MBBA_t_Cust100006 Where FClient = '{0}' AND Month(FDATE) = Month('{1}')", fClientId, fDate);
var sqlTestList = DBUtils.ExecuteDynamicObject(Context, sqlTest);
if (sqlTestList.Count() == 0)
{
decimal YFHpriceSum = 0;
for (var i = 0; i < list.Count; i++)
{
if (list[i]["Number"].ToString() == "合计")
{
YFHpriceSum = Math.Round(Convert.ToDecimal(list[i]["ShippedDebt"]), 2);
}
}
string sqlSelect = string.Format(@"/*dialect*/Select top 1 FId,FBillNo From MBBA_t_Cust100006 Order By FID DESC");
var sqlSelectList = DBUtils.ExecuteDynamicObject(Context, sqlSelect);
int FId = 1;
string FBillNo = "YSDZ0001";
string FBillNoSplit = "";
if (sqlSelectList.Count > 0)
{
FId = sqlSelectList[0]["FId"].Long2Int();
FId = FId + 1;
FBillNoSplit = sqlSelectList[0]["FBillNo"].ToString();
int n = Convert.ToInt32(FBillNoSplit.Split('Z')[1]);
if (n < 1000)
{
FBillNo = "YSDZ" + "0" + (n + 1);
}
else if (n < 100)
{
FBillNo = "YSDZ" + "00" + (n + 1);
}
else if (n < 10)
{
FBillNo = "YSDZ" + "000" + (n + 1);
}
}
string sql = string.Format(@"Insert into MBBA_t_Cust100006 Values('{5}','{6}','A','{3}','{4}','',null,'{0}','{1}','{2}')",
fClientId, fDate, YFHpriceSum, creatorId, fDate2, FId, FBillNo);
int num = DBUtils.Execute(Context, sql);
if (num > 0)
{
this.View.ShowMessage("应收账款对账单生成完毕,已存储数据库!");
}
else
{
this.View.ShowErrMessage("数据添加失败!");
}
}
else
{
this.View.ShowErrMessage("数据添加失败,已存在相同客户相同期间的对账单!");
}
#endregion
}
}
}
}