Boa noite gente, náo entendi a solucao abaixo oferecida no curso. Para buscar se tem 2 itens com o mesmo nome no pedido eu fiz a busca, mas o que nao entendo é a solucao proposta aqui no curso ( o qual adoraria, pois aqui fizeram com muito menos linhas d codigo) Sei usar in_array mas, o que enxergo abaixo é que esta buscando o valor de $item->getNome() quer dizer o nome do produto em um array vazio que foi declarado array () ...? reitero, abaixo nao é meu codigo, é a solucao proposta no curso e fiquei surpreso. Conforme apenas trata-se de uma condicao mais o eixo da coisa é o pattern ia deixar passar, sqn.
//Crie o imposto IHIT, que tem a seguinte regra: caso existam 2 ítens com o mesmo nome, o //imposto deve ser de 13% mais R$100,00.
//Caso contrário, o valor do imposto deverá ser (1% * o número de ítens no orçamento).
//class IHIT extends TemplateDeImpostoCondicional {
public function deveUsarMaximaTaxacao(Orcamento $orcamento) {
$noOrcamento = Array();
foreach($orcamento->getItens() as $item) {
if(in_array($item->getNome(),$noOrcamento)) return true;
else $noOrcamento[] = $item->getNome();
}
return false;
}
protected function maximaTaxacao(Orcamento $orcamento) {
return $orcamento->getValor() * 0.13 + 100;
}
protected function minimaTaxacao(Orcamento $orcamento) {
return $orcamento->getValor() * (0.01 * count($orcamento->getItens()));
}
}