101 lines
3.8 KiB
JavaScript
101 lines
3.8 KiB
JavaScript
/**
|
|
* Direct script to run Bygma Prisbog import
|
|
* This will import all 54,558 products from the CSV file
|
|
*/
|
|
|
|
const BygmaPrisbogImportService = require('./backend/src/services/bygmaPrisbogImportService');
|
|
const path = require('path');
|
|
|
|
const CSV_PATH = '/mnt/HC_Volume_103713257/tilbudgivern/frontend/firmadata/subvendor/bygma/PrisBog_FIXED.csv';
|
|
|
|
async function runImport() {
|
|
console.log('🚀 Starting Bygma Prisbog Import...\n');
|
|
console.log('📄 CSV File:', CSV_PATH);
|
|
console.log('⏰ Started at:', new Date().toLocaleString('da-DK'), '\n');
|
|
|
|
// Initialize database connection first
|
|
const databaseService = require('./backend/src/services/databaseService');
|
|
|
|
// Force IPv4 by using 127.0.0.1 instead of localhost
|
|
process.env.DB_HOST = '127.0.0.1';
|
|
|
|
try {
|
|
console.log('🔌 Initializing database connection...');
|
|
await databaseService.initialize();
|
|
console.log('✅ Database connected\n');
|
|
|
|
const importService = new BygmaPrisbogImportService();
|
|
|
|
console.log('📊 Import process started...');
|
|
console.log(' This will take several minutes for 54,000+ products\n');
|
|
|
|
const result = await importService.importPrisbog(CSV_PATH, 'manual_script');
|
|
|
|
console.log('\n' + '='.repeat(70));
|
|
console.log('✅ IMPORT COMPLETED SUCCESSFULLY!');
|
|
console.log('='.repeat(70));
|
|
console.log('\n📊 Import Statistics:');
|
|
console.log(' Batch ID:', result.batchId);
|
|
console.log(' Duration:', result.duration, 'seconds');
|
|
console.log(' Total rows:', result.stats.totalRows);
|
|
console.log(' Processed rows:', result.stats.processedRows);
|
|
console.log(' Successful rows:', result.stats.successfulRows);
|
|
console.log(' Failed rows:', result.stats.failedRows);
|
|
console.log('\n📦 Product Statistics:');
|
|
console.log(' ✨ New products:', result.stats.newProducts);
|
|
console.log(' 🔄 Updated products:', result.stats.updatedProducts);
|
|
console.log(' 💰 Price updates:', result.stats.updatedPrices);
|
|
console.log(' ⏸️ Deactivated products:', result.stats.deactivatedProducts);
|
|
|
|
if (result.warnings && result.warnings.length > 0) {
|
|
console.log('\n⚠️ Warnings:', result.warnings.length);
|
|
result.warnings.slice(0, 5).forEach((warning, i) => {
|
|
console.log(` ${i + 1}. ${warning.message}`);
|
|
});
|
|
}
|
|
|
|
if (result.errors && result.errors.length > 0) {
|
|
console.log('\n❌ Errors:', result.errors.length);
|
|
result.errors.slice(0, 5).forEach((error, i) => {
|
|
console.log(` ${i + 1}. Line ${error.line}: ${error.error}`);
|
|
});
|
|
}
|
|
|
|
console.log('\n✅ Import completed at:', new Date().toLocaleString('da-DK'));
|
|
|
|
// Verify product 118266
|
|
console.log('\n' + '='.repeat(70));
|
|
console.log('🔍 Verifying product 118266...');
|
|
console.log('='.repeat(70));
|
|
|
|
const product = await databaseService.query(
|
|
'SELECT * FROM bygma_products WHERE vareNr = ?',
|
|
['118266']
|
|
);
|
|
|
|
if (product.length > 0) {
|
|
console.log('✅ Product 118266 FOUND in database!');
|
|
console.log(' VareNr:', product[0].vareNr);
|
|
console.log(' Tekst:', product[0].tekst);
|
|
console.log(' Enhed:', product[0].enhed);
|
|
console.log(' Netto pris:', product[0].current_netto_pris);
|
|
console.log(' Brutto pris:', product[0].current_brutto_pris);
|
|
console.log(' Is active:', product[0].is_active);
|
|
} else {
|
|
console.log('❌ Product 118266 NOT FOUND in database');
|
|
}
|
|
|
|
await databaseService.close();
|
|
|
|
} catch (error) {
|
|
console.error('\n❌ IMPORT FAILED:', error.message);
|
|
console.error('Stack:', error.stack);
|
|
|
|
const databaseService = require('./backend/src/services/databaseService');
|
|
await databaseService.close();
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
runImport().catch(console.error);
|