public bool AddPurchaseDetail(string deliveryOrderNo, string itemCode, int qty, string remarks, decimal price)
        {
            using (StationeryModel Entity = new StationeryModel())
            {
                int maxOrderNo = 0;
                //to obtain highest order number
                List <Purchase_Order_Record> pds = Entity.Purchase_Order_Records.ToList();
                foreach (Purchase_Order_Record p in pds)
                {
                    maxOrderNo = 1;
                    if (p.orderNo > maxOrderNo)
                    {
                        maxOrderNo = p.orderNo;
                    }
                }

                Purchase_Detail pd = new Purchase_Detail();
                pd.orderNo         = maxOrderNo + 1;
                pd.deliveryOrderNo = deliveryOrderNo;
                pd.itemCode        = itemCode;
                pd.qty             = qty;
                pd.remarks         = remarks;
                pd.price           = price;

                Entity.Purchase_Detail.Add(pd);
                Entity.SaveChanges();
                return(true);
            }
        }
 public bool AddPurchaseDetail(Purchase_Detail pd)
 {
     using (StationeryModel Entity = new StationeryModel())
     {
         Entity.Purchase_Detail.Add(pd);
         Entity.SaveChanges();
         return(true);
     }
 }
Exemple #3
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)));
            }
        }
 protected void Page_Load(object sender, EventArgs e)
 {
     if (!IsPostBack)
     {
         if (Request.QueryString["id"] != null)
         {
             A1 = new Purchase_Detail();
             int ID = Convert.ToInt32(Request.QueryString["id"]);
             show_data(ID);
         }
         //my.FillCombo(ddlBook_id, "Book_Master", "Title", "Book_id", "");
     }
 }
        public int UpdatePurchaseDetailsInfo(Purchase_Detail pd)
        {
            using (StationeryModel Entity = new StationeryModel())
            {
                Purchase_Detail purchd = (from x in Entity.Purchase_Detail
                                          where x.orderNo == pd.orderNo && x.itemCode == pd.itemCode
                                          select x).FirstOrDefault();

                purchd.fulfilledQty     = pd.fulfilledQty;
                purchd.price            = pd.price;
                purchd.deliveryOrderNo += " /" + pd.deliveryOrderNo;
                purchd.remarks          = pd.remarks;

                int rowAffected = Entity.SaveChanges();

                return(rowAffected);
            }
        }
Exemple #6
0
        public ActionResult RaisePurchaseOrder([Bind(Include = "orderNo, itemCode, qty, remarks, price")] Purchase_Detail pd, string supplierCode)
        {
            int orderNo = findNextOrderNo();

            ViewBag.orderNo = orderNo;

            List <Purchase_Detail> model = new List <Purchase_Detail>();
            Dictionary <Purchase_Detail, string> details = new Dictionary <Purchase_Detail, string>();

            ViewBag.itemCodeList = new SelectList(ss.GetAllStationery(), "itemCode", "description");
            ViewBag.supplierList = null;


            if (Session["detailsBundle"] != null)
            {
                details = (Dictionary <Purchase_Detail, string>)Session["detailsBundle"];
                model   = details.Keys.ToList <Purchase_Detail>();
            }


            //only save to session if itemcode, price and qty are entered
            if (pd.price > 0 && pd.qty > 0 && pd.itemCode != ("--Select--") && supplierCode != ("--Select--"))
            {
                //check for pre-exisiting pd with same itemcode
                if (model.Exists(x => x.itemCode == pd.itemCode))
                {
                    TempData["DuplicateEntryMessage"] = "An order for the same item already exists in the list.";
                }
                //save
                else
                {
                    //pd.price = ctx.Stationeries.Where(x => x.itemCode == pd.itemCode).First().price;
                    details.Add(pd, supplierCode);
                    model.Add(pd);
                    Session["detailsBundle"] = details;
                }

                ModelState.Clear();
                return(View("RaisePurchaseOrder", model));
            }

            ModelState.Clear();
            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
        public ActionResult DeletePD(string delItemCode)
        {
            Dictionary <Purchase_Detail, string> details = (Dictionary <Purchase_Detail, string>)Session["detailsBundle"];
            List <Purchase_Detail> model = details.Keys.ToList <Purchase_Detail>();

            ViewBag.itemCodeList = new SelectList(ss.GetAllStationery(), "itemCode", "description");
            ViewBag.supplierList = null;



            Purchase_Detail pd = model.Where(x => x.itemCode == delItemCode).First();

            //remove from model
            model.Remove(pd);

            //remove from sessions state
            details.Remove(pd);
            Session["detailsBundle"] = details;



            return(View("RaisePurchaseOrder", model));
        }
        public void show_data(int ID)
        {
            A_Handler = new Purchase_DetailHandler();
            A1        = new Purchase_Detail();
            A1        = A_Handler.GetPurchase_DetailDetails(ID);


            txtPd_id.Text = A1.Pd_id.ToString();

            ddlReg_id.SelectedValue = A1.Reg_id.ToString();

            ddlPm_id.SelectedValue = A1.Pm_id.ToString();

            ddlBook_id.SelectedValue = A1.Book_id.ToString();

            txtQty.Text = A1.Qty.ToString();

            txtRate.Text = A1.Rate.ToString();

            txtAmount.Text = A1.Amount.ToString();

            btnSubmit.Text = "Update";
            btnReset.Text  = "Cancel";

            if (Request.QueryString["action"] == "del")
            {
                Label1.Text        = "Are U Sure, U want to  Delete a Record ?";
                txtPd_id.ReadOnly  = false;
                ddlReg_id.Enabled  = false;
                ddlPm_id.Enabled   = false;
                ddlBook_id.Enabled = false;
                txtQty.ReadOnly    = false;
                txtRate.ReadOnly   = false;
                txtAmount.ReadOnly = false;
                btnSubmit.Text     = "Delete";
            }
        }
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            A_Handler = new Purchase_DetailHandler();
            A1        = new Purchase_Detail();


            //A1.Pd_id = Convert.ToInt32(txtPd_id.Text);
            A1.Reg_id  = Convert.ToInt32(ddlReg_id.SelectedValue);
            A1.Pm_id   = Convert.ToInt32(ddlPm_id.SelectedValue);
            A1.Book_id = Convert.ToInt32(ddlBook_id.SelectedValue);
            A1.Qty     = Convert.ToInt32(txtQty.Text);
            A1.Rate    = Convert.ToDecimal(txtRate.Text);
            A1.Amount  = Convert.ToDecimal(txtAmount.Text);



            if (btnSubmit.Text == "Submit")
            {
                bool B = A_Handler.AddNewPurchase_Detail(A1);
                if (B == true)
                {
                    Label1.Text = "Record Inserted";
                    MSG         = "Record Inserted";
                }
                else
                {
                    Label1.Text = "Record Not Inserted";
                    MSG         = "Record Not Inserted";
                }
            }
            else if (btnSubmit.Text == "Update")
            {
                A1.Pd_id = Convert.ToInt32(txtPd_id.Text);
                bool B = A_Handler.UpdatePurchase_Detail(A1);
                if (B == true)
                {
                    Label1.Text = "Record Updated";
                    MSG         = "Record Not Updated";
                }
                else
                {
                    Label1.Text = "Record Not Updated";
                    MSG         = "Record Not Updated";
                }
            }
            else if (btnSubmit.Text == "Delete")
            {
                A1.Pd_id = Convert.ToInt32(txtPd_id.Text);
                bool B = A_Handler.DeletePurchase_Detail(A1);
                if (B == true)
                {
                    Label1.Text = "Record Deleted";
                    MSG         = "Record Deleted";
                }
                else
                {
                    Label1.Text = "Record Not Deleted";
                    MSG         = "Record Not Deleted";
                }
            }

            //Response.Redirect("~/ADMIN/Purchase_Detail_list.aspx?msg="+MSG);
        }
        public ActionResult AddSelected(string checker)
        {
            List <string>               itemCodes = new List <string>();
            List <Purchase_Detail>      model     = new List <Purchase_Detail>();
            Dictionary <string, string> kv        = new Dictionary <string, string>(); //kv pair of itemcode and sggestedqty
            List <StationeryViewModel>  modelAll  = shortFallList();                   // used if generate all is chosen

            if (checker == "addAll")                                                   //add all
            {
                foreach (StationeryViewModel svm in modelAll)
                {
                    itemCodes.Add(svm.ItemCode);
                }
            }

            else
            {
                //list of itemCodes to be reordered
                itemCodes = Request.QueryString.AllKeys.ToList();

                foreach (string s in itemCodes)
                {
                    string v = Request.QueryString.GetValues(s).First();
                    kv.Add(s, v);
                }
            }

            ////might need to remove
            //if (Session["detailsBundle"] != null)
            //{
            //    details = (Dictionary<Purchase_Detail, string>)Session["detailsBundle"];
            //    model = details.Keys.ToList<Purchase_Detail>();

            //}

            foreach (string i in itemCodes)
            {
                //takes the price of the first/default supplier
                Stationery s     = ctx.Stationeries.Where(x => x.itemCode == i).First();
                decimal    price = s.price;
                int        qtyToReorder;

                //find qty to reorder
                if (checker == "addAll")
                {
                    StationeryViewModel svm = modelAll.Where(x => x.ItemCode == i).First();
                    qtyToReorder = svm.Suggested;
                }
                else
                {
                    qtyToReorder = Int32.Parse(kv[i]);
                }
                Purchase_Detail pd = new Purchase_Detail();
                pd.orderNo  = findNextOrderNo();
                pd.itemCode = i;
                pd.qty      = qtyToReorder;
                pd.price    = price;
                pd.remarks  = String.Format("autogenerated from shortfall list on {0}", DateTime.Now.ToString());
                model.Add(pd);
                //find the default supplier

                string defaultSupplier = ctx.Stationeries.Where(x => x.itemCode == i).First().firstSupplierCode;

                details.Add(pd, defaultSupplier);
            }


            Session["detailsBundle"] = details;
            //to obtain latest order number
            int orderNo = findNextOrderNo();

            ViewBag.orderNo = orderNo;

            ViewBag.itemCodeList = stationeryService.GetAllItemCodes();
            //return View("~/Views/Purchase/RaisePurchaseOrder.cshtml", model);


            return(RedirectToAction("RaisePurchaseOrder", "Purchase", model));
        }
Exemple #12
0
 public int UpdatePurchaseDetailsInfo(Purchase_Detail pd)
 {
     return(dao.UpdatePurchaseDetailsInfo(pd));
 }
Exemple #13
0
 public bool AddPurchaseDetail(Purchase_Detail pd)
 {
     return(dao.AddPurchaseDetail(pd));
 }
Exemple #14
0
 // This fuction does not contain any business logic, it simply returns the
 // list of purchase_details, we can put some logic here if needed
 public bool AddNewPurchase_Detail(Purchase_Detail b1)
 {
     return(purchase_detailDb.AddNewPurchase_Detail(b1));
 }
Exemple #15
0
 // This fuction does not contain any business logic, it simply returns the
 // list of purchase_details, we can put some logic here if needed
 public bool DeletePurchase_Detail(Purchase_Detail b1)
 {
     return(purchase_detailDb.DeletePurchase_Detail(b1));
 }
Exemple #16
0
 // This fuction does not contain any business logic, it simply returns the
 // list of purchase_details, we can put some logic here if needed
 public bool UpdatePurchase_Detail(Purchase_Detail b1)
 {
     return(purchase_detailDb.UpdatePurchase_Detail(b1));
 }