public String AddFacture(Facture fact)
        {
            _gestionDb = new GcdbEntities();
            if (IsFactureExist(fact)) return "Facture existe déjà";

            _gestionDb.Factures.Add(fact);
            _gestionDb.SaveChanges();

            return "Facture ajouter avec succes";
        }
        public async Task <IActionResult> PostFacture([FromBody] Facture facture)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.Factures.Add(facture);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetFacture", new { id = facture.IdFacture }, facture));
        }
        private DocumentBilan DocumentFactureBase(Facture facture)
        {
            DocumentBilan doc = new DocumentBilan
            {
                Uid  = facture.Uid,
                Rno  = facture.Rno,
                No   = facture.No,
                Date = facture.Date.Value,
            };

            return(doc);
        }
Beispiel #4
0
        public void AddFacture(Compte compte, Installation installation)
        {
            decimal montantEquipements       = 0;
            decimal montantServicesDiffusion = 0;
            decimal montantFilms             = 0;

            foreach (Equipement e in compte.equipements)
            {
                montantEquipements += e.tarifMensuelLocation;
            }

            Client     client     = _clientService.GetClientByCompteId(compte.Id);
            Territoire territoire = _clientService.GetTerritoireByClientId(client.Id);
            IReadOnlyList <EstDesserviDans> est = _clientService.GetEstDesserviDansByTerritoireId(territoire.Id);

            foreach (EstDesserviDans e in est)
            {
                foreach (ServiceDiffusion s in compte.serviceDiffusions)
                {
                    if (s == e.serviceDiffusion)
                    {
                        montantServicesDiffusion += e.tarif;
                    }
                }
            }
            IReadOnlyList <LoueFilm> loues = _clientService.GetLoueFilmDuMois();
            List <Film> filmsVus           = new List <Film>();

            Film film;

            foreach (LoueFilm l in loues)
            {
                film          = _clientService.GetFilmByLoueFilm(l.Id);
                montantFilms += film.montantLocation;
                filmsVus.Add(film);
            }


            Facture facture;

            if (installation == null)
            {
                facture = new Facture(montantFilms, montantEquipements, montantServicesDiffusion, 0, compte, filmsVus);
            }
            else
            {
                facture = new Facture(montantFilms, montantEquipements, montantServicesDiffusion, installation.frais, compte, filmsVus);
            }



            _clientService.AddFacture(facture);
        }
Beispiel #5
0
        public void DeleteBill(Facture facture)
        {
            var id = facture.idFacture;

            if (id != null)
            {
                lock (collisionLock)
                {
                    database.Delete(facture);
                }
            }
            this.Bills.Remove(facture);
        }
Beispiel #6
0
        public IActionResult GetById(int id)
        {
            Facture facture = _factureService.GetById(id);

            if (facture == null)
            {
                return(NotFound("Facture not found"));
            }

            var factureDTO = _mapper.Map <FactureDTO>(facture);

            return(Ok(factureDTO));
        }
Beispiel #7
0
        public IActionResult Delete(int id)
        {
            Facture facture = _factureService.GetById(id);

            if (facture == null)
            {
                throw new AppException("Facture not found");
            }

            _fileService.DeleteDirectory(Path.Combine("Jobs", facture.JobId.ToString(), "internalFactures", id.ToString()));
            _factureService.Delete(id);
            return(NoContent());
        }
        public async Task <IActionResult> Create([Bind("Id,IdClient,DateFacture,DatePaiement,CodeModePaiement")] Facture facture)
        {
            if (ModelState.IsValid)
            {
                _context.Add(facture);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["CodeModePaiement"] = new SelectList(_context.ModePaiement, "Code", "Code", facture.CodeModePaiement);
            ViewData["IdClient"]         = new SelectList(_context.Client, "Id", "Civilite", facture.IdClient);
            return(View(facture));
        }
        public async Task <IActionResult> Create([Bind("Id,IdClient,NoFacture,DateEmission,DateReglement,Description")] Facture facture)
        {
            if (ModelState.IsValid)
            {
                facture.Id = Guid.NewGuid();
                _context.Add(facture);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["IdClient"] = new SelectList(_context.Clients, "Id", "Nom", facture.IdClient);
            return(View(facture));
        }
Beispiel #10
0
        public async Task <IActionResult> Create([Bind("FactureID,CompteurEauID,TarifID,DateFacture,FactureDe,Montant,ValeurCompteur,ValeurCompteurPrecedente,isPayee,Consomation")] Facture facture)
        {
            if (ModelState.IsValid)
            {
                _context.Add(facture);
                await _context.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            ViewData["CompteurEauID"] = new SelectList(_context.CompteurEaus, "CompteurEauID", "Numero", facture.CompteurEauID);
            ViewData["TarifID"]       = new SelectList(_context.Tarifs, "TarifID", "Montant", facture.TarifID);
            return(View(facture));
        }
Beispiel #11
0
    protected void Button1_Click(object sender, EventArgs e)
    {
        //insert new facture
        int insuranceCompanyID = 14;
        //get all policies in period
        DateTime          fromDate     = new DateTime(2012, 1, 1);
        DateTime          toDate       = new DateTime(2012, 12, 31);
        List <LifePolicy> listPolicies = LifePolicyBrokerage.Table.Where(c => c.FromDate.Date >= fromDate.Date && c.FromDate.Date <= toDate.Date && c.IsFactured == false).Select(c => c.LifePolicy).ToList();
        //calculate brokerage value for current year


        Facture f = new Facture();
    }
Beispiel #12
0
        private static void runCreationFacture()
        {
            Client  client  = ClientController.Instance.AjouterClient("Bugeavel-Track", "Amede", "3 rue du petit paris", "", "44950", "Flurne sur Loire", "0666785713", "Non", "*****@*****.**", "Pas de remarque", false);
            Facture facture = FactureStore.Instance.Ajouter(client, DateTime.Now.ToUniversalTime(), Facture.eFactureEtats.a_imprimer, 135, DateTime.Now.ToUniversalTime(), false);

            Console.WriteLine("INSERT");
            Console.ReadKey();
            Console.WriteLine("UPDATE");
            FactureStore.Instance.Modifier(facture, client, DateTime.Now.ToUniversalTime(), Facture.eFactureEtats.payee, 2500, DateTime.Now.ToUniversalTime(), false);
            Console.ReadKey();
            Console.WriteLine("DELETE");
            FactureStore.Instance.Supprimer(facture);
        }
Beispiel #13
0
        public ActionResult Create(Facture facture)
        {
            if (ModelState.IsValid)
            {
                facture.DataPlatnosci   = DateTime.Now;
                facture.DataWystawienia = DateTime.Now;
                db.Facture.Add(facture);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(facture));
        }
        public static CourrierArriveInterne getCourrierByRef(string ref_cour)
        {
            SqlConnection cnx = new SqlConnection(ConfigurationManager.AppSettings["cnx"].ToString());

            cnx.Open();
            SqlCommand    cmd = new SqlCommand(String.Format("select cou.ref_cour,f.ref_cour,cou.type,nature,date_creation,objet,etat,reponse,courrier_reponse,ref_dos,c.nom,device,montant,ag.nom,ag.prenom,un.nom,date_cour,date_arrivee,cou.id_agent_ua from courrier cou,contacts c,agent_ua ag,unites un,courrier_arrive_interne cai  LEFT OUTER JOIN facture f ON cai.ref_cour=f.ref_cour where cou.ref_cour=cai.ref_cour and cai.id_contact=c.id_contact and cou.id_agent_ua=ag.id_agent and ag.id_unit=un.id_unit and cou.ref_cour = '{0}'", ref_cour), cnx);
            SqlDataReader dr  = cmd.ExecuteReader();

            CourrierArriveInterne c = new CourrierArriveInterne();

            if (dr != null && dr.HasRows)
            {
                if (dr.Read())
                {
                    if (!dr.IsDBNull(1))
                    {
                        c = new Facture();
                    }
                    else
                    {
                        c = new CourrierArriveInterne();
                    }

                    c.setReference(dr.GetString(0));
                    c.setTypecr(dr.GetString(2));
                    c.setNature(dr.GetString(3));
                    c.setDate_creation(dr.GetDateTime(4));
                    c.setObjet(dr.GetString(5));
                    c.setEtat(dr.GetString(6));
                    c.setReponse(dr.GetBoolean(7));
                    c.setCourrier_Reponse(!dr.IsDBNull(8) ? new Courrier(dr.GetString(8)) : null);
                    c.setDossier((!dr.IsDBNull(9) ? new Dossier(dr.GetString(9)) : null));

                    c.setExpediteur(new Contact(dr.GetString(10)));
                    if (c is Facture)
                    {
                        ((Facture)c).setDevice(dr.GetString(11));
                        ((Facture)c).setMontant((float)dr.GetSqlDecimal(12).Value);
                    }
                    c.setAgentUA(new AgentUA(dr.GetInt32(18), dr.GetString(13), dr.GetString(14), new Unite(dr.GetString(15))));
                    c.setDate_Courrier(dr.GetDateTime(16));
                    c.setDate_Arrivee(dr.GetDateTime(17));
                }

                cnx.Close();
                dr.Close();
                return(c);
            }

            return(null);
        }
Beispiel #15
0
        /* Facture */
        public Facture GetSpecificFacture(string path)
        {
            Facture facture = new Facture();

            try
            {
                Task <Facture> task = Task.Run(async() => await GetSpecificFactureAsync(path));
                task.Wait();
                facture = task.Result;
            }
            catch (Exception) { }

            return(facture);
        }
Beispiel #16
0
        /* Facture */
        private async Task <Facture> GetSpecificFactureAsync(string path)
        {
            HttpResponseMessage response = await _client.GetAsync(path);

            if (response.IsSuccessStatusCode)
            {
                string data = await response.Content.ReadAsStringAsync();

                Facture facture = JsonConvert.DeserializeObject <Facture>(data);
                return(facture);
            }

            return(new Facture());
        }
Beispiel #17
0
        public IHttpActionResult DeleteFacture(int id)
        {
            Facture facture = db.Facture.Find(id);

            if (facture == null)
            {
                return(NotFound());
            }

            db.Facture.Remove(facture);
            db.SaveChanges();

            return(Ok(facture));
        }
Beispiel #18
0
        // GET: Factures/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Facture facture = unitOfWork.FactureRepository.GetByID(id);

            if (facture == null)
            {
                return(HttpNotFound());
            }
            return(View(facture));
        }
Beispiel #19
0
        private static void TotalRemiseDoc(RemiseFacture r, Facture doc)
        {
            double qte = 0;

            foreach (Contenu c in doc.Contenus)
            {
                qte += c.Quantite;
            }
            Remise r_     = r.Remise;
            double remise = MontantRemise(r.Remise, qte, doc.MontantTTC);

            r.Montant          = remise;
            doc.MontantRemise += remise;
        }
Beispiel #20
0
        public void UpdateFactureTest()
        {
            Assert.AreEqual(0, dataService.GetAllFactures().Count());
            dataService.AddClient("Andrzej", "Nowak", 123456789);
            dataService.AddClient("Marian", "Kowalski", 987654321);
            dataService.AddCar("Skoda", "Fabia", "Style", 210, "Silver Metalic", VehicleType.Small_car, FuelType.Petrol, Transmission.Manual);
            dataService.AddWarehouseItem(dataService.GetAllCars().First(), 10000);
            dataService.AddFacture(dataService.GetAllClients().First(), dataService.GetAllWarehouseItems().First());
            Facture f2 = new Facture(dataService.GetAllClients().Last(), dataService.GetAllWarehouseItems().First(), new Guid(), DateTime.Now);

            dataService.updateFacture(dataService.GetAllFactures().First().Id, f2);

            Assert.AreEqual(dataService.GetAllFactures().First(), f2);
        }
Beispiel #21
0
        // GET: Factures/Details/5
        public async Task <ActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Facture facture = await db.Facture.FindAsync(id);

            if (facture == null)
            {
                return(HttpNotFound());
            }
            return(View(facture));
        }
        private void FormFactures_Afficher_Load(object sender, EventArgs e)
        {
            _factureCourante = MgtFacture.GetFacture(CodeFacture);

            richTBox_Facture.TabStop   = false;
            richTBox_Facture.ReadOnly  = true;
            richTBox_Facture.BackColor = Color.White;
            richTBox_Facture.Cursor    = Cursors.Arrow;

            AfficherEntête();
            AfficherConsultation();
            AfficherTotal();
            AfficherSignature();
        }
 public ActionResult AjouterFacture(Facture f)
 {
     if (ModelState.IsValid)
     {
         f.Actif         = true;
         f.UtilisateurId = Convert.ToInt32(Session["ClientId"]);
         iclient.ajouterFacture(f);
         return(RedirectToAction("LoggedIn", "Client"));
     }
     else
     {
         return(View(f));
     }
 }
Beispiel #24
0
        public void GetEventsInTime_Test_WithNewEvent()
        {
            GetEventsInTime_Test();
            var c = new Client("Norbert", "Gierczak", "*****@*****.**", "Katowice");
            var p = new Product(Guid.NewGuid(), "Topór", "Broń ostra, można nią rzucać", "Broń");
            var o = new Offer(p, 450.00m, 0.23m, 2);
            var e = new Facture(Guid.NewGuid(), c, o, DateTimeOffset.Now.AddDays(-2), 1);

            _dataRepository.AddClient(c);
            _dataRepository.AddProduct(p);
            _dataRepository.AddOffer(o);
            _dataRepository.AddEvent(e);
            Assert.AreEqual(2, _dataRepository.GetEventsInTime(DateTimeOffset.Now.AddDays(-7), DateTimeOffset.Now).Count());
        }
Beispiel #25
0
        public List <Facture> GetListeFacture()
        {
            List <Facture> Factures = new List <Facture>();

            DataTable MyTable = new DataTable();

            MyTable = Dal.SelectAllFacture();
            foreach (DataRow row in MyTable.Rows)
            {
                Facture fact = new Facture((string)row[0], (DateTime)row[1], (double)row[2], GetClientById((int)row[3]));
                Factures.Add(fact);
            }
            return(Factures);
        }
 public ActionResult <Facture> Post([FromBody] Facture newFacture)
 {
     if (ModelState.IsValid)
     {
         newFacture.Created  = DateTime.Now;
         newFacture.Expected = newFacture.Created + TimeSpan.FromDays(30);
         _data.AjouterFacture(newFacture);
         return(Created($"factures/{newFacture.NumeroFacture}", newFacture));
     }
     else
     {
         return(BadRequest(ModelState.Values));
     }
 }
Beispiel #27
0
        // GET: Factures/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Facture facture = unitOfWork.FactureRepository.GetByID(id);

            if (facture == null)
            {
                return(HttpNotFound());
            }
            ViewBag.Seance_ID = new SelectList(unitOfWork.SeanceRepository.Get(), "Seance_ID", "Adresse", facture.Seance_ID);
            return(View(facture));
        }
Beispiel #28
0
 //
 //Actually we will use just the update method cuz we import the list of bills, we don't create any bill
 //
 public Facture SaveBill(Facture facture)
 {
     lock (collisionLock)
     {
         if (facture.idFacture != null)//this bill already exists
         {
             database.Update(facture);
         }
         else
         {
             database.Insert(facture);
         }
         return(facture);
     }
 }
Beispiel #29
0
 public static void TotalRRRDoc(Facture doc)
 {
     if (doc.Remises != null)
     {
         foreach (RemiseFacture r in doc.Remises)
         {
             if (r.Remise != null)
             {
                 double mtant = doc.MontantTTC;
                 TotalRemiseDoc(r, doc);
                 doc.MontantTTC = mtant - r.Montant;
             }
         }
     }
 }
Beispiel #30
0
        public void Delete(int id)
        {
            Facture facture = GetById(id);

            if (facture == null)
            {
                throw new AppException("Facture not found");
            }
            _context.Factures.Remove(facture);
            _context.SaveChanges();

            Job job = _jobService.GetById(facture.JobId);

            _jobService.RecalculateFactures(job);
        }
        public void FillDataGrid()
        {
            Facture filter = new Facture();

            String clientName = clientNameInput.Text;
            String idFacture  = idFactureInput.Text;

            filter = new Facture(idFacture);

            filter.Client.Name = clientName;

            DataTable dataTable = service.getFilteredFactureList(filter);

            facturesDataGrid.DataContext = dataTable;
        }
        private void InvoiceBtn_Click(object sender, RoutedEventArgs e)
        {
            String message = Enregistrer();
               if (!message.Equals("Votre commande a été enregistrer avec succes")) return;
                OrderClient oc = new OrderClient();
                Order ordre = oc.GetOrderById(theOrder.OrderID);

                if (ordre == null) return;

                /* Ajout de la fcture dans la base de données */

                var settingsClient = new SettingsClient();
             //   Setting settings = settingsClient.GetSetting();
                Order getOrder = GetTheOrder(ordre);
            var facture = new Facture
            {
                FactureDate = DateTime.Now,
                Order = getOrder,
               // FactureNum = Convert.ToInt32(settings.FactureNumber),
                TVA = _tvaClient.GetTvaByName(_tvaValue.ToString(CultureInfo.InvariantCulture)),
                TypePayment = "Espèce",
                Status = 0,
                Type = "Facture"
            };
            gestionDb.Factures.Add(facture);
            gestionDb.SaveChanges();
            //ou facture proforma
               // factureClient.AddFacture(facture);

                /* fin de l'ajout de la facture a la base de données */

                /* debut de l'impression de la facture */

            FactureCase factureCase = new FactureCase
            {
                Order = getOrder,
                TotalHt = _total,
                Ttc = _ttc,
                Tva = _tvaValue,
                Timbre = _timbre,
                Numbre = facture.FactureNum.ToString(),
                Facture = facture
            };
            Initialiser();

            //InvoiceReport report = new InvoiceReport(factureCase)
            //{
            //    PayMode = facture.TypePayment
            //};

            // if (settings.Logo != null) report.Logo = Validator.ConvertByteArrayToImage(settings.Logo);
            //report.HeaderContent = "ITCastle Company   Boumerdes";
            //report.SetSettings();
                //PrintHelper.ShowPrintPreview(null, report).WindowState = WindowState.Maximized;

                //settings.FactureNumber = (Convert.ToInt32(settings.FactureNumber) + 1).ToString();
                //SettingsClient.MajSettings(settings);

                /* fin de modifiction de l'après impression de la facture */
        }
        /// <summary>
        /// Ajoute une nouvelle Facture à la liste à l'aide d'une nouvelle fenêtre
        /// </summary>
        public Facture Add()
        {
            //Affichage du message "ajout en cours"
            ((App)App.Current)._theMainWindow.progressBarMainWindow.IsIndeterminate = true;
            ((App)App.Current)._theMainWindow.changementTexteStatusBar("Ajout d'une facture en cours ...");

            //Initialisation de la fenêtre
            ProformaClientWindow factureWindow = new ProformaClientWindow();

            //Création de l'objet temporaire
            Facture tmp = new Facture();
            tmp.Proforma_Client = new Proforma_Client();

            //Mise de l'objet temporaire dans le datacontext
            factureWindow.DataContext = tmp;

            //booléen nullable vrai ou faux ou null
            bool? dialogResult = factureWindow.ShowDialog();

            if (dialogResult.HasValue && dialogResult.Value == true)
            {
                //Si j'appuie sur le bouton Ok, je renvoi l'objet DAO se trouvant dans le datacontext de la fenêtre
                return (Facture)factureWindow.DataContext;
            }
            else
            {
                try
                {
                    //On détache la commande
                    ((App)App.Current).mySitaffEntities.Detach((Facture)factureWindow.DataContext);
                }
                catch (Exception)
                {
                }

                //Si j'appuie sur le bouton annuler, je préviens que j'annule mon ajout
                ((App)App.Current)._theMainWindow.progressBarMainWindow.IsIndeterminate = false;
                this.recalculMax();
                ((App)App.Current)._theMainWindow.changementTexteStatusBar("Ajout d'une facture annulé : " + this.listFacture.Count() + " / " + this.max);

                return null;
            }
        }
 public void SaveFacture(Facture facture)
 {
     DdAcessSinglethon.Instance.AddFacture(facture);
 }
        /// <summary>
        /// duplique une Commande_Fournisseur à la liste à l'aide d'une nouvelle fenêtre
        /// </summary>
        public Facture Duplicate()
        {
            if (this._DataGridMain.SelectedItem != null)
            {
                if (this._DataGridMain.SelectedItems.Count == 1)
                {
                    //Affichage du message "ajout en cours"
                    ((App)App.Current)._theMainWindow.progressBarMainWindow.IsIndeterminate = true;
                    ((App)App.Current)._theMainWindow.changementTexteStatusBar("Dupliquer une facture en cours ...");

                    //Création de la fenêtre
                    FactureWindow factureWindow = new FactureWindow();

                    //Duplication de la commande sélectionnée
                    Facture tmp = new Facture();
                    tmp = duplicateFacture((Facture)this._DataGridMain.SelectedItem);

                    //Association de l'élement dupliqué au datacontext de la fenêtre
                    factureWindow.DataContext = tmp;

                    //booléen nullable vrai ou faux ou null
                    bool? dialogResult = factureWindow.ShowDialog();

                    if (dialogResult.HasValue && dialogResult.Value == true)
                    {
                        return (Facture)factureWindow.DataContext;
                    }
                    else
                    {
                        try
                        {
                            //On détache la commande
                            ((App)App.Current).mySitaffEntities.Detach((Facture)factureWindow.DataContext);
                        }
                        catch (Exception)
                        {
                        }

                        //Si j'appuie sur le bouton annuler, je préviens que j'annule mon ajout
                        ((App)App.Current)._theMainWindow.progressBarMainWindow.IsIndeterminate = false;
                        this.recalculMax();
                        ((App)App.Current)._theMainWindow.changementTexteStatusBar("Dupliquer une facture annulé : " + this.listFacture.Count() + " / " + this.max);

                        return null;
                    }
                }
                else
                {
                    MessageBox.Show("Vous ne devez sélectionner qu'une seule facture.", "Attention", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                    return null;
                }
            }
            else
            {
                MessageBox.Show("Vous devez sélectionner une facture.", "Attention", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                return null;
            }
        }
        private static bool IsFactureExist(Facture fact)
        {
            try
            {
              var  thegestionDb = new GcdbEntities();

              var requete = from t in thegestionDb.Factures
                          where t.FactureID.Equals(fact.FactureID)
                          select t;

            if (requete.ToList().Count != 0) return true;
            }
             catch (Exception)
             {

                 return false;
             }

            return false;
        }
        private void AddFactureBtn_Click(object sender, RoutedEventArgs e)
        {
            //facture adding
            //Verify that the invoice doesn't exist

            CustomerOrder order = (CustomerOrder)DgFactures.GetFocusedRow();
            // Get selected TVA

            TVA tva = (TVA)CbTva.EditValue;

            var facturesClient = new FacturesClient();
            Facture factures = new Facture
            {
                FactureDate = DtFactureDate.DateTime,
                TypePayment = CbPayment.Text,
                TVA = tva,
                Order = order.Order,
                FactureNum = facturesClient.RetrieveFactureNumber(NumTxtBox.Text)
            };

            //  f.Total = factures.GetSaleTotal(order,tva);
            facturesClient.AddFacture(factures);
            DXMessageBox.Show("Facture ajoutée avec success.");

            PrintBtn.IsEnabled = true;
        }
        /// <summary>
        /// Met à jour l'état en bas pour l'utilisateur
        /// </summary>
        /// <param name="typeEtat">texte : "Filtrage", "Ajout", "Modification", "Suppression", "Look", "" ("" = Chargement)</param>
        /// <param name="dao">un objet Commande_Fournisseur soit pour l'ajouter au listing, soit pour afficher qui a été modifié ou supprimé</param>
        public void MiseAJourEtat(string typeEtat, Facture fac)
        {
            //Je racalcul le nombre max d'élements
            this.recalculMax();
            //En fonction de l'action, j'affiche le message
            if (typeEtat == "Filtrage")
            {
                ((App)App.Current)._theMainWindow.changementTexteStatusBar("filtrage des factures terminée : " + this.listFacture.Count() + " / " + this.max);
            }
            else if (typeEtat == "Ajout")
            {
                //J'ajoute la commande_fournisseur dans le linsting
                this.listFacture.Add(fac);
                //Je racalcul le nombre max d'élements après l'ajout
                this.recalculMax();
                ((App)App.Current)._theMainWindow.changementTexteStatusBar("Ajout d'une facture numéro '" + fac.Numero + "' effectué avec succès. Nombre d'élements : " + this.listFacture.Count() + " / " + this.max);
            }
            else if (typeEtat == "Modification")
            {
                //Je raffraichis mon datagrid
                this._DataGridMain.Items.Refresh();
                ((App)App.Current)._theMainWindow.changementTexteStatusBar("Modification de la facture numéro : '" + fac.Numero + "' effectuée avec succès. Nombre d'élements : " + this.listFacture.Count() + " / " + this.max);
            }
            else if (typeEtat == "Suppression")
            {
                //Je supprime de mon listing l'élément supprimé
                this.listFacture.Remove(fac);
                //Je racalcul le nombre max d'élements après la suppression
                this.recalculMax();
                ((App)App.Current)._theMainWindow.changementTexteStatusBar("Suppression de la facture numéro : '" + fac.Numero + "' effectuée avec succès. Nombre d'élements : " + this.listFacture.Count() + " / " + this.max);
            }
            else if (typeEtat == "Look")
            {

            }
            else
            {
                ((App)App.Current)._theMainWindow.changementTexteStatusBar("Chargement des factures terminé : " + this.listFacture.Count() + " / " + this.max);
            }
            //Je retri les données dans le sens par défaut
            this.triDatas();
            //J'arrete la progressbar
            ((App)App.Current)._theMainWindow.progressBarMainWindow.IsIndeterminate = false;
        }
        private void PInvoiceBtn_Click(object sender, RoutedEventArgs e)
        {
            if(theOrder==null)return;

            /* Ajout de la facture dans la base de données */

               // var settingsClient = new SettingsClient();
              //  Setting settings = settingsClient.GetSetting();
            Order getOrder = gestionDb.Orders.FirstOrDefault(c => c.OrderID == theOrder.OrderID);
            var facture = new Facture
            {
                FactureDate = DateTime.Now,
                Order = getOrder,
                TVA = _tvaClient.GetTvaByName(_tvaValue.ToString(CultureInfo.InvariantCulture)),
                TypePayment = "Espèce",
                Status = 10,
                Type = "Facture Proforma"
            };
            gestionDb.Factures.Add(facture);
            gestionDb.SaveChanges();

            /* fin de l'ajout de la facture a la base de données */

            /* debut de l'impression de la facture */

            FactureCase factureCase = new FactureCase
            {
                Order = theOrder,
                TotalHt = _total,
                Ttc = _ttc,
                Tva = _tvaValue,
                Timbre = _timbre,
                Numbre = facture.FactureNum.ToString(),
                Facture = facture
            };
            Initialiser();

              //  InvoiceReport report = new InvoiceReport(factureCase);

              // // if (settings.Logo != null)  report.Logo = Validator.ConvertByteArrayToImage(settings.Logo);
              //  //report.HeaderContent = "ITCastle Company   Boumerdes";
              //  report.PayMode = facture.TypePayment;
              //  report.SetSettings();
              //  PrintHelper.ShowPrintPreview(null, report);//.WindowState = WindowState.Maximized;

              ////  settings.FactureProNumber = (Convert.ToInt32(settings.FactureProNumber) + 1).ToString();
              // // SettingsClient.MajSettings(settings);

              //  /* fin de modifiction de l'après impression de la facture */
        }
        private void PrintBtn_Click(object sender, RoutedEventArgs e)
        {
            if (DgFactures.VisibleRowCount == 0) return;
            int rowHandle = DgFactures.View.FocusedRowHandle;
            if (rowHandle < 0) return;
            var orderClient = new OrderClient();
            var ordre = orderClient.GetOrderById(Convert.ToInt32(DgFactures.GetCellValue(rowHandle, "OrderID")));

            if (ordre == null) return;

            /* la fcture dans la base de données */

            var factureClient = new FacturesClient();
            var facture = new Facture
            {
                FactureDate = DateTime.Now,
                Order = ordre,
                FactureNum = Convert.ToInt32(NumTxtBox.Text),
                TVA = _tvaClient.GetTvaByName(_tva.ToString()),
                TypePayment = CbPayment.Text,
                Status = 0,
                Type = TypeFacture
            };
            //ou facture proforma
            factureClient.AddFacture(facture);

            /* fin de l'ajout de la facture a la base de données */

            /* debut de l'impression de la facture */
            var settingsClient = new SettingsClient();
            Setting settings = settingsClient.GetSetting();

            FactureCase factureCase = new FactureCase
            {
                Order = ordre,
                TotalHt = _total,
                Ttc = _ttc,
                Tva = _tva,
                Timbre = _timbre,
                Numbre = NumTxtBox.Text,
                Facture = facture
            };

            //var report = new InvoiceReport(factureCase);

            //if (settings.Logo!= null)  report.Logo = Validator.ConvertByteArrayToImage(settings.Logo);
            ////report.HeaderContent = "ITCastle Company   Boumerdes";
            //report.PayMode = CbPayment.Text;
            //report.SetSettings();
            //PrintHelper.ShowPrintPreview(null, report).WindowState = WindowState.Maximized;

            /* fin de l'impression de la facture */

            /* debut de modifiction de l'après impression de la facture */

            settings.FactureNumber = (Convert.ToInt32(settings.FactureNumber) + 1).ToString();
            SettingsClient.MajSettings(settings);
            LoadGridFact();

            /* fin de modifiction de l'après impression de la facture */
        }
        /// <summary>
        /// duplique la facture passée en paramètre
        /// </summary>
        /// <param name="itemToCopy">facture à dupliquer</param>
        private Facture duplicateFacture(Facture itemToCopy)
        {
            Facture tmp = new Facture();

            tmp.Affaire1 = itemToCopy.Affaire1;
            tmp.Commande1 = itemToCopy.Commande1;
            tmp.Condition_Reglement1 = itemToCopy.Condition_Reglement1;
            tmp.Date_Facture = itemToCopy.Date_Facture;
            tmp.Numero = itemToCopy.Numero;
            tmp.Contact1 = itemToCopy.Contact1;
            tmp.Date_Echeance = itemToCopy.Date_Echeance;
            tmp.Entreprise_Mere1 = itemToCopy.Entreprise_Mere1;
            tmp.Exonere = itemToCopy.Exonere;
            tmp.Exporte_Maxima = itemToCopy.Exporte_Maxima;
            tmp.Numero = itemToCopy.Numero;
            tmp.Salarie = itemToCopy.Salarie;
            tmp.Condition_Reglement1 = itemToCopy.Condition_Reglement1;
            tmp.Commentaire_Contenu = itemToCopy.Commentaire_Contenu;
            tmp.Commentaire = itemToCopy.Commentaire;
            tmp.Client1 = itemToCopy.Client1;
            tmp.Facture_Client = new Facture_Client();

            return tmp;
        }