Example #1
0
        public override bool Supprimer()
        {
            Global.BaseDonneesCABS.CommencerTransaction();

            if (!base.Supprimer() || FormulaireCourant == null || !FormulaireCourant.Supprimer())
            {
                Global.BaseDonneesCABS.AnnulerTransaction();
                return(false);
            }

            ConditionRequete condSup = new ConditionRequete(Operateur.EGAL, "perId", BeneficiaireCourant.GetChamp("perId").ValeurSQL);

            condSup.LierCondition(new ConditionRequete(Operateur.EGAL, "serId", (cmbService.SelectedItem as ComboBoxItem).Value.ToString()), true);

            RequeteSuppression reqSup = new RequeteSuppression(NomTable.inscriptionservice, condSup);

            if (Global.BaseDonneesCABS.EnvoyerRequeteSuppression(reqSup) < 0)
            {
                Global.BaseDonneesCABS.AnnulerTransaction();
                Journal.AfficherMessage("Une erreur est survenue lors de la désincription du service. L'action a été annulée", TypeMessage.ERREUR, true);
                return(false);
            }

            Global.BaseDonneesCABS.ConfirmerTransaction();
            return(true);
        }
Example #2
0
        public override bool Supprimer()
        {
            if (!base.Supprimer())
            {
                return(false);
            }

            if (!ValiderDonnees())
            {
                return(false);
            }

            if (!OutilsForms.PoserQuestion("Confirmation suppression", "Voulez-vous vraiment supprimer ces livraisons?"))
            {
                return(false);
            }

            List <DateTime> datesASupprimer = new List <DateTime>();

            foreach (DateTime date in GetDatesConsiderees())
            {
                if (GetIndexLivraisonExistante(date) >= 0)
                {
                    datesASupprimer.Add(date);
                }
            }

            ConditionRequete   cond = new ConditionRequete(Operateur.EGAL, BeneficiaireCourant.GetChamp("perId"));
            RequeteSuppression reqSup;
            bool erreurAffichee = false;

            foreach (DateTime date in datesASupprimer)
            {
                Champ champDate = new Champ("livraisonpopoteroulante", "lprDate", date);

                ConditionRequete copieCond = new ConditionRequete(cond);
                copieCond.LierCondition(new ConditionRequete(Operateur.EGAL, champDate), true);

                reqSup = new RequeteSuppression(NomTable.livraisonpopoteroulante, copieCond);

                if (Global.BaseDonneesCABS.EnvoyerRequeteSuppression(reqSup) < 0 && !erreurAffichee)
                {
                    Journal.AfficherMessage("Une erreur est survenue lors de la suppression d'une ou plusieurs livraisons.", TypeMessage.ERREUR, true);
                    erreurAffichee = true;
                }
                else
                {
                    int indexLivraisonASupprimer = GetIndexLivraisonExistante(date);

                    if (indexLivraisonASupprimer >= 0)
                    {
                        Livraisons.Lignes.RemoveAt(indexLivraisonASupprimer);
                    }

                    SupprimerLivraisonCalendrier(date);
                }
            }

            return(true);
        }
Example #3
0
        private void btnSupprimer_Click(object sender, EventArgs e)
        {
            TreeNode noeudRoute = tvRoutesBeneficiaires.SelectedNode;

            if (noeudRoute == null)
            {
                Journal.EcrireMessage("frmGestionRoutes : Bouton Supprimer enabled sans devoir l'être");
                btnSupprimer.Enabled = false;
                return;
            }

            if (!OutilsForms.PoserQuestion("Confirmation suppression", "Voulez-vous vraiment supprimer cette route? Cette action va retirer tous les bénéficiaires associer à celle-ci."))
            {
                return;
            }

            ConditionRequete   cond   = new ConditionRequete(Operateur.EGAL, "rprId", noeudRoute.Tag.ToString());
            RequeteSuppression reqSup = new RequeteSuppression(NomTable.routepopoteroulante, cond);

            if (Global.BaseDonneesCABS.EnvoyerRequeteSuppression(reqSup) < 0)
            {
                Journal.AfficherMessage("Une erreur est survenue lors de la suppression d'une route. L'action a été annulée.", TypeMessage.ERREUR, true);
                return;
            }

            foreach (TreeNode noeudBeneficiaire in noeudRoute.Nodes)
            {
                lbBeneficiaires.Items.Add(new ComboBoxItem(noeudBeneficiaire.Text, noeudBeneficiaire.Tag));
            }

            tvRoutesBeneficiaires.Nodes.Remove(noeudRoute);
            tvRoutesBeneficiaires_AfterSelect(tvRoutesBeneficiaires, new TreeViewEventArgs(null));
        }
Example #4
0
        private void btnRetirer_Click(object sender, EventArgs e)
        {
            TreeNode noeudBeneficiaire = tvRoutesBeneficiaires.SelectedNode;
            TreeNode noeudRoute        = noeudBeneficiaire.Parent;

            if (noeudBeneficiaire == null || noeudRoute == null)
            {
                Journal.EcrireMessage("frmGestionRoutes : Bouton Retirer enabled sans devoir l'être");
                return;
            }

            LigneTable beneficiaire = noeudBeneficiaire.Tag is LigneTable ? (LigneTable)noeudBeneficiaire.Tag : new LigneTable("beneficiaire");

            ConditionRequete cond = new ConditionRequete(Operateur.EGAL, "perId", beneficiaire.GetChamp("perId").ValeurSQL);

            cond.LierCondition(new ConditionRequete(Operateur.EGAL, "rprId", noeudRoute.Tag.ToString()), true);

            RequeteSuppression reqSup = new RequeteSuppression(NomTable.beneficiaireroutepopoteroulante, cond);

            if (Global.BaseDonneesCABS.EnvoyerRequeteSuppression(reqSup) < 0)
            {
                Journal.AfficherMessage("Une erreur est survenue lors du retirement du bénéficiaire de la route. L'action a été annulée.", TypeMessage.ERREUR, true);
                return;
            }

            noeudRoute.Nodes.Remove(noeudBeneficiaire);
            tvRoutesBeneficiaires_AfterSelect(tvRoutesBeneficiaires, new TreeViewEventArgs(noeudRoute));

            lbBeneficiaires.Items.Add(new ComboBoxItem(noeudBeneficiaire.Text, beneficiaire));
        }
Example #5
0
        private void RafraichirService()
        {
            ConditionRequete condReqSel = new ConditionRequete(Operateur.EGAL, "perId", BeneficiaireCourant.GetChamp("perId").ValeurSQL);

            condReqSel.LierCondition(new ConditionRequete(Operateur.EGAL, "serId", (cmbService.SelectedItem as ComboBoxItem).Value.ToString()), true);

            RequeteSelection reqSel = new RequeteSelection(NomTable.inscriptionservice);

            reqSel.Condition = condReqSel;

            Table  inscription   = Global.BaseDonneesCABS.EnvoyerRequeteSelection(reqSel);
            string nomFormulaire = Global.GetNomFormulaireInscription(cmbService.Text);

            panFormulaireInscription.Controls.Clear();

            Type typeFormulaire = Type.GetType(nomFormulaire);

            try
            {
                FormulaireCourant = (Formulaire)Activator.CreateInstance(typeFormulaire);
            }
            catch (Exception)
            {
                FormulaireCourant = null;
                return;
            }

            if (!inscription.EstVide)
            {
                ChangerAccesControle(ModeFormulaire.CONSULTATION);

                LigneTable infosInscription = inscription.Lignes[0];

                dtpDateDemande.Value = infosInscription.GetValeurChamp <DateTime>("insDateDemande");
                cbSuspendu.Checked   = infosInscription.GetValeurChamp <bool>("insSuspendu");
                txtCommentaires.Text = infosInscription.GetValeurChamp <string>("insCommentaires");
            }
            else
            {
                ChangerAccesControle(ModeFormulaire.AJOUT);
                Vider();
                FormulaireCourant.Vider();
            }

            FormulaireCourant.Name       = nomFormulaire;
            FormulaireCourant.Dock       = DockStyle.Fill;
            FormulaireCourant.TopLevel   = false;
            FormulaireCourant.AutoScroll = true;
            FormulaireCourant.EnvoyerMessages(BeneficiaireCourant.GetValeurChamp <int>("perId"));

            panFormulaireInscription.Controls.Add(FormulaireCourant);
            FormulaireCourant.Show();
        }
Example #6
0
        private void btnMonter_Click(object sender, EventArgs e)
        {
            TreeNode noeudSelectionne = tvRoutesBeneficiaires.SelectedNode;
            TreeNode noeudParent      = noeudSelectionne != null ? noeudSelectionne.Parent : null;
            TreeNode noeudPrecedent   = noeudParent != null ? noeudParent.Nodes[noeudSelectionne.Index - 1] : null;

            LigneTable beneficiaire1 = noeudSelectionne != null && noeudSelectionne.Tag is LigneTable ? (LigneTable)noeudSelectionne.Tag : null;
            LigneTable beneficiaire2 = noeudPrecedent != null && noeudPrecedent.Tag is LigneTable ? (LigneTable)noeudPrecedent.Tag : null;

            if (noeudSelectionne == null || noeudParent == null || noeudPrecedent == null || beneficiaire1 == null || beneficiaire2 == null)
            {
                Journal.AfficherMessage("Une erreur est survenue lors du changement d'ordre des bénéficiaires. L'action a été annulée.", TypeMessage.ERREUR, true);
                return;
            }

            Global.BaseDonneesCABS.CommencerTransaction();

            ConditionRequete    cond1     = new ConditionRequete(Operateur.EGAL, beneficiaire1.GetChamp("perId"));
            ConditionRequete    cond2     = new ConditionRequete(Operateur.EGAL, beneficiaire2.GetChamp("perId"));
            RequeteModification reqModif1 = new RequeteModification(NomTable.beneficiaireroutepopoteroulante, cond1, beneficiaire2.GetChamp("brprOrdre"));
            RequeteModification reqModif2 = new RequeteModification(NomTable.beneficiaireroutepopoteroulante, cond2, beneficiaire1.GetChamp("brprOrdre"));

            if (Global.BaseDonneesCABS.EnvoyerRequeteModification(reqModif1) < 0)
            {
                Journal.AfficherMessage("Une erreur est survenue lors du changement d'ordre des bénéficiaires. L'action a été annulée.", TypeMessage.ERREUR, true);

                Global.BaseDonneesCABS.AnnulerTransaction();
                return;
            }

            if (Global.BaseDonneesCABS.EnvoyerRequeteModification(reqModif2) < 0)
            {
                Journal.AfficherMessage("Une erreur est survenue lors du changement d'ordre des bénéficiaires. L'action a été annulée.", TypeMessage.ERREUR, true);

                Global.BaseDonneesCABS.AnnulerTransaction();
                return;
            }

            Global.BaseDonneesCABS.ConfirmerTransaction();

            int temp = beneficiaire1.GetValeurChamp <int>("brprOrdre");

            beneficiaire1.GetChamp("brprOrdre").Valeur = beneficiaire2.GetValeurChamp <int>("brprOrdre");
            beneficiaire2.GetChamp("brprOrdre").Valeur = temp;

            noeudParent.Nodes.Remove(noeudSelectionne);
            noeudParent.Nodes.Insert(noeudPrecedent.Index, noeudSelectionne);

            tvRoutesBeneficiaires.SelectedNode = noeudSelectionne;
        }
Example #7
0
        private void cbSuspendu_CheckedChanged(object sender, EventArgs e)
        {
            ConditionRequete condModif = new ConditionRequete(Operateur.EGAL, "perId", BeneficiaireCourant.GetChamp("perId").ValeurSQL);

            condModif.LierCondition(new ConditionRequete(Operateur.EGAL, "serId", (cmbService.SelectedItem as ComboBoxItem).Value.ToString()), true);

            Champ suspendu = new Champ("inscriptionservice", "insSuspendu", cbSuspendu.Checked);
            RequeteModification reqModif = new RequeteModification(NomTable.inscriptionservice, condModif, suspendu);

            if (Global.BaseDonneesCABS.EnvoyerRequeteModification(reqModif) < 0)
            {
                Journal.AfficherMessage("Une erreur est survenue lors de la suspension du service. L'action a été annulée", TypeMessage.ERREUR, true);
                cbSuspendu.Checked = !cbSuspendu.Checked;
            }
        }
Example #8
0
        public override bool Enregistrer()
        {
            Global.BaseDonneesCABS.CommencerTransaction();

            if (!base.Enregistrer() || !ValiderDonnees() || FormulaireCourant == null || !FormulaireCourant.Enregistrer())
            {
                Global.BaseDonneesCABS.AnnulerTransaction();
                return(false);
            }

            LigneTable inscription = new LigneTable("InscriptionService");

            inscription.AjouterChamp("insDateDemande", dtpDateDemande.Value);
            inscription.AjouterChamp("insCommentaires", txtCommentaires.Text);

            if (Mode == ModeFormulaire.AJOUT)
            {
                inscription.AjouterChamp("perId", BeneficiaireCourant.GetValeurChamp <int>("perId"));
                inscription.AjouterChamp("serId", (cmbService.SelectedItem as ComboBoxItem).Value);

                RequeteAjout reqAjout = new RequeteAjout(NomTable.inscriptionservice, inscription);
                if (Global.BaseDonneesCABS.EnvoyerRequeteAjout(reqAjout) < 0)
                {
                    Journal.AfficherMessage("Une erreur est survenue lors de l'inscription du service. L'action a été annulée", TypeMessage.ERREUR, true);
                    Global.BaseDonneesCABS.AnnulerTransaction();
                    return(false);
                }
            }
            else if (Mode == ModeFormulaire.EDITION)
            {
                ConditionRequete condModif = new ConditionRequete(Operateur.EGAL, "perId", BeneficiaireCourant.GetChamp("perId").ValeurSQL);
                condModif.LierCondition(new ConditionRequete(Operateur.EGAL, "serId", (cmbService.SelectedItem as ComboBoxItem).Value.ToString()), true);

                RequeteModification reqModif = new RequeteModification(NomTable.inscriptionservice, condModif, inscription);

                if (Global.BaseDonneesCABS.EnvoyerRequeteModification(reqModif) < 0)
                {
                    Journal.AfficherMessage("Une erreur est survenue lors de la modification des infos d'inscription. L'action a été annulée", TypeMessage.ERREUR, true);
                    Global.BaseDonneesCABS.AnnulerTransaction();
                    return(false);
                }
            }

            Global.BaseDonneesCABS.ConfirmerTransaction();
            return(true);
        }
        public override bool Supprimer()
        {
            if (!base.Supprimer())
            {
                return(false);
            }

            ConditionRequete   condBeneficiaire  = new ConditionRequete(Operateur.EGAL, "perId", IndexBeneficiaireCourant.ToString());
            RequeteSuppression reqSupInscription = new RequeteSuppression(NomTable.inscriptiontransportaccompagement, condBeneficiaire);

            if (Global.BaseDonneesCABS.EnvoyerRequeteSuppression(reqSupInscription) < 0)
            {
                Journal.AfficherMessage("Une erreur est survenue lors de la suppression de l'inscription au transport accompagnement. L'action a été annulée.", TypeMessage.ERREUR, true);
                return(false);
            }

            return(true);
        }
        private void RafraichirService()
        {
            ConditionRequete condReqSel = new ConditionRequete(Operateur.EGAL, "perId", BenevoleCourant.GetChamp("perId").ValeurSQL);

            condReqSel.LierCondition(new ConditionRequete(Operateur.EGAL, "serId", (cmbService.SelectedItem as ComboBoxItem).Value.ToString()), true);

            RequeteSelection reqSel = new RequeteSelection(NomTable.disponibiliteservice);

            reqSel.Condition = condReqSel;

            Table disponibilite = Global.BaseDonneesCABS.EnvoyerRequeteSelection(reqSel);

            if (!disponibilite.EstVide)
            {
                ChangerAccesControle(ModeFormulaire.CONSULTATION);
            }
            else
            {
                ChangerAccesControle(ModeFormulaire.AJOUT);
            }
        }
        public override bool Supprimer()
        {
            if (!base.Supprimer())
            {
                return(false);
            }

            ConditionRequete condSup = new ConditionRequete(Operateur.EGAL, "perId", BenevoleCourant.GetChamp("perId").ValeurSQL);

            condSup.LierCondition(new ConditionRequete(Operateur.EGAL, "serId", (cmbService.SelectedItem as ComboBoxItem).Value.ToString()), true);

            RequeteSuppression reqSup = new RequeteSuppression(NomTable.disponibiliteservice, condSup);

            if (Global.BaseDonneesCABS.EnvoyerRequeteSuppression(reqSup) < 0)
            {
                Global.BaseDonneesCABS.AnnulerTransaction();
                Journal.AfficherMessage("Une erreur est survenue lors du retirement de la disponibilité. L'action a été annulée", TypeMessage.ERREUR, true);
                return(false);
            }

            return(true);
        }
Example #12
0
        private void btnRetirerBeneficiaire_Click(object sender, EventArgs e)
        {
            if (!OutilsForms.PoserQuestion("Confirmation suppression", "Voulez-vous vraiment retirer ce bénéficiaire de cette action?"))
            {
                return;
            }

            Champ indexBeneficiaire = ((Champ)((ComboBoxItem)lbBeneficiairesInclus.SelectedItem).Value);

            ConditionRequete cond = new ConditionRequete(Operateur.EGAL, indexBeneficiaire);

            cond.LierCondition(new ConditionRequete(Operateur.EGAL, ((LigneTable)((ComboBoxItem)cmbAction.SelectedItem).Value).GetChamp("actaId")), true);

            RequeteSuppression reqSup = new RequeteSuppression(NomTable.beneficiaireactionactivite, cond);

            if (Global.BaseDonneesCABS.EnvoyerRequeteSuppression(reqSup) < 0)
            {
                Journal.AfficherMessage("Une erreur est survenue lors du retirement du bénéficiaire de l'action. L'action a été annulée.", TypeMessage.ERREUR, true);
                return;
            }

            SupprimerItem(lbBeneficiairesInclus);
        }
Example #13
0
        public override bool Enregistrer()
        {
            if (!base.Enregistrer() || !ValiderDonnees())
            {
                return(false);
            }

            LigneTable evaluation = CreerEvaluation();

            if (Mode == ModeFormulaire.AJOUT)
            {
                RequeteAjout reqAjout = new RequeteAjout(NomTable.evaluationdepannagealimentaire, evaluation);
                int          idEval   = Global.BaseDonneesCABS.EnvoyerRequeteAjout(reqAjout);

                if (idEval == -1)
                {
                    Journal.AfficherMessage("Une erreur est survenue lors de l'ajout de l'évaluation dans la base de données. L'action a été annulée.", TypeMessage.ERREUR, true);
                    return(false);
                }
            }
            else if (Mode == ModeFormulaire.EDITION)
            {
                int idEval = ((LigneTable)((ComboBoxItem)cmbEvaluationsPrecedentes.SelectedItem).Value).GetValeurChamp <int>("edaId");
                ConditionRequete    cond     = new ConditionRequete(Operateur.EGAL, "edaId", idEval.ToString());
                RequeteModification reqModif = new RequeteModification(NomTable.evaluationdepannagealimentaire, cond, evaluation);
                int lignesModifiees          = Global.BaseDonneesCABS.EnvoyerRequeteModification(reqModif);

                if (lignesModifiees < 0)
                {
                    Journal.AfficherMessage("Une erreur est survenue lors de la modification de l'évaluation. L'action a été annulée.", TypeMessage.ERREUR, true);
                    return(false);
                }
            }

            return(true);
        }
Example #14
0
        public override bool Enregistrer()
        {
            if (!base.Enregistrer())
            {
                return(false);
            }

            if (!ValiderDonnees())
            {
                return(false);
            }

            List <DateTime> datesAAjouter  = new List <DateTime>();
            List <DateTime> datesAModifier = new List <DateTime>();

            foreach (DateTime date in GetDatesConsiderees())
            {
                if (GetIndexLivraisonExistante(date) < 0)
                {
                    datesAAjouter.Add(date);
                }
                else
                {
                    datesAModifier.Add(date);
                }
            }

            Champ champId        = new Champ("livraisonpopoteroulante", "perId", BeneficiaireCourant.GetValeurChamp <int>("perId"));
            Champ champNbRepas   = new Champ("livraisonpopoteroulante", "lprNombreRepas", (int)nudNombreRepas.Value);
            Champ champPrixRepas = new Champ("livraisonpopoteroulante", "lprPrixRepas", nudPrixRepas.Value);

            LigneTable livraison = new LigneTable("livraisonpopoteroulante");

            livraison.AjouterChamp(champId);
            livraison.AjouterChamp(champNbRepas);
            livraison.AjouterChamp(champPrixRepas);

            bool erreur = false;

            foreach (DateTime date in datesAAjouter)
            {
                LigneTable copieLivraison = new LigneTable(livraison);
                copieLivraison.AjouterChamp(new Champ("livraisonpopoteroulante", "lprDate", date));

                RequeteAjout reqAjout = new RequeteAjout(NomTable.livraisonpopoteroulante, copieLivraison);

                if (Global.BaseDonneesCABS.EnvoyerRequeteAjout(reqAjout) < 0)
                {
                    erreur = true;
                }
                else
                {
                    Livraisons.Lignes.Add(copieLivraison);
                    AjouterLivraisonCalendrier(date);
                }
            }

            ConditionRequete    cond     = new ConditionRequete(Operateur.EGAL, champId);
            RequeteModification reqModif = new RequeteModification(NomTable.livraisonpopoteroulante, cond, champNbRepas, champPrixRepas);

            foreach (DateTime date in datesAModifier)
            {
                ConditionRequete copieCond = new ConditionRequete(cond);
                copieCond.LierCondition(new ConditionRequete(Operateur.EGAL, new Champ("livraisonpopoteroulante", "lprDate", date)), true);

                reqModif.Condition = copieCond;

                if (Global.BaseDonneesCABS.EnvoyerRequeteModification(reqModif) < 0)
                {
                    erreur = true;
                }
                else
                {
                    int indexLivraisonAModifier = GetIndexLivraisonExistante(date);

                    if (indexLivraisonAModifier >= 0)
                    {
                        LigneTable copieLivraison = new LigneTable(livraison);
                        copieLivraison.AjouterChamp(new Champ("livraisonpopoteroulante", "lprDate", date));
                        Livraisons.Lignes[indexLivraisonAModifier] = copieLivraison;
                    }
                }
            }

            if (erreur)
            {
                Journal.AfficherMessage("Une erreur est survenue lors de la modification d'une ou plusieurs livraisons.", TypeMessage.ERREUR, true);
            }

            return(true);
        }
Example #15
0
        public override bool Enregistrer()
        {
            Global.BaseDonneesCABS.CommencerTransaction();

            if (!base.Enregistrer() || !ValiderDonnees())
            {
                Global.BaseDonneesCABS.AnnulerTransaction();
                return(false);
            }

            Champ indexPersonne = null;

            if (PersonneCourante != null)
            {
                indexPersonne = PersonneCourante.GetChamp("perId");
            }

            LigneTable adresseModifiee = null;

            if (Mode == ModeFormulaire.AJOUT)
            {
                LigneTable nouvellePersonne = CreerNouvellePersonne();
                nouvellePersonne.AjouterChamp("perDateOuverture", DateTime.Now);

                RequeteSelection reqSelNom = new RequeteSelection(NomTable.personne, "perId");
                reqSelNom.Condition = new ConditionRequete(Operateur.EGAL, "perNom", nouvellePersonne.GetChamp("perNom").ValeurSQL);
                reqSelNom.Condition.LierCondition(new ConditionRequete(Operateur.EGAL, "perPrenom", nouvellePersonne.GetChamp("perPrenom").ValeurSQL), true);

                if (!Global.BaseDonneesCABS.EnvoyerRequeteSelection(reqSelNom).EstVide&& !OutilsForms.PoserQuestion("Confirmation d'ajout", "Une autre personne porte les mêmes nom et prénom. Voulez-vous quand même ajouter celle-ci?"))
                {
                    Global.BaseDonneesCABS.AnnulerTransaction();
                    return(false);
                }

                if (StatutActif == null)
                {
                    Journal.AfficherMessage("La table des statuts est inexistante ou corrompue. L'action a été annulée.", TypeMessage.ERREUR, true);
                    Global.BaseDonneesCABS.AnnulerTransaction();
                    return(false);
                }

                nouvellePersonne.AjouterChamp(StatutActif);

                RequeteAjout reqAjout            = new RequeteAjout(NomTable.personne, nouvellePersonne);
                int          nouvelIndexPersonne = Global.BaseDonneesCABS.EnvoyerRequeteAjout(reqAjout);

                if (nouvelIndexPersonne == -1)
                {
                    Journal.AfficherMessage("Une erreur est survenue lors de l'ajout de la personne dans la base de données. L'action a été annulée.", TypeMessage.ERREUR, true);
                    Global.BaseDonneesCABS.AnnulerTransaction();
                    return(false);
                }

                indexPersonne = new Champ("Personne", "perId", nouvelIndexPersonne);
                nouvellePersonne.AjouterChamp(indexPersonne);
                PersonneCourante = nouvellePersonne;

                adresseModifiee = GetAdresseModifiee(PersonneCourante, new LigneTable("Personne"));
            }
            else if (Mode == ModeFormulaire.EDITION)
            {
                LigneTable personneModifiee = CreerNouvellePersonne();
                personneModifiee.AjouterChamp(PersonneCourante.GetChamp("staId"));

                RequeteModification reqModif = new RequeteModification(NomTable.personne, new ConditionRequete(Operateur.EGAL, indexPersonne), personneModifiee);
                int lignesModifiees          = Global.BaseDonneesCABS.EnvoyerRequeteModification(reqModif);

                if (lignesModifiees < 0)
                {
                    Journal.AfficherMessage("Une erreur est survenue lors de la modification de la personne. L'action a été annulée.", TypeMessage.ERREUR, true);
                    Global.BaseDonneesCABS.AnnulerTransaction();
                    return(false);
                }

                RequeteSuppression reqSup = new RequeteSuppression(NomTable.languepersonne, new ConditionRequete(Operateur.EGAL, indexPersonne));

                if (Global.BaseDonneesCABS.EnvoyerRequeteSuppression(reqSup) < 0)
                {
                    Journal.AfficherMessage("Une erreur est survenue lors de la suppression des langues parlées de la personne. L'action a été annulée.", TypeMessage.ERREUR, true);
                    Global.BaseDonneesCABS.AnnulerTransaction();
                    return(false);
                }

                personneModifiee.AjouterChamp(indexPersonne);
                PersonneCourante = personneModifiee;

                adresseModifiee = GetAdresseModifiee(PersonneCourante, personneModifiee);
            }

            if (IndexPersonneCouple != 0 && adresseModifiee != null &&
                OutilsForms.PoserQuestion("Modification adresse conjoint(e)", "Voulez-vous modifier l'adresse du conjoint(e) pour celle de la personne courante?"))
            {
                RequeteModification reqModif = new RequeteModification(NomTable.personne, new ConditionRequete(Operateur.EGAL, new Champ("Personne", "perId", IndexPersonneCouple)), adresseModifiee);
                int lignesModifiees          = Global.BaseDonneesCABS.EnvoyerRequeteModification(reqModif);

                if (lignesModifiees < 0)
                {
                    Journal.AfficherMessage("Une erreur est survenue lors de la modification de l'adresse du conjoint(e). L'action a été annulée.", TypeMessage.ERREUR, true);
                }
            }

            if (!MettreAJourTypesPersonne(indexPersonne))
            {
                Journal.AfficherMessage("Une erreur est survenue lors de la mise à jour des types de la personne dans la base de données. L'action a été annulée.", TypeMessage.ERREUR, true);
                Global.BaseDonneesCABS.AnnulerTransaction();
                return(false);
            }

            foreach (ComboBoxItem langue in chklbLangues.CheckedItems)
            {
                Champ idLangue = new Champ("Langue", "lanId", langue.Value);

                RequeteAjout reqAjout = new RequeteAjout(NomTable.languepersonne, indexPersonne, idLangue);

                if (Global.BaseDonneesCABS.EnvoyerRequeteAjout(reqAjout) < 0)
                {
                    Journal.AfficherMessage("Une erreur est survenue lors de l'ajout d'une langue parlée dans la base de données. L'action a été annulée.", TypeMessage.ERREUR, true);
                    Global.BaseDonneesCABS.AnnulerTransaction();
                    return(false);
                }
            }

            if (AncienIndexPersonneCouple != IndexPersonneCouple)
            {
                Champ premier  = new Champ("Couple", "perIdPremier", indexPersonne.Valeur);
                Champ deuxieme = new Champ("Couple", "perIdDeuxieme", IndexPersonneCouple);

                ConditionRequete condCouple = new ConditionRequete(Operateur.EGAL, "perIdPremier", indexPersonne.ValeurSQL);
                condCouple.LierCondition(new ConditionRequete(Operateur.EGAL, "perIdDeuxieme", indexPersonne.ValeurSQL), false);

                if (AncienIndexPersonneCouple == 0)
                {
                    RequeteAjout reqAjout = new RequeteAjout(NomTable.couple, premier, deuxieme);
                    if (Global.BaseDonneesCABS.EnvoyerRequeteAjout(reqAjout) < 0)
                    {
                        Journal.AfficherMessage("Une erreur est survenue lors de l'ajout du couple de la personne. L'action a été annulée.", TypeMessage.ERREUR, true);
                        Global.BaseDonneesCABS.AnnulerTransaction();
                        return(false);
                    }
                }
                else if (IndexPersonneCouple == 0)
                {
                    RequeteSuppression reqSup = new RequeteSuppression(NomTable.couple, condCouple);
                    if (Global.BaseDonneesCABS.EnvoyerRequeteSuppression(reqSup) < 0)
                    {
                        Journal.AfficherMessage("Une erreur est survenue lors de la suppression du couple de la personne. L'action a été annulée.", TypeMessage.ERREUR, true);
                        Global.BaseDonneesCABS.AnnulerTransaction();
                        return(false);
                    }
                }
                else
                {
                    RequeteModification reqModif = new RequeteModification(NomTable.couple, condCouple, premier, deuxieme);
                    if (Global.BaseDonneesCABS.EnvoyerRequeteModification(reqModif) < 0)
                    {
                        Journal.AfficherMessage("Une erreur est survenue lors de la modification du couple de la personne. L'action a été annulée.", TypeMessage.ERREUR, true);
                        Global.BaseDonneesCABS.AnnulerTransaction();
                        return(false);
                    }
                }
            }

            Global.BaseDonneesCABS.ConfirmerTransaction();
            return(true);
        }