feat(Proposals): Add event to update proposal and loads on cancelation

This commit is contained in:
Josepablo C
2024-04-06 16:42:18 -06:00
parent 62a5e8419a
commit 874abaacd2

View File

@@ -14,27 +14,39 @@ const companiesModel = getModel('companies');
* @returns * @returns
*/ */
async function onPatchEvent( id , newProposalData ){ async function onPatchEvent( id , newProposalData ){
if( !newProposalData.is_accepted ){
return;
}
const proposal = await proposalsModel.findById( id ); const proposal = await proposalsModel.findById( id );
const shipper_user = await usersModel.findById( proposal.accepted_by ); if( !newProposalData.is_accepted ){
const shipper = await companiesModel.findById( shipper_user.company ); /// Update Proposal:
const vehicle = await vehiclesModel.findById( proposal.vehicle ); /// Remove shipper
await proposalsModel.findByIdAndUpdate( id , {
/// Update Proposal: shipper : null
/// Adding shipper to proposal } );
await proposalsModel.findByIdAndUpdate( id , {
shipper : shipper.id /// Update Load:
} ); /// Remove carrier, driver and vehicle
await loadsModel.findByIdAndUpdate( proposal.load, {
/// Update Load: carrier : null,
/// Add carrier, driver and vehicle driver : null,
await loadsModel.findByIdAndUpdate( proposal.load, { vehicle : null,
carrier : proposal.carrier, } );
driver : vehicle.driver, }else{
vehicle : proposal.vehicle, const shipper_user = await usersModel.findById( proposal.accepted_by );
} ); const shipper = await companiesModel.findById( shipper_user.company );
const vehicle = await vehiclesModel.findById( proposal.vehicle );
/// Update Proposal:
/// Adding shipper to proposal
await proposalsModel.findByIdAndUpdate( id , {
shipper : shipper.id
} );
/// Update Load:
/// Add carrier, driver and vehicle
await loadsModel.findByIdAndUpdate( proposal.load, {
carrier : proposal.carrier,
driver : vehicle.driver,
vehicle : proposal.vehicle,
} );
}
} }
module.exports = { onPatchEvent }; module.exports = { onPatchEvent };