/// <summary>
        /// 分页查询
        /// </summary>
        /// <param name="model"></param>
        /// <param name="currentPage"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        public ActionResult PageList(WarehouseTransfer model, int currentPage = 1, int pageSize = 20)
        {
            int recordCount = 0;
            List <WarehouseTransfer> WarehouseTransfer = new DALWarehouseTransfer().QueryPagination(currentPage, pageSize, out recordCount, model).ToList();

            ViewBag.RecordCount = recordCount;
            ViewBag.CurrentPage = currentPage;
            ViewBag.PageSize    = pageSize;
            ViewBag.PageCount   = Math.Ceiling((double)recordCount / (double)pageSize);
            ViewBag.Model       = model;

            return(View(WarehouseTransfer));
        }
        /// <summary>
        /// 编辑仓库
        /// </summary>
        /// <param name="Rid"></param>
        /// <returns></returns>
        public ActionResult Edit(int Rid)
        {
            var model = new WarehouseTransfer();

            if (Rid > 0)
            {
                model = new DALWarehouseTransfer().GetSingleWarehouseTransfer(Rid);
            }

            ViewBag.WarehouseList = new DALWarehouse().QueryList();
            ViewBag.ProductList   = new DALProduct().QueryList();

            return(View(model));
        }
        /// <summary>
        /// 添加/修改保存
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public ActionResult Save(WarehouseTransfer model)
        {
            ResultMsg msg = new ResultMsg();

            //修改
            if (model.Rid > 0)
            {
                msg = new DALWarehouseTransfer().Update(model);
            }
            //添加
            else if (model.Rid == 0)
            {
                msg = new DALWarehouseTransfer().Insert(model);
            }

            return(Json(new { Success = msg.Success, Result = msg.ReturnInt, ErrMsg = msg.ErrMsg }));
        }
        protected override void SaveRelative(WarehouseTransfer warehouseTransfer, SaveRelativeOption saveRelativeOption)
        {
            base.SaveRelative(warehouseTransfer, saveRelativeOption);

            if (warehouseTransfer.OneStep)
            {
                GRHelperService grHelperService = new GRHelperService(this.GetGROption(warehouseTransfer.NMVNTaskID), this.GenericWithDetailRepository.TotalSmartPortalEntities, this.UserID);

                IGoodsReceiptAPIRepository goodsReceiptAPIRepository = new GoodsReceiptAPIRepository(this.GenericWithDetailRepository.TotalSmartPortalEntities);
                if (saveRelativeOption == SaveRelativeOption.Update)
                {
                    IGoodsReceiptDTO goodsReceiptDTO = grHelperService.NewGoodsReceiptDTO();

                    goodsReceiptDTO.EntryDate = warehouseTransfer.EntryDate;

                    goodsReceiptDTO.GoodsReceiptTypeID  = (int)GlobalEnums.GoodsReceiptTypeID.WarehouseTransfer;
                    goodsReceiptDTO.WarehouseTransferID = warehouseTransfer.WarehouseTransferID;

                    goodsReceiptDTO.ShiftID = warehouseTransfer.ShiftID;
                    goodsReceiptDTO.OneStep = warehouseTransfer.OneStep;

                    goodsReceiptDTO.Warehouse = new TotalDTO.Commons.WarehouseBaseDTO()
                    {
                        WarehouseID = warehouseTransfer.WarehouseReceiptID
                    };
                    goodsReceiptDTO.WarehouseIssue = new TotalDTO.Commons.WarehouseBaseDTO()
                    {
                        WarehouseID = warehouseTransfer.WarehouseID
                    };

                    goodsReceiptDTO.StorekeeperID    = warehouseTransfer.StorekeeperID;
                    goodsReceiptDTO.PreparedPersonID = warehouseTransfer.PreparedPersonID;
                    goodsReceiptDTO.ApproverID       = warehouseTransfer.PreparedPersonID;

                    goodsReceiptDTO.Purposes    = warehouseTransfer.Caption;
                    goodsReceiptDTO.Description = warehouseTransfer.Description;
                    goodsReceiptDTO.Remarks     = warehouseTransfer.Remarks;

                    goodsReceiptDTO.Approved     = warehouseTransfer.Approved;
                    goodsReceiptDTO.ApprovedDate = warehouseTransfer.ApprovedDate;

                    List <GoodsReceiptPendingWarehouseTransferDetail> pendingWarehouseTransferDetails = goodsReceiptAPIRepository.GetPendingWarehouseTransferDetails((int)goodsReceiptDTO.NMVNTaskID, null, goodsReceiptDTO.WarehouseTransferID, goodsReceiptDTO.WarehouseID, goodsReceiptDTO.WarehouseIssueID, null, goodsReceiptDTO.OneStep);
                    foreach (GoodsReceiptPendingWarehouseTransferDetail pendingWarehouseTransferDetail in pendingWarehouseTransferDetails)
                    {
                        GoodsReceiptDetailDTO goodsReceiptDetailDTO = new GoodsReceiptDetailDTO()
                        {
                            GoodsReceiptID = goodsReceiptDTO.GoodsReceiptID,

                            WarehouseTransferID        = pendingWarehouseTransferDetail.WarehouseTransferID,
                            WarehouseTransferDetailID  = pendingWarehouseTransferDetail.WarehouseTransferDetailID,
                            WarehouseTransferReference = pendingWarehouseTransferDetail.WarehouseTransferReference,
                            WarehouseTransferEntryDate = pendingWarehouseTransferDetail.WarehouseTransferEntryDate,
                            GoodsReceiptReference      = pendingWarehouseTransferDetail.GoodsReceiptReference,
                            GoodsReceiptEntryDate      = pendingWarehouseTransferDetail.GoodsReceiptEntryDate,

                            BatchID        = pendingWarehouseTransferDetail.BatchID,
                            BatchEntryDate = pendingWarehouseTransferDetail.BatchEntryDate,


                            CommodityID     = pendingWarehouseTransferDetail.CommodityID,
                            CommodityCode   = pendingWarehouseTransferDetail.CommodityCode,
                            CommodityName   = pendingWarehouseTransferDetail.CommodityName,
                            CommodityTypeID = pendingWarehouseTransferDetail.CommodityTypeID,

                            LabID = pendingWarehouseTransferDetail.LabID,

                            Barcode   = pendingWarehouseTransferDetail.Barcode,
                            BatchCode = pendingWarehouseTransferDetail.BatchCode,
                            SealCode  = pendingWarehouseTransferDetail.SealCode,
                            LabCode   = pendingWarehouseTransferDetail.LabCode,

                            ProductionDate = pendingWarehouseTransferDetail.ProductionDate,
                            ExpiryDate     = pendingWarehouseTransferDetail.ExpiryDate,

                            BinLocationID   = pendingWarehouseTransferDetail.BinLocationID,
                            BinLocationCode = pendingWarehouseTransferDetail.BinLocationCode,

                            UnitWeight = pendingWarehouseTransferDetail.UnitWeight,
                            TareWeight = pendingWarehouseTransferDetail.TareWeight,

                            QuantityRemains = (decimal)pendingWarehouseTransferDetail.QuantityRemains,
                            Quantity        = (decimal)pendingWarehouseTransferDetail.QuantityRemains,
                        };
                        goodsReceiptDTO.ViewDetails.Add(goodsReceiptDetailDTO);
                    }

                    goodsReceiptDTO.TotalQuantity = goodsReceiptDTO.GetTotalQuantity();

                    grHelperService.Save(goodsReceiptDTO);
                }

                if (saveRelativeOption == SaveRelativeOption.Undo)
                {//NOTES: THIS UNDO REQUIRE: JUST SAVE ONLY ONE GoodsReceipt FOR AN WarehouseTransfer
                    int?goodsReceiptID = goodsReceiptAPIRepository.GetGoodsReceiptID(null, null, warehouseTransfer.WarehouseTransferID, null);
                    grHelperService.Delete(goodsReceiptID);
                }
            }
        }
Exemple #5
0
        public ActionResult AddTransaction(string tNo, string tDate, int ShipToLoc, WarehouseTransfer[] GridItems)
        {
            var status = "error";

            try
            {
                WarehouseTransferMain objWHTM = new WarehouseTransferMain();
                objWHTM.TransactionNo = tNo;
                objWHTM.TransferDate  = DateTime.Parse(tDate);
                objWHTM.LocationId    = ShipToLoc;
                objWHTM.UID           = Guid.NewGuid();
                objWHTM.CreatedBy     = ActiveUserId;
                objWHTM.UpdatedBy     = ActiveUserId;
                objWHTM.CreatedOn     = DateTime.Now;
                objWHTM.UpdatedOn     = DateTime.Now;
                db.WarehouseTransferMains.Add(objWHTM);
                db.SaveChanges();


                WarehouseTransfer objWhT = new WarehouseTransfer();
                for (var i = 0; i < GridItems.Length; i++)
                {
                    var items   = GridItems[i];
                    var objItem = (from itm in db.Items where itm.Id == items.ItemId select itm).SingleOrDefault();
                    var objWh   = (from w in db.Warehouses where w.ItemId == items.ItemId select w).SingleOrDefault();

                    objWhT.ItemId       = items.ItemId;
                    objWhT.WtmId        = objWHTM.Id;
                    objWhT.CategoryId   = objItem.CategoryId;
                    objWhT.UomId        = objItem.UomId;
                    objWhT.Barcode      = objItem.Barcode;
                    objWhT.AvailableQty = objWh.QtyAvailable;
                    objWhT.IssueQty     = items.IssueQty;
                    objWhT.BalanceQty   = (objWhT.AvailableQty) - (items.IssueQty);
                    objWhT.SaleRate     = objWh.SaleRate;
                    objWhT.CostRate     = objWh.CostRate;
                    objWhT.CreatedOn    = DateTime.Now;
                    objWhT.CreatedBy    = ActiveUserId;

                    objWh.QtyAvailable = (objWh.QtyAvailable) - (items.IssueQty);
                    db.WarehouseTransfers.Add(objWhT);

                    //save in selling item table
                    var         alreadyExist = db.SellingItems.Where(x => x.ItemId == items.ItemId).SingleOrDefault();
                    SellingItem objSi        = new SellingItem();
                    if (alreadyExist == null)
                    {
                        objSi.ItemId     = items.ItemId;
                        objSi.Barcode    = objItem.Barcode;
                        objSi.CategoryId = objItem.CategoryId;
                        objSi.UomId      = objItem.UomId;
                        objSi.Quantity   = items.IssueQty;
                        objSi.CostRate   = objWh.CostRate;
                        objSi.SaleRate   = objWh.SaleRate;
                        objSi.CreatedBy  = ActiveUserId;
                        objSi.CreatedOn  = DateTime.Now;
                        db.SellingItems.Add(objSi);
                    }
                    else
                    {
                        alreadyExist.Quantity += items.IssueQty;
                        alreadyExist.CostRate  = objWh.CostRate;
                        alreadyExist.SaleRate  = objWh.SaleRate;
                        alreadyExist.UpdatedBy = ActiveUserId;
                        alreadyExist.UpdatedOn = DateTime.Now;
                    }

                    db.SaveChanges();
                }
                status = "Success";
            }
            catch (Exception ex)
            {
                ApplicationExceptionLogging(ex.Message, ex.StackTrace, "StockTransfer", "AddTransaction");
            }
            return(Content(status));
        }