public function run($context) { $stock_factory = new Stock(); $stocks = $stock_factory->find_by_query('SELECT * FROM `creso_titoli` ' . 'LEFT JOIN `creso_obbligazioni` ON `creso_titoli`.`isin` = `creso_obbligazioni`.`isin` ' . 'WHERE ' . "`creso_titoli`.`tipo` = 'obbligazione' " . 'AND ' . "`creso_obbligazioni`.`emissione` = '0000-00-00' " . 'AND ' . '`creso_titoli`.`attivo` = 1 ' . 'LIMIT 1500'); $updated_count = 0; foreach ($stocks as $stock) { $bond = new Bond(); $bond->find_by_id($stock->isin); $bond->emissione = isin2emissione_ariva($stock->isin); if ($bond->emissione != '0000-00-00') { $bond->save(); $updated_count++; } } printf("%s updated %d bonds\n", get_called_class(), $updated_count); }
public function run($context) { // printf("ISIN;Emissione;Scadenza;Cadenza;Stacco;Tasso\n"); $updated_count = 0; foreach ($context->stocks as $stock) { if ($stock->tipo != 'obbligazione' || !$stock->attivo) { continue; } // print_r($stock); $bond = new Bond(); if ($bond->find_by_id($stock->isin)) { if ($bond->scadenza != EPOCH_ZERO && $bond->emissione != EPOCH_ZERO && $bond->stacco != EPOCH_ZERO) { continue; } } // printf("%s;%s;%s;%s;%s;%s\n", // $bond->isin, // $bond->emissione, // $bond->scadenza, // $bond->cadenza, // $bond->stacco, // $bond->tasso // ); switch ($stock->mercato) { case "eurotlx": case "tlx": $params = isin2bond_tlx($stock->isin, $context->preferences->isin_lookup_eurotlx); break; } if ($params === FALSE) { continue; } $bond_new = new Bond($params); $bond_new->isin = $stock->isin; if (!empty($bond_new->scadenza) && $bond->scadenza != $bond_new->scadenza || !empty($bond_new->emissione) && $bond->emissione != $bond_new->emissione || !empty($bond_new->stacco) && $bond->stacco != $bond_new->stacco) { // printf("%s;%s;%s;%s;%s;%s\n", // $bond->isin, // $bond->emissione, // $bond->scadenza, // $bond->cadenza, // $bond->stacco, // $bond->tasso // ); // // printf("%s;%s;%s;%s;%s;%s\n\n", // $bond_new->isin, // $bond_new->emissione, // $bond_new->scadenza, // $bond_new->cadenza, // $bond_new->stacco, // $bond_new->tasso // ); // print_r($bond_new); $bond_new->_force_create = TRUE; $bond_new->_ignore = TRUE; $bond_new->save(); $updated_count++; } } printf("%s updated %d bonds\n", get_called_class(), $updated_count); }