Spain and Germany will compete in the Davis Cup semi-finals after defeating the Czech Republic and Argentina respectively in the quarter-finals in Bologna.