feat(Proposals): Add event to update proposal and loads on cancelation
This commit is contained in:
@@ -14,27 +14,39 @@ const companiesModel = getModel('companies');
|
||||
* @returns
|
||||
*/
|
||||
async function onPatchEvent( id , newProposalData ){
|
||||
if( !newProposalData.is_accepted ){
|
||||
return;
|
||||
}
|
||||
const proposal = await proposalsModel.findById( id );
|
||||
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,
|
||||
} );
|
||||
if( !newProposalData.is_accepted ){
|
||||
/// Update Proposal:
|
||||
/// Remove shipper
|
||||
await proposalsModel.findByIdAndUpdate( id , {
|
||||
shipper : null
|
||||
} );
|
||||
|
||||
/// Update Load:
|
||||
/// Remove carrier, driver and vehicle
|
||||
await loadsModel.findByIdAndUpdate( proposal.load, {
|
||||
carrier : null,
|
||||
driver : null,
|
||||
vehicle : null,
|
||||
} );
|
||||
}else{
|
||||
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 };
|
||||
|
||||
Reference in New Issue
Block a user