GE
Ordernar DataGrid campo setTransformer
Fechado
Dae galera.
Seguinte, eu tenho uma datagrid com campo com setTransformer.
Esse campo tem toda uma logica para o calculo de dias.
Como no código abaixo, o campo vai se basear na data de cadastro, e conforme a situação ele vai subtrair uma data por outra e gerar um numero inteiro de dias.
Minha dúvida é como ordenar a datagrid pelo resultado da setTransformer?
Seguinte, eu tenho uma datagrid com campo com setTransformer.
Esse campo tem toda uma logica para o calculo de dias.
Como no código abaixo, o campo vai se basear na data de cadastro, e conforme a situação ele vai subtrair uma data por outra e gerar um numero inteiro de dias.
public function retornaDias($campo, $object, $row)
{
$string = new StringsUtil;
$dias = 0;
if($object->data_cancelamento){
$dias = $string->subtrair_datas($object->data_cadastro, $object->data_cancelamento);
} elseif($object->data_encerramento){
$dias = $string->subtrair_datas($object->data_cadastro, $object->data_encerramento);
} else {
$dias = $string->subtrair_datas($object->data_cadastro, date('Y-m-d'));
}
$campo = $dias;
return $campo;
}
Minha dúvida é como ordenar a datagrid pelo resultado da setTransformer?
E se ao invés de usar o settransformer no onReload quando envia o campo para o DataGrid você criar esse campo? Acho que ele deve aceitar ordenar.
Só um chute.
Daew
eu resolvi jogando a logica para a consulta do banco, ficando desta maneira:
Alguém sabe de alguma solução mais elegante?
O setTransformer() atua somente em tela.
Na tela visualizamos somente uma "fatia" dos dados.
Então, a ordem ideal fica a cargo do BD mesmo.
Mais elegante que isso seria ter uma coluna no BD
com o resultado pronto, ou uma function no BD
que calculasse isso, para não precisar ficar o CASE
no código.
Atenciosamente,