private void DeleteButton_Click(object sender, RoutedEventArgs e)
        {
            var messageBox = new MessageBoxControl.MessageBoxChildWindow("Attention", "Êtes-vous sûr de vouloir supprimer la ligne?", MessageBoxControl.MessageBoxButtons.OkCancel, MessageBoxControl.MessageBoxIcon.Information);

            messageBox.OnMessageBoxClosed += (_, result) =>
            {
                if (messageBox.Result == MessageBoxResult.OK)
                {
                    CsLotComptClient redevenceSelectionne = (CsLotComptClient)dgListeAjustement.SelectedItem;


                    List <CsLotComptClient> AjustementRecuToDelete = new List <CsLotComptClient>();
                    AjustementRecuToDelete.Add(redevenceSelectionne);
                    Save(new List <CsLotComptClient>(), new List <CsLotComptClient>(), AjustementRecuToDelete);


                    ListeAjustement.Remove(redevenceSelectionne);

                    SessionObject.ListeAjustement = ListeAjustement.ToList();
                    LoadDatagrid();
                }
                else
                {
                    return;
                }
            };
            messageBox.Show();
        }
        void Updatefrm_CallBack(object sender, CustumEventArgs e)
        {
            List <CsLotComptClient> AjustementRecuToUpdate = new List <CsLotComptClient>();

            AjustementRecuToUpdate.Add((CsLotComptClient)e.Bag);
            Save(AjustementRecuToUpdate, new List <CsLotComptClient>(), new List <CsLotComptClient>());

            if (AjustementRecuToUpdate.Select(l => l.PK_ID).Contains(((CsLotComptClient)e.Bag).PK_ID))
            {
                //CsLotComptClient LotsScelleRecuToUpdate_ = AjustementRecuToUpdate.FirstOrDefault(l => l.PK_ID == ((CsLotComptClient)e.Bag).PK_ID);
                //int indexOfLotsScelleRecuToUpdate_ = AjustementRecuToUpdate.IndexOf(LotsScelleRecuToUpdate_);
                //AjustementRecuToUpdate[indexOfLotsScelleRecuToUpdate_] = (CsLotComptClient)e.Bag;

                CsLotComptClient LotsScelleRecuToUpdate = ListeAjustement.FirstOrDefault(l => l.PK_ID == ((CsLotComptClient)e.Bag).PK_ID);
                int indexOfLotsScelleRecuToUpdate       = ListeAjustement.IndexOf(LotsScelleRecuToUpdate);
                ListeAjustement[indexOfLotsScelleRecuToUpdate] = (CsLotComptClient)e.Bag;

                SessionObject.ListeAjustement = ListeAjustement.ToList();
                LoadDatagrid();
            }
            else
            {
                AjustementRecuToUpdate.Add((CsLotComptClient)e.Bag);
                Save(AjustementRecuToUpdate, new List <CsLotComptClient>(), new List <CsLotComptClient>());


                CsLotComptClient LotsScelleRecuToUpdate = ListeAjustement.FirstOrDefault(l => l.PK_ID == ((CsLotComptClient)e.Bag).PK_ID);
                int indexOfLotsScelleRecuToUpdate       = ListeAjustement.IndexOf(LotsScelleRecuToUpdate);
                ListeAjustement[indexOfLotsScelleRecuToUpdate] = (CsLotComptClient)e.Bag;

                SessionObject.ListeAjustement = ListeAjustement.ToList();
            }
        }
        public FrmSaisieAjustementValidation()
        {
            InitializeComponent();
            this.csLotComptClient          = new CsLotComptClient();
            this.csLotComptClient.DetaiLot = new List <CsDetailLot>();

            rb_Debit.IsChecked = true;
        }
        public void Save(List <CsLotComptClient> AjustementRecuToUpdate, List <CsLotComptClient> AjustementRecuToInserte, List <CsLotComptClient> AjustementRecuToDelete)
        {
            try
            {
                RecouvrementServiceClient service = new RecouvrementServiceClient(Utility.ProtocoleFacturation(), Utility.EndPoint("Recouvrement"));
                int handler = LoadingManager.BeginLoading("Mise à jour des données ...");
                service.SaveAjustementAsync(AjustementRecuToUpdate, AjustementRecuToInserte, AjustementRecuToDelete);
                service.SaveAjustementCompleted += (er, res) =>
                {
                    try
                    {
                        if (res.Error != null || res.Cancelled)
                        {
                            Message.Show("Erreur dans le traitement des méthodes de dectection : " + res.Error.InnerException.ToString(), "Erreur");
                        }
                        else
                        if (res.Result != null)
                        {
                            if (res.Result > 0)
                            {
                                CsLotComptClient Ajustement = ListeAjustement.FirstOrDefault(l => l.PK_ID == 0);
                                if (Ajustement != null)
                                {
                                    int index = ListeAjustement.IndexOf(Ajustement);
                                    Ajustement.PK_ID = res.Result;
                                    Ajustement.DetaiLot.ForEach(c => c.FK_IDLOTCOMPECLIENT = res.Result);

                                    ListeAjustement[index] = Ajustement;
                                }

                                LoadDatagrid();
                                LoadAllAjustement();
                            }
                            else
                            {
                                Message.Show("Sauvegarde non effectuée avec succès,il se peut que vos modifications n'aient pas été prises en compte",
                                             "Info");
                            }
                        }
                        else
                        {
                            Message.Show("Une erreur s'est produite, veuillez consulter le journal des erreurs",
                                         "Erreur");
                        }
                        LoadingManager.EndLoading(handler);
                    }
                    catch (Exception)
                    {
                        throw;
                    }
                };
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        void mnitem_Click(object sender, RoutedEventArgs e)
        {
            MenuItem mnitem = (MenuItem)sender;

            switch (mnitem.Header.ToString())
            {
            case "Créer":
                FrmSaisieAjustementValidation Newfrm = new FrmSaisieAjustementValidation();
                Newfrm.CallBack += Newfrm_CallBack;
                this.IsEnabled   = false;
                Newfrm.Show();
                break;

            case "Consultation":
                new FrmSaisieAjustementValidation((CsLotComptClient)dgListeAjustement.SelectedItem).Show();
                break;

            case "Modification":
                FrmSaisieAjustementValidation Updatefrm = new FrmSaisieAjustementValidation((CsLotComptClient)dgListeAjustement.SelectedItem, false);
                Updatefrm.CallBack += Updatefrm_CallBack;
                Updatefrm.Show();
                break;

            case "Supprimer":
                var messageBox = new MessageBoxControl.MessageBoxChildWindow("Attention", "Êtes-vous sûr de vouloir supprimer la ligne?", MessageBoxControl.MessageBoxButtons.OkCancel, MessageBoxControl.MessageBoxIcon.Information);
                messageBox.OnMessageBoxClosed += (_, result) =>
                {
                    if (messageBox.Result == MessageBoxResult.OK)
                    {
                        CsLotComptClient LotsScelleRecuToDelete = (CsLotComptClient)dgListeAjustement.SelectedItem;
                        LotsScelleRecuToDelete.STATUS = "0";
                        AjustementRecuToDelete.Add(LotsScelleRecuToDelete);
                        ListeAjustement.Remove(LotsScelleRecuToDelete);
                        Save(AjustementRecuToDelete, new List <CsLotComptClient>(), new List <CsLotComptClient>());
                        LoadDatagrid();
                    }
                    else
                    {
                        return;
                    }
                };
                messageBox.Show();
                break;

            default:
                break;
            }
        }
        public FrmSaisieAjustementValidation(CsLotComptClient csLotComptClient)
        {
            InitializeComponent();

            // TODO: Complete member initialization
            this.csLotComptClient    = csLotComptClient;
            this.ListFactureInitiale = csLotComptClient.DetaiLot;

            LayoutRoot.DataContext = this.csLotComptClient;
            this.p = true;
            txt_TotalFactureEnvoie_Copy1.IsReadOnly = true;
            txt_TotalFactureEnvoie.IsReadOnly       = true;
            rb_Credit.IsEnabled = false;
            rb_Debit.IsEnabled  = false;
            //Mise de la fenetre en lecture
            InitializeScreen(this.p.Value);
        }
        private void UpdateButton_Click(object sender, RoutedEventArgs e)
        {
            FrmSaisieAjustementValidation Updatefrm = new FrmSaisieAjustementValidation((CsLotComptClient)dgListeAjustement.SelectedItem, false);
            CsLotComptClient Ajustement             = ((CsLotComptClient)dgListeAjustement.SelectedItem);

            //On verifie que l'element actuelement selectionner a jamais été insérer en base en s'assurant que PK_ID est different de 0
            if (Ajustement.PK_ID != 0)
            {
                Updatefrm.CallBack += Updatefrm_CallBack;
            }
            else
            {
                //Sinon on la considere comme une nouvelle insertion
                Updatefrm.CallBack += Newfrm_CallBack;
                ListeAjustement.Remove(Ajustement);
                AjustementRecuToInserte.Remove(Ajustement);
            }
            Updatefrm.Closed += Updatefrm_Closed;
            this.IsEnabled    = false;
            Updatefrm.Show();
        }