public Purchase_Order_Record FindByOrderID(int orderID)
        {
            StationeryModel Entity = new StationeryModel();

            Purchase_Order_Record por = Entity.Purchase_Order_Records.Where(x => x.orderNo == orderID).First();

            return(por);
        }
        public bool AddNewPurchaseOrder(Purchase_Order_Record purchase_order_record)
        {
            StationeryModel Entity = new StationeryModel();

            Entity.Purchase_Order_Records.Add(purchase_order_record);
            Entity.SaveChanges();
            return(true);
        }
 public bool DeletePurchaseOrder(int orderID)
 {
     using (StationeryModel Entity = new StationeryModel())
     {
         Purchase_Order_Record por = Entity.Purchase_Order_Records.Where(x => x.orderNo == orderID).First();
         Entity.Purchase_Order_Records.Remove(por);
         Entity.SaveChanges();
         return(true);
     }
 }
Exemple #4
0
        public ActionResult GeneratePO(int?page)
        {
            string loggedInUser = HttpContext.User.Identity.Name;


            int orderNo = findNextOrderNo();
            List <Purchase_Detail> po = details.Keys.ToList <Purchase_Detail>();

            details = (Dictionary <Purchase_Detail, string>)Session["detailsBundle"];
            if (details == null)
            {
                TempData["ErrorMessage"] = "No PO to generate.";
                return(RedirectToAction("RaisePurchaseOrder"));
            }
            else
            {
                List <string> suppliers = details.Values.Distinct().ToList();

                for (int i = 0; i < suppliers.Count; i++)
                {
                    Purchase_Order_Record p = new Purchase_Order_Record();
                    p.clerkID              = loggedInUser;
                    p.date                 = DateTime.Now;
                    p.orderNo              = orderNo + i;
                    p.status               = "incomplete";             //the default starting status
                    p.supplierCode         = suppliers[i];
                    p.expectedDeliveryDate = DateTime.Now.AddDays(14); //HARD CODED currently
                    pos.AddNewPurchaseOrder(p);


                    foreach (KeyValuePair <Purchase_Detail, string> entry in details)
                    {
                        Purchase_Detail pd = entry.Key;

                        string supplierCode = entry.Value;
                        //find the orderNo matching supplier and create the purchase detail
                        if (supplierCode == suppliers[i])
                        {
                            pd.orderNo = orderNo + i;
                            pos.AddPurchaseDetail(pd);
                        }
                    }
                }

                Session["detailsBundle"] = null; //clear the orderCart
                List <Purchase_Order_Record> model = pos.GetAllPurchaseOrder();
                //return View("ListPurchaseOrders", model);
                int pageSize   = 6;
                int pageNumber = (page ?? 1);
                return(View("ListPurchaseOrders", model.ToPagedList(pageNumber, pageSize)));
            }
        }
        public int UpdatePurchaseOrderInfo(Purchase_Order_Record record)
        {
            using (StationeryModel Entity = new StationeryModel())
            {
                Purchase_Order_Record por = (from x in Entity.Purchase_Order_Records
                                             where x.orderNo == record.orderNo
                                             select x).FirstOrDefault();

                por.status = record.status;
                por.expectedDeliveryDate = record.expectedDeliveryDate;
                por.clerkID = record.clerkID;
                por.date    = record.date;


                int rowAffected = Entity.SaveChanges();

                return(rowAffected);
            }
        }
Exemple #6
0
        public ActionResult gen(string id) //id is purchase order number
        {
            int orderNo = Int32.Parse(id);
            Purchase_Order_Record por = pos.FindByOrderID(orderNo);

            Inventory_mvc.Models.User clerk = ctx.Users.Where(x => x.userID == por.clerkID).First();

            Supplier s = ctx.Suppliers.Where(x => x.supplierCode == por.supplierCode).First();

            ViewBag.orderNo   = id;
            ViewBag.clerkID   = por.clerkID;
            ViewBag.clerkName = clerk.name;
            ViewBag.supplier  = s.supplierName;
            ViewBag.delivery  = por.expectedDeliveryDate;

            List <Purchase_Detail> model = ctx.Purchase_Detail.Where(x => x.orderNo == orderNo).ToList();

            return(View(model));
        }
        private ReportViewModel ConvertToReportViewModel(Purchase_Detail detail)
        {
            Stationery            stationery = stationeryService.FindStationeryByItemCode(detail.itemCode);
            Purchase_Order_Record record     = detail.Purchase_Order_Record;

            ReportViewModel vm = new ReportViewModel();

            vm.CategoryName    = stationery.Category.categoryName;
            vm.Cost            = detail.price;
            vm.ItemCode        = stationery.itemCode;
            vm.ItemDescription = stationery.description;
            vm.Month           = record.date.Month;
            vm.OrderQuantity   = detail.qty;
            vm.Status          = record.status;
            vm.Supplier        = record.supplierCode;
            vm.Year            = record.date.Year;

            return(vm);
        }
Exemple #8
0
        //FormCollection form
        public ActionResult ListPurchaseOrders(string search, string searchBy, int?page)
        {
            ViewBag.Search   = search;
            ViewBag.SearchBy = searchBy;
            List <Purchase_Order_Record> model         = new List <Purchase_Order_Record>();
            List <Purchase_Order_Record> searchResults = new List <Purchase_Order_Record>();

            try
            {
                switch (searchBy)
                {
                case ("orderNo"):
                    por = pos.FindByOrderID(Int32.Parse(search));
                    model.Add(por);
                    break;

                case ("status"):
                    searchResults = pos.FindByStatus(search);
                    model.AddRange(searchResults);
                    break;

                case ("supplier"):
                    searchResults = pos.FindBySupplier(search);
                    model.AddRange(searchResults);
                    break;

                default:
                    model = pos.GetAllPurchaseOrder();
                    break;
                }
            }
            catch
            {
                model = new List <Purchase_Order_Record>();
                //return empty list if nothing can be found
            }
            int pageSize   = 6;
            int pageNumber = (page ?? 1);

            return(View(model.ToPagedList(pageNumber, pageSize)));
            //return View(model);
        }
        public ActionResult StockReceive(string searchPONumber)
        {
            List <Purchase_Detail> model = new List <Purchase_Detail>();

            try
            {
                model = pos.GetPurchaseDetailsByOrderNo(Int32.Parse(searchPONumber));
                Purchase_Order_Record por = pos.FindByOrderID(Int32.Parse(searchPONumber));

                ViewBag.PONumber = searchPONumber;
                ViewBag.Supplier = ctx.Suppliers.Where(x => x.supplierCode == por.supplierCode).First().supplierName;
            }

            catch
            {
                TempData["searchError"] = "PO Number is required";
                //return RedirectToAction("StockReceive");
            }
            return(View(model));
        }
Exemple #10
0
        public ActionResult GeneratePDF(string id) //id is purchase order number
        {
            int orderNo = Int32.Parse(id);
            Purchase_Order_Record por = pos.FindByOrderID(orderNo);

            Inventory_mvc.Models.User clerk = ctx.Users.Where(x => x.userID == por.clerkID).First();

            Supplier s = ctx.Suppliers.Where(x => x.supplierCode == por.supplierCode).First();

            ViewBag.orderNo   = id;
            ViewBag.clerkID   = por.clerkID;
            ViewBag.clerkName = clerk.name;
            ViewBag.supplier  = s.supplierName;
            ViewBag.delivery  = por.expectedDeliveryDate;

            List <Purchase_Detail> model = ctx.Purchase_Detail.Where(x => x.orderNo == orderNo).ToList();

            string fileName = String.Format("{0}_PO_{1}.pdf", s.supplierCode, id);

            return(new ViewAsPdf("_GeneratePDF", model)
            {
                FileName = fileName
            });
        }
Exemple #11
0
 public int UpdatePurchaseOrderInfo(Purchase_Order_Record purchase_order_record)
 {
     return(dao.UpdatePurchaseOrderInfo(purchase_order_record));
 }
Exemple #12
0
 public bool AddNewPurchaseOrder(Purchase_Order_Record purchase_order_record)
 {
     return(dao.AddNewPurchaseOrder(purchase_order_record));
 }
        public ActionResult UpdateReceived(string DONumber, string ReceivedDate, string PONumber, string supplier, string sbutton)
        {
            string clerkID = HttpContext.User.Identity.Name;

            Purchase_Order_Record por = pos.FindByOrderID(Int32.Parse(PONumber));
            int pdOutstanding         = por.Purchase_Detail.Count;



            //update transaction records table
            Transaction_Record tr = new Transaction_Record();
            int nextTransactionNo = findNextTransactionNo();

            tr.transactionNo = nextTransactionNo;
            tr.clerkID       = clerkID;
            tr.date          = DateTime.Now;
            tr.type          = "DO-" + DONumber;
            trs.AddNewTransactionRecord(tr);

            List <Purchase_Detail> model         = pos.GetPurchaseDetailsByOrderNo(Int32.Parse(PONumber));
            List <string>          filledItems   = new List <string>();
            List <string>          unfilledItems = new List <string>();


            //total number of rows updated
            int totalItemsUpdated = 0;

            foreach (Purchase_Detail pd in model)
            {
                string ic          = pd.itemCode;
                string received    = Request.QueryString.GetValues("num-" + ic).First();
                int    receivedNum = Int32.Parse(received);


                //condition check if option for button" all received"
                if (sbutton == "Submit All")
                {
                    if (pd.fulfilledQty == null)
                    {
                        pd.fulfilledQty = 0;
                    }
                    receivedNum = pd.qty - pd.fulfilledQty.Value;
                }

                if (receivedNum != 0)
                {
                    string remarks = Request.QueryString.GetValues("rem-" + ic).First();
                    pd.fulfilledQty += receivedNum;

                    pd.remarks         = remarks; //delete?
                    pd.deliveryOrderNo = DONumber;

                    //update stationery table
                    Stationery s = (from x in ctx.Stationeries
                                    where x.itemCode == ic
                                    select x).First();
                    s.stockQty += receivedNum;

                    ctx.SaveChanges();
                    totalItemsUpdated++; //update number of rows updated

                    //update transaction details table
                    Transaction_Detail td = new Transaction_Detail();
                    td.itemCode      = pd.itemCode;
                    td.adjustedQty   = receivedNum;
                    td.balanceQty    = s.stockQty + receivedNum;
                    td.remarks       = remarks; //delete?
                    td.transactionNo = nextTransactionNo;
                    AddNewTransactionDetail(td);

                    //update purchase details table
                    pos.UpdatePurchaseDetailsInfo(pd);

                    pd.deliveryOrderNo = DONumber; //need to update this code once DB is altered
                    //update purchase order record to partially fulfilled
                    por.status = "partially fulfilled";
                    pos.UpdatePurchaseOrderInfo(por);



                    if (pd.qty == pd.fulfilledQty)
                    {
                        pdOutstanding--;
                    }
                }
            }

            if (totalItemsUpdated == 0)
            {
                TempData["Items updated"] = "No records saved";
            }

            //check if all pd in por are fulfilled, and update por table
            if (pdOutstanding == 0)
            {
                por.status = "completed";
                pos.UpdatePurchaseOrderInfo(por);
            }


            ViewBag.Supplier = supplier;
            ViewBag.PONumber = PONumber;
            return(View("StockReceive", model));
        }