presupuestos
This commit is contained in:
@@ -67,11 +67,10 @@ import Card from '../Cards/Card.vue';
|
|||||||
export default {
|
export default {
|
||||||
components: { Card },
|
components: { Card },
|
||||||
name: "Fcompras",
|
name: "Fcompras",
|
||||||
props: ["categorias", "metodos_pago", "newCompra", "saveCompra","isUpdate","updateCompra","openForm"],
|
props: ["categorias", "metodos_pago", "newCompra", "saveCompra","isUpdate","updateCompra"],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
isOpen: this.openForm
|
isOpen: false
|
||||||
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|||||||
@@ -32,12 +32,13 @@
|
|||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
name: "Fpresupuesto",
|
name: "Fpresupuesto",
|
||||||
props: ["newPresupuesto", "savePresupuesto"],
|
props: ["newPresupuesto", "savePresupuesto","isOpen"],
|
||||||
data() {
|
// data() {
|
||||||
return {
|
|
||||||
isOpen: false,
|
// return {
|
||||||
};
|
// isOpen: false,
|
||||||
},
|
// };
|
||||||
|
// },
|
||||||
methods: {
|
methods: {
|
||||||
toggleDropDown() {
|
toggleDropDown() {
|
||||||
this.isOpen = !this.isOpen;
|
this.isOpen = !this.isOpen;
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
)
|
)
|
||||||
"
|
"
|
||||||
border
|
border
|
||||||
empty-text="No hay compras realizadas"
|
empty-text="No hay compras registadas"
|
||||||
stripe
|
stripe
|
||||||
:summary-method="getSummaries"
|
:summary-method="getSummaries"
|
||||||
show-summary
|
show-summary
|
||||||
@@ -75,7 +75,7 @@
|
|||||||
:saveCompra="saveCompra"
|
:saveCompra="saveCompra"
|
||||||
:updateCompra="updateCompra"
|
:updateCompra="updateCompra"
|
||||||
:isUpdate="isUpdate"
|
:isUpdate="isUpdate"
|
||||||
:openForm="openForm"
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -105,7 +105,7 @@ export default {
|
|||||||
metodos_pago: [],
|
metodos_pago: [],
|
||||||
categorias: [],
|
categorias: [],
|
||||||
isUpdate: false,
|
isUpdate: false,
|
||||||
openForm: false,
|
openForm: false ,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
@@ -184,7 +184,8 @@ export default {
|
|||||||
updateCompraClic(id) {
|
updateCompraClic(id) {
|
||||||
this.isUpdate = true;
|
this.isUpdate = true;
|
||||||
this.newCompra = JSON.parse(JSON.stringify(this.compras[id]));
|
this.newCompra = JSON.parse(JSON.stringify(this.compras[id]));
|
||||||
this.openForm = !this.openForm;
|
this.openForm = true;
|
||||||
|
console.log("SJS")
|
||||||
},
|
},
|
||||||
|
|
||||||
deleteCompra(id) {
|
deleteCompra(id) {
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
)
|
)
|
||||||
"
|
"
|
||||||
border
|
border
|
||||||
empty-text="No hay compras realizadas"
|
empty-text="No hay Ingresos registrados"
|
||||||
stripe
|
stripe
|
||||||
:summary-method="getSummaries"
|
:summary-method="getSummaries"
|
||||||
show-summary
|
show-summary
|
||||||
|
|||||||
@@ -30,6 +30,7 @@
|
|||||||
<Fpresupuesto
|
<Fpresupuesto
|
||||||
:newPresupuesto="newPresupuesto"
|
:newPresupuesto="newPresupuesto"
|
||||||
:savePresupuesto="savePresupuesto"
|
:savePresupuesto="savePresupuesto"
|
||||||
|
:isOpen="isOpen"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -40,7 +41,7 @@
|
|||||||
v-if="selectedPresupuesto.nombrePresupuesto !== ''"
|
v-if="selectedPresupuesto.nombrePresupuesto !== ''"
|
||||||
>
|
>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-6">
|
<div class="col-8">
|
||||||
<el-table
|
<el-table
|
||||||
:data="selectedPresupuesto.datos"
|
:data="selectedPresupuesto.datos"
|
||||||
border
|
border
|
||||||
@@ -65,7 +66,7 @@
|
|||||||
icon
|
icon
|
||||||
size="sm"
|
size="sm"
|
||||||
class="btn-link"
|
class="btn-link"
|
||||||
@click="deleteIngreso(row._id)"
|
@click="deleteItem(row._id)"
|
||||||
>
|
>
|
||||||
<i class="el-icon-delete-solid"></i>
|
<i class="el-icon-delete-solid"></i>
|
||||||
</base-button>
|
</base-button>
|
||||||
@@ -75,7 +76,7 @@
|
|||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-6">
|
<div class="col-4">
|
||||||
<base-input v-model="newItem.detalle" label="Descripción">
|
<base-input v-model="newItem.detalle" label="Descripción">
|
||||||
</base-input>
|
</base-input>
|
||||||
<base-input v-model="newItem.valor" type="Number"> </base-input>
|
<base-input v-model="newItem.valor" type="Number"> </base-input>
|
||||||
@@ -127,6 +128,8 @@ export default {
|
|||||||
middleware: "authenticated",
|
middleware: "authenticated",
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
isOpen: false,
|
||||||
|
|
||||||
newPresupuesto: {
|
newPresupuesto: {
|
||||||
nombrePresupuesto: "",
|
nombrePresupuesto: "",
|
||||||
},
|
},
|
||||||
@@ -158,20 +161,28 @@ export default {
|
|||||||
};
|
};
|
||||||
this.newPresupuesto.nombrePresupuesto = this.newPresupuesto.nombrePresupuesto.trim();
|
this.newPresupuesto.nombrePresupuesto = this.newPresupuesto.nombrePresupuesto.trim();
|
||||||
const toSend = this.newPresupuesto;
|
const toSend = this.newPresupuesto;
|
||||||
console.log(axiosHeader.data);
|
|
||||||
this.$axios
|
this.$axios
|
||||||
.post("/presupuesto", toSend, axiosHeader)
|
.post("/presupuesto", toSend, axiosHeader)
|
||||||
.then((res) => {
|
.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();
|
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() {
|
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 = {
|
const axiosHeader = {
|
||||||
headers: {
|
headers: {
|
||||||
token: this.$store.state.auth.token,
|
token: this.$store.state.auth.token,
|
||||||
@@ -182,18 +193,45 @@ export default {
|
|||||||
.put("/presupuesto", toSend, axiosHeader)
|
.put("/presupuesto", toSend, axiosHeader)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
console.log(res.data.status);
|
console.log(res.data.status);
|
||||||
this.getPresupuesto();
|
this.getItems();
|
||||||
this.selectedPresupuestoName = nameSelected;
|
|
||||||
console.log(this.selectedPresupuestoName);
|
|
||||||
this.selectedPresupuesto = this.presupuestos.find(
|
|
||||||
(x) => x.nombrePresupuesto === this.selectedPresupuestoName
|
|
||||||
);
|
|
||||||
this.newItem._id = this.selectedPresupuesto._id;
|
|
||||||
})
|
})
|
||||||
.catch((e) => console.log(e));
|
.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() {
|
sumItems() {
|
||||||
this.totalIngresos = this.selectedPresupuesto.datos.reduce(
|
this.totalIngresos = this.selectedPresupuesto.datos.reduce(
|
||||||
(acc, x) => (x.tipo === "Ingreso" ? acc + Number(x.valor) : acc),
|
(acc, x) => (x.tipo === "Ingreso" ? acc + Number(x.valor) : acc),
|
||||||
@@ -226,11 +264,10 @@ export default {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
this.$axios
|
this.$axios
|
||||||
.get("/presupuesto", axiosHeader)
|
.get("/presupuesto", axiosHeader)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
this.presupuestos=[]
|
this.presupuestos = [];
|
||||||
if (res.data.data.length) {
|
if (res.data.data.length) {
|
||||||
this.presupuestos = res.data.data;
|
this.presupuestos = res.data.data;
|
||||||
this.selectedPresupuesto = this.presupuestos[0];
|
this.selectedPresupuesto = this.presupuestos[0];
|
||||||
@@ -263,22 +300,19 @@ export default {
|
|||||||
.delete("/presupuesto", axiosHeader)
|
.delete("/presupuesto", axiosHeader)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
console.log(res.data);
|
console.log(res.data);
|
||||||
|
|
||||||
this.selectedPresupuesto = {
|
this.selectedPresupuesto = {
|
||||||
_id: "",
|
_id: "",
|
||||||
nombrePresupuesto: "",
|
nombrePresupuesto: "",
|
||||||
datos: [],
|
datos: [],
|
||||||
}
|
};
|
||||||
this.selectedPresupuestoName=""
|
this.selectedPresupuestoName = "";
|
||||||
this.getPresupuesto();
|
this.getPresupuesto();
|
||||||
|
|
||||||
})
|
})
|
||||||
.catch((e) => console.log(e));
|
.catch((e) => console.log(e));
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
// this.newPresupuesto.fecha = this.$store.state.fecha;
|
|
||||||
|
|
||||||
this.getPresupuesto();
|
this.getPresupuesto();
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -3,76 +3,106 @@ const presupuesto = require("../models/presupuestoMes").Presupuesto;
|
|||||||
const itemPresupuesto = require("../models/presupuestoMes").itemPresupuesto;
|
const itemPresupuesto = require("../models/presupuestoMes").itemPresupuesto;
|
||||||
const { checkAuth } = require("../middlewares/authentication");
|
const { checkAuth } = require("../middlewares/authentication");
|
||||||
|
|
||||||
|
|
||||||
router.get("/presupuesto", checkAuth, async (req, res) => {
|
router.get("/presupuesto", checkAuth, async (req, res) => {
|
||||||
var presupuestos;
|
var presupuestos;
|
||||||
presupuestos = await presupuesto.find({ user: req.userData._id }).sort({
|
presupuestos = await presupuesto.find({ user: req.userData._id }).sort({
|
||||||
date: "desc",
|
date: "desc",
|
||||||
});
|
|
||||||
|
|
||||||
return res.send(
|
|
||||||
{
|
|
||||||
status:"ok",
|
|
||||||
data:presupuestos
|
|
||||||
}
|
|
||||||
)
|
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post("/presupuesto", checkAuth, async (req, res) => {
|
return res.send({
|
||||||
const {nombrePresupuesto} = req.body;
|
status: "ok",
|
||||||
|
data: presupuestos,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
router.post("/presupuesto", checkAuth, async (req, res) => {
|
||||||
|
const { nombrePresupuesto } = req.body;
|
||||||
|
|
||||||
|
var presupuestos = await presupuesto.find({
|
||||||
|
user: req.userData._id,
|
||||||
|
nombrePresupuesto: nombrePresupuesto,
|
||||||
|
});
|
||||||
|
|
||||||
|
if (presupuestos.length == 0) {
|
||||||
const Presupuesto = new presupuesto({
|
const Presupuesto = new presupuesto({
|
||||||
nombrePresupuesto:nombrePresupuesto
|
nombrePresupuesto: nombrePresupuesto,
|
||||||
});
|
});
|
||||||
|
|
||||||
console.log(Presupuesto)
|
console.log(Presupuesto);
|
||||||
Presupuesto.user = req.userData._id;
|
Presupuesto.user = req.userData._id;
|
||||||
await Presupuesto.save();
|
await Presupuesto.save();
|
||||||
|
|
||||||
res.json({
|
return res.json({
|
||||||
status:"OK"
|
status: "OK",
|
||||||
})
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return res.status(500).json({
|
||||||
|
status: "FAIL",
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
router.delete("/presupuesto", checkAuth, async (req, res) => {
|
||||||
|
try {
|
||||||
|
const userId = req.userData._id;
|
||||||
|
const id = req.query.id;
|
||||||
|
|
||||||
|
const resultado = await presupuesto.deleteOne({ user: userId, _id: id });
|
||||||
|
|
||||||
|
return res.json({ status: "ok", data: resultado });
|
||||||
|
} catch (error) {
|
||||||
|
console.log(error);
|
||||||
|
return res.status(500).json({ status: "fail", error: error });
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
router.put("/presupuesto", checkAuth, async (req, res) => {
|
||||||
|
const { _id, detalle, valor, tipo } = req.body;
|
||||||
|
const presupuesto_edit = await presupuesto.findOne({
|
||||||
|
_id: _id,
|
||||||
|
user: req.userData._id,
|
||||||
|
});
|
||||||
|
const itemP = new itemPresupuesto({ detalle, valor, tipo });
|
||||||
|
presupuesto_edit.datos.push(itemP);
|
||||||
|
await presupuesto_edit.save();
|
||||||
|
|
||||||
|
res.json({
|
||||||
|
status: "OK",
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
router.get("/presupuesto_items", checkAuth, async (req, res) => {
|
||||||
|
const _id = req.query.presupuesto_id;
|
||||||
|
const presupuesto_edit = await presupuesto.findOne({
|
||||||
|
_id: _id,
|
||||||
|
user: req.userData._id,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
return res.json({
|
||||||
|
status: "OK",
|
||||||
|
data: presupuesto_edit.datos,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
router.put("/presupuesto", checkAuth, async (req, res) => {
|
router.delete("/presupuestoitem", checkAuth, async (req, res) => {
|
||||||
const { _id, detalle, valor, tipo } = req.body;
|
try {
|
||||||
console.log(_id)
|
const userId = req.userData._id;
|
||||||
const presupuesto_edit = await presupuesto.findOne({ _id: _id });
|
|
||||||
const itemP = new itemPresupuesto({detalle,valor,tipo});
|
const iditem = req.query.iditem;
|
||||||
presupuesto_edit.datos.push(itemP);
|
const idPresupuesto = req.query.idPresupuesto;
|
||||||
|
|
||||||
|
var presupuesto_edit = await presupuesto.findOne({
|
||||||
|
user: userId,
|
||||||
|
_id: idPresupuesto,
|
||||||
|
});
|
||||||
|
presupuesto_edit.datos.id(iditem).remove();
|
||||||
await presupuesto_edit.save();
|
await presupuesto_edit.save();
|
||||||
|
|
||||||
//await presupuesto_edit.updateOne({ fecha, detalle, valor});
|
return res.json({ status: "ok" });
|
||||||
|
} catch (error) {
|
||||||
|
console.log(error);
|
||||||
|
return res.status(500).json({ status: "fail", error: error });
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
module.exports = router;
|
||||||
|
|
||||||
res.json({
|
|
||||||
status:"OK"
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
router.delete("/presupuesto", checkAuth, async (req, res) => {
|
|
||||||
|
|
||||||
try{
|
|
||||||
const userId = req.userData._id;
|
|
||||||
const id = req.query.id;
|
|
||||||
|
|
||||||
const resultado = await presupuesto.deleteOne({user:userId,_id:id});
|
|
||||||
|
|
||||||
return res.json({status:"ok",data: resultado})
|
|
||||||
|
|
||||||
}
|
|
||||||
catch(error){
|
|
||||||
console.log(error);
|
|
||||||
return res.status(500).json({status:"fail",error:error})
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
module.exports = router;
|
|
||||||
|
|||||||
Reference in New Issue
Block a user