' 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 Ordonnancier_Liste1_2_manuel

    Private Sub NumTextBox_KeyDown(sender As Object, e As KeyEventArgs) Handles NumTextBox.KeyDown
        If e.KeyCode = Keys.Enter Then
            NumTextBox_Validated(Nothing, Nothing)
        End If
    End Sub

    Private Sub NumTextBox_Validated(sender As Object, e As EventArgs) Handles NumTextBox.Validated
        If NumTextBox.Text <> "" Then
            Try
                CInt(NumTextBox.Text).ToString()
            Catch ex As Exception
                NumTextBox.Text = ""
            End Try
        Else
            Prescripteur_NomTextBox.Text = ""
            Prescripteur_AdresseTextBox.Text = ""
            Prescripteur_SpécialitéTextBox.Text = ""
            Bénéficiaire_NomTextBox.Text = ""
            Bénéficiaire_AdresseTextBox.Text = ""
            Date_DélivranceDateTimePicker.Value = Now
            ProduitsTextBox.Text = ""
            QuantitéTextBox.Text = ""
            Porteur_OrdonnanceTextBox.Text = ""
            Prescripteur_NumTextBox.Text = ""
            Exit Sub
        End If
        Try
            Dim datas = Me.Ordonnancier_ListeI_ListeIITableAdapter.GetDataBy_Num(CDec(NumTextBox.Text))
            If datas.Rows.Count = 1 Then
                Dim ligne = datas.Item(0)
                Prescripteur_NomTextBox.Text = ligne.Prescripteur_Nom
                Prescripteur_AdresseTextBox.Text = ligne.Prescripteur_Adresse
                Prescripteur_SpécialitéTextBox.Text = ligne.Prescripteur_Spécialité
                Bénéficiaire_NomTextBox.Text = ligne.Bénéficiaire_Nom
                Bénéficiaire_AdresseTextBox.Text = ligne.Bénéficiaire_Adresse
                Date_DélivranceDateTimePicker.Value = ligne.Date_Délivrance
                ProduitsTextBox.Text = ligne.Produits
                QuantitéTextBox.Text = ligne.Quantité
                Porteur_OrdonnanceTextBox.Text = ligne.Porteur_Ordonnance
                Prescripteur_NumTextBox.Text = ligne.Prescripteur_Num
                NumTextBox.Enabled = False
                Suppr_Button.Visible = True
            ElseIf datas.Rows.Count > 1 Then
                MyMsg_Box.Presentation("Officine !", "ANOMALIE" & vbCrLf & vbCrLf & "Plusieurs enregistrement pour ce numéro " & vbCrLf & vbCrLf & "Contactez l'administrateur", False, "", False, "", True, "OK")
                MyMsg_Box.ShowDialog()

            ElseIf datas.Rows.Count = 0 Then

            End If
        Catch ex As Exception

        End Try

    End Sub

    Private Sub OK_Button_Click(sender As Object, e As EventArgs) Handles OK_Button.Click
        Try
            If NumTextBox.Text <> "" Then
                Dim datas = Me.Ordonnancier_ListeI_ListeIITableAdapter.GetDataBy_Num(CDec(NumTextBox.Text))
                If datas.Rows.Count = 1 Then
                    MyMsg_Box.Presentation("Officine ?", "Confirmez le remplacement des données?", True, "Oui", True, "Oui", False, "")
                    If MyMsg_Box.ShowDialog = Windows.Forms.DialogResult.Yes Then
                        Me.Ordonnancier_ListeI_ListeIITableAdapter.Delete_By_Num(CDec(NumTextBox.Text))
                        Me.Ordonnancier_ListeI_ListeIITableAdapter.Insert(CDec(NumTextBox.Text), Prescripteur_NomTextBox.Text, Prescripteur_AdresseTextBox.Text, Prescripteur_SpécialitéTextBox.Text, Bénéficiaire_NomTextBox.Text, Bénéficiaire_AdresseTextBox.Text, Date_DélivranceDateTimePicker.Value, ProduitsTextBox.Text, CDec(QuantitéTextBox.Text), Porteur_OrdonnanceTextBox.Text, Prescripteur_NumTextBox.Text)
                        Me.Close()
                    End If
                ElseIf datas.Rows.Count > 1 Then
                    MyMsg_Box.Presentation("Officine !", "ANOMALIE" & vbCrLf & vbCrLf & "Plusieurs enregistrement pour ce numéro " & vbCrLf & vbCrLf & "Contactez l'administrateur", False, "", False, "", True, "OK")
                    MyMsg_Box.ShowDialog()

                ElseIf datas.Rows.Count = 0 Then
                    MyMsg_Box.Presentation("Officine !", "ANOMALIE" & vbCrLf & vbCrLf & "Ne pas renseigner de numéto pour un nouvel enregistrement.", False, "", False, "", True, "OK")
                    MyMsg_Box.ShowDialog()
                End If
            Else
                Me.Ordonnancier_ListeI_ListeIITableAdapter.Insert(Me.Ordonnancier_ListeI_ListeIITableAdapter.SelectMaxNum + 1, Prescripteur_NomTextBox.Text, Prescripteur_AdresseTextBox.Text, Prescripteur_SpécialitéTextBox.Text, Bénéficiaire_NomTextBox.Text, Bénéficiaire_AdresseTextBox.Text, Date_DélivranceDateTimePicker.Value, ProduitsTextBox.Text, CDec(QuantitéTextBox.Text), Porteur_OrdonnanceTextBox.Text, Prescripteur_NumTextBox.Text)
                Me.Close()
            End If
        Catch ex As Exception

        End Try
    
    End Sub

    Private Sub QuantitéTextBox_TextChanged(sender As Object, e As EventArgs) Handles QuantitéTextBox.TextChanged
        If QuantitéTextBox.Text <> "" Then
            Try
                CInt(QuantitéTextBox.Text).ToString()
            Catch ex As Exception
                If NumTextBox.Text <> "" Then
                    QuantitéTextBox.Text = Me.Ordonnancier_ListeI_ListeIITableAdapter.GetDataBy_Num(CDec(NumTextBox.Text)).Item(0).Quantité
                Else
                    QuantitéTextBox.Text = "0"
                End If
            End Try
        End If
    End Sub

    Private Sub NumTextBox_TextChanged(sender As Object, e As EventArgs) Handles NumTextBox.TextChanged

    End Sub

    Private Sub Ordonnancier_Liste1_2_manuel_FormClosed(sender As Object, e As FormClosedEventArgs) Handles Me.FormClosed
        NumTextBox.Text = ""
        NumTextBox.Enabled = True
        Suppr_Button.Visible = False
        NumTextBox_Validated(Nothing, Nothing)
    End Sub

    Private Sub Suppr_Button_Click(sender As Object, e As EventArgs) Handles Suppr_Button.Click
        MyMsg_Box.Presentation("Officine ?", "Confirmez la suppression des données?", True, "Oui", True, "Oui", False, "")
        If MyMsg_Box.ShowDialog = Windows.Forms.DialogResult.Yes Then
            Me.Ordonnancier_ListeI_ListeIITableAdapter.Delete_By_Num(CDec(NumTextBox.Text))
            Me.Close()
        End If
    End Sub
End Class