Boa noite pessoal, preciso de uma ajuda para somar os campos de valores por cada cliente, atualmente está somando os valores lançados por cada Ordem de serviço, mas gostaria que soma se por cada cliente.
Banco produtos_os
servicos_os
os
view
<h5>O.s Inadimplentes</h5>
</div>
<div class="widget-content">
<table class="table table-bordered">
<thead>
<tr>
<th>N° OS</th>
<th>Data</th>
<th>Cliente</th>
<th>Valor s/ desconto</th>
<th>Desconto</th>
<th>Valor C/ desconto</th>
<th>Ação</th>
</tr>
</thead>
<tbody>
<?php foreach ($ordens5 as $o) : ?>
<tr>
<td>
<?= $o->idOs ?>
</td>
<td>
<?= date('d/m/Y', strtotime($o->dataInicial)) ?>
</td>
<td>
<?= $o->nomeCliente ?>
</td>
<td>R$
<?= number_format ($o->totalProdutos + $o->totalServicos, 2, ',', '.') ?>
</td>
<td>%
<?= number_format ($o->desconto, 2, ',', '.') ?>
</td>
<td>R$
<?= number_format ($o->valor_desconto ?: $o->totalProdutos + $o->totalServicos, 2, ',', '.') ?>
</td>
<td>
<?php if ($this->permission->checkPermission($this->session->userdata('permissao'), 'vOs')) : ?>
<a href="<?= base_url() ?>index.php/os/editar/<?= $o->idOs ?>" class="btn-nwe3">
<i class="bx bx-edit"></i></a>
<?php endif ?>
</td>
Controller
<?php if (!defined('BASEPATH')) {
exit('No direct script access allowed');
}
class Home extends MY_Controller
public function __construct()
{
parent::__construct();
$this->load->model('Home_model');
}
public function index()
{
$this->data['ordens5'] = $this->home_model->getOsAbertasInad();
$this->data['view'] = 'home/painel';
return $this->layout();
Model
public function getOsAbertasInad()
{
$this->db->select(
'os.*,
clientes.nomeCliente,
COALESCE((SELECT SUM(servicos_os.preço * servicos_os.quantidade ) FROM servicos_os WHERE servicos_os.os_id = os.idOs), 0) totalServicos,
COALESCE((SELECT SUM(produtos_os.preço * produtos_os.quantidade ) FROM produtos_os WHERE produtos_os.os_id = os.idOs), 0) totalProdutos'
);
$this->db->select('os.*, clientes.nomeCliente');
$this->db->from('os');
$this->db->join('clientes', 'clientes.idClientes = os.clientes_id');
$this->db->where('os.status', 'Finalizado', 'dataFinal BETWEEN CURRENT_DATE()-2000 AND CURRENT_DATE()', null, false);
$this->db->limit(50);
return $this->db->get()->result();
}
O resultado está sendo esse, e não está somando por cada cliente. Acredito que tenha que mudar no Model acrescentado o Group by mas não consegui somar os valores