Beispiel #1
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState, Resource.Layout.frmPickingList);

            translateScreen();

            CsDetailsActivity.typeCS = TYPE_CS.COMMANDE;

            CR_ResultActionOfListOfSaleWS result = OperationsWebService.getListPickingSale(Configuration.securityToken, (int)Configuration.currentLanguage, Configuration.userInfos.warehouseNRI);

            List <SaleWS> picking = result.ReturnValue.OfType <SaleWS>().ToList();

            ListView list = FindViewById <ListView>(Resource.Id.lvPicking);

            var adapter = new PickingCustomAdapter(this, picking);

            list.Adapter = adapter;

            // Action clic sur ajouter pour accèder à la liste de produit d'une reception
            FindViewById <Button>(Resource.Id.imNewSale).Click += async(sender, e) => {
                IsBusy = true;
                await Task.Delay(50);

                StartActivity(new Intent(this, typeof(NewSaleActivity)));
                IsBusy = false;
            };

            list.ItemClick += (parent, args) =>
            {
                data = picking[args.Position];
                StartActivity(new Intent(this, typeof(PickingDetailsActivity)));
            };
        }
Beispiel #2
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState, Resource.Layout.frmProductDetails);

            translateScreen();

            List <ProductDetailsWS> listProduct = null;

            if (CsDetailsActivity.typeCS == TYPE_CS.RECEPTION)
            {
                // Récupération de la réception sélectionnée
                Console.Write("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n lalilal \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ");
                ReceptionWS reception = (ReceptionWS)ReceivingDetailsActivity.data;
                Console.Write("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n lolilol \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ");
                // Récupération de la liste de produit selon une reception grâce au web service Operations
                listProduct = OperationsWebService.getReceptionProductDetails(Configuration.securityToken, reception.ReceptionNRI, (int)Configuration.currentLanguage, Configuration.userInfos.Udp_NRI, Configuration.userInfos.Udp_Label).OfType <ProductDetailsWS>().ToList();
            }
            else if (CsDetailsActivity.typeCS == TYPE_CS.COMMANDE)
            {
                // Récupération de la réception sélectionnée
                SaleWS sale = (SaleWS)PickingListActivity.data;
                // Récupération de la liste de produit selon une reception grâce au web service Operations
                listProduct = OperationsWebService.getSaleProductDetails(Configuration.securityToken, sale.saleNRI, (int)Configuration.currentLanguage, Configuration.userInfos.Udp_NRI).OfType <ProductDetailsWS>().ToList();
            }

            // Configuration de la ListView et de son Adapter par rapport à une liste de produit
            ListView list    = FindViewById <ListView>(Resource.Id.lvDetailsProduct);
            var      adapter = new ProductCustomAdapter(this, listProduct);

            list.Adapter = adapter;

            // Action clic bouton pour sélectionner un produit
            list.ItemClick += (parent, args) =>
            {
                // Sauvegarde du produit sélectionné
                data = listProduct[args.Position];
                StartActivity(new Intent(this, typeof(CsDetailsActivity)));
            };

            // Si pas de liste de produit alors on previent l'utilisateur avec un msg
            if (listProduct.Count == 0)
            {
                switch (Configuration.currentLanguage)
                {
                case CR_TTLangue.French_Canada:
                {
                    Toast.MakeText(this, "Pas de produit", ToastLength.Long).Show();

                    break;
                }

                case CR_TTLangue.English:
                {
                    Toast.MakeText(this, "No product", ToastLength.Long).Show();
                    break;
                }
                }
            }
        }
Beispiel #3
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState, Resource.Layout.frmRelocation);

            translateScreen();

            clearTextOnClick(FindViewById <ImageButton>(Resource.Id.imClear), FindViewById <EditText>(Resource.Id.tfLicenseRelocation));
            clearTextOnClick(FindViewById <ImageButton>(Resource.Id.imClear2), FindViewById <EditText>(Resource.Id.tfDestination));

            // Action clic sur confirmer pour mettre licence dans une nouvelle destination
            FindViewById <Button>(Resource.Id.btnConfirm).Click += async(sender, e) => {
                var licence     = FindViewById <TextView>(Resource.Id.tfLicenseRelocation).Text;
                var destination = FindViewById <TextView>(Resource.Id.tfDestination).Text;
                IsBusy = true;
                await Task.Delay(50);

                // Si il y a eu une erreur lors du transfère alors on affiche un message pour prévenir de l'erreur
                if (!(OperationsWebService.relocateLicense(Configuration.securityToken, licence, destination, RELOCATION_DESTINATION.Location, Configuration.userInfos.warehouseNRI)))
                {
                    switch (Configuration.currentLanguage)
                    {
                    case CR_TTLangue.French_Canada:
                    {
                        Toast.MakeText(this, "Erreur, veuillez vérifier le numéro de licence et de destination", ToastLength.Short).Show();
                        break;
                    }

                    case CR_TTLangue.English:
                    {
                        Toast.MakeText(this, "Error, please check the license and pallet destination", ToastLength.Short).Show();
                        break;
                    }
                    }

                    IsBusy = false;
                }
                // Sinon on affiche la transaction de la licence
                else
                {
                    switch (Configuration.currentLanguage)
                    {
                    case CR_TTLangue.French_Canada:
                    {
                        Toast.MakeText(this, "La licence :" + licence + " est dans " + destination, ToastLength.Long).Show();
                        break;
                    }

                    case CR_TTLangue.English:
                    {
                        Toast.MakeText(this, "The license :" + licence + " is now in" + destination, ToastLength.Long).Show();
                        break;
                    }
                    }
                    IsBusy = false;
                    Finish();
                }
            };
        }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState, Resource.Layout.frmReceiving);

            translateScreen();

            CsDetailsActivity.typeCS = TYPE_CS.RECEPTION;

            // Récupération de la liste de réception selon l'utilisateur
            List <ReceptionWS> receptions = OperationsWebService.getListReceptions(Configuration.securityToken);

            // Configuration de la ListView et de son Adapter par rapport à une liste de réception
            ListView list = FindViewById <ListView>(Resource.Id.lvReceiving);

            var adapter = new ReceivingCustomAdapter(this, receptions);

            list.Adapter = adapter;

            list.ItemClick += async(parent, args) =>
            {
                // Sauvegarde de la réception choisie
                data   = receptions[args.Position];
                IsBusy = true;
                await Task.Delay(50);

                StartActivity(new Intent(this, typeof(ReceivingDetailsActivity)));
                IsBusy = false;
            };

            // Si pas de reception alors message pour prévenir l'utilisateur
            if (receptions.Count == 0)
            {
                switch (Configuration.currentLanguage)
                {
                case CR_TTLangue.French_Canada:
                {
                    Toast.MakeText(this, "Pas de réception", ToastLength.Long).Show();

                    break;
                }

                case CR_TTLangue.English:
                {
                    Toast.MakeText(this, "No reception", ToastLength.Long).Show();
                    break;
                }
                }
            }
        }
Beispiel #5
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState, Resource.Layout.frmNewLicense);

            translateScreen();

            mustRefresh = false;

            licence = ReceivingDetailsActivity.licence;
            var tfWeight = FindViewById <EditText>(Resource.Id.tfWeight);



            // Récupération de la réception sélectionnée
            ReceptionWS reception = (ReceptionWS)ReceivingDetailsActivity.data;

            // Récupération de la liste de produit selon une reception grâce au web service Operations
            List <ProductDetailsWS> listProduct = OperationsWebService.getReceptionProductDetails(Configuration.securityToken, reception.ReceptionNRI, (int)Configuration.currentLanguage, Configuration.userInfos.NRI, Configuration.userInfos.Udp_Label).OfType <ProductDetailsWS>().ToList();

            // Creation liste de nom produit pour le spinner
            List <string> typeProd = new List <string>();

            foreach (ProductDetailsWS p in listProduct)
            {
                if (!(typeProd.Contains(p.code.ToString())))
                {
                    typeProd.Add(p.code.ToString());
                }
            }

            // Configuration du Spinner et de son Adapter par rapport à une liste de produit
            spinner = FindViewById <Spinner>(Resource.Id.spnProduct);
            var adapter = new ArrayAdapter <string>(this, Android.Resource.Layout.SimpleSpinnerItem, typeProd);

            spinner.Adapter = adapter;

            dateSelect        = FindViewById <TextView>(Resource.Id.tvDate);
            dateSelect.Click += (sender, e) =>
            {
                DatePickerFragment frag = DatePickerFragment.NewInstance(delegate(DateTime time)
                {
                    date            = new DateTime();
                    date            = time;
                    dateSelect.Text = time.ToLongDateString();
                    Console.Write(time.ToLongDateString());
                });
                Console.Write(dateSelect.Text);
                frag.Show(FragmentManager, DatePickerFragment.TAG);
            };

            spinner.ItemSelected += (parent, args) =>
            {
                // Sauvegarde de la réception choisie
                licence.productNRI  = listProduct[args.Position].NRI;
                licence.productSSCC = listProduct[args.Position].SSCC[0];
                if (listProduct[args.Position].isFixedWeight)
                {
                    tfWeight.Text = listProduct[args.Position].defaultProductWeight.ToString();
                }
            };

            FindViewById <Button>(Resource.Id.btnConfirm).Click += async(sender, e) => {
                bool   sucess = true;
                string msg    = "";
                switch (Configuration.currentLanguage)
                {
                case CR_TTLangue.French_Canada:
                {
                    msg = "Veuillez renseigner les champs :  ";

                    break;
                }

                case CR_TTLangue.English:
                {
                    msg = "Please fill in the fields:  ";
                    break;
                }
                }

                if (date != null)
                {
                    licence.expirationDate = date;
                    licence.packingDate    = date;
                    licence.saleDate       = date;
                    licence.productionDate = date;
                }
                else
                {
                    msg   += "date, ";
                    sucess = false;
                }

                if (licence.productNRI == 0)
                {
                    switch (Configuration.currentLanguage)
                    {
                    case CR_TTLangue.French_Canada:
                    {
                        msg += "produit, ";

                        break;
                    }

                    case CR_TTLangue.English:
                    {
                        msg += "product, ";
                        break;
                    }
                    }

                    sucess = false;
                }

                if (tfWeight.Text != "")
                {
                    licence.weightKG = decimal.Parse(tfWeight.Text);
                    licence.weightLb = decimal.Parse(tfWeight.Text);
                }
                else
                {
                    switch (Configuration.currentLanguage)
                    {
                    case CR_TTLangue.French_Canada:
                    {
                        msg += "poids, ";

                        break;
                    }

                    case CR_TTLangue.English:
                    {
                        msg += "weight, ";
                        break;
                    }
                    }
                    sucess = false;
                }


                if (sucess == true)
                {
                    IsBusy = true;
                    await Task.Delay(50);

                    var produit = OperationsWebService.pickLicenseReception(Configuration.securityToken, licence, (int)Configuration.currentLanguage, Configuration.userInfos.Udp_NRI, Configuration.userInfos.Udp_Label);
                    if (produit == null)
                    {
                        Toast.MakeText(this, OperationsWebService.errorMessage, ToastLength.Long).Show();
                    }
                    else
                    {
                        if (ReceivingDetailsActivity.licences == null)
                        {
                            ReceivingDetailsActivity.licences = new List <LicenseWS>();
                        }
                        ReceivingDetailsActivity.licences.Add(licence);
                    }

                    IsBusy      = false;
                    mustRefresh = true;
                    Finish();
                }
                else
                {
                    msg.Remove(msg.Length - 2, 2);
                    Toast.MakeText(this, msg, ToastLength.Long).Show();
                }
            };
        }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState, Resource.Layout.frmNewSale);

            translateScreen();

            mustRefresh = false;

            spinnerClient    = FindViewById <Spinner>(Resource.Id.spnClient);
            spinnerRecipient = FindViewById <Spinner>(Resource.Id.spnRecipient);
            spinnerOwner     = FindViewById <Spinner>(Resource.Id.spnOwner);

            var po = FindViewById <EditText>(Resource.Id.tfPO);

            SaleObjectWS sale = new SaleObjectWS();

            // Creation des listes
            List <string> listClient    = new List <string>();
            List <string> listRecipient = new List <string>();
            List <string> listOwner     = new List <string>();

            var dictionaryClient       = initSpinner(COMPANY_TYPE.CLIENT, spinnerClient, listClient);
            var dictionaryDestinataire = initSpinner(COMPANY_TYPE.DESTINATAIRE, spinnerRecipient, listRecipient);
            var dictionaryProprietaire = initSpinner(COMPANY_TYPE.ANY, spinnerOwner, listOwner);

            spinnerClient.ItemSelected += (parent, args) =>
            {
                sale.CustomerNRI = dictionaryClient.FirstOrDefault(x => x.Value == listClient[args.Position]).Key;
            };

            spinnerRecipient.ItemSelected += (parent, args) =>
            {
                sale.RecipientNRI = dictionaryDestinataire.FirstOrDefault(x => x.Value == listRecipient[args.Position]).Key;
            };

            spinnerOwner.ItemSelected += (parent, args) =>
            {
                sale.OwnerNRI = dictionaryProprietaire.FirstOrDefault(x => x.Value == listOwner[args.Position]).Key;
            };

            dateSelect        = FindViewById <TextView>(Resource.Id.tvDate);
            dateSelect.Click += (sender, e) =>
            {
                DatePickerFragment frag = DatePickerFragment.NewInstance(delegate(DateTime time)
                {
                    date            = new DateTime();
                    date            = time;
                    dateSelect.Text = time.ToLongDateString();
                    Console.Write(time.ToLongDateString());
                });
                Console.Write(dateSelect.Text);
                frag.Show(FragmentManager, DatePickerFragment.TAG);
            };


            FindViewById <Button>(Resource.Id.btnConfirm).Click += async(sender, e) =>
            {
                bool   sucess = true;
                string msg    = "";
                switch (Configuration.currentLanguage)
                {
                case CR_TTLangue.French_Canada:
                {
                    msg = "Veuillez renseigner les champs :  ";

                    break;
                }

                case CR_TTLangue.English:
                {
                    msg = "Please fill in the fields:  ";
                    break;
                }
                }
                sale.CreatorNRI   = Configuration.userInfos.NRI;
                sale.WarehouseNRI = Configuration.userInfos.warehouseNRI;

                if (date != null)
                {
                    sale.DateCreated  = DateTime.Today;
                    sale.DateExpected = date;
                }
                else
                {
                    msg   += "date, ";
                    sucess = false;
                }

                if (po != null)
                {
                    sale.POCode = po.Text;
                }
                else
                {
                    msg   += "PO, ";
                    sucess = false;
                }

                if (sucess == true)
                {
                    IsBusy = true;
                    await Task.Delay(50);

                    if (OperationsWebService.createSale(Configuration.securityToken, sale))
                    {
                        switch (Configuration.currentLanguage)
                        {
                        case CR_TTLangue.French_Canada:
                        {
                            Toast.MakeText(this, "Commande créée", ToastLength.Long).Show();

                            break;
                        }

                        case CR_TTLangue.English:
                        {
                            Toast.MakeText(this, "Order created", ToastLength.Long).Show();
                            break;
                        }
                        }
                    }
                    else
                    {
                        Toast.MakeText(this, OperationsWebService.errorMessage, ToastLength.Long).Show();
                    }

                    IsBusy      = false;
                    mustRefresh = true;
                    Finish();
                }
                else
                {
                    msg.Remove(msg.Length - 2, 2);
                    Toast.MakeText(this, msg, ToastLength.Long).Show();
                }

                IsBusy = false;
            };
        }
Beispiel #7
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState, Resource.Layout.frmReceivingDetails);

            translateScreen();

            // Récupération de la réception
            ReceptionWS reception = (ReceptionWS)ReceivingActivity.data;

            // Action clic pour clear le EditText
            clearTextOnClick(FindViewById <ImageButton>(Resource.Id.imClear), FindViewById <EditText>(Resource.Id.tfLicenseReceivingDetails));

            // Remplir champs de données par rapport à la réception
            FindViewById <TextView>(Resource.Id.tvNumRecieving).Text = reception.ReceptionNRI.ToString();
            FindViewById <TextView>(Resource.Id.tvnameProvider).Text = reception.SupplierCode;

            // Affichage de la dernière licence créer, si pas de licence alors on n'affiche rien
            if (licence != null)
            {
                if (licence.productNRI != 0)
                {
                    // Creation liste de nom produit
                    List <ProductDetailsWS> listProduct = OperationsWebService.getReceptionProductDetails(Configuration.securityToken, reception.ReceptionNRI, (int)Configuration.currentLanguage, Configuration.userInfos.NRI, null).OfType <ProductDetailsWS>().ToList();

                    // On parcourt la liste de produit pour trouver le produit qui correspond à la licence
                    foreach (ProductDetailsWS p in listProduct)
                    {
                        // Puis on affichage les information dans les TextView
                        if (licence.productNRI == p.NRI)
                        {
                            FindViewById <TextView>(Resource.Id.tvNameProduct).Text = p.code;
                            FindViewById <TextView>(Resource.Id.tvAmountQte).Text   = p.qtyPicked.ToString() + "/" + p.qtyToPick.ToString();
                            FindViewById <TextView>(Resource.Id.tvAmountPoids).Text = licence.weightKG.ToString() + " kg";
                        }
                    }
                }
            }

            // Action touche "Enter" pour accèder à la création d'une nouvelle licence
            EditText urlEditText = FindViewById <EditText>(Resource.Id.tfLicenseReceivingDetails);

            urlEditText.KeyPress += (object sender, View.KeyEventArgs e) => {
                e.Handled = false;
                CodeParser parser = new CodeParser();

                if (e.Event.Action == KeyEventActions.Down && e.KeyCode == Keycode.Enter)
                {
                    if (urlEditText.Text.ToString() != "")
                    {
                        urlEditText.Text.Replace(" ", "");
                        licence = new LicenseWS();

                        ParsedLicence parsedLicence = parser.getLicense(urlEditText.Text);
                        licence = Converts.ParsedLicToLicenceWS(parsedLicence);

                        if (licence.licenseCode == null)
                        {
                            licence.licenseCode = urlEditText.Text;
                            licence.parentNRI   = reception.ReceptionNRI;
                            data = reception;
                            StartActivity(new Intent(this, typeof(NewLicenseActivity)));
                        }
                        else
                        {
                            licence.parentNRI = reception.ReceptionNRI;
                            // Creation liste de nom produit
                            List <ProductDetailsWS> listProduct = OperationsWebService.getReceptionProductDetails(Configuration.securityToken, reception.ReceptionNRI, (int)Configuration.currentLanguage, Configuration.userInfos.Udp_NRI, Configuration.userInfos.Udp_Label).OfType <ProductDetailsWS>().ToList();


                            foreach (ProductDetailsWS pro in listProduct)
                            {
                                if (pro.SSCC.Contains(licence.productSSCC))
                                {
                                    licence.productNRI = pro.NRI;
                                }
                            }

                            if (licence.productNRI != 0)
                            {
                                data = reception;
                                var produit = OperationsWebService.pickLicenseReception(Configuration.securityToken, licence, (int)Configuration.currentLanguage, Configuration.userInfos.Udp_NRI, Configuration.userInfos.Udp_Label);
                                if (produit == null)
                                {
                                    Toast.MakeText(this, OperationsWebService.errorMessage, ToastLength.Long).Show();
                                    Recreate();
                                }
                                else
                                {
                                    Recreate();
                                }
                            }
                            else
                            {
                                if (Configuration.currentLanguage == CR_TTLangue.French_Canada)
                                {
                                    Toast.MakeText(this, Activities.ResourceFR.errProductNotPresent, ToastLength.Long).Show();
                                }
                                else
                                {
                                    Toast.MakeText(this, Activities.ResourceEN.errProductNotPresent, ToastLength.Long).Show();
                                }
                            }
                        }

                        e.Handled = true;
                    }
                    else
                    {
                        urlEditText.Text = "";
                        switch (Configuration.currentLanguage)
                        {
                        case  CR_TTLangue.French_Canada:
                            Toast.MakeText(this, Activities.ResourceFR.errEmptyFieldLicense, ToastLength.Long).Show();
                            break;

                        case  CR_TTLangue.English:
                            Toast.MakeText(this, Activities.ResourceFR.errEmptyFieldLicense, ToastLength.Long).Show();
                            break;
                        }
                    }
                }
            };

            // Action clic sur détails pour accèder à la liste de produit d'une reception
            FindViewById <ImageButton>(Resource.Id.imDetails).Click += async(sender, e) => {
                data   = reception;
                IsBusy = true;
                await Task.Delay(50);

                StartActivity(new Intent(this, typeof(ProductDetailsActivity)));
                IsBusy = false;
            };

            // Ne peut pas fonctionner, il faudrait ajouter une méthode dans les web services afin d'ajouter des licences sur une palette.

            /*// Action clic sur palette pour mettre toutes les licences crées sur la palette
             * FindViewById<Button>(Resource.Id.btnPalette).Click += async (sender, e) => {
             *  if (licences != null)
             *  {
             *
             *      IsBusy = true;
             *      await Task.Delay(50);
             *      var test1 = "1302";
             *      var test2 = "111";
             *      var codePalette = OperationsWebService.createPalletCode(Configuration.securityToken, ref test1, ref test2);
             *      string msg = "Licence non transférée : ";
             *      bool isSucess = true;
             *      licences.Remove(licence);
             *
             *      foreach (LicenseWS lic in licences)
             *      {
             *          if (!(OperationsWebService.relocateLicense(Configuration.securityToken, lic.licenseCode, codePalette, RELOCATION_DESTINATION.Pallet, Configuration.userInfos.warehouseNRI)))
             *          {
             *              isSucess = false;
             *              msg += lic.licenseCode + ", ";
             *          }
             *      }
             *      IsBusy = false;
             *      if (isSucess)
             *      {
             *          Toast.MakeText(this, "Les licences ont été transférées", ToastLength.Long).Show();
             *
             *      }
             *      else
             *      {
             *          Toast.MakeText(this, msg, ToastLength.Long).Show();
             *
             *      }
             *      Recreate();
             *  }
             *  else
             *  {
             *      Toast.MakeText(this, "Veuillez insérer des licences", ToastLength.Long).Show();
             *  }
             * };*/

            // Action clic sur bouton pour completer une reception
            FindViewById <Button>(Resource.Id.btnEndReceiving).Click += async(sender, e) => {
                IsBusy = true;
                await Task.Delay(50);

                OperationsWebService.completeReception(Configuration.securityToken, reception.ReceptionNRI);
                IsBusy      = false;
                mustRefresh = true;

                Finish();
            };
        }
Beispiel #8
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState, Resource.Layout.frmPickingDetails);

            translateScreen();

            clearTextOnClick(FindViewById <ImageButton>(Resource.Id.imClear), FindViewById <EditText>(Resource.Id.tfLicensePickingDetails));

            SaleWS sale = (SaleWS)PickingListActivity.data;


            // Remplir champs de données par rapport à la réception
            FindViewById <TextView>(Resource.Id.tvNumPicking).Text = sale.saleNRI.ToString();
            FindViewById <TextView>(Resource.Id.tvnameClient).Text = sale.customerCode;

            // Action clic sur détails pour accèder à la liste de produit d'une reception
            FindViewById <ImageButton>(Resource.Id.imDetails).Click += async(sender, e) => {
                data   = sale;
                IsBusy = true;
                await Task.Delay(50);

                StartActivity(new Intent(this, typeof(ProductDetailsActivity)));
                IsBusy = false;
            };

            // Action clic sur bouton pour completer une reception
            FindViewById <Button>(Resource.Id.btnEndPicking).Click += async(sender, e) => {
                IsBusy = true;
                await Task.Delay(50);

                OperationsWebService.completeSale(Configuration.securityToken, sale.saleNRI);
                IsBusy      = false;
                mustRefresh = true;
                Finish();
            };

            // Affichage de la dernière licence créer, si pas de licence alors on n'affiche rien
            if (licence != null)
            {
                // Creation liste de nom produit
                List <ProductDetailsWS> listProduct = OperationsWebService.getSaleProductDetails(Configuration.securityToken, sale.saleNRI, (int)Configuration.currentLanguage, Configuration.userInfos.Udp_NRI).OfType <ProductDetailsWS>().ToList();

                foreach (ProductDetailsWS p in listProduct)
                {
                    // On parcourt la liste de produit pour trouver le produit qui correspond à la licence
                    foreach (PickedLicensesWS l in p.pickedProducts)
                    {
                        // Puis on affichage les information dans les TextView
                        if (licence.licenseCode == l.code)
                        {
                            FindViewById <TextView>(Resource.Id.tvNameProduct).Text = p.code;
                            FindViewById <TextView>(Resource.Id.tvAmountQte).Text   = p.qtyPicked.ToString();
                            FindViewById <TextView>(Resource.Id.tvAmountPoids).Text = l.weight.ToString() + " kg";
                        }
                    }
                }
            }

            EditText editText = FindViewById <EditText>(Resource.Id.tfLicensePickingDetails);

            editText.KeyPress += (object sender, View.KeyEventArgs e) => {
                e.Handled = false;

                CodeParser parser = new CodeParser();


                if (e.Event.Action == KeyEventActions.Down && e.KeyCode == Keycode.Enter)
                {
                    if (editText.Text.ToString() != "")
                    {
                        editText.Text.Replace(" ", "");
                        licence = new LicenseWS();

                        ParsedLicence parsedLicence = parser.getLicense(editText.Text);
                        licence = Converts.ParsedLicToLicenceWS(parsedLicence);

                        if (licence.licenseCode == null)
                        {
                            licence.licenseCode = editText.Text;
                        }

                        licence.parentNRI = sale.saleNRI;

                        var productResult = OperationsWebService.PickLicenseSale(Configuration.securityToken, licence, Configuration.userInfos.warehouseNRI, Configuration.userInfos.warehouseNRI, Configuration.userInfos.Udp_NRI);
                        if (productResult == null)
                        {
                            Toast.MakeText(this, OperationsWebService.errorMessage, ToastLength.Long).Show();
                            OperationsWebService.errorMessage = "";
                        }
                        else
                        {
                            switch (Configuration.currentLanguage)
                            {
                            case CR_TTLangue.French_Canada:
                            {
                                Toast.MakeText(this, "Licence ajoutée", ToastLength.Long).Show();

                                break;
                            }

                            case CR_TTLangue.English:
                            {
                                Toast.MakeText(this, "License added", ToastLength.Long).Show();
                                break;
                            }
                            }
                        }
                        data = sale;

                        Recreate();
                        e.Handled = true;
                    }
                    else
                    {
                        editText.Text = "";
                        switch (Configuration.currentLanguage)
                        {
                        case CR_TTLangue.French_Canada:
                        {
                            Toast.MakeText(this, Activities.ResourceFR.errEmptyFieldLicense, ToastLength.Long).Show();

                            break;
                        }

                        case CR_TTLangue.English:
                        {
                            Toast.MakeText(this, Activities.ResourceEN.errEmptyFieldLicense, ToastLength.Long).Show();
                            break;
                        }
                        }
                    }
                }
            };
        }