Explorar o código

Reading JCC Reject file

Kenric Nugteren hai 1 ano
pai
achega
eb57aa6968
Modificáronse 1 ficheiros con 58 adicións e 23 borrados
  1. 58 23
      prs.shared/Posters/Timberline/PurchaseOrderTimberlinePoster.cs

+ 58 - 23
prs.shared/Posters/Timberline/PurchaseOrderTimberlinePoster.cs

@@ -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;