// Annule la modification de réservation private void btnAnnuler_Click(object sender, EventArgs e) { dialogResult = MessageBox.Show("La réservation en cours ne sera pas modifiée. Confirmez-vous votre choix ?", "Annulation", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (dialogResult == DialogResult.Yes) { // Affichage des réservation en cours if (ActiveMdiChild != null) { ActiveMdiChild.Close(); } // Affichage pour les réservations en cours ou validées frmReservationEnCours = new frmReservationEnCours(); frmReservationEnCours.MdiParent = frmPrinicpale.ActiveForm; frmReservationEnCours.Show(); frmReservationEnCours.Location = new Point(0, 0); } }
// Réservation en cours ou en attente private void réservationEnAttenteToolStripMenuItem_Click(object sender, EventArgs e) { if (ActiveMdiChild != null) { ActiveMdiChild.Close(); } pnlPrincipal.SendToBack(); // Affichage pour les réservations en cours ou validés frmReservationEnCours = new frmReservationEnCours(); frmReservationEnCours.MdiParent = this; frmReservationEnCours.Show(); frmReservationEnCours.Location = new Point(0, 0); }
// Validation de la sélection private void btnValiderLoc_Click(object sender, EventArgs e) { ok = false; if (this.modeAcces == "CR") { // Test si les champs obligatoires ont été renseignés foreach (DataGridViewRow row in dgvVehicule.Rows) { if ((bool)row.Cells[1].Value) { numLig = row.Index; ok = true; break; } } if (ok && txtMotif.Text != "") { dialogResult = MessageBox.Show("Confirmez-vous votre choix ?", "Validation", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (dialogResult == DialogResult.Yes) { // Insertion de la location dans la base try { requete = "INSERT INTO emprunt (`idVehicule`, `idUtilisateur`, `dateEmprunt`, `dateRetour`, `rendu`, `kilometrage`, `niveauCarburant`, `valide`, `idAdmin`, `contenu`, `dateSaisie`, `dateValidation`) VALUES " + "(" + dgvVehicule.Rows[numLig].Cells[0].Value + ", " + Global.userId + ", '" + fonctions.formatDate(dateDeb) + " " + fonctions.formatHeure(cbHeDeb.SelectedItem.ToString()) + "', '" + fonctions.formatDate(dateRet) + " " + fonctions.formatHeure(cbHeFin.SelectedItem.ToString()) + "' " + ", 0, 0, 0, 0, '', @Contenu, now(), '1000-01-01 00:00:00');"; MySqlCommand cmd = new MySqlCommand(requete, Global.Connection); MySqlParameter pContenu = new MySqlParameter("@Contenu", MySqlDbType.Text); pContenu.Value = txtMotif.Text; cmd.Parameters.Add(pContenu); cmd.Prepare(); cmd.ExecuteNonQuery(); requete = "INSERT INTO rappellocation (`idEmprunt`, `rappel`) VALUES ((SELECT idEmprunt FROM emprunt ORDER BY idEmprunt DESC LIMIT 1), 1)"; cmd = new MySqlCommand(requete, Global.Connection); cmd.ExecuteNonQuery(); MessageBox.Show("La réservation a bien été prise en compte. Elle sera traitée par un administrateur dans les plus bref délais.", "Confirmation", MessageBoxButtons.OK, MessageBoxIcon.Information); // Affichage des réservation en cours if (ActiveMdiChild != null) { ActiveMdiChild.Close(); } // Affichage pour les réservations en cours ou validées frmReservationEnCours = new frmReservationEnCours(); frmReservationEnCours.MdiParent = frmPrinicpale.ActiveForm; frmReservationEnCours.Show(); frmReservationEnCours.Location = new Point(0, 0); } catch (MySqlException) { MessageBox.Show("Une erreur est survenue. Impossible de continuer.", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } else { MessageBox.Show("Vous devez renseigné un motif et sélectionnez un véhicule.", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else if (modeAcces == "MO") { // Test si les champs obligatoires ont été renseignés foreach (DataGridViewRow row in dgvVehicule.Rows) { if ((bool)row.Cells[1].Value) { numLig = row.Index; ok = true; break; } } if (ok && txtMotif.Text != "") { dialogResult = MessageBox.Show("Confirmez-vous votre choix ?", "Validation", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (dialogResult == DialogResult.Yes) { // Vérification de la conformité de la location string dateTimeDeb = fonctions.formatDate(dateDeb) + " " + fonctions.formatHeure(cbHeDeb.SelectedItem.ToString()); string dateTimeFin = fonctions.formatDate(dateRet) + " " + fonctions.formatHeure(cbHeFin.SelectedItem.ToString()); DateTime dateTest = fonctions.convertDate(dateDeb, cbHeDeb.SelectedItem.ToString()); if (dateTest.AddHours(-3) < DateTime.Now) { MessageBox.Show("Le début de location doit être à au moins 3 heures de la date actuelle.", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { requete = "select case when count(*) = 0 then 'rien' else 'qqchose' end as compteresa from vehicule natural join categorievehicule where vehicule.idVehicule " + " IN(SELECT emprunt.idVehicule FROM emprunt WHERE idEmprunt <> " + idResa + " and (((dateEmprunt between '" + dateTimeDeb + "' and '" + dateTimeFin + "') and dateEmprunt is not null) " + " or ((dateRetour between '" + dateTimeDeb + "' and '" + dateTimeFin + "') and dateRetour is not null) or dateEmprunt = '" + dateTimeDeb + "' or dateRetour = '" + dateTimeFin + "' or dateEmprunt = '" + dateTimeFin + "' or dateRetour = '" + dateTimeDeb + "' or (dateEmprunt <= '" + dateTimeDeb + "' and dateRetour >= '" + dateTimeDeb + "') or (dateEmprunt <= '" + dateTimeFin + "' and dateRetour >= '" + dateTimeFin + "')) and idVehicule = " + dgvVehicule.Rows[0].Cells[0].Value + ")"; MySqlCommand cmd = new MySqlCommand(requete, Global.Connection); rd = cmd.ExecuteReader(); rd.Read(); if ((string) rd["compteresa"] == "rien") { rd.Close(); // Update de la location dans la base try { requete = "UPDATE emprunt SET idVehicule = " + dgvVehicule.Rows[numLig].Cells[0].Value + ", dateEmprunt = '" + fonctions.formatDate(dateDeb) + " " + fonctions.formatHeure(cbHeDeb.SelectedItem.ToString()) + "', " + "dateRetour = '" + fonctions.formatDate(dateRet) + " " + fonctions.formatHeure(cbHeFin.SelectedItem.ToString()) + "', contenu = @Contenu WHERE idEmprunt = " + idResa; cmd = new MySqlCommand(requete, Global.Connection); MySqlParameter pContenu = new MySqlParameter("@Contenu", MySqlDbType.Text); pContenu.Value = txtMotif.Text; cmd.Parameters.Add(pContenu); cmd.Prepare(); cmd.ExecuteNonQuery(); MessageBox.Show("Modification effectuée.", "Confirmation", MessageBoxButtons.OK, MessageBoxIcon.Information); // Affichage des réservation en cours if (ActiveMdiChild != null) { ActiveMdiChild.Close(); } // Affichage pour les réservations en cours ou validées frmReservationEnCours = new frmReservationEnCours(); frmReservationEnCours.MdiParent = frmPrinicpale.ActiveForm; frmReservationEnCours.Show(); frmReservationEnCours.Location = new Point(0, 0); } catch (MySqlException) { MessageBox.Show("Une erreur est survenue. Impossible de continuer.", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { MessageBox.Show("Le véhicule n'est pas libre à ces nouvelles dates, vérifiez ses disponibilitées.", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error); rd.Close(); } } } } else { MessageBox.Show("Vous devez renseigner un motif et sélectionnez un véhicule.", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }