presupuestos
This commit is contained in:
@@ -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: {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
)
|
||||
"
|
||||
border
|
||||
empty-text="No hay compras realizadas"
|
||||
empty-text="No hay Ingresos registrados"
|
||||
stripe
|
||||
:summary-method="getSummaries"
|
||||
show-summary
|
||||
|
||||
@@ -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();
|
||||
},
|
||||
};
|
||||
|
||||
@@ -3,76 +3,106 @@ const presupuesto = require("../models/presupuestoMes").Presupuesto;
|
||||
const itemPresupuesto = require("../models/presupuestoMes").itemPresupuesto;
|
||||
const { checkAuth } = require("../middlewares/authentication");
|
||||
|
||||
|
||||
router.get("/presupuesto", checkAuth, async (req, res) => {
|
||||
var presupuestos;
|
||||
presupuestos = await presupuesto.find({ user: req.userData._id }).sort({
|
||||
date: "desc",
|
||||
});
|
||||
|
||||
return res.send(
|
||||
{
|
||||
status:"ok",
|
||||
data:presupuestos
|
||||
}
|
||||
)
|
||||
var presupuestos;
|
||||
presupuestos = await presupuesto.find({ user: req.userData._id }).sort({
|
||||
date: "desc",
|
||||
});
|
||||
|
||||
router.post("/presupuesto", checkAuth, async (req, res) => {
|
||||
const {nombrePresupuesto} = req.body;
|
||||
return res.send({
|
||||
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({
|
||||
nombrePresupuesto:nombrePresupuesto
|
||||
nombrePresupuesto: nombrePresupuesto,
|
||||
});
|
||||
|
||||
console.log(Presupuesto)
|
||||
console.log(Presupuesto);
|
||||
Presupuesto.user = req.userData._id;
|
||||
await Presupuesto.save();
|
||||
|
||||
res.json({
|
||||
status:"OK"
|
||||
})
|
||||
|
||||
|
||||
return res.json({
|
||||
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) => {
|
||||
const { _id, detalle, valor, tipo } = req.body;
|
||||
console.log(_id)
|
||||
const presupuesto_edit = await presupuesto.findOne({ _id: _id });
|
||||
const itemP = new itemPresupuesto({detalle,valor,tipo});
|
||||
presupuesto_edit.datos.push(itemP);
|
||||
router.delete("/presupuestoitem", checkAuth, async (req, res) => {
|
||||
try {
|
||||
const userId = req.userData._id;
|
||||
|
||||
const iditem = req.query.iditem;
|
||||
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.updateOne({ fecha, detalle, valor});
|
||||
return res.json({ status: "ok" });
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
return res.status(500).json({ status: "fail", error: error });
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
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;
|
||||
module.exports = router;
|
||||
|
||||
Reference in New Issue
Block a user