//Interface protected void Page_Load(object sender, EventArgs e) { //Page load event handler try { if (!Page.IsPostBack) { string number = Request.QueryString["number"]; if (number.Length > 0) { this.mItems = new TrackingGateway().TrackShipment(number); ViewState.Add("Items", this.mItems); if (this.mItems != null && this.mItems.Count > 0) { //Show summary this.grdTrack.DataSource = this.mItems; this.grdTrack.DataBind(); this.grdTrack.SelectedIndex = 0; OnItemSelected(null, EventArgs.Empty); } else { showMessageBox("Could not find shipment information."); } } } else { this.mItems = (TrackingItems)ViewState["Items"]; } } catch (Exception ex) { reportError(ex, 3); } }
//Interface protected void Page_Load(object sender, EventArgs e) { //Event handler for page load event try { if (!Page.IsPostBack) { //Init this.lnkBack.Visible = this.lnkFileClaim.Visible = this.lnkPODReq.Visible = false; //Display tracking information for the specified carton this.mLabelNumber = Request.QueryString["item"] == null ? "" : Request.QueryString["item"].ToString(); ViewState["LabelNumber"] = this.mLabelNumber; this.mSearchByStoreTL = Request.QueryString["TL"] == null ? "" : Request.QueryString["TL"].ToString(); ViewState["SearchByStoreTL"] = this.mSearchByStoreTL; if (this.mLabelNumber.Length > 0) { TrackingItems items = null; if (Session["TrackData"] is TrackingItems) { items = (TrackingItems)Session["TrackData"]; } if (items != null && items.Count > 0) { //Find the items info for labelNumber foreach (TrackingItem item in items) { if (item.LabelNumber == this.mLabelNumber) { showItem(item); break; } } } else { Master.ReportError(new ApplicationException("Could not find carton information. Please return to the tracking page and try again."), 4); } } else { Master.ReportError(new ApplicationException("Could not find item number. Please return to the tracking page and try again."), 4); } //Update links this.lnkBack.Text = Session["TrackBy"].ToString() == TrackingGateway.SEARCHBY_STORE ? "<< Store Detail" : "<< Carton Summary"; this.lnkBack.PostBackUrl = Session["TrackBy"].ToString() == TrackingGateway.SEARCHBY_STORE ? "~/Members/StoreDetail.aspx?TL=" + HttpUtility.UrlEncode(this.mSearchByStoreTL) : "~/Members/CartonSummary.aspx"; this.lnkBack.Visible = true; this.lnkFileClaim.NavigateUrl = "~/Members/FileClaim.aspx?ID=" + this.mLabelNumber; this.lnkFileClaim.ToolTip = "Submit a file claim"; this.lnkFileClaim.Visible = new MembershipServices().IsFileClaims; this.lnkPODReq.Visible = true; } else { this.mLabelNumber = ViewState["LabelNumber"].ToString(); this.mSearchByStoreTL = ViewState["SearchByStoreTL"].ToString(); } } catch (Exception ex) { Master.ReportError(ex, 3); } }
//Interface protected void Page_Load(object sender, EventArgs e) { //Page load event handler try { if (!Page.IsPostBack) { //Query request or menu request string number = Request.QueryString["number"]; if (number != null && number.Length > 0) { this.txtNumber.Text = number; Page.Validate(); OnTrack(null, EventArgs.Empty); } else { this.mvwPage.ActiveViewIndex = 0; } } else { this.mItems = (TrackingItems)ViewState["Items"]; } } catch (Exception ex) { Master.ReportError(ex, 3); } }
private void tracking_Click(object sender, RoutedEventArgs e) { this.Hide(); TrackingItems shi = new TrackingItems(); shi.Show(); }
public TrackingItems TrackCartonsByShipment(string clientNumber, string contractNumber, string searchBy) { //Get a list of cartons (details) for the specified client and contract (i.e. PO, PRO) number TrackingItems items = null; TrackingServiceClient client = null; try { client = new TrackingServiceClient(); switch (searchBy) { case SEARCHBY_PO: items = client.TrackCartonsForPO(clientNumber, contractNumber); break; case SEARCHBY_PRO: items = client.TrackCartonsForPRO(clientNumber, contractNumber); break; case SEARCHBY_BOL: items = client.TrackCartonsForBOL(clientNumber, contractNumber); break; } client.Close(); } catch (TimeoutException te) { client.Abort(); throw new ApplicationException(te.Message, te); } catch (FaultException <TrackingFault> tfe) { client.Abort(); throw new ApplicationException(tfe.Detail.Message); } catch (FaultException fe) { client.Abort(); throw new ApplicationException(fe.Message, fe); } catch (CommunicationException ce) { client.Abort(); throw new ApplicationException(ce.Message, ce); } return(items); }
public TrackingItems TrackCartons(string[] trackingNumbers, string searchBy, string companyType, string companyID) { //Get a list of cartons (details) for the specified tracking number (carton or label sequence) TrackingItems items = null; TrackingServiceClient client = null; try { client = new TrackingServiceClient(); //string[] _numbers = trackingNumbers.Split(new char[]{','}); string _client = companyID != ID_ARGIX && companyType.ToLower() == "client" ? companyID : null; string _vendor = companyID != ID_ARGIX && companyType.ToLower() == "vendor" ? companyID : null; switch (searchBy) { case SEARCHBY_LABELNUMBER: items = client.TrackCartonsByLabelNumber(trackingNumbers, _client, _vendor); break; case SEARCHBY_CARTONNUMBER: items = client.TrackCartonsByCartonNumber(trackingNumbers, _client, _vendor); break; case SEARCHBY_PLATENUMBER: items = client.TrackCartonsByPlateNumber(trackingNumbers, _client, _vendor); break; } client.Close(); } catch (TimeoutException te) { client.Abort(); throw new ApplicationException(te.Message, te); } catch (FaultException <TrackingFault> tfe) { client.Abort(); throw new ApplicationException(tfe.Detail.Message); } catch (FaultException fe) { client.Abort(); throw new ApplicationException(fe.Message, fe); } catch (CommunicationException ce) { client.Abort(); throw new ApplicationException(ce.Message, ce); } return(items); }
public ActionResult TrackByContract(TrackByItemRequest request) { // if (ModelState.IsValid) { try { // Session["TrackBy"] = request.TrackBy; //Validate string input = request.TrackingNumbers; if (input.Length == 0) { ModelState.AddModelError("", "Please enter a valid tracking number."); return(View(request)); } //Get tracking details for all items and retain in Session state TrackingItems items = new TrackingItems(); switch (request.TrackBy) { case SEARCHBY_PO: items = new EnterpriseGateway().TrackCartonsForPO(request.Client, request.TrackingNumbers); break; case SEARCHBY_PRO: items = new EnterpriseGateway().TrackCartonsForPRO(request.Client, request.TrackingNumbers); break; } Session["TrackData"] = items; //Redirect to appropriate UI if (items.Count == 0) { ModelState.AddModelError("", "Carton(s) not found. Please verify the tracking number and retry."); return(View(request)); } //else if (items.Count == 1) // return RedirectToAction("ItemDetail","Tracking",new { itemNumber = items[0].ItemNumber.Trim() }); else if (items.Count > 0) { return(RedirectToAction("ItemSummary", "Tracking")); } else { return(View(request)); } } catch (Exception ex) { ModelState.AddModelError("", ex); return(View(request)); } } else { return(View(request)); } }
public static TrackingItems TrackCartonsByLabelNumber(string[] itemNumbers) { // TrackingItems items = null; CRMServiceClient client = new CRMServiceClient(); try { items = client.TrackCartonsByLabelNumber(itemNumbers, null, null); client.Close(); } catch (TimeoutException te) { client.Abort(); throw new ApplicationException(te.Message); } catch (FaultException fe) { client.Abort(); throw new ApplicationException(fe.Message); } catch (CommunicationException ce) { client.Abort(); throw new ApplicationException(ce.Message); } return(items); }
public TrackingItems TrackShipment(string shipmentNumber) { // TrackingItems items = null; LTLTrackingServiceClient client = new LTLTrackingServiceClient(); try { items = client.TrackPalletShipment(shipmentNumber); client.Close(); } catch (TimeoutException te) { client.Abort(); throw new ApplicationException(te.Message); } catch (FaultException <TrackingFault> cfe) { client.Abort(); throw new ApplicationException(cfe.Detail.Message); } catch (FaultException fe) { client.Abort(); throw new ApplicationException(fe.Message); } catch (CommunicationException ce) { client.Abort(); throw new ApplicationException(ce.Message); } return(items); }
public TrackingItems TrackCartons(string[] itemNumbers, string companyID) { //Get invoices for the specified client TrackingItems items = null; FastTrackingServiceClient _Client = null; try { _Client = new FastTrackingServiceClient(); items = _Client.TrackCartons(itemNumbers, companyID); _Client.Close(); } catch (FaultException fe) { throw new ApplicationException("TrackCartons() service error.", fe); } catch (TimeoutException te) { _Client.Abort(); throw new ApplicationException("TrackCartons() timeout error.", te); } catch (CommunicationException ce) { _Client.Abort(); throw new ApplicationException("TrackCartons() communication error.", ce); } return(items); }
public TrackingItems TrackItemsByLabelNumber(string[] itemNumbers, string clientNumber, string vendorNumber) { //Track items by Argix label number TrackingItems items = new TrackingItems(); TrackingServiceClient client = null; try { client = new TrackingServiceClient(); items = client.TrackCartonsByLabelNumber(itemNumbers, clientNumber, vendorNumber); } catch (TimeoutException te) { client.Abort(); throw new ApplicationException(te.Message); } catch (FaultException fe) { client.Abort(); throw new ApplicationException(fe.Message); } catch (CommunicationException ce) { client.Abort(); throw new ApplicationException(ce.Message); } finally { client.Close(); } return(items); }
public TrackingItems TrackCartonsByCartonNumber(string[] itemNumbers, string clientNumber, string vendorNumber) { // TrackingItems items = new TrackingItems(); try { string numbers = ""; for (int i = 0; i < itemNumbers.Length; i++) { if (i > 0) { numbers += ","; } numbers += itemNumbers[i]; } TrackingDataset cartons = new TrackingDataset(); cartons.Merge(new EnterpriseRGateway().GetCartonsByCartonNumber(numbers, clientNumber, vendorNumber)); //Return records for all found items foreach (TrackingDataset.TrackingTableRow carton in cartons.TrackingTable.Rows) { //Keep the response item if it matches a requested item (use CTN number) for (int i = 0; i < itemNumbers.Length; i++) { if (carton.CTN.Trim() == itemNumbers[i]) { //Keep it TrackingItem item = new TrackingItem(itemNumbers[i], carton); items.Add(item); itemNumbers[i] = ""; //Mark as found by nulling it break; } } } //Return a record for all unfound requests for (int i = 0; i < itemNumbers.Length; i++) { if (itemNumbers[i].Length > 0) { items.Add(new TrackingItem(itemNumbers[i])); } } } catch (Exception ex) { throw new FaultException <TrackingFault>(new TrackingFault(ex.Message), "Service Error"); } return(items); }
public ActionResult ItemDetail(string itemNumber) { // TrackingItems items = (TrackingItems)Session["TrackData"]; ItemDetailResponse response = new ItemDetailResponse(); foreach (TrackingItem item in items) { if (item.ItemNumber == itemNumber) { response.Store = item.StoreName + ", " + item.StoreAddress1 + ", " + item.StoreAddress2 + ", " + item.StoreCity + ", " + item.StoreState + " " + item.StoreZip; response.Item = item; break; } } return(View(response)); }
public TrackingItems TrackPalletShipment(string shipmentNumber) { // TrackingItems items = new TrackingItems(); try { TrackingDataset pallets = new TrackingDataset(); pallets.Merge(new EnterpriseRGateway().TrackLTLPallets(shipmentNumber)); //Return records for all found items foreach (TrackingDataset.TrackingTableRow pallet in pallets.TrackingTable.Rows) { TrackingItem item = new TrackingItem(pallet.CTN, pallet); items.Add(item); } } catch (Exception ex) { throw new FaultException <TrackingFault>(new TrackingFault(ex.Message), "Service Error"); } return(items); }
public TrackingItems TrackCartonsForBOL(string clientNumber, string BOLNumber) { // TrackingItems items = new TrackingItems(); try { TrackingDataset cartons = new TrackingDataset(); cartons.Merge(new EnterpriseRGateway().GetCartonsForBOL(clientNumber, BOLNumber)); //Return records for all items foreach (TrackingDataset.TrackingTableRow carton in cartons.TrackingTable.Rows) { TrackingItem item = new TrackingItem(carton.CTN, carton); items.Add(item); } } catch (Exception ex) { throw new FaultException <TrackingFault>(new TrackingFault(ex.Message), "Service Error"); } return(items); }
//Members //Interface protected void Page_Load(object sender, EventArgs e) { //Event handler for form load event try { if (!Page.IsPostBack) { // TrackingItems items = null; if (Session["TrackData"] is TrackingItems) { items = (TrackingItems)Session["TrackData"]; } if (items != null && items.Count > 0) { //Title this.lblTitle.Text = items.Count.ToString() + " cartons"; try { if (Session["TrackBy"].ToString() == TrackingGateway.SEARCHBY_PRO) { this.lblTitle.Text = "PRO# " + items[0].ShipmentNumber + " (" + items.Count.ToString() + " cartons)"; } if (Session["TrackBy"].ToString() == TrackingGateway.SEARCHBY_PO) { this.lblTitle.Text = "PO# " + items[0].PONumber + " (" + items.Count.ToString() + " cartons)"; } } catch { } this.grdTrack.DataSource = items; this.grdTrack.DataBind(); } else { Master.ReportError(new ApplicationException("Could not find summary information. Please return to the tracking page and try again."), 4); } } } catch (Exception ex) { Master.ReportError(ex, 3); } }
protected void OnTrack(object sender, EventArgs e) { //Track one or more cartons try { if (Page.IsValid) { //Validate string number = encodeInput(this.txtNumber.Text); if (number.Length == 0) { Master.ShowMessageBox("Please enter a valid tracking number."); return; } //Track if (number.Length > 0) { this.mItems = new TrackingGateway().TrackShipment(number); ViewState.Add("Items", this.mItems); if (this.mItems != null && this.mItems.Count > 0) { //Show summary this.grdTrack.DataSource = this.mItems; this.grdTrack.DataBind(); this.grdTrack.SelectedIndex = 0; OnItemSelected(null, EventArgs.Empty); this.mvwPage.ActiveViewIndex = 1; } else { Master.ShowMessageBox("Could not find shipment information."); } } } } catch (Exception ex) { Master.ReportError(ex, 3); } }
public ActionResult ItemSummary() { // TrackingItems items = (TrackingItems)Session["TrackData"]; ItemSummaryResponse response = new ItemSummaryResponse("Item Summary", items); if (items != null && items.Count > 0) { if (Session["TrackBy"].ToString() == SEARCHBY_PRO) { response.Title = "PRO# " + items[0].ShipmentNumber + " (" + items.Count.ToString() + " cartons)"; } else if (Session["TrackBy"].ToString() == SEARCHBY_PO) { response.Title = "PO# " + items[0].PONumber + " (" + items.Count.ToString() + " cartons)"; } } else { ModelState.AddModelError("", "Could not find summary information. Please return to tracking page and try again."); } return(View(response)); }
protected void OnPODRequest(object sender, EventArgs e) { // DataSet ds = null; bool imagesFound = false; try { if (this.lnkPODReq.Text == "Request POD") { sendPODRequest(); } else { //Get all detail rows for this carton Argix.Enterprise.TrackingItem item = null; if (this.mLabelNumber.Length > 0) { TrackingItems items = (TrackingItems)Session["TrackData"]; if (items != null) { //Find the items info for labelNumber foreach (TrackingItem _item in items) { if (_item.LabelNumber == this.mLabelNumber) { //Get carton data and check for a POD image for this CBOL item = _item; string cl = item.Client.Trim().PadLeft(3, '0'); //string div = "01"; Can't wildcard div in KQL string st = item.StoreNumber.Trim().PadLeft(5, '0'); string cbol = item.CBOL.Trim(); if (cbol.Length > 0) { ds = new Argix.Enterprise.ImagingGateway().SearchSharePointImageStore(Application["ImagingDocClass"].ToString(), Application["ImagingPropertyName"].ToString(), cbol + cl + "*"); imagesFound = (ds != null && ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0 && ds.Tables[0].Select("Store=" + st).Length > 0); } break; } } } } else { Master.ShowMessageBox("Could not find tracking information. Please return to tracking page and try again."); } if (imagesFound) { //Images available- open images into other browser instances StringBuilder sb = new StringBuilder(); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i]["Store"].ToString() == item.StoreNumber.Trim().PadLeft(5, '0')) { string uri = ds.Tables[0].Rows[i]["Path"].ToString(); sb.Append("window.open('PODImage.aspx?uri=" + uri + "', '_blank', 'width=480,height=576,menubar=yes,location=no,toolbar=no,status=yes,resizable=yes');"); } } Page.ClientScript.RegisterStartupScript(typeof(Page), "POD Image", sb.ToString(), true); } else { //Image(s) unavailable ViewState.Add("PODRequestItem", item); this.lnkPODReq.Text = "Request POD"; this.lnkPODReq.ToolTip = "Request POD image(s) from Customer Service"; Master.ShowMessageBox("The POD was not be found. Click the Request POD link to request the POD from Customer Service."); } } } catch (Exception ex) { Master.ReportError(ex, 3); } }
private void showItem(TrackingItem item) { //Display summary if (item != null) { this.lblCartonNumber.Text = item.CartonNumber; this.lblClientName.Text = item.ClientName; this.lblStoreNumber.Text = "Consignee " + item.StoreNumber.PadLeft(5, '0'); this.lblStore.Text = ": " + item.StoreName + ", " + item.StoreAddress1 + (item.StoreAddress2.Length > 0 ? ", " + item.StoreAddress2 + ", " : " ") + item.StoreCity + ", " + item.StoreState + " " + item.StoreZip; this.lblVendorName.Text = item.VendorName.Trim(); this.lblPickupDate.Text = item.PickupDate.Trim(); this.lblBOLNumber.Text = item.BOLNumber.ToString(); this.lblTLNumber.Text = item.TLNumber.Trim(); this.lblLabelNumber.Text = item.LabelNumber.ToString(); this.lblPONumber.Text = item.PONumber.Trim(); this.lblWeight.Text = item.Weight.ToString(); this.lblShipmentNumber.Text = item.ShipmentNumber.Trim(); this.lblSchDelivery.Text = item.ActualStoreDeliveryDate.Trim(); //Display detail TrackingItems detail = new TrackingItems(); TrackingItem row = null; if (item.SortFacilityArrivalDate.Trim().Length > 0) { row = new TrackingItem(); row.ItemNumber = item.ItemNumber; row.DateTime = item.SortFacilityArrivalDate; row.Status = item.SortFacilityArrivalStatus; row.Location = item.SortFacilityLocation; detail.Add(row); } if (item.ActualDepartureDate.Trim().Length > 0) { row = new TrackingItem(); row.ItemNumber = item.ItemNumber; row.DateTime = item.ActualDepartureDate; row.Status = item.ActualDepartureStatus; row.Location = item.ActualDepartureLocation; detail.Add(row); } if (item.ActualArrivalDate.Trim().Length > 0) { row = new TrackingItem(); row.ItemNumber = item.ItemNumber; row.DateTime = item.ActualArrivalDate; row.Status = item.ActualArrivalStatus; row.Location = item.ActualArrivalLocation; detail.Add(row); } if (item.ActualStoreDeliveryDate.Trim().Length > 0) { row = new TrackingItem(); row.ItemNumber = item.ItemNumber; row.DateTime = item.ActualStoreDeliveryDate; row.Status = item.ActualStoreDeliveryStatus; row.Location = item.ActualStoreDeliveryLocation; detail.Add(row); } if (item.PODScanDate.Trim().Length > 0) { row = new TrackingItem(); row.ItemNumber = item.ItemNumber; row.DateTime = item.PODScanDate; row.Status = item.PODScanStatus; row.Location = item.PODScanLocation; detail.Add(row); } this.grdDetail.DataSource = detail; this.grdDetail.DataBind(); } else { this.lblCartonNumber.Text = this.lblClientName.Text = this.lblStoreNumber.Text = ""; this.lblStore.Text = this.lblVendorName.Text = this.lblPickupDate.Text = ""; this.lblBOLNumber.Text = this.lblTLNumber.Text = this.lblLabelNumber.Text = this.lblPONumber.Text = ""; this.lblWeight.Text = this.lblShipmentNumber.Text = this.lblSchDelivery.Text = ""; this.grdDetail.DataSource = null; this.grdDetail.DataBind(); } }
public ItemSummaryResponse(string title, TrackingItems items) { this.mTitle = title; this.mItems = items; }
public ActionResult TrackByItem(TrackByItemRequest request) { // if (ModelState.IsValid) { try { // Session["TrackBy"] = request.TrackBy; //Validate string input = encodeInput(request.TrackingNumbers); if (input.Length == 0) { ModelState.AddModelError("", "Please enter valid tracking numbers."); return(View(request)); } string[] numbers = input.Split(Convert.ToChar(13)); if (numbers.Length > 10) { ModelState.AddModelError("", "Please limit your search to 10 items."); return(View(request)); } //Get tracking details for all items and retain in Session state string clientNumber = null, vendorNumber = null; ProfileBase profile = System.Web.HttpContext.Current.Profile; if (profile["ClientVendorID"].ToString() != "000" && profile["Type"].ToString().ToLower() == "client") { clientNumber = profile["ClientVendorID"].ToString(); } else if (profile["ClientVendorID"].ToString() != "000" && profile["Type"].ToString().ToLower() == "vendor") { vendorNumber = profile["ClientVendorID"].ToString(); } TrackingItems items = new TrackingItems(); switch (request.TrackBy) { case SEARCHBY_LABEL: items = new EnterpriseGateway().TrackItemsByLabelNumber(numbers, clientNumber, vendorNumber); break; case SEARCHBY_PLATE: items = new EnterpriseGateway().TrackItemsByPlateNumber(numbers, clientNumber, vendorNumber); break; default: items = new EnterpriseGateway().TrackItemsByCartonNumber(numbers, clientNumber, vendorNumber); break; } Session["TrackData"] = items; //Redirect to appropriate UI if (items.Count == 0) { ModelState.AddModelError("", "Carton(s) not found. Please verify the tracking number(s) and retry."); return(View(request)); } //else if (items.Count == 1) // return RedirectToAction("ItemDetail","Tracking",new { itemNumber = items[0].ItemNumber.Trim() }); else if (items.Count > 0) { return(RedirectToAction("ItemSummary", "Tracking")); } else { return(View(request)); } } catch (Exception ex) { ModelState.AddModelError("", ex); return(View(request)); } } else { return(View(request)); } }
public TrackingItems TrackCartons(string[] itemNumbers, string companyID) { //Get tracking information for the specified items and company TrackingItems items = null; try { //Get tracking response for the specified requests items = new TrackingItems(); string numbers = ""; for (int i = 0; i < itemNumbers.Length; i++) { if (i > 0) { numbers += ","; } numbers += itemNumbers[i]; } //Get tracking data response TrackingDataset _cartons = new TrackingDataset(); _cartons.Merge(new EnterpriseRGateway().GetCartonsByCartonNumber(numbers, companyID, null)); if (_cartons.TrackingTable.Rows.Count > 0) { TrackingDataset cartons = new TrackingDataset(); DataView view = _cartons.TrackingTable.DefaultView; view.Sort = "CTN,BL DESC,SCNTP DESC,SCD DESC,SCT DESC"; DataTable dt = view.Table.Clone(); Hashtable ht = new Hashtable(); for (int i = 0; i < view.Count; i++) { string key = view[i]["CTN"].ToString().Trim() + view[i]["BL"].ToString().Trim(); if (!ht.ContainsKey(key)) { ht.Add(key, null); dt.ImportRow(view[i].Row); } } cartons.TrackingTable.Merge(dt); //Return records for all found items foreach (TrackingDataset.TrackingTableRow carton in cartons.TrackingTable.Rows) { //Keep the response item if it matches a requested item for (int i = 0; i < itemNumbers.Length; i++) { if (carton.CTN.Trim() == itemNumbers[i]) { //Keep it TrackingItem item = new TrackingItem(itemNumbers[i], carton); items.Add(item); itemNumbers[i] = ""; //Mark as found by nulling it break; } } } //Return a record for all unfound requests for (int i = 0; i < itemNumbers.Length; i++) { if (itemNumbers[i].Length > 0) { items.Add(new TrackingItem(itemNumbers[i])); } } } } catch (Exception ex) { throw new FaultException <TrackingFault>(new TrackingFault(ex.Message), "Service Error"); } return(items); }
public TrackingItems TrackCartons(string[] itemNumbers, string companyID) { //Get tracking information for the specified items and company TrackingItems items = null; //Get tracking response for the specified requests items = new TrackingItems(); string numbers = ""; for (int i = 0; i < itemNumbers.Length; i++) { if (i > 0) { numbers += ","; } numbers += itemNumbers[i]; } //Get tracking data response DataSet ds = new DataService().FillDataset(SQL_CONN, USP_BYCARTON, TBL_BYCARTON, new object[] { numbers, companyID, null }); if (ds != null && ds.Tables[TBL_BYCARTON].Rows.Count > 0) { TrackingDS cartons = new TrackingDS(); DataView view = ds.Tables[TBL_BYCARTON].DefaultView; view.Sort = "CTN,BL DESC,SCNTP DESC,SCD DESC,SCT DESC"; DataTable dt = view.Table.Clone(); Hashtable ht = new Hashtable(); for (int i = 0; i < view.Count; i++) { string key = view[i]["CTN"].ToString().Trim() + view[i]["BL"].ToString().Trim(); if (!ht.ContainsKey(key)) { ht.Add(key, null); dt.ImportRow(view[i].Row); } } cartons.TrackingTable.Merge(dt); //Return records for all found items foreach (TrackingDS.TrackingTableRow carton in cartons.TrackingTable.Rows) { //Keep the response item if it matches a requested item for (int i = 0; i < itemNumbers.Length; i++) { if (carton.CTN.Trim() == itemNumbers[i]) { //Keep it TrackingItem item = new TrackingItem(itemNumbers[i], carton); items.Add(item); itemNumbers[i] = ""; //Mark as found by nulling it break; } } } //Return a record for all unfound requests for (int i = 0; i < itemNumbers.Length; i++) { if (itemNumbers[i].Length > 0) { items.Add(new TrackingItem(itemNumbers[i])); } } } return(items); }