private void btnReglement_Click(object sender, EventArgs e)
        {
            if ((fact != null) ? fact.Id > 0 : false)
            {
                Form_Caisse_Reglement f = new Form_Caisse_Reglement(this);
                f.ShowDialog();

                if (fact.MontantReste > 0)
                {
                    double montant = Convert.ToDouble(SommeVersee.Text);
                    if (montant > 0)
                    {
                        if (fact.Mensualites.Count > 0)
                        {
                            foreach (Mensualite m in fact.Mensualites)
                            {
                                if (montant > 0)
                                {
                                    if (m.MontantReste > 0)
                                    {
                                        PieceCaisse p = RecopieViewReglement(m, ((montant - m.MontantReste < 0) ? (m.MontantReste - montant) : m.MontantReste));
                                        PieceCaisse p_ = new BLL.PieceCaisseBll(p).Insert();
                                        if ((p_ != null) ? p_.Id > 0 : false)
                                        {
                                            montant = (montant - p.Montant < 0) ? montant - p.Montant : 0;
                                            p.Id = p_.Id;
                                            p.Update = true;
                                            m.Reglements.Add(p);
                                            m.MontantReste -= p.Montant;
                                            fact.Mensualites.Add(m);
                                            fact.MontantAvance += p.Montant;

                                            AddRowReglement(p);
                                        }
                                    }
                                }

                            }
                        }
                        else
                        {
                            Mensualite m = RecopieViewMensualite(montant);
                            Mensualite m_ = new BLL.MensualiteBll(m).Insert();
                            if ((m_ != null) ? m_.Id > 0 : false)
                            {
                                m.Id = m_.Id;
                                m.Update = true;
                                PieceCaisse p = RecopieViewReglement(m, m.Montant);
                                PieceCaisse p_ = new BLL.PieceCaisseBll(p).Insert();
                                if ((p_ != null) ? p_.Id > 0 : false)
                                {
                                    p.Id = p_.Id;
                                    p.Update = true;
                                    m.Reglements.Add(p);
                                    m.MontantReste -= p.Montant;
                                    fact.Mensualites.Add(m);
                                    fact.MontantAvance += p.Montant;

                                    AddRowReglement(p);
                                }
                            }
                        }

                        String etat = Constantes.ETAT_EN_COURS;
                        if (Convert.ToDouble(SommeVersee.Text) >= fact.MontantTTC)
                        {
                            etat = Constantes.ETAT_REGLE;
                        }
                        if (BLL.FactureBll.ChangeEtat(fact.Id, etat))
                        {
                            fact.MontantReste = (fact.MontantTTC - Convert.ToDouble(SommeVersee.Text) < 0) ? fact.MontantTTC - Convert.ToDouble(SommeVersee.Text) : 0;
                            DeleteCurrentFacture(fact);
                            fact.Statut = etat;
                            AddCurrentFacture(fact);
                        }
                        Messages.Succes();
                    }
                    else
                    {
                        Messages.ShowErreur("Vous devez entrer le montant!");
                    }
                }
                else
                {
                    Messages.ShowErreur("cette facture a deja été réglée!");
                }
            }
            else
            {
                Messages.ShowErreur("Vous devez selectionner une facture!");
            }
        }
 private void Regler(object sender, EventArgs e)
 {
     Form_Caisse_Reglement f = new Form_Caisse_Reglement(this);
     f.ShowDialog();
     if ((fact != null) ? fact.Id > 0 : false)
     {
         if (fact.MontantReste > 0)
         {
             if (Convert.ToDouble(SommeVersee.Text) > 0)
             {
                 Mensualite m = new Mensualite();
                 if (fact.Mensualites.Count > 0)
                 {
                     foreach (Mensualite m_ in fact.Mensualites)
                     {
                         if (m_.MontantReste > 0)
                         {
                             m = m_;
                             break;
                         }
                     }
                 }
                 if (m.Id > 0)
                 {
                     createReglementByEcheance(fact.MontantAvance);
                 }
                 else
                 {
                     m = RecopieViewMensualite(fact.MontantAvance);
                     Mensualite m_ = new BLL.MensualiteBll(m).Insert();
                     if ((m_ != null) ? m_.Id > 0 : false)
                     {
                         m.Id = m_.Id;
                         m.Update = true;
                         PieceCaisse p = RecopieViewReglement(m, m.Montant);
                         PieceCaisse p_ = new BLL.PieceCaisseBll(p).Insert();
                         if ((p_ != null) ? p_.Id > 0 : false)
                         {
                             p.Id = p_.Id;
                             p.Update = true;
                             m.Reglements.Add(p);
                             fact.Mensualites.Add(m);
                             AddRowReglement(p);
                             Messages.Succes();
                         }
                     }
                 }
             }
             else
             {
                 Messages.ShowErreur("Vous devez entrer le montant!");
             }
         }
         else
         {
             Messages.ShowErreur("cette facture a deja été réglée!");
         }
     }
     else
     {
         Messages.ShowErreur("Vous devez selectionner une facture!");
     }
 }