. */ namespace Modules\Partitario\Import; use Importer\CSVImporter; /** * Struttura per la gestione delle operazioni di importazione (da CSV) del piano dei conti. * * @since 2.4.17 */ class CSV extends CSVImporter { public function getAvailableFields() { return [ [ 'field' => 'numero', 'label' => 'Conto', 'primary_key' => true, ], [ 'field' => 'descrizione', 'label' => 'Descrizione', ], [ 'field' => 'idpianodeiconti1', 'label' => 'Sezione', ], [ 'field' => 'dir', 'label' => 'Direzione', 'names' => [ 'Direzione', 'direzione', 'dir', ], ], ]; } public function import($record) { $database = database(); $primary_key = $this->getPrimaryKey(); $numero = explode('.', $record['numero']); $codice_conto2 = $numero[0]; $codice_conto3 = $numero[1]; //Estraggo il conto1 $idpianodeiconti1 = $database->fetchOne('SELECT id FROM co_pianodeiconti1 WHERE LOWER(descrizione)=LOWER('.prepare($record['idpianodeiconti1']).')')['id']; //Estraggo il conto, $idpianodeiconti2 = $database->fetchOne('SELECT id FROM co_pianodeiconti2 WHERE numero='.prepare($codice_conto2))['id']; if (empty($idpianodeiconti2) && empty($codice_conto3)) { $database->insert('co_pianodeiconti2', [ 'numero' => $codice_conto2, 'descrizione' => $record['descrizione'], 'idpianodeiconti1' => $idpianodeiconti1, 'dir' => $record['dir'], ]); } elseif (!empty($idpianodeiconti2) && !empty($codice_conto3)) { $idpianodeiconti3 = $database->fetchOne('SELECT id FROM co_pianodeiconti3 WHERE numero='.prepare($codice_conto3).' AND idpianodeiconti2='.prepare($idpianodeiconti2))['id']; if (empty($idpianodeiconti3)) { $database->insert('co_pianodeiconti3', [ 'numero' => $codice_conto3, 'descrizione' => $record['descrizione'], 'idpianodeiconti2' => $idpianodeiconti2, 'dir' => $record['dir'], ]); } } } public static function getExample() { return [ ['Sezione', 'Conto', 'Descrizione', 'Direzione'], ['Economico', '600.000010', 'Costi merci c/acquisto di rivendita', 'uscita'], ['Patrimoniale', '110.000010', 'Riepilogativo clienti', ''], ]; } }