Пример #1
0
        public bool DeliverPackage(DeliverPackageModel model)
        {
            bool isResult = false;

            string URL = string.Format("{0}{1}/?UpdateTS={2}", Utils.BASE_PATH, Utils.POST_ORDERS, model.UpdateTS);

            // string URL = string.Format("{0}{1}", Utils.BASE_PATH, Utils.POST_ORDERS);

            using (var client = new WebClient())
            {
                try
                {
                    client.Headers.Add("Token", Utils.TOKEN);
                    client.Headers[HttpRequestHeader.ContentType] = "application/json";

                    var           jsonObj  = JsonConvert.SerializeObject(model.ModelOrder);
                    var           response = client.UploadString(URL, jsonObj);
                    ResponseModel res      = JsonConvert.DeserializeObject <ResponseModel>(response);

                    if (String.IsNullOrEmpty(res.Message))
                    {
                        isResult = true;
                    }
                }
                catch (Exception ex)
                {
                    throw;
                }
            }

            return(isResult);
        }
Пример #2
0
        void AddToDeliverTable(DeliverPackageModel model)
        {
            try
            {
                string dpPath = UserSession.DB_PATH;
                var    db     = new SQLiteConnection(dpPath);

                // Create Table
                db.CreateTable <DeliverTable>();

                // insert new item
                DeliverTable tbl = new DeliverTable
                {
                    OrderNumber = model.ModelOrder.OrderNumber,
                    Status      = model.ModelOrder.Status,
                    PackageQty  = model.ModelOrder.PackageQty,
                    DeliveredTS = model.ModelOrder.DeliveredTS,
                    DeliveredTo = model.ModelOrder.DeliveredTo,
                    GUID        = model.ModelOrder.GUID
                };

                db.Insert(tbl);
            }
            catch (Exception ex)
            {
                Toast.MakeText(this, ex.ToString(), ToastLength.Short).Show();
            }
        }
Пример #3
0
        void ProcessDeliver(string deliveredTo)
        {
            foreach (var item in tableItems)
            {
                ModelOrder modelOrder = new ModelOrder
                {
                    OrderNumber = item.Heading,
                    PackageQty  = item.PackageQty,
                    DeliveredTS = DateTime.UtcNow,
                    Status      = (int)StatusTypeEnums.DELIVERED,
                    DeliveredTo = deliveredTo,
                    GUID        = item.GUID
                };

                DeliverPackageModel model = new DeliverPackageModel
                {
                    ModelOrder = modelOrder,
                    UpdateTS   = true
                };

                if (GetConnectionStatus())
                {
                    var result = _transactionService.DeliverPackage(model);

                    if (!result)
                    {
                        AddToDeliverTable(model);
                        continue;
                    }
                }
                else
                {
                    // save to local db
                    AddToDeliverTable(model);
                }
            }
        }
Пример #4
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            SetContentView(Resource.Layout.DeliveryPackage);

            Button      cancelAction       = FindViewById <Button>(Resource.Id.btnCancel);
            Button      completeAction     = FindViewById <Button>(Resource.Id.btnComplete);
            Button      completeNextAction = FindViewById <Button>(Resource.Id.btnCompleNextDeliver);
            ImageButton barcodeAction      = FindViewById <ImageButton>(Resource.Id.ImgBtnScan);

            EditText barcodeEditText = FindViewById <EditText>(Resource.Id.txtBarcode);

            barcodeEditText.KeyPress += (object sender, View.KeyEventArgs e) => {
                e.Handled = false;
                if (e.Event.Action == KeyEventActions.Down && e.KeyCode == Keycode.Enter)
                {
                    //add your logic here
                    AddNewPackage();
                    e.Handled = true;
                }
            };

            // complete
            barcodeAction.Click += (object sender, EventArgs e) =>
            {
                AddNewPackage();
            };

            // Cancel
            cancelAction.Click += (object sender, EventArgs e) =>
            {
                Finish();
            };

            // complete
            completeAction.Click += (object sender, EventArgs e) =>
            {
                EditText txtReceivedBy    = FindViewById <EditText>(Resource.Id.txtReceivedBy);
                EditText packageQtyTxt    = FindViewById <EditText>(Resource.Id.txtPackageQty);
                EditText barcodeTxt       = FindViewById <EditText>(Resource.Id.txtBarcode);
                EditText deliveredDateTxt = FindViewById <EditText>(Resource.Id.txtDateDelivered);

                // Get barcode
                var barcodeValue = barcodeTxt.Text;

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

                // Delivered To
                var deliveredTo = txtReceivedBy.Text;

                if (String.IsNullOrEmpty(deliveredTo))
                {
                    Android.Widget.Toast.MakeText(this, "Received By is Empty!", Android.Widget.ToastLength.Short).Show();
                    return;
                }

                // Package Count
                var packageQty = packageQtyTxt.Text;

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

                if (Convert.ToInt32(packageQty) < 0)
                {
                    Android.Widget.Toast.MakeText(this, "Negative value is not allowed!", Android.Widget.ToastLength.Short).Show();
                    return;
                }

                var tempModel = _transactionService.CheckPackageOrder(barcodeValue);

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

                if (tempModel.Status != (int)StatusTypeEnums.UNLOADED)
                {
                    Android.Widget.Toast.MakeText(this, "Invalid Package Status!", Android.Widget.ToastLength.Short).Show();
                    return;
                }

                var _tempDeliveredDate = deliveredDateTxt.Text;

                if (String.IsNullOrEmpty(_tempDeliveredDate))
                {
                    Android.Widget.Toast.MakeText(this, "Delivered Date is Empty!", Android.Widget.ToastLength.Short).Show();
                    return;
                }

                var DeliveredDate = Convert.ToDateTime(_tempDeliveredDate);

                ModelOrder modelOrder = new ModelOrder
                {
                    OrderNumber   = barcodeValue,
                    PackageQty    = Convert.ToInt32(packageQty),
                    DeliveredTS   = DateTime.UtcNow,
                    Status        = (int)StatusTypeEnums.DELIVERED,
                    DeliveredTo   = deliveredTo,
                    GUID          = tempModel.GUID,
                    DeliveredDate = DeliveredDate
                };

                DeliverPackageModel model = new DeliverPackageModel
                {
                    ModelOrder = modelOrder,
                    UpdateTS   = true
                };

                if (GetConnectionStatus())
                {
                    try
                    {
                        var result = _transactionService.DeliverPackage(model);

                        // If Error
                        if (!result)
                        {
                            Android.Widget.Toast.MakeText(this, "Error!", Android.Widget.ToastLength.Short).Show();
                            AddToDeliverTable(model);

                            return;
                        }

                        UserSession.SendingAllPendingTransactions();

                        Android.Widget.Toast.MakeText(this, "Transaction Successful!", Android.Widget.ToastLength.Short).Show();
                    }
                    catch (Exception ex)
                    {
                        Android.Widget.Toast.MakeText(this, "Error!", Android.Widget.ToastLength.Short).Show();
                    }
                }
                else
                {
                    // save to local db
                    AddToDeliverTable(model);
                }



                // go back to main menu
                Finish();
            };


            // complete and deliver next
            completeNextAction.Click += (object sender, EventArgs e) =>
            {
                EditText barcodeTxt    = FindViewById <EditText>(Resource.Id.txtBarcode);
                EditText packageQtyTxt = FindViewById <EditText>(Resource.Id.txtPackageQty);
                EditText txtReceivedBy = FindViewById <EditText>(Resource.Id.txtReceivedBy);


                // Get barcode
                var barcodeValue = barcodeTxt.Text;

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

                // Delivered To
                var deliveredTo = txtReceivedBy.Text;

                if (String.IsNullOrEmpty(deliveredTo))
                {
                    Android.Widget.Toast.MakeText(this, "Received By is Empty!", Android.Widget.ToastLength.Short).Show();
                    return;
                }

                // Package Count
                var packageQty = packageQtyTxt.Text;

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

                if (Convert.ToInt32(packageQty) < 0)
                {
                    Android.Widget.Toast.MakeText(this, "Negative value is not allowed!", Android.Widget.ToastLength.Short).Show();
                    return;
                }

                var tempModel = _transactionService.CheckPackageOrder(barcodeValue);

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

                if (tempModel.Status != (int)StatusTypeEnums.UNLOADED)
                {
                    Android.Widget.Toast.MakeText(this, "Invalid Package Status!", Android.Widget.ToastLength.Short).Show();
                    return;
                }

                ModelOrder modelOrder = new ModelOrder
                {
                    OrderNumber = barcodeValue,
                    PackageQty  = Convert.ToInt32(packageQty),
                    DeliveredTS = DateTime.UtcNow,
                    Status      = (int)StatusTypeEnums.DELIVERED,
                    DeliveredTo = deliveredTo,
                    GUID        = tempModel.GUID
                };

                DeliverPackageModel model = new DeliverPackageModel
                {
                    ModelOrder = modelOrder,
                    UpdateTS   = true
                };

                if (GetConnectionStatus())
                {
                    try
                    {
                        var result = _transactionService.DeliverPackage(model);

                        // If Error
                        if (!result)
                        {
                            Android.Widget.Toast.MakeText(this, "Error!", Android.Widget.ToastLength.Short).Show();
                            AddToDeliverTable(model);

                            return;
                        }

                        UserSession.SendingAllPendingTransactions();
                        Android.Widget.Toast.MakeText(this, "Transaction Successful!", Android.Widget.ToastLength.Short).Show();
                    }
                    catch (Exception ex)
                    {
                        Android.Widget.Toast.MakeText(this, "Error!", Android.Widget.ToastLength.Short).Show();
                    }
                }
                else
                {
                    // save to local db
                    AddToDeliverTable(model);
                }

                // clear text
                barcodeTxt.Text    = String.Empty;
                packageQtyTxt.Text = "0";
                txtReceivedBy.Text = String.Empty;
            };
        }
Пример #5
0
        private static void SendDeliverPending()
        {
            ITransactionService _transactionService = new TransactionService();

            try
            {
                string dpPath = UserSession.DB_PATH;
                var    db     = new SQLiteConnection(dpPath);

                var data = db.Table <DeliverTable>(); //Call Table

                int TotalCount          = data.Count();
                var TotalSendCount      = 0;
                var InvalidPackageCount = 0;

                foreach (var d in data)
                {
                    ModelOrder modelOrder = new ModelOrder
                    {
                        GUID          = d.GUID,
                        OrderNumber   = d.OrderNumber,
                        PackageQty    = d.PackageQty,
                        DeliveredTo   = d.DeliveredTo,
                        DeliveredTS   = d.DeliveredTS,
                        Status        = d.Status,
                        DeliveredDate = d.DeliveredDate
                    };

                    DeliverPackageModel model = new DeliverPackageModel
                    {
                        ModelOrder = modelOrder,
                        UpdateTS   = true
                    };

                    // check if item exists in database and item has RECEIVED status
                    // if yes : process
                    // if no  : delete from local table
                    // check connection
                    try
                    {
                        // call api
                        var tempModel = _transactionService.CheckPackageOrder(model.ModelOrder.OrderNumber);

                        if (tempModel == null)
                        {
                            InvalidPackageCount++;
                            db.Delete(d);
                            continue;
                        }
                    }
                    catch (Exception ex)
                    {
                        //Android.Widget.Toast.MakeText(this, "Error!", Android.Widget.ToastLength.Short).Show();
                    }

                    var result = _transactionService.DeliverPackage(model);

                    if (result)
                    {
                        db.Delete(d);
                        TotalSendCount++;
                    }
                }
            }
            catch (Exception ex)
            {
            }
        }
Пример #6
0
        private void SendDeliverPending()
        {
            try
            {
                string dpPath = UserSession.DB_PATH;
                var    db     = new SQLiteConnection(dpPath);

                var data = db.Table <DeliverTable>(); //Call Table

                int TotalCount          = data.Count();
                var TotalSendCount      = 0;
                var InvalidPackageCount = 0;

                foreach (var d in data)
                {
                    ModelOrder modelOrder = new ModelOrder
                    {
                        GUID          = d.GUID,
                        OrderNumber   = d.OrderNumber,
                        PackageQty    = d.PackageQty,
                        DeliveredTo   = d.DeliveredTo,
                        DeliveredTS   = d.DeliveredTS,
                        Status        = d.Status,
                        DeliveredDate = d.DeliveredDate
                    };

                    DeliverPackageModel model = new DeliverPackageModel
                    {
                        ModelOrder = modelOrder,
                        UpdateTS   = true
                    };

                    if (GetConnectionStatus())
                    {
                        // check if item exists in database and item has RECEIVED status
                        // if yes : process
                        // if no  : delete from local table
                        // check connection
                        try
                        {
                            // call api
                            var tempModel = _transactionService.CheckPackageOrder(model.ModelOrder.OrderNumber);

                            if (tempModel == null)
                            {
                                InvalidPackageCount++;
                                db.Delete(d);
                                continue;
                            }
                        }
                        catch (Exception ex)
                        {
                            //Android.Widget.Toast.MakeText(this, "Error!", Android.Widget.ToastLength.Short).Show();
                        }

                        var result = _transactionService.DeliverPackage(model);

                        if (result)
                        {
                            db.Delete(d);
                            TotalSendCount++;
                        }
                    }
                }


                DeliverCount();

                if (TotalSendCount == 0 && InvalidPackageCount == 0)
                {
                    Android.Widget.Toast.MakeText(this, "No Packages were sent!", Android.Widget.ToastLength.Short).Show();
                    return;
                }

                if (InvalidPackageCount > 0)
                {
                    Android.Widget.Toast.MakeText(this, string.Format("{0} Invalid Package(s)!", InvalidPackageCount), Android.Widget.ToastLength.Short).Show();
                    return;
                }

                if (TotalCount == TotalSendCount)
                {
                    Android.Widget.Toast.MakeText(this, "Successful sending of all packages!", Android.Widget.ToastLength.Short).Show();
                }
                else if (TotalSendCount > 0)
                {
                    Android.Widget.Toast.MakeText(this, "Only " + TotalSendCount + " Package(s) were Successfully Sent!", Android.Widget.ToastLength.Short).Show();
                }
            }
            catch (Exception ex)
            {
                Android.Widget.Toast.MakeText(this, "Error !", Android.Widget.ToastLength.Short).Show();
                // throw;
            }
        }