/// <summary> /// 合同客户选择 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void ddlContract_SelectedIndexChanged(object sender, EventArgs e) { IList <ICriterion> qryList = new List <ICriterion>(); //获取合同信息 ContractInfo contractInfo = Core.Container.Instance.Resolve <IServiceContractInfo>().GetEntity(int.Parse(ddlContract.SelectedValue)); //获取合同价格套系信息 //PriceSetInfo priceSetInfo = Core.Container.Instance.Resolve<IServicePriceSetInfo>().GetEntity(contractInfo.PriceSetID); //根据选择的客户合同更新买赔商品的价格 qryList.Add(Expression.Eq("OrderNO", OrderNO)); IList <ContractPayOrderDetail> orderGoodsList = Core.Container.Instance.Resolve <IServiceContractPayOrderDetail>().GetAllByKeys(qryList); //获取订单信息并更新订单合同信息 ContractPayOrderInfo orderInfo = Core.Container.Instance.Resolve <IServiceContractPayOrderInfo>().GetEntityByFields(qryList); orderInfo.ContractInfo = contractInfo; Core.Container.Instance.Resolve <IServiceContractPayOrderInfo>().Update(orderInfo); //更新订单材料单价信息 foreach (ContractPayOrderDetail goodsInfo in orderGoodsList) { //根据价格套系编号和商品ID获取合同商品价格信息 qryList = new List <ICriterion>(); //qryList.Add(Expression.Eq("SetID", priceSetInfo.ID)); qryList.Add(Expression.Eq("EquipmentID", goodsInfo.GoodTypeID)); PriceSetGoodsInfo priceSetGoodsInfo = Core.Container.Instance.Resolve <IServicePriceSetGoodsInfo>().GetEntityByFields(qryList); if (priceSetGoodsInfo != null) { goodsInfo.GoodsUnitPrice = priceSetGoodsInfo.UnitPrice; goodsInfo.PayAmount = goodsInfo.GoodsNumber * priceSetGoodsInfo.UnitPrice; Core.Container.Instance.Resolve <IServiceContractPayOrderDetail>().Update(goodsInfo); } } //获取订单买赔材料各项明细 BindMainGoodsInfo(); }
/// <summary> /// 合同客户选择 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void ddlContract_SelectedIndexChanged(object sender, EventArgs e) { IList <ICriterion> qryList = new List <ICriterion>(); //获取合同信息 ContractInfo contractInfo = Core.Container.Instance.Resolve <IServiceContractInfo>().GetEntity(int.Parse(ddlContract.SelectedValue)); //获取合同价格套系信息 // PriceSetInfo priceSetInfo = Core.Container.Instance.Resolve<IServicePriceSetInfo>().GetEntity(contractInfo.PriceSetID); //根据选择的客户合同更新收货商品的价格 qryList.Add(Expression.Eq("OrderNO", OrderNO)); IList <ContractOrderDetail> orderGoodsList = Core.Container.Instance.Resolve <IServiceContractOrderDetail>().GetAllByKeys(qryList); foreach (ContractOrderDetail goodsInfo in orderGoodsList) { qryList = new List <ICriterion>(); //qryList.Add(Expression.Eq("SetID", priceSetInfo.ID)); qryList.Add(Expression.Eq("EquipmentID", goodsInfo.GoodsID)); PriceSetGoodsInfo priceSetGoodsInfo = Core.Container.Instance.Resolve <IServicePriceSetGoodsInfo>().GetEntityByFields(qryList); if (priceSetGoodsInfo != null) { goodsInfo.GoodsUnitPrice = priceSetGoodsInfo.DailyRents; Core.Container.Instance.Resolve <IServiceContractOrderDetail>().Update(goodsInfo); } } //更新费用信息 CalcCost(); //更新显示收货信息 BindGrid(); }
/// <summary> /// 合同客户选择 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void ddlContract_SelectedIndexChanged(object sender, EventArgs e) { IList <ICriterion> qryList = new List <ICriterion>(); //获取合同信息 ContractInfo contractInfo = Core.Container.Instance.Resolve <IServiceContractInfo>().GetEntity(int.Parse(ddlContract.SelectedValue)); //获取合同价格套系信息 //PriceSetInfo priceSetInfo = Core.Container.Instance.Resolve<IServicePriceSetInfo>().GetEntity(contractInfo.PriceSetID); //根据选择的客户合同更新发货商品的价格 qryList.Add(Expression.Eq("OrderNO", OrderNO)); IList <ContractOrderDetail> orderGoodsList = Core.Container.Instance.Resolve <IServiceContractOrderDetail>().GetAllByKeys(qryList); //获取订单信息并更新订单合同信息 ContractOrderInfo orderInfo = Core.Container.Instance.Resolve <IServiceContractOrderInfo>().GetEntityByFields(qryList); orderInfo.ContractInfo = contractInfo; Core.Container.Instance.Resolve <IServiceContractOrderInfo>().Update(orderInfo); //更新订单材料单价信息 foreach (ContractOrderDetail goodsInfo in orderGoodsList) { //根据价格套系编号和商品ID获取合同商品价格信息 qryList = new List <ICriterion>(); //qryList.Add(Expression.Eq("SetID", priceSetInfo.ID)); qryList.Add(Expression.Eq("EquipmentID", goodsInfo.GoodsID)); PriceSetGoodsInfo priceSetGoodsInfo = Core.Container.Instance.Resolve <IServicePriceSetGoodsInfo>().GetEntityByFields(qryList); if (priceSetGoodsInfo != null) { goodsInfo.GoodsUnitPrice = priceSetGoodsInfo.DailyRents; //获取材料信息 EquipmentInfo equipmentInfo = Core.Container.Instance.Resolve <IServiceEquipmentInfo>().GetEntity(goodsInfo.GoodsID); //判断物品费用是日租金还是现金买赔 //if (equipmentInfo.IsPayNow == 1) //{ // goodsInfo.GoodsUnitPrice = priceSetGoodsInfo.UnitPrice; //} Core.Container.Instance.Resolve <IServiceContractOrderDetail>().Update(goodsInfo); } } //绑定车辆价格套系 BindCarInfo(); ddlCar.SelectedValue = orderInfo.CarID.ToString(); //更新费用信息 new ContractOrderBase().CalcOrderCost(OrderNO); //更新显示发货信息 BindOrderDetail(); }
protected void Grid1_AfterEdit(object sender, GridAfterEditEventArgs e) { Dictionary <int, Dictionary <string, object> > modifiedDict = Grid1.GetModifiedDict(); foreach (int rowIndex in modifiedDict.Keys) { int rowID = Convert.ToInt32(Grid1.DataKeys[rowIndex][0]); PriceSetGoodsInfo objInfo = Core.Container.Instance.Resolve <IServicePriceSetGoodsInfo>().GetEntity(rowID); if (modifiedDict[rowIndex].Keys.Contains("DailyRents")) { objInfo.DailyRents = Convert.ToDecimal(modifiedDict[rowIndex]["DailyRents"]); } if (modifiedDict[rowIndex].Keys.Contains("UnitPrice")) { objInfo.UnitPrice = Convert.ToDecimal(modifiedDict[rowIndex]["UnitPrice"]); } if (modifiedDict[rowIndex].Keys.Contains("FixPrice")) { objInfo.FixPrice = Convert.ToDecimal(modifiedDict[rowIndex]["FixPrice"]); } if (modifiedDict[rowIndex].Keys.Contains("MinRentingDays")) { objInfo.MinRentingDays = Convert.ToInt32(modifiedDict[rowIndex]["MinRentingDays"]); } if (modifiedDict[rowIndex].Keys.Contains("CustomerUnit")) { objInfo.CustomerUnit = Convert.ToDecimal(modifiedDict[rowIndex]["CustomerUnit"]); } if (modifiedDict[rowIndex].Keys.Contains("DriverUnit")) { objInfo.DriverUnit = Convert.ToDecimal(modifiedDict[rowIndex]["DriverUnit"]); } if (modifiedDict[rowIndex].Keys.Contains("StaffUnit")) { objInfo.StaffUnit = Convert.ToDecimal(modifiedDict[rowIndex]["StaffUnit"]); } Core.Container.Instance.Resolve <IServicePriceSetGoodsInfo>().Update(objInfo); } BindGrid(); }
/// <summary> /// 创建买赔物品明细 /// </summary> /// <param name="orderNO">合同买赔单号</param> private void CreatePayGoodsInfo(string orderNO) { ContractPayOrderDetail payOrderDetail = new ContractPayOrderDetail(); //获取合同信息 ContractInfo contractInfo = Core.Container.Instance.Resolve <IServiceContractInfo>().GetEntity(int.Parse(ddlContract.SelectedValue)); //获取合同价格套系信息 // PriceSetInfo priceSetInfo = Core.Container.Instance.Resolve<IServicePriceSetInfo>().GetEntity(contractInfo.PriceSetID); //获取合同发货主材类别信息 string sql = string.Format(@"select * from EquipmentTypeInfo where id in (select distinct(GoodTypeID) as GoodTypeID from ContractOrderDetail where OrderNO in (select OrderNO from ContractOrderInfo where ContractID ={0} and OrderType=1))", contractInfo.ID); DataSet ds = DbHelperSQL.Query(sql); if (ds.Tables[0] != null) { foreach (DataRow row in ds.Tables[0].Rows) { payOrderDetail = new ContractPayOrderDetail(); payOrderDetail.OrderNO = OrderNO; payOrderDetail.OrderDate = DateTime.Now; payOrderDetail.GoodTypeID = int.Parse(row["ID"].ToString()); payOrderDetail.GoodsNumber = 0; payOrderDetail.GoodsUnit = row["TypeUnit"].ToString(); payOrderDetail.GoodsUnitPrice = decimal.Parse(row["PayForPrice"].ToString()); /*-------------------获取合同价格-------------------*/ EquipmentTypeInfo equipmentTypeInfo = Core.Container.Instance.Resolve <IServiceEquipmentTypeInfo>().GetEntity(payOrderDetail.GoodTypeID); IList <ICriterion> qryList = new List <ICriterion>(); //qryList.Add(Expression.Eq("SetID", priceSetInfo.ID)); qryList.Add(Expression.Eq("EquipmentID", payOrderDetail.GoodTypeID)); PriceSetGoodsInfo priceSetGoodsInfo = Core.Container.Instance.Resolve <IServicePriceSetGoodsInfo>().GetEntityByFields(qryList); if (priceSetGoodsInfo != null) { payOrderDetail.GoodsUnitPrice = priceSetGoodsInfo.UnitPrice; } payOrderDetail.PayAmount = payOrderDetail.GoodsNumber * payOrderDetail.GoodsUnitPrice; //保存赔偿材料信息 Core.Container.Instance.Resolve <IServiceContractPayOrderDetail>().Create(payOrderDetail); } } }
/// <summary> /// 根据费用项费用价格获取类型获取价格 /// </summary> /// <param name="costProjectInfo">费用项信息</param> /// <param name="orderInfo">订单信息</param> /// <returns>价格</returns> private decimal GetCostPayPrice(RepairProjectInfo costProjectInfo, ContractOrderInfo orderInfo) { decimal payPrice = costProjectInfo.PayPrice; IList <ICriterion> qryList = new List <ICriterion>(); //获取费用项适用范围 string[] ids = costProjectInfo.UsingGoods.Split(','); //如果费用单价是从合同获取,根据合同获取单价【费用价格获取类型 0:自定义 1:合同客户运费 2:合同司机运费 3:合同单价 4:合同维修单价】 if (costProjectInfo.PriceSourceType > 0) { switch (costProjectInfo.PriceSourceType) { //合同客户运费(获取合同设定运费) case 1: //payPrice = orderInfo.ContractInfo.CarCostPrice; break; //合同司机运费(获取订单选择的车辆在合同中设定运费) case 2: //获取合同车辆信息 qryList = new List <ICriterion>(); qryList.Add(Expression.Eq("CarID", orderInfo.CarID)); qryList.Add(Expression.Eq("ContractID", orderInfo.ContractInfo.ID)); ContractCarPriceSetInfo carPriceSetInfo = Core.Container.Instance.Resolve <IServiceContractCarPriceSetInfo>().GetEntityByFields(qryList); payPrice = carPriceSetInfo.TonPayPrice; break; //合同单价(获取租赁物品在合同中设定的单价) case 3: if (ids.Length > 0) { qryList = new List <ICriterion>(); // qryList.Add(Expression.Eq("SetID", orderInfo.ContractInfo.PriceSetID)); qryList.Add(Expression.Eq("GoodsTypeID", ids[0])); Order[] orderList = new Order[1]; Order orderli = new Order("ID", true); orderList[0] = orderli; //获取价格套系中物品设定信息 PriceSetGoodsInfo goodsInfo = Core.Container.Instance.Resolve <IServicePriceSetGoodsInfo>().GetFirstEntityByFields(qryList, orderList); //获取物品单价 payPrice = goodsInfo.UnitPrice; } break; //合同维修单价(获取租赁物品在合同中设定的维修价) case 4: if (ids.Length > 0) { qryList = new List <ICriterion>(); //qryList.Add(Expression.Eq("SetID", orderInfo.ContractInfo.PriceSetID)); qryList.Add(Expression.Eq("GoodsTypeID", int.Parse(ids[0]))); Order[] orderList = new Order[1]; Order orderli = new Order("ID", true); orderList[0] = orderli; //获取价格套系中物品设定信息 PriceSetGoodsInfo goodsInfo = Core.Container.Instance.Resolve <IServicePriceSetGoodsInfo>().GetFirstEntityByFields(qryList, orderList); //获取物品维修单价 payPrice = goodsInfo.FixPrice; } break; default: break; } } return(payPrice); }
public bool CreateContractPriceSetInfo(ContractInfo curretnInfo) { //创建报价体系 IList <ICriterion> qryList = new List <ICriterion>(); PriceSetInfo newPriceSetInfo = new PriceSetInfo(); newPriceSetInfo.ContractID = curretnInfo.ID; newPriceSetInfo.IsUsed = "1"; newPriceSetInfo.Remark = ""; newPriceSetInfo.SetDate = DateTime.Now.ToString("yyyyMMdd"); Core.Container.Instance.Resolve <IServicePriceSetInfo>().Create(newPriceSetInfo); //获取当前创建套系的ID qryList = new List <ICriterion>(); qryList.Add(Expression.Eq("SetDate", newPriceSetInfo.SetDate)); qryList.Add(Expression.Eq("ContractID", curretnInfo.ID)); PriceSetInfo priceSetInfo = Core.Container.Instance.Resolve <IServicePriceSetInfo>().GetEntityByFields(qryList); /*------------------创建物品价明细------------------------*/ PriceSetGoodsInfo priceSetGoodsInfo = new PriceSetGoodsInfo(); //获取物品类别,判断报价类型,不参与报价的不需要 qryList = new List <ICriterion>(); qryList.Add(Expression.Eq("IsUsed", "1")); Order[] orderList = new Order[1]; Order orderli = new Order("ID", true); orderList[0] = orderli; IList <EquipmentTypeInfo> listEquipmentType = Core.Container.Instance.Resolve <IServiceEquipmentTypeInfo>().GetAllByKeys(qryList, orderList); foreach (EquipmentTypeInfo typeInfo in listEquipmentType) { ////报价类型 1:按类别统计报价 //if (typeInfo.PriceSetType == 1) //{ // priceSetGoodsInfo = new PriceSetGoodsInfo(); // priceSetGoodsInfo.DailyRents = typeInfo.RentPrice; // priceSetGoodsInfo.EquipmentID = typeInfo.ID; // priceSetGoodsInfo.MinRentingDays = typeInfo.MinRentingDays; // priceSetGoodsInfo.UnitPrice = typeInfo.PayForPrice; // priceSetGoodsInfo.SetID = priceSetInfo.ID; // priceSetGoodsInfo.SetDate = priceSetInfo.SetDate; // priceSetGoodsInfo.FixPrice = typeInfo.FixPrice; // priceSetGoodsInfo.GoodsTypeID = typeInfo.ID; // priceSetGoodsInfo.CustomerUnit = typeInfo.CustomerUnit; // priceSetGoodsInfo.DriverUnit = typeInfo.DriverUnit; // priceSetGoodsInfo.StaffUnit = typeInfo.StaffUnit; // priceSetGoodsInfo.IsGoodType = 1; // Core.Container.Instance.Resolve<IServicePriceSetGoodsInfo>().Create(priceSetGoodsInfo); //} ////报价类型 2:按物品分别报价 //if (typeInfo.PriceSetType == 2) //{ // qryList = new List<ICriterion>(); // qryList.Add(Expression.Eq("IsUsed", "1")); // qryList.Add(Expression.Eq("EquipmentTypeID", typeInfo.ID)); // IList<EquipmentInfo> listEquipment = Core.Container.Instance.Resolve<IServiceEquipmentInfo>().GetAllByKeys(qryList, orderList); // foreach (EquipmentInfo obj in listEquipment) // { // priceSetGoodsInfo = new PriceSetGoodsInfo(); // priceSetGoodsInfo.DailyRents = obj.DailyRents; // priceSetGoodsInfo.EquipmentID = obj.ID; // priceSetGoodsInfo.MinRentingDays = obj.MinRentingDays; // priceSetGoodsInfo.UnitPrice = obj.UnitPrice; // priceSetGoodsInfo.SetID = priceSetInfo.ID; // priceSetGoodsInfo.SetDate = priceSetInfo.SetDate; // priceSetGoodsInfo.FixPrice = obj.FixPrice; // priceSetGoodsInfo.GoodsTypeID = obj.EquipmentTypeID; // priceSetGoodsInfo.CustomerUnit = obj.CustomerUnit; // priceSetGoodsInfo.DriverUnit = obj.DriverUnit; // priceSetGoodsInfo.StaffUnit = obj.StaffUnit; // priceSetGoodsInfo.IsGoodType = 2; // Core.Container.Instance.Resolve<IServicePriceSetGoodsInfo>().Create(priceSetGoodsInfo); // } //} ////报价类型 3:不参与合同报价 //if (typeInfo.PriceSetType == 3) //{ // continue; //} } //更新合同价格套系信息 //curretnInfo.PriceSetID = priceSetInfo.ID; Core.Container.Instance.Resolve <IServiceContractInfo>().Update(curretnInfo); return(true); }
private void SaveItem() { // 从每个选中的行中获取ID(在Grid1中定义的DataKeyNames) List <int> ids = GetSelectedDataKeyIDs(Grid1); WHGoodsDetail whGoodsEntity = new WHGoodsDetail(); ContractOrderDetail dbEntity = new ContractOrderDetail(); IList <ICriterion> qryList = new List <ICriterion>(); PriceSetInfo priceSetInfo = new PriceSetInfo(); //获取合同信息 ContractInfo contractInfo = Core.Container.Instance.Resolve <IServiceContractInfo>().GetEntity(ContractID); // 执行数据库操作 foreach (int ID in ids) { //获取物品信息 whGoodsEntity = Core.Container.Instance.Resolve <IServiceWHGoodsDetail>().GetEntity(ID); if (whGoodsEntity != null) { whGoodsEntity.GoodsInfo = Core.Container.Instance.Resolve <IServiceEquipmentInfo>().GetEntity(whGoodsEntity.GoodsID); //判断是否已经添加改商品物品 if (whGoodsEntity.GoodsInfo != null && !IsExists(whGoodsEntity.GoodsID)) { #region 主材 dbEntity = new ContractOrderDetail(); dbEntity.OrderNO = OrderNO; dbEntity.OrderDate = DateTime.Now; dbEntity.GoodsID = whGoodsEntity.GoodsID; dbEntity.GoodTypeID = whGoodsEntity.GoodsTypeID; dbEntity.GoodsNumber = 1; dbEntity.FormerlyGoodsNumber = 1; dbEntity.FixGoodsNumber = 0; dbEntity.GoodsUnit = whGoodsEntity.InventoryUnit; //dbEntity.GoodsCalcUnit = whGoodsEntity.GoodsInfo.CalcPriceUnit; //dbEntity.NotOffsetNumber = dbEntity.GoodsNumber; //dbEntity.GoodCalcPriceNumber = dbEntity.GoodsNumber * whGoodsEntity.GoodsInfo.Standard; //dbEntity.PayUnit = whGoodsEntity.GoodsInfo.PayUnit; /*-------------------获取价格-------------------*/ //获取主材类别,根据类别的报价策略获取价格 EquipmentTypeInfo equipmentTypeInfo = Core.Container.Instance.Resolve <IServiceEquipmentTypeInfo>().GetEntity(whGoodsEntity.GoodsInfo.EquipmentTypeID); //dbEntity.IsStockByRepaired = equipmentTypeInfo.IsStockByRepaired; //priceSetInfo = Core.Container.Instance.Resolve<IServicePriceSetInfo>().GetEntity(contractInfo.PriceSetID); qryList = new List <ICriterion>(); qryList.Add(Expression.Eq("SetID", priceSetInfo.ID)); // 报价类型 1:按类别统计报价 2:按物品分别报价 3:不参与合同报价 //if (equipmentTypeInfo.PriceSetType == 1) //{ // qryList.Add(Expression.Eq("EquipmentID", whGoodsEntity.GoodsInfo.EquipmentTypeID)); //} //if (equipmentTypeInfo.PriceSetType == 2) //{ // qryList.Add(Expression.Eq("EquipmentID", whGoodsEntity.GoodsID)); //} PriceSetGoodsInfo priceSetGoodsInfo = Core.Container.Instance.Resolve <IServicePriceSetGoodsInfo>().GetEntityByFields(qryList); if (priceSetGoodsInfo != null) { dbEntity.GoodsUnitPrice = priceSetGoodsInfo.DailyRents; //判断物品费用是日租金还是现金买赔 //if (whGoodsEntity.GoodsInfo.IsPayNow == 1) //{ // dbEntity.GoodsUnitPrice = priceSetGoodsInfo.UnitPrice; //} } else { // dbEntity.GoodsUnitPrice = whGoodsEntity.GoodsInfo.DailyRents; //判断物品费用是日租金还是现金买赔 //if (whGoodsEntity.GoodsInfo.IsPayNow == 1) //{ // dbEntity.GoodsUnitPrice = whGoodsEntity.GoodsInfo.UnitPrice; //} } dbEntity.NotOffsetNumber = 1; dbEntity.WareHouseID = int.Parse(ddlWH.SelectedValue); //保存领用主材信息 Core.Container.Instance.Resolve <IServiceContractOrderDetail>().Create(dbEntity); #endregion 主材 //辅材列表 if (OrderType == 1) { //创建发货单辅材信息 CreateFHSecondaryDetail(dbEntity, priceSetInfo, whGoodsEntity); } else { //创建收货单辅材信息 CreateSHSecondaryDetail(dbEntity, priceSetInfo, whGoodsEntity); } } } } }
/// <summary> /// 各类费用计算 /// </summary> /// <param name="costInfo">费用项信息</param> private void CalcCost(ContractOrderCostInfo costInfo) { //获取费用项信息 RepairProjectInfo costProjectInfo = Core.Container.Instance.Resolve <IServiceRepairProjectInfo>().GetEntity(costInfo.CostID); //获取费用项适用范围 string[] ids = costProjectInfo.UsingGoods.Split(','); //获取订单信息 IList <ICriterion> qryList = new List <ICriterion>(); qryList = new List <ICriterion>(); qryList.Add(Expression.Eq("OrderNO", OrderNO)); ContractOrderInfo orderInfo = Core.Container.Instance.Resolve <IServiceContractOrderInfo>().GetEntityByFields(qryList); #region 获取费用项单价 costInfo.PayPrice = costProjectInfo.PayPrice; //如果费用单价是从合同获取,根据合同获取单价【费用价格获取类型 0:自定义 1:合同客户运费 2:合同司机运费 3:合同单价 4:合同维修单价】 if (costProjectInfo.PriceSourceType > 0) { switch (costProjectInfo.PriceSourceType) { //合同客户运费(获取合同设定运费) case 1: //costInfo.PayPrice = orderInfo.ContractInfo.CarCostPrice; break; //合同司机运费(获取订单选择的车辆在合同中设定运费) case 2: //获取合同车辆信息 qryList = new List <ICriterion>(); qryList.Add(Expression.Eq("CarID", orderInfo.CarID)); ContractCarPriceSetInfo carPriceSetInfo = Core.Container.Instance.Resolve <IServiceContractCarPriceSetInfo>().GetEntityByFields(qryList); costInfo.PayPrice = carPriceSetInfo.TonPayPrice; break; //合同单价(获取租赁物品在合同中设定的单价) case 3: if (ids.Length > 0) { qryList = new List <ICriterion>(); //qryList.Add(Expression.Eq("SetID", orderInfo.ContractInfo.PriceSetID)); qryList.Add(Expression.Eq("GoodsTypeID", ids[0])); Order[] orderList = new Order[1]; Order orderli = new Order("ID", true); orderList[0] = orderli; //获取价格套系中物品设定信息 PriceSetGoodsInfo goodsInfo = Core.Container.Instance.Resolve <IServicePriceSetGoodsInfo>().GetFirstEntityByFields(qryList, orderList); //获取物品单价 costInfo.PayPrice = goodsInfo.UnitPrice; } break; //合同维修单价(获取租赁物品在合同中设定的维修价) case 4: if (ids.Length > 0) { qryList = new List <ICriterion>(); //qryList.Add(Expression.Eq("SetID", orderInfo.ContractInfo.PriceSetID)); qryList.Add(Expression.Eq("GoodsTypeID", ids[0])); Order[] orderList = new Order[1]; Order orderli = new Order("ID", true); orderList[0] = orderli; //获取价格套系中物品设定信息 PriceSetGoodsInfo goodsInfo = Core.Container.Instance.Resolve <IServicePriceSetGoodsInfo>().GetFirstEntityByFields(qryList, orderList); //获取物品维修单价 costInfo.PayPrice = goodsInfo.FixPrice; } break; default: break; } } #endregion 获取费用项单价 #region 获取费用项计价数量 string sql = string.Empty; //1:数量 2:计价单位 3:客户吨位 4:员工吨位 5:司机吨位 6:其他 switch (costProjectInfo.PayUnit) { //收货出库数量,收货明细表:GoodsNumber case "1": //获取运送获取重量信息 if (!string.IsNullOrEmpty(costProjectInfo.UsingGoods)) { sql = string.Format(@"select sum(GoodsNumber) as GoodsNumber from ContractOrderDetail where OrderNO ='{0}' and GoodTypeID in ({1}) ", OrderNO, costProjectInfo.UsingGoods.TrimEnd(',')); DataSet ds = DbHelperSQL.Query(sql); if (ds.Tables[0] != null) { costInfo.OrderNumber = decimal.Parse(ds.Tables[0].Rows[0]["GoodsNumber"].ToString()); } } break; //收货计价单位,例如米,收货明细表:GoodCalcPriceNumber case "2": //获取运送获取重量信息 if (!string.IsNullOrEmpty(costProjectInfo.UsingGoods)) { sql = string.Format(@"select isnull(sum(GoodCalcPriceNumber),0) as GoodsNumber from ContractOrderDetail where OrderNO ='{0}' and GoodTypeID in ({1}) ", OrderNO, costProjectInfo.UsingGoods.TrimEnd(',')); DataSet ds = DbHelperSQL.Query(sql); if (ds.Tables[0] != null) { costInfo.OrderNumber = decimal.Parse(ds.Tables[0].Rows[0]["GoodsNumber"].ToString()); } } break; //客户吨位,收货明细表:GoodsCustomerWeight case "3": //获取运送获取重量信息 if (!string.IsNullOrEmpty(costProjectInfo.UsingGoods)) { sql = string.Format(@"select isnull(sum(GoodsCustomerWeight),0) as GoodsNumber from ContractOrderDetail where OrderNO ='{0}' and GoodTypeID in ({1}) ", OrderNO, costProjectInfo.UsingGoods.TrimEnd(',')); DataSet ds = DbHelperSQL.Query(sql); if (ds.Tables[0] != null) { costInfo.OrderNumber = decimal.Parse(ds.Tables[0].Rows[0]["GoodsNumber"].ToString()); } } break; //员工吨位,收货明细表:GoodsStaffWeight case "4": //获取运送获取重量信息 if (!string.IsNullOrEmpty(costProjectInfo.UsingGoods)) { sql = string.Format(@"select isnull(sum(GoodsStaffWeight),0) as GoodsNumber from ContractOrderDetail where OrderNO ='{0}' and GoodTypeID in ({1}) ", OrderNO, costProjectInfo.UsingGoods.TrimEnd(',')); DataSet ds = DbHelperSQL.Query(sql); if (ds.Tables[0] != null) { costInfo.OrderNumber = decimal.Parse(ds.Tables[0].Rows[0]["GoodsNumber"].ToString()); } } break; //司机吨位,收货明细表:GoodsDriverWeight case "5": //获取运送获取重量信息 if (!string.IsNullOrEmpty(costProjectInfo.UsingGoods)) { sql = string.Format(@"select isnull(sum(GoodsDriverWeight),0) as GoodsNumber from ContractOrderDetail where OrderNO ='{0}' and GoodTypeID in ({1}) ", OrderNO, costProjectInfo.UsingGoods.TrimEnd(',')); DataSet ds = DbHelperSQL.Query(sql); if (ds.Tables[0] != null) { costInfo.OrderNumber = decimal.Parse(ds.Tables[0].Rows[0]["GoodsNumber"].ToString()); } } break; //其他,默认1 case "6": costInfo.OrderNumber = 1; break; default: costInfo.OrderNumber = 1; break; } #endregion 获取费用项计价数量 //更新费用项信息 costInfo.CostAmount = costInfo.PayPrice * costInfo.OrderNumber; Core.Container.Instance.Resolve <IServiceContractOrderCostInfo>().Update(costInfo); }