/// <summary>
        /// Update docket item
        /// </summary>
        /// <param name="action">Action.</param>
        /// <param name="product">Product.</param>
        /// <param name="trailerStockRowGuid">Trailer stock row GUID.</param>
        void OnUpdateDocketItem(StockItemDialog.StockItemDialogAction action, Product product, string trailerStockRowGuid)
        {
            _stockItemDialog.Dismiss();

            if (action == StockItemDialog.StockItemDialogAction.Confirm)
            {
                DocketService.UpdateDocketItem(_repository, _docketItem, product);
                RefreshData();
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Starts the delivery.
        /// </summary>
        /// <param name="call">Call.</param>
        void StartDelivery(Call call)
        {
            // create and save the delivery docket
            var profile    = _repository.Profiles.First();
            var subscriber = _repository.Subscribers.Find(profile.SubscriberID);

            DocketService.CreateNewDocket(_repository, profile.CurrentRunNumber, call, subscriber);

            var fragment = DeliveryFragment.NewInstance();

            _fragmentActionListener.NavigateToFragment(fragment, DeliveryFragment.TAG);
        }
        /// <summary>
        /// Save the docket
        /// </summary>
        bool UpdateDocketDetails(bool confirm)
        {
            _confirm = confirm;

            // set the signature
            var customerName = _customerNameEditText.Text;

            // validate signature
            if (_signatureView.IsBlank)
            {
                var messageSignature = Resources.GetString(Resource.String.message_missing_signature);

                Activity.RunOnUiThread(() =>
                {
                    UserDialogs.Instance.Alert(messageSignature);
                });

                return(false);
            }

            byte[] signature;
            using (var stream = new MemoryStream())
            {
                var image = _signatureView.GetImage(true, true);

                image.Compress(Bitmap.CompressFormat.Png, 50, stream);
                signature = stream.ToArray();

                stream.Close();
                image.Dispose();
            }

            //var location = await GetLocation().ConfigureAwait(false);
            var longitude = _location?.Longitude;
            var latitude  = _location?.Latitude;

            // open a new realm since getlocation causes context switch
            _docketId = DocketService.CommitDocket(_repository, _docketId, signature, longitude,
                                                   latitude, customerName, confirm);

            // update the docket id
            var profile = _repository.Profiles.First();

            profile.CurrentDocketID = _docketId;
            _repository.SaveChanges();

            return(true);
        }
        /// <summary>
        /// Navigate to signature
        /// </summary>
        void NavigateToSignature()
        {
            var hasDocketItems = _repository.DeliveryDocketItems.Any(x => x.DeliveryDocketID == _deliveryDocket.DocketID && x.HasValue);

            if (!hasDocketItems)
            {
                var message = Resources.GetString(Resource.String.message_no_delivery_items);
                UserDialogs.Instance.Alert(message);
                return;
            }

            var poNumber = _orderRefEditText.Text;

            DocketService.SetDocketOrderReference(_repository, _deliveryDocket, poNumber);

            var fragment = SignatureFragment.NewInstance();

            _fragmentActionListener.NavigateToFragment(fragment, SignatureFragment.TAG);
        }