Example #1
0
    }//end linq server mode

    /// <summary>
    /// derive filter from selected row and apply to cargo update editor - find by selected order id
    /// rebuild session with selected filter
    /// redirect to orders search page
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void dxgrdquerylog_RowCommand(object sender, ASPxGridViewRowCommandEventArgs e)
    {
        try
        {
            Int32 _idx = e.VisibleIndex;
            //string[] _fields = {"qry_text","qry_desc"};

            string _orderid = this.dxgrdquerylog.GetRowValues(_idx, "orderid").ToString();

            if (!string.IsNullOrEmpty(_orderid))
            {
                SessionParameterPasser _sessionWrapper = new SessionParameterPasser("~/Ord_Edit_Cargo.aspx");
                _sessionWrapper["query"] = "orderid==" + _orderid;
                _sessionWrapper["name"]  = "query_order_id";
                _sessionWrapper["mode"]  = "0";
                _sessionWrapper.PassParameters();
                //force submit of query and set mode to 0 (history)
                //this does not work!
                //Page.ClientScript.RegisterStartupScript(GetType(), "QRY_MOD", "window.submit_query(0);", true);
                //Response.Redirect("~/Default.aspx",false);
            }
        }
        catch (Exception ex)
        {
            Response.Write(ex.Message.ToString());
        }
    }
Example #2
0
    //end button save

    /// <summary>
    /// reset search
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnEndFilter_Click(object sender, EventArgs e)
    {
        this.txtQuickSearch.Text = "";
        this.dxhfsource.Set("mode", 1); //default to quick search
        SessionParameterPasser _sessionWrapper = new SessionParameterPasser();

        _sessionWrapper["mode"]  = null;
        _sessionWrapper["query"] = null;
        _sessionWrapper["name"]  = null;

        this.dxgdvOrder.DataBind();
    }
    /// <summary>
    /// this version of redirect just forces the login to close
    /// </summary>
    protected void Redirect(bool loggedIn)
    {
        try
        {
            if (loggedIn)
            {
                UserClass _thisuser = (UserClass)Session["user"];

                //this.txtUserName.Text = _thisuser.UserName;

                //save login history
                append_to_user_log(_thisuser);

                //290311 REQUIRED FOR FORMS AUTHENTICATION
                //30/03/2011 for forms authentication
                //System.Web.Security.FormsAuthentication.SetAuthCookie(txtUserName.Text, false);

                //show logout
                //ClientScript.RegisterStartupScript(GetType(), "LOG_KEY", "window.parent.loginSwitch();", true);
                //
                //09/03/2011 reset submit_query -1 which should cause default filter to fire therefore not auto-loading data

                //27/06/2011 don't fire this script for ubmit_query(-1) as it means we can only use this login form with search forms e.g. ord_view_tracking.aspx
                //set session wrapper instead
                SessionParameterPasser _sessionWrapper = new SessionParameterPasser();
                _sessionWrapper["mode"] = "-1";
                //ClientScript.RegisterStartupScript(GetType(), "CLR_KEY", "window.parent.submit_query(-1);", true);
                //pass user name back to parent
                ClientScript.RegisterStartupScript(GetType(), "LBL_KEY", "window.parent.lblResult.SetText(txtResult.GetText());", true);
                //09/08/2011 re-initialise menu
                ClientScript.RegisterStartupScript(GetType(), "LBL_MNU", "window.parent.setMenu();", true);
                //close login
                ClientScript.RegisterStartupScript(GetType(), "INN_KEY", "window.parent.closeloginWindow(1);", true);
            }
            else
            {
                //close this window and redirect to default non-secure page
                //29/06/2011 don't use script as we are going to redirect anyway
                ClientScript.RegisterStartupScript(GetType(), "OUT_KEY", "window.parent.cancelloginWindow();", true);
                //force popup to close
            }
        }
        catch (Exception ex)
        {
            this.lblmsg.Text = ex.Message.ToString();
        }
    }
    }//end linq server mode

    /// <summary>
    /// derive filter from selected row and apply to orders view
    /// rebuild session with selected filter
    /// redirect to orders search page
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void dxgrdquerylog_RowCommand(object sender, ASPxGridViewRowCommandEventArgs e)
    {
        try
        {
            Int32 _idx = e.VisibleIndex;
            //string[] _fields = {"qry_text","qry_desc"};

            string _fex     = this.dxgrdquerylog.GetRowValues(_idx, "qry_text").ToString();
            string _fname   = this.dxgrdquerylog.GetRowValues(_idx, "qry_desc").ToString();
            string _fsource = this.dxgrdquerylog.GetRowValues(_idx, "qry_source").ToString();
            string _default = "shipment";//default to shipment tracking
            string _url     = "../tracking/{0}_tracking.aspx";

            _url = _fsource != "" ? string.Format(_url, _fsource): string.Format(_url, _default);
            //old code we are using form names instead of codes in qry_source as of 20/03/15
            //if (_fsource == "CNTR") {
            //    _url = "../tracking/container_tracking.aspx";
            //}
            //else if(_fsource == "DLVRY"){
            //     _url = "../tracking/delivery_tracking.aspx";
            //}
            //else if(_fsource == "NSHIP"){
            //     _url =  "../tracking/not_shipped_tracking.aspx";
            //}

            if (!string.IsNullOrEmpty(_fex))
            {
                SessionParameterPasser _sessionWrapper = new SessionParameterPasser(_url);
                _sessionWrapper["query"]  = _fex;
                _sessionWrapper["name"]   = _fname;
                _sessionWrapper["mode"]   = "0";
                _sessionWrapper["source"] = _fsource;
                _sessionWrapper.PassParameters();
                //force submit of query and set mode to 0 (history)
                //this does not work!
                //Page.ClientScript.RegisterStartupScript(GetType(), "QRY_MOD", "window.submit_query(0);", true);
                //Response.Redirect("~/Default.aspx",false);
            }
        }
        catch (Exception ex)
        {
            Response.Write(ex.Message.ToString());
        }
    }
    /// <summary>
    /// clear grid of all data, filters and groups
    /// clear session wrappers so previus search params are not retained
    /// </summary>
    protected void Session_Reset_All()
    {
        //remove all filtering/grouping from grid
        ASPxGridView _grid = (ASPxGridView)this.ContentPlaceHolderM1.FindControl("gridOrder");

        if (_grid != null)
        {
            _grid.FilterExpression = null;
            wwi_func.remove_dxgrid_grouping(_grid);
        }

        //Session["user"] = null;
        Session.Remove("user");

        Session.Clear();
        SessionParameterPasser _sessionWrapper = new SessionParameterPasser();

        _sessionWrapper["query"] = "(OrderNumber==-1)";
        _sessionWrapper["name"]  = null;
        _sessionWrapper["mode"]  = null;

        this.lblResult.Text          = "You are not signed in";
        this.btnLogout.ClientVisible = false;
        this.btnLogin.ClientVisible  = true;


        //kill cookie
        if (Request.Browser.Cookies)
        {
            if (Request.Cookies["UserInfo"] != null)
            {
                HttpCookie _acookie = new HttpCookie("UserInfo");
                _acookie.Expires = DateTime.Now.AddDays(-1d);
                Response.Cookies.Add(_acookie);
            }
        }
        //end kill cookie
    }
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnApply_Click(object sender, EventArgs e)
    {
        //01122011 PME if user has created a query string but datatable is empty i.e. they did not click the + button to add to datatable
        //populate datatable with query row
        DataTable _dt = (DataTable)Session["querytable"];

        if (_dt.Rows.Count == 0)  //force check to see whats in input boxes
        {
            datatable_add_row();
        }

        //string _magic = "\""; //set up quotes correctly in string
        //this.txtQueryResult.Text = this.advancedFilter.FilterExpression.Replace("#", _magic).ToString(); //this.advancedFilter.FilterExpression.ToString();
        //System.Collections.Hashtable _htfilter = new System.Collections.Hashtable();
        //
        //12/10/2010 new search builder does not require parsing for Linq
        string _fex = get_query_from_rows(); //this.advancedFilter.GetFilterExpressionForOracle().ToString();
        //24/06/2011 for date in next/previous X days, parse out the current dates and replace with markers
        //so we can re-use the query

        //24/06/2011 if add to reports is ticked, flag in database so we can add to drop down on search form
        string _ck    = this.dxckReport.Checked == true ? "___report" : "";
        string _fname = get_query_name() + _ck;

        //force advanced search session to clear
        //09/06/2011 do not clear session so user can re-apply
        //Session.Remove("querytable");

        if (_fex != string.Empty)
        {
            //12/10/2010 new search builder does not require parsing for Linq, as the string
            //is formatted depending on the linq attribute in xml
            //we just need to build the query from data rows in repeater
            //
            //_fex = set_string_parser(_fex);
            //
            //if (_fex.Contains("#"))
            //{
            //      _fex = set_datetime_parser(_fex);
            //}

            SessionParameterPasser _sessionWrapper = new SessionParameterPasser();
            _sessionWrapper["query"] = _fex;
            _sessionWrapper["name"]  = _fname;

            this.txtQueryResult.Text = _fname;

            //pass search params back to parent
            //ClientScript.RegisterStartupScript(GetType(), "QRY_KEY", "window.parent.lblmsgbox.SetText(txtQuery.GetText());", true);
            //close this window
            //ClientScript.RegisterStartupScript(GetType(), "ANY_KEY", "window.parent.closefilterWindow();", true);
            //force reload of primary grid
            //ClientScript.RegisterStartupScript(GetType(), "DAT_KEY", "window.parent.grdOrder.PerformCallback();", true);
            //all one script
            //one script
            this.ClientScript.RegisterStartupScript(GetType(), "QRY_KEY", "window.parent.lblmsgbox.SetText(txtQuery.GetText());window.parent.popDefault.HideWindow(window.parent.popDefault.GetWindowByName('filterform'));window.parent.submit_query(2);", true);
        }
        else
        {
            //just close popup
            //Session.Remove("querytable");
            ClientScript.RegisterStartupScript(GetType(), "EXT_KEY", "window.parent.popDefault.HideWindow(window.parent.popDefault.GetWindowByName('filterform'));", true);
        }
    }
Example #7
0
    //end load

    #region grid databinding
    /// <summary>
    /// this code is used with LinqServerModeDataSource_Selecting so we can run in server mode
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void LinqServerModePod_Selecting(object sender, DevExpress.Data.Linq.LinqServerModeDataSourceSelectEventArgs e)
    {
        Int32 _companyid = -1; //after testing default to empty string
        SessionParameterPasser _sessionWrapper = new SessionParameterPasser();
        ParameterCollection    _params         = new ParameterCollection();
        //check if session created from advanced search, in which case we can use the parameters passed back
        string _query = "";
        int    _mode  = this.dxhfsource.Contains("mode") ? wwi_func.vint(this.dxhfsource["mode"].ToString()) : 1; //default mode to quick search

        //a simplified version of the methods used in order tracking - no history but advanced search is available
        if (_sessionWrapper["query"] != null && _mode == 2)
        {
            _query = _sessionWrapper["query"].ToString();
        }
        else
        {
            _query = get_filter();
        }
        //company id: always add as a search param if user is logged in
        //if (Page.Session["user"] != null)
        //company id: always add as a search param if user is logged in UNLESS _mode = -1 which we can use to bypass params
        if (Page.Session["user"] != null)
        {
            _companyid = (Int32)((UserClass)Page.Session["user"]).CompanyId;

            if (_companyid != -1) //-1 is a WWI company
            {
                Parameter _p = return_default_view(-1);
                if (_p != null)
                {
                    _params.Add(_p);
                }
            }
        }

        //now rebuild query with additional parameters
        string _f = "";

        if (_params.Count > 0)
        {
            foreach (Parameter p in _params)
            {
                string _a = _f != "" ? " AND " : "";
                _f += _a + "(" + p.Name.ToString() + "==" + p.DefaultValue.ToString() + ")";
            }

            if (_query != "")
            {
                _query = _f + " AND " + _query;
            }
            else
            {
                _query = _f;
            }
        }

        //get start date from dll value
        //e.g if search is for last 12 months dllvalue 1 start date = current date - (1 * 12) months
        //if search is for 2-3 years dllvalue 3 start date = current date - (3 * 12) months
        int _dllvalue = this.dxcboRange.Value != null?wwi_func.vint(this.dxcboRange.Value.ToString()) : 1;

        //number of months to include after start date
        int _months = 12;
        //multiply base * 12 to get start date
        int      _lowest  = 0 - (_dllvalue * 12);
        DateTime _minDate = DateTime.Now.AddMonths(_lowest);

        //dynamic queries using system.Linq.dynamic + Dynamic.cs library
        //20/10/2010 we have build a unqiue index (OrderIx) from OrderId, TitleId, ContainerSubId as usual primary keys are not going to
        //be unique in the view. aspxgrid only works properly when it has a unique key
        e.KeyExpression = "OrderIx"; //"OrderID"; //a key expression is required

        if (!string.IsNullOrEmpty(_query))
        {
            //var _nquery = new linq_classesDataContext().view_orders.Where(_query); //c => c.CompanyID == 7
            var _nquery = new linq.linq_view_orders_udfDataContext().view_orders_by_age(_minDate, _months).Where(_query); //c => c.CompanyID == 7
            e.QueryableSource = _nquery;
            //Int32 _count = _nquery.Count();
        }
        else //default to display nothing in grid
        {
            //var _nquery = new linq_classesDataContext().view_orders.Where(c => c.OrderNumber == -1);
            var _nquery = new linq.linq_view_orders_udfDataContext().view_orders_by_age(_minDate, _months).Where(c => c.OrderNumber == -1);
            //_count = _nquery.Count();

            e.QueryableSource = _nquery;
        }
    }