Beispiel #1
0
        protected void doSearch()
        {
            String orderId = string.Empty;

            if ((rbAllClients.Checked) &&
                String.IsNullOrEmpty(txtSearchAfter.Text) &&
                String.IsNullOrEmpty(txtSearchBefore.Text))
            {
                MessageBox.Show("Please select a client or enter a date range");
                return;
            }


            string             clientId   = rbAllClients.Checked ? string.Empty  : cboClients.SelectedValue.ToString();
            string             surname    = string.Empty;
            string             forename   = string.Empty;
            string             dateBefore = txtSearchBefore.Text;
            string             dateAfter  = txtSearchAfter.Text;
            SalesOrderDataList newList    = new SalesOrderDataList();

            if (Server.Instance.searchOrders(orderId, clientId, surname, forename, dateAfter, dateBefore, newList) == false)
            {
                return;
            }
            if (newList.Count == 0)
            {
                MessageBox.Show("No results found");
                return;
            }

            _list = newList;

            dgvOrders.AutoGenerateColumns = false;
            dgvOrders.DataBindings.Clear();
            dgvOrders.DataSource = _list;
            dgvLines.DataSource  = _list;
            dgvLines.DataMember  = "Lines";

            dgvOrders.Refresh();
        }
Beispiel #2
0
        /// <summary>
        /// searchOrders this performs an orders search returning nested XML data.
        /// </summary>
        /// <remarks>
        /// This differs from the book search in using XML as a vehicle for the results.
        /// These are parsed into a order summary list using LINQ to XML.
        /// </remarks>
        /// <param name="clientId"></param>
        /// <param name="forename"></param>
        /// <param name="surname"></param>
        /// <param name="list"></param>
        /// <returns></returns>
        public Boolean searchOrders(String orderId, String clientId, string surname, string forename, string startDate, string endDate, SalesOrderDataList list)
        {
            String results = String.Empty;

            try {
                lock (_syncCall) {
                    UniSubroutine s = _sess.CreateUniSubroutine("u2_searchOrders", 3);

                    String searchData = orderId + FM_STR + clientId + FM_STR + surname + FM_STR + forename + FM_STR + startDate + FM_STR + endDate + FM_STR + _moneyFormat.ToString();
                    String errText    = String.Empty;


                    s.SetArg(0, searchData);
                    s.Call();
                    errText = s.GetArg(2);
                    results = s.GetArg(1).Replace(FM_STR, CRLF);
                    if (String.IsNullOrEmpty(errText) == false)
                    {
                        ShowError(errText);
                        return(false);
                    }
                }
                System.Diagnostics.Debug.Print(results);


                XDocument doc   = XDocument.Parse(results);
                var       query = from e in doc.Element("ROOT").Descendants("ORDER")
                                  select new SalesOrderData
                {
                    OrderId   = Utils.safeString((string)e.Element("ID")),
                    OrderDate = Utils.safeString((string)e.Element("ORDER_DATE")),
                    ClientId  = Utils.safeString((string)e.Element("CLIENT_ID")),
                    Fullname  = Utils.safeString((string)e.Element("FULLNAME")),
                    ShipCode  = Utils.safeString((string)e.Element("SHIP_CODE")),
                    ShipCost  = Utils.safeDouble((String)e.Element("SHIP_COST")),
                    Lines     = (e.Element("LINES").HasElements == false ?
                                 null:
                                 (from e2 in e.Element("LINES").Elements("LINE")
                                  select new SalesOrderLine
                    {
                        BookId = Utils.safeString((string)e2.Element("BOOK_ID")),
                        Title = Utils.safeString((string)e2.Element("TITLE")),
                        AuthorName = Utils.safeString((string)e2.Element("AUTHOR_NAME")),
                        Price = Utils.safeDouble((string)e2.Element("PRICE")),
                        TaxCode = Utils.safeString((string)e2.Element("TAX_CODE")),
                        GoodsAmt = Utils.safeDouble((String)e2.Element("GOODS_AMT")),
                        TaxAmt = Utils.safeDouble((string)e2.Element("TAX_AMT")),
                        Qty = Utils.safeInt((string)e2.Element("QTY"))
                    }).ToList <SalesOrderLine>())
                };


                foreach (SalesOrderData c in query)
                {
                    list.Add(c);
                }
            } catch (Exception ex) {
                ShowError(ex.Message);
                return(false);
            }
            return(true);
        }