<commit_before><?php

class DouaneImportTask extends sfBaseTask
{

    protected function configure()
    {
        $this->addArguments(array(
            new sfCommandArgument('csv', sfCommandArgument::REQUIRED, "CSV de la DR"),
        ));

        $this->addOptions(array(
            new sfCommandOption('application', null, sfCommandOption::PARAMETER_REQUIRED, 'The application name', 'declaration'),
            new sfCommandOption('env', null, sfCommandOption::PARAMETER_REQUIRED, 'The environment', 'prod'),
            new sfCommandOption('connection', null, sfCommandOption::PARAMETER_REQUIRED, 'The connection name', 'default'),
        ));

        $this->namespace = 'douane';
        $this->name = 'import';
        $this->briefDescription = "Import de la DR";
        $this->detailedDescription = <<<EOF
EOF;
    }

    protected function execute($arguments = array(), $options = array())
    {
        // initialize the database connection
        $databaseManager = new sfDatabaseManager($this->configuration);
        $connection = $databaseManager->getDatabase($options['connection'])->getConnection();

        if(!file_exists($arguments['csv'])) {
            //echo sprintf("ERROR;Le fichier CSV n'existe pas;%s\n", $arguments['doc_id']);

            //return;
        }

        $csvFile = new CsvFile($arguments['csv']);
        $csv = $csvFile->getCsv();
        $cvis = null;
        foreach($csv as $ligne => $data) {
            $cvis[$data[DouaneCsvFile::CSV_RECOLTANT_CVI]."_".$data[DouaneCsvFile::CSV_CAMPAGNE].'_'.$data[DouaneCsvFile::CSV_TYPE]][] = $ligne;
        }

        foreach($cvis as $cviCampagne => $lignes) {
                $cviParts = explode('_', $cviCampagne);
                $cvi = $cviParts[0];
                $campagne = $cviParts[1];
                $type = $cviParts[2];

                $etablissement = EtablissementClient::getInstance()->findByCvi($cvi,true);

                if(!$etablissement) {
                    echo "$type;ERREUR;$cvi;cvi non trouvé\n";

                    continue;
                }

                if(is_array($etablissement) && count($etablissement) > 1) {
                    echo "$type;ERREUR;$cvi;plusieurs établissements ont ce cvi\n";

                    continue;
                }

                if($etablissement->isSuspendu()){
                  echo "$type;ERREUR;$cvi;cvi opérateur archivé, pas de reprise\n";
                  continue;
                }
                $fichier = FichierClient::getInstance()->findByArgs($type, $etablissement->identifiant, $campagne);

                if($fichier) {

                    continue;
                }

                if(!$fichier) {
                    $fichier = FichierClient::getClientFromType($type)->createDoc($etablissement->identifiant, $campagne);
                }

                $fichier->remove('donnees');
                $fichier->add('donnees');

                if($fichier->getDefinition()->exist('mouvements')) {
                    $fichier->remove('mouvements');
                    $fichier->add('mouvements');
                }

                foreach($lignes as $ligne) {
                    $fichier->addDonnee($csv[$ligne]);
                }

                $fichier->save();

                echo "IMPORTE;$fichier->_id\n";
        }
    }
}<commit_msg>Plus besoin de réinitialiser le doc<commit_after><?php

class DouaneImportTask extends sfBaseTask
{

    protected function configure()
    {
        $this->addArguments(array(
            new sfCommandArgument('csv', sfCommandArgument::REQUIRED, "CSV de la DR"),
        ));

        $this->addOptions(array(
            new sfCommandOption('application', null, sfCommandOption::PARAMETER_REQUIRED, 'The application name', 'declaration'),
            new sfCommandOption('env', null, sfCommandOption::PARAMETER_REQUIRED, 'The environment', 'prod'),
            new sfCommandOption('connection', null, sfCommandOption::PARAMETER_REQUIRED, 'The connection name', 'default'),
        ));

        $this->namespace = 'douane';
        $this->name = 'import';
        $this->briefDescription = "Import de la DR";
        $this->detailedDescription = <<<EOF
EOF;
    }

    protected function execute($arguments = array(), $options = array())
    {
        // initialize the database connection
        $databaseManager = new sfDatabaseManager($this->configuration);
        $connection = $databaseManager->getDatabase($options['connection'])->getConnection();

        if(!file_exists($arguments['csv'])) {
            //echo sprintf("ERROR;Le fichier CSV n'existe pas;%s\n", $arguments['doc_id']);

            //return;
        }

        $csvFile = new CsvFile($arguments['csv']);
        $csv = $csvFile->getCsv();
        $cvis = null;
        foreach($csv as $ligne => $data) {
            $cvis[$data[DouaneCsvFile::CSV_RECOLTANT_CVI]."_".$data[DouaneCsvFile::CSV_CAMPAGNE].'_'.$data[DouaneCsvFile::CSV_TYPE]][] = $ligne;
        }

        foreach($cvis as $cviCampagne => $lignes) {
                $cviParts = explode('_', $cviCampagne);
                $cvi = $cviParts[0];
                $campagne = $cviParts[1];
                $type = $cviParts[2];

                $etablissement = EtablissementClient::getInstance()->findByCvi($cvi,true);

                if(!$etablissement) {
                    echo "$type;ERREUR;$cvi;cvi non trouvé\n";

                    continue;
                }

                if(is_array($etablissement) && count($etablissement) > 1) {
                    echo "$type;ERREUR;$cvi;plusieurs établissements ont ce cvi\n";

                    continue;
                }

                if($etablissement->isSuspendu()){
                  echo "$type;ERREUR;$cvi;cvi opérateur archivé, pas de reprise\n";
                  continue;
                }
                $fichier = FichierClient::getInstance()->findByArgs($type, $etablissement->identifiant, $campagne);

                if($fichier) {

                    continue;
                }

                if(!$fichier) {
                    $fichier = FichierClient::getClientFromType($type)->createDoc($etablissement->identifiant, $campagne);
                }

                foreach($lignes as $ligne) {
                    $fichier->addDonnee($csv[$ligne]);
                }

                $fichier->save();

                echo "IMPORTE;$fichier->_id\n";
        }
    }
}
{'fraction_non_alphanumeric': 0.1414345728955967, 'fraction_numerical': 0.0012447487163528862, 'mean_word_length': 1.9883774988377498, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 53, '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': '5628743', 'n_tokens_mistral': 1911, 'n_tokens_neox': 1843, 'n_words': 302}