Foreach trazendo apenas o primeiro registro
Boa tarde pessoal,
Eu tenho um foreach que está me trazendo apenas um resultado a partir de uma consulta, mas na verdade tem que me retornar 10 itens:
<code>
public function getBillsUnpaid($date)
{
$results = [];
$numberBills = $this->lotModel->select(DB::RAW("
Lotes.ID AS Lote_ID,
Compradores.ID as Comprador_ID,
Compradores.CompradorWeb_ID,
Compradores.NM as NM_Comprador,
Lotes.Leilao_ID as Leilao_ID,
Lotes.NU as NU_Lote,
FORMAT(lotes.DT_VenctoBoleto, 'yyyy-MM-dd') as DT_VenctoBoleto,
REPLACE(
(CASE
WHEN
LEN(LTRIM(RTRIM(ISNULL(Compradores.NM_DDDCel,'')))) > 0 AND
LEN(LTRIM(RTRIM(ISNULL(Compradores.NM_Celular,'')))) > 0
THEN CONCAT(
LTRIM(RTRIM(Compradores.NM_DDDCel)),'',
LTRIM(RTRIM(Compradores.NM_Celular))
)
WHEN
LEN(LTRIM(RTRIM(ISNULL(Compradores.NM_DDDTel,'')))) > 0 AND
LEN(LTRIM(RTRIM(ISNULL(Compradores.NM_Telefone,'')))) > 0
THEN CONCAT(
LTRIM(RTRIM(Compradores.NM_DDDTel)),'',
LTRIM(RTRIM(Compradores.NM_Telefone))
)
ELSE ''
END)
,'-', '') AS NM_Celular,
Lotes.VL_Venda,
ISNULL(Lotes.VL_Cobranca, 0) as VL_Cobranca,
ISNULL((
SELECT SUM(VL_Cobertura)
FROM LotesXPagamentos
WHERE Lote_ID = lotes.ID
AND Pagamento_ID IS NOT NULL
), 0) as VL_Pago,
CONCAT(Lotes.NM_Descricao, '', Lotes.MM_ExtDescricao) as NM_Descricao
"))
->join('Leiloes', 'Leiloes.ID', '=', 'Lotes.Leilao_ID')
->join('Compradores', 'Compradores.ID', '=', 'Lotes.Comprador_ID')
->where('Lotes.ST_Lote', 3)
->where('Lotes.DT_VenctoBoleto', '>', '2021-03-01')
->whereRaw("
ISNULL((
SELECT SUM(VL_Cobertura)
FROM LotesXPagamentos
WHERE Lote_ID = Lotes.ID
AND Pagamento_ID IS NOT NULL
), 0) = 0")
->orderBy('Lotes.NU')
->take(10)
->get();
if(count($numberBills) > 0){
foreach($numberBills as $bills){
$results['CompradorWeb_ID'] = $bills->CompradorWeb_ID;
$results['DT_VenctoBoleto'] = $bills->DT_VenctoBoleto;
$results['VL_Cobranca'] = $bills->VL_Cobranca;
$results['Lote_ID'] = $bills->Lote_ID;
$results['Comprador_ID'] = $bills->Comprador_ID;
$results['NM_Comprador'] = $bills->NM_Comprador;
$results['NM_Descricao'] = $bills->NM_Descricao;
$results['VL_Pago'] = $bills->VL_Pago;
$results['NU_Lote'] = $bills->NU_Lote;
$results['Leilao_ID'] = $bills->Leilao_ID;
$phones = $this->getPhoneUsers($bills->CompradorWeb_ID);
$results['NM_Celular'] = (!is_null(@$phones->fone_celular)) ? $phones->fone_celular : $bills->NM_Celular;
return $results;
}
}
}
</code>
Se eu retorno somente a variavel $numberBills, ele me traz o resultado certinho, porém, eu não posso retornar essa variavel pq preciso pegar o resultado dela e chamar a minha outra função que faz conexão com outra base de dados e por isso eu criei esse array result, percebam que o numero do telefone vai vir da minha tabela A(função que pega o telefone) e caso não tenha o telefone nela, eu pego o numero da tabela B(resultado dessa query) porem qdo do return $results, so me retorna o primeiro registro, o que estou fazendo de errado ?Discussão (0)
Carregando comentários...