|
@@ -349,33 +349,17 @@ public class Module
|
|
|
|
|
|
if (dlg.ShowDialog() == true)
|
|
|
{
|
|
|
- using var writer = new StreamWriter(dlg.FileName);
|
|
|
- using var csv = new CsvWriter(writer, CultureInfo.InvariantCulture);
|
|
|
- foreach (var po in POs)
|
|
|
+ using (var writer = new StreamWriter(dlg.FileName))
|
|
|
{
|
|
|
- // Write the record.
|
|
|
- csv.WriteRecord(po);
|
|
|
-
|
|
|
- // Current 0-based index that the writer is at.
|
|
|
- int i = csv.Index;
|
|
|
- foreach(var (index, field) in po.AdditionalFields.OrderBy(x => x.Key))
|
|
|
+ using var csv = new CsvWriter(writer, CultureInfo.InvariantCulture);
|
|
|
+ foreach (var header in POs)
|
|
|
{
|
|
|
- while(i < index)
|
|
|
- {
|
|
|
- csv.WriteField("");
|
|
|
- ++i;
|
|
|
- }
|
|
|
- csv.WriteField(field);
|
|
|
- ++i;
|
|
|
- }
|
|
|
- csv.NextRecord();
|
|
|
- foreach (var poi in po.Lines)
|
|
|
- {
|
|
|
- csv.WriteRecord(poi);
|
|
|
+ // Write the record.
|
|
|
+ csv.WriteRecord(header);
|
|
|
|
|
|
// Current 0-based index that the writer is at.
|
|
|
- i = csv.Index;
|
|
|
- foreach (var (index, field) in poi.AdditionalFields.OrderBy(x => x.Key))
|
|
|
+ int i = csv.Index;
|
|
|
+ foreach (var (index, field) in header.AdditionalFields.OrderBy(x => x.Key))
|
|
|
{
|
|
|
while (i < index)
|
|
|
{
|
|
@@ -386,6 +370,57 @@ public class Module
|
|
|
++i;
|
|
|
}
|
|
|
csv.NextRecord();
|
|
|
+ foreach (var poi in header.Lines)
|
|
|
+ {
|
|
|
+ csv.WriteRecord(poi);
|
|
|
+
|
|
|
+ // Current 0-based index that the writer is at.
|
|
|
+ i = csv.Index;
|
|
|
+ foreach (var (index, field) in poi.AdditionalFields.OrderBy(x => x.Key))
|
|
|
+ {
|
|
|
+ while (i < index)
|
|
|
+ {
|
|
|
+ csv.WriteField("");
|
|
|
+ ++i;
|
|
|
+ }
|
|
|
+ csv.WriteField(field);
|
|
|
+ ++i;
|
|
|
+ }
|
|
|
+ csv.NextRecord();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ var logDlg = new OpenFileDialog
|
|
|
+ {
|
|
|
+ InitialDirectory = Path.GetDirectoryName(dlg.FileName),
|
|
|
+ FileName = "JCREJECT.JCC",
|
|
|
+ Filter = "Rejected Item Files (*.jcc) | *.jcc;*.JCC | All Files (*.*) | *.*",
|
|
|
+ Title = "Please select JCREJECT.JCC"
|
|
|
+ };
|
|
|
+ if (logDlg.ShowDialog() == true)
|
|
|
+ {
|
|
|
+ var rejectedHeaders = new List<PurchaseOrderTimberlineHeader?>();
|
|
|
+ var rejectedLines = new List<PurchaseOrderTimberlineLine?>();
|
|
|
+ using (var reader = new StreamReader(logDlg.FileName))
|
|
|
+ {
|
|
|
+ using var csv = new CsvReader(reader, new CsvConfiguration(CultureInfo.InvariantCulture)
|
|
|
+ {
|
|
|
+ HasHeaderRecord = false
|
|
|
+ });
|
|
|
+
|
|
|
+ while (csv.Read())
|
|
|
+ {
|
|
|
+ var id = csv.GetField(0);
|
|
|
+ if(id == "C")
|
|
|
+ {
|
|
|
+ rejectedHeaders.Add(csv.GetRecord<PurchaseOrderTimberlineHeader>());
|
|
|
+ }
|
|
|
+ else if(id == "CI")
|
|
|
+ {
|
|
|
+ rejectedLines.Add(csv.GetRecord<PurchaseOrderTimberlineLine>());
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
return true;
|