Actualización CRUD asignación de vehículo
This commit is contained in:
@ -7,7 +7,7 @@ import authRouter from "./modules/auth/auth.routes";
|
|||||||
import fuelRoutes from "./modules/fuel-types/fuelType.routes";
|
import fuelRoutes from "./modules/fuel-types/fuelType.routes";
|
||||||
import fuelPriceRoute from "./modules/fuel_prices/fuelPrices.routes";
|
import fuelPriceRoute from "./modules/fuel_prices/fuelPrices.routes";
|
||||||
import fuelPumpRouter from "./modules/fuel_pumps/fuelPump.routes";
|
import fuelPumpRouter from "./modules/fuel_pumps/fuelPump.routes";
|
||||||
import vehicleConfigRouter from "./modules/vehicles-config/vehiclesConfigs.routes";
|
import vehicleConfigRouter from "./modules/vehicles-config/vehiclesConfig.routes";
|
||||||
import vAssigRouter from "./modules/vehicle-assignments/vehicleassig.routes";
|
import vAssigRouter from "./modules/vehicle-assignments/vehicleassig.routes";
|
||||||
import fuelRequestRouter from "./modules/fuel-requests/fuelRequest.routes";
|
import fuelRequestRouter from "./modules/fuel-requests/fuelRequest.routes";
|
||||||
import approvalrouter from "./modules/approvals/approval.routes";
|
import approvalrouter from "./modules/approvals/approval.routes";
|
||||||
|
|||||||
@ -1,5 +1,4 @@
|
|||||||
import {Request, Response } from "express";
|
import {Request, Response } from "express";
|
||||||
|
|
||||||
import { VehicleAssigService } from "./vehicleassig.service";
|
import { VehicleAssigService } from "./vehicleassig.service";
|
||||||
|
|
||||||
const vehicleAssigService = new VehicleAssigService();
|
const vehicleAssigService = new VehicleAssigService();
|
||||||
@ -10,10 +9,18 @@ export class VehicleAssigController {
|
|||||||
req:Request,
|
req:Request,
|
||||||
res:Response
|
res:Response
|
||||||
){
|
){
|
||||||
|
|
||||||
|
try{
|
||||||
|
const vAssigs = await vehicleAssigService.getAll();
|
||||||
|
|
||||||
const vAssigs = await vehicleAssigService.getAll();
|
res.json(vAssigs);
|
||||||
|
|
||||||
res.json(vAssigs);
|
}catch(error){
|
||||||
|
res.status(500).json({
|
||||||
|
message:"Error al obtener asiganación de vehículo",
|
||||||
|
error
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async getById(
|
async getById(
|
||||||
@ -21,46 +28,96 @@ export class VehicleAssigController {
|
|||||||
res:Response
|
res:Response
|
||||||
){
|
){
|
||||||
|
|
||||||
const vAssig = await vehicleAssigService.getById(
|
try{
|
||||||
req.params.id as string
|
const vAssig = await vehicleAssigService.getById(
|
||||||
);
|
req.params.id as string
|
||||||
|
);
|
||||||
|
|
||||||
|
if(!vAssig){
|
||||||
|
return res.status(404).json({
|
||||||
|
message:"Asignación de vehículo no encontrada"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
res.json(vAssig);
|
||||||
|
|
||||||
|
} catch(error){
|
||||||
|
res.status(500).json({
|
||||||
|
message:"Error al obtener asignación de vehículo",
|
||||||
|
error
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
res.json(vAssig);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async create(
|
async create(
|
||||||
req:Request,
|
req:Request,
|
||||||
res:Response
|
res:Response
|
||||||
){
|
){
|
||||||
const vAssig = await vehicleAssigService.create(
|
try{
|
||||||
req.body
|
const vAssig = await vehicleAssigService.create(
|
||||||
);
|
req.body
|
||||||
|
);
|
||||||
|
|
||||||
|
res.status(201).json(vAssig);
|
||||||
|
|
||||||
|
}catch(error){
|
||||||
|
res.status(500).json({
|
||||||
|
message:"Error al crear asignación de vehículo",
|
||||||
|
error
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
res.status(201).json(vAssig);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async update(
|
async update(
|
||||||
req:Request,
|
req:Request,
|
||||||
res:Response
|
res:Response
|
||||||
){
|
){
|
||||||
const vAssig = await vehicleAssigService.update(
|
try{
|
||||||
req.params.id as string,
|
const vAssig = await vehicleAssigService.update(
|
||||||
req.body
|
req.params.id as string,
|
||||||
);
|
req.body
|
||||||
|
);
|
||||||
|
if (!vAssig){
|
||||||
|
return res.status(404).json({
|
||||||
|
message:"Asignación de vehículo no encontrada"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
res.json(vAssig);
|
res.status(200).json(vAssig);
|
||||||
|
}catch(error){
|
||||||
|
res.status(500).json({
|
||||||
|
message:"Error al actualizar asignación de vehículo",
|
||||||
|
error
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async delete (
|
async delete (
|
||||||
req:Request,
|
req:Request,
|
||||||
res:Response
|
res:Response
|
||||||
){
|
){
|
||||||
const vAssig = await vehicleAssigService.delete(
|
try{
|
||||||
req.params.id as string
|
const vAssig = await vehicleAssigService.delete(
|
||||||
)
|
req.params.id as string
|
||||||
|
);
|
||||||
|
|
||||||
res.json({
|
if(!vAssig){
|
||||||
message:"Assignación eliminada"
|
return res.status(404).json({
|
||||||
});
|
message:"Asignación de vehículo no encontrada"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
res.json({
|
||||||
|
message:"Asignación eliminada correctamente"
|
||||||
|
});
|
||||||
|
|
||||||
|
} catch(error){
|
||||||
|
res.status(500).json({
|
||||||
|
message:"Error al eliminar asignación de vehículo",
|
||||||
|
error
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,11 +1,16 @@
|
|||||||
import { ObjectId } from "mongoose";
|
import { Types } from "mongoose";
|
||||||
|
|
||||||
export interface IVehicleAssig {
|
export interface IVehicleAssig {
|
||||||
|
|
||||||
vehicleNumber:number;
|
vehicleNumber:number;
|
||||||
exployeeId:number;
|
|
||||||
assigmentDate:Date;
|
employeeId:number;
|
||||||
unassigmentDate:Date;
|
|
||||||
|
assignmentDate:Date;
|
||||||
|
|
||||||
|
unassignmentDate:Date;
|
||||||
|
|
||||||
active:boolean
|
active:boolean
|
||||||
createdBy:ObjectId;
|
|
||||||
|
createdBy:Types.ObjectId;
|
||||||
}
|
}
|
||||||
@ -1,4 +1,4 @@
|
|||||||
import mongoose, { mongo } from "mongoose";
|
import mongoose from "mongoose";
|
||||||
|
|
||||||
const vehicleAssigSchema = new mongoose.Schema({
|
const vehicleAssigSchema = new mongoose.Schema({
|
||||||
|
|
||||||
@ -7,17 +7,17 @@ const vehicleAssigSchema = new mongoose.Schema({
|
|||||||
required:true
|
required:true
|
||||||
},
|
},
|
||||||
|
|
||||||
exployeeId:{
|
employeeId:{
|
||||||
type:Number,
|
type:Number,
|
||||||
required:true
|
required:true
|
||||||
},
|
},
|
||||||
|
|
||||||
assigmentDate:{
|
assignmentDate:{
|
||||||
type:Date,
|
type:Date,
|
||||||
required:true
|
required:true
|
||||||
},
|
},
|
||||||
|
|
||||||
unassigmentDate:{
|
unassignmentDate:{
|
||||||
type:Date
|
type:Date
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -38,4 +38,4 @@ const vehicleAssigSchema = new mongoose.Schema({
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
export default mongoose.model("VehicleAssig", vehicleAssigSchema)
|
export default mongoose.model("VehicleAssig", vehicleAssigSchema);
|
||||||
@ -7,12 +7,12 @@ const controller = new VehicleAssigController();
|
|||||||
|
|
||||||
vAssigRouter.get("/", authMiddleware, controller.getAll)
|
vAssigRouter.get("/", authMiddleware, controller.getAll)
|
||||||
|
|
||||||
vAssigRouter.get("/id", authMiddleware, controller.getById);
|
vAssigRouter.get("/:id", authMiddleware, controller.getById);
|
||||||
|
|
||||||
vAssigRouter.post("/", authMiddleware, controller.create);
|
vAssigRouter.post("/", authMiddleware, controller.create);
|
||||||
|
|
||||||
vAssigRouter.put("/id", authMiddleware, controller.update);
|
vAssigRouter.put("/:id", authMiddleware, controller.update);
|
||||||
|
|
||||||
vAssigRouter.delete("/id", authMiddleware, controller.delete);
|
vAssigRouter.delete("/:id", authMiddleware, controller.delete);
|
||||||
|
|
||||||
export default vAssigRouter;
|
export default vAssigRouter;
|
||||||
|
|||||||
@ -1,9 +1,12 @@
|
|||||||
import vehicleassigModel from "./vehicleassig.model";
|
import vehicleassigModel from "./vehicleassig.model";
|
||||||
|
import { IVehicleAssig } from './vehicleassig.interface';
|
||||||
|
|
||||||
|
|
||||||
export class VehicleAssigService {
|
export class VehicleAssigService {
|
||||||
|
|
||||||
async getAll()
|
async getAll()
|
||||||
{
|
{
|
||||||
|
|
||||||
return await vehicleassigModel
|
return await vehicleassigModel
|
||||||
.find()
|
.find()
|
||||||
.populate(
|
.populate(
|
||||||
@ -24,9 +27,18 @@ export class VehicleAssigService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async create(
|
async create(
|
||||||
data:any
|
data:IVehicleAssig
|
||||||
){
|
){
|
||||||
|
|
||||||
|
const assig = await vehicleassigModel.findOne({
|
||||||
|
vehicleNumber: data.vehicleNumber,
|
||||||
|
active:true
|
||||||
|
});
|
||||||
|
|
||||||
|
if(assig){
|
||||||
|
throw new Error ("El vehículo ya tiene una asignación activa");
|
||||||
|
}
|
||||||
|
|
||||||
return await vehicleassigModel.create(
|
return await vehicleassigModel.create(
|
||||||
data
|
data
|
||||||
);
|
);
|
||||||
@ -34,8 +46,22 @@ export class VehicleAssigService {
|
|||||||
|
|
||||||
async update(
|
async update(
|
||||||
id:string,
|
id:string,
|
||||||
data:any
|
data:Partial<IVehicleAssig>
|
||||||
){
|
){
|
||||||
|
|
||||||
|
if(data.vehicleNumber !== undefined){
|
||||||
|
|
||||||
|
const assig = await vehicleassigModel.findOne({
|
||||||
|
vehicleNumber: data.vehicleNumber,
|
||||||
|
active:true,
|
||||||
|
_id: { $ne: id }
|
||||||
|
});
|
||||||
|
|
||||||
|
if(assig){
|
||||||
|
throw new Error("El vehículo ya tiene asignación activa");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return await vehicleassigModel.findByIdAndUpdate(
|
return await vehicleassigModel.findByIdAndUpdate(
|
||||||
id,
|
id,
|
||||||
data,
|
data,
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
import { ObjectId } from "mongoose";
|
import { Types } from "mongoose";
|
||||||
|
|
||||||
export interface IVehicleConfig {
|
export interface IVehicleConfig {
|
||||||
|
|
||||||
vehicleId:number;
|
vehicleId:number;
|
||||||
fuelTypeId:ObjectId;
|
fuelTypeId:Types.ObjectId;
|
||||||
tankCapacity:number;
|
tankCapacity:number;
|
||||||
currentMileage:number;
|
currentMileage:number;
|
||||||
odometerWorking:boolean;
|
odometerWorking:boolean;
|
||||||
|
|||||||
Reference in New Issue
Block a user