54 lines
1.4 KiB
PowerShell
54 lines
1.4 KiB
PowerShell
|
|
$files = Get-Item C:\Users\ewpmni\Desktop\NonPers\Finance*.xml
|
|
$fileCount = $files.Count
|
|
$fileNum = 0
|
|
|
|
$result = foreach($file in $files) {
|
|
|
|
$fileNum++
|
|
|
|
Write-Progress -Id 1 -Activity "File" -Status "$($file.Name) - Loading XML" -PercentComplete ($fileNum / $fileCount * 100)
|
|
|
|
$xml = [xml](Get-Content $file)
|
|
|
|
Write-Progress -Id 1 -Activity "File" -Status "$($file.Name) - Processing invoices" -PercentComplete ($fileNum / $fileCount * 100)
|
|
|
|
$invoiceCount = $xml.DataExportFile.DataGroup.DataType.Finance.Invoice.Count
|
|
$invoiceNum = 0
|
|
|
|
foreach($invoice in $xml.DataExportFile.DataGroup.DataType.Finance.Invoice) {
|
|
|
|
$invoiceNum++
|
|
|
|
Write-Progress -ParentId 1 -Activity "Invoice" -Status "$invoiceNum / $invoiceCount" -PercentComplete ($invoiceNum / $invoiceCount * 100)
|
|
|
|
[pscustomobject]@{
|
|
ID = $invoice.DocumentUniqueID
|
|
File = $file.Name
|
|
PTO = $invoice.PTORefNumber
|
|
}
|
|
}
|
|
|
|
Write-Progress -ParentId 1 -Activity "Invoice" -Completed
|
|
}
|
|
|
|
|
|
$dup = @{}
|
|
|
|
$dupIds = for($i = 0; $i -lt $result.Count; $i++) {
|
|
$id = "{0}_{1}" -f $result[$i].ID, $result[$i].PTO
|
|
|
|
if(-not $dup.ContainsKey($id)) {
|
|
$dup[$id] = @( $result[$i].File )
|
|
}
|
|
else {
|
|
$dup[$id] += $result[$i].File
|
|
$id
|
|
}
|
|
}
|
|
|
|
|
|
foreach($id in $dupIds) {
|
|
Write-Verbose -Verbose "ID: $id"
|
|
$dup[$id]
|
|
} |