now creating dewars from spreadsheet

This commit is contained in:
GotthardG
2024-11-11 21:37:59 +01:00
parent 52fe68b2bc
commit 5e6eb40033
6 changed files with 207 additions and 79 deletions

View File

@ -263,3 +263,48 @@ async def add_dewar_puck_sample_to_shipment(shipment_id: int, payload: DewarCrea
db.refresh(shipment)
return shipment
@router.post("/{shipment_id}/add_dewar_puck_sample", response_model=ShipmentSchema, status_code=status.HTTP_201_CREATED)
async def add_dewar_puck_sample_to_shipment(shipment_id: int, payload: ShipmentCreate, db: Session = Depends(get_db)):
shipment = db.query(ShipmentModel).filter(ShipmentModel.id == shipment_id).first()
if not shipment:
raise HTTPException(status_code=404, detail="Shipment not found")
for dewar_data in payload.dewars:
dewar = DewarModel(
shipment_id=shipment_id,
dewar_name=dewar_data.dewar_name, # Ensure this field aligns with the frontend
tracking_number=dewar_data.tracking_number,
status=dewar_data.status,
contact_person_id=dewar_data.contact_person_id,
return_address_id=dewar_data.return_address_id,
)
db.add(dewar)
db.commit()
db.refresh(dewar)
for puck_data in dewar_data.pucks:
puck = PuckModel(
dewar_id=dewar.id,
puck_name=puck_data.puck_name,
puck_type=puck_data.puck_type,
puck_location_in_dewar=puck_data.puck_location_in_dewar,
)
db.add(puck)
db.commit()
db.refresh(puck)
for sample_data in puck_data.samples:
sample = SampleModel(
puck_id=puck.id,
sample_name=sample_data.crystalname,
position=sample_data.positioninpuck,
data_collection_parameters=sample_data.data_collection_parameters
)
db.add(sample)
db.commit()
db.refresh(sample)
db.refresh(shipment)
return shipment