Compare commits

..

No commits in common. "7a89eee9fb0780207654bad701b148531fadc7f4" and "80ef5c4d9dbb59819f0f3cb5844594c544496958" have entirely different histories.

7 changed files with 89 additions and 93 deletions

View File

@ -5,7 +5,7 @@
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<link rel="icon" href="/favicon.ico" /> <link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Don Confiao</title> <title>Welcome to Vuetify 3</title>
</head> </head>
<body> <body>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

@ -1,9 +1,7 @@
<template> <template>
<v-app> <v-app>
<NavBar /> <NavBar />
<v-main> <router-view />
<router-view />
</v-main>
</v-app> </v-app>
</template> </template>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -1,5 +1,5 @@
<template> <template>
<v-app-bar color="primary" prominent> <v-app-bar color="primary" prominent>
<v-app-bar-nav-icon variant="text" @click.stop="drawer = !drawer"></v-app-bar-nav-icon> <v-app-bar-nav-icon variant="text" @click.stop="drawer = !drawer"></v-app-bar-nav-icon>
<v-toolbar-title>Menu</v-toolbar-title> <v-toolbar-title>Menu</v-toolbar-title>
<v-spacer></v-spacer> <v-spacer></v-spacer>
@ -22,7 +22,6 @@
<script> <script>
export default { export default {
name: 'NavBar',
data: () => ({ data: () => ({
drawer: false, drawer: false,
group: null, group: null,

View File

@ -1,94 +1,101 @@
<template> <template>
<v-container> <v-app-bar color="primary" prominent>
<v-app-bar-nav-icon variant="text" @click.stop="drawer = !drawer"></v-app-bar-nav-icon>
<v-toolbar-title>My files</v-toolbar-title>
<v-spacer></v-spacer>
<template v-if="$vuetify.display.mdAndUp">
<v-btn icon="mdi-magnify" variant="text"></v-btn>
<v-btn icon="mdi-filter" variant="text"></v-btn>
</template>
<v-btn icon="mdi-dots-vertical" variant="text"></v-btn>
</v-app-bar>
<v-navigation-drawer v-model="drawer"
:location="$vuetify.display.mobile ? 'bottom' : undefined"
temporary>
<v-list :items="items"></v-list>
</v-navigation-drawer>
<v-container app>
<v-form ref="form" v-model="valid"> <v-form ref="form" v-model="valid">
<v-row> <v-text-field
<v-col> v-model="purchase.date"
<v-select label="Fecha"
v-model="purchase.customer" type="date"
:items="clients" :rules="[rules.required]"
item-title="name" required
item-value="id" ></v-text-field>
label="Cliente" <v-select
:rules="[rules.required]" v-model="purchase.customer"
required :items="clients"
class="mr-4" item-title="name"
></v-select> item-value="id"
</v-col> label="Cliente"
<v-col :rules="[rules.required]"
lg="2" required
> ></v-select>
<v-text-field
v-model="purchase.date"
label="Fecha"
type="date"
:rules="[rules.required]"
required
></v-text-field>
</v-col>
</v-row>
<v-textarea <v-textarea
v-model="purchase.notes" v-model="purchase.notes"
label="Notas" label="Notas"
rows="2"
></v-textarea> ></v-textarea>
<v-divider></v-divider> <v-divider></v-divider>
<v-container> <v-container>
<v-toolbar> <v-toolbar>
<v-toolbar-title secondary>Productos</v-toolbar-title> <v-toolbar-title secondary>Productos</v-toolbar-title>
</v-toolbar> </v-toolbar>
<v-container v-for="(line, index) in purchase.saleline_set" :key="line.id"> <div v-for="(line, index) in purchase.saleline_set" :key="line.id">
<v-row> <v-row>
<v-col> <v-col>
<v-select <v-select
v-model="line.product" v-model="line.product"
:items="products" :items="products"
@update:modelValue="onProductChange(index)" @update:modelValue="onProductChange(index)"
item-title="name" item-title="name"
item-value="id" item-value="id"
label="Producto" label="Producto"
:rules="[rules.required]" :rules="[rules.required]"
required required
></v-select> ></v-select>
</v-col> </v-col>
<v-col> <v-col>
<v-text-field <v-text-field
v-model.number="line.unit_price" v-model.number="line.unit_price"
label="Precio" label="Precio"
type="number" type="number"
:rules="[rules.required]" :rules="[rules.required]"
prefix="$" prefix="$"
required required
readonly readonly
></v-text-field> ></v-text-field>
</v-col> </v-col>
<v-col> <v-col>
<v-text-field <v-text-field
v-model.number="line.quantity" v-model.number="line.quantity"
label="Cantidad" label="Cantidad"
type="number" type="number"
:rules="[rules.required]" :rules="[rules.required]"
required required
></v-text-field> ></v-text-field>
</v-col> </v-col>
<v-col> <v-col>
<v-text-field <v-text-field
type="number" type="number"
:value="calculateSubtotal(line)" :value="calculateSubtotal(line)"
label="Subtotal" label="Subtotal"
prefix="$" prefix="$"
readonly readonly
disable disable
></v-text-field> ></v-text-field>
</v-col> </v-col>
<v-col> <v-col>
<v-btn @click="removeLine(index)" color="red">Eliminar</v-btn> <v-btn @click="removeLine(index)" color="red">Eliminar</v-btn>
</v-col> </v-col>
</v-row> </v-row>
</v-container> </div>
<v-btn @click="addLine" color="blue">Agregar</v-btn> <v-btn @click="addLine" color="blue">Agregar</v-btn>
</v-container> </v-container>
<v-divider></v-divider> <v-divider></v-divider>
<v-text-field <v-text-field
:value="calculateTotal" :value="calculateTotal"
label="Total" label="Total"
@ -130,7 +137,7 @@
}, },
], ],
purchase: { purchase: {
date: this.getCurrentDate(), date: '',
client: null, client: null,
notes: '', notes: '',
saleline_set: [{product:'', unit_price: 0, quantity: 0}], saleline_set: [{product:'', unit_price: 0, quantity: 0}],
@ -163,14 +170,6 @@
}, },
}, },
methods: { methods: {
getCurrentDate() {
const today = new Date();
const yyyy = today.getFullYear();
const mm = String(today.getMonth() + 1).padStart(2, '0');
const dd = String(today.getDate()).padStart(2, '0');
return `${yyyy}-${mm}-${dd}`;
},
onProductChange(index) { onProductChange(index) {
const selectedProductId = this.purchase.saleline_set[index].product; const selectedProductId = this.purchase.saleline_set[index].product;
const selectedProduct = this.products.find(p => p.id == selectedProductId); const selectedProduct = this.products.find(p => p.id == selectedProductId);