|
@@ -412,65 +412,79 @@ public class Module
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- var logDlg = new OpenFileDialog
|
|
|
+ while (true)
|
|
|
{
|
|
|
- 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))
|
|
|
+ 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)
|
|
|
{
|
|
|
- using var csv = new CsvReader(reader, new CsvConfiguration(CultureInfo.InvariantCulture)
|
|
|
+ var rejectedHeaders = new List<PurchaseOrderTimberlineHeader?>();
|
|
|
+ var rejectedLines = new List<PurchaseOrderTimberlineLine?>();
|
|
|
+ using (var reader = new StreamReader(logDlg.FileName))
|
|
|
{
|
|
|
- HasHeaderRecord = false
|
|
|
- });
|
|
|
+ using var csv = new CsvReader(reader, new CsvConfiguration(CultureInfo.InvariantCulture)
|
|
|
+ {
|
|
|
+ HasHeaderRecord = false
|
|
|
+ });
|
|
|
|
|
|
- while (csv.Read())
|
|
|
- {
|
|
|
- var id = csv.GetField(0);
|
|
|
- if(id == "C")
|
|
|
+ while (csv.Read())
|
|
|
{
|
|
|
- var header = csv.GetRecord<PurchaseOrderTimberlineHeader>();
|
|
|
- if(header is not null)
|
|
|
+ var id = csv.GetField(0);
|
|
|
+ if (id == "C")
|
|
|
{
|
|
|
- var entry = POs.Items.FirstOrDefault(x => x.Item2?.CommitmentID.Equals(header.CommitmentID) == true);
|
|
|
- if(entry is not null)
|
|
|
+ var header = csv.GetRecord<PurchaseOrderTimberlineHeader>();
|
|
|
+ if (header is not null)
|
|
|
{
|
|
|
- (entry.Item1 as IPostable).FailPost("");
|
|
|
+ var entry = POs.Items.FirstOrDefault(x => x.Item2?.CommitmentID.Equals(header.CommitmentID) == true);
|
|
|
+ if (entry is not null)
|
|
|
+ {
|
|
|
+ (entry.Item1 as IPostable).FailPost("");
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- Logger.Send(LogType.Error, "", "PO Timberline export: Unable to parse header from CSV line in rejection file.");
|
|
|
- MessageBox.Show("Invalid line in file; skipping.");
|
|
|
- }
|
|
|
- }
|
|
|
- else if(id == "CI")
|
|
|
- {
|
|
|
- var line = csv.GetRecord<PurchaseOrderTimberlineLine>();
|
|
|
- if (line is not null)
|
|
|
- {
|
|
|
- var entry = POs.Items.FirstOrDefault(x => x.Item2?.CommitmentID.Equals(line.CommitmentID) == true);
|
|
|
- if (entry is not null)
|
|
|
+ else
|
|
|
{
|
|
|
- (entry.Item1 as IPostable).FailPost("");
|
|
|
+ Logger.Send(LogType.Error, "", "PO Timberline export: Unable to parse header from CSV line in rejection file.");
|
|
|
+ MessageBox.Show("Invalid line in file; skipping.");
|
|
|
}
|
|
|
}
|
|
|
- else
|
|
|
+ else if (id == "CI")
|
|
|
{
|
|
|
- Logger.Send(LogType.Error, "", "PO Timberline export: Unable to parse line from CSV line in rejection file.");
|
|
|
- MessageBox.Show("Invalid line in file; skipping.");
|
|
|
+ var line = csv.GetRecord<PurchaseOrderTimberlineLine>();
|
|
|
+ if (line is not null)
|
|
|
+ {
|
|
|
+ var entry = POs.Items.FirstOrDefault(x => x.Item2?.CommitmentID.Equals(line.CommitmentID) == true);
|
|
|
+ if (entry is not null)
|
|
|
+ {
|
|
|
+ (entry.Item1 as IPostable).FailPost("");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ Logger.Send(LogType.Error, "", "PO Timberline export: Unable to parse line from CSV line in rejection file.");
|
|
|
+ MessageBox.Show("Invalid line in file; skipping.");
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ return POs;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if (MessageBox.Show("Do you wish to cancel the export?", "Cancel Export?", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
|
|
|
+ {
|
|
|
+ throw new PostCancelledException();
|
|
|
+ }
|
|
|
+ else if (MessageBox.Show("Did everything post successfully?", "Successful?", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
|
|
|
+ {
|
|
|
+ return POs;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- return POs;
|
|
|
}
|
|
|
else
|
|
|
{
|