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; } } } } } }