Initial commit

This commit is contained in:
2025-06-12 16:27:32 +02:00
commit 5a62e97dfb
876 changed files with 831267 additions and 0 deletions

View File

@ -0,0 +1,20 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Express 2012 for Windows Desktop
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Officine_Maintenance", "Officine_Maintenance\Officine_Maintenance.vbproj", "{331C7AC8-2E3F-4470-8908-7F03EB99F338}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{331C7AC8-2E3F-4470-8908-7F03EB99F338}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{331C7AC8-2E3F-4470-8908-7F03EB99F338}.Debug|Any CPU.Build.0 = Debug|Any CPU
{331C7AC8-2E3F-4470-8908-7F03EB99F338}.Release|Any CPU.ActiveCfg = Release|Any CPU
{331C7AC8-2E3F-4470-8908-7F03EB99F338}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
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/>.
-->
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="Officine_Maintenance.My.MySettings.PharmaConnectionString"
connectionString="Data Source=JUJU_PORTABLE\SQLEXPRESS;Initial Catalog=Pharma;Persist Security Info=True;User ID=Test;Password=Test12345"
providerName="System.Data.SqlClient" />
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>

View File

@ -0,0 +1,75 @@
' 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/>.
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class BDD
Inherits System.Windows.Forms.Form
'Form remplace la méthode Dispose pour nettoyer la liste des composants.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Requise par le Concepteur Windows Form
Private components As System.ComponentModel.IContainer
'REMARQUE : la procédure suivante est requise par le Concepteur Windows Form
'Elle peut être modifiée à l'aide du Concepteur Windows Form.
'Ne la modifiez pas à l'aide de l'éditeur de code.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.ActesTableAdapter = New Officine_Maintenance.PharmaDataSetTableAdapters.ActesTableAdapter()
Me.Ordonnancier_StupéfiantsTableAdapter = New Officine_Maintenance.PharmaDataSetTableAdapters.Ordonnancier_StupéfiantsTableAdapter()
Me.Ordonnancier_ListeI_ListeIITableAdapter = New Officine_Maintenance.PharmaDataSetTableAdapters.Ordonnancier_ListeI_ListeIITableAdapter()
Me.FacturesTableAdapter = New Officine_Maintenance.PharmaDataSetTableAdapters.FacturesTableAdapter()
Me.SuspendLayout()
'
'ActesTableAdapter
'
Me.ActesTableAdapter.ClearBeforeFill = True
'
'Ordonnancier_StupéfiantsTableAdapter
'
Me.Ordonnancier_StupéfiantsTableAdapter.ClearBeforeFill = True
'
'Ordonnancier_ListeI_ListeIITableAdapter
'
Me.Ordonnancier_ListeI_ListeIITableAdapter.ClearBeforeFill = True
'
'FacturesTableAdapter
'
Me.FacturesTableAdapter.ClearBeforeFill = True
'
'BDD
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(844, 469)
Me.Name = "BDD"
Me.Text = "BDD"
Me.ResumeLayout(False)
End Sub
Friend WithEvents ActesTableAdapter As Officine_Maintenance.PharmaDataSetTableAdapters.ActesTableAdapter
Friend WithEvents Ordonnancier_StupéfiantsTableAdapter As Officine_Maintenance.PharmaDataSetTableAdapters.Ordonnancier_StupéfiantsTableAdapter
Friend WithEvents Ordonnancier_ListeI_ListeIITableAdapter As Officine_Maintenance.PharmaDataSetTableAdapters.Ordonnancier_ListeI_ListeIITableAdapter
Friend WithEvents FacturesTableAdapter As Officine_Maintenance.PharmaDataSetTableAdapters.FacturesTableAdapter
End Class

View File

@ -0,0 +1,148 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
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/>.
-->
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="ActesTableAdapter.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="Ordonnancier_StupéfiantsTableAdapter.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>171, 17</value>
</metadata>
<metadata name="Ordonnancier_ListeI_ListeIITableAdapter.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>437, 17</value>
</metadata>
<metadata name="FacturesTableAdapter.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>706, 17</value>
</metadata>
</root>

View File

@ -0,0 +1,18 @@
' 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 BDD
End Class

View File

@ -0,0 +1,114 @@
' 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/>.
Imports System.Xml
Public Class Config
Public Sub load_config()
Dim xmldoc = New XmlDocument
xmldoc.Load(Application.StartupPath & "\Config.xml")
Dim Config_Node = xmldoc.ChildNodes.Item(1)
For Each Item As XmlNode In Config_Node.ChildNodes
If Item.Name = "Nettoyage_Fichiers" Then
Nettoyage_Fichiers_Items = New List(Of Nettoyage_Fichier_Item_type)
For r = 0 To Item.ChildNodes.Count - 1
Dim data As XmlElement = Item.ChildNodes.Item(r)
Dim Nettoyage_Fichier_Item As New Nettoyage_Fichier_Item_type
Nettoyage_Fichier_Item.Rep = data.GetAttribute("Rep")
Nettoyage_Fichier_Item.Fichiers = data.GetAttribute("Fichiers")
Nettoyage_Fichier_Item.Jours = data.GetAttribute("Jours")
Nettoyage_Fichiers_Items.Add(Nettoyage_Fichier_Item)
Next
ElseIf Item.Name = "FTP" Then
FTP.Serveur = Item.SelectSingleNode("Serveur").InnerText
FTP.user = Item.SelectSingleNode("user").InnerText
FTP.password = Item.SelectSingleNode("password").InnerText
ElseIf Item.Name = "CEPS" Then
CEPS.CEPS_dir_IN = Item.SelectSingleNode("CEPS_dir_IN").InnerText
CEPS.CEPS_dir_OUT = Item.SelectSingleNode("CEPS_dir_OUT").InnerText
CEPS.CEPS_MENSUEL = Item.SelectSingleNode("CEPS_MENSUEL").InnerText
CEPS.CEPS_Quotidien = Item.SelectSingleNode("CEPS_Quotidien").InnerText
ElseIf Item.Name = "LOI" Then
LOI.LOI_version = Item.SelectSingleNode("LOI_version").InnerText
LOI.LOI_dir_IN = Item.SelectSingleNode("LOI_dir_IN").InnerText
LOI.LOI_dir_OUT = Item.SelectSingleNode("LOI_dir_OUT").InnerText
ElseIf Item.Name = "LPP" Then
LPP.LPP_version = Item.SelectSingleNode("LPP_version").InnerText
LPP.LPP_dir_IN = Item.SelectSingleNode("LPP_dir_IN").InnerText
LPP.LPP_dir_OUT = Item.SelectSingleNode("LPP_dir_OUT").InnerText
ElseIf Item.Name = "EXE" Then
EXE.EXE_version = Item.SelectSingleNode("EXE_version").InnerText
EXE.EXE_dir_IN = Item.SelectSingleNode("EXE_dir_IN").InnerText
EXE.EXE_dir_OUT = Item.SelectSingleNode("EXE_dir_OUT").InnerText
EXE.OfficineLib_version = Item.SelectSingleNode("OfficineLib_version").InnerText
End If
Next
Dim Nettoyage_Fichiers_Node = Config_Node.ChildNodes.Item(0)
End Sub
Public Sub update_config(ByVal section As String, ByVal item As String, ByVal value As String)
Dim xmldoc = New XmlDocument
xmldoc.Load(Application.StartupPath & "\Config.xml")
Dim Config_Node = xmldoc.ChildNodes.Item(1)
For Each section_node As XmlNode In Config_Node.ChildNodes
If section_node.Name = section Then
section_node.SelectSingleNode(item).InnerText = value
Exit For
End If
Next
xmldoc.Save(Application.StartupPath & "\Config.xml")
load_config()
End Sub
Public Structure Nettoyage_Fichier_Item_type
Dim Rep As String
Dim Fichiers As String
Dim Jours As Integer
End Structure
Public Nettoyage_Fichiers_Items As List(Of Nettoyage_Fichier_Item_type)
Public Structure FTP_type
Dim Serveur, user, password As String
End Structure
Public FTP As FTP_type
Public Structure CEPS_type
Dim CEPS_dir_IN, CEPS_dir_OUT, CEPS_MENSUEL, CEPS_Quotidien As String
End Structure
Public CEPS As CEPS_type
Public Structure LOI_type
Dim LOI_version, LOI_dir_IN, LOI_dir_OUT As String
End Structure
Public LOI As LOI_type
Public Structure LPP_type
Dim LPP_version, LPP_dir_IN, LPP_dir_OUT As String
End Structure
Public LPP As LPP_type
Public Structure EXE_type
Dim EXE_version, EXE_dir_IN, EXE_dir_OUT, OfficineLib_version As String
End Structure
Public EXE As EXE_type
End Class

View File

@ -0,0 +1,74 @@
' 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/>.
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class FTP
Inherits System.Windows.Forms.Form
'Form remplace la méthode Dispose pour nettoyer la liste des composants.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Requise par le Concepteur Windows Form
Private components As System.ComponentModel.IContainer
'REMARQUE : la procédure suivante est requise par le Concepteur Windows Form
'Elle peut être modifiée à l'aide du Concepteur Windows Form.
'Ne la modifiez pas à l'aide de l'éditeur de code.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.RichTextBox1 = New System.Windows.Forms.RichTextBox()
Me.Button1 = New System.Windows.Forms.Button()
Me.SuspendLayout()
'
'RichTextBox1
'
Me.RichTextBox1.Location = New System.Drawing.Point(12, 12)
Me.RichTextBox1.Name = "RichTextBox1"
Me.RichTextBox1.Size = New System.Drawing.Size(260, 237)
Me.RichTextBox1.TabIndex = 0
Me.RichTextBox1.Text = ""
'
'Button1
'
Me.Button1.Location = New System.Drawing.Point(12, 260)
Me.Button1.Name = "Button1"
Me.Button1.Size = New System.Drawing.Size(79, 23)
Me.Button1.TabIndex = 1
Me.Button1.Text = "Button1"
Me.Button1.UseVisualStyleBackColor = True
'
'FTP
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(284, 295)
Me.Controls.Add(Me.Button1)
Me.Controls.Add(Me.RichTextBox1)
Me.Name = "FTP"
Me.Text = "FTP"
Me.ResumeLayout(False)
End Sub
Friend WithEvents RichTextBox1 As System.Windows.Forms.RichTextBox
Friend WithEvents Button1 As System.Windows.Forms.Button
End Class

View File

@ -0,0 +1,136 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
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/>.
-->
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -0,0 +1,357 @@
' 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/>.
Imports System
Imports System.IO
Imports System.Net
Imports System.Text
Public Class FTP
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
CEPS_upload()
End Sub
Public Sub CEPS_upload()
Try
If Main.config.CEPS.CEPS_dir_IN = "" Or Main.config.CEPS.CEPS_dir_OUT = "" Then Exit Sub
Dim files_to_download As New List(Of String)
Dim DIR_request = FtpWebRequest.Create("ftp://" & Main.config.FTP.Serveur & Main.config.CEPS.CEPS_dir_IN)
DIR_request.Credentials = New NetworkCredential(Main.config.FTP.user, Main.config.FTP.password)
DIR_request.Method = WebRequestMethods.Ftp.ListDirectory
Dim response As FtpWebResponse = DIR_request.GetResponse()
Dim responseStream As Stream = response.GetResponseStream
Using reader As New StreamReader(responseStream)
Do While reader.Peek <> -1
Dim file = reader.ReadLine
RichTextBox1.AppendText(file & vbCrLf)
Application.DoEvents()
If InStr(file, "CEPS_mensuel") = 1 Then
Dim download = False
If Main.config.CEPS.CEPS_MENSUEL = "" Then
download = True
ElseIf (CDbl(Mid(file, 14, 6)) > CDbl(Mid(Main.config.CEPS.CEPS_MENSUEL, 14, 6))) Then
download = True
End If
If download = True Then
files_to_download.Add(file)
End If
ElseIf InStr(file, "CEPS_quotidien") = 1 Then
Dim download = False
If Main.config.CEPS.CEPS_Quotidien = "" Then
download = True
ElseIf (CDbl(Mid(file, 16, 8)) > CDbl(Mid(Main.config.CEPS.CEPS_Quotidien, 16, 8))) Then
download = True
End If
If download = True Then
files_to_download.Add(file)
End If
End If
Loop
files_to_download.Sort()
For r = 0 To files_to_download.Count - 1
If FTPDownloadFile(Main.config.CEPS.CEPS_dir_OUT & "\" & files_to_download(r), "ftp://" & Main.config.FTP.Serveur & Main.config.CEPS.CEPS_dir_IN & "/" & _
files_to_download(r), Main.config.FTP.user, Main.config.FTP.password) = True Then
If InStr(files_to_download(r), "CEPS_mensuel") = 1 Then
If Main.config.CEPS.CEPS_MENSUEL = "" Then
Main.config.update_config("CEPS", "CEPS_MENSUEL", files_to_download(r))
ElseIf (CDbl(Mid(files_to_download(r), 14, 6)) > CDbl(Mid(Main.config.CEPS.CEPS_MENSUEL, 14, 6))) Then
Main.config.update_config("CEPS", "CEPS_MENSUEL", files_to_download(r))
End If
ElseIf InStr(files_to_download(r), "CEPS_quotidien") = 1 Then
If Main.config.CEPS.CEPS_Quotidien = "" Then
Main.config.update_config("CEPS", "CEPS_Quotidien", files_to_download(r))
ElseIf (CDbl(Mid(files_to_download(r), 16, 8)) > CDbl(Mid(Main.config.CEPS.CEPS_Quotidien, 16, 8))) Then
Main.config.update_config("CEPS", "CEPS_Quotidien", files_to_download(r))
End If
End If
End If
Next
End Using
response.Close()
Catch ex As Exception
Main.log("failed: " & vbCrLf & ex.Message)
End Try
End Sub
Private Sub FtpUploadFile(ByVal filetoupload As String, ByVal ftpuri As String, ByVal ftpusername As String, ByVal ftppassword As String)
' Create a web request that will be used to talk with the server and set the request method to upload a file by ftp.
Dim ftpRequest As FtpWebRequest = CType(WebRequest.Create(ftpuri), FtpWebRequest)
Try
ftpRequest.Method = WebRequestMethods.Ftp.UploadFile
' Confirm the Network credentials based on the user name and password passed in.
ftpRequest.Credentials = New NetworkCredential(ftpusername, ftppassword)
' Read into a Byte array the contents of the file to be uploaded
Dim bytes() As Byte = System.IO.File.ReadAllBytes(filetoupload)
' Transfer the byte array contents into the request stream, write and then close when done.
ftpRequest.ContentLength = bytes.Length
Using UploadStream As Stream = ftpRequest.GetRequestStream()
UploadStream.Write(bytes, 0, bytes.Length)
UploadStream.Close()
End Using
Catch ex As Exception
MessageBox.Show(ex.Message)
Exit Sub
End Try
MessageBox.Show("Process Complete")
End Sub
Private Function FTPDownloadFile(ByVal downloadpath As String, ByVal ftpuri As String, ByVal ftpusername As String, ByVal ftppassword As String) As Boolean
'Create a WebClient.
Dim request As New WebClient()
' Confirm the Network credentials based on the user name and password passed in.
request.Credentials = New NetworkCredential(ftpusername, ftppassword)
'Read the file data into a Byte array
Dim bytes() As Byte = request.DownloadData(ftpuri)
Try
' Create a FileStream to read the file into
Dim DownloadStream As FileStream = IO.File.Create(downloadpath)
' Stream this data into the file
DownloadStream.Write(bytes, 0, bytes.Length)
' Close the FileStream
DownloadStream.Close()
Catch ex As Exception
Main.log("failed: " & ftpuri & vbCrLf & ex.Message)
Return False
End Try
Main.log("download: " & ftpuri)
Return True
End Function
Public Sub LOI_upload()
Try
If Main.config.LOI.LOI_dir_IN = "" Or Main.config.LOI.LOI_dir_OUT = "" Then Exit Sub
Dim files_to_download As New List(Of String)
Dim DIR_request = FtpWebRequest.Create("ftp://" & Main.config.FTP.Serveur & Main.config.LOI.LOI_dir_IN)
DIR_request.Credentials = New NetworkCredential(Main.config.FTP.user, Main.config.FTP.password)
DIR_request.Method = WebRequestMethods.Ftp.ListDirectory
Dim response As FtpWebResponse = DIR_request.GetResponse()
Dim responseStream As Stream = response.GetResponseStream
Using reader As New StreamReader(responseStream)
Do While reader.Peek <> -1
Dim file = reader.ReadLine
If file <> "." And file <> ".." Then
files_to_download.Add(file)
End If
Loop
files_to_download.Sort()
Dim version_online = CDec(Mid(files_to_download(files_to_download.Count - 1), 1, InStr(files_to_download(files_to_download.Count - 1), ".") - 1))
Dim download = False
If Main.config.LOI.LOI_version = "" Then
download = True
ElseIf version_online > CDec(Main.config.LOI.LOI_version) Then
download = True
End If
If download = True Then
If FTPDownloadFile(Main.config.LOI.LOI_dir_OUT & "\" & files_to_download(files_to_download.Count - 1), "ftp://" & Main.config.FTP.Serveur & Main.config.LOI.LOI_dir_IN & "/" & _
files_to_download(files_to_download.Count - 1), Main.config.FTP.user, Main.config.FTP.password) = True Then
If InStr(files_to_download(files_to_download.Count - 1), ".gz") <> 0 Then
ShellandWait("c:\gzip", "gzip.exe", "-d -q " & Main.config.LOI.LOI_dir_OUT & "\" & files_to_download(files_to_download.Count - 1))
End If
If My.Computer.FileSystem.FileExists(Main.config.LOI.LOI_dir_OUT & "\loi.loi") Then
My.Computer.FileSystem.DeleteFile(Main.config.LOI.LOI_dir_OUT & "\loi.loi")
End If
My.Computer.FileSystem.RenameFile(Main.config.LOI.LOI_dir_OUT & "\" & version_online.ToString & ".loi", "loi.loi")
Main.config.update_config("LOI", "LOI_version", version_online.ToString)
End If
End If
End Using
response.Close()
Catch ex As Exception
Main.log("failed: " & vbCrLf & ex.Message)
End Try
End Sub
Public Sub LPP_upload()
Try
If Main.config.LPP.LPP_dir_IN = "" Or Main.config.LPP.LPP_dir_OUT = "" Then Exit Sub
Dim files_to_download As New List(Of String)
Dim DIR_request = FtpWebRequest.Create("ftp://" & Main.config.FTP.Serveur & Main.config.LPP.LPP_dir_IN)
DIR_request.Credentials = New NetworkCredential(Main.config.FTP.user, Main.config.FTP.password)
DIR_request.Method = WebRequestMethods.Ftp.ListDirectory
Dim response As FtpWebResponse = DIR_request.GetResponse()
Dim responseStream As Stream = response.GetResponseStream
Using reader As New StreamReader(responseStream)
Do While reader.Peek <> -1
Dim file = reader.ReadLine
If file <> "." And file <> ".." Then
files_to_download.Add(file)
End If
Loop
files_to_download.Sort()
Dim version_online = CDec(Mid(files_to_download(files_to_download.Count - 1), 7, InStr(files_to_download(files_to_download.Count - 1), ".") - 7))
Dim download = False
If Main.config.LPP.LPP_version = "" Then
download = True
ElseIf version_online > CDec(Main.config.LPP.LPP_version) Then
download = True
End If
If download = True Then
If FTPDownloadFile(Main.config.LPP.LPP_dir_OUT & "\" & files_to_download(files_to_download.Count - 1), "ftp://" & Main.config.FTP.Serveur & Main.config.LPP.LPP_dir_IN & "/" & _
files_to_download(files_to_download.Count - 1), Main.config.FTP.user, Main.config.FTP.password) = True Then
My.Computer.FileSystem.RenameFile(Main.config.LPP.LPP_dir_OUT & "\" & files_to_download(files_to_download.Count - 1), Mid(files_to_download(files_to_download.Count - 1), 1, InStr(files_to_download(files_to_download.Count - 1), ".")) & "gz")
ShellandWait("c:\gzip", "gzip.exe", "-d -q " & Main.config.LPP.LPP_dir_OUT & "\" & Mid(files_to_download(files_to_download.Count - 1), 1, InStr(files_to_download(files_to_download.Count - 1), ".")) & "gz")
Main.config.update_config("LPP", "LPP_version", version_online.ToString)
End If
End If
End Using
response.Close()
Catch ex As Exception
Main.log("failed: " & vbCrLf & ex.Message)
End Try
End Sub
Public Sub ShellandWait(ByVal ProcessDirectory As String, ByVal ProcessName As String, ByVal arguments As String)
Dim objProcess As System.Diagnostics.Process
Try
objProcess = New System.Diagnostics.Process()
objProcess.StartInfo.FileName = ProcessName
objProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
'objProcess.StartInfo.WindowStyle = ProcessWindowStyle.Maximized
objProcess.StartInfo.Arguments = arguments
objProcess.StartInfo.WorkingDirectory = ProcessDirectory
objProcess.Start()
'Wait until the process passes back an exit code
objProcess.WaitForExit()
'Free resources associated with this process
objProcess.Close()
Catch ex As Exception
Main.log("failed: " & vbCrLf & ex.Message)
End Try
End Sub
Public Sub officine_exe_upload()
Try
For Each p As Process In Process.GetProcesses
If String.Compare(p.ProcessName, "pharma-gestion", True) = 0 Then
Exit Sub
End If
Next
Dim request = FtpWebRequest.Create("ftp://" & Main.config.FTP.Serveur & Main.config.EXE.EXE_dir_IN & "/officine.exe")
request.Credentials = New NetworkCredential(Main.config.FTP.user, Main.config.FTP.password)
request.Method = WebRequestMethods.Ftp.GetDateTimestamp
Dim response As FtpWebResponse = request.GetResponse
Dim new_version = response.LastModified.ToString
If new_version = Main.config.EXE.EXE_version Then Exit Sub
If FTPDownloadFile(Main.config.EXE.EXE_dir_OUT & "\officine.exe", "ftp://" & Main.config.FTP.Serveur & Main.config.EXE.EXE_dir_IN & "/officine.exe", Main.config.FTP.user, Main.config.FTP.password) = True Then
Main.config.update_config("EXE", "EXE_version", new_version)
End If
response.Close()
Catch ex As Exception
Main.log("failed: " & vbCrLf & ex.Message)
End Try
End Sub
Public Sub OfficineLib_dll__upload()
Try
For Each p As Process In Process.GetProcesses
If String.Compare(p.ProcessName, "pharma-gestion", True) = 0 Then
Exit Sub
End If
Next
Dim request = FtpWebRequest.Create("ftp://" & Main.config.FTP.Serveur & Main.config.EXE.EXE_dir_IN & "/OfficineLib.dll")
request.Credentials = New NetworkCredential(Main.config.FTP.user, Main.config.FTP.password)
request.Method = WebRequestMethods.Ftp.GetDateTimestamp
Dim response As FtpWebResponse = request.GetResponse
Dim new_version = response.LastModified.ToString
If new_version = Main.config.EXE.OfficineLib_version Then Exit Sub
If FTPDownloadFile(Main.config.EXE.EXE_dir_OUT & "\OfficineLib.dll", "ftp://" & Main.config.FTP.Serveur & Main.config.EXE.EXE_dir_IN & "/OfficineLib.dll", Main.config.FTP.user, Main.config.FTP.password) = True Then
Main.config.update_config("EXE", "OfficineLib_version", new_version)
End If
response.Close()
Catch ex As Exception
Main.log("failed: " & vbCrLf & ex.Message)
End Try
End Sub
Public Sub Officine_ScriptSQL_upload()
Try
For Each p As Process In Process.GetProcesses
If String.Compare(p.ProcessName, "pharma-gestion", True) = 0 Then
Exit Sub
End If
Next
Dim request = FtpWebRequest.Create("ftp://" & Main.config.FTP.Serveur & Main.config.EXE.EXE_dir_IN & "/Officine.sql")
request.Credentials = New NetworkCredential(Main.config.FTP.user, Main.config.FTP.password)
request.Method = WebRequestMethods.Ftp.GetDateTimestamp
Dim response As FtpWebResponse = request.GetResponse
If FTPDownloadFile(Application.StartupPath & "\Officine.sql", "ftp://" & Main.config.FTP.Serveur & Main.config.EXE.EXE_dir_IN & "/Officine.sql", Main.config.FTP.user, Main.config.FTP.password) = True Then
Main.NotifyIcon1.Text = "Mise à jour base de données"
System.Threading.Thread.Sleep(3000)
Dim Process = New Process()
Process.StartInfo.UseShellExecute = False
Process.StartInfo.RedirectStandardOutput = True
Process.StartInfo.RedirectStandardError = True
Process.StartInfo.CreateNoWindow = True
Process.StartInfo.FileName = "SQLCMD.EXE"
Process.StartInfo.Arguments = "-S " & My.Computer.Name & "\SQLEXPRESS -i " & Application.StartupPath & "\Officine.sql -o out.log"
Process.StartInfo.WorkingDirectory = Application.StartupPath
Process.StartInfo.CreateNoWindow = True
Process.Start()
Process.WaitForExit()
End If
response.Close()
Catch ex As Exception
MsgBox(ex.Message)
Main.log("failed: " & vbCrLf & ex.Message)
End Try
End Sub
End Class

View File

@ -0,0 +1,91 @@
' 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/>.
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Main
Inherits System.Windows.Forms.Form
'Form remplace la méthode Dispose pour nettoyer la liste des composants.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Requise par le Concepteur Windows Form
Private components As System.ComponentModel.IContainer
'REMARQUE : la procédure suivante est requise par le Concepteur Windows Form
'Elle peut être modifiée à l'aide du Concepteur Windows Form.
'Ne la modifiez pas à l'aide de l'éditeur de code.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Main))
Me.Nettoyage_Fichiers_LinkLabel = New System.Windows.Forms.LinkLabel()
Me.LinkLabel1 = New System.Windows.Forms.LinkLabel()
Me.NotifyIcon1 = New System.Windows.Forms.NotifyIcon(Me.components)
Me.SuspendLayout()
'
'Nettoyage_Fichiers_LinkLabel
'
Me.Nettoyage_Fichiers_LinkLabel.AutoSize = True
Me.Nettoyage_Fichiers_LinkLabel.Location = New System.Drawing.Point(12, 34)
Me.Nettoyage_Fichiers_LinkLabel.Name = "Nettoyage_Fichiers_LinkLabel"
Me.Nettoyage_Fichiers_LinkLabel.Size = New System.Drawing.Size(95, 13)
Me.Nettoyage_Fichiers_LinkLabel.TabIndex = 0
Me.Nettoyage_Fichiers_LinkLabel.TabStop = True
Me.Nettoyage_Fichiers_LinkLabel.Text = "Nettoyage Fichiers"
'
'LinkLabel1
'
Me.LinkLabel1.AutoSize = True
Me.LinkLabel1.Location = New System.Drawing.Point(12, 9)
Me.LinkLabel1.Name = "LinkLabel1"
Me.LinkLabel1.Size = New System.Drawing.Size(27, 13)
Me.LinkLabel1.TabIndex = 1
Me.LinkLabel1.TabStop = True
Me.LinkLabel1.Text = "FTP"
'
'NotifyIcon1
'
Me.NotifyIcon1.Icon = CType(resources.GetObject("NotifyIcon1.Icon"), System.Drawing.Icon)
Me.NotifyIcon1.Text = "Officine, telechargements en cours..."
Me.NotifyIcon1.Visible = True
'
'Main
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(201, 73)
Me.Controls.Add(Me.LinkLabel1)
Me.Controls.Add(Me.Nettoyage_Fichiers_LinkLabel)
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
Me.MaximizeBox = False
Me.Name = "Main"
Me.ShowInTaskbar = False
Me.Text = "Main"
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Friend WithEvents Nettoyage_Fichiers_LinkLabel As System.Windows.Forms.LinkLabel
Friend WithEvents LinkLabel1 As System.Windows.Forms.LinkLabel
Friend WithEvents NotifyIcon1 As System.Windows.Forms.NotifyIcon
End Class

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,85 @@
' 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/>.
Imports System.Xml
Public Class Main
Public config As Config
Private Sub Main_Load(sender As Object, e As EventArgs) Handles Me.Load
Me.WindowState = FormWindowState.Minimized
config = New Config
config.load_config()
Nettoyage_Fichiers.Suppression_fichiers_affichage()
Application.DoEvents()
Dim arguments As String() = Environment.GetCommandLineArgs()
Nettoyage_Fichiers.Suppression_fichiers_Action()
FTP.CEPS_upload()
FTP.LOI_upload()
FTP.LPP_upload()
FTP.officine_exe_upload()
FTP.OfficineLib_dll__upload()
FTP.Officine_ScriptSQL_upload()
Me.Close()
End Sub
Private Sub Nettoyage_Fichiers_LinkLabel_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles Nettoyage_Fichiers_LinkLabel.LinkClicked
Nettoyage_Fichiers.Visible = True
End Sub
Public Sub writelog(ByVal txt As String)
My.Computer.FileSystem.WriteAllText(Application.StartupPath & "\" & Format(Now, "yyyyMMdd") & "_log.txt", Chr(10) & txt & Chr(10), True)
End Sub
Private Sub LinkLabel1_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked
FTP.Visible = True
End Sub
Public Sub log(ByVal texte As String)
Try
My.Computer.FileSystem.WriteAllText(Application.StartupPath + "\maintenance.log", Now.ToString & vbCrLf & _
(New System.Diagnostics.StackTrace).GetFrame(1).GetMethod.Name & vbCrLf & _
texte & vbCrLf & "------------------------------------------------" & vbCrLf, True)
Catch ex As Exception
End Try
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs)
End Sub
Private Sub Main_Resize(sender As Object, e As EventArgs) Handles Me.Resize
If Me.WindowState = FormWindowState.Minimized Then
NotifyIcon1.Visible = True
Me.Opacity = 0
Else
NotifyIcon1.Visible = False
Me.Opacity = 100
End If
End Sub
Private Sub NotifyIcon1_Click(sender As Object, e As EventArgs) Handles NotifyIcon1.Click
Me.WindowState = FormWindowState.Normal
End Sub
End Class

View File

@ -0,0 +1,52 @@
' 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/>.
'------------------------------------------------------------------------------
' <auto-generated>
' Ce code a été généré par un outil.
' Version du runtime :4.0.30319.42000
'
' Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si
' le code est régénéré.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
Namespace My
'REMARQUE : ce fichier étant généré automatiquement, ne le modifiez pas directement. Pour apporter des modifications,
' ou si vous rencontrez des erreurs de build dans ce fichier, accédez au Concepteur de projets
' (allez dans les propriétés du projet ou double-cliquez sur le noeud My project dans
' l'Explorateur de solutions), puis apportez vos modifications sous l'onglet Application.
'
Partial Friend Class MyApplication
<Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
Public Sub New()
MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows)
Me.IsSingleInstance = false
Me.EnableVisualStyles = true
Me.SaveMySettingsOnExit = true
Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses
End Sub
<Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
Protected Overrides Sub OnCreateMainForm()
Me.MainForm = Global.Officine_Maintenance.Main
End Sub
End Class
End Namespace

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
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/>.
-->
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<MySubMain>true</MySubMain>
<MainForm>Main</MainForm>
<SingleInstance>false</SingleInstance>
<ShutdownMode>0</ShutdownMode>
<EnableVisualStyles>true</EnableVisualStyles>
<AuthenticationMode>0</AuthenticationMode>
<SaveMySettingsOnExit>true</SaveMySettingsOnExit>
</MyApplicationData>

View File

@ -0,0 +1,49 @@
' 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/>.
Imports System
Imports System.Reflection
Imports System.Runtime.InteropServices
' Les informations générales relatives à un assembly dépendent de
' l'ensemble d'attributs suivant. Changez les valeurs de ces attributs pour modifier les informations
' associées à un assembly.
' Passez en revue les valeurs des attributs de l'assembly
<Assembly: AssemblyTitle("Officine_Maintenance")>
<Assembly: AssemblyDescription("")>
<Assembly: AssemblyCompany("")>
<Assembly: AssemblyProduct("Officine_Maintenance")>
<Assembly: AssemblyCopyright("Copyright © 2017")>
<Assembly: AssemblyTrademark("")>
<Assembly: ComVisible(False)>
'Le GUID suivant est pour l'ID de la typelib si ce projet est exposé à COM
<Assembly: Guid("a7a37b7e-e6ce-406f-bcbc-b48767c35f29")>
' Les informations de version pour un assembly se composent des quatre valeurs suivantes :
'
' Version principale
' Version secondaire
' Numéro de build
' Révision
'
' Vous pouvez spécifier toutes les valeurs ou indiquer les numéros de build et de révision par défaut
' en utilisant '*', comme indiqué ci-dessous :
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.0.0.0")>
<Assembly: AssemblyFileVersion("1.0.0.0")>

View File

@ -0,0 +1,76 @@
' 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/>.
'------------------------------------------------------------------------------
' <auto-generated>
' This code was generated by a tool.
' Runtime Version:4.0.30319.42000
'
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
Namespace My.Resources
'This class was auto-generated by the StronglyTypedResourceBuilder
'class via a tool like ResGen or Visual Studio.
'To add or remove a member, edit your .ResX file then rerun ResGen
'with the /str option, or rebuild your VS project.
'''<summary>
''' A strongly-typed resource class, for looking up localized strings, etc.
'''</summary>
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0"), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _
Friend Module Resources
Private resourceMan As Global.System.Resources.ResourceManager
Private resourceCulture As Global.System.Globalization.CultureInfo
'''<summary>
''' Returns the cached ResourceManager instance used by this class.
'''</summary>
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
Get
If Object.ReferenceEquals(resourceMan, Nothing) Then
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Officine_Maintenance.Resources", GetType(Resources).Assembly)
resourceMan = temp
End If
Return resourceMan
End Get
End Property
'''<summary>
''' Overrides the current thread's CurrentUICulture property for all
''' resource lookups using this strongly typed resource class.
'''</summary>
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Friend Property Culture() As Global.System.Globalization.CultureInfo
Get
Return resourceCulture
End Get
Set(ByVal value As Global.System.Globalization.CultureInfo)
resourceCulture = value
End Set
End Property
End Module
End Namespace

View File

@ -0,0 +1,133 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
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/>.
-->
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -0,0 +1,98 @@
' 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/>.
'------------------------------------------------------------------------------
' <auto-generated>
' Ce code a été généré par un outil.
' Version du runtime :4.0.30319.42000
'
' Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si
' le code est régénéré.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
Namespace My
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0"), _
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Partial Friend NotInheritable Class MySettings
Inherits Global.System.Configuration.ApplicationSettingsBase
Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
#Region "Fonctionnalité Enregistrement automatique My.Settings"
#If _MyType = "WindowsForms" Then
Private Shared addedHandler As Boolean
Private Shared addedHandlerLockObject As New Object
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
If My.Application.SaveMySettingsOnExit Then
My.Settings.Save()
End If
End Sub
#End If
#End Region
Public Shared ReadOnly Property [Default]() As MySettings
Get
#If _MyType = "WindowsForms" Then
If Not addedHandler Then
SyncLock addedHandlerLockObject
If Not addedHandler Then
AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
addedHandler = True
End If
End SyncLock
End If
#End If
Return defaultInstance
End Get
End Property
<Global.System.Configuration.ApplicationScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.SpecialSettingAttribute(Global.System.Configuration.SpecialSetting.ConnectionString), _
Global.System.Configuration.DefaultSettingValueAttribute("Data Source=JUJU_PORTABLE\SQLEXPRESS;Initial Catalog=Pharma;Persist Security Info"& _
"=True;User ID=Test;Password=Test12345")> _
Public ReadOnly Property PharmaConnectionString() As String
Get
Return CType(Me("PharmaConnectionString"),String)
End Get
End Property
End Class
End Namespace
Namespace My
<Global.Microsoft.VisualBasic.HideModuleNameAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _
Friend Module MySettingsProperty
<Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _
Friend ReadOnly Property Settings() As Global.Officine_Maintenance.My.MySettings
Get
Return Global.Officine_Maintenance.My.MySettings.Default
End Get
End Property
End Module
End Namespace

View File

@ -0,0 +1,14 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="My" GeneratedClassName="MySettings" UseMySettingsClassName="true">
<Profiles />
<Settings>
<Setting Name="PharmaConnectionString" Type="(Connection string)" Scope="Application">
<DesignTimeValue Profile="(Default)">&lt;?xml version="1.0" encoding="utf-16"?&gt;
&lt;SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;
&lt;ConnectionString&gt;Data Source=JUJU_PORTABLE\SQLEXPRESS;Initial Catalog=Pharma;Persist Security Info=True;User ID=Test;Password=Test12345&lt;/ConnectionString&gt;
&lt;ProviderName&gt;System.Data.SqlClient&lt;/ProviderName&gt;
&lt;/SerializableConnectionString&gt;</DesignTimeValue>
<Value Profile="(Default)">Data Source=JUJU_PORTABLE\SQLEXPRESS;Initial Catalog=Pharma;Persist Security Info=True;User ID=Test;Password=Test12345</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@ -0,0 +1,115 @@
' 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/>.
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Nettoyage_Fichiers
Inherits System.Windows.Forms.Form
'Form remplace la méthode Dispose pour nettoyer la liste des composants.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Requise par le Concepteur Windows Form
Private components As System.ComponentModel.IContainer
'REMARQUE : la procédure suivante est requise par le Concepteur Windows Form
'Elle peut être modifiée à l'aide du Concepteur Windows Form.
'Ne la modifiez pas à l'aide de l'éditeur de code.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.Suppression_fichiers_DataGridView = New System.Windows.Forms.DataGridView()
Me.Suppression_fichiers_Repertoire = New System.Windows.Forms.DataGridViewTextBoxColumn()
Me.Suppression_fichiers_Fichiers = New System.Windows.Forms.DataGridViewTextBoxColumn()
Me.Suppression_fichiers_Jours = New System.Windows.Forms.DataGridViewTextBoxColumn()
Me.Label1 = New System.Windows.Forms.Label()
Me.Suppression_fichiers_Go_Button = New System.Windows.Forms.Button()
CType(Me.Suppression_fichiers_DataGridView, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'Suppression_fichiers_DataGridView
'
Me.Suppression_fichiers_DataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
Me.Suppression_fichiers_DataGridView.Columns.AddRange(New System.Windows.Forms.DataGridViewColumn() {Me.Suppression_fichiers_Repertoire, Me.Suppression_fichiers_Fichiers, Me.Suppression_fichiers_Jours})
Me.Suppression_fichiers_DataGridView.Location = New System.Drawing.Point(12, 12)
Me.Suppression_fichiers_DataGridView.Name = "Suppression_fichiers_DataGridView"
Me.Suppression_fichiers_DataGridView.Size = New System.Drawing.Size(425, 150)
Me.Suppression_fichiers_DataGridView.TabIndex = 0
'
'Suppression_fichiers_Repertoire
'
Me.Suppression_fichiers_Repertoire.HeaderText = "Repertoire"
Me.Suppression_fichiers_Repertoire.Name = "Suppression_fichiers_Repertoire"
Me.Suppression_fichiers_Repertoire.Width = 200
'
'Suppression_fichiers_Fichiers
'
Me.Suppression_fichiers_Fichiers.HeaderText = "Fichiers"
Me.Suppression_fichiers_Fichiers.Name = "Suppression_fichiers_Fichiers"
'
'Suppression_fichiers_Jours
'
Me.Suppression_fichiers_Jours.HeaderText = "Garder jours"
Me.Suppression_fichiers_Jours.Name = "Suppression_fichiers_Jours"
Me.Suppression_fichiers_Jours.Width = 50
'
'Label1
'
Me.Label1.AutoSize = True
Me.Label1.Location = New System.Drawing.Point(9, 194)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(39, 13)
Me.Label1.TabIndex = 6
Me.Label1.Text = "Label1"
'
'Suppression_fichiers_Go_Button
'
Me.Suppression_fichiers_Go_Button.Location = New System.Drawing.Point(12, 168)
Me.Suppression_fichiers_Go_Button.Name = "Suppression_fichiers_Go_Button"
Me.Suppression_fichiers_Go_Button.Size = New System.Drawing.Size(75, 23)
Me.Suppression_fichiers_Go_Button.TabIndex = 7
Me.Suppression_fichiers_Go_Button.Text = "Go"
Me.Suppression_fichiers_Go_Button.UseVisualStyleBackColor = True
'
'Nettoyage_Fichiers
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(447, 231)
Me.Controls.Add(Me.Suppression_fichiers_Go_Button)
Me.Controls.Add(Me.Label1)
Me.Controls.Add(Me.Suppression_fichiers_DataGridView)
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow
Me.Name = "Nettoyage_Fichiers"
Me.Text = "Officine Maintenance"
CType(Me.Suppression_fichiers_DataGridView, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Friend WithEvents Suppression_fichiers_DataGridView As System.Windows.Forms.DataGridView
Friend WithEvents Suppression_fichiers_Repertoire As System.Windows.Forms.DataGridViewTextBoxColumn
Friend WithEvents Suppression_fichiers_Fichiers As System.Windows.Forms.DataGridViewTextBoxColumn
Friend WithEvents Suppression_fichiers_Jours As System.Windows.Forms.DataGridViewTextBoxColumn
Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents Suppression_fichiers_Go_Button As System.Windows.Forms.Button
End Class

View File

@ -0,0 +1,145 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
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/>.
-->
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="Suppression_fichiers_Repertoire.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Suppression_fichiers_Fichiers.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Suppression_fichiers_Jours.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>

View File

@ -0,0 +1,72 @@
' 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/>.
Imports System.Xml
Public Class Nettoyage_Fichiers
Public Sub Suppression_fichiers_affichage()
Suppression_fichiers_DataGridView.Rows.Clear()
For r = 1 To Main.config.Nettoyage_Fichiers_Items.Count
Suppression_fichiers_DataGridView.Rows.Add()
Next
For r = 0 To Main.config.Nettoyage_Fichiers_Items.Count - 1
Suppression_fichiers_DataGridView.Item(Suppression_fichiers_Repertoire.Index, r).Value = Main.config.Nettoyage_Fichiers_Items(r).Rep
Suppression_fichiers_DataGridView.Item(Suppression_fichiers_Fichiers.Index, r).Value = Main.config.Nettoyage_Fichiers_Items(r).Fichiers
Suppression_fichiers_DataGridView.Item(Suppression_fichiers_Jours.Index, r).Value = Main.config.Nettoyage_Fichiers_Items(r).Jours
Next
End Sub
Private Sub Suppression_fichiers_Cancel_Button_Click(sender As Object, e As EventArgs)
Suppression_fichiers_affichage()
End Sub
Public Sub Suppression_fichiers_Action()
For r = 0 To Main.config.Nettoyage_Fichiers_Items.Count - 1
Dim Rep = Main.config.Nettoyage_Fichiers_Items(r).Rep
If Mid(Rep, Rep.Length, "1") <> "\" Then
Rep = Rep & "\"
End If
Dim Fichiers = Main.config.Nettoyage_Fichiers_Items(r).Fichiers
Dim Jours = CDbl(Main.config.Nettoyage_Fichiers_Items(r).Jours)
Dim Fichiers_remove_list As New List(Of String)
Dim fichier = Dir(Rep & Fichiers)
While fichier <> ""
Fichiers_remove_list.Add(Rep & fichier)
fichier = Dir()
End While
For Each fichier_ As String In Fichiers_remove_list
Try
Dim fichier_info = My.Computer.FileSystem.GetFileInfo(fichier_)
If DateAdd(DateInterval.Day, Jours, fichier_info.CreationTime) < Now Then
Label1.Text = "Suppression: " & fichier_
Application.DoEvents()
My.Computer.FileSystem.DeleteFile(fichier_)
End If
Catch ex As Exception
End Try
Next
Next
Label1.Text = ""
End Sub
Private Sub Suppression_fichiers_Go_Button_Click(sender As Object, e As EventArgs) Handles Suppression_fichiers_Go_Button.Click
Suppression_fichiers_Action()
End Sub
End Class

View File

@ -0,0 +1,193 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
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/>.
-->
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{331C7AC8-2E3F-4470-8908-7F03EB99F338}</ProjectGuid>
<OutputType>WinExe</OutputType>
<StartupObject>Officine_Maintenance.My.MyApplication</StartupObject>
<RootNamespace>Officine_Maintenance</RootNamespace>
<AssemblyName>Officine_Maintenance</AssemblyName>
<FileAlignment>512</FileAlignment>
<MyType>WindowsForms</MyType>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<OutputPath>bin\Debug\</OutputPath>
<DocumentationFile>Officine_Maintenance.xml</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<DefineDebug>false</DefineDebug>
<DefineTrace>true</DefineTrace>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DocumentationFile>Officine_Maintenance.xml</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
</PropertyGroup>
<PropertyGroup>
<OptionExplicit>On</OptionExplicit>
</PropertyGroup>
<PropertyGroup>
<OptionCompare>Binary</OptionCompare>
</PropertyGroup>
<PropertyGroup>
<OptionStrict>Off</OptionStrict>
</PropertyGroup>
<PropertyGroup>
<OptionInfer>On</OptionInfer>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
</ItemGroup>
<ItemGroup>
<Import Include="Microsoft.VisualBasic" />
<Import Include="System" />
<Import Include="System.Collections" />
<Import Include="System.Collections.Generic" />
<Import Include="System.Data" />
<Import Include="System.Drawing" />
<Import Include="System.Diagnostics" />
<Import Include="System.Windows.Forms" />
<Import Include="System.Linq" />
<Import Include="System.Xml.Linq" />
<Import Include="System.Threading.Tasks" />
</ItemGroup>
<ItemGroup>
<Compile Include="BDD.Designer.vb">
<DependentUpon>BDD.vb</DependentUpon>
</Compile>
<Compile Include="BDD.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Config.vb" />
<Compile Include="FTP.Designer.vb">
<DependentUpon>FTP.vb</DependentUpon>
</Compile>
<Compile Include="FTP.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Main.Designer.vb">
<DependentUpon>Main.vb</DependentUpon>
</Compile>
<Compile Include="Main.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Nettoyage_Fichiers.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Nettoyage_Fichiers.Designer.vb">
<DependentUpon>Nettoyage_Fichiers.vb</DependentUpon>
<SubType>Form</SubType>
</Compile>
<Compile Include="My Project\AssemblyInfo.vb" />
<Compile Include="My Project\Application.Designer.vb">
<AutoGen>True</AutoGen>
<DependentUpon>Application.myapp</DependentUpon>
</Compile>
<Compile Include="My Project\Resources.Designer.vb">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="My Project\Settings.Designer.vb">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<Compile Include="Ordonnancier.Designer.vb">
<DependentUpon>Ordonnancier.vb</DependentUpon>
</Compile>
<Compile Include="Ordonnancier.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="PharmaDataSet.Designer.vb">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>PharmaDataSet.xsd</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="BDD.resx">
<DependentUpon>BDD.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="FTP.resx">
<DependentUpon>FTP.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Main.resx">
<DependentUpon>Main.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Nettoyage_Fichiers.resx">
<DependentUpon>Nettoyage_Fichiers.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="My Project\Resources.resx">
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
<CustomToolNamespace>My.Resources</CustomToolNamespace>
<SubType>Designer</SubType>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<None Include="My Project\Application.myapp">
<Generator>MyApplicationCodeGenerator</Generator>
<LastGenOutput>Application.Designer.vb</LastGenOutput>
</None>
<None Include="My Project\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<CustomToolNamespace>My</CustomToolNamespace>
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
</None>
<None Include="App.config" />
<None Include="PharmaDataSet.xsc">
<DependentUpon>PharmaDataSet.xsd</DependentUpon>
</None>
<None Include="PharmaDataSet.xsd">
<Generator>MSDataSetGenerator</Generator>
<LastGenOutput>PharmaDataSet.Designer.vb</LastGenOutput>
<SubType>Designer</SubType>
</None>
<None Include="PharmaDataSet.xss">
<DependentUpon>PharmaDataSet.xsd</DependentUpon>
</None>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@ -0,0 +1,43 @@
' 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/>.
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Ordonnancier
Inherits System.Windows.Forms.Form
'Form remplace la méthode Dispose pour nettoyer la liste des composants.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Requise par le Concepteur Windows Form
Private components As System.ComponentModel.IContainer
'REMARQUE : la procédure suivante est requise par le Concepteur Windows Form
'Elle peut être modifiée à l'aide du Concepteur Windows Form.
'Ne la modifiez pas à l'aide de l'éditeur de code.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
components = New System.ComponentModel.Container
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.Text = "Ordonnancier"
End Sub
End Class

View File

@ -0,0 +1,43 @@
' 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
Public Sub reconstruction_ordonnacier()
Dim Actes = BDD.ActesTableAdapter.GetData_Stupéfiants
For r = 0 To Actes.Rows.Count - 1
Try
Dim num_prescripteur As String = ""
If Val(Actes(r).NumFacturesSV) > 0 Then
Dim facture = BDD.FacturesTableAdapter.GetDataBy_Num(Val(Actes(r).NumFacturesSV)).Item(0)
If facture.G1211C1 <> "" Then
num_prescripteur = facture.G1211C1 & facture.G1211C2
ElseIf facture.G1213C1 <> "" Then
num_prescripteur = facture.G1213C1 & facture.G1213C2
ElseIf facture.G1214C1 <> "" Then
num_prescripteur = facture.G1214C1 & facture.G1214C2
End If
End If
Catch ex As Exception
Main.writelog("Reconstruction ordonnancier: erreur sur traitement acte num " & Actes(r).NumActe & Chr(10) & ex.Message)
End Try
Next
End Sub
End Class

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!--<autogenerated>
This code was generated by a tool.
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</autogenerated>-->
<DataSetUISetting Version="1.00" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TableUISettings />
</DataSetUISetting>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<!--<autogenerated>
This code was generated by a tool to store the dataset designer's layout information.
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</autogenerated>-->
<DiagramLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ex:showrelationlabel="False" ViewPortX="-10" ViewPortY="-10" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
<Shapes>
<Shape ID="DesignTable:Actes" ZOrder="1" X="70" Y="70" Height="343" Width="193" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:AMC_(Organismes/Contrat_Type)" ZOrder="76" X="316" Y="70" Height="115" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
<Shape ID="DesignTable:AMC_Contrat_Type" ZOrder="75" X="686" Y="70" Height="305" Width="255" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:AMC_Organismes" ZOrder="74" X="1011" Y="70" Height="172" Width="246" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="121" />
<Shape ID="DesignTable:AMO" ZOrder="73" X="1327" Y="70" Height="191" Width="174" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="140" />
<Shape ID="DesignTable:AR_P" ZOrder="72" X="1571" Y="70" Height="172" Width="174" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="121" />
<Shape ID="DesignTable:ARL" ZOrder="71" X="1815" Y="70" Height="305" Width="167" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:Avances_Produit" ZOrder="70" X="2052" Y="70" Height="305" Width="241" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:BDM_CIP" ZOrder="69" X="2363" Y="70" Height="305" Width="198" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:BDM_interaction" ZOrder="68" X="2631" Y="70" Height="172" Width="242" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="121" />
<Shape ID="DesignTable:BDM_médicaments_detournables" ZOrder="67" X="2943" Y="70" Height="115" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
<Shape ID="DesignTable:BDM_Prix" ZOrder="66" X="3313" Y="70" Height="172" Width="201" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="121" />
<Shape ID="DesignTable:BDM_TFR" ZOrder="65" X="3584" Y="70" Height="134" Width="200" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="83" />
<Shape ID="DesignTable:CDC_Table7" ZOrder="64" X="3854" Y="70" Height="286" Width="213" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
<Shape ID="DesignTable:CEPS_Décisions" ZOrder="63" X="4137" Y="70" Height="153" Width="233" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
<Shape ID="DesignTable:CEPS_mensuel" ZOrder="62" X="4440" Y="70" Height="305" Width="227" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:Chronique" ZOrder="61" X="4737" Y="70" Height="305" Width="205" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:CodePrestations" ZOrder="60" X="5012" Y="70" Height="191" Width="239" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="140" />
<Shape ID="DesignTable:Commandes" ZOrder="59" X="5321" Y="70" Height="229" Width="216" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
<Shape ID="DesignTable:Commandes_auto_sender" ZOrder="58" X="5607" Y="70" Height="134" Width="292" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="83" />
<Shape ID="DesignTable:Commandes_Lignes" ZOrder="57" X="5969" Y="70" Height="305" Width="258" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:Commandes_Rappels" ZOrder="56" X="6297" Y="70" Height="229" Width="267" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
<Shape ID="DesignTable:compatibilités_ codes_prestation_ qualité_bénéficiaire" ZOrder="55" X="6634" Y="70" Height="305" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:compatibilités_codes_prestation_nature_assurance" ZOrder="54" X="7004" Y="70" Height="172" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="121" />
<Shape ID="DesignTable:Convention_Table_Conventions" ZOrder="53" X="7374" Y="70" Height="305" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:Convention_Table_correspondance" ZOrder="52" X="7744" Y="70" Height="153" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
<Shape ID="DesignTable:Convention_Table_Regroupements" ZOrder="51" X="8114" Y="70" Height="267" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="216" />
<Shape ID="DesignTable:DP_ALERTE_PRODUIT" ZOrder="50" X="8484" Y="70" Height="153" Width="269" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
<Shape ID="DesignTable:DP_Msg" ZOrder="49" X="8823" Y="70" Height="305" Width="191" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:DP_Req" ZOrder="48" X="9084" Y="70" Height="210" Width="189" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
<Shape ID="DesignTable:Dus" ZOrder="47" X="9343" Y="70" Height="305" Width="166" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:Encaissements" ZOrder="46" X="9579" Y="70" Height="305" Width="261" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:Facture_DétailCodeCIP" ZOrder="45" X="9910" Y="70" Height="305" Width="275" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:Facture_DétailLpp" ZOrder="44" X="10255" Y="70" Height="305" Width="248" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:Facture_LigneFacture" ZOrder="43" X="10573" Y="70" Height="305" Width="267" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:Facture_VenteDirecte" ZOrder="42" X="10910" Y="70" Height="191" Width="268" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="140" />
<Shape ID="DesignTable:Factures" ZOrder="41" X="11248" Y="70" Height="305" Width="193" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:Factures_commerciales" ZOrder="40" X="11511" Y="70" Height="191" Width="277" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="140" />
<Shape ID="DesignTable:Factures_commerciales_lignes" ZOrder="39" X="11858" Y="70" Height="229" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
<Shape ID="DesignTable:FichiersSV" ZOrder="38" X="12228" Y="70" Height="191" Width="203" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="140" />
<Shape ID="DesignTable:Fournisseur" ZOrder="37" X="12501" Y="70" Height="305" Width="212" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:Fournisseurs_Catalogues" ZOrder="36" X="12783" Y="70" Height="229" Width="286" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
<Shape ID="DesignTable:Historique_Actions" ZOrder="35" X="13139" Y="70" Height="153" Width="254" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
<Shape ID="DesignTable:Inventaire" ZOrder="34" X="13463" Y="70" Height="248" Width="203" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="197" />
<Shape ID="DesignTable:JEUX_D_ESSAI" ZOrder="33" X="13736" Y="70" Height="305" Width="234" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:JEUX_D_ESSAI_Attestations" ZOrder="32" X="14040" Y="70" Height="305" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:JEUX_D_ESSAI_Lignes" ZOrder="31" X="14410" Y="70" Height="305" Width="268" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:Kits" ZOrder="30" X="14748" Y="70" Height="153" Width="166" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
<Shape ID="DesignTable:LOI_Demande" ZOrder="29" X="14984" Y="70" Height="172" Width="225" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="121" />
<Shape ID="DesignTable:Lots" ZOrder="28" X="15279" Y="70" Height="305" Width="168" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:LPP" ZOrder="27" X="15517" Y="70" Height="305" Width="192" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:Messagerie_interne" ZOrder="26" X="15779" Y="70" Height="305" Width="256" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:Ordonnancier_ListeI_ListeII" ZOrder="25" X="16105" Y="70" Height="286" Width="299" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
<Shape ID="DesignTable:Ordonnancier_Stupéfiants" ZOrder="24" X="16474" Y="70" Height="286" Width="295" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
<Shape ID="DesignTable:Organismes" ZOrder="23" X="16839" Y="70" Height="115" Width="213" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
<Shape ID="DesignTable:Pop_Allowed_List" ZOrder="22" X="17122" Y="70" Height="96" Width="245" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="46" />
<Shape ID="DesignTable:Prescripteurs" ZOrder="21" X="17437" Y="70" Height="248" Width="220" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="197" />
<Shape ID="DesignTable:Produits" ZOrder="20" X="17727" Y="70" Height="305" Width="193" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:Produits_Achats" ZOrder="19" X="17990" Y="70" Height="286" Width="237" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
<Shape ID="DesignTable:Produits_Achats_Temp_calcul_TVA" ZOrder="18" X="18297" Y="70" Height="134" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="83" />
<Shape ID="DesignTable:Produits_Alias" ZOrder="17" X="18667" Y="70" Height="172" Width="226" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="121" />
<Shape ID="DesignTable:Produits_Reservés" ZOrder="16" X="18963" Y="70" Height="305" Width="249" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:Promotions" ZOrder="15" X="19282" Y="70" Height="267" Width="212" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="216" />
<Shape ID="DesignTable:RSP_LIGNE_REJET" ZOrder="14" X="19564" Y="70" Height="305" Width="247" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:RSP_Paiements" ZOrder="13" X="19881" Y="70" Height="305" Width="232" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:SCOR_lots" ZOrder="12" X="20183" Y="70" Height="191" Width="203" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="140" />
<Shape ID="DesignTable:SCOR_PJ" ZOrder="11" X="20456" Y="70" Height="153" Width="195" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
<Shape ID="DesignTable:Service/Rejet" ZOrder="10" X="20721" Y="70" Height="210" Width="221" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
<Shape ID="DesignTable:SMTP" ZOrder="9" X="21012" Y="70" Height="248" Width="178" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="197" />
<Shape ID="DesignTable:stock_ini" ZOrder="8" X="21260" Y="70" Height="153" Width="195" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
<Shape ID="DesignTable:sysdiagrams" ZOrder="7" X="21525" Y="70" Height="172" Width="216" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="121" />
<Shape ID="DesignTable:Taux/CodeRégime" ZOrder="6" X="21811" Y="70" Height="172" Width="252" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="121" />
<Shape ID="DesignTable:Taux/CodeSituation" ZOrder="5" X="22133" Y="70" Height="172" Width="260" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="121" />
<Shape ID="DesignTable:Type_Paiement" ZOrder="4" X="22463" Y="70" Height="96" Width="232" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="46" />
<Shape ID="DesignTable:Users" ZOrder="3" X="22765" Y="70" Height="134" Width="176" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="83" />
<Shape ID="DesignTable:Vitale" ZOrder="2" X="23011" Y="70" Height="305" Width="181" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
</Shapes>
<Connectors />
</DiagramLayout>