changing contact person and address of a specific dewar is now possible

This commit is contained in:
GotthardG
2024-11-01 12:27:16 +01:00
parent dc31eec66e
commit 579e769bb0
4 changed files with 430 additions and 104 deletions

View File

@ -14,6 +14,7 @@ interface ShipmentDetailsProps {
setSelectedDewar: React.Dispatch<React.SetStateAction<Dewar | null>>;
setSelectedShipment: React.Dispatch<React.SetStateAction<Shipment_Input>>;
sx?: SxProps;
refreshShipments: () => void;
}
const ShipmentDetails: React.FC<ShipmentDetailsProps> = ({
@ -21,12 +22,12 @@ const ShipmentDetails: React.FC<ShipmentDetailsProps> = ({
setSelectedDewar,
setSelectedShipment,
sx = {},
refreshShipments,
}) => {
const [localSelectedDewar, setLocalSelectedDewar] = React.useState<Dewar | null>(null);
const [isAddingDewar, setIsAddingDewar] = React.useState<boolean>(false);
const [newDewar, setNewDewar] = React.useState<Partial<Dewar>>({
dewar_name: '',
tracking_number: '',
});
// To reset localSelectedDewar when selectedShipment changes
@ -34,6 +35,10 @@ const ShipmentDetails: React.FC<ShipmentDetailsProps> = ({
setLocalSelectedDewar(null);
}, [selectedShipment]);
React.useEffect(() => {
console.log('ShipmentDetails - selectedShipment updated:', selectedShipment);
}, [selectedShipment]);
const totalPucks = selectedShipment.dewars.reduce((acc, dewar) => acc + (dewar.number_of_pucks || 0), 0);
const totalSamples = selectedShipment.dewars.reduce((acc, dewar) => acc + (dewar.number_of_samples || 0), 0);
@ -111,6 +116,7 @@ const ShipmentDetails: React.FC<ShipmentDetailsProps> = ({
setIsAddingDewar(false);
setNewDewar({ dewar_name: '', tracking_number: '' });
refreshShipments()
} catch (error) {
alert('Failed to add dewar or update shipment. Please try again.');
@ -164,10 +170,14 @@ const ShipmentDetails: React.FC<ShipmentDetailsProps> = ({
dewar={localSelectedDewar}
trackingNumber={localSelectedDewar.tracking_number || ''}
setTrackingNumber={(value) => {
setLocalSelectedDewar((prev) => prev ? { ...prev, tracking_number: value as string } : prev);
setLocalSelectedDewar((prev) => (prev ? { ...prev, tracking_number: value as string } : prev));
}}
contactPersons={selectedShipment.contact_person}
returnAddresses={selectedShipment.return_address}
initialContactPersons={selectedShipment.contact_person}
initialReturnAddresses={selectedShipment.return_address}
defaultContactPerson={selectedShipment.contact_person[0]}
defaultReturnAddress={selectedShipment.return_address[0]}
shipmentId={selectedShipment.shipment_id}
refreshShipments={refreshShipments}
/>
)}
@ -220,6 +230,7 @@ const ShipmentDetails: React.FC<ShipmentDetailsProps> = ({
<Typography variant="body2">Number of Pucks: {dewar.number_of_pucks || 0}</Typography>
<Typography variant="body2">Number of Samples: {dewar.number_of_samples || 0}</Typography>
<Typography variant="body2">Tracking Number: {dewar.tracking_number}</Typography>
<Typography variant="body2">Contact Person: {`${dewar.contact_person[0].firstname} ${dewar.contact_person[0].lastname}`}</Typography>
</Box>
<Box sx={{