示例#1
0
        public FrmInformationDepense(DataClasses1DataContext monDatatContext, Depense depense)
        {
            this.depense         = depense;
            this.monDatatContext = monDatatContext;

            InitializeComponent();
        }
示例#2
0
        public ActionResult CreateDepense([Bind(Include = "codeOp,CodePers,codeType,montant,dateOp")] Operation operation,
                                          [Bind(Include = "codeOp,CodeImmeuble,CodeLocal,NumTypeDesignationDespense,Description,DateDepense")] Depense depense)

        {
            //if (ModelState.IsValid)
            //{
            Local local = db.Locals.Where(l => l.CodeLocal == depense.CodeLocal).First();

            operation.dateOp   = DateTime.Now;
            operation.codeType = 3;
            operation.CodePers = local.CodePers;
            //operation.montant = montant;
            db.Operations.Add(operation);

            depense.codeOp = operation.codeOp;

            db.Depenses.Add(depense);
            db.SaveChanges();
            //return RedirectToAction("Index");
            //}

            ViewBag.CodeImmeuble = new SelectList(db.Immeubles, "CodeImmeuble", "NomImmeuble", depense.CodeImmeuble);
            ViewBag.CodeLocal    = new SelectList(db.Locals, "CodeLocal", "TitreLocal", depense.CodeLocal);
            ViewBag.NumTypeDesignationDespense = new SelectList(db.TypeDesignationDepenses, "NumTypeDesignationDespense", "Description", depense.NumTypeDesignationDespense);
            ViewBag.codeOp = new SelectList(db.Operations, "codeOp", "codeOp", depense.codeOp);
            //return View(depense);
            return(RedirectToAction("Index"));
        }
示例#3
0
        public async Task <IActionResult> Edit(int id, [Bind("DepenseId,MoisId,TypeDepenseId,Valeur")] Depense depense)
        {
            if (id != depense.DepenseId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    TempData["Confirmation"] = "Depénse a été changé avec succès.";
                    _context.Update(depense);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!DepenseExists(depense.DepenseId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["MoisId"]        = new SelectList(_context.Mois, "MoisId", "Nom", depense.MoisId);
            ViewData["TypeDepenseId"] = new SelectList(_context.TypeDepenses, "TypeDepenseId", "Nom", depense.TypeDepenseId);
            return(View(depense));
        }
示例#4
0
 private void BtnModifier_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         Depense Tab = TabDepense.SelectedItem as Depense;
         var     T   = Depense.getDepense(Tab.Id);
         Id = T.Id;
         txtMontant.Text = T.Montant.ToString();
         var c   = ListHistoriquePanne.SingleOrDefault(a => a.Id == T.IdHistoriquePanne);
         int val = ListHistoriquePanne.IndexOf(c);
         cmbHistoriquePanne.SelectedIndex = val;
         var k = ListVoyage.SingleOrDefault(a => a.Id == T.IdVoyage);
         int l = ListVoyage.IndexOf(k);
         //cmbVoyage.SelectedIndex = l;
         var d  = ListTypeDepense.SingleOrDefault(a => a.Id == T.IdTypeDepense);
         int ii = ListTypeDepense.IndexOf(d);
         cmbTypeDepense.SelectedIndex = ii;
         BtnNouveau.IsEnabled         = false;
         DegriserChamps();
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
        public ActionResult Details([Bind(Include = "codeOp,CodePers,codeType,montant,dateOp")] Operation operation,
                                    [Bind(Include = "codeOp,CodeImmeuble,CodeLocal,NumTypeDesignationDespense,Description,DateDepense")] Depense depense, int?id)
        {
            if (ModelState.IsValid)
            {
                Local local = db.Locals.Find(id);

                operation.dateOp   = DateTime.Now;
                operation.codeType = 3;
                operation.CodePers = local.CodePers;
                db.Operations.Add(operation);

                depense.codeOp    = operation.codeOp;
                depense.CodeLocal = id;
                db.Depenses.Add(depense);
                db.SaveChanges();
                return(RedirectToAction("Details", new  { id = depense.CodeLocal }));
            }

            ViewBag.CodeImmeuble = new SelectList(db.Immeubles, "CodeImmeuble", "NomImmeuble", depense.CodeImmeuble);
            ViewBag.CodeLocal    = new SelectList(db.Locals, "CodeLocal", "TitreLocal", depense.CodeLocal);
            ViewBag.NumTypeDesignationDespense = new SelectList(db.TypeDesignationDepenses, "NumTypeDesignationDespense", "Description", depense.NumTypeDesignationDespense);
            ViewBag.codeOp = new SelectList(db.Operations, "codeOp", "codeOp", depense.codeOp);
            return(View(depense));
        }
        public async Task <IActionResult> Edit(int id, [Bind("ID,DateDepense,NomClient,VilleClient,MotifDepense,NombreKms,LocationVoiture,TaxiBus,AvionTrain,ParkingPeage,Restaurant,Hotel,Divers,TauxDevise,Commentaire,CommentaireRefus,TypeDepenseId")] Depense depense)
        {
            if (id != depense.ID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(depense);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!DepenseExists(depense.ID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["TypeDepenseId"] = new SelectList(_context.TypeDepense, "ID", "ID", depense.TypeDepenseId);
            return(View(depense));
        }
示例#7
0
 private void LoadTabDepense()
 {
     if (voyageId > 0)
     {
         ListDepense = Depense.getAll(voyageId, "v");
     }
     TabDepense.ItemsSource = ListDepense;
 }
示例#8
0
        public ActionResult DeleteConfirmed(int id)
        {
            Depense depense = db.Depenses.Find(id);

            db.Depenses.Remove(depense);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public DepenseBL Create(DepenseBL depense)
        {
            CheckDepenseData(depense);

            Depense dep       = _mapper.Map <Depense>(depense);
            Depense depReturn = _depenseRepo.Create(dep);

            return(_mapper.Map <DepenseBL>(depReturn));
        }
        public async Task <IActionResult> Create([Bind("ID,DateDepense,NomClient,VilleClient,MotifDepense,NombreKms,LocationVoiture,TaxiBus,AvionTrain,ParkingPeage,Restaurant,Hotel,Divers,TauxDevise,Commentaire,CommentaireRefus,TypeDepenseId")] Depense depense)
        {
            if (ModelState.IsValid)
            {
                _context.Add(depense);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["TypeDepenseId"] = new SelectList(_context.TypeDepense, "ID", "ID", depense.TypeDepenseId);
            return(View(depense));
        }
 public ActionResult Edit([Bind(Include = "codeOp,CodeImmeuble,CodeLocal,NumTypeDesignationDespense,Description,DateDepense,DateFact")] Depense depense)
 {
     if (ModelState.IsValid)
     {
         db.Entry(depense).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.CodeImmeuble = new SelectList(db.Immeubles, "CodeImmeuble", "NomImmeuble", depense.CodeImmeuble);
     ViewBag.CodeLocal    = new SelectList(db.Locals, "CodeLocal", "TitreLocal", depense.CodeLocal);
     ViewBag.NumTypeDesignationDespense = new SelectList(db.TypeDesignationDepenses, "NumTypeDesignationDespense", "Description", depense.NumTypeDesignationDespense);
     ViewBag.codeOp = new SelectList(db.Operations, "codeOp", "Commentaire", depense.codeOp);
     return(View(depense));
 }
示例#12
0
        public async Task <IActionResult> Create([Bind("DepenseId,MoisId,TypeDepenseId,Valeur")] Depense depense)
        {
            if (ModelState.IsValid)
            {
                TempData["Confirmation"] = "Depénse a été enregistré avec succès.";
                _context.Add(depense);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["MoisId"]        = new SelectList(_context.Mois, "MoisId", "Nom", depense.MoisId);
            ViewData["TypeDepenseId"] = new SelectList(_context.TypeDepenses, "TypeDepenseId", "Nom", depense.TypeDepenseId);
            return(View(depense));
        }
示例#13
0
        // GET: DepensesLocal/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Depense depense = db.Depenses.Find(id);

            if (depense == null)
            {
                return(HttpNotFound());
            }
            return(View(depense));
        }
        public void When_User_Devise_And_Depense_Devise_Are_Different_throws_ExceptionExeption()
        {
            //Arr

            var devise = new Devise()
            {
                Id = 1, Code = "AZE", Name = "AZEERteryty"
            };
            var devise2 = new Devise()
            {
                Id = 2, Code = "AAZ", Name = "AAEERteryty"
            };
            var user = new User()
            {
                Id = 1, FirstName = "aa", LastName = "bb", DeviseId = 1
            };
            var depense = new Depense()
            {
                Id = 1, DeviseId = 1, UserId = 1, Montant = 10, Date = DateTime.Now.AddDays(-1)
            };

            context.Depenses.Add(depense);

            context.Devises.AddRange(devise, devise2);
            context.Users.Add(user);
            context.SaveChangesAsync();
            var validator = new UpdateDepenseCommandValidator(context);

            UpdateDepenseCommand command = new UpdateDepenseCommand()
            {
                Id            = 1,
                UserId        = 1,
                Date          = DateTime.Now,
                NatureDepense = "Hotel",
                Montant       = 10,
                DeviseId      = 2,
                Commentaire   = "Commentaire"
            };

            //Act

            var result = validator.Validate(command, options => options.IncludeRuleSets("UpdateDepense"));

            //Ass

            result.Errors[0].ErrorMessage.Should().Be("La devise de la dépense doit être identique à celle de l'utilisateur.");

            result.IsValid.Should().BeFalse();
        }
示例#15
0
        private Depense ajouteDepense(int noService)
        {
            int noDepense     = dataContext.Depenses.Count() + 1;
            var nouvelDepense = new Depense
            {
                No           = noDepense,
                IdAbonnement = cmbAbonnePrincipal.SelectedValue.ToString(),
                DateDepense  = Convert.ToDateTime(lblDateDepense.Text),
                Montant      = montantNumberPick.Value,
                NoService    = noService,
                Remarque     = remarqueTextBox.Text
            };

            return(nouvelDepense);
        }
示例#16
0
        public ActionResult Create([Bind(Include = "codeOp,CodeImmeuble,CodeLocal,NumTypeDesignationDespense,Description")] Depense depense)
        {
            if (ModelState.IsValid)
            {
                db.Depenses.Add(depense);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.CodeImmeuble = new SelectList(db.Immeubles, "CodeImmeuble", "NomImmeuble", depense.CodeImmeuble);
            ViewBag.CodeLocal    = new SelectList(db.Locals, "CodeLocal", "TitreLocal", depense.CodeLocal);
            ViewBag.NumTypeDesignationDespense = new SelectList(db.TypeDesignationDepenses, "NumTypeDesignationDespense", "Description", depense.NumTypeDesignationDespense);
            ViewBag.codeOp = new SelectList(db.Operations, "codeOp", "codeOp", depense.codeOp);
            return(View(depense));
        }
        private Depense InsererDepense(int no, string idAbonnement, DateTime date, decimal montant, int noService, string remarque)
        {
            Depense depense = new Depense
            {
                No           = no,
                IdAbonnement = idAbonnement,
                DateDepense  = date,
                Montant      = montant,
                NoService    = noService,
                Remarque     = remarque
            };

            monDatatContext.Depenses.InsertOnSubmit(depense);

            return(depense);
        }
 public ActionResult ModifierDepensetest([Bind(Include = "codeOp,CodePers,codeType,montant,dateOp")] Operation operation,
                                         [Bind(Include = "codeOp,CodeImmeuble,CodeLocal,NumTypeDesignationDespense,Description")] Depense depense)
 {
     if (ModelState.IsValid)
     {
         db.Entry(depense).State   = EntityState.Modified;
         db.Entry(operation).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.codeOp   = new SelectList(db.Depenses, "codeOp", "Description", operation.codeOp);
     ViewBag.CodePers = new SelectList(db.Personnes, "CodePers", "nom", operation.CodePers);
     ViewBag.codeType = new SelectList(db.TypeOps, "codeType", "libelle", operation.codeType);
     ViewBag.codeOp   = new SelectList(db.PaiementLoyers, "codeOp", "MoyenPaiement", operation.codeOp);
     return(View(operation));
 }
        private void btnConfirmer_Click(object sender, EventArgs e)
        {
            string   idAbonnement = GetSelectedIdAbonnement();
            int      noDepense    = FindNextNoDepenseAvailable();
            int      noService    = FindNoServie();
            decimal  montant      = numMontant.Value;
            DateTime date         = DateTime.Now;
            string   remarque     = tbRemarque.Text == "" ? null : tbRemarque.Text;

            Depense depense = InsererDepense(noDepense, idAbonnement, date, montant, noService, remarque);

            if (Enregistrer())
            {
                new FrmInformationDepense(monDatatContext, depense).ShowDialog();
            }
        }
        public void When_Future_Date_Depense_Constructor_throws_ExceptionExeption()
        {
            //Arr

            var devise = new Devise()
            {
                Id = 1, Code = "AZE", Name = "AZEERteryty"
            };
            var user = new User()
            {
                Id = 1, FirstName = "aa", LastName = "bb", DeviseId = 1
            };
            var depense = new Depense()
            {
                Id = 1, DeviseId = 1, UserId = 1, Montant = 10, Date = DateTime.Now.AddDays(-1)
            };

            context.Depenses.Add(depense);
            context.Devises.Add(devise);
            context.Users.Add(user);

            context.SaveChangesAsync();

            var validator = new UpdateDepenseCommandValidator(context);

            UpdateDepenseCommand command = new UpdateDepenseCommand()
            {
                Id            = 1,
                UserId        = 1,
                Date          = DateTime.Now.AddDays(2),
                NatureDepense = "Hotel",
                Montant       = 10,
                DeviseId      = 1,
                Commentaire   = "Commentaire"
            };

            //Act

            var result = validator.Validate(command, options => options.IncludeRuleSets("UpdateDepense"));

            //Ass

            result.Errors[0].ErrorMessage.Should().Be("Une dépense ne peut pas avoir une date dans le futur.");

            result.IsValid.Should().BeFalse();
        }
        public async Task When_Valid_Properties__Return_Valid_Depense()
        {
            var date = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);


            var devise = new Devise()
            {
                Id = 1, Code = "AZE", Name = "AZEERteryty"
            };
            var user = new User()
            {
                Id = 1, FirstName = "aa", LastName = "bb", DeviseId = 1
            };
            var depense = new Depense()
            {
                Id = 1, DeviseId = 1, UserId = 1, Montant = 10, Date = date
            };


            context.Devises.Add(devise);
            context.Users.Add(user);
            context.Depenses.Add(depense);

            await context.SaveChangesAsync();

            var validator = new UpdateDepenseCommandValidator(context);

            //Arr
            UpdateDepenseCommand command = new UpdateDepenseCommand()
            {
                Id            = 1,
                UserId        = 1,
                Date          = DateTime.Now.AddDays(-1),
                NatureDepense = "Hotel",
                Montant       = 15,
                DeviseId      = 1,
                Commentaire   = "commentaire"
            };

            //Act

            var result = validator.Validate(command, options => options.IncludeRuleSets("UpdateDepense"));

            //Assert
            result.IsValid.Should().BeTrue();
        }
示例#22
0
        // GET: DepensesLocal/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Depense depense = db.Depenses.Find(id);

            if (depense == null)
            {
                return(HttpNotFound());
            }
            ViewBag.CodeImmeuble = new SelectList(db.Immeubles, "CodeImmeuble", "NomImmeuble", depense.CodeImmeuble);
            ViewBag.CodeLocal    = new SelectList(db.Locals, "CodeLocal", "TitreLocal", depense.CodeLocal);
            ViewBag.NumTypeDesignationDespense = new SelectList(db.TypeDesignationDepenses, "NumTypeDesignationDespense", "Description", depense.NumTypeDesignationDespense);
            ViewBag.codeOp = new SelectList(db.Operations, "codeOp", "Commentaire", depense.codeOp);
            return(View(depense));
        }
示例#23
0
        public async void Task_GetDepenseById_Return_OkResult()
        {
            //Arrange

            var item = new Depense()
            {
                Id = 3, UserId = 1, Date = DateTime.Now, DeviseId = 1, Montant = 10, NatureDepense = NatureDepense.Hotel, Commentaire = "comment"
            };

            mediator.Setup(m => m.Send(It.IsAny <GetDepenseByIdQuery>(), CancellationToken.None)).ReturnsAsync(item);
            var controller = new DepensesController(mediator.Object);

            //Act
            var data = await controller.GetById(3);

            //Assert
            Assert.IsType <OkObjectResult>(data);
        }
        public async Task When_User_Create_Depense_Same_Date_Same_Montant_throws_ExceptionExeption()
        {
            //Arr
            var date   = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
            var devise = new Devise()
            {
                Id = 1, Code = "AZE", Name = "AZEERteryty"
            };
            var user = new User()
            {
                Id = 1, FirstName = "aa", LastName = "bb", DeviseId = 1
            };
            var depense = new Depense()
            {
                Id = 1, DeviseId = 1, UserId = 1, Montant = 10, Date = date
            };

            context.Devises.Add(devise);
            context.Users.Add(user);
            context.Depenses.Add(depense);

            await context.SaveChangesAsync();

            var validator = new UpdateDepenseCommandValidator(context);

            UpdateDepenseCommand command = new UpdateDepenseCommand()
            {
                Id            = 1,
                UserId        = 1,
                Date          = date,
                NatureDepense = "Hotel",
                Montant       = 10,
                DeviseId      = 1,
                Commentaire   = "Commentaire"
            };

            //Act

            var result = validator.Validate(command, options => options.IncludeRuleSets("UpdateDepense"));

            //Ass
            result.Errors[0].ErrorMessage.Should().Be("Un utilisateur ne peut pas déclarer deux fois la même dépense (même date et même montant).");
        }
示例#25
0
 private void BtnSupprimer_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         if (TabDepense.SelectedIndex != -1)
         {
             Depense Tab = (Depense)TabDepense.SelectedItem;
             var     T   = Depense.getDepense(Tab.Id);
             T.Supprime = true;
             T.Delete();
             LoadTabDepense();
             InitChamps();
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
        public void When_Comment_IsNullOrEmpty_Date_Depense_Constructor_throws_ExceptionExeption(string commentaire)
        {
            //Arr

            var devise = new Devise()
            {
                Id = 1, Code = "AZE", Name = "AZEERteryty"
            };
            var user = new User()
            {
                Id = 1, FirstName = "aa", LastName = "bb", DeviseId = 1
            };
            var depense = new Depense()
            {
                Id = 1, DeviseId = 1, UserId = 1, Montant = 10, Date = DateTime.Now.AddDays(-1)
            };

            context.Depenses.Add(depense);

            context.Devises.Add(devise);
            context.Users.Add(user);
            context.SaveChangesAsync();
            var validator = new UpdateDepenseCommandValidator(context);

            UpdateDepenseCommand command = new UpdateDepenseCommand()
            {
                Id            = 1,
                UserId        = 1,
                Date          = DateTime.Now,
                NatureDepense = "Hotel",
                Montant       = 10,
                DeviseId      = 1,
                Commentaire   = commentaire
            };

            //Act

            var result = validator.Validate(command, options => options.IncludeRuleSets("UpdateDepense"));

            //Ass
            result.Errors[0].ErrorMessage.Should().Be("Le commentaire est obligatoire.");
        }
示例#27
0
            public async Task <int> Handle(CreateDepenseCommand command, CancellationToken cancellationToken)
            {
                var Depense = new Depense();

                Depense.UserId        = command.UserId;
                Depense.Date          = command.Date;
                Depense.NatureDepense = mapper.Map <NatureDepense>(command.NatureDepense);
                Depense.Montant       = command.Montant;
                Depense.DeviseId      = command.DeviseId;
                Depense.Commentaire   = command.Commentaire;

                Depense.Devise = _context.Devises.Find(command.DeviseId);
                Depense.User   = _context.Users.Find(command.UserId);

                _context.Depenses.Add(Depense);

                await _context.SaveChangesAsync();

                return(Depense.Id);
            }
示例#28
0
        public ActionResult EditingInline_Destroy([DataSourceRequest] DataSourceRequest request, Depense dep)
        {
            if (dep != null)
            {
                depenseCtx.DeleteDepense(dep);
            }

            return(Json(new[] { dep }.ToDataSourceResult(request, ModelState)));
        }
示例#29
0
        private void BtnValider_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                if (string.IsNullOrWhiteSpace(txtMontant.Text) ||
                    //cmbHistoriquePanne.SelectedIndex == -1 ||
                    cmbTypeDepense.SelectedIndex == -1
                    //cmbVoyage.SelectedIndex == -1
                    )
                {
                    MessageBox.Show("Veuillez remplir tous les champs !", "mTransport", MessageBoxButton.OK, MessageBoxImage.Error);
                }
                else
                {
                    Depense T = new Depense();
                    T.Montant = Decimal.Parse(txtMontant.Text);

                    var td = cmbTypeDepense.SelectedItem as LoadCombo;
                    T.IdTypeDepense = td.Id;
                    var vg = cmbVoyage.SelectedItem as LoadCombo;
                    if (voyageId > 0)
                    {
                        T.IdVoyage = vg.Id;
                    }
                    if (Id > 0)
                    {
                        T.Id = Id;
                        var k = Voyage.getVoyage(vg.Id);
                        var m = TypeDepense.getTypeDepense(td.Id);
                        T.TypeDepense = m;
                        if (voyageId > 0)
                        {
                            T.Voyage = k;
                        }

                        T.Update();
                        MessageBox.Show("Modification effectuée !");
                        LoadTabDepense();
                        GriserChamps();
                        Id = 0;
                    }
                    else
                    {
                        T.Insert();
                        var m = TypeDepense.getTypeDepense(td.Id);
                        T.TypeDepense = m;
                        if (voyageId > 0)
                        {
                            var k = Voyage.getVoyage(vg.Id);
                            T.Voyage = k;
                        }
                        ListDepense.Add(T);
                        TabDepense.Items.Refresh();
                        MessageBox.Show("Enregistrement effectué !");
                        GriserChamps();
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
示例#30
0
        private void btnAjoutDepense_Click(object sender, EventArgs e)
        {
            if (this.ValidateChildren(ValidationConstraints.ImmediateChildren))
            {
                List <Service> service       = new List <Service>();
                Service        serviceSelect = null;
                Service        serviceAjoute = null;
                Depense        depenseAjoute = null;
                if (Convert.ToInt32(empconnecter.NoTypeEmploye) != 1 && Convert.ToInt32(empconnecter.NoTypeEmploye) != 2 && Convert.ToInt32(empconnecter.NoTypeEmploye) != 3)
                {
                    string[] strTypesService = { "Magasin Pro Shop", "Restaurant", "Leçon de golf" };
                    string   strTypeSelect   = empconnecter.NoTypeEmploye.Equals(5) ? strTypesService[0] : empconnecter.NoTypeEmploye.Equals(6) ? strTypesService[1] : empconnecter.NoTypeEmploye.Equals(7) ? strTypesService[2] : "";
                    service = dataContext.Services.Where(c => c.NoEmploye.Equals(empconnecter.No)).Where(v => v.TypeService.Equals(strTypeSelect)).ToList();
                    if (service.Count > 0)
                    {
                        serviceSelect = service.First();
                        depenseAjoute = ajouteDepense(serviceSelect.No);
                    }
                    else
                    {
                        serviceAjoute = ajouteService(strTypeSelect);
                        depenseAjoute = ajouteDepense(serviceAjoute.No);
                    }
                }
                else
                {
                    service = dataContext.Services.Where(c => c.NoEmploye.Equals(empconnecter.No)).Where(v => v.TypeService.Equals(cmbTypeService.SelectedItem)).ToList();
                    if (service.Count > 0)
                    {
                        serviceSelect = service.First();
                        depenseAjoute = ajouteDepense(serviceSelect.No);
                    }
                    else
                    {
                        serviceAjoute = ajouteService(cmbTypeService.SelectedItem.ToString());
                        depenseAjoute = ajouteDepense(serviceAjoute.No);
                    }
                }

                using (var porteeTransaction = new TransactionScope())
                {
                    try
                    {
                        string strMessage = "La dépense a été ajouté";
                        if (serviceAjoute != null)
                        {
                            dataContext.Services.InsertOnSubmit(serviceAjoute);
                            strMessage += " et le service a été ajouté.";
                        }
                        if (depenseAjoute != null)
                        {
                            dataContext.Depenses.InsertOnSubmit(depenseAjoute);
                        }

                        dataContext.SubmitChanges(ConflictMode.ContinueOnConflict);
                        porteeTransaction.Complete();
                        MessageBox.Show(strMessage, "Enregistrement d'une dépense", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    catch (ChangeConflictException)
                    {
                        dataContext.ChangeConflicts.ResolveAll(RefreshMode.KeepCurrentValues);
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("La dépense n'a pas été ajouté" + ex, "Enregistrement d'une dépense", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
                this.Hide();
                frmInformationsDepenses frm = new frmInformationsDepenses(depenseAjoute);
                frm.ShowDialog();
            }
        }