Gerando relatório

This commit is contained in:
Kenio 2025-09-02 19:17:36 -03:00
parent e4ebc4fc2b
commit b1075edf4f

View file

@ -95,15 +95,13 @@ try{
if ($NumberRecords > 0){
/** Aumenta o uso de memória */
ini_set('memory_limit','512M');
/** Inicio do relatório */
ini_set('memory_limit','512M');
/** 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">';
@ -133,23 +131,52 @@ try{
$header .= ' </td>';
$header .= ' </tr>';
$header .= ' </table>';
$header .= ' </table>';
/** Verifica o tipo da impressão */
switch($FinancialMovementsValidate->getType()){
$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>';
case 'E':
$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>';
break;
case 'S':
$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">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">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">TOTAL</td>';
$header .= ' </tr>';
$header .= ' </table>';
break;
}
/** Define i cabeçalho do relatório */
$mpdf->SetHTMLHeader($header);
@ -179,39 +206,95 @@ try{
$FinancialMovementsValidate->getDateStart(),
$FinancialMovementsValidate->getDateEnd());
foreach($FinancialMovementsResult as $FinancialMovementsKey => $Result){
/** Calcula o total de taxas */
$totalFees += $Result->movement_value_registration_tariff+$Result->movement_value_settlement_tariff;
/** Verifica o tipo da impressão */
switch($FinancialMovementsValidate->getType()){
$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++;
case 'E':
foreach($FinancialMovementsResult as $FinancialMovementsKey => $Result){
/** Calcula o total de taxas */
$totalFees += $Result->movement_value_registration_tariff+$Result->movement_value_settlement_tariff;
$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;
}
break;
case 'S':
foreach($FinancialMovementsResult as $FinancialMovementsKey => $Result){
/** Calcula o total de taxas */
$totalFees += $Result->movement_value_registration_tariff+$Result->movement_value_settlement_tariff;
$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">'.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">'.( 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; 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;
}
break;
/** 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/>';
/** Verifica o tipo da impressão */
switch($FinancialMovementsValidate->getType()){
case 'E':
$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/>';
break;
case 'S':
$body .= '<br/>';
$body .= 'Total R$ '.number_format($totalGeneral, 2, ',', '.').'<br/>';
break;
}
/** Acrescenta os dados ao corpo do relatório */
$mpdf->WriteHTML($body);