/// <summary>
        /// 销售退货单分页列表
        /// </summary>
        /// <returns></returns>
        public ActionResult GetOrderList()
        {
            string CompanyID = WebUtil.GetFormValue <string>("CompanyID");
            int    PageIndex = WebUtil.GetFormValue <int>("PageIndex", 1);
            int    PageSize  = WebUtil.GetFormValue <int>("PageSize", 10);
            string OrderNum  = WebUtil.GetFormValue <string>("OrderNum");

            string SupNum           = WebUtil.GetFormValue <string>("SupNum");
            string SupName          = WebUtil.GetFormValue <string>("SupName");
            string Contact          = WebUtil.GetFormValue <string>("Contact");
            string Phone            = WebUtil.GetFormValue <string>("Phone");
            string PurchaseSnNum    = WebUtil.GetFormValue <string>("PurchaseSnNum");
            string PurchaseOrderNum = WebUtil.GetFormValue <string>("PurchaseOrderNum");

            int    Status    = WebUtil.GetFormValue <int>("Status", 0);
            string BeginTime = WebUtil.GetFormValue <string>("BeginTime");
            string EndTime   = WebUtil.GetFormValue <string>("EndTime");

            Bill <PurchaseReturnEntity, PurchaseReturnDetailEntity> bill = new PurchaseReturnOrder(CompanyID);
            PurchaseReturnEntity entity = new PurchaseReturnEntity();

            entity.OrderNum         = OrderNum;
            entity.SupNum           = SupNum;
            entity.SupName          = SupName;
            entity.Contact          = Contact;
            entity.Phone            = Phone;
            entity.PurchaseSnNum    = PurchaseSnNum;
            entity.PurchaseOrderNum = PurchaseOrderNum;
            entity.Status           = Status;
            entity.BeginTime        = BeginTime;
            entity.EndTime          = EndTime;

            PageInfo pageInfo = new PageInfo()
            {
                PageIndex = PageIndex, PageSize = PageSize
            };

            List <PurchaseReturnEntity>           listResult = bill.GetList(entity, ref pageInfo);
            DataListResult <PurchaseReturnEntity> dataResult = new DataListResult <PurchaseReturnEntity>()
            {
                Code     = (int)EResponseCode.Success,
                Message  = "响应成功",
                Result   = listResult,
                PageInfo = pageInfo
            };

            return(Content(JsonHelper.SerializeObject(dataResult)));
        }
        /// <summary>
        /// 查询采购退货单
        /// </summary>
        /// <returns></returns>
        public ActionResult GetOrder()
        {
            string SnNum                = WebUtil.GetFormValue <string>("SnNum");
            string CompanyID            = WebUtil.GetFormValue <string>("CompanyID", string.Empty);
            PurchaseReturnEntity entity = new PurchaseReturnEntity();

            entity.SnNum     = SnNum;
            entity.CompanyID = CompanyID;
            Bill <PurchaseReturnEntity, PurchaseReturnDetailEntity> bill = new PurchaseReturnOrder(CompanyID);
            PurchaseReturnEntity result = bill.GetOrder(entity);

            DataResult <PurchaseReturnEntity> dataResult = new DataResult <PurchaseReturnEntity>();

            dataResult.Code    = (int)EResponseCode.Success;
            dataResult.Message = "响应成功";
            dataResult.Result  = result;
            return(Content(JsonHelper.SerializeObject(dataResult)));
        }
        /// <summary>
        /// 审核采购退货单
        /// </summary>
        /// <returns></returns>
        public ActionResult Audite()
        {
            string SnNum         = WebUtil.GetFormValue <string>("SnNum");
            string CompanyID     = WebUtil.GetFormValue <string>("CompanyID", string.Empty);
            int    Status        = WebUtil.GetFormValue <int>("Status", (int)EAudite.NotPass);
            string AuditUser     = WebUtil.GetFormValue <string>("AuditUser", string.Empty);
            string Reason        = WebUtil.GetFormValue <string>("Reason", string.Empty);
            int    OperateType   = WebUtil.GetFormValue <int>("OperateType", 0);
            string EquipmentNum  = WebUtil.GetFormValue <string>("EquipmentNum");
            string EquipmentCode = WebUtil.GetFormValue <string>("EquipmentCode");
            string Remark        = WebUtil.GetFormValue <string>("Remark");

            PurchaseReturnEntity entity = new PurchaseReturnEntity();

            entity.SnNum     = SnNum;
            entity.CompanyID = CompanyID;
            entity.Status    = Status;
            entity.Reason    = Reason;
            entity.Remark    = Remark;

            Bill <PurchaseReturnEntity, PurchaseReturnDetailEntity> bill = new PurchaseReturnOrder(CompanyID);
            string     returnValue = bill.Audite(entity);
            DataResult result      = new DataResult();

            if ("1000" == returnValue)
            {
                result.Code    = (int)EResponseCode.Success;
                result.Message = "操作成功";
            }
            else if ("1001" == returnValue)
            {
                result.Code    = (int)EResponseCode.Exception;
                result.Message = "采购退货单不存在";
            }
            else if ("1002" == returnValue)
            {
                result.Code    = (int)EResponseCode.Exception;
                result.Message = "采购退货单已经审核";
            }
            return(Content(JsonHelper.SerializeObject(result)));
        }
        public ActionResult Detail()
        {
            string SnNum = WebUtil.GetQueryStringValue <string>("SnNum");

            PurchaseReturnEntity entity = null;

            if (!SnNum.IsEmpty())
            {
                ITopClient client = new TopClientDefault();
                Dictionary <string, string> dic = new Dictionary <string, string>();

                dic.Add("CompanyID", CompanyID);
                dic.Add("SnNum", SnNum);

                string result = client.Execute(PurchaseReturnApiName.PurchaseReturnApiName_GetOrder, dic);
                DataResult <PurchaseReturnEntity> dataResult = JsonConvert.DeserializeObject <DataResult <PurchaseReturnEntity> >(result);
                entity = dataResult.Result;
            }
            entity         = entity.IsNull() ? new PurchaseReturnEntity() : entity;
            ViewBag.Entity = entity;
            return(View());
        }
        /// <summary>
        /// 编辑采购退货单
        /// </summary>
        /// <returns></returns>
        public ActionResult Edit()
        {
            string CompanyID                       = WebUtil.GetFormValue <string>("CompanyID", string.Empty);
            PurchaseReturnEntity entity            = WebUtil.GetFormObject <PurchaseReturnEntity>("Entity");
            List <PurchaseReturnDetailEntity> list = WebUtil.GetFormObject <List <PurchaseReturnDetailEntity> >("List");

            Bill <PurchaseReturnEntity, PurchaseReturnDetailEntity> bill = new PurchaseReturnOrder(CompanyID);
            string     returnValue = bill.EditOrder(entity, list);
            DataResult result      = new DataResult();

            if (EnumHelper.GetEnumDesc <EReturnStatus>(EReturnStatus.Success) == returnValue)
            {
                result.Code    = (int)EResponseCode.Success;
                result.Message = "采购退货单编辑成功";
            }
            else
            {
                result.Code    = (int)EResponseCode.Exception;
                result.Message = "采购退货单编辑失败";
            }
            return(Content(JsonHelper.SerializeObject(result)));
        }
        /// <summary>
        /// 取消采购退货单
        /// </summary>
        /// <returns></returns>
        public ActionResult Cancel()
        {
            string SnNum                = WebUtil.GetFormValue <string>("SnNum");
            string CompanyID            = WebUtil.GetFormValue <string>("CompanyID", string.Empty);
            PurchaseReturnEntity entity = new PurchaseReturnEntity();

            entity.SnNum     = SnNum;
            entity.CompanyID = CompanyID;
            Bill <PurchaseReturnEntity, PurchaseReturnDetailEntity> bill = new PurchaseReturnOrder(CompanyID);
            string     returnValue = bill.Cancel(entity);
            DataResult result      = new DataResult();

            if (EnumHelper.GetEnumDesc <EReturnStatus>(EReturnStatus.Success) == returnValue)
            {
                result.Code    = (int)EResponseCode.Success;
                result.Message = "操作成功";
            }
            else
            {
                result.Code    = (int)EResponseCode.Exception;
                result.Message = "操作失败";
            }
            return(Content(JsonHelper.SerializeObject(result)));
        }
Exemplo n.º 7
0
        /// <summary>
        /// 采购退货单
        /// </summary>
        /// <param name="SnNum"></param>
        /// <param name="list"></param>
        /// <returns></returns>
        public DataResult ToReturn(string SnNum, List <PurchaseDetailEntity> list)
        {
            PurchaseEntity entity = new PurchaseEntity();

            entity.SnNum = SnNum;
            entity       = this.GetOrder(entity);
            DataResult result = new DataResult();

            if (entity == null)
            {
                result.Code    = 1001;
                result.Message = "采购订单不存在";
                return(result);
            }
            if (entity.Status == (int)EPurchaseStatus.AllIn || entity.Status == (int)EPurchaseStatus.PartialIn)
            {
                result.Code    = 1002;
                result.Message = "该采购单已经入库,不能退货操作";
                return(result);
            }
            PurchaseDetailEntity detailEntity = new PurchaseDetailEntity();

            detailEntity.OrderSnNum = SnNum;
            List <PurchaseDetailEntity> listSource = this.GetOrderDetail(detailEntity);

            if (listSource.IsNullOrEmpty())
            {
                result.Code    = 1003;
                result.Message = "采购订单中不存在出库货品";
                return(result);
            }
            using (TransactionScope ts = new TransactionScope())
            {
                foreach (PurchaseDetailEntity item in list)
                {
                    if (item.Qty > 0)
                    {
                        PurchaseReturnDetailEntity returnDetail = new PurchaseReturnDetailEntity();
                        returnDetail.IncludeAll();
                        returnDetail
                        .Where(a => a.CompanyID == this.CompanyID)
                        .And(a => a.PurchaseDetailSn == item.SnNum)
                        ;
                        PurchaseReturnEntity returnItem = new PurchaseReturnEntity();
                        returnItem.And(a => a.IsDelete == (int)EIsDelete.NotDelete)
                        ;
                        returnDetail.Left <PurchaseReturnEntity>(returnItem, new Params <string, string>()
                        {
                            Item1 = "OrderSnNum", Item2 = "SnNum"
                        });

                        List <PurchaseReturnDetailEntity> listDetail = this.PurchaseReturnDetail.GetList(returnDetail);

                        if (listDetail != null && listDetail.Where(a => a.PurchaseDetailSn == item.SnNum).Sum(a => a.ReturnNum) >= item.Num)
                        {
                            result.Code    = 1006;
                            result.Message = string.Format("货品[{0}]已经全部退货,请勿重复申请退货", item.ProductName);
                            return(result);
                        }
                    }
                }

                string returnValue = string.Empty;

                Bill <PurchaseReturnEntity, PurchaseReturnDetailEntity> bill = new PurchaseReturnOrder(this.CompanyID);
                PurchaseReturnEntity PurchaseReturnEntity = new PurchaseReturnEntity();
                PurchaseReturnEntity.SupSnNum         = entity.SupSnNum;
                PurchaseReturnEntity.SupNum           = entity.SupNum;
                PurchaseReturnEntity.SupName          = entity.SupName;
                PurchaseReturnEntity.Contact          = entity.Contact;
                PurchaseReturnEntity.Phone            = entity.Phone;
                PurchaseReturnEntity.PurchaseSnNum    = entity.SnNum;
                PurchaseReturnEntity.PurchaseOrderNum = entity.OrderNum;
                PurchaseReturnEntity.CompanyID        = this.CompanyID;

                List <PurchaseReturnDetailEntity> listReturnDetail = new List <PurchaseReturnDetailEntity>();
                foreach (PurchaseDetailEntity item in list)
                {
                    if (item.Qty > 0)
                    {
                        PurchaseReturnDetailEntity DetailEntity = new PurchaseReturnDetailEntity();
                        DetailEntity.SnNum            = ConvertHelper.NewGuid();
                        DetailEntity.ProductName      = item.ProductName;
                        DetailEntity.BarCode          = item.BarCode;
                        DetailEntity.ProductNum       = item.ProductNum;
                        DetailEntity.Num              = item.Num;
                        DetailEntity.ReturnNum        = item.Qty;
                        DetailEntity.UnitNum          = item.UnitNum;
                        DetailEntity.Price            = item.Price;
                        DetailEntity.Amount           = item.Price * item.Qty;
                        DetailEntity.ReturnTime       = DateTime.Now;
                        DetailEntity.PurchaseDetailSn = item.SnNum;
                        DetailEntity.CompanyID        = this.CompanyID;
                        DetailEntity.CreateTime       = DateTime.Now;

                        listReturnDetail.Add(DetailEntity);
                    }
                }

                returnValue = bill.Create(PurchaseReturnEntity, listReturnDetail);

                if (EnumHelper.GetEnumDesc <EReturnStatus>(EReturnStatus.Success) == returnValue)
                {
                    Task.Factory.StartNew(() =>
                    {
                        foreach (PurchaseDetailEntity DetailItem in listSource)
                        {
                            PurchaseReturnDetailEntity returnDetail = new PurchaseReturnDetailEntity();
                            returnDetail.IncludeAll();
                            returnDetail
                            .Where(a => a.CompanyID == this.CompanyID)
                            .And(a => a.PurchaseDetailSn == DetailItem.SnNum)
                            ;
                            PurchaseReturnEntity returnItem = new PurchaseReturnEntity();
                            returnItem.And(a => a.IsDelete == (int)EIsDelete.NotDelete)
                            ;
                            returnDetail.Left <PurchaseReturnEntity>(returnItem, new Params <string, string>()
                            {
                                Item1 = "OrderSnNum", Item2 = "SnNum"
                            });

                            List <PurchaseReturnDetailEntity> listDetail = this.PurchaseReturnDetail.GetList(returnDetail);
                            if (!listDetail.IsNullOrEmpty())
                            {
                                double ReturnNum = listDetail.Sum(a => a.ReturnNum);
                                DetailItem.IncludeReturnNum(true);
                                DetailItem.ReturnNum = ReturnNum;
                                DetailItem.Where(a => a.SnNum == DetailItem.SnNum).And(a => a.CompanyID == this.CompanyID);
                                this.PurchaseDetail.Update(DetailItem);
                            }
                        }
                        PurchaseEntity PurchaseItem = new PurchaseEntity();
                        PurchaseItem.HasReturn      = (int)EBool.Yes;
                        PurchaseItem.IncludeHasReturn(true);
                        PurchaseItem.Where(a => a.SnNum == SnNum).And(a => a.CompanyID == this.CompanyID);
                        this.Purchase.Update(PurchaseItem);
                    });
                    result.Code    = (int)EResponseCode.Success;
                    result.Message = "采购退货单创建成功";
                }
                else
                {
                    result.Code    = (int)EResponseCode.Exception;
                    result.Message = "采购退货单创建失败";
                }
                ts.Complete();
            }
            return(result);
        }