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:
Josepablo C
2025-07-21 17:02:56 -06:00
parent 8ae13017be
commit 76915cfb57
3 changed files with 20 additions and 4 deletions

View File

@@ -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;

View File

@@ -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"
}, },

View File

@@ -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 };