CSV Prefecture => Envoi incrémentiel

Bonjour,
la préfecture nous demande d’envoyer les résultats par vague de 5 ou 10 bureaux de votes dès que leur saisie est réalisée. Et de ne pas renvoyer les résultats déjà transmis.
Existe-t-il une fonctionnalité pour le faire ?
Merci

Réponse à moi-même si ça peut intéresser d’autres.

On passe par un script power shell qui va faire la comparaison entre les deux derniers fichiers générés.
BIEN FAIRE UN PREMIER EXPORT AVANT LA SAISIE

Nom du fichier d export prefecture

$fichier = « Prefecture export.csv »

Recupération des deux fichiers derniers créés par l export prefecture d OpenResultat

$fichiernew = gci -Attributes !Directory *.csv | Where-Object {$.Name -match ‹ prefecture( ›} | sort LastWriteTime | select -last 2 | select -first 1
$fichierbefore = gci -Attributes !Directory *.csv | Where-Object {$
.Name -match ‹ prefecture( ›} | sort LastWriteTime | select -last 1

Affichage de leur nom

Write-Host $fichierbefore.Name
Write-Host $fichiernew.Name

Generation des entetes de colonne

$delimiter = « ; »
$numberOfColumns = Get-Content $fichiernew.FullName |
ForEach-Object{($_.split($delimiter)).Count} |
Measure-Object -Maximum |
Select-Object -ExpandProperty Maximum

$Header = ‹ N° séquence ›, ‹ Scrutin ›, ‹ Année ›, ‹ Tour ›, ‹ Département ›, ‹ CodeCommune ›, ‹ CodeBureauDeVote ›, ‹ CodeCanton ›, ‹ CodeDeLaCirconscription ›, ‹ Indicatif ›, ‹ Inscrits ›, ‹ Abstentions ›, ‹ Votants ›, ‹ Emargements ›, ‹ Blancs ›, ‹ Nuls ›, ‹ Exprimés ›, ‹ NbCandidats ›

for( $i= 0;$i -lt ($numberOfColumns-18)/2;$i++)
{
$bureau = $i+1
$Header+=« Code Dépot $bureau »
$Header+=« Nb Voix $bureau »
}

Transformation des fichiers en CSV

$fichierbefore = import-csv -path $fichierbefore.FullName -header $Header -delimiter $delimiter
$fichiernew = import-csv -path $fichiernew.FullName -header $Header -delimiter $delimiter

Création du fichier vierge

$MonFichier = New-Item -type file $fichier -Force
$results =@()

Comparaison des fichiers CSV meme numero de bureau nombre d exprimes different

foreach($ligneToto in $fichiernew)
{
foreach($ligneTata in $fichierbefore)
{
if($ligneToto.CodeBureauDeVote -eq $ligneTata.CodeBureauDeVote)
{
if($ligneToto.Exprimés -ne $ligneTata.Exprimés)
{
Write-Host $ligneTata
$results += $ligneTata
}
}
}
}

Generation du fichier

$results | export-csv -Path $fichier -NoTypeInformation -Delimiter « ; »

Post traitement suppression des " inutiles, suppression des entetes de colonne

(Get-Content $fichier -Encoding UTF8) | ForEach-Object {$_ -replace ‹ " ›,’’} | Out-File $fichier -Encoding UTF8
get-content $fichier |
select -Skip 1 |
set-content « $file-temp »
move « $file-temp » $fichier -Force

Si la fonctionnalité existe un jour, nous sommes preneur.