Files
comun/utile/Teste/raport_teste.ps1
Marius Mutu 832fea4913 achizitie import: TVA DVI cu valuta proprie, discount financiar, cote multiple
- TVA-ul de pe DVI poate avea valuta si curs proprii, diferite de ale facturii
  (rand "protejat": rand_dvi/valuta_proprie pe introdc, sparge_tva_protejat).
- Discount financiar pe factura: rand tip_rand='G' (401 = 767), TVA calculat pe
  baza diminuata, marfa si preturile articolelor pe valoarea integrala.
- Factura multi-cota: randurile S, G si T se sparg pe cotele articolelor, cu
  explicatia TVA din familia coloanei si alinierea T -> S.
- Teste noi in utile/Teste/achizitie_import (discount, DVI, cote, e2e).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U9uDgDfUQXbh2Neib36CN8
2026-08-01 09:32:35 +03:00

55 lines
2.2 KiB
PowerShell

# raport_teste.ps1 - sinteza rularilor dintr-un folder de teste: afiseaza DOAR esecurile + un total.
# Regula din COMUN\docs\orchestrare-subagenti.md: orchestratorul nu citeste log-uri brute.
# Tabelul complet (-Tot) se citeste o singura data, la baseline.
#
# powershell -ExecutionPolicy Bypass -File raport_teste.ps1 -Dir <folder> [-Tot] [-Baseline <fisier>]
#
# -Baseline: fisier salvat anterior cu -Tot; iesirea marcheaza NOU fata de baseline
# (adica regresie) vs. esec preexistent.
param(
[string]$Dir = (Join-Path $PSScriptRoot 'achizitie_import'),
[switch]$Tot,
[string]$Baseline
)
$vechi = @{}
if ($Baseline -and (Test-Path $Baseline)) {
foreach ($ln in Get-Content $Baseline) {
if ($ln -match '^\s*(\S+?)\s+PASS=(\d+)\s+FAIL=(\d+)') { $vechi[$Matches[1]] = [int]$Matches[3] }
}
}
$rez = @()
foreach ($lg in (Get-ChildItem $Dir -Filter '*_log.txt' -Recurse -ErrorAction SilentlyContinue | Sort-Object Name)) {
$t = Get-Content $lg.FullName -Encoding Default -ErrorAction SilentlyContinue
if (-not $t) { continue }
$nume = $lg.BaseName -replace '_log$', ''
$pass = @($t | Select-String -Pattern '^\s*PASS').Count
$fail = @($t | Select-String -Pattern '^\s*(FAIL|BUG)\b' | Where-Object { $_.Line -notmatch '^\s*FAIL asteptat' })
$rez += [pscustomobject]@{
Nume = $nume; Pass = $pass; Fail = $fail.Count
Linii = $fail | ForEach-Object { $_.Line.Trim() }
Varsta = [int]((Get-Date) - $lg.LastWriteTime).TotalMinutes
}
}
$ok = @($rez | Where-Object { $_.Fail -eq 0 }).Count
$ko = @($rez | Where-Object { $_.Fail -gt 0 })
if ($Tot) {
foreach ($r in $rez) { "{0,-34} PASS={1,-4} FAIL={2,-3} varsta={3}min" -f $r.Nume, $r.Pass, $r.Fail, $r.Varsta }
''
}
"$ok OK, $($ko.Count) FAIL (din $($rez.Count) rulari)"
foreach ($r in $ko) {
$eticheta = ''
if ($vechi.Count -gt 0) {
if ($vechi.ContainsKey($r.Nume) -and $vechi[$r.Nume] -ge $r.Fail) { $eticheta = ' [preexistent]' }
else { $eticheta = ' [NOU - REGRESIE]' }
}
" {0} ({1} esecuri){2}" -f $r.Nume, $r.Fail, $eticheta
foreach ($x in $r.Linii) { ' ' + $x }
}
if ($ko.Count -eq 0) { ' (nimic de raportat)' }