protected void Receive_Click(object sender, EventArgs e)
    {
        MessageUserControl.TryRun(() =>
        {
            ReceivingController sysmng = new ReceivingController();

            List <NewReceiveOrderPOCO> receiveNewOrders = new List <NewReceiveOrderPOCO>();

            foreach (GridViewRow row in PODetailsGV.Rows)
            {
                NewReceiveOrderPOCO newOrder   = new NewReceiveOrderPOCO();
                newOrder.PurchaseOrderID       = int.Parse(((Label)row.FindControl("PurchaseOrderID")).Text);
                newOrder.PurchaseOrderDetailID = int.Parse(((Label)row.FindControl("PurchaseOrderDetailID")).Text);
                newOrder.PartID           = int.Parse(((Label)row.FindControl("PartID")).Text);
                newOrder.PartDescription  = (((Label)row.FindControl("Description")).Text);
                newOrder.Outstanding      = int.Parse(((Label)row.FindControl("QuantityOutstanding")).Text);
                newOrder.QuantityReceived = (((TextBox)row.FindControl("txtReceiving")).Text) == "" ? 0 : int.Parse(((TextBox)row.FindControl("txtReceiving")).Text);
                newOrder.QuantityReturned = (((TextBox)row.FindControl("txtReturning")).Text) == "" ? 0 : int.Parse(((TextBox)row.FindControl("txtReturning")).Text);
                newOrder.Notes            = (((TextBox)row.FindControl("txtReason")).Text);

                receiveNewOrders.Add(newOrder);
            }
            sysmng.Add_ReceivedOrders(receiveNewOrders);
            PODetailsGV.DataBind();
        }, "Confirmation", "Order was successfully received.");
    }
示例#2
0
 protected void ForceClose_Click(object sender, EventArgs e)
 {
     if (PONum.Text != "")
     {
         int    orderNumber = int.Parse(PONum.Text);
         string reason      = ReasonForceClosed.Text;
         MessageUserControl.TryRun(() =>
         {
             if (reason == "")
             {
                 throw new Exception("You must enter a reason for force closing.");
             }
             else
             {
                 ReceivingController sysmgr = new ReceivingController();
                 sysmgr.ForceClosePurchaseOrder(orderNumber, reason);
                 PONum.Text                  = "";
                 Vendor.Text                 = "";
                 Phone.Text                  = "";
                 ReasonForceClosed.Text      = "";
                 ShowOrderDetails.DataSource = null;
                 ShowOrderDetails.DataBind();
                 ShowPurchaseOrders.DataBind();
                 OrderInfo.Visible     = false;
                 OrderControls.Visible = false;
             }
         }, "Purchase Order Receiving", "Purchase Order successfully closed.");
     }
     else
     {
         MessageUserControl.ShowInfo("You must select a purchase order before closing.");
     }
 }
示例#3
0
        protected void ForceClose_Click(object sender, EventArgs e)
        {
            MessageUserControl.TryRun(() =>
            {
                var controller = new ReceivingController();

                var closeOrder = new ForceCloseDetails();

                var itemInfo = new List <ForceCloseItems>();

                foreach (GridViewRow item in OrderGridView.Rows)
                {
                    var itemProductID   = item.FindControl("OrderDetailID") as Label;
                    var itemOutstanding = item.FindControl("ItemQuantityOutstanding") as Label;

                    var product = new ForceCloseItems();

                    product.ProductID           = int.Parse(itemProductID.Text);
                    product.QuantityOutstanding = int.Parse(itemOutstanding.Text);

                    itemInfo.Add(product);
                }

                closeOrder.OrderID = int.Parse(OrderListDropDown.SelectedValue);
                closeOrder.Closed  = true;
                closeOrder.Comment = Comments.Text;
                closeOrder.Items   = itemInfo;

                controller.ForceCloseOrder(closeOrder);
            }, "Force Close Order", "Order has been force closed");

            Response.Redirect("~/Subsystem/Receiving/Receiving");
        }
示例#4
0
    /// <summary>
    /// Retrieves vendor information and order items
    /// </summary>
    private void ViewOrder()
    {
        ReceivingController controller = new ReceivingController();

        currentOrderId = int.Parse(ReceivingVendorOrderGridView.SelectedValue.ToString());

        // Displays vendor information
        ReceivingVendorOrder vendorOrderInfo = controller.FindVendorByOrder(currentOrderId);

        PurchaseOrderIDLabel.Text = "PO #" + vendorOrderInfo.PurchaseOrderID.ToString();
        VendorNameLabel.Text      = "Vendor: " + vendorOrderInfo.VendorName;
        VendorPhoneLabel.Text     = "Contact Phone: (" + vendorOrderInfo.VendorPhone + ")";

        // Retrieves order information
        List <ReceivingItems> currentReceivingOrder = new List <ReceivingItems>();

        currentReceivingOrder = controller.FindOrderById(currentOrderId);
        foreach (var item in currentReceivingOrder)
        {
            item.PurchaseOrderID = currentOrderId;
        }

        // Populates GridView
        ReceivingItemsGridView.DataSource = currentReceivingOrder;
        ReceivingItemsGridView.DataBind();

        string parameter = Request.QueryString[currentOrderId.ToString()];
    }
    protected void ForceCloser_Click(object sender, EventArgs e)
    {
        if (string.IsNullOrEmpty(txtReasonFC.Text))
        {
            MessageUserControl.ShowInfo("Warning", "Please provide reason for closing the purchase order.");
        }
        else
        {
            ReceivingController sysmng = new ReceivingController();

            PurchaseOrder poData = new PurchaseOrder();
            //get value to update PO table
            poData.PurchaseOrderID = int.Parse(((Label)PODetailsGV.Rows[0].FindControl("PurchaseOrderID")).Text);
            poData.Notes           = txtReasonFC.Text;
            poData.Closed          = true;

            MessageUserControl.TryRun(() =>
            {
                List <PurchaseOrderDetailsPOCO> poDetailsList = new List <PurchaseOrderDetailsPOCO>();
                foreach (GridViewRow row in PODetailsGV.Rows)
                {
                    PurchaseOrderDetailsPOCO data = new PurchaseOrderDetailsPOCO();
                    data.PurchaseOrderID          = int.Parse(((Label)row.FindControl("PurchaseOrderID")).Text);
                    data.PartID = int.Parse(((Label)row.FindControl("PartID")).Text);
                    data.QuantityOutstanding = int.Parse(((Label)row.FindControl("QuantityOutstanding")).Text);
                    //add single item to the list
                    poDetailsList.Add(data);
                }
                sysmng.ForceCloser_Update(poData, poDetailsList);
                RefreshPage();
            }, "Success", "Order was closed successfully.");
        }
    }
示例#6
0
 protected void DisplayOrder_Click(object sender, EventArgs e)
 {
     MessageUserControl.TryRun(() =>
     {
         var controller     = new ReceivingController();
         OrderPanel.Enabled = true;
         OrderPanel.Visible = true;
         var grvRow         = (GridViewRow)((LinkButton)sender).NamingContainer;
         // Populate vendor information labels
         PONumLabel.Text  = grvRow.Cells[0].Text;
         Vendor.Text      = grvRow.Cells[2].Text;
         VendorPhone.Text = grvRow.Cells[3].Text;
         // Populate GridView through a dataSource
         var orderDetails = controller.GetPurchaseOrderDetails(Convert.ToInt32((grvRow.FindControl("POid") as HiddenField).Value));
         PurchaseOrderDetailsGridView.DataSource = orderDetails;
         PurchaseOrderDetailsGridView.DataBind();
     }, "Success", "Order found!");
 }
示例#7
0
    /// <summary>
    /// Adds a Receive Order to the database
    /// </summary>
    private void SubmitReceiveOrder()
    {
        // Stores information in a ReceivingItems instance
        List <ReceivingItems> receivingItems = new List <ReceivingItems>();

        receivingItems = currentItemsList;
        foreach (var item in receivingItems)
        {
            item.PurchaseOrderID = currentOrderId;
        }

        // Submits information
        ReceivingController controller = new ReceivingController();

        controller.ReceiveOrder(currentOrderId, receivingItems);

        ClearAndRefreshPage();
    }
示例#8
0
        protected void Open_Click(object sender, EventArgs e)
        {
            var controller = new ReceivingController();

            controller.ClearUnOrderedItems();

            UnorderedListView.DataSourceID = "UnorderedODS";

            if (OrderListDropDown.SelectedIndex > 0)
            {
                var vendorinfo = controller.GetVendorContact(int.Parse(OrderListDropDown.SelectedValue));

                CompanyName.Text    = vendorinfo.Name;
                CompanyAddress.Text = vendorinfo.Address;
                CompanyContact.Text = vendorinfo.Contact;
                CompanyPhone.Text   = vendorinfo.Phone;

                var iteminfo = controller.GetOrderDetails(int.Parse(OrderListDropDown.SelectedValue));
                OrderGridView.DataSource = iteminfo;
                OrderGridView.DataBind();

                ReceiveShimpment.Visible  = true;
                UnorderedLabel.Visible    = true;
                UnorderedListView.Visible = true;
                ForceClose.Visible        = true;
                Comments.Visible          = true;
            }
            else
            {
                CompanyName.Text    = null;
                CompanyAddress.Text = null;
                CompanyContact.Text = null;
                CompanyPhone.Text   = null;

                OrderGridView.DataSource = null;
                OrderGridView.DataBind();

                ReceiveShimpment.Visible  = false;
                UnorderedLabel.Visible    = false;
                UnorderedListView.Visible = false;
                ForceClose.Visible        = false;
                Comments.Visible          = false;
            }
        }
        protected void ForceClose_Click(object sender, EventArgs e)
        {
            int vendorid = 0;
            int orderid  = 0;

            vendorid = int.Parse(VendorDDL.SelectedValue);

            GridViewRow orderrow = PurchaseOrderGridView.Rows[1];

            orderid = int.Parse((orderrow.FindControl("OrderID") as Label).Text);
            var closingitems = new List <ForceClearPOCO>();

            MessageUserControl.TryRun(() =>
            {
                foreach (GridViewRow row in PurchaseOrderGridView.Rows)
                {
                    if (int.Parse(((row.FindControl("QuantityOutstanding") as Label).Text).ToString()) > 0)
                    {
                        int remaining   = int.Parse(((row.FindControl("QuantityOutstanding") as Label).Text).ToString());
                        string itemname = row.Cells[1].Text;

                        closingitems.Add(new ForceClearPOCO()
                        {
                            ItemName  = itemname,
                            Remaining = remaining
                        });
                    }
                }

                string reason = (CommentBox.Text).ToString();

                if (string.IsNullOrEmpty(reason))
                {
                    throw new BusinessRuleException("Input Error", new List <String> {
                        "There must be a reason when force closing."
                    });
                }
                else
                {
                    ReceivingController sysmgr = new ReceivingController();
                    sysmgr.ForceCloseOrder(orderid, reason, closingitems, vendorid);
                }
            }, "Force Close", "Purchase Order has been closed.");
        }
示例#10
0
    protected void ShowPurchaseOrders_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
    {
        OrderInfo.Visible     = true;
        OrderControls.Visible = true;
        int         index       = e.NewSelectedIndex;
        GridViewRow agrow       = ShowPurchaseOrders.Rows[index];
        int         orderNumber = int.Parse(agrow.Cells[0].Text);

        PONum.Text  = agrow.Cells[0].Text;
        Vendor.Text = agrow.Cells[2].Text;
        Phone.Text  = agrow.Cells[3].Text;
        MessageUserControl.TryRun(() =>
        {
            ReceivingController sysmgr = new ReceivingController();
            List <ViewPurchaseOrderItems> orderInfo = sysmgr.GetPurchaseOrderDetails(orderNumber);
            ShowOrderDetails.DataSource             = orderInfo;
            ShowOrderDetails.DataBind();
        });
    }
    protected void ViewOrder_Click(object sender, EventArgs e)
    {
        int poID = 0;
        //int poNumber = 0;

        GridViewRow item = (GridViewRow)((LinkButton)sender).NamingContainer; // gets info from one row.

        poID = int.Parse(((Label)item.FindControl("PurchaseOrderId")).Text);

        ReceivingController           sysmng          = new ReceivingController();
        VendorPurchaseOrderDetailsDTO vendorPODetails = sysmng.GetPODetails(poID);

        lblPONumber.Text    = vendorPODetails.PurchaseOrderNumber.ToString();
        lblVendorName.Text  = vendorPODetails.VendorName;
        lblVendorPhone.Text = vendorPODetails.VendorPhone;
        //DataSource for the GridView
        PODetailsGV.DataSource = vendorPODetails.PODetails;
        PODetailsGV.DataBind();
    }
示例#12
0
        protected void CloseLinkButton_Click(object sender, EventArgs e)
        {
            string reason = ReasonTextBox.Text;

            if (reason == "")
            {
                MessageUserControl.ShowInfo("Error", "Please provide a reason to force close the Order");
            }
            else
            {
                MessageUserControl.TryRun(() =>
                {
                    int poid = int.Parse(PurchaseOrderHiddenField.Value);
                    ReceivingController sysmg = new ReceivingController();
                    sysmg.For_CloseOrder(poid, reason);
                    outstandingListView.DataBind();
                    HidePanles();
                }, "Success", "The Purchase Order has been closed");
            }
        }
示例#13
0
    /// <summary>
    /// Force closes an order
    /// </summary>
    private void SubmitForceClose()
    {
        // Creates a list of outstanding items (StockItemID and quantity outstanding)
        List <OutstandingItem> outstandingItems = new List <OutstandingItem>();

        foreach (GridViewRow row in ReceivingItemsGridView.Rows)
        {
            // Adds row to the temporary list
            OutstandingItem item = new OutstandingItem();
            item.StockItemID         = int.Parse(row.Cells[0].Text);
            item.QuantityOutstanding = int.Parse(row.Cells[3].Text);

            outstandingItems.Add(item);
        }

        // Submits information
        ReceivingController controller = new ReceivingController();

        controller.CloseOrder(currentOrderId, ForceCloseReasonTextBox.Text.Trim(), outstandingItems);

        ClearAndRefreshPage();
    }
示例#14
0
        protected void ForceCloseOrder_Click(object sender, EventArgs e)
        {
            MessageUserControl.TryRun(() =>
            {
                // Receive any entered quantities
                //ReceiveOrder_Click(sender, e);

                var POid        = Convert.ToInt32((PurchaseOrderDetailsGridView.Rows[0].FindControl("POid") as HiddenField).Value);
                var controller  = new ReceivingController();
                var closeReason = ForceCloseText.Text;
                if (closeReason == "")
                {
                    throw new Exception("Must provide reason for force close.");
                }

                controller.ForceCloseOrder(POid, closeReason);
                // Hide Order Details panel and refresh Orders GridView.
                OrderPanel.Visible = false;
                OrderPanel.Enabled = false;
                OutstandingOrderGridView.DataBind();
            }, "Success", "Order was force closed!");
        }
示例#15
0
        protected void SelectOrder_Command(object sender, CommandEventArgs e)
        {
            RFListView.Visible        = true;
            ReceiveLinkButton.Visible = true;
            CloseLinkButton.Visible   = true;
            ReasonLabel.Visible       = true;
            ReasonTextBox.Visible     = true;

            MessageUserControl.TryRun(() =>
            {
                ReceivingController recmgr = new ReceivingController();
                List <RecevingOrderList> recevingResoure = new List <RecevingOrderList>();
                int poid              = int.Parse((e.CommandArgument).ToString());
                recevingResoure       = recmgr.List_PurchaseOrderDetail(poid);
                RFListView.DataSource = recevingResoure;
                RFListView.DataBind();

                PurchaseOrderHiddenField.Value = (poid).ToString();
                //UnOrderedReturnsListView.DataSource = recmgr.UnOrderedReturns_Select(poid);
                //UnOrderedReturnsListView.DataBind();

                UnOrderedReturnsListView.Visible = true;
            }, "Succeed", "Selected an purchase order successfully.");
        }
示例#16
0
        protected void ReceiveShimpment_Click(object sender, EventArgs e)
        {
            MessageUserControl.TryRun(() => {
                int result              = 0;
                var controller          = new ReceivingController();
                var receivedOrderDetail = new ReceivedOrderDetails();
                var receivedOrderInfo   = new ReceiveOrdersInfo();
                var receivedOrderItems  = new List <ReceiveOrderItemDetails>();
                var productDetails      = new List <ProductDetails>();
                var returnedOrderItems  = new List <ReturnOrderItemDetails>();

                receivedOrderInfo.OrderID     = int.Parse(OrderListDropDown.SelectedValue);
                receivedOrderInfo.ReceiveDate = DateTime.Now;
                receivedOrderInfo.EmployeeID  = EmployeeId.Value;

                foreach (ListViewItem item in UnorderedListView.Items)
                {
                    var unorderedItem = new ReturnOrderItemDetails();

                    var unOrderedItemController = item.FindControl("ItemNameLabel") as Label;
                    var itemQuantityController  = item.FindControl("QuantityLabel") as Label;
                    var vendorController        = item.FindControl("VendorIDLabel") as Label;

                    unorderedItem.Comment         = "Not on original order";
                    unorderedItem.UnOrderedItem   = unOrderedItemController.ToString();
                    unorderedItem.ItemQuantity    = int.Parse(itemQuantityController.Text);
                    unorderedItem.VendorProductID = vendorController.ToString();

                    returnedOrderItems.Add(unorderedItem);
                }

                foreach (GridViewRow item in OrderGridView.Rows)
                {
                    var unorderedItem = new ReturnOrderItemDetails();

                    var itemQuantityController  = item.FindControl("RejectedUnits") as TextBox;
                    var commentController       = item.FindControl("RejectedReason") as TextBox;
                    var orderDetailIDController = item.FindControl("OrderDetailID") as Label;

                    if (int.TryParse(itemQuantityController.Text, out result))
                    {
                        if (int.Parse(itemQuantityController.Text) > 0)
                        {
                            unorderedItem.OrderDetailID = int.Parse(orderDetailIDController.Text);
                            unorderedItem.Comment       = commentController.ToString();
                            unorderedItem.ItemQuantity  = int.Parse(itemQuantityController.Text);

                            returnedOrderItems.Add(unorderedItem);
                        }
                    }
                }

                foreach (GridViewRow item in OrderGridView.Rows)
                {
                    var newreceiveditem = new ReceiveOrderItemDetails();
                    var newProductInfo  = new ProductDetails();

                    var salvagedItems           = item.FindControl("SalvagedItems") as TextBox;
                    var receivedItems           = item.FindControl("ReceivedUnits") as TextBox;
                    var orderDetailIDController = item.FindControl("OrderDetailID") as Label;
                    var unitSize = item.FindControl("UnitSize") as Label;

                    var salvage = 0;
                    var receive = 0;
                    var size    = 0;

                    if (int.TryParse(unitSize.Text, out result) == true)
                    {
                        size = int.Parse(unitSize.Text);
                    }

                    if (int.TryParse(salvagedItems.Text, out result) == true)
                    {
                        salvage = int.Parse(salvagedItems.Text);
                    }

                    if (int.TryParse(receivedItems.Text, out result) == true)
                    {
                        receive = int.Parse(receivedItems.Text);
                    }


                    var totalQuantity = salvage + (receive * size);

                    if (totalQuantity > 0)
                    {
                        newreceiveditem.OrderDetailID = int.Parse(orderDetailIDController.Text);
                        newreceiveditem.ItemQuantity  = totalQuantity;

                        newProductInfo.ProductID        = int.Parse(orderDetailIDController.Text);
                        newProductInfo.QuantityReceived = totalQuantity;

                        receivedOrderItems.Add(newreceiveditem);
                        productDetails.Add(newProductInfo);
                    }
                }
                receivedOrderDetail.OrderID           = int.Parse(OrderListDropDown.SelectedValue);
                receivedOrderDetail.Products          = productDetails;
                receivedOrderDetail.ReceivedOrder     = receivedOrderInfo;
                receivedOrderDetail.ReceiveOrderItems = receivedOrderItems;
                receivedOrderDetail.ReturnOrderItems  = returnedOrderItems;

                controller.ReceiveShimpmentOrder(receivedOrderDetail);
            }, "Receive Shipment", "Shipment Received");

            Response.Redirect("~/Subsystem/Receiving/Receiving");
        }
示例#17
0
        protected void ReceiveLinkButton_Click(object sender, EventArgs e)
        {
            MessageUserControl.TryRun(() =>
            {
                List <RecevingOrderList> recevOrder = new List <RecevingOrderList>();

                // ReturnedOrderDetail newReturnOrderDetail = new ReturnedOrderDetail();
                //int receorderid = newReturnOrderDetail.ReceiveOrderID;
                // int purorderdetailid= (newReturnOrderDetail.PurchaseOrderDetailID).GetValueOrDefault() ;
                int poid = int.Parse(PurchaseOrderHiddenField.Value);

                int remainQTY   = 0;
                int checkReceiv = 0;

                foreach (var item in RFListView.Items)
                {
                    TextBox receivingTB   = item.FindControl("ReceivingTextBox") as TextBox;
                    TextBox returningTB   = item.FindControl("ReturningTextBox") as TextBox;
                    TextBox ReasonTB      = item.FindControl("ReasonTextBox") as TextBox;
                    Label newSID          = item.FindControl("SIDLabel") as Label;
                    Label oust            = item.FindControl("OutstandingLabel") as Label;
                    HiddenField newpodeid = item.FindControl("PurchasePrderDetailIDHF1") as HiddenField;
                    Label outstandingL    = item.FindControl("OutstandingLabel") as Label;
                    int os = int.Parse(outstandingL.Text);
                    RecevingOrderList reorlist = new RecevingOrderList();

                    reorlist.Receiving           = int.Parse(receivingTB.Text);
                    reorlist.Returning           = int.Parse(returningTB.Text);
                    reorlist.Reason              = ReasonTB.Text;
                    reorlist.SID                 = int.Parse(newSID.Text);
                    reorlist.PurchasePrderDetail = int.Parse(newpodeid.Value);
                    reorlist.Outstanding         = int.Parse(oust.Text);

                    // check ramaining outstanding
                    remainQTY += (reorlist.Outstanding - reorlist.Receiving).GetValueOrDefault();
                    // check any quantity inputs
                    checkReceiv += (reorlist.Receiving + reorlist.Returning).GetValueOrDefault();
                    if (reorlist.Receiving > os)
                    {
                        throw new Exception("Receiving can not be greater than outstanding");
                    }
                    else if (reorlist.Returning != 0)
                    {
                        if (reorlist.Reason == "")
                        {
                            throw new Exception("Must have a reason if you have returning");
                        }
                        else
                        {
                            recevOrder.Add(reorlist);
                        }
                    }
                }
                if (checkReceiv == 0)
                {
                    throw new Exception("Nothing received?");
                }
                bool checkOutstand = false;
                if (remainQTY == 0)
                {
                    checkOutstand = true;
                }
                ReceivingController resmgr = new ReceivingController();
                resmgr.RecevingReturningReason_transaction(checkOutstand, poid, recevOrder);
                MessageUserControl.ShowInfo("Success", "order received succesfully");
                outstandingListView.DataBind();
                HidePanles();
            });
        }
示例#18
0
    protected void ReceiveOrder_Click(object sender, EventArgs e)
    {
        if (PONum.Text != "")
        {
            bool orderCompleted = true;
            int  orderNumber    = int.Parse(PONum.Text);
            ViewPurchaseOrderItems        orderItem    = null;
            List <ViewPurchaseOrderItems> orderDetails = new List <ViewPurchaseOrderItems>();
            MessageUserControl.TryRun(() =>
            {
                int tempInt = 0;
                int count   = 0;
                foreach (GridViewRow arow in ShowOrderDetails.Rows)
                {
                    orderItem                 = new ViewPurchaseOrderItems();
                    orderItem.ItemID          = int.Parse((arow.FindControl("StockNum") as Label).Text);
                    orderItem.ItemDescription = (arow.FindControl("Description") as Label).Text;
                    orderItem.Ordered         = int.Parse((arow.FindControl("QtyOrdered") as Label).Text);

                    if (string.IsNullOrEmpty((arow.FindControl("QtyReturned") as TextBox).Text))
                    {
                        orderItem.Returned = 0;
                    }
                    else
                    {
                        if (int.TryParse((arow.FindControl("QtyReturned") as TextBox).Text, out tempInt))
                        {
                            if (tempInt >= 0)
                            {
                                orderItem.Returned = tempInt;
                                count += tempInt;
                            }
                            else
                            {
                                throw new Exception("You must enter a postive integer value for returned items.");
                            }
                        }
                        else
                        {
                            throw new Exception("You must enter an integer value for returned items.");
                        }
                    }

                    if (string.IsNullOrEmpty((arow.FindControl("QtyReceived") as TextBox).Text))
                    {
                        orderItem.Received = 0;
                    }
                    else
                    {
                        if (int.TryParse((arow.FindControl("QtyReceived") as TextBox).Text, out tempInt))
                        {
                            if (tempInt >= 0)
                            {
                                orderItem.Received = tempInt;
                                count += tempInt;
                            }
                            else
                            {
                                throw new Exception("You must enter a postive integer value for received items.");
                            }
                        }
                        else
                        {
                            throw new Exception("You must enter an integer value for received items.");
                        }
                    }

                    if ((arow.FindControl("ReasonReturned") as TextBox).Text == "" && orderItem.Returned > 0)
                    {
                        throw new Exception("You must enter a reason for returned items.");
                    }
                    else
                    {
                        if (orderItem.Returned > 0)
                        {
                            orderItem.Reason = (arow.FindControl("ReasonReturned") as TextBox).Text;
                        }
                    }

                    if (orderItem.Received < int.Parse((arow.FindControl("QtyOutstanding") as Label).Text))
                    {
                        orderCompleted = false;
                    }

                    orderDetails.Add(orderItem);
                }
                if (count == 0)
                {
                    throw new Exception("You cannot receive an empty order.");
                }
                ReceivingController sysmgr = new ReceivingController();
                sysmgr.ReceivePurchaseOrder(orderNumber, orderDetails, orderCompleted);
                PONum.Text  = "";
                Vendor.Text = "";
                Phone.Text  = "";
                ShowOrderDetails.DataSource = null;
                ShowOrderDetails.DataBind();
                ShowPurchaseOrders.DataBind();
                OrderInfo.Visible     = false;
                OrderControls.Visible = false;
            }, "Purchase Order Receiving", "Purchase Order successfully received.");
        }
        else
        {
            MessageUserControl.ShowInfo("You must select a purchase order before receiving.");
        }
    }
        protected void ReceiveShipment_Click(object sender, EventArgs e)
        {
            var receiveditems = new List <TransactionItemPOCO>();
            var rejecteditems = new List <RejectedItemPOCO>();

            int orderid = 0;

            GridViewRow orderrow = PurchaseOrderGridView.Rows[1];

            orderid = int.Parse((orderrow.FindControl("OrderID") as Label).Text);
            MessageUserControl.TryRun(() =>
            {
                foreach (GridViewRow row in PurchaseOrderGridView.Rows)
                {
                    if (int.Parse(((row.FindControl("QuantityOutstanding") as Label).Text).ToString()) > 0)
                    {
                        if (!int.TryParse(((row.FindControl("ReceivedUnitsBox") as TextBox).Text), out int receivecheck) || receivecheck <= 0)
                        {
                            throw new BusinessRuleException("Input Error", new List <String> {
                                "Received items must be an integer number greater than zero."
                            });
                        }
                        int salvageditems = 0;

                        int itemunitsize = int.Parse(((row.FindControl("ReceivedUnitsBox") as TextBox).Text));
                        int maxorder     = int.Parse(row.Cells[2].Text);
                        string itemname  = row.Cells[1].Text;
                        int itemquantity = int.Parse(((row.FindControl("UnitLabel") as Label).Text).ToString()) * itemunitsize;

                        if (string.IsNullOrEmpty(((row.FindControl("SalvagedItemsBox") as TextBox).Text)) == false)
                        {
                            if (!int.TryParse(((row.FindControl("SalvagedItemsBox") as TextBox).Text), out int salvagedcheck) || salvagedcheck <= 0)
                            {
                                throw new BusinessRuleException("Input Error", new List <String> {
                                    "Salvaged items must be an integer number greater than zero."
                                });
                            }
                            else if (itemquantity + int.Parse(((row.FindControl("SalvagedItemsBox") as TextBox).Text)) > maxorder)
                            {
                                throw new BusinessRuleException("Input Error", new List <String> {
                                    "Total Item quantity cannot be greater than the initial item order."
                                });
                            }
                            else
                            {
                                salvageditems = int.Parse(((row.FindControl("SalvagedItemsBox") as TextBox).Text));
                                itemquantity  = itemquantity + salvageditems;
                            }
                        }

                        itemquantity = itemquantity + salvageditems;

                        if (!string.IsNullOrEmpty((row.FindControl("RejectedUnitsBox") as TextBox).Text) && !string.IsNullOrEmpty((row.FindControl("RejectedReason") as TextBox).Text))
                        {
                            if (!int.TryParse(((row.FindControl("RejectedUnitsBox") as TextBox).Text), out int rejectedcheck) || rejectedcheck <= 0)
                            {
                                throw new BusinessRuleException("Input Error", new List <String> {
                                    "Rejected items must be an integer number greater than zero."
                                });
                            }
                            else if (int.TryParse(((row.FindControl("RejectedReasons") as TextBox).Text), out int rejected))
                            {
                                throw new BusinessRuleException("Input Error", new List <String> {
                                    "Reason for rejection cannot be a number."
                                });
                            }
                            else
                            {
                                int rejectitems = int.Parse((row.FindControl("RejectedUnitsBox") as TextBox).Text);
                                string reasons  = (row.FindControl("RejectedReason") as TextBox).ToString();

                                rejecteditems.Add(new RejectedItemPOCO()
                                {
                                    ItemName     = itemname,
                                    ItemQuantity = rejectitems,
                                    Reason       = reasons
                                });
                            }
                        }

                        receiveditems.Add(new TransactionItemPOCO()
                        {
                            ItemName     = itemname,
                            ItemQuantity = itemquantity
                        });
                    }
                }
            });

            MessageUserControl.TryRun(() =>
            {
                ReceivingController sysmgr = new ReceivingController();

                sysmgr.ReceiveShipment(orderid, receiveditems, rejecteditems);
            }, "Transaction Processed", "Order Received Successfully"
                                      );


            PurchaseOrderGridView.DataBind();
            int remainingitems = 0;

            foreach (GridViewRow row in PurchaseOrderGridView.Rows)
            {
                remainingitems = remainingitems + int.Parse(((row.FindControl("QuantityOutstanding") as Label).Text).ToString());
            }

            if (remainingitems == 0)
            {
                MessageUserControl.TryRun(() => {
                    ReceivingController sysmgr = new ReceivingController();
                    sysmgr.CloseOrder(orderid);
                }, "Order Complete", "This Order will now be closed");

                Response.Redirect(Request.RawUrl);
                MessageUserControl.TryRun(() => { }, "Order Complete", "The Order was closed. Please select a new one.");
            }
        }
示例#20
0
        protected void ReceiveOrder_Click(object sender, EventArgs e)
        {
            string sccssDetail = "Order Received.";

            MessageUserControl.TryRun(() =>
            {
                try
                {
                    PurchaseOrderProcessed order = new PurchaseOrderProcessed();
                    order.POid = Convert.ToInt32((PurchaseOrderDetailsGridView.Rows[0].FindControl("POid") as HiddenField).Value);
                    List <ReceivedPODetail> detailList = new List <ReceivedPODetail>();
                    foreach (GridViewRow row in PurchaseOrderDetailsGridView.Rows)
                    {
                        // Unpack GridViewRow:
                        var receivingAmount = Convert.ToInt32((row.Cells[4].Controls[1] as TextBox).Text);
                        var qtyOutstanding  = Convert.ToInt32((row.Cells[3].Controls[1] as Label).Text);
                        if (receivingAmount > qtyOutstanding)
                        {
                            throw new Exception("Quantity receiving cannot be be greater then quantity outstanding.");
                        }
                        var returnAmount = Convert.ToInt32((row.Cells[5].Controls[1] as TextBox).Text);
                        var returnReason = (row.Cells[6].Controls[1] as TextBox).Text;
                        if (returnAmount > 0 && returnReason == "")
                        {
                            throw new Exception("Must provide reason for each item returned.");
                        }
                        var partID     = Convert.ToInt32((row.Cells[0].Controls[1] as Label).Text);
                        var poDetailID = Convert.ToInt32((row.FindControl("PODetailID") as HiddenField).Value);
                        var POid       = Convert.ToInt32((row.FindControl("POid") as HiddenField).Value);

                        if (receivingAmount > 0 || returnAmount > 0)
                        {
                            // collect the data to be sent to BLL
                            ReceivedPODetail data = new ReceivedPODetail
                            {
                                POid         = POid,
                                PODetailID   = poDetailID,
                                PartID       = partID,
                                QtyReceiving = receivingAmount,
                                QtyReturning = returnAmount,
                                ReturnReason = returnReason
                            };
                            detailList.Add(data);
                        }
                    }
                    // Check what button sent the request and check for item count for processing
                    var button = ((LinkButton)sender).ID;
                    if (detailList.Count == 0 && button == "ReceiveOrder" && UnorderedCart.Items.Count == 0)
                    {
                        throw new Exception("No items received in the order.");
                    }
                    order.receivedDetails = detailList;
                    var controller        = new ReceivingController();
                    bool closed           = controller.ReceiveOrder(order);
                    // Refresh GridView and ListView update after receive.
                    var orderDetails = controller.GetPurchaseOrderDetails(order.POid);
                    PurchaseOrderDetailsGridView.DataSource = orderDetails;
                    PurchaseOrderDetailsGridView.DataBind();
                    UnorderedCart.DataBind();
                    // If order is closed refresh hide Order Details and refresh Order Panel.
                    if (closed)
                    {
                        OrderPanel.Visible = false;
                        OrderPanel.Enabled = false;
                        OutstandingOrderGridView.DataBind();
                        sccssDetail = "Order Fulfilled and closed.";
                    }
                }
                catch (FormatException)
                {
                    throw new Exception("Returning and Receiving must be digits. If non returned / received enter 0.");
                }
            }, "Success", sccssDetail);
        }