/// <summary> /// 根据订单详细唯一编码号获取该订单详细信息以及产品信息 /// </summary> /// <param name="sn"></param> /// <returns></returns> public OrderDetailEntity GetOrderDetailBySnNum(string snNum) { OrderDetailEntity entity = new OrderDetailEntity(); entity.IncludeAll(); ProductEntity ProEntity = new ProductEntity(); ProEntity.Include(a => new { Size = a.Size }); entity.Left <ProductEntity>(ProEntity, new Params <string, string>() { Item1 = "ProductNum", Item2 = "SnNum" }); entity.Where("SnNum", ECondition.Eth, snNum); entity = this.OrderDetail.GetSingle(entity); return(entity); }
/// <summary> /// 查询订单详细 /// </summary> /// <param name="entity"></param> /// <returns></returns> public OrderDetailEntity GetOrderDetail(OrderDetailEntity entity) { entity.IncludeAll(); entity = this.OrderDetail.GetSingle(entity); return(entity); }
/// <summary> /// 审核单据 /// </summary> /// <param name="entity"></param> /// <returns></returns> public override string Audite(OutStorageEntity entity) { if (entity.Status == (int)EAudite.NotPass) { entity.IncludeStatus(true).IncludeReason(true).Where(a => a.OrderNum == entity.OrderNum); int line = this.OutStorage.Update(entity); return(line > 0 ? "1000" : string.Empty); } else if (entity.Status == (int)EAudite.Pass) { Proc_AuditeOutStorageEntity auditeEntity = new Proc_AuditeOutStorageEntity(); auditeEntity.OrderNum = entity.OrderNum; auditeEntity.Status = entity.Status; auditeEntity.AuditUser = entity.AuditUser; auditeEntity.Reason = entity.Reason; auditeEntity.OperateType = entity.OperateType; auditeEntity.EquipmentNum = entity.EquipmentNum; auditeEntity.EquipmentCode = entity.EquipmentCode; auditeEntity.Remark = entity.Remark; int line = this.Proc_AuditeOutStorage.ExecuteNonQuery(auditeEntity); /*** * 如果是销售订单则需要更改订单中的发货数量以及相应的状态 * 1. 查询出库单,判断出库单的类型 * 2. 查询出库单所有的内容详细,判断存在哪些订单 * 3. 统计相应的订单的出库总数量 * 4. 修改订单状态 * */ OutStorageEntity outEntity = new OutStorageEntity(); outEntity.IncludeAll(); outEntity.Where(a => a.OrderNum == entity.OrderNum); outEntity = this.OutStorage.GetSingle(outEntity); OutStoDetailEntity detail = new OutStoDetailEntity(); detail.Where(a => a.OrderNum == entity.OrderNum); detail.IncludeAll(); List <OutStoDetailEntity> listDetail = this.OutStoDetail.GetList(detail); if (outEntity != null && !listDetail.IsNullOrEmpty()) { if (outEntity.OutType == (int)EOutType.Sell) { OutStorageProvider outProvider = new OutStorageProvider(); foreach (var item in listDetail.Where(a => !a.ContractOrder.IsEmpty() && !a.ContractSn.IsEmpty()).GroupBy(a => new { a.ContractOrder, a.ContractSn })) { OutStoDetailEntity tempOutDetail = new OutStoDetailEntity(); tempOutDetail.Where(a => a.ContractOrder == item.Key.ContractOrder).And(a => a.ContractSn == item.Key.ContractSn); List <OutStoDetailEntity> list = outProvider.GetOrderDetail(tempOutDetail); double value = list.Sum(a => a.Num); OrderDetailEntity orderDetail = new OrderDetailEntity(); orderDetail.RealNum = value; orderDetail.IncludeRealNum(true); orderDetail.Where(a => a.SnNum == item.Key.ContractSn).And(a => a.OrderNum == item.Key.ContractOrder); this.OrderDetail.Update(orderDetail); orderDetail = new OrderDetailEntity(); orderDetail.IncludeAll(); orderDetail.And(a => a.OrderNum == item.Key.ContractOrder); List <OrderDetailEntity> listOrderDetail = this.OrderDetail.GetList(orderDetail); bool flag = true; foreach (OrderDetailEntity detailItem in listOrderDetail) { if (detailItem.RealNum < detailItem.Num) { flag = false; } } OrdersEntity order = new OrdersEntity(); if (flag) { order.Status = (int)EOrderStatus.AllDelivery; } else { order.Status = (int)EOrderStatus.PartialDelivery; } order.IncludeStatus(true); order.Where(a => a.OrderNum == item.Key.ContractOrder); this.Orders.Update(order); } } } return(auditeEntity.ReturnValue); } return(string.Empty); }