public override void EndOperationTransaction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.EndOperationTransactionArgs e) { base.EndOperationTransaction(e); if (e.DataEntitys == null || e.DataEntitys.Count() <= 0) { return; } List <long> lstFids = new List <long>(); foreach (DynamicObject data in e.DataEntitys) { lstFids.Add(Convert.ToInt64(data["ID"])); } if (lstFids.Count() <= 0) { return; } ////审核自动生成计划订单 ////销售预测单变更单-计划订单 //IOperationResult result = new OperationResult(); //result = this.DoPushNotAudit("JN_YDL_SAL_ForecastChange", "PLN_PLANORDER", // lstFids); }
public override void EndOperationTransaction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.EndOperationTransactionArgs e) { base.EndOperationTransaction(e); if (e.DataEntitys == null || e.DataEntitys.Count() <= 0) { return; } List <long> lstFids = new List <long>(); foreach (DynamicObject data in e.DataEntitys) { lstFids.Add(Convert.ToInt64(data["ID"])); } if (lstFids.Count() <= 0) { return; } SqlParam param = new SqlParam("@FID", KDDbType.udt_inttable, lstFids.ToArray()); //更新销售结余后台表 DynamicObjectCollection dycInsertForecastBack = UpdateForecastBack(param); //插入销售结余日志表 DynamicObjectCollection dycInsertForecastLog = UpdateForecastLog(param); //调用插入方法 JNCommonServices.UpdateForecastBackAndLog(this.Context, dycInsertForecastBack, dycInsertForecastLog); }
/// <summary> /// 操作执行后逻辑处理 /// </summary> /// <param name="e"></param> public override void EndOperationTransaction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.EndOperationTransactionArgs e) { var billGroups = e.DataEntitys.GroupBy(o => Convert.ToString(o["BillTypeId_Id"])); List <long> lstNewMtrlId = new List <long>(); List <long> lstNewBomId = new List <long>(); foreach (var billGroup in billGroups) { var billTypeParaObj = AppServiceContext.GetService <ISysProfileService>().LoadBillTypeParameter(this.Context, this.BusinessInfo.GetForm().Id, billGroup.Key); if (billTypeParaObj == null) { continue; } bool bSupportNoMtrlQuote = Convert.ToBoolean(billTypeParaObj["F_JN_NoMtrlIdQuotation"]); if (bSupportNoMtrlQuote) { ExtendedDataEntitySet dataEntitySet = new ExtendedDataEntitySet(); dataEntitySet.Parse(billGroup.ToArray(), this.BusinessInfo); var quoteEntryRows = dataEntitySet.FindByEntityKey("FQUOTATIONENTRY") .Where(o => !o["F_JN_ProductName"].IsEmptyPrimaryKey()) .ToArray(); if (quoteEntryRows.Any() == false) { continue; } lstNewMtrlId.AddRange(quoteEntryRows.Select(o => (long)o["MaterialId_Id"]) .Distinct() .Where(o => o > 0)); lstNewBomId.AddRange(quoteEntryRows.Select(o => (long)o["BomId_Id"]) .Distinct() .Where(o => o > 0)); } } //反禁用关联的物料及物料清单 OperateOption mtrlOption = OperateOption.Create(); mtrlOption.SetVariableValue("IsList", true); FormMetadata mtrlMetadata = AppServiceContext.MetadataService.Load(this.Context, "BD_MATERIAL") as FormMetadata; var mtrlOpRet = AppServiceContext.SetStatusService.SetBillStatus(this.Context, mtrlMetadata.BusinessInfo, lstNewMtrlId.Select(o => new KeyValuePair <object, object>(o, null)).ToList(), null, "Enable", mtrlOption); this.OperationResult.MergeResult(mtrlOpRet); OperateOption bomOption = OperateOption.Create(); bomOption.SetVariableValue("IsList", true); FormMetadata bomMetadata = AppServiceContext.MetadataService.Load(this.Context, "ENG_BOM") as FormMetadata; var bomOpRet = AppServiceContext.SetStatusService.SetBillStatus(this.Context, bomMetadata.BusinessInfo, lstNewBomId.Select(o => new KeyValuePair <object, object>(o, null)).ToList(), null, "Enable", bomOption); this.OperationResult.MergeResult(bomOpRet); }
public override void EndOperationTransaction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.EndOperationTransactionArgs e) { base.EndOperationTransaction(e); if (e.DataEntitys == null || e.DataEntitys.Count() <= 0) { return; } List <long> lstFids = new List <long>(); foreach (DynamicObject data in e.DataEntitys) { lstFids.Add(Convert.ToInt64(data["ID"])); DynamicObjectCollection dycEntitys = data["SaleOrderEntry"] as DynamicObjectCollection; foreach (var dycEntity in dycEntitys) { string sql = string.Empty; // 更新销售结余后台表 12月20日赵成杰 string entityid = Convert.ToString(dycEntity["ID"]); sql = string.Format(@"Update JN_T_SAL_ForecastBack as t0 set (FQTY)=(select a.FQTY-c.FBASEUNITQTY from JN_T_SAL_ForecastBack a inner join T_SAL_ORDER b on a.FSALEORGID=b.FSALEORGID and a.FSALERID=b.FSALERID and a.FSaleDeptId=b.FSALEDEPTID inner join T_SAL_ORDERENTRY c on b.FID=c.FID and a.FMATERIALID=c.FMATERIALID and c.FEntryID={0} and a.FAUXPROPID=c.FAUXPROPID and c.FBaseUnitID=a.FUnitID inner join t_BD_Stock d on c.FSTOCKID_MX=d.FStockId where a.FID=t0.FID and d.FMasterId in (100313,100328) ) ", entityid); DBUtils.Execute(this.Context, sql); } } if (lstFids.Count() <= 0) { return; } SqlParam param = new SqlParam("@FID", KDDbType.udt_inttable, lstFids.ToArray()); //查找需要更新的销售预测结余后台表 存在出现同一张单出现表体出现相同物料时导致重复创建结余后台表,停用 // DynamicObjectCollection dycSelectForecastBack = JNCommonServices.SelectForecastBack(this.Context, param, "A"); //更新销售结余后台表 存在出现同一张单出现表体出现相同物料时导致重复创建结余后台表,停用 //DynamicObjectCollection dycInsertForecastBack = UpdateForecastBack(dycSelectForecastBack, param); DynamicObjectCollection dycInsertForecastBack = null; //插入销售结余日志表 DynamicObjectCollection dycInsertForecastLog = UpdateForecastLog(param); //调用插入方法 JNCommonServices.UpdateForecastBackAndLog(this.Context, dycInsertForecastBack, dycInsertForecastLog); }
public override void EndOperationTransaction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.EndOperationTransactionArgs e) { base.EndOperationTransaction(e); if (sAdjustType == null || sAdjustType == "") { return; } if (lstEntrys == null || lstEntrys.Count() <= 0) { return; } //创建销售预测变更单 CreateForecastChangeBill(); }
public override void EndOperationTransaction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.EndOperationTransactionArgs e) { base.EndOperationTransaction(e); if (e.DataEntitys == null || e.DataEntitys.Count() <= 0) { return; } List <long> lstFids = new List <long>(); foreach (DynamicObject data in e.DataEntitys) { lstFids.Add(Convert.ToInt64(data["ID"])); DynamicObjectCollection dycEntitys = data["FEntity"] as DynamicObjectCollection; foreach (var dycEntity in dycEntitys) { // 更新销售结余后台表 12月20日赵成杰 string entityid = Convert.ToString(dycEntity["ID"]); string sql = string.Format(@"Update JN_T_SAL_ForecastBack as t0 set (FQTY)=(select case when b.FDirection='A' then a.FQTY-c.FJNBaseUnitQty else a.FQTY+c.FJNBaseUnitQty end from JN_T_SAL_ForecastBack a inner join JN_T_SAL_ForecastChange b on a.FSALEORGID=b.FJNSALEORGID and a.FSALERID=b.FJNSALERID and a.FSaleDeptId=b.FJNSaleDeptId inner join JN_T_SAL_ForecastChangeEntry c on b.FID=c.FID and a.FMATERIALID=c.FJNMATERIALID and c.FEntryID={0} and a.FAUXPROPID=c.FJNAUXPROP and a.FUnitID=c.FJNBASEUNITID where a.FID=t0.FID )", entityid); DBUtils.Execute(this.Context, sql); } } if (lstFids.Count() <= 0) { return; } SqlParam param = new SqlParam("@FID", KDDbType.udt_inttable, lstFids.ToArray()); //更新销售结余后台表 DynamicObjectCollection dycInsertForecastBack = null; //DynamicObjectCollection dycInsertForecastBack = UpdateForecastBack(param); //插入销售结余日志表 DynamicObjectCollection dycInsertForecastLog = UpdateForecastLog(param); //调用插入方法 JNCommonServices.UpdateForecastBackAndLog(this.Context, dycInsertForecastBack, dycInsertForecastLog); }
public override void EndOperationTransaction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.EndOperationTransactionArgs e) { base.EndOperationTransaction(e); if (e.DataEntitys == null || e.DataEntitys.Count() <= 0) { return; } List <long> lstFids = new List <long>(); foreach (DynamicObject data in e.DataEntitys) { lstFids.Add(Convert.ToInt64(data["ID"])); DynamicObjectCollection ForecastEntitys = data["SAL_ForecastEntity"] as DynamicObjectCollection; foreach (var ForecastEntity in ForecastEntitys) { string entityid = Convert.ToString(ForecastEntity["ID"]); string sql = string.Format(@"Update JN_T_SAL_ForecastBack as t0 set (FQTY)=(select a.FQTY-c.FBaseUnitQty from JN_T_SAL_ForecastBack a inner join JN_T_SAL_Forecast b on a.FSALEORGID=b.FJNSALEORGID and a.FSALERID=b.FJNSALERID and a.FSaleDeptId=b.FJNSaleDeptId inner join JN_T_SAL_ForecastEntity c on b.FID=c.FID and a.FMATERIALID=c.FJNMATERIALID and c.FEntryID={0} and a.FAUXPROPID=c.FJNAUXPROP and a.FUnitID=c.FBaseUnitID where a.FID=t0.FID )", entityid); DBUtils.Execute(this.Context, sql); } } if (lstFids.Count() <= 0) { return; } SqlParam param = new SqlParam("@FID", KDDbType.udt_inttable, lstFids.ToArray()); //查找需要更新的销售预测结余后台表,存在出现同一张单出现表体出现相同物料时导致重复创建结余后台表,停用 //DynamicObjectCollection dycSelectForecastBack = JNCommonServices.SelectForecastBack(this.Context, param, "D"); DynamicObjectCollection dycInsertForecastBack = null; //更新销售结余后台表存在出现同一张单出现表体出现相同物料时导致重复创建结余后台表,停用 // DynamicObjectCollection dycInsertForecastBack = UpdateForecastBack(dycSelectForecastBack, param); //插入销售结余日志表 DynamicObjectCollection dycInsertForecastLog = UpdateForecastLog(param); //调用插入方法 JNCommonServices.UpdateForecastBackAndLog(this.Context, dycInsertForecastBack, dycInsertForecastLog); }
/// <summary> /// 调用操作事物后触发 /// </summary> /// <param name="e"/> public override void EndOperationTransaction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.EndOperationTransactionArgs e) { base.EndOperationTransaction(e); foreach (var obj in billNoDynamic) { string billNo = obj["FSRCBILLNO"].ToString(); string sql = string.Format(@"select a.FROUTEID,a.FTID from t_bf_Instanceentry a inner join T_PUR_ReceiveEntry b on a.fsid =b.FENTRYID inner join T_PUR_Receive c on c.fid =b.fid where a.FSTABLENAME='T_PUR_ReceiveEntry' and c.FBILLNO like '{0}' and FTTABLENAME='T_QM_INSPECTBILLENTRY_A' " , billNo); DynamicObjectCollection billDynamic = DBUtils.ExecuteDynamicObject(this.Context, sql, null, null, CommandType.Text, null); //单据转换联系 foreach (var item in billDynamic) //不存在联系即删除 { string FROUTEID = item["FROUTEID"].ToString(); string FTID = item["FTID"].ToString(); string deleteSql = string.Format(@"if not exists( select 1 from T_QM_INSPECTBILLENTRY_A where FENTRYID={0} ) delete t_bf_Instanceentry where FROUTEID='{1}'", FTID, FROUTEID); DBUtils.Execute(this.Context, deleteSql); } } }
public override void EndOperationTransaction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.EndOperationTransactionArgs e) { base.EndOperationTransaction(e); if (e.DataEntitys == null || e.DataEntitys.Count() <= 0) { return; } List <long> lstFids = new List <long>(); List <ListSelectedRow> lstSelect = new List <ListSelectedRow>(); List <long> AddSelect = new List <long>();//下推增加预测选择 foreach (DynamicObject data in e.DataEntitys) { lstFids.Add(Convert.ToInt64(data["ID"])); DynamicObjectCollection dycEntitys = data["FEntity"] as DynamicObjectCollection; string FDirection = Convert.ToString(data["FDirection"]); if (dycEntitys == null || dycEntitys.Count() <= 0) { continue; } foreach (var dycEntity in dycEntitys) { ListSelectedRow convertItem = new ListSelectedRow( Convert.ToString(data["ID"]), Convert.ToString(dycEntity["ID"]), Convert.ToInt32(dycEntity["ID"]), "BillHead"); convertItem.EntryEntityKey = "FEntity"; lstSelect.Add(convertItem); if (FDirection == "A") { AddSelect.Add(Convert.ToInt32(convertItem.PrimaryKeyValue)); } // 更新销售结余后台表 12月20日赵成杰 string entityid = Convert.ToString(dycEntity["ID"]); string sql = string.Format(@"Update JN_T_SAL_ForecastBack as t0 set (FQTY)=(select case when b.FDirection='A' then a.FQTY+c.FJNBaseUnitQty else a.FQTY-c.FJNBaseUnitQty end from JN_T_SAL_ForecastBack a inner join JN_T_SAL_ForecastChange b on a.FSALEORGID=b.FJNSALEORGID and a.FSALERID=b.FJNSALERID and a.FSaleDeptId=b.FJNSaleDeptId inner join JN_T_SAL_ForecastChangeEntry c on b.FID=c.FID and a.FMATERIALID=c.FJNMATERIALID and c.FEntryID={0} and a.FAUXPROPID=c.FJNAUXPROP and a.FUnitID=c.FJNBASEUNITID where a.FID=t0.FID )", entityid); DBUtils.Execute(this.Context, sql); } } if (lstFids.Count() <= 0) { return; } SqlParam param = new SqlParam("@FID", KDDbType.udt_inttable, lstFids.ToArray()); //更新销售结余后台表 DynamicObjectCollection dycInsertForecastBack = UpdateForecastBack(param); //插入销售结余日志表 DynamicObjectCollection dycInsertForecastLog = UpdateForecastLog(param); //调用插入方法 JNCommonServices.UpdateForecastBackAndLog(this.Context, dycInsertForecastBack, dycInsertForecastLog); if (AddSelect == null || AddSelect.Count <= 0) { return; } //审核自动生成预测单 //销售预测单变更单-预测单 List <IOperationResult> results = new List <IOperationResult>(); IOperationResult result = new OperationResult(); result = this.DoPushNotAudit("JN_YDL_SAL_ForecastChange", "PLN_FORECAST", AddSelect); results.Add(result); InItOperateResult(results, "生成预测单成功", "生成预测单失败"); }