'sqlite', 'database' => $file, ] ); $con->connect(); $schemaContent = \file_get_contents(__DIR__ . '/schema.json'); if ($schemaContent === false) { return; } $schema = \json_decode($schemaContent, true); if (!\is_array($schema)) { return; } foreach ($schema as $table) { Builder::createFromSchema($table, $con)->execute(); } $dataTransform = function (string $column, mixed $value) : mixed { $column = \strtolower($column); if (!\str_ends_with($column, 'date') && !\str_ends_with($column, 'dat')) { return $value; } if (!\is_string($value)) { return $value; } if (\preg_match('/^\d{2}\/\d{2}\/\d{4}$/', $value) === 1) { return DateTime::createFromFormat('d/m/Y', $value); } elseif (\preg_match('/^\d{2}-\d{2}-\d{4}$/', $value) === 1) { return DateTime::createFromFormat('d-m-Y', $value); } elseif (\preg_match('/^\d{4}-\d{2}-\d{2}$/', $value) === 1) { return DateTime::createFromFormat('Y-m-d', $value); } else { return $value; } }; // TARIC $spreadsheet = new SpreadsheetDatabaseMapper($con); $spreadsheet->import(__DIR__ . '/TARIC/Nomenclature EN.xlsx', 'taric_good', $dataTransform); $spreadsheet->import(__DIR__ . '/TARIC/Nomenclature DE.xlsx', 'taric_good', $dataTransform); $spreadsheet->import(__DIR__ . '/TARIC/Nomenclature FR.xlsx', 'taric_good', $dataTransform); $spreadsheet->import(__DIR__ . '/TARIC/Footnotes descriptions.xlsx', 'taric_footnote_description', $dataTransform); $spreadsheet->import(__DIR__ . '/TARIC/Additional codes descriptions.xlsx', 'taric_add_code', $dataTransform); $spreadsheet->import(__DIR__ . '/TARIC/Measure footnotes.xlsx', 'taric_measure_footnote', $dataTransform); $spreadsheet->import(__DIR__ . '/TARIC/Duties Export 01-99.xlsx', 'taric_duties_export', $dataTransform); $spreadsheet->import(__DIR__ . '/TARIC/Duties Import 01-99.xlsx', 'taric_duties_import', $dataTransform); // SANCTIONS // US (remember to modify the csv files when downloading new files -> add header to csv files) $csvsheet = new CsvDatabaseMapper($con); $csvsheet->import(__DIR__ . '/Sanctions/US/SDN/SDN.CSV', 'sanction_us_sdn'); $csvsheet->import(__DIR__ . '/Sanctions/US/SDN/ALT.CSV', 'sanction_us_sdn_alt'); $csvsheet->import(__DIR__ . '/Sanctions/US/SDN/ADD.CSV', 'sanction_us_sdn_add'); $csvsheet->import(__DIR__ . '/Sanctions/US/SDN/SDN_COMMENTS.CSV', 'sanction_us_sdn_comments'); $csvsheet->import(__DIR__ . '/Sanctions/US/Consolidated/CONS_PRIM.CSV', 'sanction_us_cons'); $csvsheet->import(__DIR__ . '/Sanctions/US/Consolidated/CONS_ALT.CSV', 'sanction_us_cons_alt'); $csvsheet->import(__DIR__ . '/Sanctions/US/Consolidated/CONS_ADD.CSV', 'sanction_us_cons_add'); $csvsheet->import(__DIR__ . '/Sanctions/US/Consolidated/CONS_COMMENTS.CSV', 'sanction_us_cons_comments'); // EU $csvsheet = new CsvDatabaseMapper($con); $csvsheet->import( __DIR__ . '/Sanctions/EU/Consolidated Financial Sanctions File 1-9.csv', 'sanction_eu_cons', $dataTransform ); // UK $con->close();