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 1Affichage de leur nom
Write-Host $fichierbefore.Name
Write-Host $fichiernew.NameGeneration 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 $delimiterCré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.