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 fuelPriceRoute from "./modules/fuel_prices/fuelPrices.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 fuelRequestRouter from "./modules/fuel-requests/fuelRequest.routes";
|
||||
import approvalrouter from "./modules/approvals/approval.routes";
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
import {Request, Response } from "express";
|
||||
|
||||
import { VehicleAssigService } from "./vehicleassig.service";
|
||||
|
||||
const vehicleAssigService = new VehicleAssigService();
|
||||
@ -11,9 +10,17 @@ export class VehicleAssigController {
|
||||
res:Response
|
||||
){
|
||||
|
||||
const vAssigs = await vehicleAssigService.getAll();
|
||||
try{
|
||||
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(
|
||||
@ -21,46 +28,96 @@ export class VehicleAssigController {
|
||||
res:Response
|
||||
){
|
||||
|
||||
const vAssig = await vehicleAssigService.getById(
|
||||
req.params.id as string
|
||||
);
|
||||
try{
|
||||
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(
|
||||
req:Request,
|
||||
res:Response
|
||||
){
|
||||
const vAssig = await vehicleAssigService.create(
|
||||
req.body
|
||||
);
|
||||
try{
|
||||
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(
|
||||
req:Request,
|
||||
res:Response
|
||||
){
|
||||
const vAssig = await vehicleAssigService.update(
|
||||
req.params.id as string,
|
||||
req.body
|
||||
);
|
||||
try{
|
||||
const vAssig = await vehicleAssigService.update(
|
||||
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 (
|
||||
req:Request,
|
||||
res:Response
|
||||
){
|
||||
const vAssig = await vehicleAssigService.delete(
|
||||
req.params.id as string
|
||||
)
|
||||
try{
|
||||
const vAssig = await vehicleAssigService.delete(
|
||||
req.params.id as string
|
||||
);
|
||||
|
||||
res.json({
|
||||
message:"Assignación eliminada"
|
||||
});
|
||||
if(!vAssig){
|
||||
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 {
|
||||
|
||||
vehicleNumber:number;
|
||||
exployeeId:number;
|
||||
assigmentDate:Date;
|
||||
unassigmentDate:Date;
|
||||
|
||||
employeeId:number;
|
||||
|
||||
assignmentDate:Date;
|
||||
|
||||
unassignmentDate:Date;
|
||||
|
||||
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({
|
||||
|
||||
@ -7,17 +7,17 @@ const vehicleAssigSchema = new mongoose.Schema({
|
||||
required:true
|
||||
},
|
||||
|
||||
exployeeId:{
|
||||
employeeId:{
|
||||
type:Number,
|
||||
required:true
|
||||
},
|
||||
|
||||
assigmentDate:{
|
||||
assignmentDate:{
|
||||
type:Date,
|
||||
required:true
|
||||
},
|
||||
|
||||
unassigmentDate:{
|
||||
unassignmentDate:{
|
||||
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("/id", authMiddleware, controller.getById);
|
||||
vAssigRouter.get("/:id", authMiddleware, controller.getById);
|
||||
|
||||
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;
|
||||
|
||||
@ -1,9 +1,12 @@
|
||||
import vehicleassigModel from "./vehicleassig.model";
|
||||
import { IVehicleAssig } from './vehicleassig.interface';
|
||||
|
||||
|
||||
export class VehicleAssigService {
|
||||
|
||||
async getAll()
|
||||
{
|
||||
|
||||
return await vehicleassigModel
|
||||
.find()
|
||||
.populate(
|
||||
@ -24,9 +27,18 @@ export class VehicleAssigService {
|
||||
}
|
||||
|
||||
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(
|
||||
data
|
||||
);
|
||||
@ -34,8 +46,22 @@ export class VehicleAssigService {
|
||||
|
||||
async update(
|
||||
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(
|
||||
id,
|
||||
data,
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
import { ObjectId } from "mongoose";
|
||||
import { Types } from "mongoose";
|
||||
|
||||
export interface IVehicleConfig {
|
||||
|
||||
vehicleId:number;
|
||||
fuelTypeId:ObjectId;
|
||||
fuelTypeId:Types.ObjectId;
|
||||
tankCapacity:number;
|
||||
currentMileage:number;
|
||||
odometerWorking:boolean;
|
||||
|
||||
Reference in New Issue
Block a user