Gestion des réservations et des séjours pour Hôtel en Vb.net

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 :
  1. Création de la BD
  1. 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.
  1. 2) Gestion des Clients 
  1. Ecrire le code pour les boutons (premier, suivant, précédent, dernier) en affichant le message de débordement.
  2. Ecrire le code pour le bouton Ajout en vérifiant la contrainte de remplissage de tous les champs et l'unicité du code client. 
  3. Ecrire le code pour le bouton  Supprimer 
  4. Ecrire le code pour le bouton  Modifier 
  5. Ecrire le code pour le bouton Rechercher pour afficher les informations correspondantes ou afficher un message de non existence. 
  1. 3) Gestion des réservations 
  1. 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
  2. Ecrire le code  pour ajouter les informations de réservations dans la table réservation. 
  1. Gestion séjour 
  1. Réaliser l'interface de la feuille "Ajout d’un séjour"
  2. Le numéro de réservation est rempli à partir de la table réservation dans une liste
  3. Le numéro de séjour est auto incrémenté 
  4. Le type de séjour est un combo qui contient (journalier, Week end, Semaine). 
  5. le bouton Nouveau permet d’effacer les zones de texte. 
  6. 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.
  1. 5) Feuille  Réservation par type 
  1. 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
  2. En bas de la feuille ajouter un label qui affiche le nombre des réservations affichées dans la grille. 
  1. 6) Réservation annulée 
Ecrire  un programme pour gérer les réservations annulées tel que :
  1. 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 ». 
  2. 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 ». 
  3. La réservation annulée est supprimée de la table « Réservation ». 
  1. 7) Etat  
  1. Créer un état d’édition de toutes les Réservations réalisées avec les séjours pour chaque réservation. 
  2. 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

Public Class Facturation
    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
Suivant
« Précédent
Précédent
Suivant »

ConversionConversion EmoticonEmoticon

Remarque : Seul un membre de ce blog est autorisé à enregistrer un commentaire.