presupuestos

This commit is contained in:
2021-05-23 11:29:02 -05:00
parent bb5b6fc86e
commit a505fe102e
6 changed files with 165 additions and 100 deletions

View File

@@ -67,11 +67,10 @@ import Card from '../Cards/Card.vue';
export default {
components: { Card },
name: "Fcompras",
props: ["categorias", "metodos_pago", "newCompra", "saveCompra","isUpdate","updateCompra","openForm"],
props: ["categorias", "metodos_pago", "newCompra", "saveCompra","isUpdate","updateCompra"],
data() {
return {
isOpen: this.openForm
isOpen: false
};
},
methods: {

View File

@@ -32,12 +32,13 @@
<script>
export default {
name: "Fpresupuesto",
props: ["newPresupuesto", "savePresupuesto"],
data() {
return {
isOpen: false,
};
},
props: ["newPresupuesto", "savePresupuesto","isOpen"],
// data() {
// return {
// isOpen: false,
// };
// },
methods: {
toggleDropDown() {
this.isOpen = !this.isOpen;

View File

@@ -14,7 +14,7 @@
)
"
border
empty-text="No hay compras realizadas"
empty-text="No hay compras registadas"
stripe
:summary-method="getSummaries"
show-summary
@@ -75,7 +75,7 @@
:saveCompra="saveCompra"
:updateCompra="updateCompra"
:isUpdate="isUpdate"
:openForm="openForm"
/>
</div>
</div>
@@ -105,7 +105,7 @@ export default {
metodos_pago: [],
categorias: [],
isUpdate: false,
openForm: false,
openForm: false ,
};
},
mounted() {
@@ -184,7 +184,8 @@ export default {
updateCompraClic(id) {
this.isUpdate = true;
this.newCompra = JSON.parse(JSON.stringify(this.compras[id]));
this.openForm = !this.openForm;
this.openForm = true;
console.log("SJS")
},
deleteCompra(id) {

View File

@@ -12,7 +12,7 @@
)
"
border
empty-text="No hay compras realizadas"
empty-text="No hay Ingresos registrados"
stripe
:summary-method="getSummaries"
show-summary

View File

@@ -30,6 +30,7 @@
<Fpresupuesto
:newPresupuesto="newPresupuesto"
:savePresupuesto="savePresupuesto"
:isOpen="isOpen"
/>
</div>
</div>
@@ -40,7 +41,7 @@
v-if="selectedPresupuesto.nombrePresupuesto !== ''"
>
<div class="row">
<div class="col-6">
<div class="col-8">
<el-table
:data="selectedPresupuesto.datos"
border
@@ -65,7 +66,7 @@
icon
size="sm"
class="btn-link"
@click="deleteIngreso(row._id)"
@click="deleteItem(row._id)"
>
<i class="el-icon-delete-solid"></i>
</base-button>
@@ -75,7 +76,7 @@
</el-table>
</div>
<div class="col-6">
<div class="col-4">
<base-input v-model="newItem.detalle" label="Descripción">
</base-input>
<base-input v-model="newItem.valor" type="Number"> </base-input>
@@ -127,6 +128,8 @@ export default {
middleware: "authenticated",
data() {
return {
isOpen: false,
newPresupuesto: {
nombrePresupuesto: "",
},
@@ -158,20 +161,28 @@ export default {
};
this.newPresupuesto.nombrePresupuesto = this.newPresupuesto.nombrePresupuesto.trim();
const toSend = this.newPresupuesto;
console.log(axiosHeader.data);
this.$axios
.post("/presupuesto", toSend, axiosHeader)
.then((res) => {
console.log(res.data.status);
this.$notify({
type: "success",
icon: "tim-icons icon-check-2",
message: "Presupuesto Creado",
});
this.isOpen = false;
this.getPresupuesto();
})
.catch((e) => console.log(e));
.catch((e) => {
this.$notify({
type: "danger",
icon: "tim-icons icon-alert-circle-exc",
message: "El presupuesto ya existe :(",
});
return;
});
},
addItem() {
//this.selectedPresupuesto.datos.push(JSON.parse(JSON.stringify(this.newItem)))
console.log(this.newItem._id);
var nameSelected = this.selectedPresupuestoName;
console.log(nameSelected);
const axiosHeader = {
headers: {
token: this.$store.state.auth.token,
@@ -182,18 +193,45 @@ export default {
.put("/presupuesto", toSend, axiosHeader)
.then((res) => {
console.log(res.data.status);
this.getPresupuesto();
this.selectedPresupuestoName = nameSelected;
console.log(this.selectedPresupuestoName);
this.selectedPresupuesto = this.presupuestos.find(
(x) => x.nombrePresupuesto === this.selectedPresupuestoName
);
this.newItem._id = this.selectedPresupuesto._id;
this.getItems();
})
.catch((e) => console.log(e));
this.sumItems();
},
deleteItem(item_id) {
const axiosHeader = {
headers: {
token: this.$store.state.auth.token,
},
params: {
idPresupuesto: this.selectedPresupuesto._id,
iditem: item_id,
},
};
this.$axios
.delete("/presupuestoitem", axiosHeader)
.then((res) => {
this.getItems();
})
.catch((e) => console.log(e));
},
getItems() {
const axiosHeader = {
headers: {
token: this.$store.state.auth.token,
},
params: {
presupuesto_id: this.selectedPresupuesto._id,
},
};
this.$axios
.get("/presupuesto_items", axiosHeader)
.then((res) => {
this.selectedPresupuesto.datos = res.data.data;
this.sumItems();
})
.catch((e) => console.log(e));
},
sumItems() {
this.totalIngresos = this.selectedPresupuesto.datos.reduce(
(acc, x) => (x.tipo === "Ingreso" ? acc + Number(x.valor) : acc),
@@ -226,11 +264,10 @@ export default {
},
};
this.$axios
.get("/presupuesto", axiosHeader)
.then((res) => {
this.presupuestos=[]
this.presupuestos = [];
if (res.data.data.length) {
this.presupuestos = res.data.data;
this.selectedPresupuesto = this.presupuestos[0];
@@ -263,22 +300,19 @@ export default {
.delete("/presupuesto", axiosHeader)
.then((res) => {
console.log(res.data);
this.selectedPresupuesto = {
_id: "",
nombrePresupuesto: "",
datos: [],
}
this.selectedPresupuestoName=""
this.getPresupuesto();
};
this.selectedPresupuestoName = "";
this.getPresupuesto();
})
.catch((e) => console.log(e));
},
},
mounted() {
// this.newPresupuesto.fecha = this.$store.state.fecha;
this.getPresupuesto();
},
};