diff --git a/services/orders/app/api/internal_demo.py b/services/orders/app/api/internal_demo.py index 912c1e96..cefed2b5 100644 --- a/services/orders/app/api/internal_demo.py +++ b/services/orders/app/api/internal_demo.py @@ -275,17 +275,30 @@ async def clone_demo_data( "order_date" ) or session_time + # Handle delivery date - JSON uses 'delivery_date', database uses 'requested_delivery_date' + # Fallback to order_date + 2 hours if no delivery date is provided + delivery_date_value = order_data.get('delivery_date') or order_data.get('requested_delivery_date') adjusted_requested_delivery = parse_date_field( - order_data.get('requested_delivery_date'), + delivery_date_value, session_time, "requested_delivery_date" ) + + # Ensure requested_delivery_date is never None - fallback to order_date + 2 hours + if adjusted_requested_delivery is None: + adjusted_requested_delivery = adjusted_order_date + timedelta(hours=2) # Create new order from seed data + # Generate unique order number by appending tenant-specific suffix + base_order_number = order_data.get('order_number', f"ORD-{uuid.uuid4().hex[:8].upper()}") + # Add tenant-specific suffix to ensure global uniqueness + tenant_suffix = virtual_uuid.hex[:4].upper() # Use first 4 chars of tenant ID + unique_order_number = f"{base_order_number}-{tenant_suffix}" + new_order = CustomerOrder( id=str(transformed_id), tenant_id=virtual_uuid, - order_number=order_data.get('order_number', f"ORD-{uuid.uuid4().hex[:8].upper()}"), + order_number=unique_order_number, customer_id=str(customer_id_value) if customer_id_value else None, status=order_data.get('status', 'pending'), order_type=order_data.get('order_type', 'standard'), @@ -305,7 +318,7 @@ async def clone_demo_data( payment_method=order_data.get('payment_method'), payment_terms=order_data.get('payment_terms'), special_instructions=order_data.get('special_instructions'), - order_source=order_data.get('order_source', 'demo'), + order_source=order_data.get('order_source', 'manual'), sales_channel=order_data.get('sales_channel', 'direct'), created_at=session_time, updated_at=session_time