/// <summary> /// 保存厂家成本信息 /// </summary> public void CreateCostInfo() { IList <ICriterion> qryList = new List <ICriterion>(); qryList.Add(Expression.Eq("ContractID", InfoID)); qryList.Add(Expression.Eq("SuppilerID", int.Parse(ddlSupply.SelectedValue))); qryList.Add(Expression.Eq("CostType", 1)); ContractCostInfo objInfo = Core.Container.Instance.Resolve <IServiceContractCostInfo>().GetEntityByFields(qryList); if (objInfo == null) { objInfo = new ContractCostInfo(); objInfo.ContractID = InfoID; objInfo.CostAmount = 0; objInfo.CostType = 1; objInfo.SuppilerID = int.Parse(ddlSupply.SelectedValue); objInfo.SuppilerName = ddlSupply.SelectedText; objInfo.PayAmount = 0; objInfo.SuppilerState = 1; objInfo.ProduceState = 1; objInfo.SendingState = 0; objInfo.ProduceRemark = "下单"; Core.Container.Instance.Resolve <IServiceContractCostInfo>().Create(objInfo); } }
/// <summary> /// 五金明细编辑 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void gdHandWare_AfterEdit(object sender, GridAfterEditEventArgs e) { Dictionary <int, Dictionary <string, object> > modifiedDict = gdHandWare.GetModifiedDict(); ContractInfo contractInfo = Core.Container.Instance.Resolve <IServiceContractInfo>().GetEntity(OrderID); foreach (int rowIndex in modifiedDict.Keys) { //根据绑定列的记录编号,获取发货物品信息和物品基本信息 int rowID = Convert.ToInt32(gdHandWare.DataKeys[rowIndex][0]); ContractCostInfo objInfo = Core.Container.Instance.Resolve <IServiceContractCostInfo>().GetEntity(rowID); //修改成本单价 if (modifiedDict[rowIndex].Keys.Contains("CostAmount")) { objInfo.CostAmount = Convert.ToDecimal(modifiedDict[rowIndex]["CostAmount"]); objInfo.ProduceState = 1; contractInfo.ContractState = 4; } //修改生产备注 if (modifiedDict[rowIndex].Keys.Contains("ProduceRemark")) { objInfo.ProduceRemark = modifiedDict[rowIndex]["ProduceRemark"].ToString(); } //修改生产状态 if (modifiedDict[rowIndex].Keys.Contains("ProduceState")) { //判断订单状态是否是生产中或者生产完成,其他状态不能修改生产状态 if (contractInfo.ContractState == 3 || contractInfo.ContractState == 4) { objInfo.ProduceState = Convert.ToInt32(modifiedDict[rowIndex]["ProduceState"]); } } //更新订单明细 Core.Container.Instance.Resolve <IServiceContractCostInfo>().Update(objInfo); } //判断是否所有厂家产品都生产完成 IList <ICriterion> qryList = new List <ICriterion>(); qryList.Add(Expression.Eq("ContractID", OrderID)); qryList.Add(Expression.Eq("ProduceState", 1)); Order[] orderList = new Order[1]; Order orderli = new Order("ID", true); orderList[0] = orderli; IList <ContractCostInfo> list = Core.Container.Instance.Resolve <IServiceContractCostInfo>().GetAllByKeys(qryList, orderList); //更新合同整体进度,如果厂商都生产完成,合同整体进度为生产完成,否则为生产中 if (list.Count == 0) { contractInfo.ContractState = 5; } Core.Container.Instance.Resolve <IServiceContractInfo>().Update(contractInfo); //重新加载 BindGrid(); //更新订单生产成本 CalcCost(); }