You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

181 lines
6.0 KiB

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;
namespace Massen_Auftragskontrolle
{
public partial class Eingabe : Form
{
private List<Lieferschein> m_lieferschein = new List<Lieferschein>();
private List<Amix> m_amix = new List<Amix>();
private List<Auftrag> m_auftrag = new List<Auftrag>();
public Eingabe()
{
InitializeComponent();
loadFiles();
}
private void loadFiles()
{
if (File.Exists("amix.csv"))
{
String[] _lines = File.ReadAllLines("amix.csv");
foreach (String _line in _lines)
{
String[] _entrys = _line.Split(';');
if (_entrys.Length >= 2)
{
if (_entrys[0] != "" && _entrys[1] != "")
{
Amix amix = new Amix();
amix.Vertrag = RemoveSpecialCharacters(_entrys[0]).ToUpper();
amix.LogID = RemoveSpecialCharacters(_entrys[1]).ToUpper();
m_amix.Add(amix);
}
}
}
}
else
{
m_eingabe.Text += "amix.csv nicht gefunden!\n";
m_eingabe.ReadOnly = true;
}
if (File.Exists("lieferscheine.csv"))
{
String[] _lines = File.ReadAllLines("lieferscheine.csv");
foreach (String _line in _lines)
{
String[] _entrys = _line.Split(';');
if (_entrys.Length >= 2)
{
if (_entrys[0] != "" && _entrys[1] != "")
{
Lieferschein lieferschein = new Lieferschein();
lieferschein.Vorgang = RemoveSpecialCharacters(_entrys[0]).ToUpper();
lieferschein.Referenz = RemoveSpecialCharacters(_entrys[1]).ToUpper();
m_lieferschein.Add(lieferschein);
}
}
}
}
else
{
m_eingabe.Text += "lieferscheine.csv nicht gefunden!\n";
m_eingabe.ReadOnly = true;
}
}
public static string RemoveSpecialCharacters(string str)
{
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.Length; i++)
{
if ((str[i] >= '0' && str[i] <= '9')
|| (str[i] >= 'A' && str[i] <= 'z'
|| str[i] == '-'))
{
sb.Append(str[i]);
}
}
return sb.ToString();
}
private void Eingabe_Load(object sender, EventArgs e)
{
}
private void m_eingabe_TextChanged(object sender, EventArgs e)
{
m_auftrag.Clear();
m_ausgabe.Clear();
m_ausgabe.Text = "LogID\tVorgang\tVertrag\n";
if (m_eingabe.Text.Trim().Length == 0)
{
m_ausgabe.Text = "Bitte links die Liste mit LogIDs einfügen.";
}
else
{
String[] _lines = m_eingabe.Text.Trim().Split(new[] { '\r', '\n' });
foreach (String _line in _lines)
{
String _entry = RemoveSpecialCharacters(_line.Trim().ToUpper());
if (_entry != "")
{
Amix _amixEntry = m_amix.Find(x => x.LogID.Equals(_entry));
if (_amixEntry != null)
{
Lieferschein _lieferscheinEntry = m_lieferschein.Find(x => x.Referenz.Equals(_amixEntry.Vertrag));
if (_lieferscheinEntry != null)
{
m_ausgabe.Text = m_ausgabe.Text + _amixEntry.LogID + "\t" + _lieferscheinEntry.Vorgang + "\t" + _amixEntry.Vertrag + "\n";
Auftrag auftrag = m_auftrag.Find(x => x.Vertrag == _amixEntry.Vertrag);
if (auftrag != null)
if (!auftrag.LogIDs.Contains(_amixEntry.LogID))
auftrag.LogIDs.Add(_amixEntry.LogID);
if (auftrag == null)
{
auftrag = new Auftrag();
auftrag.Vertrag = _amixEntry.Vertrag;
auftrag.Vorgang = _lieferscheinEntry.Vorgang;
auftrag.LogIDs.Add(_amixEntry.LogID);
m_auftrag.Add(auftrag);
}
}
else
{
m_ausgabe.Text = m_ausgabe.Text + _amixEntry.LogID + "\t" + "?"+ "\t" + "?\n";
}
}
else
{
m_ausgabe.Text = m_ausgabe.Text + _entry + "\t" + "?" + "\t" + "?\n";
}
}
}
}
genZusammenfassung();
}
private void genZusammenfassung()
{
m_zusammenfassung.Clear();
foreach (Auftrag auftrag in m_auftrag)
{
foreach (String logid in auftrag.LogIDs)
{
m_zusammenfassung.Text += logid + "\n";
}
m_zusammenfassung.Text += auftrag.Vorgang + "\n";
}
}
}
}