using System;
|
using System.Collections.Generic;
|
using Kingdee.BOS.Util;
|
using Kingdee.BOS.Core.Metadata;
|
using Kingdee.BOS.Core.Metadata.EntityElement;
|
using Kingdee.BOS.Core.DynamicForm.PlugIn;
|
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
|
using Kingdee.BOS.Orm.DataEntity;
|
using Kingdee.BOS.Contracts;
|
using Kingdee.BOS.App;
|
using Kingdee.BOS.Core.Metadata.FieldElement;
|
using System.ComponentModel;
|
using Kingdee.BOS.ServiceHelper;
|
using Kingdee.K3.SCM.App;
|
using ZD.Cloud.Logger;
|
|
namespace Demo.DynamicForm.PRD
|
{
|
[Description("[日计划用料清单变更-审核]按钮功能]")]
|
[HotUpdate]
|
public class Pro_RJHYLQDBGSH : AbstractOperationServicePlugIn
|
{
|
public override void OnPreparePropertys(PreparePropertysEventArgs e)
|
{
|
base.OnPreparePropertys(e);
|
e.FieldKeys.Add("FSrcBillType");
|
e.FieldKeys.Add("FSrcBillNo");
|
e.FieldKeys.Add("FBillNo");
|
e.FieldKeys.Add("FDayPlanId");
|
e.FieldKeys.Add("FDayPlanFentryId");
|
e.FieldKeys.Add("FHQtyMust");
|
e.FieldKeys.Add("FHQtyMustNew");
|
e.FieldKeys.Add("FUseRate");
|
e.FieldKeys.Add("FUseRateNew");
|
e.FieldKeys.Add("FHPPBomEntryID");
|
e.FieldKeys.Add("FDwyl");
|
}
|
/// <summary>
|
///审核更新日计划用料清单领料数量
|
/// </summary>
|
/// <param name="e"></param>
|
public override void AfterExecuteOperationTransaction(AfterExecuteOperationTransaction e)
|
{
|
base.AfterExecuteOperationTransaction(e);
|
List<string> sqlList = new List<string>();
|
string sql = "";
|
//审核时更新生产用料清单表明细领料数量
|
Entity entity = this.BusinessInfo.GetEntity("FEntity");//获取明细信息
|
foreach (var billObj in e.SelectedRows)
|
{
|
DynamicObjectCollection entryRows = entity.DynamicProperty.GetValue(billObj.DataEntity)
|
as DynamicObjectCollection;
|
foreach (var entryRow in entryRows)
|
{
|
string fDayPlanFentryId = entryRow["FDayPlanFentryId"].ToString();
|
string fHQtyMustNew = entryRow["FHQtyMustNew"].ToString();
|
string fUseRateNew = entryRow["FUseRateNew"].ToString();
|
string fDwyl = entryRow["FDwyl"].ToString();
|
string fHPPBomEntryID = entryRow["FHPPBomEntryID"].ToString();
|
if (fHQtyMustNew == "0")
|
continue;
|
sql = string.Format($"/*dialect*/update Sc_DayPlanPPBomBillSub set FHQtyMust = {fHQtyMustNew},FUseRate = { fUseRateNew} where FEntryID ={fDayPlanFentryId} ");
|
sqlList.Add(sql);
|
sql = string.Format(@"/*dialect*/
|
update T_PRD_PPBOMENTRY set
|
FBASENEEDQTY = c.FHQtyMust,
|
FBASEMUSTQTY = c.FHQtyMust,
|
FSTDQTY = c.FHQtyMust,
|
FNEEDQTY = c.FHQtyMust,
|
FMUSTQTY = c.FHQtyMust,
|
FUSERATE = (c.FHQtyMust / {0} / b.FQTY *100)
|
from T_PRD_PPBOMENTRY a
|
join T_PRD_PPBOM b on a.FID=b.FID
|
join (select sum(FHQtyMust) FHQtyMust,FHPPBomEntryID from Sc_DayPlanPPBomBillSub where FHPPBomEntryID = {1} group by FHPPBomEntryID) c on a.FENTRYID=c.FHPPBomEntryID
|
where a.FENTRYID = {1}", fDwyl, fHPPBomEntryID);
|
sqlList.Add(sql);
|
sql = string.Format(@"/*dialect*/
|
update T_PRD_PPBOMENTRY_Q set
|
FNOPICKEDQTY = b.FMUSTQTY - a.FPICKEDQTY,
|
FBASENOPICKEDQTY = b.FMUSTQTY - a.FPICKEDQTY
|
from T_PRD_PPBOMENTRY_Q a
|
join T_PRD_PPBOMENTRY b on a.FENTRYID=b.FENTRYID
|
where a.FENTRYID = {0}
|
", fHPPBomEntryID);
|
sqlList.Add(sql);
|
}
|
}
|
DBServiceHelper.ExecuteBatch(Context, sqlList);
|
}
|
}
|
}
|