예제 #1
0
        //**************************************************************************************************
        // 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
            }
        }
예제 #2
0
        //**************************************************************************************************
        // 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");
            }
        }
예제 #3
0
        //**************************************************************************************************
        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");
            }
        }
예제 #5
0
 //**************************************************************************************************
 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();
     }
 }
예제 #6
0
 //**************************************************************************************************
 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");
         }
     }
 }
예제 #11
0
        //**************************************************************************************************
        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");
            }
        }
예제 #12
0
        //**************************************************************************************************
        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);
                }
            }
        }
예제 #13
0
        //**************************************************************************************************
        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);
                }
            }
        }
예제 #14
0
        //**************************************************************************************************

        //**************************************************************************************************
        // 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);
                }
            }
        }