This commit is contained in:
2024-04-10 10:09:56 +02:00
parent 9fa1059301
commit bf04b9c563
12 changed files with 230 additions and 241 deletions

View File

@@ -490,218 +490,218 @@ export const useDataStore = defineStore('data', () => {
//console.log(oldData)
//console.log(newData)
let itemsToCreate = []
if(dataTypes[dataType].historyItemHolder){
let itemsToCreate = []
const checkPropState = (key,propContent) => {
//console.log(propContent)
if(propContent.type && propContent.data){
if(propContent.type === "updated" ||propContent.type === "created"){
createHistoryItem(key,propContent)
const checkPropState = (key,propContent) => {
//console.log(propContent)
if(propContent.type && propContent.data){
if(propContent.type === "updated" ||propContent.type === "created"){
createHistoryItem(key,propContent)
}
} else {
for (let prop in propContent) {
checkPropState(prop,propContent[prop])
}
}
}
const createHistoryItem = (key,prop) => {
//console.log("OLD: " + prop.data.o)
//console.log("NEW: " + prop.data.n)
let name = "" || key
let oldVal = prop.data.o || "-"
let newVal = prop.data.n || "-"
if(key === "project") {
name = "Projekt"
oldVal = oldVal !== "-" ? projects.value.find(i => i.id === prop.data.o).name : "-"
newVal = projects.value.find(i => i.id === prop.data.n).name
} else if (key === "title") {
name = "Titel"
} else if(key === "type") {
name = "Typ"
} else if(key === "notes") {
name = "Notizen"
} else if(key === "link") {
name = "Link"
} else if(key === "start") {
name = "Start"
oldVal = dayjs(prop.data.o).format("DD.MM.YYYY HH:mm")
newVal = dayjs(prop.data.n).format("DD.MM.YYYY HH:mm")
} else if(key === "end") {
name = "Ende"
oldVal = dayjs(prop.data.o).format("DD.MM.YYYY HH:mm")
newVal = dayjs(prop.data.n).format("DD.MM.YYYY HH:mm")
} else if(key === "birthday") {
name = "Geburtstag"
oldVal = dayjs(prop.data.o).format("DD.MM.YYY")
newVal = dayjs(prop.data.n).format("DD.MM.YYY")
} else if(key === "resources") {
name = "Resourcen"
oldVal = prop.data.o.map(i => i.title).join(", ")
newVal = prop.data.n.map(i => i.title).join(", ")
} else if(key === "customerNumber") {
name = "Kundennummer"
} else if(key === "active") {
name = "Aktiv"
if(oldVal === true){
oldVal = "Aktiv"
newVal = "Gesperrt"
} else if(oldVal === "-") {
oldVal = "Gesperrt"
newVal = "Aktiv"
}
} else if(key === "isCompany") {
name = "Firmenkunde"
if(oldVal === true){
oldVal = "Firma"
newVal = "Privatkunde"
} else if(oldVal === "-") {
oldVal = "Privatkunde"
newVal = "Firma"
}
} else if(key === "special") {
name = "Adresszusatz"
} else if(key === "street") {
name = "Straße & Hausnummer"
} else if(key === "city") {
name = "Ort"
} else if(key === "zip") {
name = "Postleitzahl"
} else if(key === "country") {
name = "Land"
} else if(key === "web") {
name = "Webseite"
} else if(key === "email") {
name = "E-Mail"
} else if(key === "tel") {
name = "Telefon"
} else if(key === "ustid") {
name = "USt-ID"
} else if(key === "role") {
name = "Rolle"
} else if(key === "phoneHome") {
name = "Festnetz"
} else if(key === "phoneMobile") {
name = "Mobiltelefon"
} else if(key === "salutation") {
name = "Anrede"
} else if(key === "firstName") {
name = "Vorname"
} else if(key === "lastName") {
name = "Nachname"
} else if(key === "name") {
name = "Name"
} else if(key === "customer") {
name = "Kunde"
oldVal = customers.value.find(i => i.id === prop.data.o).name
newVal = customers.value.find(i => i.id === prop.data.n).name
} else if(key === "vendor") {
name = "Lieferant"
oldVal = vendors.value.find(i => i.id === prop.data.o).name
newVal = vendors.value.find(i => i.id === prop.data.n).name
} else if(key === "description") {
name = "Beschreibung"
} else if(key === "categorie") {
name = "Kategorie"
} else if(key === "profile") {
name = "Mitarbeiter"
oldVal = profiles.value.find(i => i.id === prop.data.o).fullName
newVal = profiles.value.find(i => i.id === prop.data.n).fullName
} else if(key === "plant") {
name = "Objekt"
oldVal = plants.value.find(i => i.id === prop.data.o).name
newVal = plants.value.find(i => i.id === prop.data.n).name
} else if(key === "annualPaidLeaveDays") {
name = "Urlaubstage"
} else if(key === "employeeNumber") {
name = "Mitarbeiternummer"
} else if(key === "weeklyWorkingDays") {
name = "Wöchentliche Arbeitstage"
} else if(key === "weeklyWorkingHours") {
name = "Wöchentliche Arbeitszeit"
} else if(key === "licensePlate") {
name = "Kennzeichen"
} else if(key === "driver") {
name = "Fahrer"
oldVal = profiles.value.find(i => i.id === prop.data.o).fullName
newVal = profiles.value.find(i => i.id === prop.data.n).fullName
}
let text = ""
if(prop.type === "updated" && newVal !== "-" && oldVal !== "-") {
text = `Gerändert: ${name} von "${oldVal}" zu "${newVal}"`
} else if(prop.type === "updated" && newVal !== "-" && oldVal === "-") {
text = `Hinzugefügt: ${name} "${newVal}"`
} else if(prop.type === "created") {
text = `Hinzugefügt: ${name} "${newVal}"`
} else if(prop.type === "updated" && newVal === "-" && oldVal !== "-") {
text = `Entfernt: ${name} "${oldVal}"`
}
let historyItem = {
text: text,
createdBy: activeProfile.value.id,
oldVal: prop.data.o,
newVal: prop.data.n,
tenant: currentTenant.value
}
historyItem[dataTypes[dataType].historyItemHolder] = newData.id
const checkIfNaN = (x) => {
return typeof x === "number" && x !== x;
}
//console.log(key)
//console.log(checkIfNaN(key))
if(key !== "fullName" && key !== "phases") {
//console.log(historyItem)
itemsToCreate.push(historyItem)
}
}
if(oldData) {
let result = deepDiffMapper.map(oldData,newData)
//console.log(result)
for (let prop in result) {
//console.log(prop)
checkPropState(prop,result[prop])
}
} else {
for (let prop in propContent) {
checkPropState(prop,propContent[prop])
let historyItem = {
text: `${dataTypes[dataType].labelSingle} erstellt`,
createdBy: activeProfile.value.id,
tenant: currentTenant.value
}
}
}
const createHistoryItem = (key,prop) => {
historyItem[dataTypes[dataType].historyItemHolder] = newData.id
//console.log("OLD: " + prop.data.o)
//console.log("NEW: " + prop.data.n)
let name = "" || key
let oldVal = prop.data.o || "-"
let newVal = prop.data.n || "-"
if(key === "project") {
name = "Projekt"
oldVal = projects.value.find(i => i.id === prop.data.o).name
newVal = projects.value.find(i => i.id === prop.data.n).name
} else if (key === "title") {
name = "Titel"
} else if(key === "type") {
name = "Typ"
} else if(key === "notes") {
name = "Notizen"
} else if(key === "link") {
name = "Link"
} else if(key === "start") {
name = "Start"
oldVal = dayjs(prop.data.o).format("DD.MM.YYYY HH:mm")
newVal = dayjs(prop.data.n).format("DD.MM.YYYY HH:mm")
} else if(key === "end") {
name = "Ende"
oldVal = dayjs(prop.data.o).format("DD.MM.YYYY HH:mm")
newVal = dayjs(prop.data.n).format("DD.MM.YYYY HH:mm")
} else if(key === "birthday") {
name = "Geburtstag"
oldVal = dayjs(prop.data.o).format("DD.MM.YYY")
newVal = dayjs(prop.data.n).format("DD.MM.YYY")
} else if(key === "resources") {
name = "Resourcen"
oldVal = prop.data.o.map(i => i.title).join(", ")
newVal = prop.data.n.map(i => i.title).join(", ")
} else if(key === "customerNumber") {
name = "Kundennummer"
} else if(key === "active") {
name = "Aktiv"
if(oldVal === true){
oldVal = "Aktiv"
newVal = "Gesperrt"
} else if(oldVal === "-") {
oldVal = "Gesperrt"
newVal = "Aktiv"
}
} else if(key === "isCompany") {
name = "Firmenkunde"
if(oldVal === true){
oldVal = "Firma"
newVal = "Privatkunde"
} else if(oldVal === "-") {
oldVal = "Privatkunde"
newVal = "Firma"
}
} else if(key === "special") {
name = "Adresszusatz"
} else if(key === "street") {
name = "Straße & Hausnummer"
} else if(key === "city") {
name = "Ort"
} else if(key === "zip") {
name = "Postleitzahl"
} else if(key === "country") {
name = "Land"
} else if(key === "web") {
name = "Webseite"
} else if(key === "email") {
name = "E-Mail"
} else if(key === "tel") {
name = "Telefon"
} else if(key === "ustid") {
name = "USt-ID"
} else if(key === "role") {
name = "Rolle"
} else if(key === "phoneHome") {
name = "Festnetz"
} else if(key === "phoneMobile") {
name = "Mobiltelefon"
} else if(key === "salutation") {
name = "Anrede"
} else if(key === "firstName") {
name = "Vorname"
} else if(key === "lastName") {
name = "Nachname"
} else if(key === "name") {
name = "Name"
} else if(key === "customer") {
name = "Kunde"
oldVal = customers.value.find(i => i.id === prop.data.o).name
newVal = customers.value.find(i => i.id === prop.data.n).name
} else if(key === "vendor") {
name = "Lieferant"
oldVal = vendors.value.find(i => i.id === prop.data.o).name
newVal = vendors.value.find(i => i.id === prop.data.n).name
} else if(key === "description") {
name = "Beschreibung"
} else if(key === "categorie") {
name = "Kategorie"
} else if(key === "profile") {
name = "Mitarbeiter"
oldVal = profiles.value.find(i => i.id === prop.data.o).fullName
newVal = profiles.value.find(i => i.id === prop.data.n).fullName
} else if(key === "plant") {
name = "Objekt"
oldVal = plants.value.find(i => i.id === prop.data.o).name
newVal = plants.value.find(i => i.id === prop.data.n).name
} else if(key === "annualPaidLeaveDays") {
name = "Urlaubstage"
} else if(key === "employeeNumber") {
name = "Mitarbeiternummer"
} else if(key === "weeklyWorkingDays") {
name = "Wöchentliche Arbeitstage"
} else if(key === "weeklyWorkingHours") {
name = "Wöchentliche Arbeitszeit"
} else if(key === "licensePlate") {
name = "Kennzeichen"
} else if(key === "driver") {
name = "Fahrer"
oldVal = profiles.value.find(i => i.id === prop.data.o).fullName
newVal = profiles.value.find(i => i.id === prop.data.n).fullName
}
let text = ""
if(prop.type === "updated" && newVal !== "-" && oldVal !== "-") {
text = `Gerändert: ${name} von "${oldVal}" zu "${newVal}"`
} else if(prop.type === "updated" && newVal !== "-" && oldVal === "-") {
text = `Hinzugefügt: ${name} "${newVal}"`
} else if(prop.type === "created") {
text = `Hinzugefügt: ${name} "${newVal}"`
} else if(prop.type === "updated" && newVal === "-" && oldVal !== "-") {
text = `Entfernt: ${name} "${oldVal}"`
}
let historyItem = {
text: text,
createdBy: activeProfile.value.id,
oldVal: prop.data.o,
newVal: prop.data.n,
tenant: currentTenant.value
}
historyItem[dataTypes[dataType].historyItemHolder] = newData.id
const checkIfNaN = (x) => {
return typeof x === "number" && x !== x;
}
//console.log(key)
//console.log(checkIfNaN(key))
if(key !== "fullName" && key !== "phases") {
//console.log(historyItem)
itemsToCreate.push(historyItem)
}
}
if(oldData) {
let result = deepDiffMapper.map(oldData,newData)
//console.log(result)
for (let prop in result) {
//console.log(prop)
checkPropState(prop,result[prop])
const {data,error} = await supabase.from("historyitems").insert(itemsToCreate)
if(error) {
console.log(error)
} else {
fetchHistoryItems()
}
} else {
let historyItem = {
text: `${dataTypes[dataType].labelSingle} erstellt`,
createdBy: activeProfile.value.id,
tenant: currentTenant.value
}
historyItem[dataTypes[dataType].historyItemHolder] = newData.id
//console.log(historyItem)
itemsToCreate.push(historyItem)
}
const {data,error} = await supabase.from("historyitems").insert(itemsToCreate)
if(error) {
console.log(error)
} else {
fetchHistoryItems()
}
}