diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..40f566d
--- /dev/null
+++ b/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// Le informazioni generali relative a un assembly sono controllate dal seguente
+// set di attributi. Modificare i valori di questi attributi per modificare le informazioni
+// associate a un assembly.
+[assembly: AssemblyTitle("CSVToXML")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("CSVToXML")]
+[assembly: AssemblyCopyright("Copyright © 2021")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Se si imposta ComVisible su false, i tipi in questo assembly non saranno visibili
+// ai componenti COM. Se è necessario accedere a un tipo in questo assembly da
+// COM, impostare su true l'attributo ComVisible per tale tipo.
+[assembly: ComVisible(false)]
+
+// Se il progetto viene esposto a COM, il GUID seguente verrà utilizzato come ID della libreria dei tipi
+[assembly: Guid("a4667921-71e9-4050-9744-6db88844c01c")]
+
+// Le informazioni sulla versione di un assembly sono costituite dai seguenti quattro valori:
+//
+// Versione principale
+// Versione secondaria
+// Numero di build
+// Revisione
+//
+// È possibile specificare tutti i valori oppure impostare valori predefiniti per i numeri relativi alla revisione e alla build
+// usando l'asterisco '*' come illustrato di seguito:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..086124c
--- /dev/null
+++ b/Properties/Resources.Designer.cs
@@ -0,0 +1,71 @@
+//------------------------------------------------------------------------------
+//
+// Codice generato da uno strumento.
+// Versione runtime:4.0.30319.42000
+//
+// Le modifiche apportate a questo file possono causare un comportamento non corretto e andranno perse se
+// il codice viene rigenerato.
+//
+//------------------------------------------------------------------------------
+
+namespace CSVToXML.Properties
+{
+
+
+ ///
+ /// Classe di risorse fortemente tipizzata per la ricerca di stringhe localizzate e così via.
+ ///
+ // Questa classe è stata generata automaticamente dalla classe StronglyTypedResourceBuilder
+ // tramite uno strumento quale ResGen o Visual Studio.
+ // Per aggiungere o rimuovere un membro, modificare il file .ResX, quindi eseguire di nuovo ResGen
+ // con l'opzione /str oppure ricompilare il progetto VS.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources
+ {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources()
+ {
+ }
+
+ ///
+ /// Restituisce l'istanza di ResourceManager memorizzata nella cache e usata da questa classe.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager
+ {
+ get
+ {
+ if ((resourceMan == null))
+ {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CSVToXML.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Esegue l'override della proprietà CurrentUICulture del thread corrente per tutte
+ /// le ricerche di risorse che utilizzano questa classe di risorse fortemente tipizzata.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture
+ {
+ get
+ {
+ return resourceCulture;
+ }
+ set
+ {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/Properties/Resources.resx b/Properties/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/Properties/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/Properties/Settings.Designer.cs b/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..518e007
--- /dev/null
+++ b/Properties/Settings.Designer.cs
@@ -0,0 +1,30 @@
+//------------------------------------------------------------------------------
+//
+// 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.
+//
+//------------------------------------------------------------------------------
+
+namespace CSVToXML.Properties
+{
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+ {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default
+ {
+ get
+ {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/Properties/Settings.settings b/Properties/Settings.settings
new file mode 100644
index 0000000..3964565
--- /dev/null
+++ b/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/frmCSVToXML.Designer.cs b/frmCSVToXML.Designer.cs
index c6af3e9..204e449 100644
--- a/frmCSVToXML.Designer.cs
+++ b/frmCSVToXML.Designer.cs
@@ -39,23 +39,35 @@
this.txtCodAzi = new System.Windows.Forms.TextBox();
this.dtpAnnoMese = new System.Windows.Forms.DateTimePicker();
this.btnXmlInv = new System.Windows.Forms.Button();
+ this.btnDekra = new System.Windows.Forms.Button();
+ this.btnDekraInv = new System.Windows.Forms.Button();
+ this.btnDtcInv = new System.Windows.Forms.Button();
+ this.btnDtc = new System.Windows.Forms.Button();
+ this.btnDakInv = new System.Windows.Forms.Button();
+ this.btnDak = new System.Windows.Forms.Button();
+ this.btnDinvestInv = new System.Windows.Forms.Button();
+ this.btnDinvest = new System.Windows.Forms.Button();
+ this.lblDekra = new System.Windows.Forms.Label();
+ this.lblDtc = new System.Windows.Forms.Label();
+ this.lblDak = new System.Windows.Forms.Label();
+ this.lblDinvest = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// txtArea
//
this.txtArea.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.txtArea.Location = new System.Drawing.Point(17, 181);
+ this.txtArea.Location = new System.Drawing.Point(12, 202);
this.txtArea.Multiline = true;
this.txtArea.Name = "txtArea";
this.txtArea.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
- this.txtArea.Size = new System.Drawing.Size(604, 324);
+ this.txtArea.Size = new System.Drawing.Size(611, 367);
this.txtArea.TabIndex = 7;
//
// lblCSV
//
this.lblCSV.AutoSize = true;
this.lblCSV.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblCSV.Location = new System.Drawing.Point(15, 91);
+ this.lblCSV.Location = new System.Drawing.Point(15, 50);
this.lblCSV.Name = "lblCSV";
this.lblCSV.Size = new System.Drawing.Size(124, 15);
this.lblCSV.TabIndex = 1;
@@ -70,7 +82,7 @@
// txtFile
//
this.txtFile.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.txtFile.Location = new System.Drawing.Point(17, 109);
+ this.txtFile.Location = new System.Drawing.Point(17, 68);
this.txtFile.Name = "txtFile";
this.txtFile.Size = new System.Drawing.Size(516, 23);
this.txtFile.TabIndex = 3;
@@ -78,9 +90,9 @@
// btnCercaFile
//
this.btnCercaFile.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.btnCercaFile.Location = new System.Drawing.Point(540, 109);
+ this.btnCercaFile.Location = new System.Drawing.Point(540, 68);
this.btnCercaFile.Name = "btnCercaFile";
- this.btnCercaFile.Size = new System.Drawing.Size(82, 23);
+ this.btnCercaFile.Size = new System.Drawing.Size(83, 23);
this.btnCercaFile.TabIndex = 4;
this.btnCercaFile.Text = "Cerca";
this.btnCercaFile.UseVisualStyleBackColor = true;
@@ -89,29 +101,30 @@
// btnConverti
//
this.btnConverti.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.btnConverti.Location = new System.Drawing.Point(18, 148);
+ this.btnConverti.Location = new System.Drawing.Point(454, 35);
this.btnConverti.Name = "btnConverti";
this.btnConverti.Size = new System.Drawing.Size(79, 27);
this.btnConverti.TabIndex = 5;
this.btnConverti.Text = "Genera XML";
this.btnConverti.UseVisualStyleBackColor = true;
- this.btnConverti.Click += new System.EventHandler(this.btnConverti_Click);
+ this.btnConverti.Visible = false;
//
// lblCodAzi
//
this.lblCodAzi.AutoSize = true;
this.lblCodAzi.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblCodAzi.Location = new System.Drawing.Point(15, 15);
+ this.lblCodAzi.Location = new System.Drawing.Point(427, 11);
this.lblCodAzi.Name = "lblCodAzi";
this.lblCodAzi.Size = new System.Drawing.Size(92, 15);
this.lblCodAzi.TabIndex = 6;
this.lblCodAzi.Text = "Codice Azienda:";
+ this.lblCodAzi.Visible = false;
//
// lblData
//
this.lblData.AutoSize = true;
this.lblData.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblData.Location = new System.Drawing.Point(15, 57);
+ this.lblData.Location = new System.Drawing.Point(15, 16);
this.lblData.Name = "lblData";
this.lblData.Size = new System.Drawing.Size(75, 15);
this.lblData.TabIndex = 7;
@@ -120,17 +133,17 @@
// txtCodAzi
//
this.txtCodAzi.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.txtCodAzi.Location = new System.Drawing.Point(113, 12);
+ this.txtCodAzi.Location = new System.Drawing.Point(525, 8);
this.txtCodAzi.MaxLength = 4;
this.txtCodAzi.Name = "txtCodAzi";
this.txtCodAzi.Size = new System.Drawing.Size(98, 23);
this.txtCodAzi.TabIndex = 1;
- this.txtCodAzi.Leave += new System.EventHandler(this.txtCodAzi_Leave);
+ this.txtCodAzi.Visible = false;
//
// dtpAnnoMese
//
this.dtpAnnoMese.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.dtpAnnoMese.Location = new System.Drawing.Point(113, 53);
+ this.dtpAnnoMese.Location = new System.Drawing.Point(94, 12);
this.dtpAnnoMese.Name = "dtpAnnoMese";
this.dtpAnnoMese.Size = new System.Drawing.Size(194, 23);
this.dtpAnnoMese.TabIndex = 2;
@@ -138,19 +151,163 @@
// btnXmlInv
//
this.btnXmlInv.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.btnXmlInv.Location = new System.Drawing.Point(103, 148);
+ this.btnXmlInv.Location = new System.Drawing.Point(539, 35);
this.btnXmlInv.Name = "btnXmlInv";
this.btnXmlInv.Size = new System.Drawing.Size(84, 27);
this.btnXmlInv.TabIndex = 6;
this.btnXmlInv.Text = "XML Inv.";
this.btnXmlInv.UseVisualStyleBackColor = true;
- this.btnXmlInv.Click += new System.EventHandler(this.btnXmlInv_Click);
+ this.btnXmlInv.Visible = false;
+ //
+ // btnDekra
+ //
+ this.btnDekra.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btnDekra.Location = new System.Drawing.Point(17, 123);
+ this.btnDekra.Name = "btnDekra";
+ this.btnDekra.Size = new System.Drawing.Size(93, 27);
+ this.btnDekra.TabIndex = 8;
+ this.btnDekra.Text = "DEKRA IT.";
+ this.btnDekra.UseVisualStyleBackColor = true;
+ this.btnDekra.Click += new System.EventHandler(this.btnDekra_Click);
+ //
+ // btnDekraInv
+ //
+ this.btnDekraInv.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btnDekraInv.Location = new System.Drawing.Point(17, 156);
+ this.btnDekraInv.Name = "btnDekraInv";
+ this.btnDekraInv.Size = new System.Drawing.Size(93, 27);
+ this.btnDekraInv.TabIndex = 9;
+ this.btnDekraInv.Text = "DEKRA IT. INV.";
+ this.btnDekraInv.UseVisualStyleBackColor = true;
+ this.btnDekraInv.Click += new System.EventHandler(this.btnDekraInv_Click);
+ //
+ // btnDtcInv
+ //
+ this.btnDtcInv.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btnDtcInv.Location = new System.Drawing.Point(196, 156);
+ this.btnDtcInv.Name = "btnDtcInv";
+ this.btnDtcInv.Size = new System.Drawing.Size(79, 27);
+ this.btnDtcInv.TabIndex = 11;
+ this.btnDtcInv.Text = "DTC INV.";
+ this.btnDtcInv.UseVisualStyleBackColor = true;
+ this.btnDtcInv.Click += new System.EventHandler(this.btnDtcInv_Click);
+ //
+ // btnDtc
+ //
+ this.btnDtc.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btnDtc.Location = new System.Drawing.Point(196, 123);
+ this.btnDtc.Name = "btnDtc";
+ this.btnDtc.Size = new System.Drawing.Size(79, 27);
+ this.btnDtc.TabIndex = 10;
+ this.btnDtc.Text = "DTC";
+ this.btnDtc.UseVisualStyleBackColor = true;
+ this.btnDtc.Click += new System.EventHandler(this.btnDtc_Click);
+ //
+ // btnDakInv
+ //
+ this.btnDakInv.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btnDakInv.Location = new System.Drawing.Point(372, 156);
+ this.btnDakInv.Name = "btnDakInv";
+ this.btnDakInv.Size = new System.Drawing.Size(79, 27);
+ this.btnDakInv.TabIndex = 13;
+ this.btnDakInv.Text = "DAK INV.";
+ this.btnDakInv.UseVisualStyleBackColor = true;
+ this.btnDakInv.Click += new System.EventHandler(this.btnDakInv_Click);
+ //
+ // btnDak
+ //
+ this.btnDak.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btnDak.Location = new System.Drawing.Point(372, 123);
+ this.btnDak.Name = "btnDak";
+ this.btnDak.Size = new System.Drawing.Size(79, 27);
+ this.btnDak.TabIndex = 12;
+ this.btnDak.Text = "DAK";
+ this.btnDak.UseVisualStyleBackColor = true;
+ this.btnDak.Click += new System.EventHandler(this.btnDak_Click);
+ //
+ // btnDinvestInv
+ //
+ this.btnDinvestInv.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btnDinvestInv.Location = new System.Drawing.Point(525, 156);
+ this.btnDinvestInv.Name = "btnDinvestInv";
+ this.btnDinvestInv.Size = new System.Drawing.Size(98, 27);
+ this.btnDinvestInv.TabIndex = 15;
+ this.btnDinvestInv.Text = "DINVEST INV.";
+ this.btnDinvestInv.UseVisualStyleBackColor = true;
+ this.btnDinvestInv.Click += new System.EventHandler(this.btnDinvestInv_Click);
+ //
+ // btnDinvest
+ //
+ this.btnDinvest.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btnDinvest.Location = new System.Drawing.Point(525, 123);
+ this.btnDinvest.Name = "btnDinvest";
+ this.btnDinvest.Size = new System.Drawing.Size(98, 27);
+ this.btnDinvest.TabIndex = 14;
+ this.btnDinvest.Text = "DINVEST";
+ this.btnDinvest.UseVisualStyleBackColor = true;
+ this.btnDinvest.Click += new System.EventHandler(this.btnDinvest_Click);
+ //
+ // lblDekra
+ //
+ this.lblDekra.AutoSize = true;
+ this.lblDekra.BackColor = System.Drawing.Color.Transparent;
+ this.lblDekra.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblDekra.Location = new System.Drawing.Point(25, 105);
+ this.lblDekra.Name = "lblDekra";
+ this.lblDekra.Size = new System.Drawing.Size(79, 15);
+ this.lblDekra.TabIndex = 16;
+ this.lblDekra.Text = "DEKRA ITALIA";
+ //
+ // lblDtc
+ //
+ this.lblDtc.AutoSize = true;
+ this.lblDtc.BackColor = System.Drawing.Color.Transparent;
+ this.lblDtc.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblDtc.Location = new System.Drawing.Point(222, 105);
+ this.lblDtc.Name = "lblDtc";
+ this.lblDtc.Size = new System.Drawing.Size(27, 15);
+ this.lblDtc.TabIndex = 17;
+ this.lblDtc.Text = "DTC";
+ //
+ // lblDak
+ //
+ this.lblDak.AutoSize = true;
+ this.lblDak.BackColor = System.Drawing.Color.Transparent;
+ this.lblDak.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblDak.Location = new System.Drawing.Point(395, 105);
+ this.lblDak.Name = "lblDak";
+ this.lblDak.Size = new System.Drawing.Size(30, 15);
+ this.lblDak.TabIndex = 18;
+ this.lblDak.Text = "DAK";
+ //
+ // lblDinvest
+ //
+ this.lblDinvest.AutoSize = true;
+ this.lblDinvest.BackColor = System.Drawing.Color.Transparent;
+ this.lblDinvest.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblDinvest.Location = new System.Drawing.Point(548, 105);
+ this.lblDinvest.Name = "lblDinvest";
+ this.lblDinvest.Size = new System.Drawing.Size(52, 15);
+ this.lblDinvest.TabIndex = 19;
+ this.lblDinvest.Text = "DINVEST";
//
// frmCSVToXML
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(633, 517);
+ this.ClientSize = new System.Drawing.Size(633, 576);
+ this.Controls.Add(this.lblDinvest);
+ this.Controls.Add(this.lblDak);
+ this.Controls.Add(this.lblDtc);
+ this.Controls.Add(this.lblDekra);
+ this.Controls.Add(this.btnDinvestInv);
+ this.Controls.Add(this.btnDinvest);
+ this.Controls.Add(this.btnDakInv);
+ this.Controls.Add(this.btnDak);
+ this.Controls.Add(this.btnDtcInv);
+ this.Controls.Add(this.btnDtc);
+ this.Controls.Add(this.btnDekraInv);
+ this.Controls.Add(this.btnDekra);
this.Controls.Add(this.btnXmlInv);
this.Controls.Add(this.dtpAnnoMese);
this.Controls.Add(this.txtCodAzi);
@@ -182,6 +339,18 @@
private System.Windows.Forms.TextBox txtCodAzi;
private System.Windows.Forms.DateTimePicker dtpAnnoMese;
private System.Windows.Forms.Button btnXmlInv;
+ private System.Windows.Forms.Button btnDekra;
+ private System.Windows.Forms.Button btnDekraInv;
+ private System.Windows.Forms.Button btnDtcInv;
+ private System.Windows.Forms.Button btnDtc;
+ private System.Windows.Forms.Button btnDakInv;
+ private System.Windows.Forms.Button btnDak;
+ private System.Windows.Forms.Button btnDinvestInv;
+ private System.Windows.Forms.Button btnDinvest;
+ private System.Windows.Forms.Label lblDekra;
+ private System.Windows.Forms.Label lblDtc;
+ private System.Windows.Forms.Label lblDak;
+ private System.Windows.Forms.Label lblDinvest;
}
}
diff --git a/frmCSVToXML.cs b/frmCSVToXML.cs
index 3070e7b..991b850 100644
--- a/frmCSVToXML.cs
+++ b/frmCSVToXML.cs
@@ -23,6 +23,9 @@ namespace CSVToXML
//viene letto nel file XmlConfigFile.xml dentro alla cartella bin del progetto
public static string pathDestinazione = string.Empty;
+ private decimal _totDare = 0;
+ private decimal _totAvere = 0;
+
public frmCSVToXML()
{
InitializeComponent();
@@ -50,7 +53,7 @@ namespace CSVToXML
switch (nome)
{
- case "diOutput":
+ case "dirOutput":
pathDestinazione = valore;
//txtArea.Text = $"{pathDestinazione}";
break;
@@ -174,8 +177,12 @@ namespace CSVToXML
TotDare += item.DoubleImportoDare;
TotAvere += item.DoubleImportoAvere;
}
- var differenza = TotDare - TotAvere;
+ _totDare = TotDare;
+ _totAvere = TotAvere;
+
+ var differenza = TotDare - TotAvere;
+
if (differenza != 0)
{
var strErrore = MessageBox.Show($"LA differenza tra gli importi in DARE e gli importi in AVERE deve essere ZERO.",
@@ -184,6 +191,800 @@ namespace CSVToXML
}
}
+ private void ProduciXml(string codAzi)
+ {
+ //la data non la controllo perchè se non la modifico prende la data di oggi
+ txtArea.Clear();
+
+ txtArea.Text = $"Premere Genera XML/XML Inv. per iniziare la procedura di conversione."
+ + Environment.NewLine;
+
+ var list = CreaOggettiPerConversioni();
+
+ var listaAppoggio = NumeroFileXMLDaProdurre(list);
+ var listaXml = new List();
+ var numberXml = 1;
+ var path = string.Empty;
+ var pathCompleto = string.Empty;
+ //questo sarà il contenuto del tag xml
+ //30/05/2022 pare che tag recordcount debba essere fisso a 1 quindi commento tutto ciò che lo riguarda
+ //var recordcount = 0;
+
+ var dateString = string.Empty;
+
+ //12/07/2024 - Il cliente ha chiesto un alert che non blocchi la creazione del file XML ma che mostri quali dipendenti
+ //non hanno valorizzati i campi "codice dato ripartizione 4" e "codice dato ripartizione 5" dentro il csv.
+ var listaNomiAlert = new List();
+ var nomeDipNoValore = string.Empty;
+
+ //data per gli attributi del tag E1FIKPF per i file DATA
+ var dateTimePeaker = dtpAnnoMese;
+ var dateBLDAT = dtpAnnoMese.Value.ToString("yyyyMMdd");
+ var dateBUDAT = dtpAnnoMese.Value.ToString("yyyyMMdd");
+ var dateXBLNRYear = dtpAnnoMese.Value.Year.ToString();
+ var dateXBLNRMonth = dtpAnnoMese.Value.Month.ToString();
+
+ if (dateXBLNRMonth.Length == 1)
+ {
+ dateXBLNRMonth = "0" + dateXBLNRMonth;
+ }
+
+ var dateBKTXTYear = dtpAnnoMese.Value.Year.ToString();
+ var dateBKTXTMonth = dtpAnnoMese.Value.Month.ToString();
+
+ if (dateBKTXTMonth.Length == 1)
+ {
+ dateBKTXTMonth = "0" + dateBKTXTMonth;
+ }
+
+ var erroreTrovato = 0;
+ var msgDato = 0;
+
+ //Controllo che per ogni codifica della ripartizione 3 ci sia uno e uno solo codice dipendete
+ foreach (var item in listaAppoggio)
+ {
+ /*
+ * filtro la lista così ad ogni iterata avrò solo le righe della lista con codifica della ripartizione 3 = a quello
+ * dell'elemento della listaAppoggio che sto ciclando. coì per ogni "codifica" posso crearmi il suo xml
+ */
+
+ //28/03/2022 commentato perchè si deve usare codifica della ripartizione 3 come elementi di rottura.
+ //var listaFiltrata = list.Where(x => x.CodiceDatoRipartizione4.Equals(app.codice)).ToList();
+
+ var listaFiltrata = list.Where(x => x.CodificaDellaRipartizione3.Equals(item.codice)).ToList();
+
+ //controllo che alla stessa codifica della ripartizione 3 non appartengano più codici dipendenti
+ var codiceDipendente = listaFiltrata.First().CodiceDipendente;
+ var listaNomiErrori = new List();
+ var nomeDipendente = string.Empty;
+
+ foreach (var elem in listaFiltrata)
+ {
+ if (elem.CodiceDatoRipartizione4.Equals("\"\"") || elem.CodiceDatoRipartizione5.Equals("\"\""))
+ {
+ nomeDipNoValore = elem.CodiceDipendente + " - " + elem.Nome + " " + elem.Cognome;
+ listaNomiAlert.Add(nomeDipNoValore);
+ }
+
+ //if (codiceDipendente != elem.CodiceDipendente)
+ if (string.IsNullOrEmpty(elem.CodiceDatoRipartizione3/*CodificaDellaRipartizione3*/))
+ {
+ nomeDipendente = elem.Cognome + " " + elem.Nome;
+
+ var trovato = 0;
+
+ foreach (var nomeDip in listaNomiErrori)
+ {
+ var nome1 = nomeDipendente.Replace(" ", "");
+ var nome2 = nomeDip.Replace(" ", "");
+ if (nome1.Equals(nome2))
+ {
+ trovato = 1;
+ break;
+ }
+ }
+
+ if (trovato != 1)
+ {
+ listaNomiErrori.Add(nomeDipendente);
+ }
+
+ erroreTrovato = 1;
+ }
+ }
+
+ if (erroreTrovato == 1)
+ {
+ if (msgDato == 0)
+ {
+ //var codifRip3 = elem.CodificaDellaRipartizione3;
+ txtArea.Text += Environment.NewLine +
+ "GENERAZIONE XML NON AVVENUTA.";
+ txtArea.Text += Environment.NewLine
+ + Environment.NewLine
+ + $"Controllare le codifiche della ripartizione 3 per i seguenti dipendenti:"
+ + Environment.NewLine;
+
+ var str = MessageBox.Show($"Non ci possono essere dipendenti con CODICE DELLA RIPARTIZIONE 3 vuoto." +
+ Environment.NewLine +
+ $"Correggere per poter creare l'XML",
+ "IL CODICE DELLA RIPARTIZIONE 3 VUOTO.",
+ MessageBoxButtons.OK, MessageBoxIcon.Error);
+
+ msgDato = 1;
+ }
+
+ foreach (var nomi in listaNomiErrori)
+ {
+ txtArea.Text += $"- {nomi}"
+ + Environment.NewLine;
+ }
+ }
+ }
+
+ //FILE DATA string builder
+ StringBuilder stringDATA = new StringBuilder();
+
+ //FILE CONT string builder
+ StringBuilder stringCONT = new StringBuilder();
+
+ if (listaNomiAlert.Count != 0)
+ {
+ //mostro a video l'elenco dei dipendenti che hanno l'alert.
+ txtArea.Text += Environment.NewLine +
+ "I seguenti dipendenti non hanno valorizzati i Codice dato ripartizione 4 o Codice dato ripartizione 5:"
+ + Environment.NewLine;
+
+ foreach (var nomiDip in listaNomiAlert)
+ {
+ txtArea.Text += $"- {nomiDip.Replace("\"", "")}"
+ + Environment.NewLine;
+ }
+ }
+
+ //list.Where(x => x.CodiceDatoRipartizione4.Contains("1")).ToList();
+ if (list != null && list.Any() && erroreTrovato == 0)
+ {
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append($"");
+
+ stringCONT.Append("");
+ stringCONT.Append("");
+
+ foreach (var app in listaAppoggio)
+ {
+ /*
+ * filtro la lista così ad ogni iterata avrò solo le righe della lista con codice ripartizione uguale a quello
+ * dell'elemento della listaAppoggio che sto ciclando. così per ogni "codice" posso crearmi il suo xml
+ */
+
+ //28/03/2022 commentato perchè si deve usare codifica della ripartizione 3 come elementi di rottura.
+ //var listaFiltrata = list.Where(x => x.CodiceDatoRipartizione4.Equals(app.codice)).ToList();
+
+ var listaFiltrata = list.Where(x => x.CodificaDellaRipartizione3.Equals(app.codice)).ToList();
+
+ if (app.numFileXml != numberXml)
+ {
+ //txtArea.Text += Environment.NewLine
+ //+ $"Finito {numberXml}";
+
+ stringDATA.Append("");
+ stringDATA.Append("");
+
+ Thread.Sleep(1000);
+ dateString = DateTime.Now.ToString("yyyyMMddHHmmss");
+
+ //Thread.Sleep(1000);
+
+ //path = $@"C:\ProgettiVisualStudio\OutputXML\d10015_52905_{dateString}_DATA.xml";
+ path = $@"{pathDestinazione}\d10015_52905_{dateString}_DATA.xml";
+ //path = $@"C:\Users\miche\Desktop\FileXML\d10015_52905_{dateString}_DATA.xml";
+
+ //scrivo file xml
+ File.WriteAllText(path, stringDATA.ToString());
+
+ //controllo se il file è stato creato.
+ if (File.Exists(path))
+ {
+ txtArea.Text += Environment.NewLine
+ + $"File d10015_52905_{dateString}_DATA.xml creato correttamente" +
+ Environment.NewLine;
+ }
+ else
+ {
+ txtArea.Text += Environment.NewLine
+ + $"File d10015_52905_{dateString}_DATA.xml NON creato" +
+ Environment.NewLine;
+ }
+
+ //pulisco stringbuilder
+ stringDATA.Clear();
+
+ //riapro tag del nuovo file xml DATA
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append($"");
+
+ //txtArea.Text += Environment.NewLine
+ //+ $"Finito {numberXml}";
+ numberXml++;
+
+ //FILE CONT
+ stringCONT.Append("");
+ stringCONT.Append($"{1/*recordcount*/}");
+ stringCONT.Append("");
+ stringCONT.Append("");
+ dateString = DateTime.Now.ToString("yyyyMMddHHmmss");
+ path = $@"C:\ProgettiVisualStudio\OutputXML\d10015_52905_{dateString}_CONT.xml";
+ path = $@"{pathDestinazione}\d10015_52905_{dateString}_CONT.xml";
+ //path = $@"C:\Users\miche\Desktop\FileXML\d10015_52905_{dateString}_CONT.xml";
+
+ File.WriteAllText(path, stringCONT.ToString());
+
+ //controllo se il file è stato creato.
+ if (File.Exists(path))
+ {
+ txtArea.Text += Environment.NewLine
+ + $"File d10015_52905_{dateString}_CONT.xml creato correttamente" +
+ Environment.NewLine;
+ }
+ else
+ {
+ txtArea.Text += Environment.NewLine
+ + $"File d10015_52905_{dateString}_CONT.xml NON creato" +
+ Environment.NewLine;
+ }
+
+ //recordcount = 0;
+
+ //pulisco stringbuilder
+ stringCONT.Clear();
+
+ //riapro i tag del nuovo file xml CONT
+ stringCONT.Append("");
+ stringCONT.Append("");
+ }
+
+ //possibile soluzione
+ //recordcount += listaFiltrata.Count();
+
+ foreach (var item in listaFiltrata)
+ {
+ //UTILIZZATO SOLO PER VEDERE CHE DATO RIPARTIZIONE FOSSE (NON SERVE)
+ //myStringbuilder.Append("");
+ //myStringbuilder.Append($"{app.codice}");
+ //myStringbuilder.Append("");
+
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("S");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ //prima dell'if sostituisco la , col . per poter castare a decimale la stringa
+ if (Convert.ToDecimal(item.ImportoDare.Replace(",", ".")) > 0)
+ {
+ //13/01/2023 MODIFICATO
+ //stringDATA.Append("H");
+ stringDATA.Append("S");
+ }
+ else
+ {
+ //13/01/2023 MODIFICATO
+ //stringDATA.Append("S");
+ stringDATA.Append("H");
+
+ }
+
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ //var impo = item.ImportoDare.Replace(",", ".");
+
+ if (Convert.ToDecimal(item.ImportoDare.Replace(",", ".")) > 0)
+ {
+ stringDATA.Append($"{item.ImportoDare.Replace(",", ".")}");
+ }
+ else
+ {
+ stringDATA.Append($"{item.ImportoAvere.Replace(",", ".")}");
+ }
+
+ stringDATA.Append("");
+ stringDATA.Append("");
+
+ if (Convert.ToDecimal(item.ImportoDare.Replace(",", ".")) > 0)
+ {
+ stringDATA.Append($"{item.ImportoDare.Replace(",", ".")}");
+ }
+ else
+ {
+ stringDATA.Append($"{item.ImportoAvere.Replace(",", ".")}");
+ }
+
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ //28/03/2022 chiesto di modificare da Gastone con CodificaDellaRipartizione3(col. AJ su Excel) anzichè CodiceDatoRipartizione3 (col. AI su Excel)
+ //21/10/2022 chiesto da modificare da Gastone e rimettere CodiceDatoRipartizione3 (col. AI su Excel) anzichè CodificaDellaRipartizione3(col. AJ su Excel)
+ stringDATA.Append($"{item./*CodificaDellaRipartizione3*/CodiceDatoRipartizione3.Replace("\"", "")}");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ //MF 03/10/2023 DOPO CALL CON GASTONE DECISO DI RIMETTERE CODICE CONTO E TOGLIERE CODICE CONTROPARTITA PERCHè SENò SPUTTANA S E H PER DARE E AVERE
+ //MF 29/07/2024 COMMENTATA PERCHEè USA LA RIGA SOTTO
+ //stringDATA.Append($"{item.CodiceConto/*CodiceContropartita*/}");
+ //MF 29/07/2024 MESSO REPLACE PERCHè LA STRUTTURA CSV NEL CAMPO CONTO COMPARE COME \"
+ stringDATA.Append($"{item.CodiceConto.Replace("\"", "")/*CodiceContropartita*/}");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ }
+ }
+
+ stringDATA.Append("");
+ stringDATA.Append("");
+ Thread.Sleep(1000);
+ dateString = DateTime.Now.ToString("yyyyMMddHHmmss");
+ path = $@"C:\ProgettiVisualStudio\OutputXML\d10015_52905_{dateString}_DATA.xml";
+ path = $@"{pathDestinazione}\d10015_52905_{dateString}_DATA.xml";
+
+ File.WriteAllText(path, stringDATA.ToString());
+
+ //controllo se il file è stato creato.
+ if (File.Exists(path))
+ {
+ txtArea.Text += Environment.NewLine
+ + $"File d10015_52905_{dateString}_DATA.xml creato correttamente" +
+ Environment.NewLine;
+ }
+ else
+ {
+ txtArea.Text += Environment.NewLine
+ + $"File d10015_52905_{dateString}_DATA.xml NON creato" +
+ Environment.NewLine;
+ }
+
+ stringCONT.Append("");
+ //30/05/2022 pare che questo sia un dato fisso a 1
+ stringCONT.Append($"{1/*recordcount*/}");
+ stringCONT.Append("");
+ stringCONT.Append("");
+ dateString = DateTime.Now.ToString("yyyyMMddHHmmss");
+ //path = $@"C:\ProgettiVisualStudio\OutputXML\filexml_{numberXml}.xml";
+ Thread.Sleep(1000);
+ path = $@"C:\ProgettiVisualStudio\OutputXML\d10015_52905_{dateString}_CONT.xml";
+ path = $@"{pathDestinazione}\d10015_52905_{dateString}_CONT.xml";
+ //path = $@"C:\Users\miche\Desktop\FileXML\d10015_52905_{dateString}_CONT.xml";
+
+ File.WriteAllText(path, stringCONT.ToString());
+
+ //controllo se il file è stato creato.
+ if (File.Exists(path))
+ {
+ txtArea.Text += Environment.NewLine
+ + $"File d10015_52905_{dateString}_CONT.xml creato correttamente" +
+ Environment.NewLine;
+
+ txtArea.Text += Environment.NewLine
+ + $"Totale VOCI DARE: {_totDare} - Totale VOCI AVERE: {_totAvere}" +
+ Environment.NewLine;
+
+ txtArea.Text += Environment.NewLine
+ + $"Procedura terminata."
+ + Environment.NewLine;
+ }
+ else
+ {
+ txtArea.Text += Environment.NewLine
+ + $"File d10015_52905_{dateString}_CONT.xml NON creato" +
+ Environment.NewLine;
+ }
+ }
+ }
+
+ private void ProduciXmlInv(string codAzi)
+ {
+ //controllo che codice azienda sia inserito da input, senò non genero l'xml
+ //la data non la controllo perchè se non la modifico prende la data di oggi
+ txtArea.Clear();
+ txtArea.Text = $"Premere Genera XML/XML Inv. per iniziare la procedura di conversione."
+ + Environment.NewLine;
+
+ var list = CreaOggettiPerConversioni();
+
+ var listaAppoggio = NumeroFileXMLDaProdurre(list);
+ var listaXml = new List();
+ var numberXml = 1;
+ var path = string.Empty;
+ var pathCompleto = string.Empty;
+
+ //questo sarà il contenuto del tag xml
+ //30/05/2022 pare che tag recordcount debba essere fisso a 1 quindi commento tutto ciò che lo riguarda
+ //var recordcount = 0;
+ var dateString = string.Empty;
+
+ //12/07/2024 - Il cliente ha chiesto un alert che non blocchi la creazione del file XML ma che mostri quali dipendenti
+ //non hanno valorizzati i campi "codice dato ripartizione 4" e "codice dato ripartizione 5" dentro il csv.
+ var listaNomiAlert = new List();
+ var nomeDipNoValore = string.Empty;
+
+ //data per gli attributi del tag E1FIKPF per i file DATA
+ var dateTimePeaker = dtpAnnoMese;
+ var dateBLDAT = dtpAnnoMese.Value.ToString("yyyyMMdd");
+ var dateBUDAT = dtpAnnoMese.Value.ToString("yyyyMMdd");
+ var dateXBLNRYear = dtpAnnoMese.Value.Year.ToString();
+ var dateXBLNRMonth = dtpAnnoMese.Value.Month.ToString();
+
+ if (dateXBLNRMonth.Length == 1)
+ {
+ dateXBLNRMonth = "0" + dateXBLNRMonth;
+ }
+
+ var dateBKTXTYear = dtpAnnoMese.Value.Year.ToString();
+ var dateBKTXTMonth = dtpAnnoMese.Value.Month.ToString();
+
+ if (dateBKTXTMonth.Length == 1)
+ {
+ dateBKTXTMonth = "0" + dateBKTXTMonth;
+ }
+
+ var erroreTrovato = 0;
+ var msgDato = 0;
+
+ //Controllo che per ogni codifica della ripartizione 3 ci sia uno e uno solo codice dipendete
+ foreach (var item in listaAppoggio)
+ {
+ //filtro la lista così ad ogni iterata avrò solo le righe della lista con codifica della ripartizione 3 = a quello
+ //dell'elemento della listaAppoggio che sto ciclando. coì per ogni "codifica" posso crearmi il suo xml
+
+ //28/03/2022 commentato perchè si deve usare codifica della ripartizione 3 come elementi di rottura.
+ //var listaFiltrata = list.Where(x => x.CodiceDatoRipartizione4.Equals(app.codice)).ToList();
+ var listaFiltrata = list.Where(x => x.CodificaDellaRipartizione3.Equals(item.codice)).ToList();
+
+ //controllo che alla stessa codifica della ripartizione 3 non appartengano più codici dipendenti
+ var codiceDipendente = listaFiltrata.First().CodiceDipendente;
+ var listaNomiErrori = new List();
+ var nomeDipendente = string.Empty;
+
+ foreach (var elem in listaFiltrata)
+ {
+ if (elem.CodiceDatoRipartizione4.Equals("\"\"") || elem.CodiceDatoRipartizione5.Equals("\"\""))
+ {
+ nomeDipNoValore = elem.CodiceDipendente + " - " + elem.Nome + " " + elem.Cognome;
+ listaNomiAlert.Add(nomeDipNoValore.Replace(" ", ""));
+ }
+
+ //if (codiceDipendente != elem.CodiceDipendente)
+ if (string.IsNullOrEmpty(elem.CodiceDatoRipartizione3/*CodificaDellaRipartizione3*/))
+ {
+ nomeDipendente = elem.Cognome + " " + elem.Nome;
+
+ var trovato = 0;
+
+ foreach (var nomeDip in listaNomiErrori)
+ {
+ var nome1 = nomeDipendente.Replace(" ", "");
+ var nome2 = nomeDip.Replace(" ", "");
+ if (nome1.Equals(nome2))
+ {
+ trovato = 1;
+ break;
+ }
+ }
+
+ if (trovato != 1)
+ {
+ listaNomiErrori.Add(nomeDipendente);
+ }
+
+ erroreTrovato = 1;
+
+ //break;
+ }
+ }
+
+ if (erroreTrovato == 1)
+ {
+ if (msgDato == 0)
+ {
+ //var codifRip3 = elem.CodificaDellaRipartizione3;
+ txtArea.Text += Environment.NewLine +
+ "GENERAZIONE XML NON AVVENUTA.";
+ txtArea.Text += Environment.NewLine
+ + Environment.NewLine
+ + $"Controllare le codifiche della ripartizione 3 per i seguenti dipendenti:"
+ + Environment.NewLine;
+
+ var str = MessageBox.Show($"Non ci possono essere dipendenti con CODICE DELLA RIPARTIZIONE 3 vuoto." +
+ Environment.NewLine +
+ $"Correggere per poter creare l'XML",
+ "IL CODICE DELLA RIPARTIZIONE 3 VUOTO.",
+ MessageBoxButtons.OK, MessageBoxIcon.Error);
+
+ msgDato = 1;
+ }
+
+ foreach (var nomi in listaNomiErrori)
+ {
+ txtArea.Text += $"- {nomi}"
+ + Environment.NewLine;
+ }
+ }
+ }
+
+ //FILE DATA string builder
+ StringBuilder stringDATA = new StringBuilder();
+ //FILE CONT string builder
+ StringBuilder stringCONT = new StringBuilder();
+
+ if (listaNomiAlert.Count != 0)
+ {
+ //mostro a video l'elenco dei dipendenti che hanno l'alert.
+ txtArea.Text += Environment.NewLine +
+ "I seguenti dipendenti non hanno valorizzati i Codice dato ripartizione 4 o Codice dato ripartizione 5:"
+ + Environment.NewLine;
+
+ foreach (var nomiDip in listaNomiAlert)
+ {
+ txtArea.Text += $"- {nomiDip.Replace("\"", "")}"
+ + Environment.NewLine;
+ }
+ }
+
+ //list.Where(x => x.CodiceDatoRipartizione4.Contains("1")).ToList();
+ if (list != null && list.Any() && erroreTrovato == 0)
+ {
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append($"");
+
+ stringCONT.Append("");
+ stringCONT.Append("");
+
+ foreach (var app in listaAppoggio)
+ {
+ //filtro la lista così ad ogni iterata avrò solo le righe della lista con codice ripartizione = a quello
+ //dell'elemento della listaAppoggio che sto ciclando. coì per ogni "codice" posso crearmi il suo xml
+ //28/03/2022 commentato perchè si deve usare codifica della ripartizione 3 come elementi di rottura.
+ //var listaFiltrata = list.Where(x => x.CodiceDatoRipartizione4.Equals(app.codice)).ToList();
+ var listaFiltrata = list.Where(x => x.CodificaDellaRipartizione3.Equals(app.codice)).ToList();
+
+ if (app.numFileXml != numberXml)
+ {
+ stringDATA.Append("");
+ stringDATA.Append("");
+
+ Thread.Sleep(1000);
+ dateString = DateTime.Now.ToString("yyyyMMddHHmmss");
+
+ path = $@"{pathDestinazione}\d10015_52905_{dateString}_DATA.xml";
+
+ //scrivo file xml
+ File.WriteAllText(path, stringDATA.ToString());
+
+ //controllo se il file è stato creato.
+ if (File.Exists(path))
+ {
+ txtArea.Text += Environment.NewLine
+ + $"File d10015_52905_{dateString}_DATA.xml creato correttamente" +
+ Environment.NewLine;
+ }
+ else
+ {
+ txtArea.Text += Environment.NewLine
+ + $"File d10015_52905_{dateString}_DATA.xml NON creato" +
+ Environment.NewLine;
+ }
+
+ //pulisco stringbuilder
+ stringDATA.Clear();
+
+ //riapro tag del nuovo file xml DATA
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append($"");
+
+ numberXml++;
+
+ //FILE CONT
+ stringCONT.Append("");
+ stringCONT.Append($"{1/*recordcount*/}");
+ stringCONT.Append("");
+ stringCONT.Append("");
+ dateString = DateTime.Now.ToString("yyyyMMddHHmmss");
+ path = $@"C:\ProgettiVisualStudio\OutputXML\d10015_52905_{dateString}_CONT.xml";
+ path = $@"{pathDestinazione}\d10015_52905_{dateString}_CONT.xml";
+
+ File.WriteAllText(path, stringCONT.ToString());
+
+ //controllo se il file è stato creato.
+ if (File.Exists(path))
+ {
+ txtArea.Text += Environment.NewLine
+ + $"File d10015_52905_{dateString}_CONT.xml creato correttamente" +
+ Environment.NewLine;
+ }
+ else
+ {
+ txtArea.Text += Environment.NewLine
+ + $"File d10015_52905_{dateString}_CONT.xml NON creato" +
+ Environment.NewLine;
+ }
+
+ //recordcount = 0;
+
+ //pulisco stringbuilder
+ stringCONT.Clear();
+
+ //riapro i tag del nuovo file xml CONT
+ stringCONT.Append("");
+ stringCONT.Append("");
+ }
+
+ //possibile soluzione
+ //recordcount += listaFiltrata.Count();
+
+ foreach (var item in listaFiltrata)
+ {
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("S");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ //IN QUESTO CONTROLLO HO INVERTITO I VALORI DI S E H
+ //prima dell'if sostituisco la , col . per poter castare a decimale la stringa
+ if (Convert.ToDecimal(item.ImportoDare.Replace(",", ".")) > 0)
+ {
+ stringDATA.Append("H");
+ //stringDATA.Append("S"); //13/01/2023 modificato di nuovo (rimesso com'era prima)
+ }
+ else
+ {
+ stringDATA.Append("S");
+ //stringDATA.Append("H"); //13/01/2023 modificato di nuovo (rimesso com'era prima)
+ }
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ //var impo = item.ImportoDare.Replace(",", ".");
+ if (Convert.ToDecimal(item.ImportoDare.Replace(",", ".")) > 0)
+ {
+ stringDATA.Append($"{item.ImportoDare.Replace(",", ".")}");
+ }
+ else
+ {
+ stringDATA.Append($"{item.ImportoAvere.Replace(",", ".")}");
+ }
+ stringDATA.Append("");
+ stringDATA.Append("");
+ if (Convert.ToDecimal(item.ImportoDare.Replace(",", ".")) > 0)
+ {
+ stringDATA.Append($"{item.ImportoDare.Replace(",", ".")}");
+ }
+ else
+ {
+ stringDATA.Append($"{item.ImportoAvere.Replace(",", ".")}");
+ }
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ //28/03/2022 chiesto di modificare da Gastone con CodificaDellaRipartizione3(col. AJ su Excel) anzichè CodiceDatoRipartizione3 (col. AI su Excel)
+ //21/10/2022 chiesto da modificare da Gastone e rimettere CodiceDatoRipartizione3 (col. AI su Excel) anzichè CodificaDellaRipartizione3(col. AJ su Excel)
+ stringDATA.Append($"{item./*CodificaDellaRipartizione3*/CodiceDatoRipartizione3.Replace("\"", "")}");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ //MF 03/10/2023 DOPO CALL CON GASTONE DECISO DI RIMETTERE CODICE CONTO E TOGLIERE CODICE CONTROPARTITA PERCHè SENò SPUTTANA S E H PER DARE E AVERE
+ stringDATA.Append($"{item.CodiceConto.Replace("\"", "")/*CodiceContropartita*/}");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ stringDATA.Append("");
+ }
+ }
+
+ stringDATA.Append("");
+ stringDATA.Append("");
+ Thread.Sleep(1000);
+ dateString = DateTime.Now.ToString("yyyyMMddHHmmss");
+ //Thread.Sleep(1000);
+ path = $@"C:\ProgettiVisualStudio\OutputXML\d10015_52905_{dateString}_DATA.xml";
+ path = $@"{pathDestinazione}\d10015_52905_{dateString}_DATA.xml";
+
+ File.WriteAllText(path, stringDATA.ToString());
+
+ //controllo se il file è stato creato.
+ if (File.Exists(path))
+ {
+ txtArea.Text += Environment.NewLine
+ + $"File d10015_52905_{dateString}_DATA.xml creato correttamente" +
+ Environment.NewLine;
+ }
+ else
+ {
+ txtArea.Text += Environment.NewLine
+ + $"File d10015_52905_{dateString}_DATA.xml NON creato" +
+ Environment.NewLine;
+ }
+
+ stringCONT.Append("");
+ //30/05/2022 pare che questo sia un dato fisso a 1
+ stringCONT.Append($"{1/*recordcount*/}");
+ stringCONT.Append("");
+ stringCONT.Append("");
+ dateString = DateTime.Now.ToString("yyyyMMddHHmmss");
+ Thread.Sleep(1000);
+ path = $@"C:\ProgettiVisualStudio\OutputXML\d10015_52905_{dateString}_CONT.xml";
+ path = $@"{pathDestinazione}\d10015_52905_{dateString}_CONT.xml";
+
+ File.WriteAllText(path, stringCONT.ToString());
+
+ //controllo se il file è stato creato.
+ if (File.Exists(path))
+ {
+ txtArea.Text += Environment.NewLine
+ + $"File d10015_52905_{dateString}_CONT.xml creato correttamente" +
+ Environment.NewLine;
+
+ txtArea.Text += Environment.NewLine
+ + $"Totale dare: {_totDare} - Totale avere: {_totAvere}" +
+ Environment.NewLine;
+
+ txtArea.Text += Environment.NewLine
+ + $"Procedura terminata."
+ + Environment.NewLine;
+ }
+ else
+ {
+ txtArea.Text += Environment.NewLine
+ + $"File d10015_52905_{dateString}_CONT.xml NON creato" +
+ Environment.NewLine;
+ }
+ }
+ }
+
#endregion
#region EVENTI
@@ -200,426 +1001,21 @@ namespace CSVToXML
}
}
- private void btnConverti_Click(object sender, EventArgs e)
+ //MF 06/12/2024 Nuova modifica richiesta dal cliente:
+ /*
+ * Creati bottoni nuovi (2 per azienda) per generare gli XML. Non verrà più inserito il codice azienda dall'utente ma
+ * verrà valorizzato in base al bottone dell'azienda corrispondente. (quindi il controllo sull'inserimento non servirà più
+ */
+
+ #region DEKRA ITALIA
+
+ private void btnDekra_Click(object sender, EventArgs e)
{
try
{
- //controllo che codice azienda sia inserito da input, senò non genero l'xml
- //la data non la controllo perchè se non la modifico prende la data di oggi
- if (txtCodAzi.Text.Length == 4 && !string.IsNullOrEmpty(txtCodAzi.Text))
- {
- txtArea.Clear();
-
- txtArea.Text = $"Premere Genera XML/XML Inv. per iniziare la procedura di conversione."
- + Environment.NewLine;
+ var codAzi = "2200";
- var list = CreaOggettiPerConversioni();
-
- var listaAppoggio = NumeroFileXMLDaProdurre(list);
- var listaXml = new List();
- var numberXml = 1;
- var path = string.Empty;
- var pathCompleto = string.Empty;
- //questo sarà il contenuto del tag xml
- //30/05/2022 pare che tag recordcount debba essere fisso a 1 quindi commento tutto ciò che lo riguarda
- //var recordcount = 0;
- var dateString = string.Empty;
-
- //12/07/2024 - Il cliente ha chiesto un alert che non blocchi la creazione del file XML ma che mostri quali dipendenti
- //non hanno valorizzati i campi "codice dato ripartizione 4" e "codice dato ripartizione 5" dentro il csv.
- var listaNomiAlert = new List();
- var nomeDipNoValore = string.Empty;
-
- //data per gli attributi del tag E1FIKPF per i file DATA
- var dateTimePeaker = dtpAnnoMese;
- var dateBLDAT = dtpAnnoMese.Value.ToString("yyyyMMdd");
- var dateBUDAT = dtpAnnoMese.Value.ToString("yyyyMMdd");
- var dateXBLNRYear = dtpAnnoMese.Value.Year.ToString();
- var dateXBLNRMonth = dtpAnnoMese.Value.Month.ToString();
-
- if (dateXBLNRMonth.Length == 1)
- {
- dateXBLNRMonth = "0" + dateXBLNRMonth;
- }
-
- var dateBKTXTYear = dtpAnnoMese.Value.Year.ToString();
- var dateBKTXTMonth = dtpAnnoMese.Value.Month.ToString();
-
- if (dateBKTXTMonth.Length == 1)
- {
- dateBKTXTMonth = "0" + dateBKTXTMonth;
- }
-
- var erroreTrovato = 0;
- var msgDato = 0;
-
- //Controllo che per ogni codifica della ripartizione 3 ci sia uno e uno solo codice dipendete
- foreach (var item in listaAppoggio)
- {
- //filtro la lista così ad ogni iterata avrò solo le righe della lista con codifica della ripartizione 3 = a quello
- //dell'elemento della listaAppoggio che sto ciclando. coì per ogni "codifica" posso crearmi il suo xml
-
- //28/03/2022 commentato perchè si deve usare codifica della ripartizione 3 come elementi di rottura.
- //var listaFiltrata = list.Where(x => x.CodiceDatoRipartizione4.Equals(app.codice)).ToList();
- var listaFiltrata = list.Where(x => x.CodificaDellaRipartizione3.Equals(item.codice)).ToList();
-
- //controllo che alla stessa codifica della ripartizione 3 non appartengano più codici dipendenti
- var codiceDipendente = listaFiltrata.First().CodiceDipendente;
- var listaNomiErrori = new List();
- var nomeDipendente = string.Empty;
-
- foreach (var elem in listaFiltrata)
- {
- if (elem.CodiceDatoRipartizione4.Equals("\"\"") || elem.CodiceDatoRipartizione5.Equals("\"\""))
- {
- nomeDipNoValore = elem.CodiceDipendente + " - " + elem.Nome + " " + elem.Cognome;
- listaNomiAlert.Add(nomeDipNoValore);
- }
-
- //if (codiceDipendente != elem.CodiceDipendente)
- if (string.IsNullOrEmpty(elem.CodiceDatoRipartizione3/*CodificaDellaRipartizione3*/))
- {
- nomeDipendente = elem.Cognome + " " + elem.Nome;
-
- var trovato = 0;
-
- foreach (var nomeDip in listaNomiErrori)
- {
- var nome1 = nomeDipendente.Replace(" ", "");
- var nome2 = nomeDip.Replace(" ", "");
- if (nome1.Equals(nome2))
- {
- trovato = 1;
- break;
- }
- }
-
- if (trovato != 1)
- {
- listaNomiErrori.Add(nomeDipendente);
- }
-
- erroreTrovato = 1;
- }
- }
-
- if (erroreTrovato == 1)
- {
- if (msgDato == 0)
- {
- //var codifRip3 = elem.CodificaDellaRipartizione3;
- txtArea.Text += Environment.NewLine +
- "GENERAZIONE XML NON AVVENUTA.";
- txtArea.Text += Environment.NewLine
- + Environment.NewLine
- + $"Controllare le codifiche della ripartizione 3 per i seguenti dipendenti:"
- + Environment.NewLine;
-
- var str = MessageBox.Show($"Non ci possono essere dipendenti con CODICE DELLA RIPARTIZIONE 3 vuoto." +
- Environment.NewLine +
- $"Correggere per poter creare l'XML",
- "IL CODICE DELLA RIPARTIZIONE 3 VUOTO.",
- MessageBoxButtons.OK, MessageBoxIcon.Error);
-
- msgDato = 1;
- }
-
- foreach (var nomi in listaNomiErrori)
- {
- txtArea.Text += $"- {nomi}"
- + Environment.NewLine;
- }
- }
- }
-
- //FILE DATA string builder
- StringBuilder stringDATA = new StringBuilder();
- //FILE CONT string builder
- StringBuilder stringCONT = new StringBuilder();
-
- if (listaNomiAlert.Count != 0)
- {
- //mostro a video l'elenco dei dipendenti che hanno l'alert.
- txtArea.Text += Environment.NewLine +
- "I seguenti dipendenti non hanno valorizzati i Codice dato ripartizione 4 o Codice dato ripartizione 5:"
- + Environment.NewLine;
-
- foreach (var nomiDip in listaNomiAlert)
- {
- txtArea.Text += $"- {nomiDip.Replace("\"", "")}"
- + Environment.NewLine;
- }
- }
-
- //list.Where(x => x.CodiceDatoRipartizione4.Contains("1")).ToList();
- if (list != null && list.Any() && erroreTrovato == 0)
- {
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append($"");
-
- stringCONT.Append("");
- stringCONT.Append("");
-
- foreach (var app in listaAppoggio)
- {
- //filtro la lista così ad ogni iterata avrò solo le righe della lista con codice ripartizione uguale a quello
- //dell'elemento della listaAppoggio che sto ciclando. così per ogni "codice" posso crearmi il suo xml
-
- //28/03/2022 commentato perchè si deve usare codifica della ripartizione 3 come elementi di rottura.
- //var listaFiltrata = list.Where(x => x.CodiceDatoRipartizione4.Equals(app.codice)).ToList();
-
- var listaFiltrata = list.Where(x => x.CodificaDellaRipartizione3.Equals(app.codice)).ToList();
-
- if (app.numFileXml != numberXml)
- {
- //txtArea.Text += Environment.NewLine
- //+ $"Finito {numberXml}";
-
- stringDATA.Append("");
- stringDATA.Append("");
-
- Thread.Sleep(1000);
- dateString = DateTime.Now.ToString("yyyyMMddHHmmss");
-
- //Thread.Sleep(1000);
-
- //path = $@"C:\ProgettiVisualStudio\OutputXML\d10015_52905_{dateString}_DATA.xml";
- path = $@"{pathDestinazione}\d10015_52905_{dateString}_DATA.xml";
- //path = $@"C:\Users\miche\Desktop\FileXML\d10015_52905_{dateString}_DATA.xml";
-
- //scrivo file xml
- File.WriteAllText(path, stringDATA.ToString());
-
- //controllo se il file è stato creato.
- if (File.Exists(path))
- {
- txtArea.Text += Environment.NewLine
- + $"File d10015_52905_{dateString}_DATA.xml creato correttamente" +
- Environment.NewLine;
- }
- else
- {
- txtArea.Text += Environment.NewLine
- + $"File d10015_52905_{dateString}_DATA.xml NON creato" +
- Environment.NewLine;
- }
-
- //pulisco stringbuilder
- stringDATA.Clear();
-
- //riapro tag del nuovo file xml DATA
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append($"");
-
- //txtArea.Text += Environment.NewLine
- //+ $"Finito {numberXml}";
- numberXml++;
-
- //FILE CONT
- stringCONT.Append("");
- stringCONT.Append($"{1/*recordcount*/}");
- stringCONT.Append("");
- stringCONT.Append("");
- dateString = DateTime.Now.ToString("yyyyMMddHHmmss");
- path = $@"C:\ProgettiVisualStudio\OutputXML\d10015_52905_{dateString}_CONT.xml";
- path = $@"{pathDestinazione}\d10015_52905_{dateString}_CONT.xml";
- //path = $@"C:\Users\miche\Desktop\FileXML\d10015_52905_{dateString}_CONT.xml";
-
- File.WriteAllText(path, stringCONT.ToString());
-
- //controllo se il file è stato creato.
- if (File.Exists(path))
- {
- txtArea.Text += Environment.NewLine
- + $"File d10015_52905_{dateString}_CONT.xml creato correttamente" +
- Environment.NewLine;
- }
- else
- {
- txtArea.Text += Environment.NewLine
- + $"File d10015_52905_{dateString}_CONT.xml NON creato" +
- Environment.NewLine;
- }
-
- //recordcount = 0;
-
- //pulisco stringbuilder
- stringCONT.Clear();
-
- //riapro i tag del nuovo file xml CONT
- stringCONT.Append("");
- stringCONT.Append("");
- }
-
- //possibile soluzione
- //recordcount += listaFiltrata.Count();
-
- foreach (var item in listaFiltrata)
- {
- //UTILIZZATO SOLO PER VEDERE CHE DATO RIPARTIZIONE FOSSE (NON SERVE)
- //myStringbuilder.Append("");
- //myStringbuilder.Append($"{app.codice}");
- //myStringbuilder.Append("");
-
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("S");
- stringDATA.Append("");
- stringDATA.Append("");
- //prima dell'if sostituisco la , col . per poter castare a decimale la stringa
- if (Convert.ToDecimal(item.ImportoDare.Replace(",", ".")) > 0)
- {
- //13/01/2023 MODIFICATO
- //stringDATA.Append("H");
- stringDATA.Append("S");
- }
- else
- {
- //13/01/2023 MODIFICATO
- //stringDATA.Append("S");
- stringDATA.Append("H");
-
- }
-
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- //var impo = item.ImportoDare.Replace(",", ".");
-
- if (Convert.ToDecimal(item.ImportoDare.Replace(",", ".")) > 0)
- {
- stringDATA.Append($"{item.ImportoDare.Replace(",", ".")}");
- }
- else
- {
- stringDATA.Append($"{item.ImportoAvere.Replace(",", ".")}");
- }
-
- stringDATA.Append("");
- stringDATA.Append("");
-
- if (Convert.ToDecimal(item.ImportoDare.Replace(",", ".")) > 0)
- {
- stringDATA.Append($"{item.ImportoDare.Replace(",", ".")}");
- }
- else
- {
- stringDATA.Append($"{item.ImportoAvere.Replace(",", ".")}");
- }
-
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- //28/03/2022 chiesto di modificare da Gastone con CodificaDellaRipartizione3(col. AJ su Excel) anzichè CodiceDatoRipartizione3 (col. AI su Excel)
- //21/10/2022 chiesto da modificare da Gastone e rimettere CodiceDatoRipartizione3 (col. AI su Excel) anzichè CodificaDellaRipartizione3(col. AJ su Excel)
- stringDATA.Append($"{item./*CodificaDellaRipartizione3*/CodiceDatoRipartizione3.Replace("\"", "")}");
- stringDATA.Append("");
- stringDATA.Append("");
- //MF 03/10/2023 DOPO CALL CON GASTONE DECISO DI RIMETTERE CODICE CONTO E TOGLIERE CODICE CONTROPARTITA PERCHè SENò SPUTTANA S E H PER DARE E AVERE
- //MF 29/07/2024 COMMENTATA PERCHEè USA LA RIGA SOTTO
- //stringDATA.Append($"{item.CodiceConto/*CodiceContropartita*/}");
- //MF 29/07/2024 MESSO REPLACE PERCHè LA STRUTTURA CSV NEL CAMPO CONTO COMPARE COME \"
- stringDATA.Append($"{item.CodiceConto.Replace("\"","")/*CodiceContropartita*/}");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- }
- }
-
- stringDATA.Append("");
- stringDATA.Append("");
- Thread.Sleep(1000);
- dateString = DateTime.Now.ToString("yyyyMMddHHmmss");
- path = $@"C:\ProgettiVisualStudio\OutputXML\d10015_52905_{dateString}_DATA.xml";
- path = $@"{pathDestinazione}\d10015_52905_{dateString}_DATA.xml";
-
- File.WriteAllText(path, stringDATA.ToString());
-
- //controllo se il file è stato creato.
- if (File.Exists(path))
- {
- txtArea.Text += Environment.NewLine
- + $"File d10015_52905_{dateString}_DATA.xml creato correttamente" +
- Environment.NewLine;
- }
- else
- {
- txtArea.Text += Environment.NewLine
- + $"File d10015_52905_{dateString}_DATA.xml NON creato" +
- Environment.NewLine;
- }
-
- stringCONT.Append("");
- //30/05/2022 pare che questo sia un dato fisso a 1
- stringCONT.Append($"{1/*recordcount*/}");
- stringCONT.Append("");
- stringCONT.Append("");
- dateString = DateTime.Now.ToString("yyyyMMddHHmmss");
- //path = $@"C:\ProgettiVisualStudio\OutputXML\filexml_{numberXml}.xml";
- Thread.Sleep(1000);
- path = $@"C:\ProgettiVisualStudio\OutputXML\d10015_52905_{dateString}_CONT.xml";
- path = $@"{pathDestinazione}\d10015_52905_{dateString}_CONT.xml";
- //path = $@"C:\Users\miche\Desktop\FileXML\d10015_52905_{dateString}_CONT.xml";
-
- File.WriteAllText(path, stringCONT.ToString());
-
- //controllo se il file è stato creato.
- if (File.Exists(path))
- {
- txtArea.Text += Environment.NewLine
- + $"File d10015_52905_{dateString}_CONT.xml creato correttamente" +
- Environment.NewLine;
-
- txtArea.Text += Environment.NewLine
- + $"Procedura terminata."
- + Environment.NewLine;
- }
- else
- {
- txtArea.Text += Environment.NewLine
- + $"File d10015_52905_{dateString}_CONT.xml NON creato" +
- Environment.NewLine;
- }
- }
- }
- else if (txtCodAzi.Text.Length != 4 && !string.IsNullOrEmpty(txtCodAzi.Text))
- {
- var str = MessageBox.Show($"Il codice azienda deve essere lungo quattro ",
- "CODICE AZIENDA ERRATO",
- MessageBoxButtons.OK, MessageBoxIcon.Error);
- txtCodAzi.BackColor = Color.FromArgb(255, 102, 102);
- }
- else
- {
- var str = MessageBox.Show($"Inserire il codice azienda prima di poter generare L'XML ",
- "CODICE AZIENDA MANCANTE",
- MessageBoxButtons.OK, MessageBoxIcon.Error);
- txtCodAzi.BackColor = Color.FromArgb(255, 102, 102);
- }
+ ProduciXml(codAzi);
}
catch (Exception ex)
{
@@ -630,403 +1026,13 @@ namespace CSVToXML
}
}
- //20/07/2022 - Aggiunto questo bottone perchè hanno bisogno di creare degli xml che abbiano nel tag i valori S e H
- //invertiti rispetto agli xml che vengono generati con l'altro bottone.
- //la verifica viene fatta in base ai valori del dare/avere.
- private void btnXmlInv_Click(object sender, EventArgs e)
+ private void btnDekraInv_Click(object sender, EventArgs e)
{
try
{
- //controllo che codice azienda sia inserito da input, senò non genero l'xml
- //la data non la controllo perchè se non la modifico prende la data di oggi
- if (txtCodAzi.Text.Length == 4 && !string.IsNullOrEmpty(txtCodAzi.Text))
- {
- txtArea.Clear();
- txtArea.Text = $"Premere Genera XML/XML Inv. per iniziare la procedura di conversione."
- + Environment.NewLine;
+ var codAzi = "2200";
- var list = CreaOggettiPerConversioni();
-
- var listaAppoggio = NumeroFileXMLDaProdurre(list);
- var listaXml = new List();
- var numberXml = 1;
- var path = string.Empty;
- var pathCompleto = string.Empty;
-
- //questo sarà il contenuto del tag xml
- //30/05/2022 pare che tag recordcount debba essere fisso a 1 quindi commento tutto ciò che lo riguarda
- //var recordcount = 0;
- var dateString = string.Empty;
-
- //12/07/2024 - Il cliente ha chiesto un alert che non blocchi la creazione del file XML ma che mostri quali dipendenti
- //non hanno valorizzati i campi "codice dato ripartizione 4" e "codice dato ripartizione 5" dentro il csv.
- var listaNomiAlert = new List();
- var nomeDipNoValore = string.Empty;
-
- //data per gli attributi del tag E1FIKPF per i file DATA
- var dateTimePeaker = dtpAnnoMese;
- var dateBLDAT = dtpAnnoMese.Value.ToString("yyyyMMdd");
- var dateBUDAT = dtpAnnoMese.Value.ToString("yyyyMMdd");
- var dateXBLNRYear = dtpAnnoMese.Value.Year.ToString();
- var dateXBLNRMonth = dtpAnnoMese.Value.Month.ToString();
-
- if (dateXBLNRMonth.Length == 1)
- {
- dateXBLNRMonth = "0" + dateXBLNRMonth;
- }
-
- var dateBKTXTYear = dtpAnnoMese.Value.Year.ToString();
- var dateBKTXTMonth = dtpAnnoMese.Value.Month.ToString();
-
- if (dateBKTXTMonth.Length == 1)
- {
- dateBKTXTMonth = "0" + dateBKTXTMonth;
- }
-
- var erroreTrovato = 0;
- var msgDato = 0;
-
- //Controllo che per ogni codifica della ripartizione 3 ci sia uno e uno solo codice dipendete
- foreach (var item in listaAppoggio)
- {
- //filtro la lista così ad ogni iterata avrò solo le righe della lista con codifica della ripartizione 3 = a quello
- //dell'elemento della listaAppoggio che sto ciclando. coì per ogni "codifica" posso crearmi il suo xml
-
- //28/03/2022 commentato perchè si deve usare codifica della ripartizione 3 come elementi di rottura.
- //var listaFiltrata = list.Where(x => x.CodiceDatoRipartizione4.Equals(app.codice)).ToList();
- var listaFiltrata = list.Where(x => x.CodificaDellaRipartizione3.Equals(item.codice)).ToList();
-
- //controllo che alla stessa codifica della ripartizione 3 non appartengano più codici dipendenti
- var codiceDipendente = listaFiltrata.First().CodiceDipendente;
- var listaNomiErrori = new List();
- var nomeDipendente = string.Empty;
-
- foreach (var elem in listaFiltrata)
- {
- if (elem.CodiceDatoRipartizione4.Equals("\"\"") || elem.CodiceDatoRipartizione5.Equals("\"\""))
- {
- nomeDipNoValore = elem.CodiceDipendente + " - " + elem.Nome + " " + elem.Cognome;
- listaNomiAlert.Add(nomeDipNoValore.Replace(" ", ""));
- }
-
- //if (codiceDipendente != elem.CodiceDipendente)
- if (string.IsNullOrEmpty(elem.CodiceDatoRipartizione3/*CodificaDellaRipartizione3*/))
- {
- nomeDipendente = elem.Cognome + " " + elem.Nome;
-
- var trovato = 0;
-
- foreach (var nomeDip in listaNomiErrori)
- {
- var nome1 = nomeDipendente.Replace(" ", "");
- var nome2 = nomeDip.Replace(" ", "");
- if (nome1.Equals(nome2))
- {
- trovato = 1;
- break;
- }
- }
-
- if (trovato != 1)
- {
- listaNomiErrori.Add(nomeDipendente);
- }
-
- erroreTrovato = 1;
-
- //break;
- }
- }
-
- if (erroreTrovato == 1)
- {
- if (msgDato == 0)
- {
- //var codifRip3 = elem.CodificaDellaRipartizione3;
- txtArea.Text += Environment.NewLine +
- "GENERAZIONE XML NON AVVENUTA.";
- txtArea.Text += Environment.NewLine
- + Environment.NewLine
- + $"Controllare le codifiche della ripartizione 3 per i seguenti dipendenti:"
- + Environment.NewLine;
-
- var str = MessageBox.Show($"Non ci possono essere dipendenti con CODICE DELLA RIPARTIZIONE 3 vuoto." +
- Environment.NewLine +
- $"Correggere per poter creare l'XML",
- "IL CODICE DELLA RIPARTIZIONE 3 VUOTO.",
- MessageBoxButtons.OK, MessageBoxIcon.Error);
-
- msgDato = 1;
- }
-
- foreach (var nomi in listaNomiErrori)
- {
- txtArea.Text += $"- {nomi}"
- + Environment.NewLine;
- }
- }
- }
-
- //FILE DATA string builder
- StringBuilder stringDATA = new StringBuilder();
- //FILE CONT string builder
- StringBuilder stringCONT = new StringBuilder();
-
- if (listaNomiAlert.Count != 0)
- {
- //mostro a video l'elenco dei dipendenti che hanno l'alert.
- txtArea.Text += Environment.NewLine +
- "I seguenti dipendenti non hanno valorizzati i Codice dato ripartizione 4 o Codice dato ripartizione 5:"
- + Environment.NewLine;
-
- foreach (var nomiDip in listaNomiAlert)
- {
- txtArea.Text += $"- {nomiDip.Replace("\"", "")}"
- + Environment.NewLine;
- }
- }
-
- //list.Where(x => x.CodiceDatoRipartizione4.Contains("1")).ToList();
- if (list != null && list.Any() && erroreTrovato == 0)
- {
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append($"");
-
- stringCONT.Append("");
- stringCONT.Append("");
-
- foreach (var app in listaAppoggio)
- {
- //filtro la lista così ad ogni iterata avrò solo le righe della lista con codice ripartizione = a quello
- //dell'elemento della listaAppoggio che sto ciclando. coì per ogni "codice" posso crearmi il suo xml
- //28/03/2022 commentato perchè si deve usare codifica della ripartizione 3 come elementi di rottura.
- //var listaFiltrata = list.Where(x => x.CodiceDatoRipartizione4.Equals(app.codice)).ToList();
- var listaFiltrata = list.Where(x => x.CodificaDellaRipartizione3.Equals(app.codice)).ToList();
-
- if (app.numFileXml != numberXml)
- {
- stringDATA.Append("");
- stringDATA.Append("");
-
- Thread.Sleep(1000);
- dateString = DateTime.Now.ToString("yyyyMMddHHmmss");
-
- path = $@"{pathDestinazione}\d10015_52905_{dateString}_DATA.xml";
-
- //scrivo file xml
- File.WriteAllText(path, stringDATA.ToString());
-
- //controllo se il file è stato creato.
- if (File.Exists(path))
- {
- txtArea.Text += Environment.NewLine
- + $"File d10015_52905_{dateString}_DATA.xml creato correttamente" +
- Environment.NewLine;
- }
- else
- {
- txtArea.Text += Environment.NewLine
- + $"File d10015_52905_{dateString}_DATA.xml NON creato" +
- Environment.NewLine;
- }
-
- //pulisco stringbuilder
- stringDATA.Clear();
-
- //riapro tag del nuovo file xml DATA
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append($"");
-
- numberXml++;
-
- //FILE CONT
- stringCONT.Append("");
- stringCONT.Append($"{1/*recordcount*/}");
- stringCONT.Append("");
- stringCONT.Append("");
- dateString = DateTime.Now.ToString("yyyyMMddHHmmss");
- path = $@"C:\ProgettiVisualStudio\OutputXML\d10015_52905_{dateString}_CONT.xml";
- path = $@"{pathDestinazione}\d10015_52905_{dateString}_CONT.xml";
-
- File.WriteAllText(path, stringCONT.ToString());
-
- //controllo se il file è stato creato.
- if (File.Exists(path))
- {
- txtArea.Text += Environment.NewLine
- + $"File d10015_52905_{dateString}_CONT.xml creato correttamente" +
- Environment.NewLine;
- }
- else
- {
- txtArea.Text += Environment.NewLine
- + $"File d10015_52905_{dateString}_CONT.xml NON creato" +
- Environment.NewLine;
- }
-
- //recordcount = 0;
-
- //pulisco stringbuilder
- stringCONT.Clear();
-
- //riapro i tag del nuovo file xml CONT
- stringCONT.Append("");
- stringCONT.Append("");
- }
-
- //possibile soluzione
- //recordcount += listaFiltrata.Count();
-
- foreach (var item in listaFiltrata)
- {
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("S");
- stringDATA.Append("");
- stringDATA.Append("");
- //IN QUESTO CONTROLLO HO INVERTITO I VALORI DI S E H
- //prima dell'if sostituisco la , col . per poter castare a decimale la stringa
- if (Convert.ToDecimal(item.ImportoDare.Replace(",", ".")) > 0)
- {
- stringDATA.Append("H");
- //stringDATA.Append("S"); //13/01/2023 modificato di nuovo (rimesso com'era prima)
- }
- else
- {
- stringDATA.Append("S");
- //stringDATA.Append("H"); //13/01/2023 modificato di nuovo (rimesso com'era prima)
- }
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- //var impo = item.ImportoDare.Replace(",", ".");
- if (Convert.ToDecimal(item.ImportoDare.Replace(",", ".")) > 0)
- {
- stringDATA.Append($"{item.ImportoDare.Replace(",", ".")}");
- }
- else
- {
- stringDATA.Append($"{item.ImportoAvere.Replace(",", ".")}");
- }
- stringDATA.Append("");
- stringDATA.Append("");
- if (Convert.ToDecimal(item.ImportoDare.Replace(",", ".")) > 0)
- {
- stringDATA.Append($"{item.ImportoDare.Replace(",", ".")}");
- }
- else
- {
- stringDATA.Append($"{item.ImportoAvere.Replace(",", ".")}");
- }
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- //28/03/2022 chiesto di modificare da Gastone con CodificaDellaRipartizione3(col. AJ su Excel) anzichè CodiceDatoRipartizione3 (col. AI su Excel)
- //21/10/2022 chiesto da modificare da Gastone e rimettere CodiceDatoRipartizione3 (col. AI su Excel) anzichè CodificaDellaRipartizione3(col. AJ su Excel)
- stringDATA.Append($"{item./*CodificaDellaRipartizione3*/CodiceDatoRipartizione3.Replace("\"","")}");
- stringDATA.Append("");
- stringDATA.Append("");
- //MF 03/10/2023 DOPO CALL CON GASTONE DECISO DI RIMETTERE CODICE CONTO E TOGLIERE CODICE CONTROPARTITA PERCHè SENò SPUTTANA S E H PER DARE E AVERE
- stringDATA.Append($"{item.CodiceConto.Replace("\"", "")/*CodiceContropartita*/}");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- stringDATA.Append("");
- }
- }
-
- stringDATA.Append("");
- stringDATA.Append("");
- Thread.Sleep(1000);
- dateString = DateTime.Now.ToString("yyyyMMddHHmmss");
- //Thread.Sleep(1000);
- path = $@"C:\ProgettiVisualStudio\OutputXML\d10015_52905_{dateString}_DATA.xml";
- path = $@"{pathDestinazione}\d10015_52905_{dateString}_DATA.xml";
-
- File.WriteAllText(path, stringDATA.ToString());
-
- //controllo se il file è stato creato.
- if (File.Exists(path))
- {
- txtArea.Text += Environment.NewLine
- + $"File d10015_52905_{dateString}_DATA.xml creato correttamente" +
- Environment.NewLine;
- }
- else
- {
- txtArea.Text += Environment.NewLine
- + $"File d10015_52905_{dateString}_DATA.xml NON creato" +
- Environment.NewLine;
- }
-
- stringCONT.Append("");
- //30/05/2022 pare che questo sia un dato fisso a 1
- stringCONT.Append($"{1/*recordcount*/}");
- stringCONT.Append("");
- stringCONT.Append("");
- dateString = DateTime.Now.ToString("yyyyMMddHHmmss");
- Thread.Sleep(1000);
- path = $@"C:\ProgettiVisualStudio\OutputXML\d10015_52905_{dateString}_CONT.xml";
- path = $@"{pathDestinazione}\d10015_52905_{dateString}_CONT.xml";
-
- File.WriteAllText(path, stringCONT.ToString());
-
- //controllo se il file è stato creato.
- if (File.Exists(path))
- {
- txtArea.Text += Environment.NewLine
- + $"File d10015_52905_{dateString}_CONT.xml creato correttamente" +
- Environment.NewLine;
-
- txtArea.Text += Environment.NewLine
- + $"Procedura terminata."
- + Environment.NewLine;
- }
- else
- {
- txtArea.Text += Environment.NewLine
- + $"File d10015_52905_{dateString}_CONT.xml NON creato" +
- Environment.NewLine;
- }
- }
- }
- else if (txtCodAzi.Text.Length != 4 && !string.IsNullOrEmpty(txtCodAzi.Text))
- {
- var str = MessageBox.Show($"Il codice azienda deve essere lungo quattro ",
- "CODICE AZIENDA ERRATO",
- MessageBoxButtons.OK, MessageBoxIcon.Error);
- txtCodAzi.BackColor = Color.FromArgb(255, 102, 102);
- }
- else
- {
- var str = MessageBox.Show($"Inserire il codice azienda prima di poter generare L'XML ",
- "CODICE AZIENDA MANCANTE",
- MessageBoxButtons.OK, MessageBoxIcon.Error);
- txtCodAzi.BackColor = Color.FromArgb(255, 102, 102);
- }
+ ProduciXmlInv(codAzi);
}
catch (Exception ex)
{
@@ -1036,20 +1042,969 @@ namespace CSVToXML
}
}
- private void txtCodAzi_Leave(object sender, EventArgs e)
+ #endregion
+
+ #region DTC
+
+ private void btnDtc_Click(object sender, EventArgs e)
{
- if (txtCodAzi.Text.Length == 4 && !string.IsNullOrEmpty(txtCodAzi.Text))
+ try
{
- txtCodAzi.BackColor = Color.White;
+ var codAzi = "2208";
+
+ ProduciXml(codAzi);
}
- else
+ catch (Exception ex)
{
- txtCodAzi.BackColor = Color.FromArgb(255, 102, 102);
+ var str = MessageBox.Show($"{ex.Message}",
+ "File CSV non specificato",
+ MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+
+ private void btnDtcInv_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ var codAzi = "2208";
+
+ ProduciXmlInv(codAzi);
+ }
+ catch (Exception ex)
+ {
+ var str = MessageBox.Show($"{ex.Message}",
+ "File CSV non specificato",
+ MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
#endregion
-
+
+ #region DAK
+
+ private void btnDak_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ var codAzi = "2209";
+
+ ProduciXml(codAzi);
+ }
+ catch (Exception ex)
+ {
+ var str = MessageBox.Show($"{ex.Message}",
+ "File CSV non specificato",
+ MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+
+ private void btnDakInv_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ var codAzi = "2209";
+
+ ProduciXmlInv(codAzi);
+ }
+ catch (Exception ex)
+ {
+ var str = MessageBox.Show($"{ex.Message}",
+ "File CSV non specificato",
+ MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+
+ #endregion
+
+ #region DINVEST
+
+ private void btnDinvest_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ var codAzi = "2210";
+
+ ProduciXml(codAzi);
+ }
+ catch (Exception ex)
+ {
+ //txtArea.Text = ex.Message;
+ var str = MessageBox.Show($"{ex.Message}",
+ "File CSV non specificato",
+ MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+
+ private void btnDinvestInv_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ var codAzi = "2210";
+
+ ProduciXmlInv(codAzi);
+ }
+ catch (Exception ex)
+ {
+ var str = MessageBox.Show($"{ex.Message}",
+ "File CSV non specificato",
+ MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+
+ #endregion
+
+ //06/12/2024 - COMMENTATI I DUE EVENTI CLICK PERCHE' ORA NON SERVONO PIU' DATO CHE SI UTILIZZANO I NUOVI BOTTONI CREATI PER LE AZIENDE
+
+ //20/07/2022 - Aggiunto questo bottone perchè hanno bisogno di creare degli xml che abbiano nel tag i valori S e H
+ //invertiti rispetto agli xml che vengono generati con l'altro bottone.
+ //la verifica viene fatta in base ai valori del dare/avere.
+
+ //private void btnXmlInv_Click(object sender, EventArgs e)
+ //{
+ // try
+ // {
+ // //controllo che codice azienda sia inserito da input, senò non genero l'xml
+ // //la data non la controllo perchè se non la modifico prende la data di oggi
+ // if (txtCodAzi.Text.Length == 4 && !string.IsNullOrEmpty(txtCodAzi.Text))
+ // {
+ // txtArea.Clear();
+ // txtArea.Text = $"Premere Genera XML/XML Inv. per iniziare la procedura di conversione."
+ // + Environment.NewLine;
+
+ // var list = CreaOggettiPerConversioni();
+
+ // var listaAppoggio = NumeroFileXMLDaProdurre(list);
+ // var listaXml = new List();
+ // var numberXml = 1;
+ // var path = string.Empty;
+ // var pathCompleto = string.Empty;
+
+ // //questo sarà il contenuto del tag xml
+ // //30/05/2022 pare che tag recordcount debba essere fisso a 1 quindi commento tutto ciò che lo riguarda
+ // //var recordcount = 0;
+ // var dateString = string.Empty;
+
+ // //12/07/2024 - Il cliente ha chiesto un alert che non blocchi la creazione del file XML ma che mostri quali dipendenti
+ // //non hanno valorizzati i campi "codice dato ripartizione 4" e "codice dato ripartizione 5" dentro il csv.
+ // var listaNomiAlert = new List();
+ // var nomeDipNoValore = string.Empty;
+
+ // //data per gli attributi del tag E1FIKPF per i file DATA
+ // var dateTimePeaker = dtpAnnoMese;
+ // var dateBLDAT = dtpAnnoMese.Value.ToString("yyyyMMdd");
+ // var dateBUDAT = dtpAnnoMese.Value.ToString("yyyyMMdd");
+ // var dateXBLNRYear = dtpAnnoMese.Value.Year.ToString();
+ // var dateXBLNRMonth = dtpAnnoMese.Value.Month.ToString();
+
+ // if (dateXBLNRMonth.Length == 1)
+ // {
+ // dateXBLNRMonth = "0" + dateXBLNRMonth;
+ // }
+
+ // var dateBKTXTYear = dtpAnnoMese.Value.Year.ToString();
+ // var dateBKTXTMonth = dtpAnnoMese.Value.Month.ToString();
+
+ // if (dateBKTXTMonth.Length == 1)
+ // {
+ // dateBKTXTMonth = "0" + dateBKTXTMonth;
+ // }
+
+ // var erroreTrovato = 0;
+ // var msgDato = 0;
+
+ // //Controllo che per ogni codifica della ripartizione 3 ci sia uno e uno solo codice dipendete
+ // foreach (var item in listaAppoggio)
+ // {
+ // //filtro la lista così ad ogni iterata avrò solo le righe della lista con codifica della ripartizione 3 = a quello
+ // //dell'elemento della listaAppoggio che sto ciclando. coì per ogni "codifica" posso crearmi il suo xml
+
+ // //28/03/2022 commentato perchè si deve usare codifica della ripartizione 3 come elementi di rottura.
+ // //var listaFiltrata = list.Where(x => x.CodiceDatoRipartizione4.Equals(app.codice)).ToList();
+ // var listaFiltrata = list.Where(x => x.CodificaDellaRipartizione3.Equals(item.codice)).ToList();
+
+ // //controllo che alla stessa codifica della ripartizione 3 non appartengano più codici dipendenti
+ // var codiceDipendente = listaFiltrata.First().CodiceDipendente;
+ // var listaNomiErrori = new List();
+ // var nomeDipendente = string.Empty;
+
+ // foreach (var elem in listaFiltrata)
+ // {
+ // if (elem.CodiceDatoRipartizione4.Equals("\"\"") || elem.CodiceDatoRipartizione5.Equals("\"\""))
+ // {
+ // nomeDipNoValore = elem.CodiceDipendente + " - " + elem.Nome + " " + elem.Cognome;
+ // listaNomiAlert.Add(nomeDipNoValore.Replace(" ", ""));
+ // }
+
+ // //if (codiceDipendente != elem.CodiceDipendente)
+ // if (string.IsNullOrEmpty(elem.CodiceDatoRipartizione3/*CodificaDellaRipartizione3*/))
+ // {
+ // nomeDipendente = elem.Cognome + " " + elem.Nome;
+
+ // var trovato = 0;
+
+ // foreach (var nomeDip in listaNomiErrori)
+ // {
+ // var nome1 = nomeDipendente.Replace(" ", "");
+ // var nome2 = nomeDip.Replace(" ", "");
+ // if (nome1.Equals(nome2))
+ // {
+ // trovato = 1;
+ // break;
+ // }
+ // }
+
+ // if (trovato != 1)
+ // {
+ // listaNomiErrori.Add(nomeDipendente);
+ // }
+
+ // erroreTrovato = 1;
+
+ // //break;
+ // }
+ // }
+
+ // if (erroreTrovato == 1)
+ // {
+ // if (msgDato == 0)
+ // {
+ // //var codifRip3 = elem.CodificaDellaRipartizione3;
+ // txtArea.Text += Environment.NewLine +
+ // "GENERAZIONE XML NON AVVENUTA.";
+ // txtArea.Text += Environment.NewLine
+ // + Environment.NewLine
+ // + $"Controllare le codifiche della ripartizione 3 per i seguenti dipendenti:"
+ // + Environment.NewLine;
+
+ // var str = MessageBox.Show($"Non ci possono essere dipendenti con CODICE DELLA RIPARTIZIONE 3 vuoto." +
+ // Environment.NewLine +
+ // $"Correggere per poter creare l'XML",
+ // "IL CODICE DELLA RIPARTIZIONE 3 VUOTO.",
+ // MessageBoxButtons.OK, MessageBoxIcon.Error);
+
+ // msgDato = 1;
+ // }
+
+ // foreach (var nomi in listaNomiErrori)
+ // {
+ // txtArea.Text += $"- {nomi}"
+ // + Environment.NewLine;
+ // }
+ // }
+ // }
+
+ // //FILE DATA string builder
+ // StringBuilder stringDATA = new StringBuilder();
+ // //FILE CONT string builder
+ // StringBuilder stringCONT = new StringBuilder();
+
+ // if (listaNomiAlert.Count != 0)
+ // {
+ // //mostro a video l'elenco dei dipendenti che hanno l'alert.
+ // txtArea.Text += Environment.NewLine +
+ // "I seguenti dipendenti non hanno valorizzati i Codice dato ripartizione 4 o Codice dato ripartizione 5:"
+ // + Environment.NewLine;
+
+ // foreach (var nomiDip in listaNomiAlert)
+ // {
+ // txtArea.Text += $"- {nomiDip.Replace("\"", "")}"
+ // + Environment.NewLine;
+ // }
+ // }
+
+ // //list.Where(x => x.CodiceDatoRipartizione4.Contains("1")).ToList();
+ // if (list != null && list.Any() && erroreTrovato == 0)
+ // {
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append($"");
+
+ // stringCONT.Append("");
+ // stringCONT.Append("");
+
+ // foreach (var app in listaAppoggio)
+ // {
+ // //filtro la lista così ad ogni iterata avrò solo le righe della lista con codice ripartizione = a quello
+ // //dell'elemento della listaAppoggio che sto ciclando. coì per ogni "codice" posso crearmi il suo xml
+ // //28/03/2022 commentato perchè si deve usare codifica della ripartizione 3 come elementi di rottura.
+ // //var listaFiltrata = list.Where(x => x.CodiceDatoRipartizione4.Equals(app.codice)).ToList();
+ // var listaFiltrata = list.Where(x => x.CodificaDellaRipartizione3.Equals(app.codice)).ToList();
+
+ // if (app.numFileXml != numberXml)
+ // {
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+
+ // Thread.Sleep(1000);
+ // dateString = DateTime.Now.ToString("yyyyMMddHHmmss");
+
+ // path = $@"{pathDestinazione}\d10015_52905_{dateString}_DATA.xml";
+
+ // //scrivo file xml
+ // File.WriteAllText(path, stringDATA.ToString());
+
+ // //controllo se il file è stato creato.
+ // if (File.Exists(path))
+ // {
+ // txtArea.Text += Environment.NewLine
+ // + $"File d10015_52905_{dateString}_DATA.xml creato correttamente" +
+ // Environment.NewLine;
+ // }
+ // else
+ // {
+ // txtArea.Text += Environment.NewLine
+ // + $"File d10015_52905_{dateString}_DATA.xml NON creato" +
+ // Environment.NewLine;
+ // }
+
+ // //pulisco stringbuilder
+ // stringDATA.Clear();
+
+ // //riapro tag del nuovo file xml DATA
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append($"");
+
+ // numberXml++;
+
+ // //FILE CONT
+ // stringCONT.Append("");
+ // stringCONT.Append($"{1/*recordcount*/}");
+ // stringCONT.Append("");
+ // stringCONT.Append("");
+ // dateString = DateTime.Now.ToString("yyyyMMddHHmmss");
+ // path = $@"C:\ProgettiVisualStudio\OutputXML\d10015_52905_{dateString}_CONT.xml";
+ // path = $@"{pathDestinazione}\d10015_52905_{dateString}_CONT.xml";
+
+ // File.WriteAllText(path, stringCONT.ToString());
+
+ // //controllo se il file è stato creato.
+ // if (File.Exists(path))
+ // {
+ // txtArea.Text += Environment.NewLine
+ // + $"File d10015_52905_{dateString}_CONT.xml creato correttamente" +
+ // Environment.NewLine;
+ // }
+ // else
+ // {
+ // txtArea.Text += Environment.NewLine
+ // + $"File d10015_52905_{dateString}_CONT.xml NON creato" +
+ // Environment.NewLine;
+ // }
+
+ // //recordcount = 0;
+
+ // //pulisco stringbuilder
+ // stringCONT.Clear();
+
+ // //riapro i tag del nuovo file xml CONT
+ // stringCONT.Append("");
+ // stringCONT.Append("");
+ // }
+
+ // //possibile soluzione
+ // //recordcount += listaFiltrata.Count();
+
+ // foreach (var item in listaFiltrata)
+ // {
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("S");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // //IN QUESTO CONTROLLO HO INVERTITO I VALORI DI S E H
+ // //prima dell'if sostituisco la , col . per poter castare a decimale la stringa
+ // if (Convert.ToDecimal(item.ImportoDare.Replace(",", ".")) > 0)
+ // {
+ // stringDATA.Append("H");
+ // //stringDATA.Append("S"); //13/01/2023 modificato di nuovo (rimesso com'era prima)
+ // }
+ // else
+ // {
+ // stringDATA.Append("S");
+ // //stringDATA.Append("H"); //13/01/2023 modificato di nuovo (rimesso com'era prima)
+ // }
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // //var impo = item.ImportoDare.Replace(",", ".");
+ // if (Convert.ToDecimal(item.ImportoDare.Replace(",", ".")) > 0)
+ // {
+ // stringDATA.Append($"{item.ImportoDare.Replace(",", ".")}");
+ // }
+ // else
+ // {
+ // stringDATA.Append($"{item.ImportoAvere.Replace(",", ".")}");
+ // }
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // if (Convert.ToDecimal(item.ImportoDare.Replace(",", ".")) > 0)
+ // {
+ // stringDATA.Append($"{item.ImportoDare.Replace(",", ".")}");
+ // }
+ // else
+ // {
+ // stringDATA.Append($"{item.ImportoAvere.Replace(",", ".")}");
+ // }
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // //28/03/2022 chiesto di modificare da Gastone con CodificaDellaRipartizione3(col. AJ su Excel) anzichè CodiceDatoRipartizione3 (col. AI su Excel)
+ // //21/10/2022 chiesto da modificare da Gastone e rimettere CodiceDatoRipartizione3 (col. AI su Excel) anzichè CodificaDellaRipartizione3(col. AJ su Excel)
+ // stringDATA.Append($"{item./*CodificaDellaRipartizione3*/CodiceDatoRipartizione3.Replace("\"","")}");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // //MF 03/10/2023 DOPO CALL CON GASTONE DECISO DI RIMETTERE CODICE CONTO E TOGLIERE CODICE CONTROPARTITA PERCHè SENò SPUTTANA S E H PER DARE E AVERE
+ // stringDATA.Append($"{item.CodiceConto.Replace("\"", "")/*CodiceContropartita*/}");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // }
+ // }
+
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // Thread.Sleep(1000);
+ // dateString = DateTime.Now.ToString("yyyyMMddHHmmss");
+ // //Thread.Sleep(1000);
+ // path = $@"C:\ProgettiVisualStudio\OutputXML\d10015_52905_{dateString}_DATA.xml";
+ // path = $@"{pathDestinazione}\d10015_52905_{dateString}_DATA.xml";
+
+ // File.WriteAllText(path, stringDATA.ToString());
+
+ // //controllo se il file è stato creato.
+ // if (File.Exists(path))
+ // {
+ // txtArea.Text += Environment.NewLine
+ // + $"File d10015_52905_{dateString}_DATA.xml creato correttamente" +
+ // Environment.NewLine;
+ // }
+ // else
+ // {
+ // txtArea.Text += Environment.NewLine
+ // + $"File d10015_52905_{dateString}_DATA.xml NON creato" +
+ // Environment.NewLine;
+ // }
+
+ // stringCONT.Append("");
+ // //30/05/2022 pare che questo sia un dato fisso a 1
+ // stringCONT.Append($"{1/*recordcount*/}");
+ // stringCONT.Append("");
+ // stringCONT.Append("");
+ // dateString = DateTime.Now.ToString("yyyyMMddHHmmss");
+ // Thread.Sleep(1000);
+ // path = $@"C:\ProgettiVisualStudio\OutputXML\d10015_52905_{dateString}_CONT.xml";
+ // path = $@"{pathDestinazione}\d10015_52905_{dateString}_CONT.xml";
+
+ // File.WriteAllText(path, stringCONT.ToString());
+
+ // //controllo se il file è stato creato.
+ // if (File.Exists(path))
+ // {
+ // txtArea.Text += Environment.NewLine
+ // + $"File d10015_52905_{dateString}_CONT.xml creato correttamente" +
+ // Environment.NewLine;
+
+ // txtArea.Text += Environment.NewLine
+ // + $"Procedura terminata."
+ // + Environment.NewLine;
+ // }
+ // else
+ // {
+ // txtArea.Text += Environment.NewLine
+ // + $"File d10015_52905_{dateString}_CONT.xml NON creato" +
+ // Environment.NewLine;
+ // }
+ // }
+ // }
+ // else if (txtCodAzi.Text.Length != 4 && !string.IsNullOrEmpty(txtCodAzi.Text))
+ // {
+ // var str = MessageBox.Show($"Il codice azienda deve essere lungo quattro ",
+ // "CODICE AZIENDA ERRATO",
+ // MessageBoxButtons.OK, MessageBoxIcon.Error);
+ // txtCodAzi.BackColor = Color.FromArgb(255, 102, 102);
+ // }
+ // else
+ // {
+ // var str = MessageBox.Show($"Inserire il codice azienda prima di poter generare L'XML ",
+ // "CODICE AZIENDA MANCANTE",
+ // MessageBoxButtons.OK, MessageBoxIcon.Error);
+ // txtCodAzi.BackColor = Color.FromArgb(255, 102, 102);
+ // }
+ // }
+ // catch (Exception ex)
+ // {
+ // var str = MessageBox.Show($"{ex.Message}",
+ // "File CSV non specificato",
+ // MessageBoxButtons.OK, MessageBoxIcon.Error);
+ // }
+ //}
+
+ //private void btnConverti_Click(object sender, EventArgs e)
+ //{
+ // try
+ // {
+ // //controllo che codice azienda sia inserito da input, senò non genero l'xml
+ // //la data non la controllo perchè se non la modifico prende la data di oggi
+ // if (txtCodAzi.Text.Length == 4 && !string.IsNullOrEmpty(txtCodAzi.Text))
+ // {
+ // txtArea.Clear();
+
+ // txtArea.Text = $"Premere Genera XML/XML Inv. per iniziare la procedura di conversione."
+ // + Environment.NewLine;
+
+ // var list = CreaOggettiPerConversioni();
+
+ // var listaAppoggio = NumeroFileXMLDaProdurre(list);
+ // var listaXml = new List();
+ // var numberXml = 1;
+ // var path = string.Empty;
+ // var pathCompleto = string.Empty;
+ // //questo sarà il contenuto del tag xml
+ // //30/05/2022 pare che tag recordcount debba essere fisso a 1 quindi commento tutto ciò che lo riguarda
+ // //var recordcount = 0;
+ // var dateString = string.Empty;
+
+ // //12/07/2024 - Il cliente ha chiesto un alert che non blocchi la creazione del file XML ma che mostri quali dipendenti
+ // //non hanno valorizzati i campi "codice dato ripartizione 4" e "codice dato ripartizione 5" dentro il csv.
+ // var listaNomiAlert = new List();
+ // var nomeDipNoValore = string.Empty;
+
+ // //data per gli attributi del tag E1FIKPF per i file DATA
+ // var dateTimePeaker = dtpAnnoMese;
+ // var dateBLDAT = dtpAnnoMese.Value.ToString("yyyyMMdd");
+ // var dateBUDAT = dtpAnnoMese.Value.ToString("yyyyMMdd");
+ // var dateXBLNRYear = dtpAnnoMese.Value.Year.ToString();
+ // var dateXBLNRMonth = dtpAnnoMese.Value.Month.ToString();
+
+ // if (dateXBLNRMonth.Length == 1)
+ // {
+ // dateXBLNRMonth = "0" + dateXBLNRMonth;
+ // }
+
+ // var dateBKTXTYear = dtpAnnoMese.Value.Year.ToString();
+ // var dateBKTXTMonth = dtpAnnoMese.Value.Month.ToString();
+
+ // if (dateBKTXTMonth.Length == 1)
+ // {
+ // dateBKTXTMonth = "0" + dateBKTXTMonth;
+ // }
+
+ // var erroreTrovato = 0;
+ // var msgDato = 0;
+
+ // //Controllo che per ogni codifica della ripartizione 3 ci sia uno e uno solo codice dipendete
+ // foreach (var item in listaAppoggio)
+ // {
+ // //filtro la lista così ad ogni iterata avrò solo le righe della lista con codifica della ripartizione 3 = a quello
+ // //dell'elemento della listaAppoggio che sto ciclando. coì per ogni "codifica" posso crearmi il suo xml
+
+ // //28/03/2022 commentato perchè si deve usare codifica della ripartizione 3 come elementi di rottura.
+ // //var listaFiltrata = list.Where(x => x.CodiceDatoRipartizione4.Equals(app.codice)).ToList();
+ // var listaFiltrata = list.Where(x => x.CodificaDellaRipartizione3.Equals(item.codice)).ToList();
+
+ // //controllo che alla stessa codifica della ripartizione 3 non appartengano più codici dipendenti
+ // var codiceDipendente = listaFiltrata.First().CodiceDipendente;
+ // var listaNomiErrori = new List();
+ // var nomeDipendente = string.Empty;
+
+ // foreach (var elem in listaFiltrata)
+ // {
+ // if (elem.CodiceDatoRipartizione4.Equals("\"\"") || elem.CodiceDatoRipartizione5.Equals("\"\""))
+ // {
+ // nomeDipNoValore = elem.CodiceDipendente + " - " + elem.Nome + " " + elem.Cognome;
+ // listaNomiAlert.Add(nomeDipNoValore);
+ // }
+
+ // //if (codiceDipendente != elem.CodiceDipendente)
+ // if (string.IsNullOrEmpty(elem.CodiceDatoRipartizione3/*CodificaDellaRipartizione3*/))
+ // {
+ // nomeDipendente = elem.Cognome + " " + elem.Nome;
+
+ // var trovato = 0;
+
+ // foreach (var nomeDip in listaNomiErrori)
+ // {
+ // var nome1 = nomeDipendente.Replace(" ", "");
+ // var nome2 = nomeDip.Replace(" ", "");
+ // if (nome1.Equals(nome2))
+ // {
+ // trovato = 1;
+ // break;
+ // }
+ // }
+
+ // if (trovato != 1)
+ // {
+ // listaNomiErrori.Add(nomeDipendente);
+ // }
+
+ // erroreTrovato = 1;
+ // }
+ // }
+
+ // if (erroreTrovato == 1)
+ // {
+ // if (msgDato == 0)
+ // {
+ // //var codifRip3 = elem.CodificaDellaRipartizione3;
+ // txtArea.Text += Environment.NewLine +
+ // "GENERAZIONE XML NON AVVENUTA.";
+ // txtArea.Text += Environment.NewLine
+ // + Environment.NewLine
+ // + $"Controllare le codifiche della ripartizione 3 per i seguenti dipendenti:"
+ // + Environment.NewLine;
+
+ // var str = MessageBox.Show($"Non ci possono essere dipendenti con CODICE DELLA RIPARTIZIONE 3 vuoto." +
+ // Environment.NewLine +
+ // $"Correggere per poter creare l'XML",
+ // "IL CODICE DELLA RIPARTIZIONE 3 VUOTO.",
+ // MessageBoxButtons.OK, MessageBoxIcon.Error);
+
+ // msgDato = 1;
+ // }
+
+ // foreach (var nomi in listaNomiErrori)
+ // {
+ // txtArea.Text += $"- {nomi}"
+ // + Environment.NewLine;
+ // }
+ // }
+ // }
+
+ // //FILE DATA string builder
+ // StringBuilder stringDATA = new StringBuilder();
+ // //FILE CONT string builder
+ // StringBuilder stringCONT = new StringBuilder();
+
+ // if (listaNomiAlert.Count != 0)
+ // {
+ // //mostro a video l'elenco dei dipendenti che hanno l'alert.
+ // txtArea.Text += Environment.NewLine +
+ // "I seguenti dipendenti non hanno valorizzati i Codice dato ripartizione 4 o Codice dato ripartizione 5:"
+ // + Environment.NewLine;
+
+ // foreach (var nomiDip in listaNomiAlert)
+ // {
+ // txtArea.Text += $"- {nomiDip.Replace("\"", "")}"
+ // + Environment.NewLine;
+ // }
+ // }
+
+ // //list.Where(x => x.CodiceDatoRipartizione4.Contains("1")).ToList();
+ // if (list != null && list.Any() && erroreTrovato == 0)
+ // {
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append($"");
+
+ // stringCONT.Append("");
+ // stringCONT.Append("");
+
+ // foreach (var app in listaAppoggio)
+ // {
+ // //filtro la lista così ad ogni iterata avrò solo le righe della lista con codice ripartizione uguale a quello
+ // //dell'elemento della listaAppoggio che sto ciclando. così per ogni "codice" posso crearmi il suo xml
+
+ // //28/03/2022 commentato perchè si deve usare codifica della ripartizione 3 come elementi di rottura.
+ // //var listaFiltrata = list.Where(x => x.CodiceDatoRipartizione4.Equals(app.codice)).ToList();
+
+ // var listaFiltrata = list.Where(x => x.CodificaDellaRipartizione3.Equals(app.codice)).ToList();
+
+ // if (app.numFileXml != numberXml)
+ // {
+ // //txtArea.Text += Environment.NewLine
+ // //+ $"Finito {numberXml}";
+
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+
+ // Thread.Sleep(1000);
+ // dateString = DateTime.Now.ToString("yyyyMMddHHmmss");
+
+ // //Thread.Sleep(1000);
+
+ // //path = $@"C:\ProgettiVisualStudio\OutputXML\d10015_52905_{dateString}_DATA.xml";
+ // path = $@"{pathDestinazione}\d10015_52905_{dateString}_DATA.xml";
+ // //path = $@"C:\Users\miche\Desktop\FileXML\d10015_52905_{dateString}_DATA.xml";
+
+ // //scrivo file xml
+ // File.WriteAllText(path, stringDATA.ToString());
+
+ // //controllo se il file è stato creato.
+ // if (File.Exists(path))
+ // {
+ // txtArea.Text += Environment.NewLine
+ // + $"File d10015_52905_{dateString}_DATA.xml creato correttamente" +
+ // Environment.NewLine;
+ // }
+ // else
+ // {
+ // txtArea.Text += Environment.NewLine
+ // + $"File d10015_52905_{dateString}_DATA.xml NON creato" +
+ // Environment.NewLine;
+ // }
+
+ // //pulisco stringbuilder
+ // stringDATA.Clear();
+
+ // //riapro tag del nuovo file xml DATA
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append($"");
+
+ // //txtArea.Text += Environment.NewLine
+ // //+ $"Finito {numberXml}";
+ // numberXml++;
+
+ // //FILE CONT
+ // stringCONT.Append("");
+ // stringCONT.Append($"{1/*recordcount*/}");
+ // stringCONT.Append("");
+ // stringCONT.Append("");
+ // dateString = DateTime.Now.ToString("yyyyMMddHHmmss");
+ // path = $@"C:\ProgettiVisualStudio\OutputXML\d10015_52905_{dateString}_CONT.xml";
+ // path = $@"{pathDestinazione}\d10015_52905_{dateString}_CONT.xml";
+ // //path = $@"C:\Users\miche\Desktop\FileXML\d10015_52905_{dateString}_CONT.xml";
+
+ // File.WriteAllText(path, stringCONT.ToString());
+
+ // //controllo se il file è stato creato.
+ // if (File.Exists(path))
+ // {
+ // txtArea.Text += Environment.NewLine
+ // + $"File d10015_52905_{dateString}_CONT.xml creato correttamente" +
+ // Environment.NewLine;
+ // }
+ // else
+ // {
+ // txtArea.Text += Environment.NewLine
+ // + $"File d10015_52905_{dateString}_CONT.xml NON creato" +
+ // Environment.NewLine;
+ // }
+
+ // //recordcount = 0;
+
+ // //pulisco stringbuilder
+ // stringCONT.Clear();
+
+ // //riapro i tag del nuovo file xml CONT
+ // stringCONT.Append("");
+ // stringCONT.Append("");
+ // }
+
+ // //possibile soluzione
+ // //recordcount += listaFiltrata.Count();
+
+ // foreach (var item in listaFiltrata)
+ // {
+ // //UTILIZZATO SOLO PER VEDERE CHE DATO RIPARTIZIONE FOSSE (NON SERVE)
+ // //myStringbuilder.Append("");
+ // //myStringbuilder.Append($"{app.codice}");
+ // //myStringbuilder.Append("");
+
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("S");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // //prima dell'if sostituisco la , col . per poter castare a decimale la stringa
+ // if (Convert.ToDecimal(item.ImportoDare.Replace(",", ".")) > 0)
+ // {
+ // //13/01/2023 MODIFICATO
+ // //stringDATA.Append("H");
+ // stringDATA.Append("S");
+ // }
+ // else
+ // {
+ // //13/01/2023 MODIFICATO
+ // //stringDATA.Append("S");
+ // stringDATA.Append("H");
+
+ // }
+
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // //var impo = item.ImportoDare.Replace(",", ".");
+
+ // if (Convert.ToDecimal(item.ImportoDare.Replace(",", ".")) > 0)
+ // {
+ // stringDATA.Append($"{item.ImportoDare.Replace(",", ".")}");
+ // }
+ // else
+ // {
+ // stringDATA.Append($"{item.ImportoAvere.Replace(",", ".")}");
+ // }
+
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+
+ // if (Convert.ToDecimal(item.ImportoDare.Replace(",", ".")) > 0)
+ // {
+ // stringDATA.Append($"{item.ImportoDare.Replace(",", ".")}");
+ // }
+ // else
+ // {
+ // stringDATA.Append($"{item.ImportoAvere.Replace(",", ".")}");
+ // }
+
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // //28/03/2022 chiesto di modificare da Gastone con CodificaDellaRipartizione3(col. AJ su Excel) anzichè CodiceDatoRipartizione3 (col. AI su Excel)
+ // //21/10/2022 chiesto da modificare da Gastone e rimettere CodiceDatoRipartizione3 (col. AI su Excel) anzichè CodificaDellaRipartizione3(col. AJ su Excel)
+ // stringDATA.Append($"{item./*CodificaDellaRipartizione3*/CodiceDatoRipartizione3.Replace("\"", "")}");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // //MF 03/10/2023 DOPO CALL CON GASTONE DECISO DI RIMETTERE CODICE CONTO E TOGLIERE CODICE CONTROPARTITA PERCHè SENò SPUTTANA S E H PER DARE E AVERE
+ // //MF 29/07/2024 COMMENTATA PERCHEè USA LA RIGA SOTTO
+ // //stringDATA.Append($"{item.CodiceConto/*CodiceContropartita*/}");
+ // //MF 29/07/2024 MESSO REPLACE PERCHè LA STRUTTURA CSV NEL CAMPO CONTO COMPARE COME \"
+ // stringDATA.Append($"{item.CodiceConto.Replace("\"", "")/*CodiceContropartita*/}");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // }
+ // }
+
+ // stringDATA.Append("");
+ // stringDATA.Append("");
+ // Thread.Sleep(1000);
+ // dateString = DateTime.Now.ToString("yyyyMMddHHmmss");
+ // path = $@"C:\ProgettiVisualStudio\OutputXML\d10015_52905_{dateString}_DATA.xml";
+ // path = $@"{pathDestinazione}\d10015_52905_{dateString}_DATA.xml";
+
+ // File.WriteAllText(path, stringDATA.ToString());
+
+ // //controllo se il file è stato creato.
+ // if (File.Exists(path))
+ // {
+ // txtArea.Text += Environment.NewLine
+ // + $"File d10015_52905_{dateString}_DATA.xml creato correttamente" +
+ // Environment.NewLine;
+ // }
+ // else
+ // {
+ // txtArea.Text += Environment.NewLine
+ // + $"File d10015_52905_{dateString}_DATA.xml NON creato" +
+ // Environment.NewLine;
+ // }
+
+ // stringCONT.Append("");
+ // //30/05/2022 pare che questo sia un dato fisso a 1
+ // stringCONT.Append($"{1/*recordcount*/}");
+ // stringCONT.Append("");
+ // stringCONT.Append("");
+ // dateString = DateTime.Now.ToString("yyyyMMddHHmmss");
+ // //path = $@"C:\ProgettiVisualStudio\OutputXML\filexml_{numberXml}.xml";
+ // Thread.Sleep(1000);
+ // path = $@"C:\ProgettiVisualStudio\OutputXML\d10015_52905_{dateString}_CONT.xml";
+ // path = $@"{pathDestinazione}\d10015_52905_{dateString}_CONT.xml";
+ // //path = $@"C:\Users\miche\Desktop\FileXML\d10015_52905_{dateString}_CONT.xml";
+
+ // File.WriteAllText(path, stringCONT.ToString());
+
+ // //controllo se il file è stato creato.
+ // if (File.Exists(path))
+ // {
+ // txtArea.Text += Environment.NewLine
+ // + $"File d10015_52905_{dateString}_CONT.xml creato correttamente" +
+ // Environment.NewLine;
+
+ // txtArea.Text += Environment.NewLine
+ // + $"Procedura terminata."
+ // + Environment.NewLine;
+ // }
+ // else
+ // {
+ // txtArea.Text += Environment.NewLine
+ // + $"File d10015_52905_{dateString}_CONT.xml NON creato" +
+ // Environment.NewLine;
+ // }
+ // }
+ // }
+ // else if (txtCodAzi.Text.Length != 4 && !string.IsNullOrEmpty(txtCodAzi.Text))
+ // {
+ // var str = MessageBox.Show($"Il codice azienda deve essere lungo quattro ",
+ // "CODICE AZIENDA ERRATO",
+ // MessageBoxButtons.OK, MessageBoxIcon.Error);
+ // txtCodAzi.BackColor = Color.FromArgb(255, 102, 102);
+ // }
+ // else
+ // {
+ // var str = MessageBox.Show($"Inserire il codice azienda prima di poter generare L'XML ",
+ // "CODICE AZIENDA MANCANTE",
+ // MessageBoxButtons.OK, MessageBoxIcon.Error);
+ // txtCodAzi.BackColor = Color.FromArgb(255, 102, 102);
+ // }
+ // }
+ // catch (Exception ex)
+ // {
+ // //txtArea.Text = ex.Message;
+ // var str = MessageBox.Show($"{ex.Message}",
+ // "File CSV non specificato",
+ // MessageBoxButtons.OK, MessageBoxIcon.Error);
+ // }
+ //}
+
+ //private void txtCodAzi_Leave(object sender, EventArgs e)
+ //{
+ // if (txtCodAzi.Text.Length == 4 && !string.IsNullOrEmpty(txtCodAzi.Text))
+ // {
+ // txtCodAzi.BackColor = Color.White;
+ // }
+ // else
+ // {
+ // txtCodAzi.BackColor = Color.FromArgb(255, 102, 102);
+ // }
+ //}
+
+ #endregion
}
#region CLASSI