From 2ab583cd8a7d866c39ee05d4375e7073cc2af416 Mon Sep 17 00:00:00 2001 From: Emerson Date: Tue, 21 Jan 2025 13:56:58 -0300 Subject: [PATCH] =?UTF-8?q?DACT-e=20n=C3=A3o=20exibe=20os=20valores=20das?= =?UTF-8?q?=20unidades=20de=20medida=2004=20-=20Litros=20e=2005=20-=20MMBT?= =?UTF-8?q?U?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ajustes afim de melhorar a exibição da unidade de medida no DA do CT-e. Veja mais na issue 630. --- src/CTe/Dacte.php | 38 +++++++++++++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/src/CTe/Dacte.php b/src/CTe/Dacte.php index b6921690..10274a88 100644 --- a/src/CTe/Dacte.php +++ b/src/CTe/Dacte.php @@ -1647,19 +1647,51 @@ protected function descricaoCarga($x = 0, $y = 0) $aFont = $this->formatPadrao; $this->pdf->textBox($x + 85, $y, $w, $h, $texto, $aFont, 'T', 'L', 0, ''); $qCarga = 0; + $qCargaLitro = 0; + $qCargaMMBTU = 0; foreach ($this->infQ as $infQ) { if ($this->getTagValue($infQ, "cUnid") == '03') { $qCarga += (float)$this->getTagValue($infQ, "qCarga"); } + if ($this->getTagValue($infQ, "cUnid") == '04') { + $qCargaLitro += (float)$this->getTagValue($infQ, "qCarga"); + } + if ($this->getTagValue($infQ, "cUnid") == '05') { + $qCargaMMBTU += (float)$this->getTagValue($infQ, "qCarga"); + } } - $texto = !empty($qCarga) ? number_format($qCarga, 3, ",", ".") : ''; + + $texto = !empty($qCarga) ? 'Unidades: ' . number_format($qCarga, 3, ",", ".") : ''; + if ($texto <> '') { + /* se MMBTU não está vazio então vamos exibir unidade e litros na mesma linha */ + if (!empty($qCargaMMBTU)) + $texto = $texto . (!empty($qCargaLitro) ? ' - Litros: ' . number_format($qCargaLitro, 3, ",", ".") : ''); + } else { + $texto = !empty($qCargaLitro) ? 'Litros: ' . number_format($qCargaLitro, 3, ",", ".") : ''; + } + $aFont = array( 'font' => $this->fontePadrao, 'size' => 7, 'style' => 'B'); - $this->pdf->textBox($x + 85, $y + 3, $w, $h, $texto, $aFont, 'T', 'L', 0, ''); + $this->pdf->textBox($x + 73, $y + 2.5, $w, $h, $texto, $aFont, 'T', 'L', 0, ''); + + /* se MMBTU está VAZIO e unidade foi informada, então vamos exibir o litros na linha debaixo */ + if (empty($qCargaMMBTU) && !empty($qCarga)) { + $texto = !empty($qCargaLitro) ? 'Litros: ' . number_format($qCargaLitro, 3, ",", ".") : ''; + $this->pdf->textBox($x + 73, $y + 5.5, $w, $h, $texto, $aFont, 'T', 'L', 0, ''); + } + + $texto = !empty($qCargaMMBTU) ? 'MMBTU: ' . number_format($qCargaMMBTU, 3, ",", ".") : ''; + + /* Se não foi informado Litros ou Unidades então vamos exibir na primeira linha */ + if (empty($qCarga) && empty($qCargaLitro)) + $this->pdf->textBox($x + 73, $y + 3, $w, $h, $texto, $aFont, 'T', 'L', 0, ''); + else + $this->pdf->textBox($x + 73, $y + 5.5, $w, $h, $texto, $aFont, 'T', 'L', 0, ''); + $x = $w * 0.53; - $this->pdf->line($x + 56, $y, $x + 56, $y + 9); + $this->pdf->line($x + 56, $y, $x + 56, $y + 10); /*$texto = 'NOME DA SEGURADORA'; $aFont = $this->formatPadrao; $this->pdf->textBox($x, $y, $w, $h, $texto, $aFont, 'T', 'L', 0, '');