Example #1
0
        private void getFilterCondiftionFields(IRptParams filter, BOS.Context context, string cks)
        {
            //定义是否从汇总表过来的过滤条件
            Boolean fromMainReportFlag = false;

            //用于定位明细的过滤条件map
            Dictionary <string, object> selectedCurrentRow = new Dictionary <string, object>();

            if (filter.CustomParams.Count > 0 && filter.CustomParams.ContainsKey("OpenParameter"))
            {
                selectedCurrentRow = (Dictionary <string, object>)filter.CustomParams["OpenParameter"];
                fromMainReportFlag = true;
            }

            List <DynamicStockObject> fldKeyList = new GetSubStockNameUtils().getStockID(context);

            foreach (DynamicStockObject fldKey in fldKeyList)
            {
                if (fromMainReportFlag)
                {
                    if (selectedCurrentRow.ContainsKey(fldKey.ckName + "notouttoal"))
                    {
                        material = Convert.ToString(selectedCurrentRow[fldKey.ckName + "notouttoal"]);
                        ckName   = fldKey.ckName;
                    }
                }
            }
        }
Example #2
0
        //internal List<DynamicStockObject> getStockID(BOS.Context context, int id)
        //{
        //    DynamicObjectCollection whCol = null;
        //    string cknameSql = " select a.stockid from T_BD_STOCK a inner join T_BD_STOCKGROUP b on b.FID=a.FGROUP  WHERE b.fnumber = '02' order by a.fnumber ";
        //    whCol = DBServiceHelper.ExecuteDynamicObject(context, cknameSql) as DynamicObjectCollection;
        //    foreach (DynamicObject ckname in whCol)
        //    {
        //        fldKeyList.Add(Convert.ToString(ckname["STOCKID"]));
        //    }
        //    return fldKeyList;
        //    throw new NotImplementedException();
        //}

        internal List <DynamicStockObject> getStockID(BOS.Context context)
        {
            DynamicObjectCollection whCol = null;
            string cknameSql = " SELECT a.FSTOCKID AS STOCKID, a.FNUMBER AS FNUMBER ,c.FNAME AS FNAME FROM T_BD_STOCK a INNER JOIN T_BD_STOCKGROUP b ON b.FID = a.FGROUP  " +
                               "LEFT JOIN T_BD_STOCK_L C ON C.FSTOCKID = a.FSTOCKID WHERE b.fnumber = '02' ORDER BY a.fnumber";

            whCol = DBServiceHelper.ExecuteDynamicObject(context, cknameSql) as DynamicObjectCollection;
            foreach (DynamicObject ckname in whCol)
            {
                DynamicStockObject stockObject = new DynamicStockObject();
                stockObject.stockid   = Convert.ToInt32(ckname["STOCKID"]);
                stockObject.ckName    = Convert.ToString(ckname["FNUMBER"]);
                stockObject.StockName = Convert.ToString(ckname["FNAME"]);
                fldKeyList.Add(stockObject);
            }
            return(fldKeyList);

            throw new NotImplementedException();
        }
Example #3
0
        private void getFilterCondiftionFields(IRptParams filter, BOS.Context context, string cks)
        {
            //定义是否从汇总表过来的过滤条件
            Boolean fromMainReportFlag = false;

            //用于定位明细的过滤条件map
            Dictionary <string, object> selectedCurrentRow = new Dictionary <string, object>();

            if (filter.CustomParams.Count > 0 && filter.CustomParams.ContainsKey("OpenParameter"))
            {
                selectedCurrentRow = (Dictionary <string, object>)filter.CustomParams["OpenParameter"];
            }

            foreach (KeyValuePair <string, object> materialMap in selectedCurrentRow)
            {
                if (materialMap.Key.Equals(onTheWayColumnName))
                {
                    material = Convert.ToString(materialMap.Value);
                }
            }
        }
Example #4
0
        private conditionEntry getFilterCondiftionFields(IRptParams filter, BOS.Context context, string cks)
        {
            //定义是否从汇总表过来的过滤条件
            Boolean fromMainReportFlag = false;

            //用于定位明细的过滤条件map
            Dictionary<string, object> selectedCurrentRow = new Dictionary<string, object>();
            if (filter.CustomParams.Count > 0 && filter.CustomParams.ContainsKey("OpenParameter"))
            {
                selectedCurrentRow = (Dictionary<string, object>)filter.CustomParams["OpenParameter"];
                fromMainReportFlag = true;
            }

            List<DynamicStockObject> fldKeyList = new GetSubStockNameUtils().getStockID(context);
            foreach (KeyValuePair<string, object> materialMap in selectedCurrentRow)
            {
                if (materialMap.Key.Equals(inStockColumnName))
                {
                    return (conditionEntry)materialMap.Value;
                }                
            }
            return null;
        }
Example #5
0
        private void getFilterCondiftionFields(IRptParams filter, BOS.Context context, string cks)
        {
            //定义是否从汇总表过来的过滤条件
            Boolean fromMainReportFlag = false;

            //用于定位明细的过滤条件map
            Dictionary <string, object> selectedCurrentRow = new Dictionary <string, object>();

            if (filter.CustomParams.Count > 0 && filter.CustomParams.ContainsKey("OpenParameter"))
            {
                selectedCurrentRow = (Dictionary <string, object>)filter.CustomParams["OpenParameter"];
                fromMainReportFlag = true;
            }

            List <DynamicStockObject> fldKeyList = new GetSubStockNameUtils().getStockID(context);
            DynamicStockObject        ckchengpin = new DynamicStockObject();

            ckchengpin.ckName    = "CK002";
            ckchengpin.StockName = "成品仓";
            ckchengpin.stockid   = 0;
            fldKeyList.Add(ckchengpin);
            foreach (DynamicStockObject fldKey in fldKeyList)
            {
                if (fromMainReportFlag)
                {
                    if (selectedCurrentRow.ContainsKey(fldKey.ckName))
                    {
                        material = Convert.ToString(selectedCurrentRow[fldKey.ckName]);
                        ckName   = fldKey.ckName;
                    }
                    if (!string.IsNullOrWhiteSpace(material))
                    {
                        break;
                    }
                }
            }
        }
        public override void Validate(BOS.Core.ExtendedDataEntity[] dataEntities, ValidateContext validateContext, BOS.Context ctx)
        {
            Dictionary <string, decimal> dic = new Dictionary <string, decimal>();

            foreach (var row in dataEntities)
            {
                DynamicObject material       = row["MaterialID"] as DynamicObject;
                decimal       qty            = Convert.ToDecimal(row["Qty"]);
                decimal       maxQty         = Convert.ToDecimal(material["F_PAEZ_maxSaleQty"]);
                Boolean       isLimitSaleQty = Convert.ToBoolean(material["F_PAEZ_isLimitSaleQty"]);
                DateTime      startDate      = Convert.ToDateTime(material["F_PAEZ_startDate"]);
                int           seq            = Convert.ToInt32(row["Seq"]);
                if (null == material || !isLimitSaleQty || startDate > DateTime.Now || Convert.ToString(startDate) == "0001-01-01 00:00:00")
                {
                    continue;
                }
                //用字典记录下上面物料的数量   最大销量是这个单据上所有数量 + 其它已经审核 + 其它审核中 的数量
                string number = material["Number"].ToString();
                if (dic.ContainsKey(number))
                {
                    decimal qty1 = dic[number];
                    dic.Remove(number);
                    dic.Add(number, qty1 + qty);
                }
                else
                {
                    dic.Add(number, qty);
                }

                string sql = string.Format(@"SELECT sum(b.FQTY) qty FROM T_SAL_ORDER a inner join T_SAL_ORDERENTRY b  on a.fid =b.fid  WHERE b.FMATERIALID ='{0}' AND a.FDOCUMENTSTATUS in ('B','C') and a.FDATE>='{1}'", material["Id"], startDate.Date);
                DynamicObjectCollection saleOrderCol = DBUtils.ExecuteDynamicObject(this.Context, sql);
                if (saleOrderCol.Count > 0)
                {
                    qty = dic[number] + Convert.ToDecimal(saleOrderCol[0]["qty"]);
                }
                if (qty > maxQty)
                {
                    ValidationErrorInfo errinfo = new ValidationErrorInfo(
                        "FSeq", //单据体序号标识
                        Convert.ToString(row.DataEntity["Id"]),
                        row.DataEntityIndex,
                        Convert.ToInt32(row["Id"]),
                        "SubmitValidator",                                   //
                        "序号为" + seq + "这行数量大于此物料的最大销量,不允许提交当前销售订单!请更换其他产品.", //提示信息内容
                        "校验失败",                                              //提示信息标题
                        ErrorLevel.Error);

                    //添加错误信息到validateContext中
                    validateContext.AddError(row, errinfo);
                }
            }
        }