首页
关于
Search
1
批量创建料品示例代码
9 阅读
2
应付余额报表
8 阅读
3
退货生成应收
6 阅读
4
在Linux下安装Nginx并配置反向代理
5 阅读
5
在 CentOS 7 下安装 Docker 的完整指南
4 阅读
U9
Linux
Java
Docker
登录
Search
标签搜索
sql
生单
nginx
Typecho
累计撰写
16
篇文章
累计收到
0
条评论
首页
栏目
U9
Linux
Java
Docker
页面
关于
搜索到
16
篇与
的结果
2025-09-22
修正异步程序ID
update UBF_Job_Request set BPName=(select Local_ID from UBF_MD_Class where Name='BP名') where ID=(select ID from UBF_Job_Request where code='请求管理编码')
2025年09月22日
1 阅读
0 评论
0 点赞
2025-08-15
U9查询值集值和枚举值sql
值集值查询SELECT Base_DefineValue_Trl.Name FROM Base_DefineValue --值集值 LEFT JOIN Base_DefineValue_Trl ON Base_DefineValue.ID = Base_DefineValue_Trl.ID AND Base_DefineValue_Trl.SysMLFlag = 'zh-CN' --值集值Trl LEFT JOIN Base_ValueSetDef ON Base_ValueSetDef.ID = Base_DefineValue.ValueSetDef --值集 WHERE Base_ValueSetDef.Code = 'zfbz' AND Base_DefineValue.Code = 'N'枚举值查询SELECT UBF_Sys_ExtEnumValue.Code,* FROM UBF_Sys_ExtEnumType LEFT JOIN UBF_Sys_ExtEnumValue ON UBF_Sys_ExtEnumValue.ExtEnumType = UBF_Sys_ExtEnumType.ID LEFT JOIN UBF_Sys_ExtEnumValue_Trl ON UBF_Sys_ExtEnumValue_Trl.ID = UBF_Sys_ExtEnumValue.ID WHERE UBF_Sys_ExtEnumType.Code = 'QR.ZHXY.CGHTBE.MonthEnum'
2025年08月15日
0 阅读
0 评论
0 点赞
2025-07-03
U9页面字段联动代码
U9页面字段联动代码注意事项所有的代码都需要写在WebPart目录中*.Extend.cs注册CallBack方法 public void AfterOnLoad() { CallBack_UomTab_硬件成本不含税(); CallBack_UomTab_小计(); CallBack_UomTab_合同额And占比(); CallBack_UomTab_费用And毛利(); CallBack_UomTab_总收入And总成本(); CallBack_UomTab_合同计算(); }实现注册方法// private void CallBack_UomTab_硬件成本不含税() { // 所有控件集合,按顺序对应每个 AssociationControl IUFFldNumberControl[] sourceControls = new IUFFldNumberControl[] { PartsCostOutsource65, // 硬件成本外购(含税) PartsCostOwnProduction53, // 硬件成本自产(含税) InstallMaterialCost76, // 安装材料成本(含税) InstallArtificialCost100, // 安装人工成本(含税) }; IUFFldReference[] sourceControls1 = new IUFFldReference[] { PartsCostOutsourceTax43, // 硬件成本外购(含税)税率 PartsCostOwnProductionTax68, // 硬件成本自产(含税)税率 InstallMaterialCostTax40, // 安装材料成本(含税)税率 InstallArtificialCostTax82, // 安装人工成本(含税)税率 }; ClientCallBackFrm cF = new ClientCallBackFrm(); cF.DoCustomerAction += new ClientCallBackFrm.ActionCustomer(CallBack_UomTab_硬件成本不含税); foreach (var ctrl in sourceControls) { // 注册控件到参数 cF.ParameterControls.Add(ctrl); // 创建并配置关联控制器 var assoc = new AssociationControl { SourceServerControl = ctrl, SourceControl = { EventName = "OnValueChanged" } }; cF.Add(assoc); } foreach (var ctrl in sourceControls1) { // 注册控件到参数 cF.ParameterControls.Add(ctrl); // 创建并配置关联控制器 var assoc = new AssociationControl { SourceServerControl = ctrl, SourceControl = { EventName = "OnValueChanged" } }; cF.Add(assoc); } } /// <summary> /// 回调函数:【含税金额+税率】,自动计算并设置【不含税金额】 /// </summary> object CallBack_UomTab_硬件成本不含税(CustomerActionEventArgs args) { // 硬件成本 - 外购部分 ComputeNoTaxValue(args, this.PartsCostOutsource65, this.PartsCostOutsourceTax43, this.PartsCostOutsourceNo55); // 硬件成本 - 自产部分 ComputeNoTaxValue(args, this.PartsCostOwnProduction53, this.PartsCostOwnProductionTax68, this.PartsCostOwnProductionNo85); // 安装材料成本 ComputeNoTaxValue(args, this.InstallMaterialCost76, this.InstallMaterialCostTax40, this.InstallMaterialCostNo37); // 安装人工成本 ComputeNoTaxValue(args, this.InstallArtificialCost100, this.InstallArtificialCostTax82, this.InstallArtificialCostNo76); return args; } private void CallBack_UomTab_合同计算() { // 所有控件集合,按顺序对应每个 AssociationControl IUFFldNumberControl[] sourceControls = new IUFFldNumberControl[] { ContractMoneyOne70, //合同金额1 ContractMoneyTwo52, //合同金额2 ContractMoneyThree67, //合同金额3 ContractMoneyFour44, //合同金额4 }; IUFFldReference[] sourceControls1 = new IUFFldReference[] { ContractMoneyOneTax52, //合同金额1_税率 ContractMoneyTwoTax22, //合同金额2_税率 ContractMoneyThreeTax83, //合同金额3_税率 ContractMoneyFourTax122, //合同金额4_税率 }; ClientCallBackFrm cF = new ClientCallBackFrm(); cF.DoCustomerAction += new ClientCallBackFrm.ActionCustomer(CallBack_UomTab_合同计算); foreach (var ctrl in sourceControls) { // 注册控件到参数 cF.ParameterControls.Add(ctrl); // 创建并配置关联控制器 var assoc = new AssociationControl { SourceServerControl = ctrl, SourceControl = { EventName = "OnValueChanged" } }; cF.Add(assoc); } foreach (var ctrl in sourceControls1) { // 注册控件到参数 cF.ParameterControls.Add(ctrl); // 创建并配置关联控制器 var assoc = new AssociationControl { SourceServerControl = ctrl, SourceControl = { EventName = "OnValueChanged" } }; cF.Add(assoc); } } object CallBack_UomTab_合同计算(CustomerActionEventArgs args) { //合同金额1 decimal ContractMoneyOne70 = decimal.Parse(args.ArgsHash[this.ContractMoneyOne70.ClientID].ToString()); //合同金额1_税率 long ContractMoneyOneTax52 = long.Parse(args.ArgsHash[this.ContractMoneyOneTax52.ClientID].ToString()); if (ContractMoneyOneTax52 > 0) { // 税率 string queryTax = QueryTax(ContractMoneyOneTax52); args.ArgsResult.Add(new UFWebClientNumberAdapter(this.ProjectIncomeOne7).ClientInstance + ".set_Value('" + ContractMoneyOne70 / (1 + decimal.Parse(queryTax)) + "')"); } //合同金额2 decimal ContractMoneyTwo52 = decimal.Parse(args.ArgsHash[this.ContractMoneyTwo52.ClientID].ToString()); //合同金额2_税率 long ContractMoneyTwoTax22 = long.Parse(args.ArgsHash[this.ContractMoneyTwoTax22.ClientID].ToString()); if (ContractMoneyTwoTax22 > 0) { // 税率 string queryTax = QueryTax(ContractMoneyTwoTax22); args.ArgsResult.Add(new UFWebClientNumberAdapter(this.ProjectIncomeTwo19).ClientInstance + ".set_Value('" + ContractMoneyTwo52 / (1 + decimal.Parse(queryTax)) + "')"); } //合同金额3 decimal ContractMoneyThree67 = decimal.Parse(args.ArgsHash[this.ContractMoneyThree67.ClientID].ToString()); //合同金额3_税率 long ContractMoneyThreeTax83 = long.Parse(args.ArgsHash[this.ContractMoneyThreeTax83.ClientID].ToString()); if (ContractMoneyThreeTax83 > 0) { // 税率 string queryTax = QueryTax(ContractMoneyThreeTax83); args.ArgsResult.Add(new UFWebClientNumberAdapter(this.ProjectIncomeThree59).ClientInstance + ".set_Value('" + ContractMoneyThree67 / (1 + decimal.Parse(queryTax)) + "')"); } //合同金额1 decimal ContractMoneyFour44 = decimal.Parse(args.ArgsHash[this.ContractMoneyFour44.ClientID].ToString()); //合同金额1_税率 long ContractMoneyFourTax122 = long.Parse(args.ArgsHash[this.ContractMoneyFourTax122.ClientID].ToString()); if (ContractMoneyFourTax122 > 0) { // 税率 string queryTax = QueryTax(ContractMoneyFourTax122); args.ArgsResult.Add(new UFWebClientNumberAdapter(this.ProjectIncomeFour42).ClientInstance + ".set_Value('" + ContractMoneyFour44 / (1 + decimal.Parse(queryTax)) + "')"); } return args; } private void CallBack_UomTab_小计() { IUFFldNumberControl[] sourceControls = new IUFFldNumberControl[] { PartsCostOutsource65, // 硬件成本外购(含税) PartsCostOwnProduction53, // 硬件成本自产(含税) PartsCostOutsourceNo55, // 硬件成本外购(不含税) PartsCostOwnProductionNo85, // 硬件成本自产(不含税) InstallMaterialCost76, // 安装材料成本(含税) InstallMaterialCostNo37, // 安装材料成本(不含税) InstallArtificialCost100, // 安装人工(含税) InstallArtificialCostNo76, // 安装人工(不含税) ArtificialCostSO121, // 人工成本-销售 ArtificialCostMO46, //人工成本-生产 ArtificialCostAssembly20, //人工成本-装配 ArtificialCostProject44, //人工成本-工程 ArtificialCostDesign127, //人工成本-设计 ArtificialCostPurchase44, //人工成本-采购 ArtificialCostOperations46, //人工成本-运营 ArtificialCostOther91, //人工成本-其他 TravelCostSO29, // 差旅费-销售 TravelCostProject43, //差旅费-工程 TravelCostDesign56, //差旅费-设计 TravelCostPurchase47, //差旅费-采购 TravelCostOperations34, //差旅费-运营 CostOther70, //差旅费-其他 InstallCostSubtotal351, //安装成本小计(含税) PartsCostSubtotal43, //硬件成本-小计(含税) InstallCostSubtotalNo38, //安装成本小计(不含税) PartsCostSubtotalNo55, //硬件成本-小计(不含税) }; ClientCallBackFrm cF = new ClientCallBackFrm(); cF.DoCustomerAction += new ClientCallBackFrm.ActionCustomer(CallBack_UomTab_小计); // 注册控件 & 创建 AssociationControl foreach (IUFFldNumberControl ctrl in sourceControls) { cF.ParameterControls.Add(ctrl); AssociationControl assoc = new AssociationControl { SourceServerControl = ctrl, SourceControl = { EventName = "OnValueChanged" } }; cF.Add(assoc); } } /// <summary> /// 计算小计 /// </summary> /// <param name="args"></param> /// <returns></returns> object CallBack_UomTab_小计(CustomerActionEventArgs args) { // ========== 硬件成本-小计 ========== decimal outsourceTax = GetDecimalFromArgs(args, this.PartsCostOutsource65); decimal ownProductionTax = GetDecimalFromArgs(args, this.PartsCostOwnProduction53); SetClientValue(args, this.PartsCostSubtotal43, outsourceTax + ownProductionTax); decimal outsourceNoTax = GetDecimalFromArgs(args, this.PartsCostOutsourceNo55); decimal ownProductionNoTax = GetDecimalFromArgs(args, this.PartsCostOwnProductionNo85); SetClientValue(args, this.PartsCostSubtotalNo55, outsourceNoTax + ownProductionNoTax); // ========== 安装成本-小计 ========== decimal materialTax = GetDecimalFromArgs(args, this.InstallMaterialCost76); decimal laborTax = GetDecimalFromArgs(args, this.InstallArtificialCost100); SetClientValue(args, this.InstallCostSubtotal351, materialTax + laborTax); decimal materialNoTax = GetDecimalFromArgs(args, this.InstallMaterialCostNo37); decimal laborNoTax = GetDecimalFromArgs(args, this.InstallArtificialCostNo76); SetClientValue(args, this.InstallCostSubtotalNo38, materialNoTax + laborNoTax); // ========== 人工成本-小计 ========== var artificialControls = new[] { this.ArtificialCostSO121, this.ArtificialCostMO46, this.ArtificialCostAssembly20, this.ArtificialCostProject44, this.ArtificialCostDesign127, this.ArtificialCostPurchase44, this.ArtificialCostOperations46, this.ArtificialCostOther91 }; decimal totalArtificial = artificialControls.Sum(ctrl => GetDecimalFromArgs(args, ctrl)); SetClientValue(args, this.ArtificialCostSubtotal49, totalArtificial); // ========== 费用-小计 ========== var costSubtotalControls = new[] { TravelCostSO29, // 差旅费-销售 TravelCostProject43, //差旅费-工程 TravelCostDesign56, //差旅费-设计 TravelCostPurchase47, //差旅费-采购 TravelCostOperations34, //差旅费-运营 CostOther70, //差旅费-其他 }; decimal costSubtotal = costSubtotalControls.Sum(ctrl => GetDecimalFromArgs(args, ctrl)); SetClientValue(args, this.CostSubtotal58, costSubtotal); // ========== 材料成本-小计(含税) ========== decimal partsCostOutsource = GetDecimalFromArgs(args, this.PartsCostOutsource65); decimal partsCostOwnProduction53 = GetDecimalFromArgs(args, this.PartsCostOwnProduction53); SetClientValue(args, this.MaterialCostSubtotal257, partsCostOutsource + partsCostOwnProduction53); // ========== 材料成本-小计(不含税) ========== decimal installCostSubtotalNo = GetDecimalFromArgs(args, this.InstallCostSubtotalNo38); decimal partsCostSubtotalNo55 = GetDecimalFromArgs(args, this.PartsCostSubtotalNo55); SetClientValue(args, this.MaterialCostSubtotalNo37, installCostSubtotalNo + partsCostSubtotalNo55); return args; } private void CallBack_UomTab_合同额And占比() { // 所有控件集合,按顺序对应每个 AssociationControl IUFFldNumberControl[] sourceControls = new IUFFldNumberControl[] { ArtificialCostSubtotal49, // 人工成本-小计 ContractTotalMoney32, // 合同总金额(文档上:原合同金额) ProjectTotalIncome58, // 项目总收入 CostSubtotal58, // 费用小计 InstallCostSubtotal351, // 安装成本-小计(含税) MaterialCostSubtotalNo37, // 材料成本-小计(不含税) }; ClientCallBackFrm cF = new ClientCallBackFrm(); cF.DoCustomerAction += new ClientCallBackFrm.ActionCustomer(CallBack_UomTab_合同额And占比); foreach (var ctrl in sourceControls) { // 注册控件到参数 cF.ParameterControls.Add(ctrl); // 创建并配置关联控制器 var assoc = new AssociationControl { SourceServerControl = ctrl, SourceControl = { EventName = "OnValueChanged" } }; cF.Add(assoc); } } /// <summary> /// 计算合同额和占比 /// </summary> /// <param name="args"></param> /// <returns></returns> object CallBack_UomTab_合同额And占比(CustomerActionEventArgs args) { // 人工成本-小计 decimal artificialCostSubtotal = GetDecimalFromArgs(args, this.ArtificialCostSubtotal49); // 费用小计 decimal costSubtotal = GetDecimalFromArgs(args, this.CostSubtotal58); // 安装成本-小计(含税) decimal installCostSubtotal = GetDecimalFromArgs(args, this.InstallCostSubtotal351); // 材料成本-小计(不含税) decimal materialCostSubtotalNo = GetDecimalFromArgs(args, this.MaterialCostSubtotalNo37); // 原合同金额 decimal contractTotalMoney = GetDecimalFromArgs(args, this.ContractTotalMoney32); // 项目总收入 decimal projectTotalIncome = GetDecimalFromArgs(args, this.ProjectTotalIncome58); if (contractTotalMoney > 0) { // ========== 人工成本合同额 =人工成本-小计/原合同金额 ========== SetClientValue(args, this.ArtificialCostContractAmount73, artificialCostSubtotal / contractTotalMoney); // ========== 人工成本/合同额 =费用小计/原合同金额 ========== SetClientValue(args, this.CostContractAmount43, costSubtotal / contractTotalMoney); // ========== 含税材料成本占比 = 材料成本-小计(含税)/原合同金额 ========== SetClientValue(args, this.MaterialCostProportion43, installCostSubtotal / contractTotalMoney); } if (projectTotalIncome > 0) { // ========== 人工成本占比 =人工成本-小计/项目总收入 ========== SetClientValue(args, this.ArtificialProportion70, artificialCostSubtotal / projectTotalIncome); // ========== 费用-占比 =费用小计/原合同金额 ========== SetClientValue(args, this.CostProportion83, costSubtotal / projectTotalIncome); // ========== 不含税材料成本占比 = 材料成本-小计(不含税)/项目总收入 ========== SetClientValue(args, this.MaterialCostProportionNo98, materialCostSubtotalNo / projectTotalIncome); } return args; } private void CallBack_UomTab_费用And毛利() { // 所有控件集合,按顺序对应每个 AssociationControl IUFFldNumberControl[] sourceControls = new IUFFldNumberControl[] { ArtificialCostSO121, // 人工成本-销售 TravelCostSO29, //差旅费-销售 ArtificialCostPurchase44, // 人工成本-采购 ArtificialCostOperations46, //人工成本-运营 ArtificialCostOther91, // 人工成本-其他 TravelCostOperations34, // 差旅费-运营 CostOther70, //费用其他 ContractTotalMoney32, // 原合同金额 ProjectTotalCost61, //项目总成本含税 ProjectTotalCostNo43, //项目总成本(不含税) GrossProfitNo88, //毛利(不含税) ProjectTotalIncome58, //项目总收入 }; ClientCallBackFrm cF = new ClientCallBackFrm(); cF.DoCustomerAction += new ClientCallBackFrm.ActionCustomer(CallBack_UomTab_费用And毛利); foreach (var ctrl in sourceControls) { // 注册控件到参数 cF.ParameterControls.Add(ctrl); // 创建并配置关联控制器 var assoc = new AssociationControl { SourceServerControl = ctrl, SourceControl = { EventName = "OnValueChanged" } }; cF.Add(assoc); } } /// <summary> /// 计算费用 /// </summary> /// <param name="args"></param> /// <returns></returns> object CallBack_UomTab_费用And毛利(CustomerActionEventArgs args) { // 人工成本-销售 decimal artificialCostSo = GetDecimalFromArgs(args, this.ArtificialCostSO121); //差旅费-销售 decimal travelCostSo = GetDecimalFromArgs(args, this.TravelCostSO29); // 人工成本-采购 decimal artificialCostPurchase = GetDecimalFromArgs(args, this.ArtificialCostPurchase44); //人工成本-运营 decimal artificialCostOperations = GetDecimalFromArgs(args, this.ArtificialCostOperations46); // 人工成本-其他 decimal artificialCostOther = GetDecimalFromArgs(args, this.ArtificialCostOther91); // 差旅费-运营 decimal travelCostOperations = GetDecimalFromArgs(args, this.TravelCostOperations34); //费用其他 decimal costOther = GetDecimalFromArgs(args, this.CostOther70); decimal ContractTotalMoney = GetDecimalFromArgs(args, this.ContractTotalMoney32); decimal ProjectTotalCost = GetDecimalFromArgs(args, this.ProjectTotalCost61); decimal ProjectTotalCostNo = GetDecimalFromArgs(args, this.ProjectTotalCostNo43); decimal GrossProfitNo = GetDecimalFromArgs(args, this.GrossProfitNo88); decimal ProjectTotalIncome = GetDecimalFromArgs(args, this.ProjectTotalIncome58); // ========== 销售费用 =人工成本-销售+差旅费-销售 ========== SetClientValue(args, this.SOCost148, artificialCostSo + travelCostSo); // ========== 管理费用 =人工成本-采购+人工成本-运营+人工成本-其他+差旅费-采购+差旅费-运营+费用-其它 ========== SetClientValue(args, this.ManageCost44, artificialCostPurchase + artificialCostOperations + artificialCostOther + travelCostOperations + costOther); // ========== 毛利(含税) =原合同金额-项目总成本(含税) ========== SetClientValue(args, this.GrossProfit47, ContractTotalMoney - ProjectTotalCost); // ========== 毛利(不含税) =项目总收入-项目总成本(不含税) ========== SetClientValue(args, this.GrossProfitNo88, ProjectTotalIncome - ProjectTotalCostNo); // ========== 毛利率(不含税) =毛利(不含税)/项目总收入 ========== SetClientValue(args, this.GrossProfitTaxNo43, GrossProfitNo - ProjectTotalIncome); return args; } private void CallBack_UomTab_总收入And总成本() { // 所有控件集合,按顺序对应每个 AssociationControl IUFFldNumberControl[] sourceControls = new IUFFldNumberControl[] { ProjectIncomeOne7, //收入1 ProjectIncomeTwo19, //收入2 ProjectIncomeThree59, //收入3 ProjectIncomeFour42, //收入4 MaterialCostSubtotal257, //材料成本-小计(含税) ArtificialCostProject44, //人工成本-工程 ArtificialCostDesign127, //人工成本-设计 TravelCostProject43, //差旅费-工程 TravelCostDesign56, //差旅费-设计 ArtificialCostMO46, //人工成本-生产 ArtificialCostAssembly20, //人工成本-装配 FreightPackagFee34, //运费/包装费(含税) MaterialCostSubtotalNo37, //材料成本-小计(不含税) FreightPackagFeeNo112, //运费/包装费(不含税) }; ClientCallBackFrm cF = new ClientCallBackFrm(); cF.DoCustomerAction += new ClientCallBackFrm.ActionCustomer(CallBack_UomTab_总收入And总成本); foreach (var ctrl in sourceControls) { // 注册控件到参数 cF.ParameterControls.Add(ctrl); // 创建并配置关联控制器 var assoc = new AssociationControl { SourceServerControl = ctrl, SourceControl = { EventName = "OnValueChanged" } }; cF.Add(assoc); } } /// <summary> /// 计算总收入和总成本 /// </summary> /// <param name="args"></param> /// <returns></returns> object CallBack_UomTab_总收入And总成本(CustomerActionEventArgs args) { // 收入1 decimal projectIncomeOne = GetDecimalFromArgs(args, this.ProjectIncomeOne7); //收入2 decimal projectIncomeTwo = GetDecimalFromArgs(args, this.ProjectIncomeTwo19); // 收入3 decimal projectIncomeThree = GetDecimalFromArgs(args, this.ProjectIncomeThree59); // 收入4 decimal projectIncomeFour = GetDecimalFromArgs(args, this.ProjectIncomeFour42); decimal MaterialCostSubtotal = GetDecimalFromArgs(args, this.MaterialCostSubtotal257); decimal ArtificialCostProject = GetDecimalFromArgs(args, this.ArtificialCostProject44); decimal ArtificialCostDesign = GetDecimalFromArgs(args, this.ArtificialCostDesign127); decimal TravelCostProject = GetDecimalFromArgs(args, this.TravelCostProject43); decimal TravelCostDesign = GetDecimalFromArgs(args, this.TravelCostDesign56); decimal ArtificialCostMO = GetDecimalFromArgs(args, this.ArtificialCostMO46); decimal ArtificialCostAssembly = GetDecimalFromArgs(args, this.ArtificialCostAssembly20); decimal FreightPackagFee = GetDecimalFromArgs(args, this.FreightPackagFee34); decimal MaterialCostSubtotalNo = GetDecimalFromArgs(args, this.MaterialCostSubtotalNo37); decimal FreightPackagFeeNo = GetDecimalFromArgs(args, this.FreightPackagFeeNo112); // ========== 项目总收入 =项目收入1+项目收入2+项目收入3+项目收入4 ========== SetClientValue(args, this.ProjectTotalIncome58, projectIncomeOne + projectIncomeTwo + projectIncomeThree + projectIncomeFour); // ========== 项目总成本(含税) =材料成本-小计(含税)+人工成本-工程+人工成本-设计+差旅费-工程+差旅费-设计+人工成本-生产+人工成本-装配+运费/包装费(含税) ========== SetClientValue(args, this.ProjectTotalCost61, MaterialCostSubtotal + ArtificialCostProject + ArtificialCostDesign + TravelCostProject + TravelCostDesign + ArtificialCostMO + ArtificialCostAssembly + FreightPackagFee); // ========== 项目总成本(不含税) =材料成本-小计(不含税)+人工成本-工程+人工成本-设计+差旅费-工程+差旅费-设计+人工成本-生产+人工成本-装配+运费/包装费(不含税) ========== SetClientValue(args, this.ProjectTotalCostNo43, MaterialCostSubtotalNo + ArtificialCostProject + ArtificialCostDesign + TravelCostProject + TravelCostDesign + ArtificialCostMO + ArtificialCostAssembly + FreightPackagFeeNo); return args; } /// <summary> /// 查询税率 /// </summary> /// <param name="id"></param> /// <returns></returns> public string QueryTax(long id) { string sql = $"SELECT CBO_Tax.TaxRate FROM CBO_TaxScheduleTax LEFT JOIN CBO_TaxSchedule ON CBO_TaxScheduleTax.TaxSchedule = CBO_TaxSchedule.ID LEFT JOIN CBO_Tax ON CBO_TaxScheduleTax.Tax = CBO_Tax.ID WHERE CBO_TaxSchedule.ID = {id}"; DataSet ds; DataAccessor.RunSQL(DatabaseManager.GetCurrentConnection(), sql, null, out ds); return ds.Tables[0].Rows[0]["TaxRate"].ToString(); } /// <summary> /// 根据含税金额和税率控件,计算不含税金额,并设置到对应控件中 /// </summary> /// <param name="args">回调参数对象,包含所有控件提交的数据</param> /// <param name="taxIncludedControls">含税金额控件</param> /// <param name="taxRateControl">税率ID控件</param> /// <param name="taxIncludedNoControl">要设置值的目标控件(不含税金额)</param> private void ComputeNoTaxValue( CustomerActionEventArgs args, IUFFldNumberControl taxIncludedControls, IUFFldReference taxRateControl, IUFFldNumberControl taxIncludedNoControl) { // 页面上的含税值 string taxIncludedKey = taxIncludedControls.ClientID; // 页面上的税率值 string taxRateKey = taxRateControl.ClientID; //含税金额 decimal taxIncludedMoney = decimal.Parse(args.ArgsHash[taxIncludedKey].ToString()); //税组合ID long taxId = long.Parse(args.ArgsHash[taxRateKey].ToString()); if (taxId > 0) { string queryTax = QueryTax(taxId); // 返回 0.13 等 decimal taxRate = decimal.Parse(queryTax); decimal noTaxIncludedMoney = taxIncludedMoney / (1 + taxRate); SetClientValue(args, taxIncludedNoControl, noTaxIncludedMoney); } } /// <summary> /// 从 args.ArgsHash 中获取指定控件的 decimal 值 /// </summary> private decimal GetDecimalFromArgs(CustomerActionEventArgs args, IUFFldNumberControl ctrl) { var key = ctrl.ClientID; return args.ArgsHash.ContainsKey(key) && decimal.TryParse(args.ArgsHash[key]?.ToString(), out var val) ? val: 0m; } /// <summary> /// 生成设置客户端控件值的 JS 脚本 /// </summary> private void SetClientValue(CustomerActionEventArgs args, IUFControl target, decimal value) { args.ArgsResult.Add(new UFWebClientNumberAdapter(target).ClientInstance + $".set_Value('{value}')"); }
2025年07月03日
1 阅读
0 评论
0 点赞
2025-05-21
请款单生成请款确认单
{callout color="#ef4d4d"}由于无法指定组织只能采取登录组织方式{/callout}dll名:AutoGenerateConfirmBillBPProxydll位置:C:\yonyou\U9V60\Portal\ApplicationServer\Libs\UFIDA.U9.AP.APBP.Agent.dll AutoGenerateConfirmBillBPProxy proxy = new AutoGenerateConfirmBillBPProxy(); PayReqFundDocType payReqFundDocType = PayReqFundDocType.Finder.Find(string.Format("code = '{0}'","001")); PayReqFundDocType payReqFundDocType1 = PayReqFundDocType.Finder.Find(string.Format("code = '{0}'","002")); Entity.EntityList<PayReqFundHead> entityList = PayReqFundHead.Finder.FindAll( string.Format("DocStatus = 2 and DocumentType != '{1}' and DocumentType!= '{2}' and Org = {0}", Context.LoginOrg.ID,payReqFundDocType.ID,payReqFundDocType1.ID)); //string.Format("DocStatus = 1 and Org.Code = '10' and DocNo = '10-0012412200007'")); try { foreach (PayReqFundHead payReqFundHead in entityList) { proxy.PayReqHeadKey = payReqFundHead.ID; if (!string.IsNullOrEmpty(payReqFundHead.PayReqFundUses[0].OppAccBkAccount)) { BankAccount bankAccount = BankAccount.FindByCode(payReqFundHead.PayReqFundUses[0].OppAccBkAccount); if (bankAccount != null) { proxy.BankAccount = bankAccount.ID; } //proxy.SubBankAccount = bankAccount.PayBkSubAccount; } else { logger.LogInfo("创建请款确认单失败:付款银行账户为空 : 单号:" + payReqFundHead.DocNo + "组织:" + payReqFundHead.Org.Code); continue; } // CashAccount cashAccount = // CashAccount.Finder.Find(string.Format("code = '{0}'", "01090699000120109050014")); // proxy.CashAccount = 0; proxy.IsUnApprove = true; proxy.IsCanInputInfo = false; proxy.PayDate = payReqFundHead.ExpectPayDate; AccountPeriod accountPeriod = AccountPeriod.Finder.Find(string.Format( "Year = '{0}' and Month = '{1}'", DateTime.Now.Year, DateTime.Now.Month)); // 会计记账期间 proxy.PostPeriod = accountPeriod.ID; proxy.PayCurrency = payReqFundHead.ReqFundAC.ID; proxy.ERType = payReqFundHead.ERType.Value; proxy.ExRate = payReqFundHead.PCToMCXR; if (payReqFundHead.PayReqFundUses != null && payReqFundHead.PayReqFundUses.Count > 0 && payReqFundHead.PayReqFundUses[0].SttlMethod != null) { proxy.SettlementMethod = payReqFundHead.PayReqFundUses[0].SttlMethod.ID; } proxy.Currency = payReqFundHead.ReqFundAC.ID; //proxy.CashAccount = cashAccount.ID; //proxy.BankReturnDate = payReqFundHead.PayReqFundUses[0].TradeDate; //proxy.NoteNo = payReqFundHead.PayReqFundUses[0].NoteNo; proxy.IsMerge = true; proxy.ConfirmDate = DateTime.Now; // if (payReqFundHead.PayReqFundUses[0].RFCashierCfmDate != null) // { // proxy.ConfirmDate = payReqFundHead.PayReqFundUses[0].RFCashierCfmDate; // } // else // { // proxy.ConfirmDate = DateTime.Now; // } proxy.PayReqHeadList = new List<long> { payReqFundHead.ID }; proxy.Do(); } } catch (Exception e) { logger.LogError("创建请款确认单BP报错:\t\n" + e); throw new ApplicationException(e.Message); }
2025年05月21日
1 阅读
0 评论
0 点赞
2025-05-19
U9获取组织公共参数sql
select a.ID,a.Code,b.* from Base_Profile a left join Base_Profile_Trl b on a.ID=b.ID where a.Code like 'OAtemplate%'
2025年05月19日
1 阅读
0 评论
0 点赞
1
2
...
4