Hi Sebastian, I'm using Export. I didn't know about CloudExport and following your comment, I went back to see how it works... I'm having problems receiving my confirmation and reset emails. None of them arrived at my mailbox. Could you put me in touch with someone from ChromeHeadless.io to help me with that?
But coming back to the actual format that I'm using.
This is my Report View Class :
<?php
use koolreport\widgets\google\BarChart;
use koolreport\widgets\google\ColumnChart;
use koolreport\widgets\google\DonutChart;
use koolreport\widgets\google\PieChart;
use koolreport\widgets\koolphp\Table;
?>
<div class="report-content">
<div class="text-center">
<h1 class="display-1 text-muted">Relatório de Vendas</h1>
<h3 class="display-4"> <b>Data de Início:</b> <?php echo $this->params['dtinicio']->format('d/m/Y') ?> <b>Data de Término: </b>
<?php echo $this->params['dtfim']->format('d/m/Y') ?></h3>
</div>
<?php
Table::create( [
"dataSource"=>$this->dataStore('vendas_por_vendedor_data'),
'showFooter' => true,
'colorScheme' => 'more',
"columns"=> [
'Nome' => [
'label' => 'Vendedor',
'footerText' => "<b>Totais Gerais:</b>",
'cssStyle' => [
'td' => "text-align:right",
'th' => "text-align:center;color:white;background-color:midnightblue",
'tf' => "text-align:center;color:white;background-color:midnightblue",
],
],
'DataPedido' => [
'label' => 'Data do Pedido',
'formatValue' => function ($value,$row) {
return $value->format('d/m/Y');
},
'cssStyle' => [
'td' => "text-align:center",
'th' => "text-align:center;color:white;background-color:midnightblue",
'tf' => "text-align:center;color:white;background-color:midnightblue",
],
],
'QtdVendas' => [
'label' => 'Qtd Vendas',
'formatValue' => function ($value,$row) {
return formataValor($value,true,0);
},
'cssStyle' => [
'td' => "text-align:center",
'th' => "text-align:center;color:white;background-color:midnightblue",
'tf' => "text-align:center;color:white;background-color:midnightblue",
],
'footer' => function ($value) {
return formataValor($value->sum('QtdVendas'),true,0);
},
'footerText' =>"<b>@value</b>",
],
'ValorTelhas' => [
'label' => 'Valor da Venda',
'formatValue' => function ($value,$row) {
return formataValoresEmReais($value);
},
'cssStyle' => [
'td' => "text-align:right",
'th' => "text-align:center;color:white;background-color:midnightblue",
'tf' => "text-align:right;color:white;background-color:midnightblue",
],
'footer' => function ($value) {
return formataValoresEmReais($value->sum('ValorTelhas'));
},
'footerText' =>"<b>@value</b>",
],
'PesoTelhas' => [
'label' => 'Peso KG',
'formatValue' => function ($value, $row) {
return formataValor($value,true,2);
},
'cssStyle' => [
'td' => "text-align:right",
'th' => "text-align:center;color:white;background-color:midnightblue",
'tf' => "text-align:right;color:white;background-color:midnightblue",
],
'footer' => function ($value) {
return formataValor($value->sum('PesoTelhas'),true,2);
},
'footerText' => "<b>@value</b>"
],
'TicketMedio' => [
'label' => 'Ticket Médio',
'formatValue' => function ($value, $row, $cKey) {
return ($row['QtdVendas'] > 0)
? formataValoresEmReais($row['ValorTelhas'] / $row['QtdVendas'])
: formataValoresEmReais(0.00);
},
'cssStyle' => [
'td' => "text-align:right",
'th' => "text-align:center;color:white;background-color:midnightblue",
'tf' => "text-align:right;color:white;background-color:midnightblue",
],
'footer' => function ($value) {
return formataValoresEmReais($value->sum('ValorTelhas') / $value->sum('QtdVendas'));
},
'footerText' => "<b>@value</b>"
],
'PesoMedio' => [
'label' => 'Valor/KG',
'formatValue' => function ($value, $row, $cKey) {
return ($row['PesoTelhas'] > 0)
? formataValoresEmReais($row['ValorTelhas'] / $row['PesoTelhas'])
: formataValoresEmReais(0.00);
},
'cssStyle' => [
'td' => "text-align:right",
'th' => "text-align:center;color:white;background-color:midnightblue",
'tf' => "text-align:right;color:white;background-color:midnightblue",
],
'footer' => function ($value) {
return formataValoresEmReais($value->sum('ValorTelhas') / $value->sum('PesoTelhas'));
},
'footerText' => "<b>@value</b>"
],
'QtdVendasPago' => [
'label' => 'Qtd Vendas (Pg)',
'formatValue' => function ($value) {
return formataValor($value,true,0);
},
'cssStyle' => [
'td' => "text-align:center",
'th' => "text-align:center;color:white;background-color:midnightblue",
'tf' => "text-align:center;color:white;background-color:midnightblue",
],
'footer' => function ($value) {
return formataValor($value->sum('QtdVendasPago'),true,0);
},
'footerText' =>"<b>@value</b>",
],
'ValorTelhasPago' => [
'label' => 'Valor da Venda (Pg)',
'formatValue' => function ($value) {
return formataValoresEmReais($value);
},
'cssStyle' => [
'td' => "text-align:right",
'th' => "text-align:center;color:white;background-color:midnightblue",
'tf' => "text-align:right;color:white;background-color:midnightblue",
],
'footer' => function ($value) {
return formataValoresEmReais($value->sum('ValorTelhasPago'));
},
'footerText' =>"<b>@value</b>",
],
'PesoTelhasPago' => [
'label' => 'Peso KG (Pg)',
'formatValue' => function ($value) {
return formataValor($value,true,2);
},
'cssStyle' => [
'td' => "text-align:right",
'th' => "text-align:center;color:white;background-color:midnightblue",
'tf' => "text-align:right;color:white;background-color:midnightblue",
],
'footer' => function ($value) {
return formataValor($value->sum('PesoTelhasPago'),true,2);
},
'footerText' => "<b>@value</b>"
],
'TicketMedioPago' => [
'label' => 'Ticket Médio (Pg)',
'formatValue' => function ($value, $row, $cKey) {
return ($row['QtdVendasPago'] > 0)
? formataValoresEmReais($row['ValorTelhasPago'] / $row['QtdVendasPago'])
: formataValoresEmReais(0.00);
},
'cssStyle' => [
'td' => "text-align:right",
'th' => "text-align:center;color:white;background-color:midnightblue",
'tf' => "text-align:right;color:white;background-color:midnightblue",
],
'footer' => function ($value) {
return ($value->sum('QtdVendasPago') > 0)
? formataValoresEmReais($value->sum('ValorTelhasPago') / $value->sum('QtdVendasPago'))
: formataValoresEmReais(0.00);
},
'footerText' => "<b>@value</b>"
],
'PesoMedioPago' => [
'label' => 'Valor/KG (Pg)',
'formatValue' => function ($value, $row, $cKey) {
return ($row['PesoTelhasPago'] > 0)
? formataValoresEmReais($row['ValorTelhasPago'] / $row['PesoTelhasPago'])
: formataValoresEmReais(0.00);
},
'cssStyle' => [
'td' => "text-align:right",
'th' => "text-align:center;color:white;background-color:midnightblue",
'tf' => "text-align:right;color:white;background-color:midnightblue",
],
'footer' => function ($value) {
return ($value->sum('PesoTelhasPago') > 0.00)
? formataValoresEmReais($value->sum('ValorTelhasPago') / $value->sum('PesoTelhasPago'))
: formataValoresEmReais(0.00);
},
'footerText' => "<b>@value</b>"
],
],
'grouping' => [
'Nome' => [
'calculate' => [
"{sumQtdVendas}" => ['sum','QtdVendas'],
"{sumValorTelhas}" => ['sum','ValorTelhas'],
"{sumPesoTelhas}" => ['sum','PesoTelhas'],
"{avgTicketMedio}" => function ($store) {
return formataValoresEmReais($store->sum('ValorTelhas') / $store->sum('QtdVendas'));
},
"{avgPesoMedio}" => function ($store) {
return formataValoresEmReais($store->sum('ValorTelhas') / $store->sum('PesoTelhas'));
},
"{sumQtdVendasPago}" => ['sum','QtdVendasPago'],
"{sumValorTelhasPago}" => ['sum','ValorTelhasPago'],
"{sumPesoTelhasPago}" => ['sum','PesoTelhasPago'],
"{avgTicketMedioPago}" => function ($store) {
return ($store->sum('QtdVendasPago') > 0)
? formataValoresEmReais($store->sum('ValorTelhasPago') / $store->sum('QtdVendasPago'))
: formataValoresEmReais(0.00);
},
"{avgPesoMedioPago}" => function ($store) {
return ($store->sum('PesoTelhasPago') > 0.00)
? formataValoresEmReais($store->sum('ValorTelhasPago') / $store->sum('PesoTelhasPago'))
: formataValoresEmReais(0.00);
},
],
'bottom' => "<td class='table-dark' colspan=2><b> Total do Vendedor: {Nome}</b></td>
<td class='table-dark' style='text-align: center;'><b>{sumQtdVendas}</b></td>
<td class='table-dark' style='text-align: right;'><b>{sumValorTelhas}</b></td>
<td class='table-dark' style='text-align: right;'><b>{sumPesoTelhas}</b></td>
<td class='table-dark' style='text-align: right;'><b>{avgTicketMedio}</b></td>
<td class='table-dark' style='text-align: right;'><b>{avgPesoMedio}</b></td>
<td class='table-dark' style='text-align: center;'><b>{sumQtdVendasPago}</b></td>
<td class='table-dark' style='text-align: right;'><b>{sumValorTelhasPago}</b></td>
<td class='table-dark' style='text-align: right;'><b>{sumPesoTelhasPago}</b></td>
<td class='table-dark' style='text-align: right;'><b>{avgTicketMedioPago}</b></td>
<td class='table-dark' style='text-align: right;'><b>{avgPesoMedioPago}</b></td>",
],
],
'sorting' => [
'Nome' => 'asc',
'DataPedido' => 'asc',
],
"cssClass" => [
'table' => 'table-primary table-striped table-hover table-bordered',
],
'groupCellsInColumns' => ['Nome'],
]);
?>
</div>
<div class="text-center">
<h1 class="display-1">Gráficos de Vendas</h1>
</div>
<div class="row">
<div class="col-md-6">
<?php
ray($this->dataStore('vendas_por_vendedor')->toArray());
PieChart::create([
'title' => 'Distribuição em Valores',
'dataSource' => $this->dataStore('vendas_por_vendedor'),
'columns' => [
'Nome',
'ValorTelhas' => [
'type' => 'number',
"prefix" => 'R$ ',
]
]
]);
?>
</div>
<div class="col-md-6">
<?php
ray($this->dataStore('metas_vendas'));
ColumnChart::create([
'title' => 'Vendedores X Metas Mensais',
'dataSource' => $this->dataStore('metas_vendas'),
'columns' => [
'Nome',
'ValorTelhas' => [
'label' => 'Valor Vendas',
'formatValue' => function ($value,$row) {
return formataValoresEmReais($value) ;
},
],
'ValorMetaVendedor' => [
'label' => 'Meta',
'formatValue' => function ($value,$row) {
return formataValoresEmReais($value) ;
},
],
],
]);
?>
</div>
</div>
<div class="row">
<div class="col-md-6">
<?php
BarChart::create([
'title' => 'Preço Médio do Aço',
'dataSource' => $this->dataStore('metas_vendas'),
'columns' => [
'Nome',
'PesoMedio' => [
'label' => 'Média Obtida',
'formatValue' => function ($value,$row) {
return formataValoresEmReais($value) ;
},
],
'PrecoMedio' => [
'label' => 'Média Desejada',
'formatValue' => function ($value,$row) {
return formataValoresEmReais($value) ;
},
],
],
]);
?>
</div>
<div class="col-md-6">
<?php
$dados = $this->dataStore('metasvendas_meta_empresa')->toArray()[0];
$resultado = $this->dataStore('resultados');
ray($resultado);
$resultado = $resultado->reject(function ($data) {
return true;
});
ray($resultado);
$row = ['Tipo' => 'Vendas Realizadas', 'Valor' => $dados['PesoTelhas']];
$resultado->push($row);
$aProduzir = ($dados['PesoTelhas'] / $dados['DiasDecorridos']) * $dados['DiasRemanescentes'];
$row = ['Tipo' => 'Vendas Previstas', 'Valor' => $aProduzir ];
$resultado->push($row);
if ($dados['KgAco'] - $aProduzir > 0.00)
{
$row = ['Tipo' => 'Vendas Faltantes', 'Valor' => $dados['KgAco'] - $aProduzir ];
$resultado->push($row);
}
ray($this->dataStore('resultados'));
DonutChart::create([
'title' => 'Previsão de Atingimento de Metas',
'dataSource' => $resultado,
'columns' => [
'Tipo' ,
'Valor' => [
'formatValue' => function ($value) {
return formataValor($value,true,4) . ' Kg.';
}
]
]
])
?>
</div>
</div>
And this is my Report View for PDF output. There are just slight differences that I introduced just to see the output occurring on another form:
<?php
use koolreport\widgets\google\BarChart;
use koolreport\widgets\google\ColumnChart;
use koolreport\widgets\google\DonutChart;
use koolreport\widgets\google\PieChart;
use koolreport\widgets\koolphp\Table;
?>
<html lang="pt-BR">
<body style="margin:0.5cm 1cm 0.5cm 1cm">
<link rel="stylesheet" href="<?php echo asset('css/bootstrap.min.css')?>"
type="text/css" />
<link rel="stylesheet" href="<?php echo asset('css/bootstrap-theme.min.css')?>"
type="text/css" />
<div class="page-header" style="text-align:right"><i>Nacional Telha</i></div>
<div class="page-footer" style="text-align:right">Pág. {pageNum}</div>
<hr/>
<div class="report-content">
<div class="text-center">
<h1 class="display-1 text-muted">Relatório de Vendas</h1>
<h3 class="display-4"> <b>Data de Início:</b> <?php echo $this->params['dtinicio']->format('d/m/Y') ?> <b>Data de Término: </b>
<?php echo $this->params['dtfim']->format('d/m/Y') ?></h3>
</div>
<?php
Table::create( [
"dataSource"=>$this->dataStore('vendas_por_vendedor_data'),
'showFooter' => true,
"columns"=> [
'Nome' => [
'label' => 'Vendedor',
'footerText' => "<b>Totais Gerais:</b>",
'cssStyle' => [
'td' => "text-align:right;font-size=1rem;",
'th' => "text-align:center;color:white;background-color:midnightblue;font-size=1.5rem;",
'tf' => "text-align:center;color:white;background-color:midnightblue;font-size=1.75rem;",
],
],
'DataPedido' => [
'label' => 'Data do Pedido',
'formatValue' => function ($value,$row) {
return $value->format('d/m/Y');
},
'cssStyle' => [
'td' => "text-align:center",
'th' => "text-align:center;color:white;background-color:midnightblue",
'tf' => "text-align:center;color:white;background-color:midnightblue",
],
],
'QtdVendas' => [
'label' => 'Qtd Vendas',
'formatValue' => function ($value,$row) {
return formataValor($value,true,0);
},
'cssStyle' => [
'td' => "text-align:center",
'th' => "text-align:center;color:white;background-color:midnightblue",
'tf' => "text-align:center;color:white;background-color:midnightblue",
],
'footer' => function ($value) {
return formataValor($value->sum('QtdVendas'),true,0);
},
'footerText' =>"<b>@value</b>",
],
'ValorTelhas' => [
'label' => 'Valor da Venda',
'formatValue' => function ($value,$row) {
return formataValoresEmReais($value);
},
'cssStyle' => [
'td' => "text-align:right",
'th' => "text-align:center;color:white;background-color:midnightblue",
'tf' => "text-align:right;color:white;background-color:midnightblue",
],
'footer' => function ($value) {
return formataValoresEmReais($value->sum('ValorTelhas'));
},
'footerText' =>"<b>@value</b>",
],
'PesoTelhas' => [
'label' => 'Peso KG',
'formatValue' => function ($value, $row) {
return formataValor($value,true,2);
},
'cssStyle' => [
'td' => "text-align:right",
'th' => "text-align:center;color:white;background-color:midnightblue",
'tf' => "text-align:right;color:white;background-color:midnightblue",
],
'footer' => function ($value) {
return formataValor($value->sum('PesoTelhas'),true,2);
},
'footerText' => "<b>@value</b>"
],
'TicketMedio' => [
'label' => 'Ticket Médio',
'formatValue' => function ($value, $row, $cKey) {
return ($row['QtdVendas'] > 0)
? formataValoresEmReais($row['ValorTelhas'] / $row['QtdVendas'])
: formataValoresEmReais(0.00);
},
'cssStyle' => [
'td' => "text-align:right",
'th' => "text-align:center;color:white;background-color:midnightblue",
'tf' => "text-align:right;color:white;background-color:midnightblue",
],
'footer' => function ($value) {
return formataValoresEmReais($value->sum('ValorTelhas') / $value->sum('QtdVendas'));
},
'footerText' => "<b>@value</b>"
],
'PesoMedio' => [
'label' => 'Valor/KG',
'formatValue' => function ($value, $row, $cKey) {
return ($row['PesoTelhas'] > 0)
? formataValoresEmReais($row['ValorTelhas'] / $row['PesoTelhas'])
: formataValoresEmReais(0.00);
},
'cssStyle' => [
'td' => "text-align:right",
'th' => "text-align:center;color:white;background-color:midnightblue",
'tf' => "text-align:right;color:white;background-color:midnightblue",
],
'footer' => function ($value) {
return formataValoresEmReais($value->sum('ValorTelhas') / $value->sum('PesoTelhas'));
},
'footerText' => "<b>@value</b>"
],
'QtdVendasPago' => [
'label' => 'Qtd Vendas (Pg)',
'formatValue' => function ($value) {
return formataValor($value,true,0);
},
'cssStyle' => [
'td' => "text-align:center",
'th' => "text-align:center;color:white;background-color:midnightblue",
'tf' => "text-align:center;color:white;background-color:midnightblue",
],
'footer' => function ($value) {
return formataValor($value->sum('QtdVendasPago'),true,0);
},
'footerText' =>"<b>@value</b>",
],
'ValorTelhasPago' => [
'label' => 'Valor da Venda (Pg)',
'formatValue' => function ($value) {
return formataValoresEmReais($value);
},
'cssStyle' => [
'td' => "text-align:right",
'th' => "text-align:center;color:white;background-color:midnightblue",
'tf' => "text-align:right;color:white;background-color:midnightblue",
],
'footer' => function ($value) {
return formataValoresEmReais($value->sum('ValorTelhasPago'));
},
'footerText' =>"<b>@value</b>",
],
'PesoTelhasPago' => [
'label' => 'Peso KG (Pg)',
'formatValue' => function ($value) {
return formataValor($value,true,2);
},
'cssStyle' => [
'td' => "text-align:right",
'th' => "text-align:center;color:white;background-color:midnightblue",
'tf' => "text-align:right;color:white;background-color:midnightblue",
],
'footer' => function ($value) {
return formataValor($value->sum('PesoTelhasPago'),true,2);
},
'footerText' => "<b>@value</b>"
],
'TicketMedioPago' => [
'label' => 'Ticket Médio (Pg)',
'formatValue' => function ($value, $row, $cKey) {
return ($row['QtdVendasPago'] > 0)
? formataValoresEmReais($row['ValorTelhasPago'] / $row['QtdVendasPago'])
: formataValoresEmReais(0.00);
},
'cssStyle' => [
'td' => "text-align:right",
'th' => "text-align:center;color:white;background-color:midnightblue",
'tf' => "text-align:right;color:white;background-color:midnightblue",
],
'footer' => function ($value) {
return ($value->sum('QtdVendasPago') > 0)
? formataValoresEmReais($value->sum('ValorTelhasPago') / $value->sum('QtdVendasPago'))
: formataValoresEmReais(0.00);
},
'footerText' => "<b>@value</b>"
],
'PesoMedioPago' => [
'label' => 'Valor/KG (Pg)',
'formatValue' => function ($value, $row, $cKey) {
return ($row['PesoTelhasPago'] > 0)
? formataValoresEmReais($row['ValorTelhasPago'] / $row['PesoTelhasPago'])
: formataValoresEmReais(0.00);
},
'cssStyle' => [
'td' => "text-align:right",
'th' => "text-align:center;color:white;background-color:midnightblue",
'tf' => "text-align:right;color:white;background-color:midnightblue",
],
'footer' => function ($value) {
return ($value->sum('PesoTelhasPago') > 0.00)
? formataValoresEmReais($value->sum('ValorTelhasPago') / $value->sum('PesoTelhasPago'))
: formataValoresEmReais(0.00);
},
'footerText' => "<b>@value</b>"
],
],
'grouping' => [
'Nome' => [
'calculate' => [
"{sumQtdVendas}" => ['sum','QtdVendas'],
"{sumValorTelhas}" => ['sum','ValorTelhas'],
"{sumPesoTelhas}" => ['sum','PesoTelhas'],
"{avgTicketMedio}" => function ($store) {
return formataValoresEmReais($store->sum('ValorTelhas') / $store->sum('QtdVendas'));
},
"{avgPesoMedio}" => function ($store) {
return formataValoresEmReais($store->sum('ValorTelhas') / $store->sum('PesoTelhas'));
},
"{sumQtdVendasPago}" => ['sum','QtdVendasPago'],
"{sumValorTelhasPago}" => ['sum','ValorTelhasPago'],
"{sumPesoTelhasPago}" => ['sum','PesoTelhasPago'],
"{avgTicketMedioPago}" => function ($store) {
return ($store->sum('QtdVendasPago') > 0)
? formataValoresEmReais($store->sum('ValorTelhasPago') / $store->sum('QtdVendasPago'))
: formataValoresEmReais(0.00);
},
"{avgPesoMedioPago}" => function ($store) {
return ($store->sum('PesoTelhasPago') > 0.00)
? formataValoresEmReais($store->sum('ValorTelhasPago') / $store->sum('PesoTelhasPago'))
: formataValoresEmReais(0.00);
},
],
'bottom' => "<td class='text-muted h5' colspan=2><b> Total do Vendedor: {Nome}</b></td>
<td class='text-muted h5' style='text-align: center;'><b>{sumQtdVendas}</b></td>
<td class='text-muted h5' style='text-align: right;'><b>{sumValorTelhas}</b></td>
<td class='text-muted h5' style='text-align: right;'><b>{sumPesoTelhas}</b></td>
<td class='text-muted h5' style='text-align: right;'><b>{avgTicketMedio}</b></td>
<td class='text-muted h5' style='text-align: right;'><b>{avgPesoMedio}</b></td>
<td class='text-muted h5' style='text-align: center;'><b>{sumQtdVendasPago}</b></td>
<td class='text-muted h5' style='text-align: right;'><b>{sumValorTelhasPago}</b></td>
<td class='text-muted h5' style='text-align: right;'><b>{sumPesoTelhasPago}</b></td>
<td class='text-muted h5' style='text-align: right;'><b>{avgTicketMedioPago}</b></td>
<td class='text-muted h5' style='text-align: right;'><b>{avgPesoMedioPago}</b></td>",
],
],
'sorting' => [
'Nome' => 'asc',
'DataPedido' => 'asc',
],
"cssClass" => [
'table' => 'table-striped table-bordered small',
],
'groupCellsInColumns' => ['Nome'],
]);
?>
</div>
<div class="page-break"></div>
<div class="text-center">
<h1 class="display-1">Gráficos de Vendas</h1>
</div>
<div class="row">
<div class="col-md-6">
<?php
ray($this->dataStore('vendas_por_vendedor')->toArray());
PieChart::create([
'title' => 'Distribuição em Valores',
'dataSource' => $this->dataStore('vendas_por_vendedor'),
'columns' => [
'Nome',
'ValorTelhas' => [
'type' => 'number',
"prefix" => 'R$ ',
]
]
]);
?>
</div>
<div class="col-md-6">
<?php
ray($this->dataStore('metas_vendas'));
ColumnChart::create([
'title' => 'Vendedores X Metas Mensais',
'dataSource' => $this->dataStore('metas_vendas'),
'columns' => [
'Nome',
'ValorTelhas' => [
'label' => 'Valor Vendas',
'formatValue' => function ($value,$row) {
return formataValoresEmReais($value) ;
},
],
'ValorMetaVendedor' => [
'label' => 'Meta',
'formatValue' => function ($value,$row) {
return formataValoresEmReais($value) ;
},
],
],
]);
?>
</div>
</div>
<div class="row">
<div class="col-md-6">
<?php
BarChart::create([
'title' => 'Preço Médio do Aço',
'dataSource' => $this->dataStore('metas_vendas'),
'columns' => [
'Nome',
'PesoMedio' => [
'label' => 'Média Obtida',
'formatValue' => function ($value,$row) {
return formataValoresEmReais($value) ;
},
],
'PrecoMedio' => [
'label' => 'Média Desejada',
'formatValue' => function ($value,$row) {
return formataValoresEmReais($value) ;
},
],
],
]);
?>
</div>
<div class="col-md-6">
<?php
$dados = $this->dataStore('metasvendas_meta_empresa')->toArray()[0];
ray($dados);
$resultado = $this->dataStore('resultados');
ray($resultado);
$resultado = $resultado->reject(function ($data) {
return true;
});
ray($resultado);
$row = ['Tipo' => 'Vendas Realizadas', 'Valor' => $dados['PesoTelhas']];
$resultado->push($row);
$aProduzir = ($dados['DiasRemanescentes'] == 0) ? 0.00 : ($dados['PesoTelhas'] / $dados['DiasDecorridos'])
* $dados['DiasRemanescentes'];
$row = ['Tipo' => 'Vendas Previstas', 'Valor' => $aProduzir ];
$resultado->push($row);
if ($dados['KgAco'] - $aProduzir > 0.00)
{
$row = ['Tipo' => 'Vendas Faltantes', 'Valor' => $dados['KgAco'] - $aProduzir ];
$resultado->push($row);
}
ray($this->dataStore('resultados'));
DonutChart::create([
'title' => 'Previsão de Atingimento de Metas',
'dataSource' => $resultado,
'columns' => [
'Tipo' ,
'Valor' => [
'formatValue' => function ($value) {
return formataValor($value,true,4) . ' Kg.';
}
]
]
])
?>
</div>
</div>
</body>
</html>
Html Report generated :
PDF REport Generated: