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; } } } }
//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(); }
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); } } }
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; }
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); } } }