Example #1
0
        public CheckPackageModel CheckPackageOrder(string barcode)
        {
            CheckPackageModel retVal = null;

            using (var client = new WebClient())
            {
                try
                {
                    client.Headers.Add("Token", Utils.TOKEN);
                    string             URL      = string.Format("{0}{1}?OrderNumber={2}", Utils.BASE_PATH, Utils.POST_ORDERS, barcode);
                    var                response = client.DownloadString(URL);
                    ResponseCheckOrder order    = JsonConvert.DeserializeObject <ResponseCheckOrder>(response);
                    retVal = order.Data;
                }
                catch (Exception ex)
                {
                    throw;
                }
            }

            return(retVal);
        }
        private void AddNewPackage()
        {
            EditText barcodeTxt = FindViewById <EditText>(Resource.Id.txtBarcode);

            // Get barcode
            var barcodeValue = barcodeTxt.Text;

            barcodeValue = barcodeValue.Trim();

            if (String.IsNullOrEmpty(barcodeValue))
            {
                Android.Widget.Toast.MakeText(this, "Empty Package Barcode!", Android.Widget.ToastLength.Short).Show();
                return;
            }

            CheckPackageModel model = null;

            if (GetConnectionStatus())
            {
                try
                {
                    // call api
                    model = _transactionService.CheckPackageOrder(barcodeValue);


                    if (model == null)
                    {
                        Android.Widget.Toast.MakeText(this, "Package does not exists!", Android.Widget.ToastLength.Short).Show();
                        return;
                    }

                    if (model.Status != (int)StatusTypeEnums.RECEIVED)
                    {
                        Android.Widget.Toast.MakeText(this, "Invalid Package Status!", Android.Widget.ToastLength.Short).Show();
                        barcodeTxt.Text = string.Empty;

                        return;
                    }
                }
                catch (Exception ex)
                {
                    Android.Widget.Toast.MakeText(this, "Error!", Android.Widget.ToastLength.Short).Show();
                }
            }

            // Check current data list
            var item = tableItems.Where(x => x.Heading == barcodeValue).FirstOrDefault();

            if (item != null)
            {
                // add count
                var totalCount = item.PackageQty + 1;
                tableItems.Where(x => x.Heading == barcodeValue).FirstOrDefault().PackageQty = totalCount;
                tableItems.Where(x => x.Heading == barcodeValue).FirstOrDefault().SubHeading = string.Format("{0} item(s)", totalCount);
            }
            else
            {
                tableItems.Add(new TableItem
                {
                    Heading = barcodeValue,
                    // SubHeading = string.Format("{0} item(s)", model != null ? model.PackageQty : 1),
                    // PackageQty = model != null ? model.PackageQty : 1,
                    SubHeading = string.Format("{0} item(s)", 1),
                    PackageQty = 1,
                    GUID       = model != null ? model.GUID : Guid.Empty
                });
            }

            InitializeListView();

            // get the total Count
            // 0 Packages Scanned
            totalCount = tableItems.Sum(x => x.PackageQty);
            //  scanPackageCountTxt.Text = string.Format("{0} Packages Scanned", totalCount);

            barcodeTxt.Text = String.Empty;
            Android.Widget.Toast.MakeText(this, "Package is Added!", Android.Widget.ToastLength.Short).Show();
            executeOnce = false;
        }
        private void CheckPackage()
        {
            // reset visibility
            SetUIVisibility();

            // check connection
            var isConnected = GetConnectionStatus();

            if (isConnected)
            {
                // get barcdoe
                EditText barcodeTxt = FindViewById <EditText>(Resource.Id.txtBarcode);
                var      barcode    = barcodeTxt.Text;

                barcode = barcode.Trim();

                if (String.IsNullOrEmpty(barcode))
                {
                    Android.Widget.Toast.MakeText(this, "Package Barcode is empty!", Android.Widget.ToastLength.Short).Show();
                    return;
                }

                CheckPackageModel model = null;

                try
                {
                    // call api
                    model = _transactionService.CheckPackageOrder(barcode);
                }
                catch (Exception ex)
                {
                    Android.Widget.Toast.MakeText(this, "Error!", Android.Widget.ToastLength.Short).Show();
                    return;
                }

                if (model == null)
                {
                    Android.Widget.Toast.MakeText(this, "Package does not exist!", Android.Widget.ToastLength.Short).Show();
                    return;
                }

                // Update UI
                TextView packageCountView = FindViewById <TextView>(Resource.Id.txtViewPackageCount);
                TextView packageOrderView = FindViewById <TextView>(Resource.Id.txtViewPackageOrder);
                TextView statusView       = FindViewById <TextView>(Resource.Id.txtViewPackageStatus);

                if (packageCountView != null)
                {
                    packageCountView.Text = string.Format("{0} Packages", model.PackageQty);
                }

                if (packageOrderView != null)
                {
                    packageOrderView.Text = string.Format("SKE Order: {0}", model.OrderNumber);
                }

                if (statusView != null)
                {
                    statusView.Text = string.Format("Status: {0}", Utils.GetStatusTypeValue(model.Status));
                }

                switch (model.Status)
                {
                case 0:
                    //StatusTypeEnums.RECEIVED
                    TextView txtAgentID = FindViewById <TextView>(Resource.Id.txtAgentID);
                    txtAgentID.Visibility = ViewStates.Visible;
                    txtAgentID.Text       = string.Format("Agent ID: {0}", model.AgentStr);
                    break;

                case 1:
                    //StatusTypeEnums.LOADED
                    TextView txtLotNo = FindViewById <TextView>(Resource.Id.txtLotNo);
                    txtLotNo.Visibility = ViewStates.Invisible;
                    txtLotNo.Text       = string.Format("Lot No: {0}", model.LotNoStr);
                    break;

                case 2:
                    //StatusTypeEnums.SHIPPED

                    break;

                case 3:
                    //StatusTypeEnums.UNLOADED
                    TextView txtLotNoUnload = FindViewById <TextView>(Resource.Id.txtLotNo);
                    txtLotNoUnload.Visibility = ViewStates.Invisible;
                    txtLotNoUnload.Text       = string.Format("Lot No: {0}", model.LotNoStr);
                    break;

                case 4:
                    //StatusTypeEnums.DELIVERED
                    TextView txtDeliveryDate = FindViewById <TextView>(Resource.Id.txtDeliveryDate);
                    txtDeliveryDate.Visibility = ViewStates.Invisible;
                    txtDeliveryDate.Text       = string.Format("Delivery Date: {0}", model.DeliveredTS);

                    TextView txtReceivedBy = FindViewById <TextView>(Resource.Id.txtReceivedBy);
                    txtReceivedBy.Visibility = ViewStates.Invisible;
                    txtReceivedBy.Text       = string.Format("Received By: {0}", model.DeliveredTo);
                    break;
                }
            }
            else
            {
                Android.Widget.Toast.MakeText(this, "No Connection!", Android.Widget.ToastLength.Short).Show();
            }
        }