public void LoadNewOrderControls()
        {
            _supplierOrder               = new SupplierOrder();
            _supplierOrder.DateOrdered   = DateTime.Now.Date;
            _supplierOrder.EmployeeID    = _loggedInEmployeeID;
            _supplierOrder.SupplierID    = _supplier.SupplierID;
            _supplierOrder.OrderComplete = false;


            _supplierOrderLine           = new SupplierOrderLine();
            this.txtItemDescription.Text = _itemSupplier.Name;
            this.txtUnitPrice.Text       = _itemSupplier.UnitPrice.ToString("c");

            _supplierOrderLine.ItemID         = _itemSupplier.ItemID;
            _supplierOrderLine.SupplierItemID = _itemSupplier.SupplierItemID;
            _supplierOrderLine.UnitPrice      = _itemSupplier.UnitPrice;
            _supplierOrderLine.Description    = _itemSupplier.Description;

            this.lblItemDescription.Visibility = Visibility.Visible;
            this.txtItemDescription.Visibility = Visibility.Visible;
            this.lblOrderQty.Visibility        = Visibility.Visible;
            this.txtOrderQuantity.Visibility   = Visibility.Visible;
            this.lblUnitPrice.Visibility       = Visibility.Visible;
            this.txtUnitPrice.Visibility       = Visibility.Visible;
            this.txtUnitPrice.IsReadOnly       = true;
            this.txtExtendedPrice.Visibility   = Visibility.Visible;
            this.lblExtendedPrice.Visibility   = Visibility.Visible;
            this.dgOrderLines.Visibility       = Visibility.Visible;
            btnAddOrder.Content = "Submit Order";
        }
Example #2
0
        /// <summary>
        /// Laura Simmonds
        /// Created:
        /// 2017/05/08
        ///
        /// Invokes a stored procedure to create a new order line in the database.
        /// </summary>
        /// <param name="supplierOrderLine">The order line to create.</param>
        /// <returns>The new order line number that is auto generated by the database.</returns>
        public static int CreateSupplierOrderLine(SupplierOrderLine supplierOrderLine)
        {
            int rowsAffected = 0;

            var conn    = DBConnection.GetConnection();
            var cmdText = @"sp_create_supplier_order_line";
            var cmd     = new SqlCommand(cmdText, conn);

            cmd.CommandType = CommandType.StoredProcedure;

            cmd.Parameters.AddWithValue("@COMPANY_ORDER_ID", supplierOrderLine.SupplierProductOrderID);
            cmd.Parameters.AddWithValue("@PRODUCT_ID", supplierOrderLine.ProductID);
            cmd.Parameters.AddWithValue("@PRODUCT_NAME", (object)supplierOrderLine.ProductName ?? DBNull.Value);
            cmd.Parameters.AddWithValue("@QUANTITY", supplierOrderLine.Quantity);

            try
            {
                conn.Open();
                //int.TryParse(cmd.ExecuteScalar().ToString(), out orderLineID);
                //decimal id = (decimal)cmd.ExecuteScalar();
                //orderLineID = (int)id;
                rowsAffected = cmd.ExecuteNonQuery();
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                conn.Close();
            }

            return(rowsAffected);
        }
Example #3
0
        public ActionResult AddToList(int Product, int Quantity)
        {
            db.Configuration.ProxyCreationEnabled = false;
            bool          inList    = false;
            int           SuppOrdID = Convert.ToInt32(TempData["SuppOrdID"]);
            SupplierOrder so        = db.SupplierOrders.Include(sos => sos.Supplier)
                                      .Include(sos => sos.SupplierOrderLines)
                                      .Where(sos => sos.SupplierOrderID == SuppOrdID)
                                      .FirstOrDefault();

            foreach (SupplierOrderLine sol in so.SupplierOrderLines)
            {
                if (sol.ProductID == Product)
                {
                    inList = true;
                    sol.QuantityOrdered += Quantity;
                    db.SaveChanges();
                    break;
                }
            }
            if (!inList)
            {
                SupplierOrderLine newLine = new SupplierOrderLine();
                newLine.ProductID        = Product;
                newLine.QuantityOrdered  = Quantity;
                newLine.QuantityReceived = 0;
                newLine.SupplierOrderID  = Convert.ToInt32(TempData["SuppOrdID"]);
                so.SupplierOrderLines.Add(newLine);
                db.SaveChanges();
            }
            return(RedirectToAction("MakeSupplierOrder", new { id = so.SupplierID }));
        }
        public void TestUpdateSupplierOrder()
        {
            SupplierOrder newSupplierOrder = new SupplierOrder()
            {
                SupplierID      = 100005,
                SupplierOrderID = 100010,
                DateOrdered     = DateTime.Today,
                Description     = "test order",
                EmployeeID      = 100000,
                OrderComplete   = false
            };

            SupplierOrderLine supplierOrderLine1 = new SupplierOrderLine()
            {
                SupplierOrderID = 100010,
                Description     = "test item 1",
                ItemID          = 100015,
                OrderQty        = 100,
                QtyReceived     = 0,
                UnitPrice       = 1.00M
            };

            SupplierOrderLine supplierOrderLine2 = new SupplierOrderLine()
            {
                SupplierOrderID = 100010,
                Description     = "testString",
                ItemID          = 100015,
                OrderQty        = 500,
                QtyReceived     = 0,
                UnitPrice       = 1.00M
            };

            List <SupplierOrder>     supplierOrders;
            List <SupplierOrderLine> lines;
            SupplierOrder            supplierOrder;

            _supplierOrderLines.Add(supplierOrderLine1);
            _supplierOrderLines.Add(supplierOrderLine2);

            //Act
            _supplierOrderManager.CreateSupplierOrder(newSupplierOrder, _supplierOrderLines);
            newSupplierOrder.Description = "updated description";

            _supplierOrderLines[0].OrderQty = 10000;
            _supplierOrderLines[1].OrderQty = 10001;
            _supplierOrderManager.UpdateSupplierOrder(newSupplierOrder, _supplierOrderLines);

            supplierOrders = _supplierOrderManager.RetrieveAllSupplierOrders();
            supplierOrder  = supplierOrders.Find(s => s.SupplierOrderID == 100010);

            lines = _supplierOrderManager.RetrieveAllSupplierOrderLinesBySupplierOrderID(100010);

            Assert.AreEqual(supplierOrder.Description, "updated description");

            Assert.AreEqual(lines[0].OrderQty, 10000);
            Assert.AreEqual(lines[1].OrderQty, 10001);
        }
Example #5
0
        public List <SupplierOrderLine> SelectSupplierOrderLinesBySupplierOrderID(int supplierOrderID)
        {
            /// <summary>
            /// Eric Bostwick
            /// Created 3/7/2019
            /// Gets list of All SupplierOrderLines from SupplierOrderLine table
            /// </summary>
            /// <returns>
            /// List of SupplierOrderLine Objects
            /// </returns>

            List <SupplierOrderLine> supplierOrderLines = new List <SupplierOrderLine>();
            var conn    = DBConnection.GetDbConnection();
            var cmdText = @"sp_select_all_supplier_order_lines";  //sp_retrieve_itemsuppliers_by_itemid
            var cmd     = new SqlCommand(cmdText, conn);

            cmd.CommandType = CommandType.StoredProcedure;

            cmd.Parameters.AddWithValue("@SupplierOrderID", supplierOrderID);

            try
            {
                conn.Open();
                var reader = cmd.ExecuteReader();

                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        SupplierOrderLine supplierOrderLine = new SupplierOrderLine();

                        supplierOrderLine.ItemID          = reader.GetInt32(reader.GetOrdinal("ItemID"));
                        supplierOrderLine.Description     = reader["Description"].ToString();
                        supplierOrderLine.OrderQty        = reader.GetInt32(reader.GetOrdinal("OrderQty"));
                        supplierOrderLine.QtyReceived     = reader.GetInt32(reader.GetOrdinal("QtyReceived"));
                        supplierOrderLine.SupplierOrderID = reader.GetInt32(reader.GetOrdinal("SupplierOrderID"));
                        supplierOrderLine.UnitPrice       = (decimal)reader.GetSqlMoney(reader.GetOrdinal("UnitPrice"));

                        supplierOrderLines.Add(supplierOrderLine);
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                conn.Close();
            }

            return(supplierOrderLines);
        }
        /// <summary>
        /// Laura Simmonds
        /// Created:
        /// 2017/05/08
        ///
        /// Calls supplier order line accessor create order line
        /// and retrieves the order line id
        /// </summary>
        /// <param name="orderLine"></param>
        /// <returns></returns>
        public int CreateOrderLine(SupplierOrderLine supplierOrderLine)
        {
            int result = 0;

            try
            {
                result = SupplierOrderLineAccessor.CreateSupplierOrderLine(supplierOrderLine);
            }
            catch (Exception)
            {
                throw;
            }
            return(result);
        }
        public void TestCreateSupplierOrderValidInput()
        {
            //arrange
            SupplierOrder newSupplierOrder = new SupplierOrder()
            {
                SupplierID      = 100005,
                SupplierOrderID = 100010,
                DateOrdered     = DateTime.Today,
                Description     = "test order",
                EmployeeID      = 100000,
                OrderComplete   = false
            };

            SupplierOrderLine supplierOrderLine1 = new SupplierOrderLine()
            {
                SupplierOrderID = 100010,
                Description     = "test item 1",
                ItemID          = 100015,
                OrderQty        = 100,
                QtyReceived     = 0,
                UnitPrice       = 1.00M
            };

            SupplierOrderLine supplierOrderLine2 = new SupplierOrderLine()
            {
                SupplierOrderID = 100010,
                Description     = "test item 1",
                ItemID          = 100015,
                OrderQty        = 100,
                QtyReceived     = 0,
                UnitPrice       = 1.00M
            };

            List <SupplierOrderLine> supplierOrderLines = new List <SupplierOrderLine>();

            supplierOrderLines.Add(supplierOrderLine1);
            supplierOrderLines.Add(supplierOrderLine2);

            //Act
            _supplierOrderManager.CreateSupplierOrder(newSupplierOrder, supplierOrderLines);

            //Assert
            _supplierOrders = _supplierOrderManager.RetrieveAllSupplierOrders();

            Assert.IsNotNull(_supplierOrders.Find(x => x.SupplierOrderID == newSupplierOrder.SupplierOrderID && x.DateOrdered == newSupplierOrder.DateOrdered &&
                                                  x.Description == newSupplierOrder.Description && x.EmployeeID == newSupplierOrder.EmployeeID && x.OrderComplete == newSupplierOrder.OrderComplete)
                             );
        }
        public void TestCreateSupplierOrderInValidLineDescriptionTooLong()
        {
            string testString = createString(1001);
            //arrange
            SupplierOrder newSupplierOrder = new SupplierOrder()
            {
                SupplierID      = 100005,
                SupplierOrderID = 100010,
                DateOrdered     = DateTime.Today,
                Description     = "test",
                EmployeeID      = 100000,
                OrderComplete   = false
            };

            SupplierOrderLine supplierOrderLine1 = new SupplierOrderLine()
            {
                SupplierOrderID = 100010,
                Description     = "test item 1",
                ItemID          = 100015,
                OrderQty        = 100,
                QtyReceived     = 0,
                UnitPrice       = 1.00M
            };

            SupplierOrderLine supplierOrderLine2 = new SupplierOrderLine()
            {
                SupplierOrderID = 100010,
                Description     = testString,
                ItemID          = 100015,
                OrderQty        = 500,
                QtyReceived     = 0,
                UnitPrice       = 1.00M
            };

            List <SupplierOrderLine> supplierOrderLines = new List <SupplierOrderLine>();

            supplierOrderLines.Add(supplierOrderLine1);
            supplierOrderLines.Add(supplierOrderLine2);
            //Act
            _supplierOrderManager.CreateSupplierOrder(newSupplierOrder, supplierOrderLines);
        }
        public void TestCreateSupplierOrderInValidInputOrderQtyNegative()
        {
            //arrange
            SupplierOrder newSupplierOrder = new SupplierOrder()
            {
                SupplierID      = 100005,
                SupplierOrderID = 100010,
                DateOrdered     = DateTime.Today,
                Description     = "test order",
                EmployeeID      = 100000,
                OrderComplete   = false
            };

            SupplierOrderLine supplierOrderLine1 = new SupplierOrderLine()
            {
                SupplierOrderID = 100010,
                Description     = "test item 1",
                ItemID          = 100015,
                OrderQty        = 100,
                QtyReceived     = 0,
                UnitPrice       = 1.00M
            };

            SupplierOrderLine supplierOrderLine2 = new SupplierOrderLine()
            {
                SupplierOrderID = 100010,
                Description     = "test item 1",
                ItemID          = 100015,
                OrderQty        = -5,
                QtyReceived     = 0,
                UnitPrice       = 1.00M
            };

            List <SupplierOrderLine> supplierOrderLines = new List <SupplierOrderLine>();

            supplierOrderLines.Add(supplierOrderLine1);
            supplierOrderLines.Add(supplierOrderLine2);
            //Act
            _supplierOrderManager.CreateSupplierOrder(newSupplierOrder, supplierOrderLines);
        }
        /// <summary>
        /// Eric Bostwick
        /// 2/27/2019
        /// Double click the grid to edit the line
        /// It will remove the item from the grid so it can be readded
        /// the item combo box
        /// </summary>
        private void DgOrderLines_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            _supplierOrderLine = (SupplierOrderLine)dgOrderLines.SelectedItem;
            _supplierOrderLines.Remove(_supplierOrderLine);

            dgOrderLines.Items.Refresh();
            _itemSuppliers = _supplierOrderManager.RetrieveAllItemSuppliersBySupplierID(_supplier.SupplierID);
            _itemSupplier  = _itemSuppliers.Find(s => s.ItemID == _supplierOrderLine.ItemID);

            txtUnitPrice.Text = _supplierOrderLine.UnitPrice.ToString();

            this.txtOrderQuantity.Text         = _supplierOrderLine.OrderQty.ToString();
            this.lblItemDescription.Visibility = Visibility.Visible;
            this.txtItemDescription.Visibility = Visibility.Visible;
            this.lblOrderQty.Visibility        = Visibility.Visible;
            this.txtOrderQuantity.Visibility   = Visibility.Visible;
            this.lblUnitPrice.Visibility       = Visibility.Visible;
            this.txtUnitPrice.Visibility       = Visibility.Visible;
            this.txtUnitPrice.IsReadOnly       = true;
            this.txtExtendedPrice.Visibility   = Visibility.Visible;
            this.lblExtendedPrice.Visibility   = Visibility.Visible;
            this.dgOrderLines.Visibility       = Visibility.Visible;
        }
        public void LoadEditOrderControls()
        {
            _supplierOrderLine           = new SupplierOrderLine();
            this.txtItemDescription.Text = _itemSupplier.Name;
            this.txtUnitPrice.Text       = _itemSupplier.UnitPrice.ToString("c");

            _supplierOrderLine.ItemID         = _itemSupplier.ItemID;
            _supplierOrderLine.UnitPrice      = _itemSupplier.UnitPrice;
            _supplierOrderLine.Description    = _itemSupplier.Description;
            _supplierOrderLine.SupplierItemID = _itemSupplier.SupplierItemID;

            this.lblItemDescription.Visibility = Visibility.Visible;
            this.txtItemDescription.Visibility = Visibility.Visible;
            this.lblOrderQty.Visibility        = Visibility.Visible;
            this.txtOrderQuantity.Visibility   = Visibility.Visible;
            this.lblUnitPrice.Visibility       = Visibility.Visible;
            this.txtUnitPrice.Visibility       = Visibility.Visible;
            this.txtUnitPrice.IsReadOnly       = true;
            this.txtExtendedPrice.Visibility   = Visibility.Visible;
            this.lblExtendedPrice.Visibility   = Visibility.Visible;
            this.dgOrderLines.Visibility       = Visibility.Visible;
            btnAddOrder.Content = "Update Order";
        }
        /// <summary>
        /// Author: Kevin Broskow
        /// Created : 3/25/2019
        /// Handles the event of the submit button being clicked
        ///
        /// </summary>
        private void btnSubmit_Click(object sender, RoutedEventArgs e)
        {
            if (this.btnSubmit.Content.Equals("Submit"))
            {
                ticket.SupplierOrderID             = order.SupplierOrderID;
                ticket.ReceivingTicketExceptions   = this.txtException.Text;
                ticket.ReceivingTicketCreationDate = DateTime.Now;
                for (int i = 0; i < dgOrderRecieving.Items.Count - 1; i++)
                {
                    dgOrderRecieving.SelectedIndex = i;
                    SupplierOrderLine temp = (SupplierOrderLine)dgOrderRecieving.SelectedItem;
                    var _tempLine          = supplierOrderLine.Find(x => x.ItemID == temp.ItemID);
                    _tempLine.QtyReceived = temp.QtyReceived;
                    if (_tempLine.OrderQty != temp.QtyReceived)
                    {
                        orderComplete = false;
                    }
                    supplierOrderLine.Find(x => x.ItemID == temp.ItemID).QtyReceived = temp.QtyReceived;
                }

                try
                {
                    order.OrderComplete = orderComplete;

                    _supplierManager.UpdateSupplierOrder(order, supplierOrderLine);

                    _receivingManager.createReceivingTicket(ticket);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
            else if (this.btnSubmit.Content.Equals("Save"))
            {
                ticket.ReceivingTicketExceptions   = this.txtException.Text;
                ticket.ReceivingTicketCreationDate = DateTime.Now;
                for (int i = 0; i < dgOrderRecieving.Items.Count - 1; i++)
                {
                    dgOrderRecieving.SelectedIndex = i;
                    SupplierOrderLine temp = (SupplierOrderLine)dgOrderRecieving.SelectedItem;
                    var _tempLine          = supplierOrderLine.Find(x => x.ItemID == temp.ItemID);
                    _tempLine.QtyReceived = temp.QtyReceived;
                    if (_tempLine.OrderQty != temp.QtyReceived)
                    {
                        orderComplete = false;
                    }
                    supplierOrderLine.Find(x => x.ItemID == temp.ItemID).QtyReceived = temp.QtyReceived;
                }

                try
                {
                    order.OrderComplete = orderComplete;

                    _supplierManager.UpdateSupplierOrder(order, supplierOrderLine);

                    _receivingManager.updateReceivingTicket(originalTicket, ticket);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
            else if (this.btnSubmit.Content.Equals("Complete"))
            {
                ticket.SupplierOrderID             = _specialOrder.SpecialOrderID;
                ticket.ReceivingTicketExceptions   = this.txtException.Text;
                ticket.ReceivingTicketCreationDate = DateTime.Now;
                for (int i = 0; i < dgOrderRecieving.Items.Count - 1; i++)
                {
                    dgOrderRecieving.SelectedIndex = i;
                    SpecialOrderLine temp = (SpecialOrderLine)dgOrderRecieving.SelectedItem;
                    var _tempLine         = specialOrderLines.Find(x => x.NameID == temp.NameID);
                    _tempLine.QtyReceived = temp.QtyReceived;
                    if (_tempLine.OrderQty != temp.QtyReceived)
                    {
                        orderComplete = false;
                    }
                    specialOrderLines.Find(x => x.NameID == temp.NameID).QtyReceived = temp.QtyReceived;
                }

                try
                {
                    if (orderComplete)
                    {
                        _specialManager.EditSpecialOrder(_specialOrder, _specialOrder);
                    }
                    int i = 0;
                    foreach (var item in specialOrderLines)
                    {
                        _specialManager.EditSpecialOrderLine(originalSpecialOrderLine[i], item);
                        i++;
                    }

                    //_receivingManager.createReceivingTicket(ticket);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }

            this.Close();
        }