Пример #1
0
        public IngPurchaseOrdersController()
        {
            _factory                = new PurchaseOrderFactory();
            _Supplierfactory        = new SupplierFactory();
            _Storefactory           = new StoreFactory();
            _defaultCurrencyFactory = new DefaultCurrencyFactory();
            _factoryTax             = new Shared.Factory.Settings.TaxFactory();
            //ViewBag.ListStore = GetListStore();
            //lstStore = ViewBag.ListStore;
            //listStoreId = lstStore.Select(x => x.Value).ToList();

            lstStore    = (List <StoreModels>)ViewBag.StoreID.Items;
            listStoreId = lstStore.Select(x => x.Id).ToList();

            //==========
            lstCompany    = GetListCompany();
            listCompanyId = lstCompany.Select(x => x.Value).ToList();

            var lstCurData = _defaultCurrencyFactory.GetListDefaultCurrency();

            foreach (var item in lstCurData)
            {
                lstCur.Add(new SelectListItem
                {
                    Value = item.Id,
                    Text  = item.Symbol
                });
            }
        }
Пример #2
0
        private void RetrieveItems(int orderNumber)
        {
            try
            {
                ItemList.Clear();
                ItemList = ItemFactory.RetrieveByOrderNumber(orderNumber);

                Employee tmpEmployee = EmployeeFactory.RetrieveByOrderNumber(orderNumber);
                tmpDepartment      = DepartmentFactory.RetrieveByEmployeeId(tmpEmployee.Id);
                txtEmployee.Text   = tmpEmployee.FirstName + " " + tmpEmployee.LastName;
                txtDepartment.Text = tmpDepartment.Title;
                txtSupervisor.Text = tmpDepartment.SupervisorName;

                Order = PurchaseOrderFactory.RetrieveByNumber(orderNumber, tmpEmployee.Id);
                grdItems.DataSource = ItemList;
                grdItems.DataBind();

                txtPONumber.Text     = Order.OrderNumber.ToString();
                txtCreationDate.Text = Order.OrderDate.ToShortDateString();
                txtStatus.Text       = Order.Status;
                txtSubtotal.Text     = String.Format("{0:C}", Order.Subtotal);
                txtTaxes.Text        = String.Format("{0:C}", Order.Taxes);
                txtTotal.Text        = String.Format("{0:C}", Order.Total);

                orderDetails.Attributes.Add("style", "display:block");
                confirmation.Attributes.Add("style", "display:none");
                lblMessage.Text = "";
            }
            catch (Exception ex)
            {
                confirmation.Attributes.Add("style", "display:block");
                lblMessage.Text = ex.Message + " " + ex.GetType().ToString();
            }
        }
Пример #3
0
        public void addALineToAPurchaseOrder()
        {
            PurchaseOrderFactory s   = new PurchaseOrderFactory();
            PurchaseOrder        res = s.createPurchaseOrder();

            int lines = res.Lines.Count;

            s.addPurchaseOrderLine(2, "Box", res);

            int linesAfter = res.Lines.Count;

            Assert.IsTrue(linesAfter == (lines + 1));
        }
Пример #4
0
        protected void btnComplete_Click(object sender, EventArgs e)
        {
            try
            {
                if (ItemList.Count > 0)
                {
                    PurchaseOrder tmpOrder = PurchaseOrderFactory.Create();

                    foreach (Item tmpItem in ItemList)
                    {
                        tmpOrder.Subtotal += tmpItem.Subtotal;
                        tmpOrder.Taxes    += (tmpItem.Subtotal * 0.15);
                        tmpOrder.PurchaseOrderItemList.Add(tmpItem);
                    }

                    tmpOrder.Total      = tmpOrder.Subtotal + tmpOrder.Taxes;
                    tmpOrder.Status     = "Pending";
                    tmpOrder.EmployeeId = tmpEmployee.Id;
                    tmpOrder.OrderDate  = DateTime.Now;

                    if (VAL.Validate.cleanPurchaseOrder(tmpOrder))
                    {
                        int OrderNumber = PurchaseOrderFactory.Submit(tmpOrder);
                        confirmation.Attributes.Add("style", "display:block");
                        lblMessage.Text = "Purchase Order successfully submitted. Agreement ID is " + OrderNumber;
                        ClearInputs();
                        ItemList.Clear();
                        grdItems.DataSource = null;
                        ClearTotals();
                        totals.Visible   = false;
                        grdItems.Visible = false;
                        txtName.Focus();
                    }
                }
                else
                {
                    confirmation.Attributes.Add("style", "display:block");
                    lblMessage.Text = "Please add items to Purchase Order before submitting";
                }
            }
            catch (Exception ex)
            {
                confirmation.Attributes.Add("style", "display:block");
                lblMessage.Text = "An error has occurred. " + ex.Message;
            }
        }
Пример #5
0
        public IngReceiptNoteController()
        {
            _factory           = new ReceiptNoteFactory();
            _Detailfactory     = new ReceiptNoteDetailFactory();
            _POfactory         = new PurchaseOrderFactory();
            _PODFactory        = new PurchaseOrderDetailFactory();
            _RTFactory         = new ReturnNoteFactory();
            _InventoryFactory  = new InventoryFactory();
            _UOMFactory        = new UnitOfMeasureFactory();
            _IngredientFactory = new IngredientFactory();

            ViewBag.ListStore = GetListStore();
            lstStore          = ViewBag.ListStore;
            //listStoreId = lstStore.Select(x => x.Value).ToList();
            //==========
            lstCompany    = GetListCompany();
            listCompanyId = lstCompany.Select(x => x.Value).ToList();
        }
        private void btnComplete_Click(object sender, EventArgs e)
        {
            try
            {
                if (ItemList.Count > 0)
                {
                    PurchaseOrder tmpOrder = PurchaseOrderFactory.Create();

                    foreach (Item tmpItem in ItemList)
                    {
                        tmpOrder.Subtotal += tmpItem.Subtotal;
                        tmpOrder.Taxes    += (tmpItem.Subtotal * 0.15);
                        tmpOrder.PurchaseOrderItemList.Add(tmpItem);
                    }

                    tmpOrder.Total      = tmpOrder.Subtotal + tmpOrder.Taxes;
                    tmpOrder.Status     = "Pending";
                    tmpOrder.EmployeeId = tmpEmployee.Id;
                    tmpOrder.OrderDate  = DateTime.Now;

                    if (VAL.Validate.cleanPurchaseOrder(tmpOrder))
                    {
                        int OrderNumber = PurchaseOrderFactory.Submit(tmpOrder);
                        MessageBox.Show("Purchase Order successfully submitted. Agreement ID is " + OrderNumber + ".");
                        ClearInputs();
                        ItemList.Clear();
                        dgvItems.Rows.Clear();
                        ClearTotals();
                        pnlTotals.Visible = false;
                        dgvItems.Visible  = false;
                        txtName.Focus();
                    }
                }
                else
                {
                    MessageBox.Show("Please add items to Purchase Order before submitting.");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "An error has occurred");
            }
        }
Пример #7
0
        protected void btnCloseYes_Click(object sender, EventArgs e)
        {
            try
            {
                PurchaseOrderFactory.ClosePurchaseOrder(Order);
                Order.Status = "Closed";
                grdOrders.Rows[grdOrders.SelectedRow.RowIndex].Cells[5].Text = Order.Status;
                grdOrders.Rows[grdOrders.SelectedRow.RowIndex].BackColor     = System.Drawing.Color.Gray;
                pnlClose.Attributes.Add("style", "display:none");
                btnCancelItems_Click(btnCancelItems, EventArgs.Empty);

                Employee OrderEmployee = EmployeeFactory.RetrieveByOrderNumber(Order.OrderNumber);
                PurchaseOrderFactory.EmailEmployee(OrderEmployee.Id, OrderEmployee.Email, Order.OrderNumber, Order.Total, ItemList);
                grdItems.SelectedIndex = -1;
            }
            catch (Exception ex)
            {
                btnCancelItems_Click(btnCancelItems, EventArgs.Empty);
                confirmation.Attributes.Add("style", "display:block");
                lblMessage.Text = "An error has occurred. " + ex.Message + " Order status still updated to Closed";
            }
        }
Пример #8
0
        private void btnClose_Click(object sender, EventArgs e)
        {
            try
            {
                DialogResult dialogResult = MessageBox.Show("Do you wish to close the purchase order now?", "", MessageBoxButtons.YesNo);

                if (dialogResult == DialogResult.Yes)
                {
                    PurchaseOrderFactory.ClosePurchaseOrder(Order);
                    Order.Status = "Closed";
                    dgvOrders.Rows[selectedOrderIndex].Cells["Status"].Value      = Order.Status;
                    dgvOrders.Rows[selectedOrderIndex].DefaultCellStyle.BackColor = Color.Gray;
                    btnCancelDeny.PerformClick();
                    btnCancelItems.PerformClick();

                    Employee OrderEmployee = EmployeeFactory.RetrieveByOrderNumber((int)dgvOrders.SelectedRows[0].Cells[0].Value);
                    PurchaseOrderFactory.EmailEmployee(OrderEmployee.Id, OrderEmployee.Email, Order.OrderNumber, Order.Total, ItemList);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "An error has occurred");
            }
        }
Пример #9
0
        private void btnSearchNumber_Click(object sender, EventArgs e)
        {
            try
            {
                if (txtNumber.Text != string.Empty && IsNumeric(txtNumber.Text))
                {
                    OrderList.Clear();
                    Order = null;

                    string[] names     = Settings.Default.EmployeeName.ToString().Split(' ');
                    string   firstName = names[0];
                    string   lastName  = names[1];

                    Employee OrderEmployee = EmployeeFactory.RetrieveByName(firstName, lastName);

                    if (Settings.Default.AccessLevel.Equals("S"))
                    {
                        Order = PurchaseOrderFactory.RetrieveByNumberSupervisor(Convert.ToInt32(txtNumber.Text), OrderEmployee.Id);

                        if (Order == null)
                        {
                            MessageBox.Show("Purchase order cannot be found or Supervisor does not have permission to view order.");
                            txtNumber.Focus();
                            txtNumber.SelectAll();
                            return;
                        }
                    }
                    else
                    {
                        Order = PurchaseOrderFactory.RetrieveByNumber(Convert.ToInt32(txtNumber.Text), OrderEmployee.Id);

                        if (Order == null)
                        {
                            MessageBox.Show("Purchase order cannot be found or Employee does not have permission to view order.");
                            txtNumber.Focus();
                            txtNumber.SelectAll();
                            return;
                        }
                    }

                    List <PurchaseOrder> singleOrderList = new List <PurchaseOrder> {
                        Order
                    };
                    dgvOrders.DataSource = singleOrderList;
                    ModifyPODataGrid();
                    dgvOrders.Visible         = true;
                    btnSelect.Visible         = true;
                    btnCancelSearch.Visible   = true;
                    lblPurchaseOrders.Visible = true;
                    txtNumber.Clear();
                    txtNumber.Focus();
                    grpSearchOther.Enabled  = false;
                    grpSearchNumber.Enabled = false;

                    for (int i = 0; i < singleOrderList.Count; i++)
                    {
                        PurchaseOrder tmpOrder = singleOrderList[i];

                        if (!tmpOrder.Status.Equals("Pending"))
                        {
                            dgvOrders.Rows[i].DefaultCellStyle.BackColor = Color.Gray;
                        }
                    }
                }
                else
                {
                    MessageBox.Show("Please enter a valid purchase order number.");
                    txtNumber.Focus();
                    txtNumber.SelectAll();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "An error has occurred");
                txtNumber.Focus();
                txtNumber.SelectAll();
            }
        }
Пример #10
0
        private void btnAddItem_Click(object sender, EventArgs e)
        {
            try
            {
                if (txtName.Text != string.Empty && txtDescription.Text != string.Empty && txtPurchaseLocation.Text != string.Empty &&
                    txtJustification.Text != string.Empty && txtPrice.Text != string.Empty && IsNumeric(txtPrice.Text) &&
                    txtQuantity.Text != string.Empty && Convert.ToInt32(txtQuantity.Text) > 0 && IsNumeric(txtQuantity.Text))
                {
                    Item tmpItem = ItemFactory.Create();
                    tmpItem.Name             = txtName.Text;
                    tmpItem.Description      = txtDescription.Text;
                    tmpItem.PurchaseLocation = txtPurchaseLocation.Text;
                    tmpItem.Justification    = txtJustification.Text;
                    tmpItem.Price            = Convert.ToDouble(txtPrice.Text);
                    tmpItem.Quantity         = Convert.ToInt32(txtQuantity.Text);
                    tmpItem.Subtotal         = tmpItem.Price * tmpItem.Quantity;
                    tmpItem.OrderNumber      = Order.OrderNumber;

                    if (VAL.Validate.cleanItem(tmpItem))
                    {
                        if (ItemList.Any(Item => Item.Name == tmpItem.Name) && ItemList.Any(Item => Item.Description == tmpItem.Description) &&
                            ItemList.Any(Item => Item.Price == tmpItem.Price) && ItemList.Any(Item => Item.PurchaseLocation == tmpItem.PurchaseLocation) &&
                            ItemList.Any(Item => Item.Justification == tmpItem.Justification))
                        {
                            foreach (Item item in ItemList)
                            {
                                if (tmpItem.Name.Equals(item.Name) && tmpItem.Description.Equals(item.Description) &&
                                    tmpItem.Price == item.Price && tmpItem.PurchaseLocation.Equals(item.PurchaseLocation) &&
                                    tmpItem.Justification.Equals(item.Justification))
                                {
                                    item.Quantity += tmpItem.Quantity;
                                    item.Subtotal += tmpItem.Price * tmpItem.Quantity;
                                    int rowIndex = ItemList.IndexOf(item);
                                    dgvItems.Rows[rowIndex].Cells["Quantity"].Value = item.Quantity;
                                    dgvItems.Rows[rowIndex].Cells["Subtotal"].Value = item.Subtotal;
                                    tmpItem = item;

                                    txtName.Focus();
                                }
                            }

                            if (!tmpItem.Status.Equals("Pending"))
                            {
                                MessageBox.Show("Cannot modify item if its status is not set to Pending.");
                            }
                            else
                            {
                                bool result = ItemFactory.EmployeeModifyItem(tmpItem);

                                if (result == true)
                                {
                                    CalculateTotals();

                                    double subtotal = Convert.ToDouble((txtSubtotal.Text as string).Trim('$'));
                                    double taxes    = Convert.ToDouble((txtTaxes.Text as string).Trim('$'));
                                    double total    = Convert.ToDouble((txtTotal.Text as string).Trim('$'));

                                    Order.Subtotal = subtotal;
                                    Order.Taxes    = taxes;
                                    Order.Total    = total;

                                    PurchaseOrderFactory.EmployeeUpdateTotals(Order);
                                    ItemList = ItemFactory.RetrieveByOrderNumber(tmpItem.OrderNumber);
                                    MessageBox.Show("Item #" + tmpItem.ItemId + " successfully updated. Purchase Order totals have also been updated.");

                                    dgvOrders.Rows[selectedOrderIndex].Cells["Subtotal"].Value = Order.Subtotal;
                                    dgvOrders.Rows[selectedOrderIndex].Cells["Taxes"].Value    = Order.Taxes;
                                    dgvOrders.Rows[selectedOrderIndex].Cells["Total"].Value    = Order.Total;

                                    dgvItems.DataSource = ItemList;

                                    if (!Order.Status.Equals("Closed"))
                                    {
                                        foreach (Item item in ItemList)
                                        {
                                            if (!item.Description.Equals("No longer needed"))
                                            {
                                                dgvItems.Rows[ItemList.IndexOf(item)].Cells["status"].Value = "Pending";
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        else
                        {
                            int itemId = ItemFactory.EmployeeAddItem(tmpItem, Order);

                            if (itemId != 0)
                            {
                                ItemList.Add(tmpItem);
                                CalculateTotals();

                                double subtotal = Convert.ToDouble((txtSubtotal.Text as string).Trim('$'));
                                double taxes    = Convert.ToDouble((txtTaxes.Text as string).Trim('$'));
                                double total    = Convert.ToDouble((txtTotal.Text as string).Trim('$'));

                                Order.Subtotal = subtotal;
                                Order.Taxes    = taxes;
                                Order.Total    = total;

                                PurchaseOrderFactory.EmployeeUpdateTotals(Order);
                                ItemList = ItemFactory.RetrieveByOrderNumber(tmpItem.OrderNumber);
                                MessageBox.Show("Item #" + itemId + " successfully added to Order #" + tmpItem.OrderNumber + ". Purchase Order totals have also been updated.");

                                dgvOrders.Rows[selectedOrderIndex].Cells["Subtotal"].Value = Order.Subtotal;
                                dgvOrders.Rows[selectedOrderIndex].Cells["Taxes"].Value    = Order.Taxes;
                                dgvOrders.Rows[selectedOrderIndex].Cells["Total"].Value    = Order.Total;

                                dgvItems.DataSource = ItemList;

                                if (!Order.Status.Equals("Closed"))
                                {
                                    foreach (Item item in ItemList)
                                    {
                                        if (!item.Description.Equals("No longer needed"))
                                        {
                                            dgvItems.Rows[ItemList.IndexOf(item)].Cells["status"].Value = "Pending";
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                else
                {
                    MessageBox.Show("Please fill in all fields before adding a new item.");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "An error has occurred");
            }
        }
Пример #11
0
        private void btnModify_Click(object sender, EventArgs e)
        {
            try
            {
                if (txtName.Text != string.Empty && txtDescription.Text != string.Empty && txtPurchaseLocation.Text != string.Empty &&
                    txtJustification.Text != string.Empty && txtPrice.Text != string.Empty && IsNumeric(txtPrice.Text) &&
                    txtQuantity.Text != string.Empty && Convert.ToInt32(txtQuantity.Text) > 0 && IsNumeric(txtQuantity.Text))
                {
                    int  gridItemIndex = dgvItems.SelectedRows[0].Index;
                    Item listItem      = ItemList[gridItemIndex];
                    listItem.Name             = txtName.Text;
                    listItem.Description      = txtDescription.Text;
                    listItem.PurchaseLocation = txtPurchaseLocation.Text;
                    listItem.Justification    = txtJustification.Text;
                    listItem.Price            = Convert.ToDouble(txtPrice.Text);
                    listItem.Quantity         = Convert.ToInt32(txtQuantity.Text);
                    listItem.Subtotal         = listItem.Price * listItem.Quantity;

                    if (txtModReason.Text != string.Empty)
                    {
                        listItem.ModificationReason = txtModReason.Text;
                    }

                    if (VAL.Validate.cleanItem(listItem))
                    {
                        int itemIndex = ItemList.IndexOf(listItem);
                        ItemList[itemIndex] = listItem;

                        dgvItems.Rows[itemIndex].Cells["Name"].Value             = listItem.Name;
                        dgvItems.Rows[itemIndex].Cells["Description"].Value      = listItem.Description;
                        dgvItems.Rows[itemIndex].Cells["PurchaseLocation"].Value = listItem.PurchaseLocation;
                        dgvItems.Rows[itemIndex].Cells["Justification"].Value    = listItem.Justification;
                        dgvItems.Rows[itemIndex].Cells["Price"].Value            = listItem.Price;
                        dgvItems.Rows[itemIndex].Cells["Quantity"].Value         = listItem.Quantity;
                        dgvItems.Rows[itemIndex].Cells["Subtotal"].Value         = listItem.Subtotal;

                        bool result = false;

                        if (txtEmployee.Text != Settings.Default.EmployeeName.ToString())
                        {
                            if (txtModReason.Text == string.Empty)
                            {
                                MessageBox.Show("Supervisor must supply a reason for modifying an employee's item.");
                            }
                            else
                            {
                                result = ItemFactory.EmployeeModifyItem(listItem);
                            }
                        }
                        else
                        {
                            result = ItemFactory.EmployeeModifyItem(listItem);
                        }

                        if (result == true)
                        {
                            CalculateTotals();

                            double subtotal = Convert.ToDouble((txtSubtotal.Text as string).Trim('$'));
                            double taxes    = Convert.ToDouble((txtTaxes.Text as string).Trim('$'));
                            double total    = Convert.ToDouble((txtTotal.Text as string).Trim('$'));

                            Order.Subtotal = subtotal;
                            Order.Taxes    = taxes;
                            Order.Total    = total;

                            PurchaseOrderFactory.EmployeeUpdateTotals(Order);
                            ItemList = ItemFactory.RetrieveByOrderNumber(listItem.OrderNumber);
                            MessageBox.Show("Item #" + listItem.ItemId + " successfully updated. Purchase Order totals have also been updated.");

                            txtName.Text             = listItem.Name;
                            txtDescription.Text      = listItem.Description;
                            txtPurchaseLocation.Text = listItem.PurchaseLocation;
                            txtJustification.Text    = listItem.Justification;
                            txtPrice.Text            = listItem.Price.ToString();
                            txtQuantity.Text         = listItem.Quantity.ToString();

                            if (listItem.ModificationReason != null)
                            {
                                txtModReason.Text = listItem.ModificationReason;
                            }

                            dgvOrders.Rows[selectedOrderIndex].Cells["Subtotal"].Value = Order.Subtotal;
                            dgvOrders.Rows[selectedOrderIndex].Cells["Taxes"].Value    = Order.Taxes;
                            dgvOrders.Rows[selectedOrderIndex].Cells["Total"].Value    = Order.Total;

                            dgvItems.DataSource = ItemList;
                            dgvItems.Rows[selectedItemIndex].Selected = true;

                            if (!Order.Status.Equals("Closed"))
                            {
                                foreach (Item item in ItemList)
                                {
                                    if (!item.Description.Equals("No longer needed"))
                                    {
                                        dgvItems.Rows[ItemList.IndexOf(item)].Cells["status"].Value = "Pending";
                                    }
                                }
                            }
                        }

                        dgvItems.Rows[itemIndex].Selected = true;
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "An error has occurred");
                btnCancelEdit.PerformClick();
                btnCancelItems.PerformClick();
                btnCancelSearch.PerformClick();
            }
        }
Пример #12
0
        private void btnSelect_Click(object sender, EventArgs e)
        {
            try
            {
                string Status = dgvOrders.CurrentRow.Cells["status"].Value.ToString();

                selectedOrderIndex = dgvOrders.SelectedRows[0].Index;

                ItemList.Clear();
                ItemList = ItemFactory.RetrieveByOrderNumber((int)dgvOrders.SelectedRows[0].Cells[0].Value);

                Employee OrderEmployee = EmployeeFactory.RetrieveByOrderNumber((int)dgvOrders.SelectedRows[0].Cells[0].Value);
                tmpDepartment      = DepartmentFactory.RetrieveByEmployeeId(OrderEmployee.Id);
                txtEmployee.Text   = OrderEmployee.FirstName + " " + OrderEmployee.LastName;
                txtDepartment.Text = tmpDepartment.Title;
                txtSupervisor.Text = tmpDepartment.SupervisorName;

                Order = PurchaseOrderFactory.RetrieveByNumber((int)dgvOrders.SelectedRows[0].Cells[0].Value, OrderEmployee.Id);
                dgvItems.DataSource = ItemList;

                foreach (Item item in ItemList)
                {
                    if (!Order.Status.Equals("Closed"))
                    {
                        if (!item.Status.Equals("Pending"))
                        {
                            if (!item.Description.Equals("No longer needed"))
                            {
                                dgvItems.Rows[ItemList.IndexOf(item)].DefaultCellStyle.BackColor = Color.White;
                                dgvItems.Rows[ItemList.IndexOf(item)].Cells["status"].Value      = "Pending";
                            }
                            else
                            {
                                dgvItems.Rows[ItemList.IndexOf(item)].DefaultCellStyle.BackColor = Color.Gray;
                            }
                        }

                        btnAdd.Enabled        = true;
                        btnSelectItem.Enabled = true;
                    }
                    else
                    {
                        if (!item.Status.Equals("Pending"))
                        {
                            dgvItems.Rows[ItemList.IndexOf(item)].DefaultCellStyle.BackColor = Color.Gray;
                        }

                        btnSelectItem.Enabled = false;
                        btnAdd.Enabled        = false;
                    }
                }

                txtPONumber.Text     = Order.OrderNumber.ToString();
                txtCreationDate.Text = Order.OrderDate.ToShortDateString();
                txtStatus.Text       = Order.Status;
                txtSubtotal.Text     = String.Format("{0:C}", Order.Subtotal);
                txtTaxes.Text        = String.Format("{0:C}", Order.Taxes);
                txtTotal.Text        = String.Format("{0:C}", Order.Total);

                dgvItems.Visible      = true;
                lblItems.Visible      = true;
                btnSelectItem.Visible = true;
                ModifyItemDataGrid();
                grpOrder.Visible       = true;
                txtPONumber.Visible    = true;
                lblPONumber.Visible    = true;
                btnCancelItems.Visible = true;
                dgvOrders.Enabled      = false;
                dgvOrders.DefaultCellStyle.BackColor          = Color.Gray;
                dgvOrders.DefaultCellStyle.SelectionBackColor = Color.Gray;
                dgvOrders.DefaultCellStyle.SelectionForeColor = Color.Black;
                btnSelect.Enabled       = false;
                btnCancelSearch.Enabled = false;
                btnAdd.Visible          = true;

                if (!txtEmployee.Text.Equals(Settings.Default.EmployeeName))
                {
                    btnAdd.Enabled = false;
                }
                else
                {
                    btnAdd.Enabled = true;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "An error has occurred");
            }
        }
Пример #13
0
        private void btnSearchDates_Click(object sender, EventArgs e)
        {
            try
            {
                OrderList.Clear();

                string[] names     = Settings.Default.EmployeeName.ToString().Split(' ');
                string   firstName = names[0];
                string   lastName  = names[1];

                Employee OrderEmployee = EmployeeFactory.RetrieveByName(firstName, lastName);

                if (Settings.Default.AccessLevel.Equals("S"))
                {
                    if (startDateChanged == false && endDateChanged == false)
                    {
                        OrderList = PurchaseOrderFactory.RetrieveByOtherSupervisor(DateTime.MinValue, DateTime.MinValue, OrderEmployee.Id, txtFilter.Text, txtEmployeeName.Text);
                    }
                    else if (startDateChanged == false && endDateChanged == true)
                    {
                        OrderList = PurchaseOrderFactory.RetrieveByOtherSupervisor(DateTime.MinValue, dtpEndDate.Value, OrderEmployee.Id, txtFilter.Text, txtEmployeeName.Text);
                    }
                    else if (startDateChanged == true && endDateChanged == false)
                    {
                        OrderList = PurchaseOrderFactory.RetrieveByOtherSupervisor(dtpStartDate.Value, DateTime.MinValue, OrderEmployee.Id, txtFilter.Text, txtEmployeeName.Text);
                    }
                    else if (startDateChanged == true && endDateChanged == true)
                    {
                        OrderList = PurchaseOrderFactory.RetrieveByOtherSupervisor(dtpStartDate.Value, dtpEndDate.Value, OrderEmployee.Id, txtFilter.Text, txtEmployeeName.Text);
                    }
                }
                else
                {
                    if (startDateChanged == false && endDateChanged == false)
                    {
                        OrderList = PurchaseOrderFactory.RetrieveByOther(DateTime.MinValue, DateTime.MinValue, OrderEmployee.Id, txtFilter.Text);
                    }
                    else if (startDateChanged == false && endDateChanged == true)
                    {
                        OrderList = PurchaseOrderFactory.RetrieveByOther(DateTime.MinValue, dtpEndDate.Value, OrderEmployee.Id, txtFilter.Text);
                    }
                    else if (startDateChanged == true && endDateChanged == false)
                    {
                        OrderList = PurchaseOrderFactory.RetrieveByOther(dtpStartDate.Value, DateTime.MinValue, OrderEmployee.Id, txtFilter.Text);
                    }
                    else if (startDateChanged == true && endDateChanged == true)
                    {
                        OrderList = PurchaseOrderFactory.RetrieveByOther(dtpStartDate.Value, dtpEndDate.Value, OrderEmployee.Id, txtFilter.Text);
                    }
                }

                if (OrderList.Count == 0)
                {
                    btnCancelSearch.PerformClick();
                    MessageBox.Show("No purchase orders were found for your search parameters.");
                }
                else
                {
                    dgvOrders.DataSource = OrderList;
                    ModifyPODataGrid();
                    dgvOrders.Visible         = true;
                    btnSelect.Visible         = true;
                    btnCancelSearch.Visible   = true;
                    lblPurchaseOrders.Visible = true;
                    txtNumber.Clear();
                    txtNumber.Focus();
                    grpSearchOther.Enabled  = false;
                    grpSearchNumber.Enabled = false;
                    grpFilter.Enabled       = false;

                    for (int i = 0; i < OrderList.Count; i++)
                    {
                        PurchaseOrder tmpOrder = OrderList[i];

                        if (!tmpOrder.Status.Equals("Pending"))
                        {
                            dgvOrders.Rows[i].DefaultCellStyle.BackColor = Color.Gray;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "An error has occurred");
            }
        }
Пример #14
0
        private void CreateButton_Click(object sender, RoutedEventArgs e)
        {
            #region validation
            ForceValidation();
            if (Validation.GetHasError(PODateDatePicker))
            {
                var sMessageDialog = new MessageDialog
                {
                    Message = { Text =
                                    "ERROR: Fill required fields!" }
                };

                DialogHost.Show(sMessageDialog, "RootDialog");
                return;
            }

            if (SupplierComboBox.SelectedValue == null)
            {
                var sMessageDialog = new MessageDialog
                {
                    Message = { Text =
                                    "ERROR: Select all fields!" }
                };

                DialogHost.Show(sMessageDialog, "RootDialog");
                return;
            }

            if (productItemsList.Count() == 0)
            {
                var sMessageDialog = new MessageDialog
                {
                    Message = { Text =
                                    "There are no items in the purchase order,\nadd items!" }
                };

                DialogHost.Show(sMessageDialog, "RootDialog");
                return;
            }
            #endregion

            // Creating PO
            po.PODate    = PODateDatePicker.SelectedDate.Value;
            po.ContactID = int.Parse(SupplierComboBox.SelectedValue.ToString());
            PurchaseOrderFactory fac = new PurchaseOrderFactory();
            fac.InsertPurchaseOrder(po);

            // Adding Products to PO
            using (var db = new AlphaElectricEntitiesDB())
            {
                bool flag = false;
                // Multiple Products
                foreach (var item in productItemsList)
                {
                    Product_PurchaseOrderBT po_prod = new Product_PurchaseOrderBT()
                    {
                        ProductID       = item.ProductID,
                        PurchaseOrderID = po.ID
                    };

                    // LINQ query
                    var query = from prod in db.Product_PurchaseOrderBT
                                where prod.PurchaseOrderID == po.ID &&
                                prod.ProductID == po_prod.ProductID
                                select prod;

                    if (query.ToList().Count == 0)
                    {
                        po_prod.Quantity = item.Quantity;
                        db.Product_PurchaseOrderBT.Add(po_prod);
                        db.SaveChanges();
                        flag = true;
                    }
                    // Checks if existing ProductID and PurchaseOrderID exists
                    // Used if item is added again
                    else if (query.ToList().Count == 1)
                    {
                        foreach (var xx in query)
                        {
                            xx.Quantity += item.Quantity;
                        }
                        db.SaveChanges();
                        flag = true;
                    }
                }
                productItemsList.Clear();
                ClearItems();
                Clear();

                if (flag)
                {
                    var sMessageDialog = new MessageDialog
                    {
                        Message = { Text = "Purchase Order added!" }
                    };
                    DialogHost.Show(sMessageDialog, "RootDialog");
                    return;
                }
            }
        }
Пример #15
0
        protected void btnSearchDates_Click(object sender, EventArgs e)
        {
            try
            {
                OrderList.Clear();

                String[] names     = Session["EmployeeName"].ToString().Split(' ');
                string   firstName = names[0];
                string   lastName  = names[1];

                Employee OrderEmployee = EmployeeFactory.RetrieveByName(firstName, lastName);

                if (Session["AccessLevel"].ToString().Equals("C"))
                {
                    if (dtpStartDate.SelectedDate.ToString().Equals("0001-01-01 12:00:00 AM") && dtpEndDate.SelectedDate.ToString().Equals("0001-01-01 12:00:00 AM"))
                    {
                        OrderList = PurchaseOrderFactory.RetrieveOrdersForProcessing(DateTime.MinValue, DateTime.MinValue, OrderEmployee.Id, txtFilter.Text, txtEmployeeName.Text, "C");
                    }
                    else if (dtpStartDate.SelectedDate.ToString().Equals("0001-01-01 12:00:00 AM") && !dtpEndDate.SelectedDate.ToString().Equals("0001-01-01 12:00:00 AM"))
                    {
                        OrderList = PurchaseOrderFactory.RetrieveOrdersForProcessing(DateTime.MinValue, dtpEndDate.SelectedDate, OrderEmployee.Id, txtFilter.Text, txtEmployeeName.Text, "C");
                    }
                    else if (!dtpStartDate.SelectedDate.ToString().Equals("0001-01-01 12:00:00 AM") && dtpEndDate.SelectedDate.ToString().Equals("0001-01-01 12:00:00 AM"))
                    {
                        OrderList = PurchaseOrderFactory.RetrieveOrdersForProcessing(dtpStartDate.SelectedDate, DateTime.MinValue, OrderEmployee.Id, txtFilter.Text, txtEmployeeName.Text, "C");
                    }
                    else if (!dtpStartDate.SelectedDate.ToString().Equals("0001-01-01 12:00:00 AM") && !dtpEndDate.SelectedDate.ToString().Equals("0001-01-01 12:00:00 AM"))
                    {
                        OrderList = OrderList = PurchaseOrderFactory.RetrieveOrdersForProcessing(dtpStartDate.SelectedDate, dtpEndDate.SelectedDate, OrderEmployee.Id, txtFilter.Text, txtEmployeeName.Text, "C");
                    }
                }
                else
                {
                    if (dtpStartDate.SelectedDate.ToString().Equals("0001-01-01 12:00:00 AM") && dtpEndDate.SelectedDate.ToString().Equals("0001-01-01 12:00:00 AM"))
                    {
                        OrderList = PurchaseOrderFactory.RetrieveOrdersForProcessing(DateTime.MinValue, DateTime.MinValue, OrderEmployee.Id, txtFilter.Text, txtEmployeeName.Text, "S");
                    }
                    else if (dtpStartDate.SelectedDate.ToString().Equals("0001-01-01 12:00:00 AM") && !dtpEndDate.SelectedDate.ToString().Equals("0001-01-01 12:00:00 AM"))
                    {
                        OrderList = PurchaseOrderFactory.RetrieveOrdersForProcessing(DateTime.MinValue, dtpEndDate.SelectedDate, OrderEmployee.Id, txtFilter.Text, txtEmployeeName.Text, "S");
                    }
                    else if (!dtpStartDate.SelectedDate.ToString().Equals("0001-01-01 12:00:00 AM") && dtpEndDate.SelectedDate.ToString().Equals("0001-01-01 12:00:00 AM"))
                    {
                        OrderList = PurchaseOrderFactory.RetrieveOrdersForProcessing(dtpStartDate.SelectedDate, DateTime.MinValue, OrderEmployee.Id, txtFilter.Text, txtEmployeeName.Text, "S");
                    }
                    else if (!dtpStartDate.SelectedDate.ToString().Equals("0001-01-01 12:00:00 AM") && !dtpEndDate.SelectedDate.ToString().Equals("0001-01-01 12:00:00 AM"))
                    {
                        OrderList = PurchaseOrderFactory.RetrieveOrdersForProcessing(dtpStartDate.SelectedDate, dtpEndDate.SelectedDate, OrderEmployee.Id, txtFilter.Text, txtEmployeeName.Text, "S");
                    }
                }

                if (OrderList.Count == 0)
                {
                    btnCancelSearch_Click(btnCancelSearch, EventArgs.Empty);
                    confirmation.Attributes.Add("style", "display:block");
                    lblMessage.Text = "No purchase orders were found for your search parameters";
                }
                else
                {
                    grdOrders.DataSource = OrderList;
                    grdOrders.DataBind();
                    grdOrders.Visible       = true;
                    btnCancelSearch.Visible = true;
                    searchPanel.Enabled     = false;
                    lblMessage.Text         = "";
                    confirmation.Attributes.Add("style", "display:none");

                    for (int i = 0; i < OrderList.Count; i++)
                    {
                        OrdersForProcessing tmpOrder = OrderList[i];

                        if (!tmpOrder.Status.Equals("Pending"))
                        {
                            grdOrders.Rows[i].BackColor = System.Drawing.Color.Gray;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                confirmation.Attributes.Add("style", "display:block");
                lblMessage.Text = "An error has occurred. " + ex.Message;
            }
        }
Пример #16
0
        private void btnDenyFinal_Click(object sender, EventArgs e)
        {
            try
            {
                if (txtDeny.Text != string.Empty)
                {
                    int  gridItemIndex = dgvItems.SelectedRows[0].Index;
                    Item listItem      = ItemList[gridItemIndex];

                    if (listItem.Description.Equals("No longer needed"))
                    {
                        MessageBox.Show("Item has been marked as no longer needed by the employee. Unable to process.");
                    }
                    else if (listItem.Status.Equals("Denied"))
                    {
                        MessageBox.Show("Item status is already set to Denied.");
                    }
                    else
                    {
                        listItem.Status             = "Denied";
                        Order.Status                = "Under Review";
                        listItem.ModificationReason = txtDeny.Text;
                        int itemIndex = ItemList.IndexOf(listItem);
                        ItemList[itemIndex] = listItem;

                        string[] names     = Settings.Default.EmployeeName.ToString().Split(' ');
                        string   firstName = names[0];
                        string   lastName  = names[1];

                        Employee CurrentEmployee = EmployeeFactory.RetrieveByName(firstName, lastName);

                        bool result = ItemFactory.DenyItem(listItem, CurrentEmployee.Id, listItem.ModificationReason);

                        if (result == true)
                        {
                            MessageBox.Show("Item status has been successfully updated to Denied.");
                            dgvItems.Rows[itemIndex].Cells["Status"].Value             = listItem.Status;
                            dgvItems.Rows[itemIndex].Cells["description"].Value        = listItem.Description;
                            dgvItems.Rows[itemIndex].Cells["modificationReason"].Value = listItem.ModificationReason;
                            dgvItems.Rows[itemIndex].DefaultCellStyle.BackColor        = Color.Red;
                            dgvOrders.Rows[selectedOrderIndex].Cells["Status"].Value   = Order.Status;
                            btnCancelDeny.PerformClick();

                            int itemCount = 0;

                            foreach (Item item in ItemList)
                            {
                                if (item.Status.Equals("Approved") || item.Status.Equals("Denied"))
                                {
                                    itemCount += 1;
                                }
                            }

                            if (itemCount == ItemList.Count)
                            {
                                DialogResult dialogResult = MessageBox.Show("All Items Have Been Processed. Do you wish to close the purchase order now?", "", MessageBoxButtons.YesNo);
                                if (dialogResult == DialogResult.Yes)
                                {
                                    PurchaseOrderFactory.ClosePurchaseOrder(Order);
                                    Order.Status = "Closed";
                                    dgvOrders.Rows[selectedOrderIndex].Cells["Status"].Value      = Order.Status;
                                    dgvOrders.Rows[selectedOrderIndex].DefaultCellStyle.BackColor = Color.Gray;
                                    btnCancelDeny.PerformClick();
                                    btnCancelItems.PerformClick();

                                    Employee OrderEmployee = EmployeeFactory.RetrieveByOrderNumber((int)dgvOrders.SelectedRows[0].Cells[0].Value);
                                    PurchaseOrderFactory.EmailEmployee(OrderEmployee.Id, OrderEmployee.Email, Order.OrderNumber, Order.Total, ItemList);
                                }
                                else if (dialogResult == DialogResult.No)
                                {
                                    btnCancelDeny.PerformClick();
                                }
                            }
                        }
                    }
                }
                else
                {
                    MessageBox.Show("Please enter a reason for item denial.");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "An error has occurred");
            }
        }
Пример #17
0
        private void btnSelect_Click(object sender, EventArgs e)
        {
            try
            {
                string Status = dgvOrders.CurrentRow.Cells["status"].Value.ToString();
                selectedOrderIndex = dgvOrders.SelectedRows[0].Index;

                ItemList.Clear();
                ItemList = ItemFactory.RetrieveByOrderNumber((int)dgvOrders.SelectedRows[0].Cells[0].Value);

                Employee OrderEmployee = EmployeeFactory.RetrieveByOrderNumber((int)dgvOrders.SelectedRows[0].Cells[0].Value);
                txtEmployee.Text = OrderEmployee.FirstName + " " + OrderEmployee.LastName;

                Order = PurchaseOrderFactory.RetrieveByNumber((int)dgvOrders.SelectedRows[0].Cells[0].Value, OrderEmployee.Id);
                dgvItems.DataSource = ItemList;

                foreach (Item item in ItemList)
                {
                    if (item.Status.Equals("Pending"))
                    {
                        dgvItems.Rows[ItemList.IndexOf(item)].DefaultCellStyle.BackColor = Color.White;
                    }
                    else if (item.Status.Equals("Approved"))
                    {
                        dgvItems.Rows[ItemList.IndexOf(item)].DefaultCellStyle.BackColor = Color.LightGreen;
                    }
                    else if (item.Status.Equals("Denied"))
                    {
                        dgvItems.Rows[ItemList.IndexOf(item)].DefaultCellStyle.BackColor = Color.Red;
                    }
                }

                txtPONumber.Text     = Order.OrderNumber.ToString();
                txtCreationDate.Text = Order.OrderDate.ToShortDateString();
                txtStatus.Text       = Order.Status;
                txtSubtotal.Text     = String.Format("{0:C}", Order.Subtotal);
                txtTaxes.Text        = String.Format("{0:C}", Order.Taxes);
                txtTotal.Text        = String.Format("{0:C}", Order.Total);

                grpOrder.Visible = true;
                dgvItems.Visible = true;
                ModifyItemDataGrid();
                lblItems.Visible       = true;
                btnApprove.Visible     = true;
                btnDeny.Visible        = true;
                btnCancelItems.Visible = true;
                dgvOrders.Enabled      = false;
                dgvOrders.DefaultCellStyle.BackColor          = Color.Gray;
                dgvOrders.DefaultCellStyle.SelectionBackColor = Color.Gray;
                dgvOrders.DefaultCellStyle.SelectionForeColor = Color.Black;
                btnSelect.Enabled       = false;
                btnCancelSearch.Enabled = false;
                btnPending.Visible      = true;
                btnClose.Visible        = true;

                if (Order.Status.Equals("Closed"))
                {
                    btnApprove.Enabled = false;
                    btnDeny.Enabled    = false;
                    btnPending.Enabled = false;
                    btnClose.Enabled   = false;
                }
                else if (txtEmployee.Text == Settings.Default.EmployeeName)
                {
                    btnApprove.Enabled = false;
                    btnDeny.Enabled    = false;
                    btnPending.Enabled = false;
                    btnClose.Enabled   = false;
                    MessageBox.Show("Supervisors are unable to process their own purchase orders. Please contact your " +
                                    "superior to process the order for you. You are able to view the items that you have requested.");
                }
                else
                {
                    btnApprove.Enabled = true;
                    btnDeny.Enabled    = true;
                    btnPending.Enabled = true;
                    btnClose.Enabled   = true;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "An error has occurred");
            }
        }
Пример #18
0
        public void createEmptyPurchaseOrder()
        {
            PurchaseOrder res = new PurchaseOrderFactory().createPurchaseOrder();

            Assert.IsNotNull(res.CreateDate);
        }
Пример #19
0
        protected void grdOrders_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            try
            {
                OrdersForProcessing rowOrder = null;
                int RowIndex = Convert.ToInt32(e.CommandArgument);
                rowOrder = OrderList[RowIndex];

                ItemList.Clear();
                ItemList = ItemFactory.RetrieveByOrderNumber(rowOrder.OrderNumber);

                Employee OrderEmployee = EmployeeFactory.RetrieveByOrderNumber(rowOrder.OrderNumber);
                txtEmployee.Text = OrderEmployee.FirstName + " " + OrderEmployee.LastName;

                Order = PurchaseOrderFactory.RetrieveByNumber(rowOrder.OrderNumber, OrderEmployee.Id);
                grdItems.DataSource = ItemList;
                grdItems.DataBind();
                orderDetails.Visible = true;
                searchPanel.Attributes.Add("style", "display:none");

                foreach (Item item in ItemList)
                {
                    if (item.Status.Equals("Pending"))
                    {
                        grdItems.Rows[ItemList.IndexOf(item)].BackColor = System.Drawing.Color.White;
                    }
                    else if (item.Status.Equals("Approved"))
                    {
                        grdItems.Rows[ItemList.IndexOf(item)].BackColor = System.Drawing.Color.LightGreen;
                    }
                    else if (item.Status.Equals("Denied"))
                    {
                        grdItems.Rows[ItemList.IndexOf(item)].BackColor = System.Drawing.Color.Red;
                    }
                }

                txtPONumber.Text     = Order.OrderNumber.ToString();
                txtCreationDate.Text = Order.OrderDate.ToShortDateString();
                txtStatus.Text       = Order.Status;
                txtSubtotal.Text     = String.Format("{0:C}", Order.Subtotal);
                txtTaxes.Text        = String.Format("{0:C}", Order.Taxes);
                txtTotal.Text        = String.Format("{0:C}", Order.Total);

                grdItems.Visible        = true;
                items.Visible           = true;
                grdItems.SelectedIndex  = -1;
                grdOrders.Visible       = true;
                txtPONumber.Visible     = true;
                lblPONumber.Visible     = true;
                btnCancelItems.Visible  = true;
                btnClose.Visible        = true;
                grdOrders.Enabled       = false;
                btnCancelSearch.Enabled = false;

                if (Order.Status.Equals("Closed"))
                {
                    foreach (GridViewRow row in grdItems.Rows)
                    {
                        grdItems.Rows[row.RowIndex].Enabled = false;
                    }

                    btnClose.Enabled = false;
                }
                else if (txtEmployee.Text.Equals(Session["EmployeeName"]))
                {
                    foreach (GridViewRow row in grdItems.Rows)
                    {
                        grdItems.Rows[row.RowIndex].Enabled = false;
                    }

                    btnClose.Enabled = false;

                    confirmation.Attributes.Add("style", "display:block");
                    lblMessage.Text = "Supervisors are unable to process their own purchase orders. Please contact your " +
                                      "superior to process the order for you. You are able to view the items that you have requested";
                }
                else
                {
                    foreach (GridViewRow row in grdItems.Rows)
                    {
                        grdItems.Rows[row.RowIndex].Enabled = true;
                    }

                    btnClose.Enabled = true;
                }
            }
            catch (Exception ex)
            {
                confirmation.Attributes.Add("style", "display:block");
                lblMessage.Text = "An error has occurred. " + ex.Message;
            }
        }