<commit_before><?php

class ExportDRevCSV implements InterfaceDeclarationExportCsv {

    protected $drev = null;
    protected $header = false;

    public static function getHeaderCsv() {

        return "Campagne;CVI Opérateur;Siret Opérateur;Nom Opérateur;Adresse Opérateur;Code postal Opérateur;Commune Opérateur;Email;Type de ligne;Produit;Superficie revendiqué;Volume revendiqué;prelevement à partir du;nombre de lots;Adresse du chai;Code postal du Chai;Commune du Chai;Type de déclaration\n";
    }

    public function __construct($drev, $header = true) {
        $this->drev = $drev;
        $this->header = $header;
    }

    public function getFileName() {

        return $this->drev->_id . '_' . $this->drev->_rev . '.csv';
    }

    public function export() {
        $csv = "";
        if($this->header) {
            $csv .= self::getHeaderCsv();
        }

        $mode = ($this->drev->isPapier()) ? 'PAPIER' : 'TELEDECLARATION';

        if($this->drev->isAutomatique()) {
            $mode = 'AUTOMATIQUE';
        }

        $ligne_base = sprintf("%s;\"%s\";\"%s\";%s;%s;\"%s\";%s;%s", $this->drev->campagne, $this->drev->declarant->cvi, $this->drev->declarant->siret, $this->drev->declarant->raison_sociale, $this->drev->declarant->adresse, $this->drev->declarant->code_postal, $this->drev->declarant->commune, $this->drev->declarant->email);

        foreach($this->drev->declaration->getProduits() as $produit) {
            $libelle_complet = $produit->getLibelleComplet();
            $csv .= sprintf("%s;Revendication;%s;%s;%s;;;;;;%s\n", $ligne_base, trim($libelle_complet), $this->formatFloat($produit->superficie_revendique + $produit->superficie_revendique_vtsgn), $this->formatFloat($produit->volume_revendique + $produit->volume_revendique_vtsgn), $mode);
            foreach($produit->getProduitsCepage() as $detail) {
                $csv .= sprintf("%s;Revendication;%s;%s;%s;;;;;;%s\n", $ligne_base, trim($libelle_complet)." ".trim($detail->getLibelle()), $this->formatFloat($detail->superficie_revendique_total), $this->formatFloat($detail->volume_revendique_total), $mode);
            }
        }

        $csv .= sprintf("%s;Revendication;TOTAL;%s;%s;;;;;;%s\n", $ligne_base, $this->formatFloat($this->drev->declaration->getTotalTotalSuperficie()), $this->formatFloat($this->drev->declaration->getTotalVolumeRevendique()), $mode);

        foreach($this->drev->getPrelevementsOrdered(null, true) as $prelevementsOrdered) {
            foreach ($prelevementsOrdered->prelevements as $prelevement) {
                $chai = $prelevement->getChai();<commit_msg>Coquille précédent commit<commit_after><?php

class ExportDRevCSV implements InterfaceDeclarationExportCsv {

    protected $drev = null;
    protected $header = false;

    public static function getHeaderCsv() {

        return "Campagne;CVI Opérateur;Siret Opérateur;Nom Opérateur;Adresse Opérateur;Code postal Opérateur;Commune Opérateur;Email;Type de ligne;Produit;Superficie revendiqué;Volume revendiqué;prelevement à partir du;nombre de lots;Adresse du chai;Code postal du Chai;Commune du Chai;Type de déclaration\n";
    }

    public function __construct($drev, $header = true) {
        $this->drev = $drev;
        $this->header = $header;
    }

    public function getFileName() {

        return $this->drev->_id . '_' . $this->drev->_rev . '.csv';
    }

    public function export() {
        $csv = "";
        if($this->header) {
            $csv .= self::getHeaderCsv();
        }

        $mode = ($this->drev->isPapier()) ? 'PAPIER' : 'TELEDECLARATION';

        if($this->drev->isAutomatique()) {
            $mode = 'AUTOMATIQUE';
        }

        $ligne_base = sprintf("%s;\"%s\";\"%s\";%s;%s;\"%s\";%s;%s", $this->drev->campagne, $this->drev->declarant->cvi, $this->drev->declarant->siret, $this->drev->declarant->raison_sociale, $this->drev->declarant->adresse, $this->drev->declarant->code_postal, $this->drev->declarant->commune, $this->drev->declarant->email);

        foreach($this->drev->declaration->getProduits() as $produit) {
            $libelle_complet = $produit->getLibelleComplet();
            $superficie = $produit->superficie_revendique;
            $volume = $produit->volume_revendique;
            if($produit->exist('superficie_revendique_vtsgn')) {
                $superficie += $produit->superficie_revendique_vtsgn;
            }
            if($produit->exist('volume_revendique_vtsgn')) {
                $volume += $produit->volume_revendique_vtsgn;
            }
            $csv .= sprintf("%s;Revendication;%s;%s;%s;;;;;;%s\n", $ligne_base, trim($libelle_complet), $this->formatFloat($superficie), $this->formatFloat($volume), $mode);
            foreach($produit->getProduitsCepage() as $detail) {
                $csv .= sprintf("%s;Revendication;%s;%s;%s;;;;;;%s\n", $ligne_base, trim($libelle_complet)." ".trim($detail->getLibelle()), $this->formatFloat($detail->superficie_revendique_total), $this->formatFloat($detail->volume_revendique_total), $mode);
            }
        }

        $csv .= sprintf("%s;Revendication;TOTAL;%s;%s;;;;;;%s\n", $ligne_base, $this->formatFloat($this->drev->declaration->getTotalTotalSuperficie()), $this->formatFloat($this->drev->declaration->getTotalVolumeRevendique()), $mode);

        foreach($this->drev->getPrelevementsOrdered(null, true) as $prelevementsOrdered) {
            foreach ($prelevementsOrdered->prelevements as $prelevement) {
                $chai = $prelevement->getChai();
{'fraction_non_alphanumeric': 0.17685589519650655, 'fraction_numerical': 0.0, 'mean_word_length': 3.6310025273799496, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 129, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6036508', 'n_tokens_mistral': 1891, 'n_tokens_neox': 1881, 'n_words': 255}