' Copyright (C) 2025  P4pillon.org
'
' This program is free software: you can redistribute it and/or modify
' it under the terms of the GNU Affero General Public License as
' published by the Free Software Foundation, either version 3 of the
' License, or (at your option) any later version.
'
' This program is distributed in the hope that it will be useful,
' but WITHOUT ANY WARRANTY; without even the implied warranty of
' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
' GNU Affero General Public License for more details.
'
' You should have received a copy of the GNU Affero General Public License
' along with this program.  If not, see <https://www.gnu.org/licenses/>.
Public Class Reservation_Produit

    Public Quantité_reservée_initiale As Integer

    Private Sub OK_Button_Click(sender As Object, e As EventArgs) Handles OK_Button.Click
        If Quantité_ReservéeTextBox.Text <> "0" Then
            BDD.Produits_ReservésTableAdapter.Delete_ligne(CInt(Patien_Num_TextBox.Text), Produit_DésignationTextBox.Text, Produit_CIPTextBox.Text, Produit_EAN13TextBox.Text, Produit_CABTextBox.Text)
            BDD.Produits_ReservésTableAdapter.Insert(Produit_DésignationTextBox.Text, Produit_CIPTextBox.Text, Produit_EAN13TextBox.Text, Produit_CABTextBox.Text, CInt(Quantité_ReservéeTextBox.Text), _
                                                     Date_reservationDateTimePicker.Value, Date_delivrance_prévueDateTimePicker.Value, Now, CInt(Patien_Num_TextBox.Text), ALD_CheckBox.Checked)
            If Produit_EAN13TextBox.Text <> "" Then
                BDD.ProduitsTableAdapter.UpdateStock_By_CIP_CAB(Quantité_reservée_initiale + (CInt(Quantité_ReservéeTextBox.Text) * (-1)), Produit_EAN13TextBox.Text, Produit_CABTextBox.Text)
            ElseIf Produit_CIPTextBox.Text <> "" Then
                BDD.ProduitsTableAdapter.UpdateStock_By_CIP_CAB(Quantité_reservée_initiale + (CInt(Quantité_ReservéeTextBox.Text) * (-1)), Produit_CIPTextBox.Text, Produit_CABTextBox.Text)
            Else
                BDD.ProduitsTableAdapter.UpdateStock_by_Designation(Quantité_reservée_initiale + (CInt(Quantité_ReservéeTextBox.Text) * (-1)), Produit_DésignationTextBox.Text)
            End If
            If COMPTOIR_MAIN.Visible = True Then
                COMPTOIR_MAIN.Produits_Reservés_affichage()
            End If
            Me.Close()
        End If
    End Sub

    Private Sub Quantité_ReservéeTextBox_TextChanged(sender As Object, e As EventArgs) Handles Quantité_ReservéeTextBox.TextChanged
        Try
            If Quantité_ReservéeTextBox.Text <> "" Then
                CInt(Quantité_ReservéeTextBox.Text).ToString()
            End If
        Catch ex As Exception
            Quantité_ReservéeTextBox.Text = ""
        End Try
    End Sub

    Private Sub Quantité_ReservéeTextBox_Validated(sender As Object, e As EventArgs) Handles Quantité_ReservéeTextBox.Validated
        If Quantité_ReservéeTextBox.Text = "" Then
            Quantité_ReservéeTextBox.Text = "0"
        End If
    End Sub

    Private Sub Suppr_Button_Click(sender As Object, e As EventArgs) Handles Suppr_Button.Click
        BDD.Produits_ReservésTableAdapter.Delete_ligne(CInt(Patien_Num_TextBox.Text), Produit_DésignationTextBox.Text, Produit_CIPTextBox.Text, Produit_EAN13TextBox.Text, Produit_CABTextBox.Text)
        If Produit_EAN13TextBox.Text <> "" Then
            BDD.ProduitsTableAdapter.UpdateStock_By_CIP_CAB(Quantité_reservée_initiale, Produit_EAN13TextBox.Text, Produit_CABTextBox.Text)
        ElseIf Produit_CIPTextBox.Text <> "" Then
            BDD.ProduitsTableAdapter.UpdateStock_By_CIP_CAB(Quantité_reservée_initiale, Produit_CIPTextBox.Text, Produit_CABTextBox.Text)
        Else
            BDD.ProduitsTableAdapter.UpdateStock_by_Designation(Quantité_reservée_initiale, Produit_DésignationTextBox.Text)
        End If
        If COMPTOIR_MAIN.Visible = True Then
            COMPTOIR_MAIN.Produits_Reservés_affichage()
        End If
        Me.Close()
    End Sub

    Private Sub Reservation_Produit_Shown(sender As Object, e As EventArgs) Handles Me.Shown
        Dim data = BDD.Produits_ReservésTableAdapter.GetData_ligne(CInt(Patien_Num_TextBox.Text), Produit_DésignationTextBox.Text, Produit_CIPTextBox.Text, Produit_EAN13TextBox.Text, Produit_CABTextBox.Text)
        If data.Rows.Count > 0 Then
            Quantité_reservée_initiale = data(0).Quantité_Reservée
            ALD_CheckBox.Checked = data(0).ALD
        Else
            Quantité_reservée_initiale = 0
            ALD_CheckBox.Checked = False
        End If

    End Sub
End Class