Compare commits
No commits in common. "7a89eee9fb0780207654bad701b148531fadc7f4" and "80ef5c4d9dbb59819f0f3cb5844594c544496958" have entirely different histories.
7a89eee9fb
...
80ef5c4d9d
@ -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 |
@ -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 |
@ -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,
|
||||||
|
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user