Files
FEDEO/imports/lexoffice/vendors/index.js
2024-02-19 07:46:28 +01:00

85 lines
2.8 KiB
JavaScript

const csv = require("csv-parser")
const fs = require("fs")
const path = require("path")
const {createClient} = require("@supabase/supabase-js")
const supabase = createClient("https://uwppvcxflrcsibuzsbil.supabase.co","eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InV3cHB2Y3hmbHJjc2lidXpzYmlsIiwicm9sZSI6InNlcnZpY2Vfcm9sZSIsImlhdCI6MTcwMDkzODE5NCwiZXhwIjoyMDE2NTE0MTk0fQ.6hOkD1J8XBkVJUm-swv0ngLQ74xrEYr28EEbo0rUrts")
const tenant = 8
let rows = []
let vendors = []
let contacts = []
fs.createReadStream(path.join(__dirname, "../../input/contacts.csv"), "utf-8")
.pipe(csv({ separator: ";" }))
.on("data", (data) => rows.push(data))
.on("end", async function () {
console.log("finished");
console.log(rows)
vendors = rows.map(i => {
let item = {
vendorNumber : Number(i.Lieferantennummer),
tenant: tenant,
name: i.Firmenname,
infoData: {
zip: i["PLZ 1"],
city: i["Ort 1"],
ustid: i["Umsatzsteuer ID"],
street: i["Straße 1"],
country: i["Land 1"],
tel: i["Telefon 1"],
email: i["E-Mail 1"]
}
}
return item
})
rows.forEach(i => {
if(i["Ansprechpartner 1 Vorname"] ||i["Ansprechpartner 1 Nachname"] ||i["Ansprechpartner 1"] ||i["Ansprechpartner 1 Anrede"] ||i["Ansprechpartner 1 E-Mail"] ||i["Ansprechpartner 1 Telefon"]) {
let item = {
firstName: i["Ansprechpartner 1 Vorname"],
lastName: i["Ansprechpartner 1 Nachname"],
fullName: i["Ansprechpartner 1"],
salutation: i["Ansprechpartner 1 Anrede"],
email: i["Ansprechpartner 1 E-Mail"],
phoneHome: i["Ansprechpartner 1 Telefon"],
tenant: tenant,
vendorNumber: i["Lieferantennummer"]
}
contacts.push(item)
}
})
const {data:vendorsData,error: vendorsError} = await supabase.from("vendors").insert(vendors).select()
console.log(vendorsData)
console.log(vendorsError)
contacts = contacts.map(i => {
let item = {
...i,
vendor: vendorsData.find(v => v.vendorNumber === i.vendorNumber).id
}
delete item.vendorNumber
return item
})
const {data:contactsData,error: contactsError} = await supabase.from("contacts").insert(contacts).select()
console.log(contactsData)
console.log(contactsError)
//console.log(rows)
})
.on("error", function (error) {
console.log(error.message);
});