Пример #1
0
        //出貨按鈕ACTION結束在這
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>
        /// UnshipOrderDtl的patialView方法
        /// 改用PARTIALVIEW寫寫看
        /// </summary>
        /// <returns></returns>
        //回傳PATIALVIEW給UnShipOrderDtl.cshtml
        //這裡應該要檢查庫存不足,和已出貨的明細,並直接顯示在第一欄
        public ActionResult GetPurchaseOrderDtlPatialView(shipOrderViewModel unshipOrderDtlViewModel)
        {
            var q = from pod in db.PurchaseOrderDtl.AsEnumerable()
                    join sl in db.SourceList on pod.SourceListID equals sl.SourceListID
                    where pod.PurchaseOrderID == unshipOrderDtlViewModel.PurchaseOrderID
                    select new
            {
                pod.PurchaseOrderID,
                pod.PurchaseOrderDtlOID,
                pod.PurchaseOrderDtlCode,
                pod.Qty,
                pod.PurchasedQty,
                sl.UnitsInStock
            };
            IList <OrderDtlItemChecked> odc = new List <OrderDtlItemChecked>();

            foreach (var item in q)
            {
                OrderDtlItemChecked orderDtlItemChecked = new OrderDtlItemChecked();
                orderDtlItemChecked.PurchaseOrderDtlOID  = item.PurchaseOrderDtlOID;
                orderDtlItemChecked.PurchaseOrderDtlCode = item.PurchaseOrderDtlCode;
                int shipQty = 0;
                if (db.ShipNoticeDtl.Where(x => x.PurchaseOrderDtlCode == item.PurchaseOrderDtlCode).SingleOrDefault() != null)
                {
                    shipQty = db.ShipNoticeDtl.Where(x => x.PurchaseOrderDtlCode == item.PurchaseOrderDtlCode).SingleOrDefault().ShipQty;
                }
                orderDtlItemChecked.Qty = item.Qty - shipQty;
                //顯示庫存是否足夠
                if (item.UnitsInStock >= orderDtlItemChecked.Qty)
                {
                    orderDtlItemChecked.IsEnough = true;
                }
                else
                {
                    orderDtlItemChecked.IsEnough = false;
                }
                //預設為沒有勾選
                orderDtlItemChecked.Checked = false;
                odc.Add(orderDtlItemChecked);
            }

            IEnumerable <OrderDtlItem> od = null;

            var queryOrderitem = from pod in db.PurchaseOrderDtl
                                 join sl in db.SourceList
                                 on pod.SourceListID equals sl.SourceListID
                                 where pod.PurchaseOrderID == unshipOrderDtlViewModel.PurchaseOrderID
                                 select new OrderDtlItem
            {
                PurchaseOrderDtlOID  = pod.PurchaseOrderDtlOID,
                PurchaseOrderDtlCode = pod.PurchaseOrderDtlCode,
                PartName             = pod.PartName,
                PartNumber           = pod.PartNumber,
                QtyPerUnit           = pod.QtyPerUnit,
                TotalPartQty         = pod.TotalPartQty,
                PurchaseQty          = pod.Qty,
                SourceListID         = pod.SourceListID,
                CommittedArrivalDate = pod.CommittedArrivalDate,
                ShipDate             = pod.ShipDate,
                DateRequired         = pod.DateRequired,
                UnitsInStock         = sl.UnitsInStock
            };

            od = queryOrderitem.ToList();
            //檢查是否有出貨過,有的話要檢查是否出貨明細SHIPQTY是否和採購單QTY是否相同
            //相同的話,代表該商品已全部出貨完畢,Unship = true,否則仍然有需要出貨的數量,Unship = false
            foreach (var orderdtl in od)
            {
                if (orderdtl.ShipDate == null)
                {
                    orderdtl.Unship  = true;
                    orderdtl.ShipQty = 0;
                }
                else
                {
                    ShipNoticeDtl snd = db.ShipNoticeDtl.Where(x => x.PurchaseOrderDtlCode == orderdtl.PurchaseOrderDtlCode).SingleOrDefault();
                    if (snd != null && snd.ShipQty < orderdtl.PurchaseQty)
                    {
                        orderdtl.Unship  = true;
                        orderdtl.ShipQty = snd.ShipQty;
                    }
                    else
                    {
                        orderdtl.Unship  = false;
                        orderdtl.ShipQty = orderdtl.PurchaseQty;
                    }
                }
            }
            shipOrderViewModel uodvm = new shipOrderViewModel()
            {
                PurchaseOrderID      = unshipOrderDtlViewModel.PurchaseOrderID,
                orderDtlItems        = od,
                orderDtlItemCheckeds = odc
            };

            return(PartialView("_GetPurchaseOrderDtlPatialView", uodvm));
        }
Пример #2
0
        //出貨按鈕ACTION結束在這

        /// <summary>
        /// UnshipOrderDtl的patialView方法
        /// 改用PARTIALVIEW寫寫看
        /// </summary>
        /// <returns></returns>
        //回傳PATIALVIEW給UnShipOrderDtl.cshtml
        //這裡應該要檢查庫存不足,和已出貨的明細,並直接顯示在第一欄
        public ActionResult GetPurchaseOrderDtlPatialView(UnshipOrderDtlViewModel unshipOrderDtlViewModel)
        {
            var q = from pod in db.PurchaseOrderDtl.AsEnumerable()
                    join sl in db.SourceList on pod.SourceListID equals sl.SourceListID
                    where pod.PurchaseOrderID == unshipOrderDtlViewModel.PurchaseOrderID
                    select new
            {
                pod.PurchaseOrderID,
                pod.PurchaseOrderDtlOID,
                pod.PurchaseOrderDtlCode,
                pod.Qty,
                sl.UnitsInStock
            };
            IList <OrderDtlItemChecked> odc = new List <OrderDtlItemChecked>();

            foreach (var item in q)
            {
                OrderDtlItemChecked orderDtlItemChecked = new OrderDtlItemChecked();
                orderDtlItemChecked.PurchaseOrderDtlOID  = item.PurchaseOrderDtlOID;
                orderDtlItemChecked.PurchaseOrderDtlCode = item.PurchaseOrderDtlCode;
                //顯示庫存是否足夠
                if (item.UnitsInStock >= item.Qty)
                {
                    orderDtlItemChecked.IsEnough = true;
                }
                else
                {
                    orderDtlItemChecked.IsEnough = false;
                }
                //預設為沒有勾選
                orderDtlItemChecked.Checked = false;
                odc.Add(orderDtlItemChecked);
            }

            IEnumerable <OrderDtlItem> od = null;

            var queryOrderitem = from pod in db.PurchaseOrderDtl
                                 join sl in db.SourceList
                                 on pod.SourceListID equals sl.SourceListID
                                 where pod.PurchaseOrderID == unshipOrderDtlViewModel.PurchaseOrderID
                                 select new OrderDtlItem
            {
                PurchaseOrderDtlOID  = pod.PurchaseOrderDtlOID,
                PurchaseOrderDtlCode = pod.PurchaseOrderDtlCode,
                PartName             = pod.PartName,
                QtyPerUnit           = pod.QtyPerUnit,
                TotalPartQty         = pod.TotalPartQty,
                Qty                  = pod.Qty,
                SourceListID         = pod.SourceListID,
                CommittedArrivalDate = pod.CommittedArrivalDate,
                ShipDate             = pod.ShipDate,
                DateRequired         = pod.DateRequired,
                UnitsInStock         = sl.UnitsInStock
            };

            od = queryOrderitem.ToList();
            foreach (var orderdtl in od)
            {
                if (orderdtl.ShipDate == null)
                {
                    orderdtl.Unship = true;
                }
                else
                {
                    orderdtl.Unship = false;
                }
            }
            UnshipOrderDtlViewModel uodvm = new UnshipOrderDtlViewModel()
            {
                PurchaseOrderID      = unshipOrderDtlViewModel.PurchaseOrderID,
                orderDtlItems        = od,
                orderDtlItemCheckeds = odc
            };

            return(PartialView("_GetPurchaseOrderDtlPatialView", uodvm));
        }