Пример #1
0
        public ResultData <string> RemoveInventory(WInventory inv)
        {
            ResultData <string> rData = new ResultData <string>();

            if (inv.InventoryStatus == InventoryStatusEnum.Out)
            {
                rData.status  = -1;
                rData.message = "单据已经盘亏.";
                return(rData);
            }
            else if (inv.InventoryStatus == InventoryStatusEnum.In)
            {
                rData.status  = -1;
                rData.message = "单据已经盘盈.";
                return(rData);
            }
            else if (inv.InventoryStatus == InventoryStatusEnum.Complete)
            {
                rData.status  = -1;
                rData.message = "单据已经完成.";
                return(rData);
            }

            iRepository.Delete(inv.ID);
            ilRepository.RemoveLinesByParent(inv.ID);

            return(rData);
        }
Пример #2
0
        /// <summary>
        /// 添加盘亏
        /// </summary>
        /// <returns></returns>
        public ContentResult AddLoss()
        {
            ResultData <string> rt  = new ResultData <string>();
            WInventory          inv = GetUpdate <WInventory>();

            inv.CreateBy = this.CurrentUser.ID;
            rt           = iService.AddLoss(inv);
            return(ReturnResult(rt));
        }
Пример #3
0
        public ContentResult Delete()
        {
            ResultData <string> rt = new ResultData <string>();

            //获取前台传会的删除ID
            WInventory Inv = GetDelete <WInventory>();

            rt = iService.RemoveInventory(Inv);
            return(ReturnResult(rt));
        }
Пример #4
0
        /// <summary>
        /// 添加
        /// </summary>
        /// <param name="inv"></param>
        public int AddInventory(List <WInventoryLine> lines, string code, int createBy)
        {
            WInventory Inv = iRepository.GetInventoryByCode(code);

            if (Inv == null)
            {
                Inv = new WInventory
                {
                    CreateBy        = createBy,
                    CreateDate      = DateTime.Now,
                    InventoryCode   = code,
                    InventoryStatus = 1
                };
                iRepository.Insert(Inv);
            }
            List <WInventoryLine> stockLines = ilRepository.GetInventoryLinesByParent(Inv.ID);

            foreach (WInventoryLine item in lines)
            {
                bool isNotExit = true;
                foreach (WInventoryLine line in stockLines)
                {
                    if (line.StockID == item.ID)
                    {
                        isNotExit          = false;
                        line.InventoryDiff = item.InventoryCount - item.StockCount;
                        ilRepository.Update(line);
                        break;
                    }
                }
                if (isNotExit)
                {
                    item.StockID       = item.ID; //库存ID
                    item.ParentID      = Inv.ID;
                    item.InventoryDiff = item.InventoryCount - item.StockCount;
                    ilRepository.Insert(item);
                }
            }

            return(Inv.ID);
        }
Пример #5
0
        /// <summary>
        /// 添加盘亏出库
        /// </summary>
        /// <param name="inv"></param>
        /// <returns></returns>
        public ResultData <string> AddLoss(WInventory inv)
        {
            ResultData <string> rData = new ResultData <string>();

            if (inv.InventoryStatus == InventoryStatusEnum.Out)
            {
                rData.status  = -1;
                rData.message = "单据已经盘亏.";
                return(rData);
            }
            else if (inv.InventoryStatus == InventoryStatusEnum.Complete)
            {
                rData.status  = -1;
                rData.message = "单据已经完成.";
                return(rData);
            }

            if (ilRepository.HasNoLoss(inv.ID))
            {
                if (inv.InventoryStatus == InventoryStatusEnum.In)
                {
                    iRepository.UpdateLossStatus(inv.ID, 0, "", InventoryStatusEnum.Complete);
                }
                else
                {
                    iRepository.UpdateLossStatus(inv.ID, 0, "", InventoryStatusEnum.Out);
                }
                rData.status  = -1;
                rData.message = "单据没有盘亏记录.";
                return(rData);
            }

            DatabaseContext dbContext = ooRepository.DbCondext;

            try
            {
                dbContext.BeginTransaction();

                WOtherOut otherOut = new WOtherOut
                {
                    CreateBy     = inv.CreateBy,
                    CreateDate   = DateTime.Now,
                    OtherOutCode = nuRepository.GetNextNumber("QTCK"),
                    StockOutType = StockOutEnum.InvShortages,
                    StockStatus  = StockStatusEnum.New
                };

                //添加主表
                ooRepository.Insert(otherOut);

                //更新为盘点
                if (inv.InventoryStatus == InventoryStatusEnum.In)
                {
                    iRepository.UpdateLossStatus(inv.ID, otherOut.ID, otherOut.OtherOutCode, InventoryStatusEnum.Complete);
                }
                else if (inv.InventoryStatus == InventoryStatusEnum.Complete)
                {
                    rData.status  = -1;
                    rData.message = "单据已经完成.";
                    return(rData);
                }
                else
                {
                    iRepository.UpdateLossStatus(inv.ID, otherOut.ID, otherOut.OtherOutCode, InventoryStatusEnum.Out);
                }

                //添加明细
                oolRepository.AddOtherLinesByInv(otherOut, inv.ID);

                //返回插入的ID
                rData.result = otherOut.ID.ToString();

                dbContext.CompleteTransaction();
            }
            catch (Exception ex)
            {
                dbContext.AbortTransaction();
                throw ex;
            }
            return(rData);
        }
Пример #6
0
        /// <summary>
        /// 添加盘盈入库
        /// </summary>
        /// <param name="inv"></param>
        /// <returns></returns>
        public ResultData <string> AddProfit(WInventory inv)
        {
            ResultData <string> rData = new ResultData <string>();

            if (inv.InventoryStatus == InventoryStatusEnum.In)
            {
                rData.status  = -1;
                rData.message = "单据已经盘盈.";
                return(rData);
            }
            else if (inv.InventoryStatus == InventoryStatusEnum.Complete)
            {
                rData.status  = -1;
                rData.message = "单据已经完成.";
                return(rData);
            }

            if (ilRepository.HasNoProfit(inv.ID))
            {
                if (inv.InventoryStatus == InventoryStatusEnum.Out)
                {
                    iRepository.UpdateProfitStatus(inv.ID, 0, "", InventoryStatusEnum.Complete);
                }
                else
                {
                    iRepository.UpdateProfitStatus(inv.ID, 0, "", InventoryStatusEnum.In);
                }
                rData.status  = -1;
                rData.message = "单据没有盘盈记录.";
                return(rData);
            }

            DatabaseContext dbContext = ooRepository.DbCondext;

            try
            {
                dbContext.BeginTransaction();

                WOtherIn otherIn = new WOtherIn
                {
                    CreateBy    = inv.CreateBy,
                    CreateDate  = DateTime.Now,
                    OtherInCode = nuRepository.GetNextNumber("QTRK"),
                    StockInType = StockInEnum.InvProfit,
                    StockStatus = StockStatusEnum.New
                };

                //添加主表
                oiRepositroy.Insert(otherIn);

                //添加明细
                oilRepository.AddOtherLinesByInv(otherIn, inv.ID);

                //更新为盘点
                if (inv.InventoryStatus == InventoryStatusEnum.Out)
                {
                    iRepository.UpdateProfitStatus(inv.ID, otherIn.ID, otherIn.OtherInCode, InventoryStatusEnum.Complete);
                }
                else
                {
                    iRepository.UpdateProfitStatus(inv.ID, otherIn.ID, otherIn.OtherInCode, InventoryStatusEnum.In);
                }

                //返回插入的ID
                rData.result = otherIn.ID.ToString();

                dbContext.CompleteTransaction();
            }
            catch (Exception ex)
            {
                dbContext.AbortTransaction();
                throw ex;
            }
            return(rData);
        }