/**
 * Importa dei ddl a partire da un file yaml
 */
function run_opp_import_ddl_from_yaml($task, $args, $options)
{
    static $loaded;
    // load application context
    if (!$loaded) {
        _loader();
    }
    $dry_run = false;
    if (array_key_exists('dry-run', $options)) {
        $dry_run = true;
    }
    if (array_key_exists('yaml-file', $options)) {
        $yaml_file = strtolower($options['yaml-file']);
    } else {
        throw new Exception("Specificare il file contenente i dati dei ddl con l'opzione --yaml-file=FILE_COMPLETE_PATH");
    }
    if (array_key_exists('leg', $options)) {
        $leg = strtolower($options['leg']);
    } else {
        throw new Exception("Specificare la legislatura con l'opzione --leg=LEGISLATURA");
    }
    echo "memory usage: " . memory_get_usage() . "\n";
    $start_time = time();
    $msg = sprintf("import ddl da {$yaml_file}\n");
    echo pakeColor::colorize($msg, array('fg' => 'cyan', 'bold' => true));
    if (file_exists($yaml_file)) {
        $ddls = sfYaml::Load($yaml_file);
    } else {
        throw new Exception("Impossibile trovare il file {$yaml_file}");
    }
    foreach ($ddls as $key => $ddl) {
        $atto = new OppAtto();
        $atto->setLegislatura($leg);
        $atto->setParlamentoId($ddl['parlamento_id']);
        $atto->setRamo(strtoupper($ddl['ramo']));
        $atto->setNumfase($ddl['numfase']);
        $atto->setTipoAttoId(1);
        $atto->setDataPres($ddl['presentazione_date']);
        $atto->setDataAgg($ddl['update_date']);
        $atto->setTitolo($ddl['titolo']);
        $atto->setIniziativa($ddl['iniziativa']);
        if ($dry_run) {
            var_dump($ddl);
        } else {
            $atto->save();
            $msg = sprintf("atto %s.%s aggiunto - parlamento_id:%d, opp_id:%d\n", $atto->getRamo(), $atto->getNumfase(), $atto->getParlamentoId(), $atto->getId());
            echo pakeColor::colorize($msg, array('fg' => 'green', 'bold' => false));
        }
        unset($atto);
    }
    $msg = sprintf("%d atti elaborati\n", count($ddls));
    echo pakeColor::colorize($msg, array('fg' => 'cyan', 'bold' => true));
    $msg = sprintf(" [%4d sec] [%10d bytes]\n", time() - $start_time, memory_get_usage());
    echo pakeColor::colorize($msg, array('fg' => 'red', 'bold' => false));
}