On désire informatiser la gestion des réservations et des séjours pour l’hôtel Ibis :
Pour les séjours, on enregistre la date d’entrée, le type de séjour
(Journalier, Semaine, Weekend) et la durée du séjour. Pour un séjour
Semaine, la durée est 7j., pour type Weekend la durée est 3j., et pour
le type Journalier la durée est le nombre de jours souhaités par le
client.
Le schéma relationnel de la base de données est le suivant :
Client (IdClient, NomClient, AdresseClient, TelClient)
Réservation (CodeReservation, IdClient, Date, PensionComplete)
Sejour (NumSejour, CodeReservation, DateSejour, TypeSejour, DureeSejour)
ReservationAnnulee (CodeReservation, IdClient, DateAnnulation)
Travail à faire :
- Création de la BD
- a. Créer la base de données Sous SQL SERVER en respectant le schéma relationnel ci-dessus, les principales caractéristiques des champs doivent être déduites.
Réaliser une interface utilisateur conviviale et ergonomique pour l’application de gestion des réservations.
- 2) Gestion des Clients
- Ecrire le code pour les boutons (premier, suivant, précédent, dernier) en affichant le message de débordement.
- Ecrire le code pour le bouton Ajout en vérifiant la contrainte de remplissage de tous les champs et l'unicité du code client.
- Ecrire le code pour le bouton Supprimer
- Ecrire le code pour le bouton Modifier
- Ecrire le code pour le bouton Rechercher pour afficher les informations correspondantes ou afficher un message de non existence.
- 3) Gestion des réservations
- Ecrire le code qui permet d’afficher les informations d’un Client (Nom, Téléphone) dès qu’on choisit le numéro du client dans le combo.
- Ecrire le code pour ajouter les informations de réservations dans la table réservation.
- Gestion séjour
- Réaliser l'interface de la feuille "Ajout d’un séjour"
- Le numéro de réservation est rempli à partir de la table réservation dans une liste.
- Le numéro de séjour est auto incrémenté
- Le type de séjour est un combo qui contient (journalier, Week end, Semaine).
- le bouton Nouveau permet d’effacer les zones de texte.
- Le bouton Ajouter permet l’ajout d’un nouveau séjour dans la table Séjour. Vérifier l’unicité de l’enregistrement, si non message d’erreur.
- 5) Feuille Réservation par type
- Réaliser la feuille "Réservation par type" pour afficher toutes les réservations et la durée de séjour pour un type de séjour donné à partir d'un combo.
- En bas de la feuille ajouter un label qui affiche le nombre des réservations affichées dans la grille.
- 6) Réservation annulée
Ecrire un programme pour gérer les réservations annulées tel que :
- Sur la feuille de « Ajout de réservation » ajouter en bas la partie « Annulation de réservation », placer un bouton « Annuler ». Quand on clique sur ce bouton, le numéro de la réservation à annuler est saisi dans un « Inputbox ».
- Le programme vérifie d’abord si le numéro de réservation fourni est enregistré dans la table « Réservation », puis après une confirmation de l’utilisateur, ajoute la réservation annulée dans la table « Réservation annulée ».
- La réservation annulée est supprimée de la table « Réservation ».
- 7) Etat
- Créer un état d’édition de toutes les Réservations réalisées avec les séjours pour chaque réservation.
- b. Sur la feuille « Ajout de séjour » placer un bouton « Imprimer facture » qui permet d’imprimer la facture pour un séjour d’après les règles :
- Séjour journalier – 480 dh /jour
- Séjour week-end – 320 dh /jour
- Séjour semaine – 260 dh /jour
- Si le client a choisi une pension complète ajouter 100 dh par jour.
Correction
Inherits System.Windows.Forms.Form
Private Sub Facturation_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim etat As New sejour
CrystalReportViewer1.ReportSource = etat
End Sub
End Class
-------------------------------------------------------------------------------
Imports System.Data.SqlClient
Public Class Gestion_des_clients
Inherits System.Windows.Forms.Form
Dim pos, i, trouvé As Integer
Dim mot_rech, var As String
Private Sub Gestion_des_clients_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
cmd = New SqlCommand
cmd.Connection = cn
cmd.CommandText = "select * from client"
da = New SqlDataAdapter(cmd)
ds = New DataSet
da.Fill(ds, "client")
End Sub
Private Sub bt_premier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_premier.Click
pos = 0
txb_id.Text = ds.Tables("client").Rows(0).Item(0)
txb_nom.Text = ds.Tables("client").Rows(0).Item(1)
txb_adresse.Text = ds.Tables("client").Rows(0).Item(2)
txb_tel.Text = ds.Tables("client").Rows(0).Item(3)
End Sub
Private Sub bt_dernier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_dernier.Click
pos = ds.Tables("client").Rows.Count - 1
txb_id.Text = ds.Tables("client").Rows(pos).Item(0)
txb_nom.Text = ds.Tables("client").Rows(pos).Item(1)
txb_adresse.Text = ds.Tables("client").Rows(pos).Item(2)
txb_tel.Text = ds.Tables("client").Rows(pos).Item(3)
End Sub
Private Sub bt_precedent_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_precedent.Click
If pos > 0 Then
pos = pos - 1
txb_id.Text = ds.Tables("client").Rows(pos).Item(0)
txb_nom.Text = ds.Tables("client").Rows(pos).Item(1)
txb_adresse.Text = ds.Tables("client").Rows(pos).Item(2)
txb_tel.Text = ds.Tables("client").Rows(pos).Item(3)
Else
MsgBox("c est le premier enregistrement")
End If
End Sub
Private Sub bt_suivant_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_suivant.Click
If pos < ds.Tables("client").Rows.Count - 1 Then
pos = pos + 1
txb_id.Text = ds.Tables("client").Rows(pos).Item(0)
txb_nom.Text = ds.Tables("client").Rows(pos).Item(1)
txb_adresse.Text = ds.Tables("client").Rows(pos).Item(2)
txb_tel.Text = ds.Tables("client").Rows(pos).Item(3)
Else
MsgBox("c est le dernier enregistrement")
End If
End Sub
Private Sub bt_ajouter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_ajouter.Click
If txb_id.Text = "" Or txb_nom.Text = "" Or txb_adresse.Text = "" Or txb_tel.Text = "" Then
MsgBox("vous devez remplir toutes les champs")
Else
ds.Tables("client").Constraints.Add("pk1", ds.Tables("client").Columns("id_client"), True)
row = ds.Tables("client").NewRow
row.Item(0) = txb_id.Text
row.Item(1) = txb_nom.Text
row.Item(2) = txb_adresse.Text
row.Item(3) = txb_tel.Text
Try
ds.Tables("client").Rows.Add(row)
odb = New SqlCommandBuilder(da)
da.Update(ds, "client")
ds.Clear()
da.Fill(ds, "client")
'dt = ds.Tables("client")
MessageBox.Show("enregistrement effectué...", "Enregistrer", MessageBoxButtons.OK)
Catch ex As Exception
MsgBox(ex.Message)
init()
Exit Sub
End Try
End If
End Sub
Private Sub bt_supprimer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_supprimer.Click
var = MessageBox.Show("voulez vous supprimer cette enregistrement", "Supprimer", MessageBoxButtons.YesNo)
If var = vbYes Then
ds.Tables("client").Rows(pos).Delete()
odb = New SqlCommandBuilder(da)
da.Update(ds, "client")
ds.Clear()
da.Fill(ds, "client")
dt = ds.Tables("client")
MessageBox.Show("l'enregistrement a etais supprimer", "Supprimer", MessageBoxButtons.OK)
ElseIf var = vbNo Then
MessageBox.Show("suppretion annuler...", "Supprimer", MessageBoxButtons.OK)
End If
End Sub
Sub init()
txb_id.Text = ""
txb_nom.Text = ""
txb_adresse.Text = ""
txb_tel.Text = ""
End Sub
Private Sub bt_modifier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_modifier.Click
'row = ds.Tables("client").Rows(pos)
ds.Tables("client").Rows(pos).Item(0) = txb_id.Text
ds.Tables("client").Rows(pos).Item(1) = txb_nom.Text
ds.Tables("client").Rows(pos).Item(2) = txb_adresse.Text
ds.Tables("client").Rows(pos).Item(3) = txb_tel.Text
odb = New SqlCommandBuilder(da)
da.Update(ds, "client")
ds.Clear()
da.Fill(ds, "client")
dt = ds.Tables("client")
MessageBox.Show("modification effectué.......", "Modifier", MessageBoxButtons.OK)
End Sub
Private Sub bt_rechercher_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_rechercher.Click
pos = 0
trouvé = 0
mot_rech = InputBox("taper le Cin du client")
dt = ds.Tables("client")
While pos < dt.Rows.Count
If mot_rech = dt.Rows(pos).Item(0) Then
txb_id.Text = dt.Rows(pos).Item(0)
txb_nom.Text = dt.Rows(pos).Item(1)
txb_adresse.Text = dt.Rows(pos).Item(2)
txb_tel.Text = dt.Rows(pos).Item(3)
trouvé += 1
Exit While
Else
pos += 1
End If
End While
If trouvé = 0 Then
var = MessageBox.Show("ce client ne figure pas sur la liste", "erreur", MessageBoxButtons.OK)
txb_id.Text = ""
txb_nom.Text = ""
txb_adresse.Text = ""
txb_tel.Text = ""
End If
End Sub
End Class
-----------------------------------------------------------------------------
Imports System.Data.SqlClient
Public Class Gestion_des_réservations
Inherits System.Windows.Forms.Form
Private Sub Gestion_des_réservations_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
cmd = New SqlCommand
cmd.Connection = cn
cmd.CommandText = "select * from client"
da = New SqlDataAdapter(cmd)
ds = New DataSet
da.Fill(ds, "client")
cb_num_client.DataSource = ds.Tables(0)
cb_num_client.DisplayMember = "id_client"
cb_num_client.Text = ""
'cb_num_client.ValueMember = "id_client"
End Sub
Private Sub cb_num_client_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cb_num_client.SelectedIndexChanged
Dim i As Integer
For i = 0 To ds.Tables("client").Rows.Count - 1
If cb_num_client.Text = ds.Tables("client").Rows(i).Item(0) Then
lbl_nom.Text = ds.Tables("client").Rows(i).Item(1)
lbl_tel.Text = ds.Tables("client").Rows(i).Item(3)
End If
Next
End Sub
Private Sub bt_ajout_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_ajout.Click
cmd = New SqlCommand
cmd.Connection = cn
cmd.CommandText = "select * from Réservation"
da = New SqlDataAdapter(cmd)
ds = New DataSet
da.Fill(ds, "Réservation")
row = ds.Tables("Réservation").NewRow
row.Item(0) = txb_cod_reservation.Text
row.Item(1) = cb_num_client.Text
row.Item(2) = txb_date.Text
row.Item(3) = txb_pension.Text
ds.Tables("Réservation").Rows.Add(row)
odb = New SqlCommandBuilder(da)
da.Update(ds, "Réservation")
MsgBox("ajout effecuté")
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_annuler.Click
Dim pos, trouvé As Integer
Dim mot_rech, var As String
pos = 0
trouvé = 0
mot_rech = InputBox("taper le code_réservation à supprimer")
cmd = New SqlCommand
cmd.Connection = cn
cmd.CommandText = "select * from Réservation "
da = New SqlDataAdapter(cmd)
ds = New DataSet
da.Fill(ds, "Réservation")
While pos < ds.Tables("Réservation").Rows.Count
If ds.Tables("Réservation").Rows(pos).Item(0) = mot_rech Then
var = MessageBox.Show("voulez vous vraiment supprimer cet enregistrement", "supprimer", MessageBoxButtons.YesNo)
If var = "6" Then
cmd = New SqlCommand
cmd.Connection = cn
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandText = "annuler_reservation"
cmd.Parameters.Add("@mot", SqlDbType.Int)
cmd.Parameters.Add("@dat", SqlDbType.DateTime)
cmd.Parameters(0).Value = mot_rech
cmd.Parameters(1).Value = txb_date_annulation.Text
cmd.ExecuteNonQuery()
MsgBox("effectué")
End If
trouvé += 1
Exit While
Else
pos += 1
End If
End While
If trouvé = 0 Then
MessageBox.Show("ce numéro ne figure pas sur la liste", "erreur", MessageBoxButtons.OK)
End If
End Sub
End Class
------------------------------------------------------------------------------
Imports System.Data.SqlClient
Public Class Gestion_séjour
Inherits System.Windows.Forms.Form
Private Sub Gestion_séjour_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
remplir_list()
End Sub
Sub remplir_list()
cmd = New SqlCommand
cmd.Connection = cn
cmd.CommandText = "select * from Réservation"
da = New SqlDataAdapter(cmd)
ds = New DataSet
da.Fill(ds, "Réservation")
ListBox1.DataSource = ds.Tables(0)
ListBox1.DisplayMember = "code_reservation"
'cb_num_client.ValueMember = "id_client"
End Sub
Private Sub bt_ajouter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_nouveau.Click
TextBox1.Text = ""
ComboBox1.Text = ""
TextBox2.Text = ""
End Sub
Private Sub bt_ajouter_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_ajouter.Click
cmd = New SqlCommand
cmd.Connection = cn
cmd.CommandText = "select * from sejour"
da = New SqlDataAdapter(cmd)
ds = New DataSet
da.Fill(ds, "sejour")
row = ds.Tables("sejour").NewRow
'Try
' row(1) = ListBox1.SelectedItem
' row(2) = TextBox1.Text
' row(3) = ComboBox1.Text
' row(4) = TextBox2.Text
'Catch ex As Exception
' MsgBox(ex.Message)
'End Try
'ds.Tables("sejour").Rows.Add(row)
'odb = New SqlCommandBuilder(da)
'da.Update(ds, "sejour")
'MsgBox("enregistrement effectué")
End Sub
Private Sub bt_imprimer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_imprimer.Click
Dim frm As New Facturation
Dim etat As New sejour
frm.CrystalReportViewer1.ReportSource = etat
frm.CrystalReportViewer1.SelectionFormula = "{Sejour.NumSejour}=" & TextBox3.Text
frm.Show()
End Sub
End Class
------------------------------------------------------------------------------
Imports System.Data.SqlClient
Module Module1
Dim str As String = "data source='.';initial catalog=FF_V9_2007;integrated security=sspi"
Public cn As New SqlConnection(str)
Public ds As DataSet
Public da As SqlDataAdapter
Public cmd As SqlCommand
Public dt As DataTable
Public row As DataRow
Public odb As SqlCommandBuilder
End Module
-----------------------------------------------------------------------------
Public Class Form1
Inherits System.Windows.Forms.Form
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
cn.Open()
End Sub
Private Sub MenuItem6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem6.Click
Dim frm As New Gestion_des_réservations
frm.Show()
End Sub
Private Sub MenuItem7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem7.Click
Dim frm As New Gestion_séjour
frm.Show()
End Sub
Private Sub MenuItem8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem8.Click
Dim frm As New Réservation_par_type
frm.Show()
End Sub
Private Sub MenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem1.Click
Dim frm As New Gestion_des_clients
frm.Show()
End Sub
Private Sub MenuItem4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
End Sub
End Class
------------------------------------------------------------------------------
Imports System.Data.SqlClient
Public Class Réservation_par_type
Inherits System.Windows.Forms.Form
Private Sub Réservation_par_type_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
cmd = New SqlCommand
cmd.Connection = cn
cmd.CommandText = "select * from sejour"
da = New SqlDataAdapter(cmd)
ds = New DataSet
da.Fill(ds, "sejour")
ComboBox1.DataSource = ds.Tables(0)
ComboBox1.DisplayMember = "TypeSejour"
End Sub
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
cmd = New SqlCommand
cmd.Connection = cn
cmd.CommandText = "select CodeReservation,DureeSejour from sejour where TypeSejour='" & ComboBox1.Text & "'"
da = New SqlDataAdapter(cmd)
ds = New DataSet
da.Fill(ds, "sejour")
DataGrid1.DataSource = ds.Tables(0)
cmd = New SqlCommand
cmd.Connection = cn
cmd.CommandText = "select count(*) from sejour where TypeSejour='" & ComboBox1.Text & "'"
Dim i As Integer
i = cmd.ExecuteScalar
Label3.Text = i
End Sub
End Class
ConversionConversion EmoticonEmoticon
Remarque : Seul un membre de ce blog est autorisé à enregistrer un commentaire.