Пример #1
0
 //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); }
 }
Пример #2
0
    //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); }
    }
Пример #3
0
 //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();
        }
Пример #5
0
        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);
        }
Пример #6
0
        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);
        }
Пример #7
0
        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));
            }
        }
Пример #8
0
        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);
        }
Пример #9
0
        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);
        }
Пример #10
0
        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);
        }
Пример #11
0
        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);
        }
Пример #12
0
        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);
        }
Пример #13
0
        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));
        }
Пример #14
0
        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);
        }
Пример #15
0
        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);
        }
Пример #16
0
    //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); }
    }
Пример #17
0
    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); }
    }
Пример #18
0
        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));
        }
Пример #19
0
    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); }
    }
Пример #20
0
    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();
        }
    }
Пример #21
0
 public ItemSummaryResponse(string title, TrackingItems items)
 {
     this.mTitle = title; this.mItems = items;
 }
Пример #22
0
        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));
            }
        }
Пример #23
0
        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);
        }
Пример #24
0
        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);
        }