added pucks and samples
This commit is contained in:
@ -44,13 +44,21 @@ const ShipmentDetails: React.FC<ShipmentDetailsProps> = ({
|
||||
shipping_date: null,
|
||||
arrival_date: null,
|
||||
returning_date: null,
|
||||
qrcode: 'N/A'
|
||||
qrcode: 'N/A',
|
||||
contact_person_id: selectedShipment?.contact_person?.id,
|
||||
return_address_id: selectedShipment?.return_address?.id,
|
||||
};
|
||||
|
||||
const [newDewar, setNewDewar] = useState<Partial<Dewar>>(initialNewDewarState);
|
||||
|
||||
useEffect(() => {
|
||||
setLocalSelectedDewar(null);
|
||||
// Ensure to update the default contact person and return address when the shipment changes
|
||||
setNewDewar((prev) => ({
|
||||
...prev,
|
||||
contact_person_id: selectedShipment?.contact_person?.id,
|
||||
return_address_id: selectedShipment?.return_address?.id
|
||||
}));
|
||||
}, [selectedShipment]);
|
||||
|
||||
useEffect(() => {
|
||||
@ -97,12 +105,14 @@ const ShipmentDetails: React.FC<ShipmentDetailsProps> = ({
|
||||
...initialNewDewarState,
|
||||
...newDewar,
|
||||
dewar_name: newDewar.dewar_name.trim(),
|
||||
contact_person: selectedShipment?.contact_person,
|
||||
contact_person_id: selectedShipment?.contact_person?.id,
|
||||
return_address: selectedShipment?.return_address,
|
||||
return_address_id: selectedShipment?.return_address?.id,
|
||||
return_address_id: selectedShipment?.return_address?.id
|
||||
} as Dewar;
|
||||
|
||||
if (!newDewarToPost.dewar_name || !newDewarToPost.status) {
|
||||
throw new Error('Missing required fields');
|
||||
}
|
||||
|
||||
const createdDewar = await DewarsService.createDewarDewarsPost(newDewarToPost);
|
||||
|
||||
if (createdDewar && selectedShipment) {
|
||||
@ -127,27 +137,14 @@ const ShipmentDetails: React.FC<ShipmentDetailsProps> = ({
|
||||
};
|
||||
|
||||
const handleSaveComments = async () => {
|
||||
if (selectedShipment) {
|
||||
if (selectedShipment && selectedShipment.shipment_id) {
|
||||
try {
|
||||
const updatedShipmentPayload = {
|
||||
shipment_id: selectedShipment.shipment_id,
|
||||
shipment_name: selectedShipment.shipment_name,
|
||||
shipment_date: selectedShipment.shipment_date,
|
||||
shipment_status: selectedShipment.shipment_status,
|
||||
comments: comments,
|
||||
contact_person_id: selectedShipment.contact_person?.id,
|
||||
return_address_id: selectedShipment.return_address?.id,
|
||||
proposal_id: selectedShipment.proposal?.id,
|
||||
dewars: selectedShipment.dewars?.map(dewar => ({
|
||||
...dewar,
|
||||
dewar_id: dewar.id,
|
||||
contact_person_id: dewar.contact_person?.id,
|
||||
return_address_id: dewar.return_address?.id
|
||||
}))
|
||||
};
|
||||
const payload = { comments };
|
||||
|
||||
const updatedShipment = await ShipmentsService.updateShipmentShipmentsShipmentIdPut(selectedShipment.shipment_id, updatedShipmentPayload);
|
||||
setSelectedShipment(updatedShipment);
|
||||
// Assuming `updateShipmentCommentsShipmentsShipmentIdCommentsPut` only needs the shipment ID
|
||||
const updatedShipment = await ShipmentsService.updateShipmentCommentsShipmentsShipmentIdCommentsPut(selectedShipment.shipment_id, payload);
|
||||
|
||||
setSelectedShipment({ ...selectedShipment, comments: updatedShipment.comments });
|
||||
setInitialComments(comments);
|
||||
refreshShipments();
|
||||
alert('Comments updated successfully.');
|
||||
@ -155,6 +152,8 @@ const ShipmentDetails: React.FC<ShipmentDetailsProps> = ({
|
||||
console.error('Failed to update comments:', error);
|
||||
alert('Failed to update comments. Please try again.');
|
||||
}
|
||||
} else {
|
||||
console.error("Selected shipment or shipment ID is undefined");
|
||||
}
|
||||
};
|
||||
|
||||
@ -188,10 +187,19 @@ const ShipmentDetails: React.FC<ShipmentDetailsProps> = ({
|
||||
fullWidth
|
||||
sx={{ marginBottom: 2 }}
|
||||
/>
|
||||
<Button variant="contained" color="primary" onClick={handleAddDewar} sx={{ marginRight: 2 }}>
|
||||
<Button
|
||||
variant="contained"
|
||||
color="primary"
|
||||
onClick={handleAddDewar}
|
||||
sx={{ marginRight: 2 }}
|
||||
>
|
||||
Save Dewar
|
||||
</Button>
|
||||
<Button variant="outlined" color="secondary" onClick={() => setIsAddingDewar(false)}>
|
||||
<Button
|
||||
variant="outlined"
|
||||
color="secondary"
|
||||
onClick={() => setIsAddingDewar(false)}
|
||||
>
|
||||
Cancel
|
||||
</Button>
|
||||
</Box>
|
||||
@ -333,10 +341,10 @@ const ShipmentDetails: React.FC<ShipmentDetailsProps> = ({
|
||||
setTrackingNumber={(value) => {
|
||||
setLocalSelectedDewar((prev) => (prev ? { ...prev, tracking_number: value as string } : prev));
|
||||
}}
|
||||
initialContactPersons={selectedShipment?.contact_person ? [selectedShipment.contact_person] : []}
|
||||
initialReturnAddresses={selectedShipment?.return_address ? [selectedShipment.return_address] : []}
|
||||
defaultContactPerson={contactPerson}
|
||||
defaultReturnAddress={selectedShipment?.return_address}
|
||||
initialContactPersons={localSelectedDewar?.contact_person ? [localSelectedDewar.contact_person] : []} // Focus on dewar contact person
|
||||
initialReturnAddresses={localSelectedDewar?.return_address ? [localSelectedDewar.return_address] : []} // Focus on dewar return address
|
||||
defaultContactPerson={localSelectedDewar?.contact_person}
|
||||
defaultReturnAddress={localSelectedDewar?.return_address}
|
||||
shipmentId={selectedShipment?.shipment_id || ''}
|
||||
refreshShipments={refreshShipments}
|
||||
/>
|
||||
|
Reference in New Issue
Block a user