//************************************************************************************************** // Vérification des connexions à la fin du chargement du formulaire //************************************************************************************************** private void DispatcherForm_Load(object sender, EventArgs e) { bool reponseTest = AccesWebServices.testAccesWS(); if (!reponseTest) { MessageToast.Show("Pas de Vérification Email", "Erreur connexion internet", 10); MessageToast.Show("Pas d'envoi de SMS Disponible", "Erreur connexion internet", 10); } // On charge kes listes civilités et etatClient. // En cas d'échec à la BDD on ferme l'application try { recupererUtilisateurConnecte(); ChargementListes.chargementDesListe(); afficherListeTechnicienActif(); afficherListeClients(); menuStripDispatcher.Enabled = true; } catch (Exception ex) { MessageBox.Show(ex.Message); Application.Exit(); // on ferme l'application car pas de connexion BDD } }
//************************************************************************************************** // envoi de la requête vers le web service en https https://domy59efficom.eu/WebServiceSms.asmx // l'utilisateur avec son login est envoyé dans l'entête // le corps du sms est envoyé dans le corps de la requête private void btnEnvoyerMessage_Click(object sender, EventArgs e) { try { if ((UtilisateurConnecte.Login != String.Empty) && (mTxtBoxNumtel.Text != String.Empty))// && (txtBoxMdpEnvoi.Text != String.Empty)) { // On prépare l'objet utilisateur transmis via l'entete soap AuthentificationEnteteSoap authentication = new AuthentificationEnteteSoap(); Utilisateur utilisateur = new Utilisateur(); utilisateur.Login = UtilisateurConnecte.Login; utilisateur.Password = passwordEnvoiSMS; // mot de passe standard pour l'envoi sms authentication.user = utilisateur; // On passe l'utilisateur dans l'entête soap AccesWebServices.ProxySMS.AuthentificationEnteteSoapValue = authentication; // on transmet l'authentification via l'entete http // Envoi du SMS sms = new Sms(); sms.NumDestinataire = mTxtBoxNumtel.Text; sms.TextMessage = richTextBoxMessage.Text; MessageToast.Show(AccesWebServices.ProxySMS.envoyerSms(sms), "Message du webService SMS", 10); } } catch (Exception) { MessageBox.Show("Impossible de joindre le serveur d'envoi SMS"); } }
//************************************************************************************************** private void btnAjouterTechnicien_Click(object sender, EventArgs e) { // créer un technicien et lui affecte les champs remplis Technicien monTechnicien = new Technicien(); if ((textBoxNom.Text != String.Empty) && (textBoxPrenom.Text != String.Empty) && (textBoxLoginT.Text != String.Empty) && (txtBoxMdp.Text != String.Empty)) { using (TechnicienManager technicienManager = new TechnicienManager()) { monTechnicien.Nom = textBoxNom.Text.Trim(); monTechnicien.Prenom = textBoxPrenom.Text.Trim(); monTechnicien.LoginT = textBoxLoginT.Text.Trim(); monTechnicien.PasswdT = Utils.getMd5Hash(txtBoxMdp.Text.Trim()); bool resultat = technicienManager.ajoutModifTechnicien(ref monTechnicien); // On ajoute le technicien en BDD if (resultat) // si l'ajout s'est bien passé { MessageToast.Show("Technicien ajouté avec succès"); } else { MessageToast.Show("Les champs remplis sont incorrectes"); } } } else { MessageBox.Show("Merci de remplir tous les champs"); } }
//************************************************************************************************** private void btnModifierTechnicien_Click(object sender, EventArgs e) { if ((technicienSelectionne != null) && (textBoxNom.Text.Trim() != String.Empty) && (textBoxPrenom.Text.Trim() != String.Empty) && (textBoxLoginT.Text.Trim() != String.Empty) && (txtBoxMdp.Text.Trim() != String.Empty)) { using (TechnicienManager technicienManager = new TechnicienManager()) { technicienSelectionne.Nom = textBoxNom.Text.Trim(); technicienSelectionne.Prenom = textBoxPrenom.Text.Trim(); technicienSelectionne.LoginT = textBoxLoginT.Text.Trim(); technicienSelectionne.PasswdT = Utils.getMd5Hash(txtBoxMdp.Text.Trim()); bool resultat = technicienManager.ajoutModifTechnicien(ref technicienSelectionne); if (resultat) // Test si tout s'est bien passé { MessageToast.Show("Technicien modifié avec succès"); RafraichirIHM(); } else { MessageToast.Show("Problème accès BDD ?"); } } } else { MessageBox.Show("Sélectionner un technicien et remplir tous les champs"); } }
//************************************************************************************************** private void btnModifierMateriel_Click(object sender, EventArgs e) { // On récupère Tous les attributs du matériel using (MaterielManager materielManager = new MaterielManager()) { materielSelectionne.TypeMateriel = textBoxTypeMateriel.Text.Trim(); materielSelectionne.NumeroTel = mTxtBoxNumtel.Text.Trim(); materielSelectionne.Imei = textBoxCodeIMEI.Text.Trim(); materielSelectionne.IdGoogle = textBoxIdGoogle.Text.Trim(); // il faut chercher si un technicien a en usage le matériel // si oui et si etatMatériel n'est pas égale à enService il faut // l'enlever de l'affectation du technicien using (TechnicienManager technicienManager = new TechnicienManager()) { Technicien technicien = new Technicien(); technicien.FkIdMateriel = materielSelectionne.IdMateriel; // on recherche le technicien qui possédait le matériel technicien = technicienManager.getTechnicien(technicien); if ((materielSelectionne.EtatMateriel == "enService") && ((string)comBoxEtatMatériel.SelectedItem != "enService")) { // il faut retirer l'affectation du matériel au technicien technicien.FkIdMateriel = 0; technicienManager.ajoutModifTechnicien(ref technicien); } } materielSelectionne.EtatMateriel = comBoxEtatMatériel.SelectedItem.ToString(); materielSelectionne.FkLoginE = UtilisateurConnecte.Login; // On persiste les modifications materielManager.insertUpdateMateriel(ref materielSelectionne); MessageToast.Show("Matériel modifié avec succès"); RafraichirIHM(); } }
//************************************************************************************************** private void btnAttribuerMateriel_Click(object sender, EventArgs e) { if ((materielSelectionne != null) && (technicienSelectionne != null)) { using (MaterielManager materielManager = new MaterielManager()) { materielSelectionne.EtatMateriel = "enService"; materielManager.affectationMaterielTechnicien(ref materielSelectionne, ref technicienSelectionne); } MessageToast.Show("Materiel affecté au technicien"); initialiserDgvMaterielsEtDgvTechniciens(); } else { MessageToast.Show("Sélectionner un technicien et un matériel"); } }
//************************************************************************************************** // Enregistrement des nouvelles données de l'intervention //************************************************************************************************** private void BtnModificationIntervention_Click(object sender, EventArgs e) { if ((debutRdv != DateTime.Now.Date) && (technicienSelectionne != null) && (interventionRdvSelectionne != null)) { interventionRdvSelectionne.EtatVisite = cboxEtatIntervention.SelectedItem.ToString(); if (interventionRdvSelectionne.EtatVisite != String.Empty) // EtatVisite doit être renseigné { interventionRdvSelectionne.DebutIntervention = debutRdv; interventionRdvSelectionne.FinIntervention = finRdv; interventionRdvSelectionne.ObjectifVisite = txtBoxObjetVisite.Text; // récupération image if (pictureBoxImageIntervention.Image == null) { interventionRdvSelectionne.PhotoLieu = new Byte[0]; // tableau de byte vide } else { interventionRdvSelectionne.PhotoLieu = Utils.imageToByteArray(pictureBoxImageIntervention.Image); } // les champs des textBox interventionRdvSelectionne.PrenomContact = txtBoxPrenomContact.Text.Trim(); interventionRdvSelectionne.NomContact = txtBoxNomContact.Text.Trim(); interventionRdvSelectionne.TelContact = mTxtBoxTelephone.Text.Trim(); interventionRdvSelectionne.FkLoginE = UtilisateurConnecte.Login; using (InterventionManager interventionManager = new InterventionManager()) { // On persiste l'entité en BDD interventionManager.updateIntervention(interventionRdvSelectionne); } affichePlanningTechnicien(technicienSelectionne); interventionRdvSelectionne = null; } else { MessageToast.Show("Ne pas laisser l'état visite vide"); } } else { MessageToast.Show("sélectionner un rendez-vous, un technicien"); } }
//************************************************************************************************** private void btnSupprimerClient_Click(object sender, EventArgs e) { if ((clientSelectionne != null) && (txtBoxNomClient.Text.Trim() != "")) { try { using (ClientManager clientManager = new ClientManager()) // appel automatique de la methode dispose qui ferme la connexion { clientManager.supprimerClient(clientSelectionne); MessageToast.Show("Client supprimmé avec succès"); rafraichirIHM(); } } catch (Exception ex) { MessageBox.Show(ex.Message); } } }
//************************************************************************************************** private void BtnSupprimerIntervention_Click(object sender, EventArgs e) { Intervention interventionASupprimer = new Intervention(); if ((debutRdv != DateTime.Now.Date) && (technicienSelectionne != null)) { interventionASupprimer.FkLoginT = technicienSelectionne.LoginT; interventionASupprimer.DebutIntervention = debutRdv; using (InterventionManager interventionManager = new InterventionManager()) { interventionManager.supprimerIntervention(interventionASupprimer); } affichePlanningTechnicien(technicienSelectionne); } else { MessageToast.Show("Sélectionner technicien et rendez-vous"); } }
//************************************************************************************************** // methode appelée lorsqu'on sélectionne un autre jour sur le calendrier private void monthCalendar_DateChanged(object sender, DateRangeEventArgs e) { if (monthCalendar.SelectionStart < DateTime.Now.Date) { // On ne modifie pas le dayView.StartDate // On sinterdir de supprimer un rendez vous antérier à la date du jour MessageToast.Show("Erreur de sélection de jour"); } else { dayView.StartDate = monthCalendar.SelectionStart; if (technicienSelectionne != null) { affichePlanningTechnicien(technicienSelectionne); } else { MessageToast.Show("Sélectionner un technicien"); } } }
//************************************************************************************************** private void BtnValidationIntervention_Click(object sender, EventArgs e) { Intervention intervention = new Intervention(); intervention.CompteRendu = string.Empty; if ((debutRdv != DateTime.Now.Date) && (technicienSelectionne != null) && (clientSelectionne != null)) { intervention.DebutIntervention = debutRdv; intervention.FinIntervention = finRdv; intervention.ObjectifVisite = txtBoxObjetVisite.Text; // récupération image if (pictureBoxImageIntervention.Image == null) { intervention.PhotoLieu = new Byte[0]; // null } else { intervention.PhotoLieu = Utils.imageToByteArray(pictureBoxImageIntervention.Image); } // les champs des textBox intervention.PrenomContact = txtBoxPrenomContact.Text.Trim(); intervention.NomContact = txtBoxNomContact.Text.Trim(); intervention.TelContact = mTxtBoxTelephone.Text.Trim(); intervention.EtatVisite = "planifiée"; intervention.FkLoginE = UtilisateurConnecte.Login; intervention.FkIdClient = clientSelectionne.IdClient; intervention.FkLoginT = technicienSelectionne.LoginT; using (InterventionManager interventionManager = new InterventionManager()) { // On persiste l'entité en BDD interventionManager.ajouterIntervention(intervention); } affichePlanningTechnicien(technicienSelectionne); } else { MessageToast.Show("sélectionner l'heure RDV, technicien et client"); } }
//************************************************************************************************** private void btnAjouterMateriel_Click(object sender, EventArgs e) { // créer un matériel et lui affecte les champs remplis // Ajoute le matériel en BDD using (MaterielManager materielManager = new MaterielManager()) // appel automatique de la methode dispose qui ferme la connexion { Materiel materiel = new Materiel(); materiel.TypeMateriel = textBoxTypeMateriel.Text.Trim(); materiel.NumeroSerie = textBoxNumSerie.Text.Trim(); materiel.NumeroTel = mTxtBoxNumtel.Text.Trim(); materiel.Imei = textBoxCodeIMEI.Text.Trim(); materiel.IdGoogle = textBoxIdGoogle.Text.Trim(); materiel.EtatMateriel = comBoxEtatMateriel.SelectedItem.ToString(); materiel.FkLoginE = UtilisateurConnecte.Login; if (materielManager.insertUpdateMateriel(ref materiel) == true) { MessageToast.Show("Materiel ajouté avec succès"); btnViderChamps_Click(this, null); } } }
//************************************************************************************************** private void btnAjouterClient_Click(object sender, EventArgs e) { // créer un client et lui affecte les champs remplis Client client = new Client(); using (ClientManager clientManager = new ClientManager()) // appel automatique de la methode dispose qui ferme la connexion { client.Entreprise = txtBoxNomEntreprise.Text.Trim(); Civilite laCiviliteSelectionnée = (Civilite)comBoxCivilite.SelectedItem; client.FkIdCivilite = laCiviliteSelectionnée.IdCivilite; client.Prenom = txtBoxPrenomClient.Text.Trim(); client.Nom = txtBoxNomClient.Text.Trim(); client.Adresse = txtBoxAdresse.Text.Trim(); client.CompAdresse = txtBoxAdresseSuite.Text.Trim(); client.Ville = txtBoxVille.Text.Trim(); client.CodePostal = mTxtBoxCodePostal.Text; client.NumeroTel = mTxtBoxTelephone.Text; // Test validation Email String reponseWsValidEmail = ""; String email = txtBoxEmail.Text.Trim(); if (email != string.Empty) { ValidEmail ValidEmail = new ValidEmail(txtBoxEmail.Text.Trim(), ref reponseWsValidEmail); // uniquement une indication, Le dispatcher peut modifier l'émail et ré-enregistrer le client MessageToast.Show(reponseWsValidEmail, "Message du Service Valide Email", 10); } client.Email = email; Byte[] image; // récupération de l'image chargée if (pictureBoxImageClient.Image != null) { try { FileStream fs = new FileStream(pictureBoxImageClient.ImageLocation, FileMode.Open, FileAccess.Read); BinaryReader br = new BinaryReader(fs); image = br.ReadBytes((int)fs.Length); client.Photoent = (Byte[])image; } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } else { client.Photoent = new Byte[0]; // Pas d'image du tout } client.FkIdEtatClient = 1; // Le client est validé à l'inscription client.FkLoginE = UtilisateurConnecte.Login; try { if (clientManager.insUpdateClient(client)) { MessageToast.Show("Client ajouté avec succès"); } } catch (Exception ex) { MessageBox.Show(ex.Message); } } }
//************************************************************************************************** //************************************************************************************************** // Validation des menus par rapport au groupe de l'utilisateur connecté //************************************************************************************************** void validMenu(String groupe) { switch (groupe) { case ("Dispatcher"): { // menu client toolStripMenuItemClient.Enabled = true; modifierClientToolStripMenuItem.Enabled = true; // menu intervention toolStripMenuItemIntervention.Enabled = true; ajouterToolStripMenuItemIntervention.Enabled = true; supprimerToolStripMenuItemIntervention.Enabled = true; modifierToolStripMenuItem.Enabled = true; aperçuToolStripMenuItem.Enabled = true; // menu SMS envoiSMSToolStripMenuItem.Enabled = true; } break; case ("Commercial"): { // menu client toolStripMenuItemClient.Enabled = true; ajouterClientToolStripMenuItem.Enabled = true; modifierClientToolStripMenuItem.Enabled = true; // menu intervention toolStripMenuItemIntervention.Enabled = true; aperçuToolStripMenuItem.Enabled = true; } break; case ("Informatique"): { // menu Matériel gestionMatérielToolStripMenuItem.Enabled = true; ajouterMaterielToolStripMenuItem.Enabled = true; modifierMatérielToolStripMenuItem.Enabled = true; affecterMaterielAUnTechnicienToolStripMenuItem.Enabled = true; } break; case ("Administration"): { // menu client toolStripMenuItemClient.Enabled = true; ajouterClientToolStripMenuItem.Enabled = true; modifierClientToolStripMenuItem.Enabled = true; // menu intervention toolStripMenuItemIntervention.Enabled = true; ajouterToolStripMenuItemIntervention.Enabled = true; supprimerToolStripMenuItemIntervention.Enabled = true; modifierToolStripMenuItem.Enabled = true; aperçuToolStripMenuItem.Enabled = true; // menu SMS envoiSMSToolStripMenuItem.Enabled = true; // menu Matériel gestionMatérielToolStripMenuItem.Enabled = true; ajouterMaterielToolStripMenuItem.Enabled = true; modifierMatérielToolStripMenuItem.Enabled = true; affecterMaterielAUnTechnicienToolStripMenuItem.Enabled = true; // menu Technicien TechnicienToolStripMenuItem.Enabled = true; mAjoutTechnicienToolStripMenuItem.Enabled = true; modifierTechnicienToolStripMenuItem.Enabled = true; } break; case ("Recherche"): { // menu client toolStripMenuItemClient.Enabled = true; ajouterClientToolStripMenuItem.Enabled = true; modifierClientToolStripMenuItem.Enabled = true; // menu intervention toolStripMenuItemIntervention.Enabled = true; ajouterToolStripMenuItemIntervention.Enabled = true; supprimerToolStripMenuItemIntervention.Enabled = true; modifierToolStripMenuItem.Enabled = true; aperçuToolStripMenuItem.Enabled = true; // menu SMS envoiSMSToolStripMenuItem.Enabled = true; // menu Matériel gestionMatérielToolStripMenuItem.Enabled = true; ajouterMaterielToolStripMenuItem.Enabled = true; modifierMatérielToolStripMenuItem.Enabled = true; affecterMaterielAUnTechnicienToolStripMenuItem.Enabled = true; // menu Technicien TechnicienToolStripMenuItem.Enabled = true; mAjoutTechnicienToolStripMenuItem.Enabled = true; } break; default: { MessageToast.Show("Vous n'êtes pas autorisé à utiliser ce logiciel", "ATTENTION !!"); } break; } }
//************************************************************************************************** private void btnModifierClient_Click(object sender, EventArgs e) { if ((clientSelectionne != null) && (txtBoxNomClient.Text.Trim() != "")) { try { // On récupère Tous les attributs du client pour les persister en BDD using (ClientManager clientManager = new ClientManager()) // appel automatique de la methode dispose qui ferme la connexion { clientSelectionne.Entreprise = txtBoxNomEntreprise.Text.Trim(); // récupération de la civilité du client via le comboBox civilité Civilite laCiviliteSelectionnée = (Civilite)cbxCivilite.SelectedItem; clientSelectionne.FkIdCivilite = laCiviliteSelectionnée.IdCivilite; clientSelectionne.Prenom = txtBoxPrenomClient.Text.Trim(); clientSelectionne.Nom = txtBoxNomClient.Text.Trim(); clientSelectionne.Adresse = txtBoxAdresse.Text.Trim(); clientSelectionne.CompAdresse = txtBoxAdresse2.Text.Trim(); clientSelectionne.Ville = txtBoxVille.Text.Trim(); clientSelectionne.CodePostal = mTxtBoxCodePostal.Text; clientSelectionne.NumeroTel = mTxtBoxTelephone.Text; // Test validation Email String reponseWsValidEmail = ""; String email = txtBoxEmail.Text.Trim(); if (email != string.Empty) { ValidEmail ValidEmail = new ValidEmail(txtBoxEmail.Text.Trim(), ref reponseWsValidEmail); // MessageBox.Show(reponseWsValidEmail); // résultat envoyé par le service de vérification MessageToast.Show(reponseWsValidEmail, "Message du Service Valide Email", 10); // résultat envoyé par le service de vérification } clientSelectionne.Email = email; clientSelectionne.Latitude = mTxtBoxLatitude.Text; clientSelectionne.Latitude = clientSelectionne.Latitude.Replace(",", "."); clientSelectionne.Longitude = mTxtBoxLongitude.Text; clientSelectionne.Longitude = clientSelectionne.Longitude.Replace(",", "."); // récupération image if (pictureBoxImageClient.Image == null) { clientSelectionne.Photoent = new Byte[0]; } // null else { clientSelectionne.Photoent = Utils.imageToByteArray(pictureBoxImageClient.Image); } EtatClient etatClientSelectionné = (EtatClient)cbxEtatClient.SelectedItem; clientSelectionne.FkIdEtatClient = etatClientSelectionné.IdEtatClient; clientSelectionne.FkLoginE = UtilisateurConnecte.Login; // On persiste les modifications clientManager.insUpdateClient(clientSelectionne); rafraichirIHM(); MessageToast.Show("Les modifications sont enregistrées"); } } catch (Exception ex) { MessageBox.Show(ex.Message); } } }