Merge branch 'main' into BarraDeNavegacion

This commit is contained in:
Rodia 2024-10-05 12:34:32 -05:00
commit 7a89eee9fb
7 changed files with 93 additions and 89 deletions

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 55 KiB

View File

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 46 KiB

View File

@ -1,5 +1,5 @@
<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-toolbar-title>Menu</v-toolbar-title>
<v-spacer></v-spacer>
@ -22,6 +22,7 @@
<script>
export default {
name: 'NavBar',
data: () => ({
drawer: false,
group: null,

View File

@ -1,101 +1,94 @@
<template>
<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-container>
<v-form ref="form" v-model="valid">
<v-text-field
v-model="purchase.date"
label="Fecha"
type="date"
:rules="[rules.required]"
required
></v-text-field>
<v-select
v-model="purchase.customer"
:items="clients"
item-title="name"
item-value="id"
label="Cliente"
:rules="[rules.required]"
required
></v-select>
<v-row>
<v-col>
<v-select
v-model="purchase.customer"
:items="clients"
item-title="name"
item-value="id"
label="Cliente"
:rules="[rules.required]"
required
class="mr-4"
></v-select>
</v-col>
<v-col
lg="2"
>
<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-model="purchase.notes"
label="Notas"
rows="2"
></v-textarea>
<v-divider></v-divider>
<v-container>
<v-toolbar>
<v-toolbar-title secondary>Productos</v-toolbar-title>
</v-toolbar>
<div v-for="(line, index) in purchase.saleline_set" :key="line.id">
<v-row>
<v-col>
<v-select
v-model="line.product"
:items="products"
@update:modelValue="onProductChange(index)"
item-title="name"
item-value="id"
label="Producto"
:rules="[rules.required]"
required
></v-select>
</v-col>
<v-col>
<v-text-field
v-model.number="line.unit_price"
label="Precio"
type="number"
:rules="[rules.required]"
prefix="$"
required
readonly
></v-text-field>
</v-col>
<v-col>
<v-text-field
v-model.number="line.quantity"
label="Cantidad"
type="number"
:rules="[rules.required]"
required
></v-text-field>
</v-col>
<v-col>
<v-text-field
type="number"
:value="calculateSubtotal(line)"
label="Subtotal"
prefix="$"
readonly
disable
></v-text-field>
</v-col>
<v-col>
<v-btn @click="removeLine(index)" color="red">Eliminar</v-btn>
</v-col>
</v-row>
</div>
<v-btn @click="addLine" color="blue">Agregar</v-btn>
<v-container v-for="(line, index) in purchase.saleline_set" :key="line.id">
<v-row>
<v-col>
<v-select
v-model="line.product"
:items="products"
@update:modelValue="onProductChange(index)"
item-title="name"
item-value="id"
label="Producto"
:rules="[rules.required]"
required
></v-select>
</v-col>
<v-col>
<v-text-field
v-model.number="line.unit_price"
label="Precio"
type="number"
:rules="[rules.required]"
prefix="$"
required
readonly
></v-text-field>
</v-col>
<v-col>
<v-text-field
v-model.number="line.quantity"
label="Cantidad"
type="number"
:rules="[rules.required]"
required
></v-text-field>
</v-col>
<v-col>
<v-text-field
type="number"
:value="calculateSubtotal(line)"
label="Subtotal"
prefix="$"
readonly
disable
></v-text-field>
</v-col>
<v-col>
<v-btn @click="removeLine(index)" color="red">Eliminar</v-btn>
</v-col>
</v-row>
</v-container>
<v-btn @click="addLine" color="blue">Agregar</v-btn>
</v-container>
<v-divider></v-divider>
<v-text-field
:value="calculateTotal"
label="Total"
@ -137,7 +130,7 @@
},
],
purchase: {
date: '',
date: this.getCurrentDate(),
client: null,
notes: '',
saleline_set: [{product:'', unit_price: 0, quantity: 0}],
@ -170,6 +163,14 @@
},
},
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) {
const selectedProductId = this.purchase.saleline_set[index].product;
const selectedProduct = this.products.find(p => p.id == selectedProductId);