Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        /// <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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
 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();
 }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        /// <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);
                }
            }
        }
Exemplo n.º 9
0
        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, "生成预测单成功", "生成预测单失败");
        }