Olá pessoal, estou começando a pouco a gostar da programação, principalmente do PHP.
Tenho duas strings $totalProdutos e $totalServico que de acordo com o código estão somando os valores e carregando o QR Code,
mas eu gostaria que fosse da seguinte forma:
Se $totalServico = 0 então carregue $totalProdutos
Mas Se $totalServico != 0 e < $totalProdutos então carregue $totalServico
Acredito que seria nessa linha a alteração: $amount = round(floatval($result['totalServico'] + $result['totalProdutos']), 2); porém não estou conseguindo fazer
Esse é o código da pasta models do codeignater:
<?php
use Piggly\Pix\StaticPayload;
class Os_model extends CI_Model
{
public function getProdutos($id = null)
{
$this->db->select('produtos_os.*, produtos.*');
$this->db->from('produtos_os');
$this->db->join('produtos', 'produtos.idProdutos = produtos_os.produtos_id');
$this->db->where('os_id', $id);
return $this->db->get()->result();
}
public function getServicos($id = null)
{
$this->db->select('servicos_os.*, servicos.nome, servicos.preço as precoVenda');
$this->db->from('servicos_os');
$this->db->join('servicos', 'servicos.idServicos = servicos_os.servicos_id');
$this->db->where('os_id', $id);
return $this->db->get()->result();
}
public function valorTotalOS($id = null)
{
$totalServico = 0;
$totalProdutos = 0;
if ($servicos = $this->getServicos($id)) {
foreach ($servicos as $s) {
$totalServico = $totalServico + $s->preço;
}
}
if ($produtos = $this->getProdutos($id)) {
foreach ($produtos as $p) {
$totalProdutos = $totalProdutos + $p->subTotal;
}
}
return ['totalServico' => $totalServico, 'totalProdutos' => $totalProdutos];
}
public function getQrCode($id, $pixKey, $emitente)
{
if (empty($id) || empty($pixKey) || empty($emitente)) {
return;
}
$result = $this->valorTotalOS($id);
$amount = round(floatval($result['totalServico'] + $result['totalProdutos']), 2);
if ($amount <= 0) {
return;
}
$pix = (new StaticPayload())
->applyValidCharacters()
->applyUppercase()
->setPixKey(getPixKeyType($pixKey), $pixKey)
->setMerchantName($emitente->nome, true)
->setMerchantCity($emitente->cidade, true)
->setAmount($amount)
->setTid($id)
->setDescription(sprintf("%s OS %s", $emitente->nome, $id), true);
return $pix->getQRCode();
}
}
E esse é o PHP que carrega o QR CODE:
<?php if ($qrCode) : ?>
<td style="width: 15%; padding-left: 0">
<img style="margin:12px auto;" src="<?= $qrCode ?>" alt="QR Code de Pagamento" />
</td>
<?php endif ?>