private void Page_Load(object sender, System.EventArgs e)
        {
            DateTime dtCurrentDate;
            int      l_iResult;

            try
            {
                OrgId = _functions.GetUserOrgId(HttpContext.Current.User.Identity.Name, false);

                if (Request.QueryString["sid"] == null || Request.QueryString["equipid"] == null)
                {
                    Session["lastpage"] = "wo_showEquipsForInspect.aspx";
                    Session["error"]    = _functions.ErrorMessage(104);
                    Response.Redirect("error.aspx", false);
                    return;
                }
                try
                {
                    EquipId = Convert.ToInt32(Request.QueryString["equipid"]);
                    InspectSchedDetailId = Convert.ToInt32(Request.QueryString["sid"]);
                }
                catch (FormatException fex)
                {
                    Session["lastpage"] = "wo_showEquipsForInspect.aspx";
                    Session["error"]    = _functions.ErrorMessage(105);
                    Response.Redirect("error.aspx", false);
                    return;
                }

                NextBackControl.BackPage = "wo_showEquipsForInspect.aspx";
                NextBackControl.NextText = " << Create >> ";

                if (!IsPostBack)
                {
                    dtCurrentDate = DateTime.Now;
                    // getting the main (fixed) data
                    order          = new clsWorkOrders();
                    order.iOrgId   = OrgId;
                    order.iEquipId = EquipId;
                    order.iInspectSchedDetailId = InspectSchedDetailId;
                    order.daCurrentDate         = dtCurrentDate;

                    l_iResult = order.GetInfoForCreateWOInspection();
                    if (l_iResult == -1)
                    {
                        Session["lastpage"] = "wo_showEquipsForInspect.aspx";
                        Session["error"]    = _functions.ErrorMessage(147);
                        Response.Redirect("error.aspx", false);
                        return;
                    }
                    lblEquipId.Text         = order.sEquipId.Value;
                    lblWOType.Text          = order.sType.Value;
                    lblInspectSchedule.Text = order.sInspectSchedule.Value;
                    lblInspectName.Text     = order.sInspectionName.Value;
                    lblStatus.Text          = order.sStatusId.Value;
                    lblLastInspectDate.Text = order.sLastInspection.Value;
                    lblDateRange.Text       = order.sDatesRange.Value;

                    if (order.sStatusId.Value == "No Service History")
                    {
                        dtCurrentDate = dtCurrentDate.AddMinutes(60 - dtCurrentDate.Minute);
                        //lblScheduledDate.Text = dtCurrentDate.ToLongDateString() + " " + dtCurrentDate.ToShortTimeString();
                        lblScheduledDate.Text        = "System cannot calculate the optimal date for inspection without history. Please select the next scheduled date of inspection.";
                        lblScheduledDate.Font.Italic = true;
                        adtScheduled.Date            = dtCurrentDate;
                        // if exist a future work order then alert
                        if (l_iResult == 1)
                        {
                            Header.ErrorMessage = "Warning: " + _functions.ErrorMessage(152);
                            dtCurrentDate       = dtCurrentDate.AddMinutes(60 - dtCurrentDate.Minute);
                            //lblScheduledDate.Text = dtCurrentDate.ToLongDateString() + " " + dtCurrentDate.ToLongTimeString();
                            adtScheduled.Date = dtCurrentDate;
                        }
                    }
                    else
                    {
                        l_iResult = order.GetDateTimeOfForecastInspection();
                        if (l_iResult == -1)
                        {
                            // error
                            Header.ErrorMessage         = _functions.ErrorMessage(order.iErrorCode.Value);
                            NextBackControl.NextEnabled = false;
                            adtScheduled.Date           = dtCurrentDate.AddMinutes(60 - dtCurrentDate.Minute);
                            return;
                        }
                        else
                        {
                            if (l_iResult == 1)
                            {
                                Header.ErrorMessage = "Warning: " + _functions.ErrorMessage(152);
                            }

//								{dtCurrentDate = dtCurrentDate.AddMinutes(60-dtCurrentDate.Minute);
//								lblScheduledDate.Text = dtCurrentDate.ToLongDateString() + " " + dtCurrentDate.ToShortTimeString();
//								adtScheduled.Date = dtCurrentDate;
//								return;	}
                            if (l_iResult == 2)
                            {
                                Header.ErrorMessage = "Warning: " + _functions.ErrorMessage(149);
                            }

                            if (dtCurrentDate < order.daScheduled.Value)
                            {
                                dtCurrentDate = order.daScheduled.Value;
                            }
                            else
                            {
                                dtCurrentDate = dtCurrentDate.AddMinutes(60 - dtCurrentDate.Minute);
                            }
                            lblScheduledDate.Text = dtCurrentDate.ToLongDateString() + " " + dtCurrentDate.ToShortTimeString();
                            adtScheduled.Date     = dtCurrentDate;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                _functions.Log(ex, HttpContext.Current.User.Identity.Name, SourcePageName);
                Session["lastpage"]     = "wo_showEquipsForInspect.aspx";
                Session["error"]        = ex.Message;
                Session["error_report"] = ex.ToString();
                Response.Redirect("error.aspx", false);
            }
            finally
            {
                if (order != null)
                {
                    order.Dispose();
                }
            }
        }
        private void btSave_FormSubmit(object sender, EventArgs e)
        {
            string sDomenName;
            int    l_iResult;

            try
            {
                SaveChangedItems();

                order               = new clsWorkOrders();
                order.iOrgId        = OrgId;
                order.iId           = OrderId;
                order.iInspectionId = InspectId;
                order.iUserId       = _functions.GetUserOrgId(HttpContext.Current.User.Identity.Name, true);
                order.iTechId       = _functions.GetUserOrgId(HttpContext.Current.User.Identity.Name, true);
                order.sInitials     = tbInitial.Text;
                order.sPIN          = tbPIN.Text;
                order.daCurrentDate = _functions.CorrectDate(adtInspection.Date);
                switch (order.SigningInspectionList())
                {
                case 0:
                    if (cbAutoCreateWO.Checked)
                    {
                        order.iInspectSchedDetailId = (int)ViewState["InspectSchedDetailId"];
                        order.iEquipId      = (int)ViewState["EquipId"];
                        order.daCurrentDate = _functions.CorrectDate(adtInspection.Date);
                        l_iResult           = order.GetDateTimeOfForecastInspection();
                        if (l_iResult == -1)
                        {
                            // error
                            Header.ErrorMessage = _functions.ErrorMessage(order.iErrorCode.Value);
                        }
                        else
                        {
                            if (l_iResult == 2)
                            {
                                // sent email contain that inspection has been created but The Minimum through Maximum Date range is too small or the Holiday/No Service Date Ranges are too wide and the system is unable to identify any service dates available
                            }
                            order.SetInspectWorkOrder();
                            // redirect to the finish screen
                            BackFinishScreen finish = new BackFinishScreen();
                            if (l_iResult == 1)
                            {
                                finish.sMainText = "The Inspection has been completed successfully. <br>" + _functions.ErrorMessage(order.iErrorCode.Value);
                            }
                            else
                            {
                                finish.sMainText = "The Inspection has been completed successfully. <br>Next Inspection has been scheduled by " + order.daScheduled.Value.ToString() + " of work order";
                            }

                            finish.bMainMenuVisible = true;
                            finish.sMainMenuText    = "[Return to Main Menu]";
                            finish.sMainMenuURL     = "main.aspx";

                            if (l_iResult == 1)
                            {
                                finish.bContinueVisible = false;
                            }
                            else
                            {
                                finish.bContinueVisible = true;
                                finish.sContinueText    = "[View the Work Order of Next Inspection]";
                                finish.sContinueURL     = "wo_viewWorkOrder.aspx?id=" + order.iId.Value.ToString();
                            }

                            finish.bViewVisible = true;
                            finish.sViewText    = "[Return to Work Order Detail]";
                            finish.sViewURL     = "wo_viewWorkOrder.aspx?id=" + OrderId.ToString();

                            finish.bAdditionalVisible = false;

                            finish.bPrintVisible = false;

                            Session["BackFinish"] = finish;

                            Response.Redirect("wo_finish.aspx", false);
                        }
                    }
                    else
                    {
                        Response.Redirect("wo_viewWorkOrder.aspx?id=" + OrderId.ToString() + "&#Issues", false);
                    }
                    return;

                case -1:
                    Header.ErrorMessage = _functions.ErrorMessage(140);
                    break;

                case -2:
                    Header.ErrorMessage = _functions.ErrorMessage(139);
                    break;

                default:
                    break;
                }
                repInspectItems.DataSource = new DataView(order.GetWorkOrderInspectItems());
                repInspectItems.DataBind();
            }
            catch (Exception ex)
            {
                _functions.Log(ex, HttpContext.Current.User.Identity.Name, SourcePageName);
                Session["lastpage"]     = "wo_viewCompleteInspection.aspx?id=" + OrderId.ToString() + "&inspectid=" + InspectId.ToString();
                Session["error"]        = ex.Message;
                Session["error_report"] = ex.ToString();
                Response.Redirect("error.aspx", false);
            }
            finally
            {
                if (order != null)
                {
                    order.Dispose();
                }
            }
        }