protected void btnSubmit_Click(object sender, EventArgs e)
    {
        try
        {
            string strErrorMsg = ValidateInput();

            if (!string.IsNullOrEmpty(strErrorMsg.ToString()))
            {
                plMessage.Visible = true;
                displayCustomMessage(FormatErrorMessage(strErrorMsg.ToString()), lblMessage, SystemMessageType.Error);
                return;
            }

            m_Header.AcknowledgeStatus = POAckStatus.Acknowledged;

            foreach (GridViewRow rowItem in gvItem.Rows)
            {
                Label    lblItemNo  = (Label)rowItem.FindControl("lblItemNo");
                GridView gvSchedule = (GridView)rowItem.FindControl("gvSchedule");
                foreach (GridViewRow rowSchedule in gvSchedule.Rows)
                {
                    Label lblPurchaseOrderScheduleSequence = (Label)rowSchedule.FindControl("lblPurchaseOrderScheduleSequence");
                    UserControls_DatePicker dtpAck         = (UserControls_DatePicker)rowSchedule.FindControl("dtpAck");

                    foreach (PurchaseOrderItemSchedule schedule in m_Schedules)
                    {
                        if (string.Compare(lblItemNo.Text, schedule.PurchaseOrderItemSequence, true) == 0 &&
                            string.Compare(lblPurchaseOrderScheduleSequence.Text, schedule.PurchaseOrderScheduleSequence, true) == 0)
                        {
                            schedule.AcknowledgementDate = GetStoredDateValue(dtpAck.SelectedDate);
                        }
                    }
                }
            }

            PurchaseOrderController.AcknowledgePurchaseOrder(m_Header, m_Schedules);

            btnSubmit.Enabled = false;
            plMessage.Visible = true;
            string sMessage = "Purchase Order has been acknowledged successfully.";
            displayCustomMessage(sMessage, lblMessage, SystemMessageType.Information);
        }
        catch (Exception ex)
        {
            ExceptionLog(ex);
            plMessage.Visible = true;
            string sMessage = ex.Message;
            displayCustomMessage(sMessage, lblMessage, SystemMessageType.Error);
        }
    }