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

            SqlParam param = new SqlParam("@FID", KDDbType.udt_inttable, lstFids.ToArray());

            //更新销售结余后台表
            DynamicObjectCollection dycInsertForecastBack = UpdateForecastBack(param);

            //插入销售结余日志表
            DynamicObjectCollection dycInsertForecastLog = UpdateForecastLog(param);

            //调用插入方法
            JNCommonServices.UpdateForecastBackAndLog(this.Context, dycInsertForecastBack, dycInsertForecastLog);
        }
Esempio 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"]));
                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);
        }
Esempio n. 3
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);
        }
Esempio 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 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);
        }
Esempio n. 5
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, "生成预测单成功", "生成预测单失败");
        }