public ActionResult CreatePersonne([Bind(Include = "CodePers,NumAdresse,nom,prenom,nationalite,sexe,situationMatrimonial,numPassport,cin,raisonSocial,employeur,identifiantFiscale,nPatente,rc,activite,fonction,carteSejour,TelFixPers,TelMobilPers,TelPers3,EmailPers,FaxPers,Solde,RefCodePers")] PropMoraleForm personneForm,
                                           [Bind(Include = "NumAdresse,Pays,Ville,quartier,descAdresse,CPadress")] AdresseForm adresseForm)
        {
            List <Personne> listPersonne = new List <Personne>();

            listPersonne = db.Personnes.Where(p => p.CodeTypePersonne == 2).ToList();
            if (!string.IsNullOrEmpty(personneForm.carteSejour) && !string.IsNullOrEmpty(personneForm.nom) &&
                !string.IsNullOrEmpty(personneForm.prenom) && !string.IsNullOrEmpty(personneForm.TelMobilPers) &&
                !string.IsNullOrEmpty(adresseForm.descAdresse) && !string.IsNullOrEmpty(adresseForm.quartier))
            {
                bool testi = false;

                for (int i = 0; i < listPersonne.Count(); i++)
                {
                    if (listPersonne[i].cin == personneForm.cin && listPersonne[i].carteSejour == personneForm.carteSejour)
                    {
                        testi = true;
                    }
                }
                if (testi == true)
                {
                    ModelState.AddModelError("carteSejour", "Cet identifiant existe déja");
                }
                else
                {
                    Adresse adresse = new Adresse();
                    adresse.CPadress    = adresseForm.CPadress;
                    adresse.descAdresse = adresseForm.descAdresse;
                    adresse.quartier    = adresseForm.quartier;
                    adresse.Ville       = adresseForm.Ville;
                    adresse.Pays        = adresseForm.Pays;
                    db.Adresses.Add(adresse);
                    Personne personne = new Personne();
                    personne.RefCodePers          = personneForm.RefCodePers;
                    personne.nom                  = personneForm.nom;
                    personne.prenom               = personneForm.prenom;
                    personne.cin                  = personneForm.cin;
                    personne.carteSejour          = personneForm.carteSejour;
                    personne.sexe                 = personneForm.sexe;
                    personne.situationMatrimonial = personneForm.situationMatrimonial;
                    personne.nationalite          = personneForm.nationalite;
                    personne.TelMobilPers         = personneForm.TelMobilPers;
                    personne.EmailPers            = personneForm.EmailPers;
                    personne.TelFixPers           = personneForm.TelFixPers;
                    personne.activite             = personneForm.activite;
                    personne.fonction             = personneForm.fonction;
                    personne.employeur            = personneForm.employeur;

                    personne.CodeTypePersonne = 2;
                    db.Personnes.Add(personne);
                    db.SaveChanges();
                    return(RedirectToAction("Details", new { id = personne.CodePers }));
                }
            }

            return(View(personneForm));
        }
        public ActionResult EditEntreprise([Bind(Include = "CodePers,CodeTypePersonne,NumAdresse,nom,prenom,nationalite,sexe,situationMatrimonial,cin,raisonSocial,employeur,identifiantFiscale,nPatente,rc,activite,fonction,carteSejour,TelFixPers,TelMobilPers,TelPers3,EmailPers,FaxPers,Solde,RefCodePers")] PropMoraleForm personneForm,
                                           [Bind(Include = "NumAdresse,Pays,Ville,quartier,descAdresse,CPadress")] AdresseForm adresseForm)
        {
            //if (ModelState.IsValid)
            //{

            Personne personne = db.Personnes.Where(c => c.CodePers == personneForm.CodePers).First();
            Adresse  adresse  = db.Adresses.Where(c => c.NumAdresse == adresseForm.NumAdresse).First();

            //personne.CodeTypePersonne = 1;


            //Adresse adresse = new Adresse();
            adresse.CPadress    = adresseForm.CPadress;
            adresse.descAdresse = adresseForm.descAdresse;
            adresse.quartier    = adresseForm.quartier;
            adresse.Ville       = adresseForm.Ville;
            adresse.Pays        = adresseForm.Pays;
            //Personne personne = new Personne();

            personne.RefCodePers        = personneForm.RefCodePers;
            personne.employeur          = personneForm.employeur;
            personne.activite           = personneForm.activite;
            personne.rc                 = personneForm.rc;
            personne.identifiantFiscale = personneForm.identifiantFiscale;
            personne.raisonSocial       = personneForm.raisonSocial;
            personne.nPatente           = personneForm.nPatente;
            personne.TelFixPers         = personneForm.TelFixPers;
            personne.FaxPers            = personneForm.FaxPers;
            personne.nom                = personneForm.nom;
            personne.prenom             = personneForm.prenom;
            personne.fonction           = personneForm.fonction;
            personne.TelMobilPers       = personneForm.TelMobilPers;
            personne.EmailPers          = personneForm.EmailPers;
            personne.CodeTypePersonne   = 2;



            db.Entry(adresse).State  = EntityState.Modified;
            db.Entry(personne).State = EntityState.Modified;
            db.SaveChanges();
            return(RedirectToAction("Details", new { id = personne.CodePers }));

            //}
            //ViewBag.NumAdresse = new SelectList(db.Adresses, "NumAdresse", "Pays", personneForm.NumAdresse);
            //ViewBag.CodeTypePersonne = new SelectList(db.TypePersonnes, "CodeTypePersonne", "Libelle", personneForm.CodeTypePersonne);
            //return View(personneForm);
        }
        public ActionResult EditEntreprise(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            Personne personne = db.Personnes.Find(id);


            AdresseForm adr = new AdresseForm();

            adr.NumAdresse  = personne.Adresse.NumAdresse;
            adr.CPadress    = personne.Adresse.CPadress;
            adr.descAdresse = personne.Adresse.descAdresse;
            adr.quartier    = personne.Adresse.quartier;
            adr.Ville       = personne.Adresse.Ville;
            adr.Pays        = personne.Adresse.Pays;

            PropMoraleForm pers = new PropMoraleForm();

            pers.RefCodePers        = personne.RefCodePers;
            pers.CodePers           = personne.CodePers;
            pers.employeur          = personne.employeur;
            pers.activite           = personne.activite;
            pers.rc                 = personne.rc;
            pers.identifiantFiscale = personne.identifiantFiscale;
            pers.raisonSocial       = personne.raisonSocial;
            pers.nPatente           = personne.nPatente;
            pers.TelFixPers         = personne.TelFixPers;
            pers.FaxPers            = personne.FaxPers;
            pers.nom                = personne.nom;
            pers.prenom             = personne.prenom;
            pers.fonction           = personne.fonction;
            pers.TelMobilPers       = personne.TelMobilPers;
            pers.EmailPers          = personne.EmailPers;
            pers.CodeTypePersonne   = 2;

            pers.AdresseForm = adr;
            if (personne == null)
            {
                return(HttpNotFound());
            }
            ViewBag.NumAdresse       = new SelectList(db.Adresses, "NumAdresse", "Pays", personne.NumAdresse);
            ViewBag.CodeTypePersonne = new SelectList(db.TypePersonnes, "CodeTypePersonne", "Libelle", personne.CodeTypePersonne);
            return(View(pers));
        }
        public ActionResult CreateEntreprise([Bind(Include = "CodePers,NumAdresse,nom,prenom,nationalite,sexe,situationMatrimonial,numPassport,cin,raisonSocial,employeur,identifiantFiscale,nPatente,rc,activite,fonction,carteSejour,TelFixPers,TelMobilPers,TelPers3,EmailPers,FaxPers,Solde,RefCodePers")] PropMoraleForm personneForm,
                                             [Bind(Include = "NumAdresse,Pays,Ville,quartier,descAdresse,CPadress")] AdresseForm adresseForm)
        {
            List <Personne> listPersonne = new List <Personne>();

            listPersonne = db.Personnes.Where(p => p.CodeTypePersonne == 1).ToList();
            if (!string.IsNullOrEmpty(personneForm.employeur) && !string.IsNullOrEmpty(personneForm.activite) &&
                !string.IsNullOrEmpty(personneForm.rc) && !string.IsNullOrEmpty(personneForm.TelFixPers) &&
                !string.IsNullOrEmpty(personneForm.nom) && !string.IsNullOrEmpty(personneForm.prenom) &&
                !string.IsNullOrEmpty(personneForm.TelMobilPers) &&
                !string.IsNullOrEmpty(adresseForm.descAdresse) && !string.IsNullOrEmpty(adresseForm.quartier))
            {
                bool testid = false;
                bool testrc = false;
                bool testrs = false;
                bool testnp = false;
                for (int i = 0; i < listPersonne.Count(); i++)
                {
                    if (listPersonne[i].identifiantFiscale == personneForm.identifiantFiscale && !string.IsNullOrEmpty(personneForm.identifiantFiscale))
                    {
                        testid = true;
                    }
                }
                for (int i = 0; i < listPersonne.Count(); i++)
                {
                    if (listPersonne[i].raisonSocial == personneForm.raisonSocial && !string.IsNullOrEmpty(personneForm.raisonSocial))
                    {
                        testrs = true;
                    }
                }
                for (int i = 0; i < listPersonne.Count(); i++)
                {
                    if (listPersonne[i].rc == personneForm.rc && !string.IsNullOrEmpty(personneForm.rc))
                    {
                        testrc = true;
                    }
                }
                for (int i = 0; i < listPersonne.Count(); i++)
                {
                    if (listPersonne[i].nPatente == personneForm.nPatente && !string.IsNullOrEmpty(personneForm.nPatente))
                    {
                        testnp = true;
                    }
                }
                if (testid == true)
                {
                    ModelState.AddModelError("identifiantFiscale", "Cet identifiant fiscale existe déja");
                }
                if (testrs == true)
                {
                    ModelState.AddModelError("raisonSocial", "Cette raison sociale existe déja");
                }
                if (testrc == true)
                {
                    ModelState.AddModelError("rc", "Ce regitre de commerce existe déja");
                }
                if (testnp == true)
                {
                    ModelState.AddModelError("nPatente", "Ce numero de patente existe déja");
                }
                if (testid == false && testrs == false && testrc == false && testnp == false)
                {
                    Adresse adresse = new Adresse();
                    adresse.CPadress    = adresseForm.CPadress;
                    adresse.descAdresse = adresseForm.descAdresse;
                    adresse.quartier    = adresseForm.quartier;
                    adresse.Ville       = adresseForm.Ville;
                    adresse.Pays        = adresseForm.Pays;
                    db.Adresses.Add(adresse);
                    Personne personne = new Personne();
                    personne.RefCodePers        = personneForm.RefCodePers;
                    personne.employeur          = personneForm.employeur;
                    personne.activite           = personneForm.activite;
                    personne.rc                 = personneForm.rc;
                    personne.identifiantFiscale = personneForm.identifiantFiscale;
                    personne.raisonSocial       = personneForm.raisonSocial;
                    personne.nPatente           = personneForm.nPatente;
                    personne.TelFixPers         = personneForm.TelFixPers;
                    personne.FaxPers            = personneForm.FaxPers;
                    personne.nom                = personneForm.nom;
                    personne.prenom             = personneForm.prenom;
                    personne.fonction           = personneForm.fonction;
                    personne.TelMobilPers       = personneForm.TelMobilPers;
                    personne.EmailPers          = personneForm.EmailPers;
                    personne.CodeTypePersonne   = 2;
                    personne.Solde              = 0;
                    db.Personnes.Add(personne);
                    db.SaveChanges();
                    return(RedirectToAction("Details", new { id = personne.CodePers }));
                }
            }

            return(View(personneForm));
        }