Skip to content

Commit

Permalink
-Implemented logic for the PPM-only adjustments detailed in the AC of…
Browse files Browse the repository at this point in the history
… this Agility ticket
  • Loading branch information
WeatherfordAaron committed Feb 27, 2024
1 parent f87f981 commit 257f72b
Show file tree
Hide file tree
Showing 3 changed files with 172 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,26 +9,43 @@ import DataTableWrapper from 'components/DataTableWrapper/index';

const ImportantShipmentDates = ({
requestedPickupDate,
plannedMoveDate,
scheduledPickupDate,
requiredDeliveryDate,
actualMoveDate,
actualPickupDate,
requiredDeliveryDate,
requestedDeliveryDate,
scheduledDeliveryDate,
actualDeliveryDate,
isPPM,
}) => {
const headerPlannedMoveDate = isPPM ? 'Planned Move Date' : 'Requested pick up date';
const headerActualMoveDate = isPPM ? 'Actual Move Date' : 'Scheduled pick up date';
const headerActualPickupDate = isPPM ? '' : 'Actual pick up date';

const emDash = '\u2014';
return (
<div className={classnames('maxw-tablet', styles.shipmentDatesContainer)}>
<DataTableWrapper className="table--data-point-group">
<DataTable columnHeaders={['Required Delivery Date']} dataRow={[requiredDeliveryDate || emDash]} />
<DataTable
columnHeaders={['Requested pick up date', 'Scheduled pick up date', 'Actual pick up date']}
dataRow={[requestedPickupDate || emDash, scheduledPickupDate || emDash, actualPickupDate || emDash]}
/>
<DataTable
columnHeaders={['Requested delivery date', 'Scheduled delivery date', 'Actual delivery date']}
dataRow={[requestedDeliveryDate || emDash, scheduledDeliveryDate || emDash, actualDeliveryDate || emDash]}
/>
{!isPPM && <DataTable columnHeaders={['Required Delivery Date']} dataRow={[requiredDeliveryDate || emDash]} />}
{!isPPM && (
<DataTable
columnHeaders={[headerPlannedMoveDate, headerActualMoveDate, headerActualPickupDate]}
dataRow={[requestedPickupDate || emDash, scheduledPickupDate || emDash, actualPickupDate || emDash]}
/>
)}
{isPPM && (
<DataTable
columnHeaders={[headerPlannedMoveDate, headerActualMoveDate]}
dataRow={[plannedMoveDate || emDash, actualMoveDate || emDash]}
/>
)}
{!isPPM && (
<DataTable
columnHeaders={['Requested delivery date', 'Scheduled delivery date', 'Actual delivery date']}
dataRow={[requestedDeliveryDate || emDash, scheduledDeliveryDate || emDash, actualDeliveryDate || emDash]}
/>
)}
</DataTableWrapper>
</div>
);
Expand All @@ -39,19 +56,25 @@ ImportantShipmentDates.defaultProps = {
scheduledPickupDate: '',
requiredDeliveryDate: '',
actualPickupDate: '',
plannedMoveDate: '',
actualMoveDate: '',
requestedDeliveryDate: '',
scheduledDeliveryDate: '',
actualDeliveryDate: '',
isPPM: false,
};

ImportantShipmentDates.propTypes = {
requestedPickupDate: PropTypes.string,
scheduledPickupDate: PropTypes.string,
plannedMoveDate: PropTypes.string,
actualMoveDate: PropTypes.string,
requiredDeliveryDate: PropTypes.string,
actualPickupDate: PropTypes.string,
requestedDeliveryDate: PropTypes.string,
scheduledDeliveryDate: PropTypes.string,
actualDeliveryDate: PropTypes.string,
isPPM: PropTypes.bool,
};

export default ImportantShipmentDates;
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,29 @@ import { mount } from 'enzyme';
import ImportantShipmentDates from './ImportantShipmentDates';

describe('ImportantShipmentDates', () => {
const requiredDeliveryDate = 'Wednesday, 25 Mar 2020';
const requestedPickupDate = 'Thursday, 26 Mar 2020';
const scheduledPickupDate = 'Friday, 27 Mar 2020';
const actualPickupDate = 'Saturday, 28 Mar 2020';
const requiredDeliveryDate = 'Monday, 30 Mar 2020';
const requestedDeliveryDate = 'Sunday, 29 Mar 2020';
const plannedMoveDate = 'Saturday, 28 Mar 2020';
const actualMoveDate = 'Sunday, 29 Mar 2020';
const requestedDeliveryDate = 'Monday, 30 Mar 2020';
const scheduledDeliveryDate = 'Tuesday, 1 Apr 2020';
const actualDeliveryDate = 'Wednesday, 2 Apr 2020';
const actualPickupDate = 'Thursday, 3 Apr 2020';

it('should render the shipment dates we pass in', () => {
const wrapper = mount(
<ImportantShipmentDates
requestedPickupDate={requestedPickupDate}
requiredDeliveryDate={requiredDeliveryDate}
scheduledPickupDate={scheduledPickupDate}
plannedMoveDate={plannedMoveDate}
actualMoveDate={actualMoveDate}
actualPickupDate={actualPickupDate}
requestedDeliveryDate={requestedDeliveryDate}
scheduledDeliveryDate={scheduledDeliveryDate}
actualDeliveryDate={actualDeliveryDate}
requiredDeliveryDate={requiredDeliveryDate}
isPPM={false}
/>,
);
expect(wrapper.find('td').at(0).text()).toEqual(requiredDeliveryDate);
Expand All @@ -42,6 +47,91 @@ describe('ImportantShipmentDates', () => {
expect(wrapper.find('td').at(3).text()).toEqual(emDash);
expect(wrapper.find('td').at(4).text()).toEqual(emDash);
expect(wrapper.find('td').at(5).text()).toEqual(emDash);
expect(wrapper.find('td').at(6).text()).toEqual(emDash);
});

it('should show relevant PPM fields when it is a PPM', () => {
const wrapper = mount(
<ImportantShipmentDates
requestedPickupDate={requestedPickupDate}
requiredDeliveryDate={requiredDeliveryDate}
scheduledPickupDate={scheduledPickupDate}
plannedMoveDate={plannedMoveDate}
actualMoveDate={actualMoveDate}
actualPickupDate={actualPickupDate}
requestedDeliveryDate={requestedDeliveryDate}
scheduledDeliveryDate={scheduledDeliveryDate}
actualDeliveryDate={actualDeliveryDate}
isPPM
/>,
);
expect(wrapper.find('td').at(0).text()).toEqual(plannedMoveDate);
expect(wrapper.find('td').at(1).text()).toEqual(actualMoveDate);
});

it('should not show irrelevant fields when it is a PPM', () => {
const wrapper = mount(
<ImportantShipmentDates
requestedPickupDate={requestedPickupDate}
scheduledPickupDate={scheduledPickupDate}
plannedMoveDate={plannedMoveDate}
actualMoveDate={actualMoveDate}
requestedDeliveryDate={requestedDeliveryDate}
scheduledDeliveryDate={scheduledDeliveryDate}
actualDeliveryDate={actualDeliveryDate}
isPPM
/>,
);
expect(wrapper.find('td').at(0).text()).not.toEqual(requestedPickupDate);
expect(wrapper.find('td').at(1).text()).not.toEqual(requestedPickupDate);
expect(wrapper.find('td').at(0).text()).not.toEqual(scheduledPickupDate);
expect(wrapper.find('td').at(1).text()).not.toEqual(scheduledPickupDate);
expect(wrapper.find('td').at(0).text()).not.toEqual(requestedDeliveryDate);
expect(wrapper.find('td').at(1).text()).not.toEqual(requestedDeliveryDate);
expect(wrapper.find('td').at(0).text()).not.toEqual(scheduledDeliveryDate);
expect(wrapper.find('td').at(1).text()).not.toEqual(scheduledDeliveryDate);
expect(wrapper.find('td').at(0).text()).not.toEqual(actualDeliveryDate);
expect(wrapper.find('td').at(1).text()).not.toEqual(actualDeliveryDate);
});

it('should show relevant fields when it is a PPM', () => {
const wrapper = mount(
<ImportantShipmentDates
requestedPickupDate={requestedPickupDate}
scheduledPickupDate={scheduledPickupDate}
plannedMoveDate={plannedMoveDate}
actualMoveDate={actualMoveDate}
requestedDeliveryDate={requestedDeliveryDate}
scheduledDeliveryDate={scheduledDeliveryDate}
actualDeliveryDate={actualDeliveryDate}
isPPM
/>,
);
expect(wrapper.find('td').at(0).text()).toEqual(plannedMoveDate);
expect(wrapper.find('td').at(1).text()).toEqual(actualMoveDate);
});

it('should not show irrelevant fields when it is a PPM', () => {
const wrapper = mount(
<ImportantShipmentDates
requestedPickupDate={requestedPickupDate}
scheduledPickupDate={scheduledPickupDate}
plannedMoveDate={plannedMoveDate}
actualMoveDate={actualMoveDate}
requestedDeliveryDate={requestedDeliveryDate}
scheduledDeliveryDate={scheduledDeliveryDate}
actualDeliveryDate={actualDeliveryDate}
isPPM
/>,
);
expect(wrapper.find('td').at(0).text()).not.toEqual(requestedPickupDate);
expect(wrapper.find('td').at(1).text()).not.toEqual(requestedPickupDate);
expect(wrapper.find('td').at(0).text()).not.toEqual(scheduledPickupDate);
expect(wrapper.find('td').at(1).text()).not.toEqual(scheduledPickupDate);
expect(wrapper.find('td').at(0).text()).not.toEqual(requestedDeliveryDate);
expect(wrapper.find('td').at(1).text()).not.toEqual(requestedDeliveryDate);
expect(wrapper.find('td').at(0).text()).not.toEqual(scheduledDeliveryDate);
expect(wrapper.find('td').at(1).text()).not.toEqual(scheduledDeliveryDate);
expect(wrapper.find('td').at(0).text()).not.toEqual(actualDeliveryDate);
expect(wrapper.find('td').at(1).text()).not.toEqual(actualDeliveryDate);
});
});
56 changes: 44 additions & 12 deletions src/components/Office/ShipmentDetails/ShipmentDetailsMain.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -125,27 +125,53 @@ const ShipmentDetailsMain = ({

let displayedPickupAddress;
let displayedDeliveryAddress;
let weightResult;
let pickupRequestedDate;
let pickupScheduledDate;
let pickupActualDate;
let plannedMoveDate;
let actualMoveDate;

switch (shipmentType) {
case SHIPMENT_OPTIONS.HHG:
pickupRequestedDate = requestedPickupDate;
pickupScheduledDate = scheduledPickupDate;
pickupActualDate = actualPickupDate;
weightResult = primeEstimatedWeight;
displayedPickupAddress = pickupAddress;
displayedDeliveryAddress = destinationAddress || destinationDutyLocationAddress;
break;
case SHIPMENT_OPTIONS.NTS:
pickupRequestedDate = requestedPickupDate;
pickupScheduledDate = scheduledPickupDate;
pickupActualDate = actualPickupDate;
weightResult = primeEstimatedWeight;
displayedPickupAddress = pickupAddress;
displayedDeliveryAddress = storageFacility ? storageFacility.address : null;
break;
case SHIPMENT_OPTIONS.NTSR:
pickupRequestedDate = requestedPickupDate;
pickupScheduledDate = scheduledPickupDate;
pickupActualDate = actualPickupDate;
weightResult = primeEstimatedWeight;
displayedPickupAddress = storageFacility ? storageFacility.address : null;
displayedDeliveryAddress = destinationAddress;
break;
case SHIPMENT_OPTIONS.PPM:
plannedMoveDate = ppmShipment.expectedDepartureDate;
actualMoveDate = ppmShipment.actualMoveDate;
weightResult = ppmShipment.estimatedWeight;
displayedPickupAddress = pickupAddress;
displayedDeliveryAddress = destinationAddress || destinationDutyLocationAddress;
break;
default:
pickupRequestedDate = requestedPickupDate;
pickupScheduledDate = scheduledPickupDate;
pickupActualDate = actualPickupDate;
weightResult = primeEstimatedWeight;
displayedPickupAddress = pickupAddress;
displayedDeliveryAddress = destinationAddress || destinationDutyLocationAddress;
break;
}

return (
Expand Down Expand Up @@ -189,19 +215,25 @@ const ShipmentDetailsMain = ({
)}
{shipmentType === SHIPMENT_OPTIONS.PPM && (
<ImportantShipmentDates
actualMoveDate={actualMoveDate ? formatDateWithUTC(actualMoveDate) : null}
actualDeliveryDate={actualMoveDate ? formatDateWithUTC(actualMoveDate) : null}
plannedMoveDate={plannedMoveDate ? formatDateWithUTC(plannedMoveDate) : null}
requestedDeliveryDate={requestedDeliveryDate ? formatDateWithUTC(requestedDeliveryDate) : null}
scheduledDeliveryDate={scheduledDeliveryDate ? formatDateWithUTC(scheduledDeliveryDate) : null}
actualDeliveryDate={actualMoveDate ? formatDateWithUTC(actualDeliveryDate) : null}
isPPM={shipmentType === SHIPMENT_OPTIONS.PPM}
/>
)}
{shipmentType !== SHIPMENT_OPTIONS.PPM && (
<ImportantShipmentDates
requestedPickupDate={requestedPickupDate ? formatDateWithUTC(pickupRequestedDate) : null}
scheduledPickupDate={scheduledPickupDate ? formatDateWithUTC(pickupScheduledDate) : null}
actualPickupDate={actualPickupDate ? formatDateWithUTC(pickupActualDate) : null}
requestedDeliveryDate={requestedDeliveryDate ? formatDateWithUTC(requestedDeliveryDate) : null}
scheduledDeliveryDate={scheduledDeliveryDate ? formatDateWithUTC(scheduledDeliveryDate) : null}
actualDeliveryDate={actualDeliveryDate ? formatDateWithUTC(actualDeliveryDate) : null}
requiredDeliveryDate={requiredDeliveryDate ? formatDateWithUTC(requiredDeliveryDate) : null}
isPPM={shipmentType === SHIPMENT_OPTIONS.PPM}
/>
)}
<ImportantShipmentDates
requestedPickupDate={requestedPickupDate ? formatDateWithUTC(requestedPickupDate) : null}
scheduledPickupDate={scheduledPickupDate ? formatDateWithUTC(scheduledPickupDate) : null}
actualPickupDate={actualPickupDate ? formatDateWithUTC(actualPickupDate) : null}
requestedDeliveryDate={requestedDeliveryDate ? formatDateWithUTC(requestedDeliveryDate) : null}
scheduledDeliveryDate={scheduledDeliveryDate ? formatDateWithUTC(scheduledDeliveryDate) : null}
actualDeliveryDate={actualDeliveryDate ? formatDateWithUTC(actualDeliveryDate) : null}
requiredDeliveryDate={requiredDeliveryDate ? formatDateWithUTC(requiredDeliveryDate) : null}
/>
<ShipmentAddresses
pickupAddress={displayedPickupAddress}
destinationAddress={displayedDeliveryAddress}
Expand All @@ -216,7 +248,7 @@ const ShipmentDetailsMain = ({
handleDivertShipment={handleDivertShipment}
/>
<ShipmentWeightDetails
estimatedWeight={primeEstimatedWeight}
estimatedWeight={weightResult}
initialWeight={primeActualWeight}
shipmentInfo={{
shipmentID: shipment.id,
Expand Down

0 comments on commit 257f72b

Please sign in to comment.