Heat the oil in soup pot or Dutch oven. Add the bacon and brown. Remove the bacon, and reserve. Add the ham and brown, then remove and reserve. Melt in the butter, and add the garlic, onions, potatoes, carrots and bay leaf. Partially cover and cook to soften, 10 minutes. Add the stock, 2 cups water, the reserved ham and bacon, the sauerkraut and beans, and simmer until potatoes are cooked and soup flavor combines, 15 minutes more. Season with salt and pepper.
Cool completely and store for a make-ahead meal.
To serve, reheat over medium heat. Add the parsley just before serving and pass bread at the table.