public ActionResult Print()
        {
            string orderNum = WebUtil.GetQueryStringValue <string>("orderNum", string.Empty);
            Bill <OutStorageEntity, OutStoDetailEntity> bill = new OutStorageOrder();
            OutStorageEntity entity = new OutStorageEntity();

            entity.OrderNum = orderNum;
            entity          = bill.GetOrder(entity);
            entity          = entity.IsNull() ? new OutStorageEntity() : entity;
            ViewBag.Entity  = entity;

            OutStoDetailEntity detail = new OutStoDetailEntity();

            detail.OrderNum = orderNum;
            List <OutStoDetailEntity> listResult = bill.GetOrderDetail(detail);

            listResult = listResult.IsNull() ? new List <OutStoDetailEntity>() : listResult;
            OrderProvider orderProvider = new OrderProvider();

            foreach (OutStoDetailEntity item in listResult)
            {
                OrderDetailEntity orderDetail = new OrderDetailEntity();
                orderDetail.Where(a => a.SnNum == item.ContractSn).And(a => a.OrderNum == item.ContractOrder);
                orderDetail = orderProvider.GetOrderDetail(orderDetail);
                if (orderDetail != null)
                {
                    item.Qty = orderDetail.Num;
                }
            }
            ViewBag.Detail = listResult;
            return(View());
        }
Exemple #2
0
        /// <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);
        }
Exemple #3
0
        /// <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);
        }