1240 lines
47 KiB
C#
1240 lines
47 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
using System.Xml.Linq;
|
|
|
|
namespace CSVToTXT
|
|
{
|
|
public partial class frmCSVToTXT : Form
|
|
{
|
|
|
|
//valori costanti dell'xml
|
|
//path destinazione è il perscorso dove verranno salvati i file xml generati.
|
|
//viene letto nel file XmlConfigFile.xml dentro alla cartella bin del progetto
|
|
public static string pathDestinazione = string.Empty;
|
|
|
|
public frmCSVToTXT()
|
|
{
|
|
InitializeComponent();
|
|
ReadXML();
|
|
}
|
|
|
|
#region METODI
|
|
|
|
public void ReadXML()
|
|
{
|
|
try
|
|
{
|
|
//cicla gli elementi del file .xml passato al Load, guardando i nodi (Items) e relativi sottnodi del nodo padre (item)
|
|
//foreach (var item in XElement.Load(@"XMLFile1.xml").Descendants("Items").Elements("Item"))
|
|
foreach (var item in XElement.Load(@"XmlConfigFile.xml").Descendants("Items").Elements("Item"))
|
|
{
|
|
//se l'elemento non ha attributi
|
|
if (!item.Attributes().Any())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var nome = item.Attribute("name").Value;
|
|
var valore = item.Attribute("value").Value;
|
|
|
|
switch (nome)
|
|
{
|
|
case "diOutput":
|
|
pathDestinazione = valore;
|
|
//txtArea.Text = $"{pathDestinazione}";
|
|
break;
|
|
default:
|
|
txtArea.Text = $"nome: {nome} valore: {valore}";
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
txtArea.Text = ex.Message;
|
|
}
|
|
}
|
|
|
|
private void CercaNeiFile()
|
|
{
|
|
//creo oggetto openFileDialog1
|
|
OpenFileDialog openFileDialog1 = new OpenFileDialog();
|
|
|
|
//apro finestra per selezionare il file
|
|
DialogResult res = openFileDialog1.ShowDialog();
|
|
|
|
if (res == DialogResult.OK)
|
|
{
|
|
string nomeFileTrovato = openFileDialog1.FileName;
|
|
|
|
txtFile.Text = nomeFileTrovato;
|
|
|
|
txtArea.Text = $"Premere Genera TXT per iniziare la procedura di conversione."
|
|
+ Environment.NewLine;
|
|
}
|
|
}
|
|
|
|
private void ControllaDareAvere(List<CSVFileObject> list)
|
|
{
|
|
decimal TotDare = 0;
|
|
decimal TotAvere = 0;
|
|
|
|
foreach (var item in list)
|
|
{
|
|
TotDare += item.DoubleImportoDare;
|
|
TotAvere += item.DoubleImportoAvere;
|
|
}
|
|
var differenza = TotDare - TotAvere;
|
|
|
|
if (differenza != 0)
|
|
{
|
|
MessageBox.Show($"LA differenza tra gli importi in DARE e gli importi in AVERE deve essere ZERO.",
|
|
"Erore differenza importi dare/avere",
|
|
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
}
|
|
}
|
|
|
|
private List<CSVFileObject> CreaOggettiPerConversioni()
|
|
{
|
|
List<CSVFileObject> listPartenza = new List<CSVFileObject>();
|
|
|
|
List<CSVFileObject> listaOrdinata = new List<CSVFileObject>();
|
|
|
|
//var listaRighe = File.ReadAllLines(txtFile.Text).Where(x => !string.IsNullOrEmpty(x)).Skip(1).ToList();
|
|
|
|
//leggo le righe del file CSV(ReadLines())
|
|
//filtro per le righe che non sono nulle (where).
|
|
//skippo la prima che ha i titoli delle colonne (skip(1)).
|
|
//per ogni riga creo un oggetto
|
|
listPartenza = File.ReadLines(txtFile.Text).Where(x => !string.IsNullOrEmpty(x)).Skip(1).Select(x => CSVFileObject.FromCsvGigante(x)).ToList();
|
|
|
|
ControllaDareAvere(listPartenza);
|
|
|
|
//28/03/2022 commentato perchè si deve usare codifica della ripartizione 3 come elementi di rottura.
|
|
//listaOrdinata = listPartenza.OrderBy(x => x.IntCodiceDatoRipartizione4).ToList();
|
|
listaOrdinata = listPartenza.OrderBy(x => x.intCodificaDellaRipartizione3).ToList();
|
|
|
|
return listaOrdinata;
|
|
}
|
|
|
|
private void CostruisciFileTXT(List<CSVFileObject> list)
|
|
{
|
|
ControllaDareAvere(list);
|
|
|
|
var lastCodice = 99999;
|
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
|
var testataDoc = InsertTestataDocumento();
|
|
|
|
var boolean = 0;
|
|
|
|
var BKTXTCount = 0;
|
|
|
|
sb.Append(testataDoc);
|
|
|
|
if (list != null && list.Any())
|
|
{
|
|
foreach (var item in list)
|
|
{
|
|
//controllo che la lunghezza del codiceConto non sia meno di 9
|
|
if (item.CodiceConto.Length >= 9)
|
|
{
|
|
//quando ci saranno i centri di costo definiti (cioè che saranno tutti valorizzati e diversi da 0 allora il ramo dx dell'AND si potrà togliere)
|
|
if (item.IntCodiceDatoRipartizione4 != lastCodice)
|
|
{
|
|
BKTXTCount++;
|
|
|
|
//assegno a last codice l'elemento di rottura trovato così diventa quello attuale
|
|
lastCodice = item.IntCodiceDatoRipartizione4/*item.CodiceDatoRipartizione4*/;
|
|
|
|
//ho trovato elemento di rottura, quindi devo inserire una nuova testata di riga
|
|
var testataRighe = InsertTestataRiga(item, BKTXTCount);
|
|
sb.Append(testataRighe);
|
|
|
|
//lastCodice = item.IntCodiceDatoRipartizione4/*item.CodiceDatoRipartizione4*/;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var str = MessageBox.Show($"il Codice Conto: {item.CodiceConto} deve essere lungo nove.",
|
|
"Errore Codice Conto",
|
|
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
boolean = 1;
|
|
break;
|
|
}
|
|
|
|
//aggiungo riga con importo quindi richiamo metodo 2
|
|
var righeDoc = InsertRigheDocumento(item);
|
|
sb.Append(righeDoc);
|
|
}
|
|
}
|
|
|
|
if (boolean == 0)
|
|
{
|
|
var nomefile = $@"KSIP001_{txtCodAzi.Text}.txt";
|
|
var path = $@"{pathDestinazione}\{nomefile}";
|
|
|
|
File.WriteAllText(path, sb.ToString());
|
|
|
|
if (File.Exists(path))
|
|
{
|
|
txtArea.Text += Environment.NewLine +
|
|
//"File KSIP001_UMB.txt creato correttamente.";
|
|
$@"File {nomefile} creato correttamente.";
|
|
}
|
|
else
|
|
{
|
|
txtArea.Text += Environment.NewLine +
|
|
//"File KSIP001_UMB.txt non creato.";
|
|
$@"File {nomefile} non creato.";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
txtArea.Text += Environment.NewLine + Environment.NewLine +
|
|
"ERRORE: non è stato possibile creare il file."
|
|
+ Environment.NewLine;
|
|
}
|
|
}
|
|
|
|
private string InsertTestataDocumento()
|
|
{
|
|
StringBuilder sb = new StringBuilder();
|
|
var STYPE = "0";
|
|
sb.Append(STYPE.PadRight(1));
|
|
var GROUP = "CONTAB_HRS_C"; //prenderà un valore
|
|
sb.Append(GROUP.PadRight(12));
|
|
var MANDT = "100"; //prenderà un valore
|
|
sb.Append(MANDT.PadRight(3));
|
|
var USNAM = "."; //prenderà un valore
|
|
sb.Append(USNAM.PadRight(12));
|
|
//var START = DateTime.Now.ToString("ddMMyyyy"); //prenderà un valore
|
|
var START = ""; //prenderà un valore
|
|
sb.Append(START.PadRight(8));
|
|
var XKEEP = ""; //prenderà un valore
|
|
sb.Append(XKEEP.PadRight(1));
|
|
var NODATA = "/"; //prenderà un valore
|
|
sb.Append(NODATA.PadRight(1));
|
|
sb.Append(Environment.NewLine);
|
|
//sb.Append(Environment.NewLine);
|
|
|
|
return sb.ToString();
|
|
}
|
|
|
|
private string InsertTestataRiga(CSVFileObject item, int BKTXTCount)
|
|
{
|
|
StringBuilder sb = new StringBuilder();
|
|
|
|
var STYPE = "1";
|
|
sb.Append(STYPE.PadRight(1));
|
|
var TCODE = "FB01";
|
|
sb.Append(TCODE.PadRight(20));
|
|
var BLDAT = $"27{item.DalMese.Replace("/", "")}"; //prenderà un valore DA CAPIRE QUALE CAMPO è
|
|
//var BLDAT = DateTime.Now.ToString("ddMMyyyy");
|
|
sb.Append(BLDAT.PadRight(8));
|
|
var BLART = "PE"; //prenderà PE o PD - PE -> stipendi PD -> personale pareggio debiti (da capire quali sono gli uni e gli altri)
|
|
sb.Append(BLART.PadRight(2));
|
|
var BUKRS = txtCodAzi.Text;/*GORI*/ /*"UMBR"*///prenderà un valore DA CAPIRE COME VALORIZZARE (PREDE IL CODICE SOCIETA' SAP, DA CAPIRE SE TXTCODAZI VA BENE)
|
|
sb.Append(BUKRS.PadRight(4));
|
|
var BUDAT = $"27{item.AlMese.Replace("/", "")}"; //prenderà un valore DA CAPIRE QUALE CAMPO è
|
|
sb.Append(BUDAT.PadRight(8));
|
|
var MONAT = "/";
|
|
sb.Append(MONAT.PadRight(2));
|
|
var WAERS = "EUR";
|
|
sb.Append(WAERS.PadRight(5));
|
|
var KURSF = "/";
|
|
sb.Append(KURSF.PadRight(10));
|
|
var BELNR = "/";
|
|
sb.Append(BELNR.PadRight(10));
|
|
var WWERT = "/";
|
|
sb.Append(WWERT.PadRight(8));
|
|
var XBLNR = "/";
|
|
sb.Append(XBLNR.PadRight(16));
|
|
var BVORG = "/";
|
|
sb.Append(BVORG.PadRight(16));
|
|
var BKTXT = "HRS_C"
|
|
//+ $"{item.DalMese.Substring(3, 2)}" + $"{item.DalMese.Substring(item.DalMese.Length - 2)}"
|
|
+ $"{item.DalMese.Substring(5, 2) + item.DalMese.Substring(0, 2)}"
|
|
+ $"{BUKRS}"
|
|
+ $"{BKTXTCount}"; //progressivo.
|
|
sb.Append(BKTXT.PadRight(25));
|
|
var PARGB = "/";
|
|
sb.Append(PARGB.PadRight(4));
|
|
var AUGLV = "/";
|
|
sb.Append(AUGLV.PadRight(8));
|
|
var VBUND = "/"; //prenderà un valore
|
|
sb.Append(VBUND.PadRight(6));
|
|
var XMWST = "/";
|
|
sb.Append(XMWST.PadRight(1));
|
|
var DOCID = "/";
|
|
sb.Append(DOCID.PadRight(10));
|
|
var BARCD = "/";
|
|
sb.Append(BARCD.PadRight(40));
|
|
var STODT = "/";
|
|
sb.Append(STODT.PadRight(8));
|
|
var BRNCH = "/";
|
|
sb.Append(BRNCH.PadRight(4));
|
|
var NUMPG = "/";
|
|
sb.Append(NUMPG.PadRight(3));
|
|
var STGRD = "/";
|
|
sb.Append(STGRD.PadRight(2));
|
|
var KURSF_M = "/";
|
|
sb.Append(KURSF_M.PadRight(10));
|
|
var AUGTX = "/";
|
|
sb.Append(AUGTX.PadRight(50));
|
|
var XPRFG = "/";
|
|
sb.Append(XPRFG.PadRight(1));
|
|
var XBWAE = "/";
|
|
sb.Append(XBWAE.PadRight(1));
|
|
var LDGRP = "/";
|
|
sb.Append(LDGRP.PadRight(4));
|
|
var PROPMANO = "/";
|
|
sb.Append(PROPMANO.PadRight(13));
|
|
var VATDATE = "/";
|
|
sb.Append(VATDATE.PadRight(8));
|
|
var SENDE = "/";
|
|
sb.Append(SENDE.PadRight(1));
|
|
sb.Append(Environment.NewLine);
|
|
//sb.Append(Environment.NewLine);
|
|
|
|
return sb.ToString();
|
|
}
|
|
|
|
private string InsertRigheDocumento(CSVFileObject item)
|
|
{
|
|
StringBuilder sb = new StringBuilder();
|
|
var STYPE = "2";
|
|
sb.Append(STYPE.PadRight(1));
|
|
var TBNAM = "BBSEG";
|
|
sb.Append(TBNAM.PadRight(30));
|
|
|
|
if (Convert.ToDecimal(item.ImportoDare.Replace(",", ".")) > 0)
|
|
{
|
|
var NEWBS = "40"; //prenderà importo dare
|
|
sb.Append(NEWBS.PadRight(2));
|
|
}
|
|
else
|
|
{
|
|
var NEWBS = "50"; //prenderà importo avere
|
|
sb.Append(NEWBS.PadRight(2));
|
|
}
|
|
|
|
var DUMMY = "/";
|
|
sb.Append(DUMMY.PadRight(10));
|
|
var NEWUM = "/";
|
|
sb.Append(NEWUM.PadRight(1));
|
|
var NEWBK = "/";
|
|
sb.Append(NEWBK.PadRight(4));
|
|
|
|
if (Convert.ToDecimal(item.ImportoDare.Replace(",", ".")) > 0)
|
|
{
|
|
var WRBTR = $"{string.Format("{0:0.00}", item.DoubleImportoDare)}"; //prenderà un valore
|
|
sb.Append((WRBTR.PadLeft(16)).Replace(" ", "0"));
|
|
}
|
|
else
|
|
{
|
|
var WRBTR = $"{string.Format("{0:0.00}", item.DoubleImportoAvere)}"; //prenderà un valore
|
|
sb.Append((WRBTR.PadLeft(16)).Replace(" ", "0"));
|
|
}
|
|
|
|
var DMBTR = "/";
|
|
sb.Append(DMBTR.PadRight(16));
|
|
var WMWST = "/";
|
|
sb.Append(WMWST.PadRight(16));
|
|
var MWSTS = "/";
|
|
sb.Append(MWSTS.PadRight(16));
|
|
var MWSKZ = "/";
|
|
sb.Append(MWSKZ.PadRight(2));
|
|
var XSKRL = "/";
|
|
sb.Append(XSKRL.PadRight(1));
|
|
var FWZUZ = "/";
|
|
sb.Append(FWZUZ.PadRight(16));
|
|
var HWZUZ = "/";
|
|
sb.Append(HWZUZ.PadRight(16));
|
|
var GSBER = "/";
|
|
sb.Append(GSBER.PadRight(4));
|
|
if (item.CodiceConto.Replace("\"","").StartsWith("C"))// se il conto è di costo allora KOSTL sarà valorizzato con CENTRO DI COSTO
|
|
{
|
|
var KOSTL = item.CodiceDatoRipartizione2.Replace("\"", "");
|
|
sb.Append(KOSTL.PadRight(10));
|
|
}
|
|
else
|
|
{
|
|
var KOSTL = "/";
|
|
sb.Append(KOSTL.PadRight(10));
|
|
}
|
|
//if (Convert.ToDecimal(item.ImportoDare.Replace(",", ".")) > 0)
|
|
//{
|
|
// if (item.CodiceConto.StartsWith("C"))// se il conto è di costo allora KOSTL sarà valorizzato con CENTRO DI COSTO
|
|
// {
|
|
// var KOSTL = item.CodiceDatoRipartizione2;
|
|
// sb.Append(KOSTL.PadRight(10));
|
|
// }
|
|
// else
|
|
// {
|
|
// var KOSTL = "/";
|
|
// sb.Append(KOSTL.PadRight(10));
|
|
// }
|
|
//}
|
|
//else if (Convert.ToDecimal(item.ImportoAvere.Replace(",", ".")) > 0)
|
|
//{
|
|
// if (item.CodiceContropartita.StartsWith("C"))// se il conto è di costo allora KOSTL sarà valorizzato con CENTRO DI COSTO
|
|
// {
|
|
// var KOSTL = item.CodiceDatoRipartizione2;
|
|
// sb.Append(KOSTL.PadRight(10));
|
|
// }
|
|
// else
|
|
// {
|
|
// var KOSTL = "/";
|
|
// sb.Append(KOSTL.PadRight(10));
|
|
// }
|
|
//}
|
|
var DUMMY4 = "/";
|
|
sb.Append(DUMMY4.PadRight(4));
|
|
var AUFNR = "/";
|
|
sb.Append(AUFNR.PadRight(12));
|
|
var EBELN = "/";
|
|
sb.Append(EBELN.PadRight(10));
|
|
var EBELP = "/";
|
|
sb.Append(EBELP.PadRight(5));
|
|
var PROJN = "/";
|
|
sb.Append(PROJN.PadRight(16));
|
|
var MATNR = "/";
|
|
sb.Append(MATNR.PadRight(18));
|
|
var WERKS = "/";
|
|
sb.Append(WERKS.PadRight(4));
|
|
var MENGE = "/";
|
|
sb.Append(MENGE.PadRight(17));
|
|
var MEINS = "/";
|
|
sb.Append(MEINS.PadRight(3));
|
|
var VBEL2 = "/";
|
|
sb.Append(VBEL2.PadRight(10));
|
|
var POSN2 = "/";
|
|
sb.Append(POSN2.PadRight(6));
|
|
var ETEN2 = "/";
|
|
sb.Append(ETEN2.PadRight(4));
|
|
var PERNR = "/";
|
|
sb.Append(PERNR.PadRight(8));
|
|
var BEWAR = "/";
|
|
sb.Append(BEWAR.PadRight(3));
|
|
var VALUT = "/";
|
|
sb.Append(VALUT.PadRight(8));
|
|
var ZFBDT = "/";
|
|
sb.Append(ZFBDT.PadRight(8));
|
|
var ZINKZ = "/";
|
|
sb.Append(ZINKZ.PadRight(2));
|
|
var ZUONR = "/";
|
|
sb.Append(ZUONR.PadRight(18));
|
|
var FKONT = "/";
|
|
sb.Append(FKONT.PadRight(3));
|
|
var XAABG = "/";
|
|
sb.Append(XAABG.PadRight(1));
|
|
var SGTXT = "/";
|
|
sb.Append(SGTXT.PadRight(50));
|
|
var BLNKZ = "/";
|
|
sb.Append(BLNKZ.PadRight(2));
|
|
var BLNBT = "/";
|
|
sb.Append(BLNBT.PadRight(16));
|
|
var BLNPZ = "/";
|
|
sb.Append(BLNPZ.PadRight(8));
|
|
var MABER = "/";
|
|
sb.Append(MABER.PadRight(2));
|
|
var SKFBT = "/";
|
|
sb.Append(SKFBT.PadRight(16));
|
|
var WSKTO = "/";
|
|
sb.Append(WSKTO.PadRight(16));
|
|
var ZTERM = "/";
|
|
sb.Append(ZTERM.PadRight(4));
|
|
var ZBD1T = "/";
|
|
sb.Append(ZBD1T.PadRight(3));
|
|
var ZBD1P = "/";
|
|
sb.Append(ZBD1P.PadRight(6));
|
|
var ZBD2T = "/";
|
|
sb.Append(ZBD2T.PadRight(3));
|
|
var ZBD2P = "/";
|
|
sb.Append(ZBD2P.PadRight(6));
|
|
var ZBD3T = "/";
|
|
sb.Append(ZBD3T.PadRight(3));
|
|
var ZLSPR = "/";
|
|
sb.Append(ZLSPR.PadRight(1));
|
|
var REBZG = "/";
|
|
sb.Append(REBZG.PadRight(10));
|
|
var REBZJ = "/";
|
|
sb.Append(REBZJ.PadRight(4));
|
|
var REBZZ = "/";
|
|
sb.Append(REBZZ.PadRight(3));
|
|
var ZLSCH = "/";
|
|
sb.Append(ZLSCH.PadRight(1));
|
|
var SAMNR = "/";
|
|
sb.Append(SAMNR.PadRight(8));
|
|
var ZBFIX = "/";
|
|
sb.Append(ZBFIX.PadRight(1));
|
|
var QSSKZ = "/";
|
|
sb.Append(QSSKZ.PadRight(2));
|
|
var QSSHB = "/";
|
|
sb.Append(QSSHB.PadRight(16));
|
|
var QSFBT = "/";
|
|
sb.Append(QSFBT.PadRight(16));
|
|
var ESRNR = "/";
|
|
sb.Append(ESRNR.PadRight(11));
|
|
var ESRPZ = "/";
|
|
sb.Append(ESRPZ.PadRight(2));
|
|
var ESRRE = "/";
|
|
sb.Append(ESRRE.PadRight(27));
|
|
var FDTAG = "/";
|
|
sb.Append(FDTAG.PadRight(8));
|
|
var FDLEV = "/";
|
|
sb.Append(FDLEV.PadRight(2));
|
|
var ANLN1 = "/";
|
|
sb.Append(ANLN1.PadRight(12));
|
|
var ANLN2 = "/";
|
|
sb.Append(ANLN2.PadRight(4));
|
|
var BZDAT = "/";
|
|
sb.Append(BZDAT.PadRight(8));
|
|
var ANBWA = "/";
|
|
sb.Append(ANBWA.PadRight(3));
|
|
var ABPER = "/";
|
|
sb.Append(ABPER.PadRight(7));
|
|
//pagina 23
|
|
var GBETR = "/";
|
|
sb.Append(GBETR.PadRight(16));
|
|
var KURSR = "/";
|
|
sb.Append(KURSR.PadRight(10));
|
|
var MANSP = "/";
|
|
sb.Append(MANSP.PadRight(1));
|
|
var MSCHL = "/";
|
|
sb.Append(MSCHL.PadRight(1));
|
|
var HBKID = "/";
|
|
sb.Append(HBKID.PadRight(5));
|
|
var BVTYP = "/";
|
|
sb.Append(BVTYP.PadRight(4));
|
|
var ANFBN = "/";
|
|
sb.Append(ANFBN.PadRight(10));
|
|
var ANFBU = "/";
|
|
sb.Append(ANFBU.PadRight(4));
|
|
var ANFBJ = "/";
|
|
sb.Append(ANFBJ.PadRight(4));
|
|
var LZBKZ = "/";
|
|
sb.Append(LZBKZ.PadRight(3));
|
|
var LANDL = "/";
|
|
sb.Append(LANDL.PadRight(3));
|
|
var DIEKZ = "/";
|
|
sb.Append(DIEKZ.PadRight(1));
|
|
var ZOLLD = "/";
|
|
sb.Append(ZOLLD.PadRight(8));
|
|
var ZOLLT = "/";
|
|
sb.Append(ZOLLT.PadRight(8));
|
|
var VRSDT = "/";
|
|
sb.Append(VRSDT.PadRight(8));
|
|
var VRSKZ = "/";
|
|
sb.Append(VRSKZ.PadRight(1));
|
|
var HZUON = "/";
|
|
sb.Append(HZUON.PadRight(18));
|
|
var REGUL = "/";
|
|
sb.Append(REGUL.PadRight(1));
|
|
var NAME1 = "/";
|
|
sb.Append(NAME1.PadRight(35));
|
|
var NAME2 = "/";
|
|
sb.Append(NAME2.PadRight(35));
|
|
var NAME3 = "/";
|
|
sb.Append(NAME3.PadRight(35));
|
|
var NAME4 = "/";
|
|
sb.Append(NAME4.PadRight(35));
|
|
var STRAS = "/";
|
|
sb.Append(STRAS.PadRight(35));
|
|
var ORT01 = "/";
|
|
sb.Append(ORT01.PadRight(35));
|
|
var PSTLZ = "/";
|
|
sb.Append(PSTLZ.PadRight(10));
|
|
var LAND1 = "/";
|
|
sb.Append(LAND1.PadRight(3));
|
|
var REGIO = "/";
|
|
sb.Append(REGIO.PadRight(3));
|
|
var BANKL = "/";
|
|
sb.Append(BANKL.PadRight(15));
|
|
var BANKS = "/";
|
|
sb.Append(BANKS.PadRight(3));
|
|
var BANKN = "/";
|
|
sb.Append(BANKN.PadRight(18));
|
|
var BKONT = "/";
|
|
sb.Append(BKONT.PadRight(2));
|
|
var STCD1 = "/";
|
|
sb.Append(STCD1.PadRight(16));
|
|
var STCD2 = "/";
|
|
sb.Append(STCD2.PadRight(11));
|
|
var MADAT = "/";
|
|
sb.Append(MADAT.PadRight(8));
|
|
var MANST = "/";
|
|
sb.Append(MANST.PadRight(1));
|
|
var EGMLD = "/";
|
|
sb.Append(EGMLD.PadRight(3));
|
|
var DUMMY2 = "/";
|
|
sb.Append(DUMMY2.PadRight(3));
|
|
var STCEG = "/";
|
|
sb.Append(STCEG.PadRight(20));
|
|
var STKZA = "/";
|
|
sb.Append(STKZA.PadRight(1));
|
|
var STKZU = "/";
|
|
sb.Append(STKZU.PadRight(1));
|
|
var PFACH = "/";
|
|
sb.Append(PFACH.PadRight(10));
|
|
var PSTL2 = "/";
|
|
sb.Append(PSTL2.PadRight(10));
|
|
var SPRAS = "/";
|
|
sb.Append(SPRAS.PadRight(1));
|
|
var XINVE = "/";
|
|
sb.Append(XINVE.PadRight(1));
|
|
//if (Convert.ToDecimal(item.ImportoDare.Replace(",", ".")) > 0)
|
|
//{
|
|
var NEWKO = item.CodiceConto.Replace("\"", ""); //se importo in dare valorizzato
|
|
sb.Append(NEWKO.PadRight(17));
|
|
//}
|
|
//else if (Convert.ToDecimal(item.ImportoAvere.Replace(",", ".")) > 0)
|
|
//{
|
|
// var NEWKO = item.CodiceContropartita.Replace("\"", ""); //se importo in avere valorizzato
|
|
// sb.Append(NEWKO.PadRight(17));
|
|
//}
|
|
var NEWBW = "/";
|
|
sb.Append(NEWBW.PadRight(3));
|
|
var KNRZE = "/";
|
|
sb.Append(KNRZE.PadRight(17));
|
|
var HKONT = "/";
|
|
sb.Append(HKONT.PadRight(10));
|
|
|
|
if (item.CodiceConto.Replace("\"","").StartsWith("C"))
|
|
{
|
|
var PRCTR = item.CodiceDatoRipartizione2.Replace("\"", "");
|
|
sb.Append(PRCTR.PadRight(10));
|
|
}
|
|
else
|
|
{
|
|
var PRCTR = "/";
|
|
sb.Append(PRCTR.PadRight(10));
|
|
}
|
|
|
|
var VERTN = "/";
|
|
sb.Append(VERTN.PadRight(13));
|
|
var VERTT = "/";
|
|
sb.Append(VERTT.PadRight(1));
|
|
var VBEWA = "/";
|
|
sb.Append(VBEWA.PadRight(4));
|
|
var HWBAS = "/";
|
|
sb.Append(HWBAS.PadRight(16));
|
|
var FWBAS = "/";
|
|
sb.Append(FWBAS.PadRight(16));
|
|
var FIPOS = "/";
|
|
sb.Append(FIPOS.PadRight(14));
|
|
var VNAME = "/";
|
|
sb.Append(VNAME.PadRight(6));
|
|
var EGRUP = "/";
|
|
sb.Append(EGRUP.PadRight(3));
|
|
var BTYPE = "/";
|
|
sb.Append(BTYPE.PadRight(2));
|
|
var PAOBJNR = "/";
|
|
sb.Append(PAOBJNR.PadRight(10));
|
|
var KSTRG = "/";
|
|
sb.Append(KSTRG.PadRight(12));
|
|
var IMKEY = "/";
|
|
sb.Append(IMKEY.PadRight(8));
|
|
var DUMMY3 = "/";
|
|
sb.Append(DUMMY3.PadRight(8));
|
|
var VPTNR = "/";
|
|
sb.Append(VPTNR.PadRight(10));
|
|
var NPLNR = "/";
|
|
sb.Append(NPLNR.PadRight(12));
|
|
var VORNR = "/";
|
|
sb.Append(VORNR.PadRight(4));
|
|
var XEGDR = "/";
|
|
sb.Append(XEGDR.PadRight(1));
|
|
var RECID = "/";
|
|
sb.Append(RECID.PadRight(2));
|
|
var PPRCT = "/";
|
|
sb.Append(PPRCT.PadRight(10));
|
|
//if (true)
|
|
//{
|
|
//}
|
|
//else
|
|
//{
|
|
var PROJK = "/";//prenderà un valore
|
|
sb.Append(PROJK.PadRight(24));
|
|
//}
|
|
var UZAWE = "/";
|
|
sb.Append(UZAWE.PadRight(2));
|
|
var TXJCD = "/";
|
|
sb.Append(TXJCD.PadRight(15));
|
|
var FISTL = "/";
|
|
sb.Append(FISTL.PadRight(16));
|
|
var GEBER = "/";
|
|
sb.Append(GEBER.PadRight(10));
|
|
var DMBE2 = "/";
|
|
sb.Append(DMBE2.PadRight(16));
|
|
var DMBE3 = "/";
|
|
sb.Append(DMBE3.PadRight(16));
|
|
var PARGB = "/";
|
|
sb.Append(PARGB.PadRight(4));
|
|
var XREF1 = "/";
|
|
sb.Append(XREF1.PadRight(12));
|
|
var XREF2 = "/";
|
|
sb.Append(XREF2.PadRight(12));
|
|
var KBLNR = "/";
|
|
sb.Append(KBLNR.PadRight(10));
|
|
var KBLPOS = "/";
|
|
sb.Append(KBLPOS.PadRight(3));
|
|
var WDATE = "/";
|
|
sb.Append(WDATE.PadRight(8));
|
|
var WGBKZ = "/";
|
|
sb.Append(WGBKZ.PadRight(1));
|
|
var XAKTZ = "/";
|
|
sb.Append(XAKTZ.PadRight(1));
|
|
var WNAME = "/";
|
|
sb.Append(WNAME.PadRight(30));
|
|
var WORT1 = "/";
|
|
sb.Append(WORT1.PadRight(30));
|
|
var WBZOG = "/";
|
|
sb.Append(WBZOG.PadRight(30));
|
|
var WORT2 = "/";
|
|
sb.Append(WORT2.PadRight(30));
|
|
var WBANK = "/";
|
|
sb.Append(WBANK.PadRight(60));
|
|
var WLZBP = "/";
|
|
sb.Append(WLZBP.PadRight(60));
|
|
var DISKP = "/";
|
|
sb.Append(DISKP.PadRight(8));
|
|
var DISKT = "/";
|
|
sb.Append(DISKT.PadRight(3));
|
|
var WINFW = "/";
|
|
sb.Append(WINFW.PadRight(16));
|
|
var WINHW = "/";
|
|
sb.Append(WINHW.PadRight(16));
|
|
var WEVWV = "/";
|
|
sb.Append(WEVWV.PadRight(1));
|
|
var WSTAT = "/";
|
|
sb.Append(WSTAT.PadRight(1));
|
|
var WMWKZ = "/";
|
|
sb.Append(WMWKZ.PadRight(2));
|
|
var WSTKZ = "/";
|
|
sb.Append(WSTKZ.PadRight(1));
|
|
var RKE_ARTNR = "/";
|
|
sb.Append(RKE_ARTNR.PadRight(18));
|
|
var RKE_BONUS = "/";
|
|
sb.Append(RKE_BONUS.PadRight(2));
|
|
var RKE_BRSCH = "/";
|
|
sb.Append(RKE_BRSCH.PadRight(4));
|
|
var RKE_BUKRS = "/";
|
|
sb.Append(RKE_BUKRS.PadRight(4));
|
|
var RKE_BZIRK = "/";
|
|
sb.Append(RKE_BZIRK.PadRight(6));
|
|
var RKE_EFORM = "/";
|
|
sb.Append(RKE_EFORM.PadRight(5));
|
|
var RKE_FKART = "/";
|
|
sb.Append(RKE_FKART.PadRight(4));
|
|
var RKE_GEBIE = "/";
|
|
sb.Append(RKE_GEBIE.PadRight(4));
|
|
var RKE_GSBER = "/";
|
|
sb.Append(RKE_GSBER.PadRight(4));
|
|
var RKE_KAUFN = "/";
|
|
sb.Append(RKE_KAUFN.PadRight(10));
|
|
var RKE_KDGRP = "/";
|
|
sb.Append(RKE_KDGRP.PadRight(2));
|
|
var RKE_KDPOS = "/";
|
|
sb.Append(RKE_KDPOS.PadRight(6));
|
|
var RKE_KNDNR = "/";
|
|
sb.Append(RKE_KNDNR.PadRight(10));
|
|
var RKE_KOKRS = "/";
|
|
sb.Append(RKE_KOKRS.PadRight(4));
|
|
var RKE_KSTRG = "/";
|
|
sb.Append(RKE_KSTRG.PadRight(12));
|
|
var RKE_LAND1 = "/";
|
|
sb.Append(RKE_LAND1.PadRight(3));
|
|
var RKE_MAABC = "/";
|
|
sb.Append(RKE_MAABC.PadRight(1));
|
|
var RKE_MATKL = "/";
|
|
sb.Append(RKE_MATKL.PadRight(9));
|
|
var RKE_PRCTR = "/";
|
|
sb.Append(RKE_PRCTR.PadRight(10));
|
|
var RKE_PSPNR = "/";
|
|
sb.Append(RKE_PSPNR.PadRight(24));
|
|
var RKE_RKAUFNR = "/";
|
|
sb.Append(RKE_RKAUFNR.PadRight(12));
|
|
var RKE_SPART = "/";
|
|
sb.Append(RKE_SPART.PadRight(2));
|
|
var RKE_VKBUR = "/";
|
|
sb.Append(RKE_VKBUR.PadRight(4));
|
|
var RKE_VKGRP = "/";
|
|
sb.Append(RKE_VKGRP.PadRight(3));
|
|
var RKE_VKORG = "/";
|
|
sb.Append(RKE_VKORG.PadRight(4));
|
|
var RKE_VTWEG = "/";
|
|
sb.Append(RKE_VTWEG.PadRight(2));
|
|
var RKE_WERKS = "/";
|
|
sb.Append(RKE_WERKS.PadRight(4));
|
|
var RKE_KMBRND = "/";
|
|
sb.Append(RKE_KMBRND.PadRight(2));
|
|
var RKE_KMCATG = "/";
|
|
sb.Append(RKE_KMCATG.PadRight(2));
|
|
var RKE_KMHI01 = "/";
|
|
sb.Append(RKE_KMHI01.PadRight(10));
|
|
var RKE_KMHI02 = "/";
|
|
sb.Append(RKE_KMHI02.PadRight(10));
|
|
var RKE_KMHI03 = "/";
|
|
sb.Append(RKE_KMHI03.PadRight(10));
|
|
var RKE_KMKDGR = "/";
|
|
sb.Append(RKE_KMKDGR.PadRight(2));
|
|
var RKE_KMLAND = "/";
|
|
sb.Append(RKE_KMLAND.PadRight(3));
|
|
var RKE_KMMAKL = "/";
|
|
sb.Append(RKE_KMMAKL.PadRight(9));
|
|
var RKE_KMNIEL = "/";
|
|
sb.Append(RKE_KMNIEL.PadRight(2));
|
|
var RKE_KMSTGE = "/";
|
|
sb.Append(RKE_KMSTGE.PadRight(2));
|
|
var RKE_KMVKBU = "/";
|
|
sb.Append(RKE_KMVKBU.PadRight(4));
|
|
var RKE_KMVKGR = "/";
|
|
sb.Append(RKE_KMVKGR.PadRight(3));
|
|
var RKE_KMVTNR = "/";
|
|
sb.Append(RKE_KMVTNR.PadRight(8));
|
|
var RKE_PPRCTR = "/";
|
|
sb.Append(RKE_PPRCTR.PadRight(10));
|
|
var VBUND = "/";
|
|
sb.Append(VBUND.PadRight(6));
|
|
var FKBER = "/";
|
|
sb.Append(FKBER.PadRight(4));
|
|
var DABRZ = "/";
|
|
sb.Append(DABRZ.PadRight(8));
|
|
var XSTBA = "/";
|
|
sb.Append(XSTBA.PadRight(1));
|
|
var RSTGR = "/";
|
|
sb.Append(RSTGR.PadRight(3));
|
|
var FIPEX = "/";
|
|
sb.Append(FIPEX.PadRight(24));
|
|
var XNEGP = "/";
|
|
sb.Append(XNEGP.PadRight(1));
|
|
var GRICD = "/";
|
|
sb.Append(GRICD.PadRight(2));
|
|
var GRIRG = "/";
|
|
sb.Append(GRIRG.PadRight(3));
|
|
var GITYP = "/";
|
|
sb.Append(GITYP.PadRight(2));
|
|
var FITYP = "/";
|
|
sb.Append(FITYP.PadRight(2));
|
|
var STCDT = "/";
|
|
sb.Append(STCDT.PadRight(2));
|
|
var STKZN = "/";
|
|
sb.Append(STKZN.PadRight(1));
|
|
var STCD3 = "/";
|
|
sb.Append(STCD3.PadRight(18));
|
|
var STCD4 = "/";
|
|
sb.Append(STCD4.PadRight(18));
|
|
var XREF3 = "/";
|
|
sb.Append(XREF3.PadRight(20));
|
|
var KIDNO = "/";
|
|
sb.Append(KIDNO.PadRight(30));
|
|
var DTWS1 = "/";
|
|
sb.Append(DTWS1.PadRight(2));
|
|
var DTWS2 = "/";
|
|
sb.Append(DTWS2.PadRight(2));
|
|
var DTWS3 = "/";
|
|
sb.Append(DTWS3.PadRight(2));
|
|
var DTWS4 = "/";
|
|
sb.Append(DTWS4.PadRight(2));
|
|
var DTAWS = "/";
|
|
sb.Append(DTAWS.PadRight(2));
|
|
var PYCUR = "/";
|
|
sb.Append(PYCUR.PadRight(5));
|
|
var PYAMT = "/";
|
|
sb.Append(PYAMT.PadRight(16));
|
|
var BUPLA = "/";
|
|
sb.Append(BUPLA.PadRight(4));
|
|
var SECCO = "/";
|
|
sb.Append(SECCO.PadRight(4));
|
|
var LSTAR = "/";
|
|
sb.Append(LSTAR.PadRight(6));
|
|
var EGDEB = "/";
|
|
sb.Append(EGDEB.PadRight(10));
|
|
var WENR = "/";
|
|
sb.Append(WENR.PadRight(8));
|
|
var GENR = "/";
|
|
sb.Append(GENR.PadRight(8));
|
|
var GRNR = "/";
|
|
sb.Append(GRNR.PadRight(8));
|
|
var MENR = "/";
|
|
sb.Append(MENR.PadRight(8));
|
|
var MIVE = "/";
|
|
sb.Append(MIVE.PadRight(13));
|
|
var NKSL = "/";
|
|
sb.Append(NKSL.PadRight(4));
|
|
var EMPSL = "/";
|
|
sb.Append(EMPSL.PadRight(5));
|
|
var SVWNR = "/";
|
|
sb.Append(SVWNR.PadRight(13));
|
|
var SBERI = "/";
|
|
sb.Append(SBERI.PadRight(10));
|
|
var KKBER = "/";
|
|
sb.Append(KKBER.PadRight(4));
|
|
var EMPFB = "/";
|
|
sb.Append(EMPFB.PadRight(10));
|
|
var KURSR_M = "/";
|
|
sb.Append(KURSR_M.PadRight(10));
|
|
var J_1KFREPRE = "/";
|
|
sb.Append(J_1KFREPRE.PadRight(10));
|
|
var J_1KFTBUS = "/";
|
|
sb.Append(J_1KFTBUS.PadRight(30));
|
|
var J_1KFTIND = "/";
|
|
sb.Append(J_1KFTIND.PadRight(30));
|
|
var IDXSP = "/";
|
|
sb.Append(IDXSP.PadRight(5));
|
|
var ANRED = "/";
|
|
sb.Append(ANRED.PadRight(15));
|
|
var RECNNR = "/";
|
|
sb.Append(RECNNR.PadRight(13));
|
|
var E_MIVE = "/";
|
|
sb.Append(E_MIVE.PadRight(13));
|
|
var BKREF = "/";
|
|
sb.Append(BKREF.PadRight(20));
|
|
var DTAMS = "/";
|
|
sb.Append(DTAMS.PadRight(1));
|
|
var CESSION_KZ = "/";
|
|
sb.Append(CESSION_KZ.PadRight(2));
|
|
var GRANT_NBR = "/";
|
|
sb.Append(GRANT_NBR.PadRight(20));
|
|
var FKBER_LONG = "/";
|
|
sb.Append(FKBER_LONG.PadRight(16));
|
|
var ERLKZ = "/";
|
|
sb.Append(ERLKZ.PadRight(1));
|
|
var IBAN = "/";
|
|
sb.Append(IBAN.PadRight(34));
|
|
var VALID_FROM = "/";
|
|
sb.Append(VALID_FROM.PadRight(8));
|
|
var SEGMENT = "/";
|
|
sb.Append(SEGMENT.PadRight(10));
|
|
var PSEGMENT = "/";
|
|
sb.Append(PSEGMENT.PadRight(10));
|
|
var HKTID = "/";
|
|
sb.Append(HKTID.PadRight(5));
|
|
var XSIWE = "/";
|
|
sb.Append(XSIWE.PadRight(1));
|
|
var TCNO = "/";
|
|
sb.Append(TCNO.PadRight(16));
|
|
var DATEOFSERVICE = "/";
|
|
sb.Append(DATEOFSERVICE.PadRight(8));
|
|
var NOTAXCORR = "/";
|
|
sb.Append(NOTAXCORR.PadRight(1));
|
|
var DIFFOPTRATE = "/";
|
|
sb.Append(DIFFOPTRATE.PadRight(10));
|
|
var HASDIFFOPTRATE = "/";
|
|
sb.Append(HASDIFFOPTRATE.PadRight(1));
|
|
var AVGACT_G = "/";
|
|
sb.Append(AVGACT_G.PadRight(26));
|
|
var AVGACT_L = "/";
|
|
sb.Append(AVGACT_L.PadRight(26));
|
|
var AVGACT_T = "/";
|
|
sb.Append(AVGACT_T.PadRight(26));
|
|
//var stringa = ""; //da ricontrollare
|
|
//sb.Append(AVGACT_T.PadRight(26));
|
|
var AVG_ACT_G_CURR = "/";
|
|
sb.Append(AVG_ACT_G_CURR.PadRight(5));
|
|
var AVG_ACT_L_CURR = "/";
|
|
sb.Append(AVG_ACT_L_CURR.PadRight(5));
|
|
var AVG_ACT_T_CURR = "/";
|
|
sb.Append(AVG_ACT_T_CURR.PadRight(5));
|
|
var BOENO = "/";
|
|
sb.Append(BOENO.PadRight(10));
|
|
var MNDID = "/";
|
|
sb.Append(MNDID.PadRight(35));
|
|
var SENDE = "/";
|
|
sb.Append(SENDE.PadRight(1));
|
|
|
|
sb.Append(Environment.NewLine);
|
|
|
|
return sb.ToString();
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region EVENTI
|
|
|
|
private void btnConvertiTxt_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
if (/*txtCodAzi.Text.Length == 4 &&*/ !string.IsNullOrEmpty(txtCodAzi.Text))
|
|
{
|
|
var list = CreaOggettiPerConversioni();
|
|
|
|
CostruisciFileTXT(list);
|
|
}
|
|
//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 il file TXT ",
|
|
"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 btnCercaFile_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
CercaNeiFile();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
txtArea.Text = ex.Message;
|
|
}
|
|
}
|
|
|
|
private void txtCodAzi_Leave(object sender, EventArgs e)
|
|
{
|
|
if (txtCodAzi.BackColor == Color.FromArgb(255, 102, 102))
|
|
{
|
|
if (!string.IsNullOrEmpty(txtCodAzi.Text))
|
|
{
|
|
txtCodAzi.BackColor = Color.FromArgb(255, 255, 255);
|
|
}
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
|
|
#region CLASSI
|
|
|
|
//classe con i campi del file csv che leggo
|
|
public class CSVFileObject
|
|
{
|
|
public string CodiceAzienda;
|
|
public string Denominazione;
|
|
public string DalMese;
|
|
public string TipoCedolinoDal;
|
|
public string AlMese;
|
|
public string TipoCedolinoAl;
|
|
public string RegimeContabile;
|
|
public string ProgressivoRipartizione;
|
|
public string DescrizioneProgressivoRipartizione;
|
|
public string ContabilitaDestinazione;
|
|
public string DescrizioneContabilitaDestinazione;
|
|
public string CodiceConto;
|
|
public string DescrizioneConto;
|
|
public string CodiceDipendente;
|
|
public string Cognome;
|
|
public string Nome;
|
|
public string NumeroRegistrazione;
|
|
public string TipoCausale;
|
|
public string DescrizioneTipoCausale;
|
|
public string Causale;
|
|
public string DescrizioneCausale;
|
|
public string TipoElemento;
|
|
public string DescrizioneTipoElemento;
|
|
public string CodiceContropartita;
|
|
public string DescrizioneContropartita;
|
|
public string ImportoDare;
|
|
public string ImportoAvere;
|
|
public string CodiceTipoDatoRipartizione1;
|
|
public string CodiceDatoRipartizione1;
|
|
public string CodificaDellaRipartizione1;
|
|
public string CodiceTipoDatoRipartizione2;
|
|
public string CodiceDatoRipartizione2;
|
|
public string CodificaDellaRipartizione2;
|
|
public string CodiceTipoDatoRipartizione3;
|
|
public string CodiceDatoRipartizione3;
|
|
public string CodificaDellaRipartizione3;
|
|
//public int CodificaDellaRipartizione3;
|
|
public string CodiceTipoDatoRipartizione4;
|
|
public string CodiceDatoRipartizione4;
|
|
public string CodificaDellaRipartizione4;
|
|
public string CodiceTipoDatoRipartizione5;
|
|
public string CodiceDatoRipartizione5;
|
|
public string CodificaDellaRipartizione5;
|
|
public string CodiceTipoDatoRipartizione6;
|
|
public string CodiceDatoRipartizione6;
|
|
public string CodificaDellaRipartizione6;
|
|
public string CodiceTipoDatoRipartizione7;
|
|
public string CodiceDatoRipartizione7;
|
|
public string CodificaDellaRipartizione7;
|
|
public string CodiceTipoDatoRipartizione8;
|
|
public string CodiceDatoRipartizione8;
|
|
public string CodificaDellaRipartizione8;
|
|
|
|
//aggiungo una propery per gestire la colonna CodiceDatoRipartizione4 perchè mi serve averla come intero per poter ordinare la lista.
|
|
//nel try - catch che c'è sotto imporrò che se non è valorizzato il campo prenderà 0. questo avverà solo in fase di test perchè il centro di costo
|
|
//nel file di input dovrà esserci sempre. questo perchè senò potrebbe sputtanarsi il calcolo del dare/avere che deve essere 0
|
|
public int IntCodiceDatoRipartizione4;
|
|
public int intCodificaDellaRipartizione3;
|
|
//public decimal IntCodiceDatoRipartizione4;
|
|
//public decimal intCodificaDellaRipartizione3;
|
|
|
|
public decimal DoubleImportoDare;
|
|
public decimal DoubleImportoAvere;
|
|
|
|
public DateTime DateDalMese;
|
|
|
|
public static CSVFileObject FromCsvGigante(string csvLine)
|
|
{
|
|
CSVFileObject valore = new CSVFileObject();
|
|
|
|
string[] val = csvLine.Split(';');
|
|
|
|
valore.CodiceAzienda = Convert.ToString(val[0]);
|
|
valore.Denominazione = Convert.ToString(val[1]);
|
|
valore.DalMese = Convert.ToString(val[2]);
|
|
valore.TipoCedolinoDal = Convert.ToString(val[3]);
|
|
valore.AlMese = Convert.ToString(val[4]);
|
|
valore.TipoCedolinoAl = Convert.ToString(val[5]);
|
|
valore.RegimeContabile = Convert.ToString(val[6]);
|
|
valore.ProgressivoRipartizione = Convert.ToString(val[7]);
|
|
valore.DescrizioneProgressivoRipartizione = Convert.ToString(val[8]);
|
|
valore.ContabilitaDestinazione = Convert.ToString(val[9]);
|
|
valore.DescrizioneContabilitaDestinazione = Convert.ToString(val[10]);
|
|
valore.CodiceConto = Convert.ToString(val[11]);
|
|
valore.DescrizioneConto = Convert.ToString(val[12]);
|
|
valore.CodiceDipendente = Convert.ToString(val[13]);
|
|
valore.Cognome = Convert.ToString(val[14]);
|
|
valore.Nome = Convert.ToString(val[15]);
|
|
valore.NumeroRegistrazione = Convert.ToString(val[16]);
|
|
valore.TipoCausale = Convert.ToString(val[17]);
|
|
valore.DescrizioneTipoCausale = Convert.ToString(val[18]);
|
|
valore.Causale = Convert.ToString(val[19]);
|
|
valore.DescrizioneCausale = Convert.ToString(val[20]);
|
|
valore.TipoElemento = Convert.ToString(val[21]);
|
|
valore.DescrizioneTipoElemento = Convert.ToString(val[22]);
|
|
valore.CodiceContropartita = Convert.ToString(val[23]);
|
|
valore.DescrizioneContropartita = Convert.ToString(val[24]);
|
|
valore.ImportoDare = Convert.ToString(val[25]);
|
|
valore.ImportoAvere = Convert.ToString(val[26]);
|
|
valore.CodiceTipoDatoRipartizione1 = Convert.ToString(val[27]);
|
|
valore.CodiceDatoRipartizione1 = Convert.ToString(val[28]);
|
|
valore.CodificaDellaRipartizione1 = Convert.ToString(val[29]);
|
|
valore.CodiceTipoDatoRipartizione2 = Convert.ToString(val[30]);
|
|
valore.CodiceDatoRipartizione2 = Convert.ToString(val[31]);
|
|
valore.CodificaDellaRipartizione2 = Convert.ToString(val[32]);
|
|
valore.CodiceTipoDatoRipartizione3 = Convert.ToString(val[33]);
|
|
valore.CodiceDatoRipartizione3 = Convert.ToString(val[34]);
|
|
valore.CodificaDellaRipartizione3 = Convert.ToString(val[35]);
|
|
valore.CodiceTipoDatoRipartizione4 = Convert.ToString(val[36]);
|
|
valore.CodiceDatoRipartizione4 = Convert.ToString(val[37]);
|
|
valore.CodificaDellaRipartizione4 = Convert.ToString(val[38]);
|
|
valore.CodiceTipoDatoRipartizione5 = Convert.ToString(val[39]);
|
|
valore.CodiceDatoRipartizione5 = Convert.ToString(val[40]);
|
|
valore.CodificaDellaRipartizione5 = Convert.ToString(val[41]);
|
|
valore.CodiceTipoDatoRipartizione6 = Convert.ToString(val[42]);
|
|
valore.CodiceDatoRipartizione6 = Convert.ToString(val[43]);
|
|
valore.CodificaDellaRipartizione6 = Convert.ToString(val[44]);
|
|
valore.CodiceTipoDatoRipartizione7 = Convert.ToString(val[45]);
|
|
valore.CodiceDatoRipartizione7 = Convert.ToString(val[46]);
|
|
valore.CodificaDellaRipartizione7 = Convert.ToString(val[47]);
|
|
valore.CodiceTipoDatoRipartizione8 = Convert.ToString(val[48]);
|
|
valore.CodiceDatoRipartizione8 = Convert.ToString(val[49]);
|
|
valore.CodificaDellaRipartizione8 = Convert.ToString(val[50]);
|
|
|
|
try
|
|
{
|
|
valore.IntCodiceDatoRipartizione4 = Convert.ToInt32(val[37]);
|
|
valore.intCodificaDellaRipartizione3 = Convert.ToInt32(val[35]);
|
|
}
|
|
catch (Exception)
|
|
{
|
|
valore.IntCodiceDatoRipartizione4 = 0;
|
|
valore.intCodificaDellaRipartizione3 = 0;
|
|
}
|
|
|
|
//convertiti in decimal perchè con il double faceva casino con gli arrotondamenti
|
|
//e non funzionava il controllo della differenza dare/avere
|
|
valore.DoubleImportoDare = Convert.ToDecimal/*ToDouble*/(val[25]);
|
|
valore.DoubleImportoAvere = Convert.ToDecimal/*ToDouble*/(val[26]);
|
|
|
|
//valori.intCodificaDellaRipartizione3 = Convert.ToDecimal(val[35]);
|
|
|
|
valore.DateDalMese = Convert.ToDateTime(val[2]);
|
|
|
|
return valore;
|
|
|
|
}
|
|
}
|
|
|
|
//classe per il file csv bil_sal_dtc_ott21
|
|
public class ValoriCSV
|
|
{
|
|
public string codiceAzienda;
|
|
public string denominazione;
|
|
public string dalMese;
|
|
public string dalTipoCedolino;
|
|
public string alMese;
|
|
public string alTipoCedolino;
|
|
public string regimeContabile;
|
|
public string progressivoRipartizione;
|
|
public string descrizioneProgressivoRipartizione;
|
|
public string contabilitaDiDestinazione;
|
|
public string descrizioneContabilitaDestinazione;
|
|
public string modalitaDiStampa;
|
|
public string codiceConto;
|
|
public string descrizioneConto;
|
|
public string importoDare;
|
|
public string importoAvere;
|
|
public string importoSaldo;
|
|
|
|
public static ValoriCSV FromCsv(string csvLine)
|
|
{
|
|
string[] val = csvLine.Split(';');
|
|
|
|
ValoriCSV valoreCSV = new ValoriCSV();
|
|
|
|
valoreCSV.codiceAzienda = Convert.ToString(val[0]);
|
|
valoreCSV.denominazione = Convert.ToString(val[1]);
|
|
valoreCSV.dalMese = Convert.ToString(val[2]);
|
|
valoreCSV.dalTipoCedolino = Convert.ToString(val[3]);
|
|
valoreCSV.alMese = Convert.ToString(val[4]);
|
|
valoreCSV.alTipoCedolino = Convert.ToString(val[5]);
|
|
valoreCSV.regimeContabile = Convert.ToString(val[6]);
|
|
valoreCSV.progressivoRipartizione = Convert.ToString(val[7]);
|
|
valoreCSV.descrizioneProgressivoRipartizione = Convert.ToString(val[8]);
|
|
valoreCSV.contabilitaDiDestinazione = Convert.ToString(val[9]);
|
|
valoreCSV.descrizioneContabilitaDestinazione = Convert.ToString(val[10]);
|
|
valoreCSV.modalitaDiStampa = Convert.ToString(val[11]);
|
|
valoreCSV.codiceConto = Convert.ToString(val[12]);
|
|
valoreCSV.descrizioneConto = Convert.ToString(val[13]);
|
|
valoreCSV.importoDare = Convert.ToString(val[14]);
|
|
valoreCSV.importoAvere = Convert.ToString(val[15]);
|
|
valoreCSV.importoSaldo = Convert.ToString(val[16]);
|
|
|
|
return valoreCSV;
|
|
}
|
|
}
|
|
|
|
public class Appoggio
|
|
{
|
|
public string codice { get; set; }
|
|
//public int codice { get; set; }
|
|
public int numFileXml { get; set; }
|
|
}
|
|
|
|
#endregion
|
|
}
|