Gerando planilha

This commit is contained in:
Kenio 2025-09-02 17:19:40 -03:00
parent 6d2b858d9d
commit 5b8accbea1
2 changed files with 148 additions and 163 deletions

View file

@ -97,79 +97,58 @@ try{
/** Aumenta o uso de memória */
ini_set('memory_limit','512M');
/** Inicio do relatório */
/** Instancia da classe Mpdf */
$mpdf = new \Mpdf\Mpdf([
'mode' => 'utf-8',
'orientation' => 'L'
]);
/** Prepara o cabeçalho */
$header .= ' <table width="100%" style="margin:none; font-size:11px; font-family:Arial, Helvetica, sans-serif; border-collapse: collapse">';
$header .= ' <tr>';
$header .= ' <td style="text-align: center; width: 95px"><img src="img/logo2.png" style="max-width:140px; padding: 2px"/></td>';
$header .= ' <td colspan="6" style="color: #666">';
$header .= ' <h2>MOVIMENTAÇÕES FINANCEIRAS / ';
/** Verifica o tipo */
if($FinancialMovementsValidate->getType() == 'E'){
$header .= 'ENTRADAS';
}elseif($FinancialMovementsValidate->getType() == 'S'){
$header .= 'SAÍDAS';
}
/**Carrega a biblioteca par agerar o arquivo*/
chdir('library/Excel/phpxls');
require_once 'Writer.php';
chdir('..');
$header .= '</h2>';
/**Instancia da classe*/
$workbook = new Spreadsheet_Excel_Writer(date("Y-m-d").'-'.rand(999,99999).'.xls');
/**Defino o header da planilha*/
$header =& $workbook->addFormat();
$header->setBottom(2);//thick
$header->setBold();
$header->setBgColor('black');
$header->setFgColor(22);
$header->setColor('black');
$header->setFontFamily('Arial');
$header->setSize(8);
$header->setAlign('center');
//Criação da página
$worksheet =& $workbook->addWorksheet("Lista");
//Defino o body da planilha
$body =& $workbook->addFormat();
$body->setColor('black');
$body->setFontFamily('Arial');
$body->setSize(8);
//Definições das colunas
$worksheet->setColumn(0,0,30);//Coluna inicial, coluna final, largura
$worksheet->setColumn(1,1,30);
$worksheet->setColumn(2,2,5);
$worksheet->setColumn(3,3,10);
$worksheet->setColumn(4,5,12);
//Escrevendo o header da planilha
$worksheet->write(0, 0, "REFERÊNCIA", $header);//Linha, coluna, label, parametros
$worksheet->write(0, 1, "VENCIMENTO", $header);
$worksheet->write(0, 2, "PAGAMENTO", $header);
$worksheet->write(0, 3, "DESCRIÇÃO", $header);
$worksheet->write(0, 4, "CNS", $header);
$worksheet->write(0, 5, "OBSERVAÇÃO", $header);
$worksheet->write(0, 6, "VALOR R$", $header);
$worksheet->write(0, 7, "MULTA R$", $header);
$worksheet->write(0, 8, "TAXAS R$", $header);
$worksheet->write(0, 9, "TOTAL R$", $header);
/** Verifica se o período de consulta foi informado */
if(!empty($FinancialMovementsValidate->getDateStart())){
$line=1;//Linha inicial
$col=0;//Coluna inicial
$header .= ' <h4>PERÍODO DE CONSULTA: '.$dateStart.' a '.$dateEnd.'</h4>';
}
$header .= ' </td>';
$header .= ' </tr>';
$header .= ' </table>';
$header .= ' <table width="100%" style="margin:none; font-size:11px; font-family:Arial, Helvetica, sans-serif; border-collapse: collapse;">';
$header .= ' <tr style="background-color: #333;">';
$header .= ' <td style="color: #FFF; padding: 4px; text-align: center; width: 15px"></td>';
$header .= ' <td style="color: #FFF; padding: 4px; text-align: center; width: 90px">REFERÊNCIA</td>';
$header .= ' <td style="color: #FFF; padding: 4px; text-align: center; width: 90px">VENCIMENTO</td>';
$header .= ' <td style="color: #FFF; padding: 4px; text-align: center; width: 90px">PAGAMENTO</td>';
$header .= ' <td style="color: #FFF; padding: 4px; text-align: center">DESCRIÇÃO</td>';
$header .= ' <td style="color: #FFF; padding: 4px; text-align: center">CNS</td>';
$header .= ' <td style="color: #FFF; padding: 4px; text-align: center">OBSERVAÇÃO</td>';
$header .= ' <td style="color: #FFF; padding: 4px; text-align: center; width: 60px">VALOR</td>';
$header .= ' <td style="color: #FFF; padding: 4px; text-align: center; width: 60px">MULTA</td>';
$header .= ' <td style="color: #FFF; padding: 4px; text-align: center; width: 60px">TAXAS</td>';
$header .= ' <td style="color: #FFF; padding: 4px; text-align: center; width: 60px">TOTAL</td>';
$header .= ' </tr>';
$header .= ' </table>';
/** Define i cabeçalho do relatório */
$mpdf->SetHTMLHeader($header);
/** Define o rodapé do relatório */
$mpdf->SetHTMLFooter('
<table width="100%">
<tr>
<td width="100%" align="center">{PAGENO}/{nbpg}</td>
</tr>
</table>');
/** Adicionar as margens da página */
$mpdf->AddPageByArray([
'margin-top' => 28
]);
/** Inicio do corpo do relatório */
$body = '<table width="100%" style="margin:none; font-size:11px; font-family:Arial, Helvetica, sans-serif; border-collapse: collapse; ">';
$body .= ' <tbody>';
/** Consulta as movimentações cadastradas*/
$FinancialMovementsResult = $FinancialMovements->All($companyId, 0, 0,
@ -181,46 +160,30 @@ try{
foreach($FinancialMovementsResult as $FinancialMovementsKey => $Result){
/** Calcula o total de taxas */
$totalFees += $Result->movement_value_registration_tariff+$Result->movement_value_settlement_tariff;
//Escrevendo o body da planilha
$worksheet->write($line, $col++, $Result->movement_reference, $body);
$worksheet->write($line, $col++, date('d/m/Y', strtotime($Result->movement_date_scheduled)), $body);
$worksheet->write($line, $col++, (isset($Result->movement_date_paid) ? date('d/m/Y', strtotime($Result->movement_date_paid)) : ($Main->CheckDay($Result->movement_date_scheduled) > 1 ? $Main->diffDate($Result->movement_date_scheduled, date('Y-m-d')).' dia(s) de atraso' : '')), $body);
$worksheet->write($line, $col++, $Result->description, $body);
$worksheet->write($line, $col++, $Result->cns, $body);
$worksheet->write($line, $col++, ( isset($Result->note) ? $Result->note : '' ), $body);
$worksheet->write($line, $col++, number_format($Result->movement_value, 2, ',', '.'), $body);
$worksheet->write($line, $col++, ( isset($Result->movement_value_paid) ? number_format(($Result->movement_value_paid-$Result->movement_value), 2, ',', '.') : ''), $body);
$worksheet->write($line, $col++, ( isset($Result->movement_value_registration_tariff) ? number_format($Result->movement_value_registration_tariff+$Result->movement_value_settlement_tariff, 2, ',', '.') : ''), $body);
$worksheet->write($line, $col++, ( isset($Result->movement_value_paid) ? number_format(($Result->movement_value_paid+($Result->movement_value_registration_tariff+$Result->movement_value_settlement_tariff)), 2, ',', '.') : number_format($Result->movement_value, 2, ',', '.')), $body);
//Obs: Utiliza-se writeString para escrever numeros em forma de string,
//senão o excel irá ignorar os zeros a esquerda
$body .= ' <tr style="'.($i % 2 == 0 ? 'background-color: #f2f2f2;' : '').'">';
$body .= ' <td style="text-align: center; width: 15px; border: #333 solid 1px; padding: 2px; margin: 1px">'.$i.'</td>';
$body .= ' <td style="text-align: center; width: 90px; border: #333 solid 1px; padding: 2px ; margin: 1px">'.$Result->movement_reference.'</td>';
$body .= ' <td style="text-align: center; width: 90px; border: #333 solid 1px; padding: 2px ; margin: 1px">'.date('d/m/Y', strtotime($Result->movement_date_scheduled)).'</td>';
$body .= ' <td style="text-align: center; width: 90px; border: #333 solid 1px; padding: 2px ; margin: 1px">'.(isset($Result->movement_date_paid) ? date('d/m/Y', strtotime($Result->movement_date_paid)) : ($Main->CheckDay($Result->movement_date_scheduled) > 1 ? $Main->diffDate($Result->movement_date_scheduled, date('Y-m-d')).' dia(s) de atraso' : '')).'</td>';
$body .= ' <td style="text-align: left; border: #333 solid 1px; padding: 2px ; margin: 1px">'.$Result->description.'</td>';
$body .= ' <td style="text-align: left; border: #333 solid 1px; padding: 2px ; margin: 1px">'.$Result->cns.'</td>';
$body .= ' <td style="text-align: left; border: #333 solid 1px; padding: 2px ; margin: 1px">'.( isset($Result->note) ? $Result->note : '' ).'</td>';
$body .= ' <td style="text-align: right; width: 60px; border: #333 solid 1px; padding: 2px ; margin: 1px">'.number_format($Result->movement_value, 2, ',', '.').'</td>';
$body .= ' <td style="text-align: right; width: 60px; border: #333 solid 1px; padding: 2px ; margin: 1px">'.( isset($Result->movement_value_paid) ? number_format(($Result->movement_value_paid-$Result->movement_value), 2, ',', '.') : '').'</td>';
$body .= ' <td style="text-align: right; width: 60px; color:red; border: #333 solid 1px; padding: 2px ; margin: 1px">'.( isset($Result->movement_value_registration_tariff) ? '- '.number_format($Result->movement_value_registration_tariff+$Result->movement_value_settlement_tariff, 2, ',', '.') : '').'</td>';
$body .= ' <td style="text-align: right; width: 60px; border: #333 solid 1px; padding: 2px ; margin: 1px">'.( isset($Result->movement_value_paid) ? number_format(($Result->movement_value_paid+($Result->movement_value_registration_tariff+$Result->movement_value_settlement_tariff)), 2, ',', '.') : number_format($Result->movement_value, 2, ',', '.')).'</td>';
$body .= ' </tr>';
$i++;
/** Contabiliza o total geral */
$totalGeneral += isset($Result->movement_value_paid) ? $Result->movement_value_paid : $Result->movement_value;
}
$body .= ' </tbody>';
$body .= '</table>';
$body .= '<br/>';
$body .= 'Total R$ '.number_format($totalGeneral, 2, ',', '.').'<br/>';
$body .= '<span style="color:red">Total Taxas - R$ '.number_format($totalFees, 2, ',', '.').'</span><br/>';
$body .= 'Total Geral R$ '.number_format(($totalGeneral-$totalFees), 2, ',', '.').'<br/>';
/** Acrescenta os dados ao corpo do relatório */
$mpdf->WriteHTML($body);
$line++;
$col=0;
}
/** Nome que será dado ao relatório */
$nameFile = 'IMPRESSAO-RELATORIO-MOVIMENTACAO-FINANCEIRA-'. date('d-m-Y-H-i-s').'.pdf';
$nameFile = 'IMPRESSAO-RELATORIO-MOVIMENTACAO-FINANCEIRA-'. date('d-m-Y-H-i-s').'.xls';
/** Salva o relatório em uma pasta temporária */
$mpdf->Output($dir.$nameFile);
//Envio o arquivo para download
$workbook->send($dir.$nameFile);
$workbook->close();
/** Verifica se o arquivo foi gerado com sucesso */
if(is_file($dir.$nameFile)){

View file

@ -97,58 +97,79 @@ try{
/** Aumenta o uso de memória */
ini_set('memory_limit','512M');
/** Inicio do relatório */
/**Carrega a biblioteca par agerar o arquivo*/
chdir('library/Excel/phpxls');
require_once 'Writer.php';
chdir('..');
/**Instancia da classe*/
$workbook = new Spreadsheet_Excel_Writer(date("Y-m-d").'-'.rand(999,99999).'.xls');
/**Defino o header da planilha*/
$header =& $workbook->addFormat();
$header->setBottom(2);//thick
$header->setBold();
$header->setBgColor('black');
$header->setFgColor(22);
$header->setColor('black');
$header->setFontFamily('Arial');
$header->setSize(8);
$header->setAlign('center');
//Criação da página
$worksheet =& $workbook->addWorksheet("Lista");
//Defino o body da planilha
$body =& $workbook->addFormat();
$body->setColor('black');
$body->setFontFamily('Arial');
$body->setSize(8);
//Definições das colunas
$worksheet->setColumn(0,0,30);//Coluna inicial, coluna final, largura
$worksheet->setColumn(1,1,30);
$worksheet->setColumn(2,2,5);
$worksheet->setColumn(3,3,10);
$worksheet->setColumn(4,5,12);
//Escrevendo o header da planilha
$worksheet->write(0, 0, "REFERÊNCIA", $header);//Linha, coluna, label, parametros
$worksheet->write(0, 1, "VENCIMENTO", $header);
$worksheet->write(0, 2, "PAGAMENTO", $header);
$worksheet->write(0, 3, "DESCRIÇÃO", $header);
$worksheet->write(0, 4, "CNS", $header);
$worksheet->write(0, 4, "OBSERVAÇÃO", $header);
$worksheet->write(0, 4, "VALOR R$", $header);
$worksheet->write(0, 4, "MULTA R$", $header);
$worksheet->write(0, 4, "TAXAS R$", $header);
$worksheet->write(0, 4, "TOTAL R$", $header);
/** Instancia da classe Mpdf */
$mpdf = new \Mpdf\Mpdf([
'mode' => 'utf-8',
'orientation' => 'L'
]);
$line=1;//Linha inicial
$col=0;//Coluna inicial
/** Prepara o cabeçalho */
$header .= ' <table width="100%" style="margin:none; font-size:11px; font-family:Arial, Helvetica, sans-serif; border-collapse: collapse">';
$header .= ' <tr>';
$header .= ' <td style="text-align: center; width: 95px"><img src="img/logo2.png" style="max-width:140px; padding: 2px"/></td>';
$header .= ' <td colspan="6" style="color: #666">';
$header .= ' <h2>MOVIMENTAÇÕES FINANCEIRAS / ';
/** Verifica o tipo */
if($FinancialMovementsValidate->getType() == 'E'){
$header .= 'ENTRADAS';
}elseif($FinancialMovementsValidate->getType() == 'S'){
$header .= 'SAÍDAS';
}
$header .= '</h2>';
/** Verifica se o período de consulta foi informado */
if(!empty($FinancialMovementsValidate->getDateStart())){
$header .= ' <h4>PERÍODO DE CONSULTA: '.$dateStart.' a '.$dateEnd.'</h4>';
}
$header .= ' </td>';
$header .= ' </tr>';
$header .= ' </table>';
$header .= ' <table width="100%" style="margin:none; font-size:11px; font-family:Arial, Helvetica, sans-serif; border-collapse: collapse;">';
$header .= ' <tr style="background-color: #333;">';
$header .= ' <td style="color: #FFF; padding: 4px; text-align: center; width: 15px"></td>';
$header .= ' <td style="color: #FFF; padding: 4px; text-align: center; width: 90px">REFERÊNCIA</td>';
$header .= ' <td style="color: #FFF; padding: 4px; text-align: center; width: 90px">VENCIMENTO</td>';
$header .= ' <td style="color: #FFF; padding: 4px; text-align: center; width: 90px">PAGAMENTO</td>';
$header .= ' <td style="color: #FFF; padding: 4px; text-align: center">DESCRIÇÃO</td>';
$header .= ' <td style="color: #FFF; padding: 4px; text-align: center">CNS</td>';
$header .= ' <td style="color: #FFF; padding: 4px; text-align: center">OBSERVAÇÃO</td>';
$header .= ' <td style="color: #FFF; padding: 4px; text-align: center; width: 60px">VALOR</td>';
$header .= ' <td style="color: #FFF; padding: 4px; text-align: center; width: 60px">MULTA</td>';
$header .= ' <td style="color: #FFF; padding: 4px; text-align: center; width: 60px">TAXAS</td>';
$header .= ' <td style="color: #FFF; padding: 4px; text-align: center; width: 60px">TOTAL</td>';
$header .= ' </tr>';
$header .= ' </table>';
/** Define i cabeçalho do relatório */
$mpdf->SetHTMLHeader($header);
/** Define o rodapé do relatório */
$mpdf->SetHTMLFooter('
<table width="100%">
<tr>
<td width="100%" align="center">{PAGENO}/{nbpg}</td>
</tr>
</table>');
/** Adicionar as margens da página */
$mpdf->AddPageByArray([
'margin-top' => 28
]);
/** Inicio do corpo do relatório */
$body = '<table width="100%" style="margin:none; font-size:11px; font-family:Arial, Helvetica, sans-serif; border-collapse: collapse; ">';
$body .= ' <tbody>';
/** Consulta as movimentações cadastradas*/
$FinancialMovementsResult = $FinancialMovements->All($companyId, 0, 0,
@ -166,16 +187,17 @@ try{
$body .= ' <tr style="'.($i % 2 == 0 ? 'background-color: #f2f2f2;' : '').'">';
$body .= ' <td style="text-align: center; width: 90px">'.$Result->movement_reference.'</td>';
$body .= ' <td style="text-align: center; width: 90px">'.date('d/m/Y', strtotime($Result->movement_date_scheduled)).'</td>';
$body .= ' <td style="text-align: center; width: '.($FinancialMovementsValidate->getStatusSearch() == 1 ? '120' : '90').'px">'.(isset($Result->movement_date_paid) ? date('d/m/Y', strtotime($Result->movement_date_paid)) : ($Main->CheckDay($Result->movement_date_scheduled) > 1 ? $Main->diffDate($Result->movement_date_scheduled, date('Y-m-d')).' dia(s) de atraso' : '')).'</td>';
$body .= ' <td style="text-align: left">'.$Result->description.'</td>';
$body .= ' <td style="text-align: left">'.$Result->cns.'</td>';
$body .= ' <td style="text-align: left">'.( isset($Result->note) ? $Result->note : '' ).'</td>';
$body .= ' <td style="text-align: right; width: 60px">'.number_format($Result->movement_value, 2, ',', '.').'</td>';
$body .= ' <td style="text-align: right; width: 60px">'.( isset($Result->movement_value_paid) ? number_format(($Result->movement_value_paid-$Result->movement_value), 2, ',', '.') : '').'</td>';
$body .= ' <td style="text-align: right; width: 60px">'.( isset($Result->movement_value_registration_tariff) ? number_format($Result->movement_value_registration_tariff+$Result->movement_value_settlement_tariff, 2, ',', '.') : '').'</td>';
$body .= ' <td style="text-align: right; width: 60px">'.( isset($Result->movement_value_paid) ? number_format(($Result->movement_value_paid+($Result->movement_value_registration_tariff+$Result->movement_value_settlement_tariff)), 2, ',', '.') : number_format($Result->movement_value, 2, ',', '.')).'</td>';
$body .= ' <td style="text-align: center; width: 15px; border: #333 solid 1px; padding: 2px; margin: 1px">'.$i.'</td>';
$body .= ' <td style="text-align: center; width: 90px; border: #333 solid 1px; padding: 2px ; margin: 1px">'.$Result->movement_reference.'</td>';
$body .= ' <td style="text-align: center; width: 90px; border: #333 solid 1px; padding: 2px ; margin: 1px">'.date('d/m/Y', strtotime($Result->movement_date_scheduled)).'</td>';
$body .= ' <td style="text-align: center; width: 90px; border: #333 solid 1px; padding: 2px ; margin: 1px">'.(isset($Result->movement_date_paid) ? date('d/m/Y', strtotime($Result->movement_date_paid)) : ($Main->CheckDay($Result->movement_date_scheduled) > 1 ? $Main->diffDate($Result->movement_date_scheduled, date('Y-m-d')).' dia(s) de atraso' : '')).'</td>';
$body .= ' <td style="text-align: left; border: #333 solid 1px; padding: 2px ; margin: 1px">'.$Result->description.'</td>';
$body .= ' <td style="text-align: left; border: #333 solid 1px; padding: 2px ; margin: 1px">'.$Result->cns.'</td>';
$body .= ' <td style="text-align: left; border: #333 solid 1px; padding: 2px ; margin: 1px">'.( isset($Result->note) ? $Result->note : '' ).'</td>';
$body .= ' <td style="text-align: right; width: 60px; border: #333 solid 1px; padding: 2px ; margin: 1px">'.number_format($Result->movement_value, 2, ',', '.').'</td>';
$body .= ' <td style="text-align: right; width: 60px; border: #333 solid 1px; padding: 2px ; margin: 1px">'.( isset($Result->movement_value_paid) ? number_format(($Result->movement_value_paid-$Result->movement_value), 2, ',', '.') : '').'</td>';
$body .= ' <td style="text-align: right; width: 60px; color:red; border: #333 solid 1px; padding: 2px ; margin: 1px">'.( isset($Result->movement_value_registration_tariff) ? '- '.number_format($Result->movement_value_registration_tariff+$Result->movement_value_settlement_tariff, 2, ',', '.') : '').'</td>';
$body .= ' <td style="text-align: right; width: 60px; border: #333 solid 1px; padding: 2px ; margin: 1px">'.( isset($Result->movement_value_paid) ? number_format(($Result->movement_value_paid+($Result->movement_value_registration_tariff+$Result->movement_value_settlement_tariff)), 2, ',', '.') : number_format($Result->movement_value, 2, ',', '.')).'</td>';
$body .= ' </tr>';
$i++;
@ -188,7 +210,7 @@ try{
$body .= '<br/>';
$body .= 'Total R$ '.number_format($totalGeneral, 2, ',', '.').'<br/>';
$body .= 'Total Taxas R$ '.number_format($totalFees, 2, ',', '.').'<br/>';
$body .= '<span style="color:red">Total Taxas - R$ '.number_format($totalFees, 2, ',', '.').'</span><br/>';
$body .= 'Total Geral R$ '.number_format(($totalGeneral-$totalFees), 2, ',', '.').'<br/>';
/** Acrescenta os dados ao corpo do relatório */