Added Vehicles

Added Bankimport, BankAccounts, BankStatements
Some Visual Changes
Added Contacts
Changes in VendorInvoices
Added layouts with default an one for Login PAge
Added Input Group Component
This commit is contained in:
2023-12-22 17:50:22 +01:00
parent 8a1e2384d1
commit 9e092823e4
22 changed files with 1475 additions and 243 deletions

View File

@@ -1,103 +1,88 @@
<script setup>
import Papa from 'papaparse'
const supabase = useSupabaseClient()
const accounts = (supabase.from("bankAccounts").select()).data
let items = ref([])
async function readSingleFile(evt) {
var f = document.getElementById('fileInput').files[0];
if (f) {
let results = []
let text = await f.text()
results = Papa.parse(text).data
console.log(results[0])
results = results.slice(1)
results = results.map(temp => {
return {
iban: temp[1],
bank: temp[3],
date: temp[4],
partnerName: temp[6],
partnerIban: temp[7],
type: temp[9],
text: temp[10],
value: temp[11],
currency: temp[12]
}
})
console.log(results)
items.value = results
parseStatements()
} else {
alert("Failed to load file");
}
}
const newStatements = ref([])
const parseStatements = async () => {
items.value.forEach(item => {
if(item.date) {
let returnObj = {
date: item.date,
partnerIban: item.partnerIban,
partnerName: item.partnerName,
text: item.text,
value: Number(item.value.replace(",",".")),
}
newStatements.value.push(returnObj)
}
})
const {data,error} = await supabase
.from("bankStatements")
.insert(newStatements.value)
.select()
console.log(data)
console.log(error)
}
</script>
<template>
<div>
<UInput
type="file"
id="fileInput"
/>
<UButton
@click="readSingleFile"
>Test</UButton>
<div id="main">
<!-- TODO: Kontakte erstellen und dem Kunden zuweisen -->
<table>
<tr
v-for="temp in items"
<!--<InputGroup>
<UButton @click="router.push(`/banking/accounts/create/`)">+ Kontakt</UButton>
<UInput
v-model="searchString"
placeholder="Suche..."
/>
</InputGroup>-->
<UTable
:rows="filteredRows"
:columns="itemColumns"
@select="selectItem"
:empty-state="{ icon: 'i-heroicons-circle-stack-20-solid', label: 'Noch keine Einträge' }"
>
<td>{{temp.date}}</td>
<td>{{temp.partnerName}}</td>
<td>{{temp.text}}</td>
<td>{{temp.value}}</td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
</UTable>
</div>
</div>
</template>
<script setup>
definePageMeta({
middleware: "auth"
})
const router = useRouter()
const {bankAccounts} = storeToRefs(useDataStore())
const mode = ref("show")
const itemColumns = [
{
key: "name",
label: "Name",
sortable: true
},
{
key: "iban",
label: "IBAN",
sortable: true
},
{
key: "bankId",
label: "Bank",
sortable: true
},
{
key: "ownerName",
label: "Besitzer",
sortable: true
}
]
const selectItem = (item) => {
router.push(`/banking/statements/${item.id} `)
}
const searchString = ref('')
const filteredRows = computed(() => {
bankAccounts.value = bankAccounts.value.filter(account => account.used)
if(!searchString.value) {
return bankAccounts.value
}
return bankAccounts.value.filter(item => {
return Object.values(item).some((value) => {
return String(value).toLowerCase().includes(searchString.value.toLowerCase())
})
})
})
</script>
<style scoped>
</style>