118 lines
4.4 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using FarPoint.Excel;
using Kingdee.BOS;
using Kingdee.BOS.App.Data;
using Kingdee.BOS.Core.Bill.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.ServiceHelper.ManagementCenter;
using Kingdee.BOS.Util;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static IronPython.Modules._ast;
using static Kingdee.K3.SCM.App.Core.Validation.InvAccountValidation.InvAccountConsumeSumBillValidator;
namespace GZ_LTHPilot_ORDER.XMYSLRB
{
[Description("表单插件:当项目预算利润表完成加载后,自动新增成本明细行"), HotUpdate]
public class OnLoadLR : AbstractBillPlugIn
{
public override void OnLoad(EventArgs e)
{
base.OnLoad(e);
//获取单据编号,若单据编号为空则执行新增行并赋值操作。
var FBILLNO = this.View.Model.GetValue("FBillNo");
if (FBILLNO != null)
{
return;
}
string sql = string.Format(@"/*dialect*/SELECT
COUNT(B.FDATAVALUE) AS 'HJ'
FROM
T_BAS_ASSISTANTDATAENTRY A
INNER JOIN T_BAS_ASSISTANTDATAENTRY_L B ON A.FENTRYID = B.FENTRYID
WHERE
A.FID = '682c386fbcca09'
AND A.FDocumentStatus = 'C'");
var sqlDS = DBUtils.ExecuteDynamicObject(this.Context, sql);
var Count = 0;
if (sqlDS.Count != 0)
{
Count = Convert.ToInt32(sqlDS[0]["HJ"]);
}
for (int i = 0; i < Count; i++)
{
this.View.Model.CreateNewEntryRow("F_VRYF_Entity_co6");
}
sql = string.Format(@"SELECT B.FENTRYID,B.FDATAVALUE FROM T_BAS_ASSISTANTDATAENTRY A
INNER JOIN T_BAS_ASSISTANTDATAENTRY_L B ON A.FENTRYID = B.FENTRYID
WHERE FID = '682c386fbcca09'AND FDocumentStatus = 'C'");
sqlDS = DBUtils.ExecuteDynamicObject(this.Context, sql);
if (sqlDS.Count == 0)
{
return;
}
var SGCB_STR = this.View.Model.GetValue("F_SGCB")?.ToString();
decimal SGCB;
var SGCB_STRIsNumber = decimal.TryParse(SGCB_STR, out SGCB);
for (int i = 0; i < Count; i++)
{
this.View.Model.SetItemValueByID("F_VRYF_Assistant_qtr", Convert.ToString(sqlDS[i]["FENTRYID"]), i);
// 实施安装费,将税率设置为6将单头上的施工成本带出
if (Convert.ToString(sqlDS[i]["FENTRYID"]) == "682e83afbd70b6")
{
this.View.Model.SetValue("F_VRYF_Decimal_qtr", 6, i);
if (SGCB_STRIsNumber)
{
this.View.Model.SetValue("F_VRYF_Amount_xk9", SGCB, i);
}
}
// 外包费将税率设置为6
else if (Convert.ToString(sqlDS[i]["FENTRYID"]) == "682e83e4bd70cb")
{
this.View.Model.SetValue("F_VRYF_Decimal_qtr", 6, i);
}
}
}
public override void AfterBindData(EventArgs e)
{
base.AfterBindData(e);
var sql = string.Format(@"SELECT B.FENTRYID,B.FDATAVALUE FROM T_BAS_ASSISTANTDATAENTRY A
INNER JOIN T_BAS_ASSISTANTDATAENTRY_L B ON A.FENTRYID = B.FENTRYID
WHERE FID = '682c386fbcca09'AND FDocumentStatus = 'C'");
var sqlDS = DBUtils.ExecuteDynamicObject(this.Context, sql);
if (sqlDS.Count != 0)
{
for (int i = 0; i < sqlDS.Count; i++)
{
if (Convert.ToString(sqlDS[i]["FENTRYID"]) != "682e83afbd70b6")
{
this.View.GetFieldEditor("F_VRYF_Decimal_qtr", i).Enabled = false;
}
}
for (int i = 0; i < sqlDS.Count; i++)
{
if (Convert.ToString(sqlDS[i]["FENTRYID"]) == "682e83afbd70b6")
{
this.View.GetFieldEditor("F_VRYF_Decimal_qtr", i).Enabled = true;
}
else if (Convert.ToString(sqlDS[i]["FENTRYID"]) == "682e83e4bd70cb")
{
this.View.GetFieldEditor("F_VRYF_Decimal_qtr", i).Enabled = true;
}
}
}
}
}
}