118 lines
4.4 KiB
C#
118 lines
4.4 KiB
C#
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;
|
||
}
|
||
}
|
||
|
||
}
|
||
}
|
||
}
|
||
}
|