Ejemplo n.º 1
0
        public static OPResult SendBack(BillGoodReturnForSearch entity)
        {
            if (entity.Status == (int)BillGoodReturnStatusEnum.已入库)
            {
                return(new OPResult {
                    IsSucceed = false, Message = "已入库单据不能退回."
                });
            }
            if (entity.Status == (int)BillGoodReturnStatusEnum.被退回)
            {
                return(new OPResult {
                    IsSucceed = false, Message = "该单已退回."
                });
            }
            var            lp   = VMGlobal.DistributionQuery.LinqOP;
            BillGoodReturn bill = lp.GetById <BillGoodReturn>(entity.ID);

            bill.Status = (int)BillGoodReturnStatusEnum.被退回;
            bill.Remark = entity.Remark;
            try
            {
                lp.Update <BillGoodReturn>(bill);
            }
            catch (Exception e)
            {
                return(new OPResult {
                    IsSucceed = false, Message = "退回失败\n失败原因:" + e.Message
                });
            }
            entity.Status = (int)BillGoodReturnStatusEnum.被退回;
            return(new OPResult {
                IsSucceed = true, Message = "退回成功."
            });
        }
Ejemplo n.º 2
0
        public override OPResult Save()
        {
            BillGoodReturn goodreturn = VMGlobal.DistributionQuery.LinqOP.Search <BillGoodReturn>(o => o.Code == Master.RefrenceBillCode).First();

            if (goodreturn.Status == (int)BillGoodReturnStatusEnum.已入库)
            {
                return new OPResult {
                           IsSucceed = false, Message = "该单已入库"
                }
            }
            ;
            //var uniqueCodes = GetSnapshotDetails(goodreturn.ID);
            if (!OrganizationListVM.IsSelfRunShop(goodreturn.OrganizationID))//检查当初发这些货品的时候的发货价.另:非自营店不能退不是发给自己的货物
            {
                //var index = goodreturn.Remark.LastIndexOf(':');
                //if (index != -1)
                //{
                ReturnMoney = goodreturn.TotalPrice;//Convert.ToDecimal(goodreturn.Remark.Substring(index + 1));
                //}
            }
            goodreturn.Status = (int)BillGoodReturnStatusEnum.已入库;
            using (TransactionScope scope = new TransactionScope())
            {
                try
                {
                    base.SaveWithNoTran();
                    VMGlobal.DistributionQuery.LinqOP.Update <BillGoodReturn>(goodreturn);
                    if (ReturnMoney != 0)
                    {
                        VMGlobal.DistributionQuery.LinqOP.Add <OrganizationFundAccount>(
                            new OrganizationFundAccount
                        {
                            BrandID          = Master.BrandID,
                            OrganizationID   = goodreturn.OrganizationID,  //this.Master.OrganizationID,
                            NeedIn           = 0,
                            AlreadyIn        = ReturnMoney,
                            CreatorID        = VMGlobal.CurrentUser.ID,
                            BillKind         = (int)BillTypeEnum.BillGoodReturn,
                            Remark           = "退货入库生成,退货单号" + goodreturn.Code,
                            RefrenceBillCode = this.Master.Code
                        });
                    }
                    Details.ForEach(d => BillLogic.AddStock(Master.StorageID, d.ProductID, d.Quantity));
                    //SaveUniqueCodes(uniqueCodes);
                    scope.Complete();
                }
                catch (Exception e)
                {
                    return(new OPResult {
                        IsSucceed = false, Message = e.Message
                    });
                }
            }
            return(new OPResult {
                IsSucceed = true
            });
        }
Ejemplo n.º 3
0
 public BillGoodReturnBO(BillGoodReturn goodreturn)
 {
     this.ID             = goodreturn.ID;
     this.Code           = goodreturn.Code;
     this.CreatorID      = goodreturn.CreatorID;
     this.CreateTime     = goodreturn.CreateTime;
     this.Remark         = goodreturn.Remark;
     this.Status         = goodreturn.Status;
     this.StorageID      = goodreturn.StorageID;
     this.OrganizationID = goodreturn.OrganizationID;
     this.BrandID        = goodreturn.BrandID;
     this.IsDefective    = goodreturn.IsDefective;
 }
Ejemplo n.º 4
0
        public OPResult Storing(BillGoodReturnForSearch entity)
        {
            if (entity.StorageID == default(int))
            {
                return(new OPResult {
                    IsSucceed = false, Message = "由于没有对应的出库仓库, 该单无法入库."
                });
            }
            var            lp   = VMGlobal.DistributionQuery.LinqOP;
            BillGoodReturn bill = lp.GetById <BillGoodReturn>(entity.ID);

            if (bill.Status == (int)BillGoodReturnStatusEnum.退回已入库)
            {
                return new OPResult {
                           IsSucceed = false, Message = "该退回单据已入库"
                }
            }
            ;
            bill.Status = (int)BillGoodReturnStatusEnum.退回已入库;

            //decimal returnMoney = 0;
            //if (!OrganizationListVM.IsSelfRunShop(bill.OrganizationID))
            //{
            //    returnMoney = bill.TotalPrice;
            //}
            var bo = new BillBO <BillGoodReturn, BillGoodReturnDetails>
            {
                Bill    = bill,
                Details = entity.Details.Select(o => new BillGoodReturnDetails
                {
                    ProductID = o.ProductID,
                    Quantity  = o.Quantity
                }).ToList(),
            };
            //if (returnMoney != 0)
            //{
            //    bo.FundAccount =
            //        new OrganizationFundAccount
            //        {
            //            BrandID = bill.BrandID,
            //            OrganizationID = bill.OrganizationID,
            //            NeedIn = 0,
            //            AlreadyIn = returnMoney,
            //            CreatorID = VMGlobal.CurrentUser.ID,
            //            BillKind = (int)BillTypeEnum.BillGoodReturn,
            //            Remark = "退货入库生成,退货单号" + bill.Code,
            //            RefrenceBillCode = bill.Code
            //        };
            //}
            var result = BillWebApiInvoker.Instance.Invoke <OPResult, BillBO <BillGoodReturn, BillGoodReturnDetails> >(bo, "Bill/StoringReturnGoodReject");

            if (result.IsSucceed)
            {
                ObservableCollection <BillGoodReturnForSearch> entities = this.Entities as ObservableCollection <BillGoodReturnForSearch>;

                if (entities != null)
                {
                    entities.Remove(entity);
                }
            }
            return(result);
        }
    }