public ActionResult GetPurchaseOrderDtlList(string id, string supplierCode)
        {
            Repository rep  = new Repository(User.Identity.GetEmployee());
            string     c    = User.Identity.GetRealName();
            var        data = rep.GetPurchaseOrderDtlList(id, supplierCode);
            IList <PurchaseOrderDtlItemChecked> resultSet = new List <PurchaseOrderDtlItemChecked>();

            foreach (var item in data)
            {
                PurchaseOrderDtlItemChecked pod = new PurchaseOrderDtlItemChecked
                {
                    PurchaseRequisitionDtlCode = item.PurchaseRequisitionDtlCode,
                    PurchaseOrderDtlOID        = item.PurchaseOrderDtlOID,
                    Checked = false
                };
                resultSet.Add(pod);
            }
            PurchaseOrderCreateViewModel vm = new PurchaseOrderCreateViewModel
            {
                PurchaseOrderDtlSetVM = data,
                CheckedResultSetVM    = resultSet
            };

            vm.PurchaseOrderOID = data.First().PurchaseOrderOID;
            return(PartialView("_CreatePODItemPartial", vm));
        }
        // GET: PurchaseOrders/Create
        public ActionResult Create()
        {
            PurchaseOrderCreateViewModel model = new PurchaseOrderCreateViewModel();

            ConfigureViewModel(model);
            return(View(model));
        }
        private void ConfigureViewModel(PurchaseOrderCreateViewModel model)
        {
            //參考資料:https://dotnetfiddle.net/PBi075
            Repository rep = new Repository(User.Identity.GetEmployee());
            IList <PurchaseRequisitionItem> purchaseRequisitions = rep.GetPurchaseRequisitionList();

            model.PurchaseRequisitionList = new SelectList(purchaseRequisitions, "PurchaseRequisitionIdValue", "PurchaseRequisitionIdDisplay");
            if (!string.IsNullOrEmpty(model.SelectedPurchaseRequisitionID))
            {
                IEnumerable <SupplierItem> suppliers = rep.GetSupplierList(model.SelectedPurchaseRequisitionID);
                model.SupplierList = new SelectList(suppliers, "SupplierCode", "SupplierName");
            }
            else
            {
                model.SupplierList = new SelectList(Enumerable.Empty <SelectListItem>());
            }
        }
Пример #4
0
        public IActionResult Create(PurchaseOrderCreateViewModel purchaseOrder)
        {
            var    applicationUser = _userManager.GetUserAsync(User);
            string userEmail       = applicationUser?.Result.Email;

            if (ModelState.IsValid)
            {
                PurchaseOrder cat = new PurchaseOrder
                {
                    MaGiaoDich      = Guid.NewGuid().ToString(),
                    PurchaseOrderId = purchaseOrder.PurchaseOrderId,
                    OrderDate       = DateTime.Now,
                    IsReceived      = false,
                    CreatedBy       = userEmail,
                    CreatedDate     = DateTime.Now,
                };

                iPurchaseOrderService.CreateAsync(cat);

                return(RedirectToAction("Details", new { id = cat.PurchaseOrderId }));
            }

            return(View(purchaseOrder));
        }
        public ActionResult Create([Bind(Include = "PurchaseOrderOID,PurchaseRequisitionID,CheckedResultSetVM")] PurchaseOrderCreateViewModel model)
        {
            if (model == null || model.CheckedResultSetVM.Count(s => s.Checked) == 0)
            {
                TempData["ErrorMessage"] = "採購細項請至少勾選一項";
                return(RedirectToAction("Create"));
            }

            //從暫存新增至正式資料表
            DateTime now = DateTime.Now;

            using (PMSAEntities db = new PMSAEntities())
            {
                //新增採購單
                PurchaseOrderTemp pot = db.PurchaseOrderTemp.Find(model.PurchaseOrderOID);
                db.Entry(pot).State = EntityState.Detached;
                string poId  = $"PO-{now:yyyyMMdd}-";
                int    count = db.PurchaseOrder.Where(i => i.PurchaseOrderID.StartsWith(poId)).Count();
                count++;
                poId = $"{poId}{count:000}";
                PurchaseOrder po = new PurchaseOrder
                {
                    PurchaseOrderID     = poId,
                    SupplierCode        = pot.SupplierCode,
                    EmployeeID          = pot.EmployeeID,
                    CreateDate          = now,
                    PurchaseOrderStatus = "N"
                };
                db.PurchaseOrder.Add(po);
                db.SaveChanges();
                //新增採購單明細
                int index = 0;
                foreach (var item in model.CheckedResultSetVM)
                {
                    if (!item.Checked)
                    {
                        continue;
                    }
                    var podt = db.PurchaseOrderDtlTemp.Find(item.PurchaseOrderDtlOID);
                    index++;
                    PurchaseOrderDtl pod = new PurchaseOrderDtl
                    {
                        PurchaseOrderDtlCode = $"{poId}-{index:000}",
                        PurchaseOrderID      = poId,
                        PartNumber           = podt.PartNumber,
                        PartName             = podt.PartName,
                        PartSpec             = podt.PartSpec,
                        QtyPerUnit           = podt.QtyPerUnit,
                        TotalPartQty         = podt.TotalPartQty,
                        OriginalUnitPrice    = podt.OriginalUnitPrice,
                        Discount             = podt.Discount,
                        PurchaseUnitPrice    = podt.PurchaseUnitPrice,
                        Qty                  = podt.Qty,
                        PurchasedQty         = podt.PurchasedQty,
                        GoodsInTransitQty    = podt.GoodsInTransitQty,
                        Total                = podt.Total,
                        DateRequired         = podt.DateRequired,
                        CommittedArrivalDate = podt.CommittedArrivalDate,
                        ShipDate             = podt.ShipDate,
                        ArrivedDate          = podt.ArrivedDate,
                        SourceListID         = podt.SourceListID
                    };
                    db.PurchaseOrderDtl.Add(pod);
                    db.SaveChanges();
                    //請購單與採購單關聯
                    //TODO: 應從暫存取出,目前暫以傳入方式處理
                    PRPORelation rel = new PRPORelation
                    {
                        PurchaseOrderID            = poId,
                        PurchaseOrderDtlCode       = pod.PurchaseOrderDtlCode,
                        PurchaseRequisitionID      = model.PurchaseRequisitionID,
                        PurchaseRequisitionDtlCode = item.PurchaseRequisitionDtlCode,
                    };
                    db.PRPORelation.Add(rel);
                    db.SaveChanges();
                    //採購單異動總表
                    POChanged poc = new POChanged
                    {
                        PurchaseOrderID       = poId,
                        POChangedCategoryCode = "N",
                        RequestDate           = now,
                        RequesterRole         = "P",
                        RequesterID           = pot.EmployeeID
                    };
                    db.POChanged.Add(poc);
                    db.SaveChanges();
                    //更新PurchaseOrderDtl.POChangedOID
                    pod.POChangedOID = poc.POChangedOID;
                    db.Entry(pod).Property(podp => podp.POChangedOID).IsModified = true;
                    db.SaveChanges();
                }
                //刪除暫存資料
                var PRPORelationTemps = db.PRPORelationTemp.Where(i => i.PurchaseOrderOID == model.PurchaseOrderOID);
                db.PRPORelationTemp.RemoveRange(PRPORelationTemps);
                db.SaveChanges();
                var PurchaseOrderDtlTemps = db.PurchaseOrderDtlTemp.Where(i => i.PurchaseOrderOID == model.PurchaseOrderOID);
                db.PurchaseOrderDtlTemp.RemoveRange(PurchaseOrderDtlTemps);
                var PurchaseOrderOld = db.PurchaseOrderTemp.Find(model.PurchaseOrderOID);
                db.PurchaseOrderTemp.Remove(PurchaseOrderOld);
            }

            return(RedirectToAction("Index"));
        }
Пример #6
0
        public IActionResult Create()
        {
            PurchaseOrderCreateViewModel p = new PurchaseOrderCreateViewModel();

            return(Create(p));
        }