fix(loads/proposals): when proposal changes vehicle, active load is removed from vehicle
fix(loads): Populate vehicle.categories + vehicle.notes in find request
This commit is contained in:
@@ -23,7 +23,9 @@ const vehicle_projection = [
|
|||||||
'circulation_serial_number',
|
'circulation_serial_number',
|
||||||
'trailer_plate_1',
|
'trailer_plate_1',
|
||||||
'trailer_plate_2',
|
'trailer_plate_2',
|
||||||
|
'notes',
|
||||||
'city',
|
'city',
|
||||||
|
'available_in'
|
||||||
];
|
];
|
||||||
const user_projection = ['first_name','last_name','middle_name'];
|
const user_projection = ['first_name','last_name','middle_name'];
|
||||||
const populate_list = [
|
const populate_list = [
|
||||||
@@ -33,7 +35,7 @@ const populate_list = [
|
|||||||
'origin_warehouse',
|
'origin_warehouse',
|
||||||
'destination_warehouse',
|
'destination_warehouse',
|
||||||
{path:'carrier',select: carrier_projection },
|
{path:'carrier',select: carrier_projection },
|
||||||
{path:'vehicle',select: vehicle_projection },
|
{path:'vehicle',select: vehicle_projection, populate : { path : 'categories' } },
|
||||||
{path:'driver',select: user_projection },
|
{path:'driver',select: user_projection },
|
||||||
{path:'bidder',select: user_projection },
|
{path:'bidder',select: user_projection },
|
||||||
];
|
];
|
||||||
@@ -164,8 +166,6 @@ async function findLoads( query ){
|
|||||||
filter = null;
|
filter = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log( andFilterList );
|
|
||||||
|
|
||||||
const { total , limit, skip, data } = await generic.getList( page , elements, filter, null, $sort );
|
const { total , limit, skip, data } = await generic.getList( page , elements, filter, null, $sort );
|
||||||
|
|
||||||
const load_list = data;
|
const load_list = data;
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"version" : {
|
"version" : {
|
||||||
"version" : "1.5.3",
|
"version" : "1.5.4",
|
||||||
"name": "ETA Beta",
|
"name": "ETA Beta",
|
||||||
"date":"21/07/2025"
|
"date":"21/07/2025"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -101,12 +101,28 @@ async function onProposalVehicleChanged( userId, proposalId ){
|
|||||||
const proposal = await proposalsModel.findById( proposalId );
|
const proposal = await proposalsModel.findById( proposalId );
|
||||||
const vehicle = await vehiclesModel.findById( proposal.vehicle );
|
const vehicle = await vehiclesModel.findById( proposal.vehicle );
|
||||||
|
|
||||||
|
const vehicle_list = await vehiclesModel.find({
|
||||||
|
active_load: proposal.load
|
||||||
|
});
|
||||||
|
|
||||||
/// Update Load:
|
/// Update Load:
|
||||||
/// Add driver and vehicle
|
/// Add driver and vehicle
|
||||||
await loadsModel.findByIdAndUpdate( proposal.load, {
|
await loadsModel.findByIdAndUpdate( proposal.load, {
|
||||||
driver : vehicle.driver,
|
driver : vehicle.driver,
|
||||||
vehicle : proposal.vehicle
|
vehicle : proposal.vehicle
|
||||||
} );
|
} );
|
||||||
|
|
||||||
|
/// Update vehicles related to this load. Ideally, just one.
|
||||||
|
for( const item of vehicle_list ){
|
||||||
|
await vehiclesModel.findByIdAndUpdate(
|
||||||
|
item.id,
|
||||||
|
{
|
||||||
|
active_load: null,
|
||||||
|
load_shipper: null,
|
||||||
|
status: "Free"
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = { onProposalCreate, onProposalRejected, onProposalAccepted, onProposalVehicleChanged };
|
module.exports = { onProposalCreate, onProposalRejected, onProposalAccepted, onProposalVehicleChanged };
|
||||||
|
|||||||
Reference in New Issue
Block a user