Compare commits
7 Commits
0.1.2
...
a4dd8f98d8
| Author | SHA1 | Date | |
|---|---|---|---|
| a4dd8f98d8 | |||
| ed482542a4 | |||
| 8652e4778f | |||
| 187f2fde9f | |||
| 49e8de8c0c | |||
| f8a52fc3ec | |||
| db8ec154ae |
@@ -10,7 +10,8 @@
|
||||
</v-form>
|
||||
</v-card-text>
|
||||
<v-card-actions>
|
||||
<v-btn type="submit" form="code-form">Aceptar</v-btn>
|
||||
<v-btn type="submit" form="code-form" color="green">Aceptar</v-btn>
|
||||
<v-btn :to="{ path: '/' }" color="red">Cancelar</v-btn>
|
||||
</v-card-actions>
|
||||
</v-card>
|
||||
</v-dialog>
|
||||
|
||||
39
src/components/ExportPurchasesForTryton.vue
Normal file
39
src/components/ExportPurchasesForTryton.vue
Normal file
@@ -0,0 +1,39 @@
|
||||
<template>
|
||||
<div>
|
||||
<v-btn @click="downloadCSV">Descargar CSV</v-btn>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { inject } from 'vue';
|
||||
|
||||
export default {
|
||||
name: 'ExportPurchasesForTryton',
|
||||
data() {
|
||||
return {
|
||||
api: inject('api'),
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
downloadCSV() {
|
||||
this.api.getCSVForTryton()
|
||||
.then(data => {
|
||||
const blob = new Blob([data['csv']], {type: 'text/csv'});
|
||||
const pattern = /[/: ]/g;
|
||||
const datetime = new Date();
|
||||
const date = datetime.toLocaleDateString().replace(pattern, '-');
|
||||
const time = datetime.toLocaleTimeString().replace(pattern, '-');
|
||||
const name = `VentasTryton_${date}_${time}.csv`;
|
||||
const link = document.createElement('a');
|
||||
|
||||
link.href = URL.createObjectURL(blob);
|
||||
link.download = name;
|
||||
link.click();
|
||||
URL.revokeObjectURL(link.href);
|
||||
})
|
||||
.catch(error => {
|
||||
console.error(error);
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -31,6 +31,7 @@
|
||||
{ title: 'Comprar', route:'/comprar'},
|
||||
{ title: 'Cuadrar tarro', route: '/cuadrar_tarro'},
|
||||
{ title: 'Cuadres de tarro', route: '/cuadres_de_tarro'},
|
||||
{ title: 'CSV Tryton', route: '/ventas_para_tryton'},
|
||||
],
|
||||
}),
|
||||
watch: {
|
||||
|
||||
@@ -39,8 +39,26 @@
|
||||
{{ currencyFormat(calculateSubtotal(item.unit_price, item.quantity)) }}
|
||||
</template>
|
||||
</v-data-table-virtual>
|
||||
<v-alert type="info" class="my-4">
|
||||
Recuerda adicionar a la planilla física lo siguiente
|
||||
<v-data-table
|
||||
:headers="headersTemplate"
|
||||
:items="[purchase]"
|
||||
item-key="id"
|
||||
hide-default-footer
|
||||
>
|
||||
<template v-slot:item="{ item }">
|
||||
<tr>
|
||||
<td>{{ item.id }}</td>
|
||||
<td>{{ item.date }}</td>
|
||||
<td><span v-if="item.customer">{{ item.customer.name }}</span></td>
|
||||
<td><span v-if="item.lines">{{ currencyFormat(calculateTotal(item.lines)) }}</span></td>
|
||||
</tr>
|
||||
</template>
|
||||
</v-data-table>
|
||||
</v-alert>
|
||||
<div class="text-center">
|
||||
<v-btn :to="{ path: 'comprar' }" color="green">Ir a Comprar</v-btn>
|
||||
<v-btn :to="{ path: '/' }" color="green">Ir al inicio</v-btn>
|
||||
</div>
|
||||
</v-container>
|
||||
</v-container>
|
||||
@@ -65,6 +83,12 @@
|
||||
{ title: 'Cantidad', value: 'quantity' },
|
||||
{ title: 'Subtotal', value: 'subtotal' },
|
||||
],
|
||||
headersTemplate: [
|
||||
{title: 'Compra', value: 'id'},
|
||||
{title: 'Fecha', value: 'date'},
|
||||
{title: 'Nombre', value: 'customer.name'},
|
||||
{title: 'Valor', value: ''},
|
||||
],
|
||||
};
|
||||
},
|
||||
created() {
|
||||
|
||||
19
src/pages/ventas_para_tryton.vue
Normal file
19
src/pages/ventas_para_tryton.vue
Normal file
@@ -0,0 +1,19 @@
|
||||
<template>
|
||||
<div>
|
||||
<CodeDialog @code-verified="(verified) => showComponent = verified"/>
|
||||
</div>
|
||||
<ExportPurchasesForTryton v-if="showComponent" />
|
||||
</template>
|
||||
<script>
|
||||
import CodeDialog from '../components/CodeDialog.vue'
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
showComponent: false,
|
||||
}
|
||||
},
|
||||
components: { CodeDialog },
|
||||
methods: {},
|
||||
}
|
||||
</script>
|
||||
@@ -46,6 +46,10 @@ class Api {
|
||||
createCustomer(customer) {
|
||||
return this.apiImplementation.createCustomer(customer);
|
||||
}
|
||||
|
||||
getCSVForTryton() {
|
||||
return this.apiImplementation.getCSVForTryton();
|
||||
}
|
||||
}
|
||||
|
||||
export default Api;
|
||||
|
||||
@@ -58,6 +58,11 @@ class DjangoApi {
|
||||
return this.postRequest(url, customer);
|
||||
}
|
||||
|
||||
getCSVForTryton() {
|
||||
const url = this.base + '/don_confiao/api/sales/for_tryton';
|
||||
return this.getRequest(url);
|
||||
}
|
||||
|
||||
getRequest(url) {
|
||||
return new Promise ((resolve, reject) => {
|
||||
fetch(url)
|
||||
|
||||
Reference in New Issue
Block a user