Exemplo n.º 1
0
        public JsonResult GetAll()
        {
            var _pRs = _pRRepository.GetAll();

            var _listPRViewModel = new List <PRViewModel>();

            foreach (var _pR in _pRs)
            {
                var _pRViewModel          = new PRViewModel();
                var _departmentRepository = new DepartmentRepository();
                //Mapping
                _pRViewModel.PRNo             = _pR.PRNo;
                _pRViewModel.SelectedDeptCode = _pR.DeptCode;
                //_pRViewModel.Departments = _departmentRepository.GetById(_pRViewModel.DeptCodeRequested);
                _pRViewModel.Reason             = _pR.Reason;
                _pRViewModel.PRDate             = _pR.PRDate;
                _pRViewModel.RequestedBy        = _pR.RequestedBy;
                _pRViewModel.RequestedDate      = _pR.RequestedDate;
                _pRViewModel.ApprovedStatus     = _pR.ApprovedStatus;
                _pRViewModel.SelectedDepartment = _departmentRepository.GetById(_pRViewModel.SelectedDeptCode);

                _listPRViewModel.Add(_pRViewModel);
            }
            return(Json(new { data = _listPRViewModel }, JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 2
0
        public ActionResult Edit(string pRNo)
        {
            var _pRViewModel = new PRViewModel();

            var _pRLineRepository     = new PRLineRepository();
            var _departmentRepository = new DepartmentRepository();

            _pRViewModel.Departments = _departmentRepository.GetAll();

            var _pR = _pRRepository.GetById(pRNo);

            ////Mapping
            _pRViewModel.Id               = _pR.Id;
            _pRViewModel.PRNo             = _pR.PRNo;
            _pRViewModel.SelectedDeptCode = _pR.DeptCode;
            _pRViewModel.RequestedDate    = _pR.RequestedDate;
            _pRViewModel.Reason           = _pR.Reason;
            var _listPRLines = _pRLineRepository.GetById(pRNo);

            var _listPRLineViewModel = new List <PRLineViewModel>();

            foreach (var _pRLine in _listPRLines)
            {
                var _pRLineViewModel = new PRLineViewModel();
                //Bu sung Id de xoa PRLine
                _pRLineViewModel.Id = _pRLine.Id;

                _pRLineViewModel.SelectedItemCode = _pRLine.ItemCode;
                _pRLineViewModel.SelectedItemName = _pRLine.ItemName;
                _pRLineViewModel.UoM           = _pRLine.UoM;
                _pRLineViewModel.InStock       = _pRLine.InStock;
                _pRLineViewModel.QtyRequest    = _pRLine.QtyRequest;
                _pRLineViewModel.NeededDate    = _pRLine.NeededDate;
                _pRLineViewModel.PRLinesStatus = _pRLine.PRLinesStatus;
                _pRLineViewModel.Price         = _pRLine.Price;

                _listPRLineViewModel.Add(_pRLineViewModel);
            }
            _pRViewModel.PRLines = _listPRLineViewModel;

            return(View(_pRViewModel));
        }
Exemplo n.º 3
0
        public ActionResult Create()
        {
            //var _pRViewModel = new PRViewModel();
            //var _departmentRepository = new DepartmentRepository();
            //_pRViewModel.Departments = _departmentRepository.GetAll();

            //var _itemRepository = new ItemRepository();
            //return View(_pRViewModel);

            //Thay the bang code sau
            var _departmentRepository = new DepartmentRepository();
            var _itemRepository       = new ItemRepository();
            var _pRViewModel          = new PRViewModel();
            var _pRLineViewModel      = new PRLineViewModel();

            var MultiObj = new Tuple <PRViewModel, PRLineViewModel, IEnumerable <SelectListItem>, IEnumerable <ItemViewModel> >
                               (_pRViewModel, _pRLineViewModel, _departmentRepository.GetAll(), _itemRepository.GetAll());

            return(View(MultiObj));
        }
Exemplo n.º 4
0
        public ActionResult Create(PRViewModel requestItem)
        {
            if (ModelState.IsValid)
            {
                if (requestItem.RI.UserRequest.TotalCost <= 20)
                {
                    requestItem.RI.UserRequest.Status = "Approved";
                }
                else
                {
                    requestItem.RI.UserRequest.Status = "Pending";
                }
                requestItem.RI.UserRequest.RequestorEmail = User.Identity.Name != string.Empty ? User.Identity.Name : "No Email";

                requestItem.RI.UserRequest.DateRequested = DateTime.Now;
                var newPR = db.UserRequests.Add(requestItem.RI.UserRequest);
                db.SaveChanges();

                var cps       = requestItem.Products;
                var prodItems = JsonConvert.DeserializeObject <List <ProductsJson> >(cps);
                int prodid    = 0;
                int qty       = 0;
                foreach (var prod in prodItems)
                {
                    prodid = int.Parse(prod.ProductID);
                    qty    = int.Parse(prod.QtyNeeded);
                    db.PurchaseRequests.Add(new PurchaseRequest {
                        UserRequestID = newPR.UserRequestID, ProductID = prodid, QtyNeeded = qty
                    });
                    var qtyfix = from pd in db.Products where pd.ProductID == prodid select pd;
                    qtyfix.First().QtyInStock = qtyfix.First().QtyInStock - qty;
                }
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.ProductId         = new SelectList(db.Products, "ProductId", "ProductName", requestItem.RI.ProductID);
            ViewBag.PurchaseRequestId = new SelectList(db.PurchaseRequests, "RequestId", "Status", requestItem.RI.UserRequestID);
            return(View(requestItem));
        }
        // POST api/<controller>
        public async Task Post(PRViewModel value)
        {
            var nh      = new NHibernateUserStore();
            var nhps    = new NHibernatePRStore();
            var session = HttpContext.Current.Session;
            //var sessionKey = Config.GetAppSetting("SessionKey").ToString();



            var user = nh.FindByStampAsync(value.SecurityStamp);

            if (user != null)
            {
                var nhcs      = new NHibernateCompanyStore();
                var utcDate   = value.DateNeeded.ToUniversalTime();
                var requestor = await nhcs.GetEmployeeAsync(value.RequestorId);

                DateTime dateNeeded;
                if (value.DateNeeded < DateTime.UtcNow)
                {
                    dateNeeded = DateTime.UtcNow.AddDays(6);
                }
                else
                {
                    dateNeeded = value.DateNeeded;
                }
                var prHeader = new PRHeaderModel()
                {
                    Status         = StatusType.Request,
                    Requestor      = requestor,
                    DeliveryAdress = value.DeliveryAdress,
                    NoteToBuyer    = value.NoteToBuyer,
                    DateNeeded     = dateNeeded,
                    CRC            = requestor.Team.CRC,
                    CreatedBy      = user.Result,
                    Lines          = new List <PRLinesModel>(),
                    Approvals      = new List <PRAprovalModel>(),
                };
                if (requestor.ImmediateLeader != null)
                {
                    var immedieateAprover = new PRAprovalModel()
                    {
                        Approver  = requestor.ImmediateLeader,
                        Status    = StatusType.Request,
                        CreatedBy = user.Result
                    };

                    prHeader.Approvals.Add(immedieateAprover);
                }
                if (requestor.Department != null)
                {
                    if (!prHeader.Approvals.Any(s => s.Approver.Id == requestor.Department.DepartmentLeader.Id))
                    {
                        var DepLeadAproval = new PRAprovalModel()
                        {
                            Approver  = requestor.Department.DepartmentLeader,
                            Status    = StatusType.Request,
                            CreatedBy = user.Result
                        };
                        prHeader.Approvals.Add(DepLeadAproval);
                    }
                }
                if (requestor.Company.Corfin != null && requestor.Company.Corfin.Id != requestor.position.Id)
                {
                    if (!prHeader.Approvals.Any(s => s.Approver.Id == requestor.Company.Corfin.Id))
                    {
                        var corfin = new PRAprovalModel()
                        {
                            Approver  = requestor.Company.Corfin,
                            Status    = StatusType.Request,
                            CreatedBy = user.Result
                        };
                        prHeader.Approvals.Add(corfin);
                    }
                }
                foreach (var line in value.Lines)
                {
                    var lin = await nhps.GetPRLineAsync(line.Id);

                    if (lin.Item != null)
                    {
                        if (lin.Item.SubCategory != null)
                        {
                            if (!prHeader.Approvals.Any(s => s.Approver.Id == lin.Item.SubCategory.Category.Approver.Id))
                            {
                                var ItemAproval = new PRAprovalModel()
                                {
                                    Approver  = lin.Item.SubCategory.Category.Approver,
                                    Status    = StatusType.Request,
                                    CreatedBy = user.Result
                                };
                                prHeader.Approvals.Add(ItemAproval);
                            }
                        }
                        lin.Description = lin.Item.Description;
                        lin.Supplier    = lin.Item.Supplier;
                        lin.UnitPrice   = lin.Item.Price;
                        lin.UOM         = lin.Item.UOM;
                    }
                    else
                    {
                        if (lin.NonCatalog.SubCategory != null)
                        {
                            if (!prHeader.Approvals.Any(s => s.Approver.Id == lin.NonCatalog.SubCategory.Category.Approver.Id))
                            {
                                var ItemAproval = new PRAprovalModel()
                                {
                                    Approver  = lin.NonCatalog.SubCategory.Category.Approver,
                                    Status    = StatusType.Request,
                                    CreatedBy = user.Result
                                };
                                prHeader.Approvals.Add(ItemAproval);
                            }
                        }
                        var item = lin.NonCatalog.Lines.Where(x => x.Selected == true && x.DeleteTime == null).SingleOrDefault();
                        lin.Description = item.Description;
                        lin.Supplier    = item.Supplier;
                        lin.UnitPrice   = item.Price;
                        lin.UOM         = item.UOM;
                    }

                    lin.TotalAmount  = lin.Quantity * lin.UnitPrice;
                    prHeader.Amount += lin.TotalAmount;
                    prHeader.Lines.Add(lin);
                }
                try {
                    await nhps.CreatePRHeaderAsync(prHeader);
                } catch (Exception e) {
                }
            }
        }