$requestItemDAO = new RequestItemDAO($dataConnector->mysqlConnection); $requestItemDAO->showErrors = 1; $pediodFilter = "data >= '" . $startDate . " 00:00' AND data <= '" . $endDate . " 23:59' "; $supplyRequestArray = $supplyRequestDAO->RetrieveRecordArray("codigoCartaoEquipamento IN (" . $equipmentEnumeration . ") AND " . $pediodFilter); if (sizeof($expenseArray) < 1 && sizeof($indirectCostArray) < 1 && sizeof($supplyRequestArray) < 1) { echo "<tr>"; echo " <td colspan='4' align='center'>Nenhum registro encontrado!</td>"; echo "</tr>"; exit; } $somaTotais = 0; $productionInputDAO = new ProductionInputDAO($dataConnector->mysqlConnection); $productionInputDAO->showErrors = 1; $inputTypeArray = $productionInputDAO->RetrieveInputTypes(); foreach ($expenseArray as $expense) { $serviceCall = $serviceCallDAO->RetrieveRecord($expense->codigoChamado); $serieEquipamento = EquipmentDAO::GetSerialNumber($dataConnector->sqlserverConnection, $serviceCall->codigoCartaoEquipamento); $codigoInsumo = $expense->codigoInsumo; $descricao = $expense->quantidade . ' ' . $expense->nomeItem; if (!empty($codigoInsumo)) { $productionInput = $productionInputDAO->RetrieveRecord($codigoInsumo); $inputType = $inputTypeArray[$productionInput->tipoInsumo]; $numeroChamado = str_pad($expense->codigoChamado, 4, '0', STR_PAD_LEFT); $descricao = "<a href='Frontend/chamados/editar.php?id=" . $expense->codigoChamado . "'>" . $inputType . " ( Número do Chamado: " . $numeroChamado . " )</a>"; } echo '<tr>'; echo ' <td>' . $serviceCall->dataAbertura . '</td>'; echo ' <td>' . $serieEquipamento . '</td>'; echo ' <td>' . $descricao . '</td>'; echo ' <td>' . number_format($expense->totalDespesa, 2, ',', '.') . '</td>'; echo '</tr>';
$calendar = new Calendar(); echo $calendar->GetMonthName($month); ?> Ano: <?php echo $year; ?> </h3> </div> <div style="clear:both;"><br/><br/></div> <hr/> <div style="clear:both;"><br/></div> <table> <tr bgcolor="YELLOW" style="height:30px;" ><td>Cliente</td><td>Nº Série Fabricante</td><td>Modelo</td><td>Fabricante</td><td>Número do Chamado</td><td>Tempo de Atendimento</td><td>Tempo Total Area Técnica</td><td>Valor Despesa (R$)</td></tr> <?php foreach ($laborExpenseArray as $laborExpense) { $serviceCall = $serviceCallDAO->RetrieveRecord($laborExpense->numeroChamado); $cliente = $laborExpense->nomeCliente; $serie = $laborExpense->serieEquipamento; $modelo = $laborExpense->tagModelo; $fabricante = $laborExpense->fabricante; $numeroChamado = $laborExpense->numeroChamado; $tempoAtendimento = $serviceCall->tempoAtendimento; $valorDespesa = $serviceCall->duracaoEmSegundos / $totalEmSegundos * $despesaMensal; echo '<tr bgcolor="WHITE" ><td>' . $cliente . '</td><td>' . $serie . '</td><td>' . $modelo . '</td><td>' . $fabricante . '</td><td>' . $numeroChamado . '</td><td>' . $tempoAtendimento . '</td><td>' . $tempoTotalAtendimento . '</td><td>' . number_format($valorDespesa, 2, ',', '.') . '</td></tr>'; } ?> </table> <div style="clear:both;"><br/></div> </div> <div style="clear:both;"><br/></div>
// Abre a conexao com o banco de dados $dataConnector = new DataConnector('mySql'); $dataConnector->OpenConnection(); if ($dataConnector->mysqlConnection == null) { echo 'Não foi possível se connectar ao bando de dados!'; exit; } // Cria os objetos de mapeamento objeto-relacional $serviceCallDAO = new ServiceCallDAO($dataConnector->mysqlConnection); $serviceCallDAO->showErrors = 1; $readingDAO = new ReadingDAO($dataConnector->mysqlConnection); $readingDAO->showErrors = 1; $counterDAO = new CounterDAO($dataConnector->mysqlConnection); $counterDAO->showErrors = 1; // Busca os dados do chamado $serviceCall = $serviceCallDAO->RetrieveRecord($serviceCallId); echo "<div style='width:50%'>"; echo "<label>Número<br />"; echo "<input type='text' style='width:90%;' value='" . str_pad($serviceCall->id, 5, '0', STR_PAD_LEFT) . "' />"; echo "</label>"; echo "</div>"; echo "<label>Defeito<br />"; echo "<input type='text' style='width:99%;' value='" . $serviceCall->defeito . "' />"; echo "</label>"; echo "<div style='width:50%; float:left'>"; echo "<label>Data de Abertura<br />"; echo "<input type='text' style='width:90%;' value='" . $serviceCall->dataAbertura . "' />"; echo "</label>"; echo "</div>"; echo "<div style='width:50%; float:left'>"; echo "<label>Data de Fechamento<br />";
function BuildReportTable($startColumn, $startRow) { global $dataConnector; global $objPhpExcel; global $month; global $year; global $despesaMensal; global $laborExpenseArray; $serviceCallDAO = new ServiceCallDAO($dataConnector->mysqlConnection); $serviceCallDAO->showErrors = 1; $serviceStatisticsDAO = new ServiceStatisticsDAO($dataConnector->mysqlConnection); $serviceStatisticsDAO->showErrors = 1; // Define o titulo da tabela $currentRow = $startRow; $activeSheet = $objPhpExcel->getActiveSheet(); $activeSheet->setCellValue($startColumn . $startRow, 'CUSTOS DE MÃO DE OBRA'); $styleArray = array('font' => array('bold' => true, 'size' => 16)); $activeSheet->getStyle($startColumn . $startRow . ':' . $startColumn . $startRow)->applyFromArray($styleArray); // Cria o cabeçalho da tabela $colNum = ord($startColumn); $headers = array('Cliente', 'Nº Série Fabricante', 'Modelo', 'Fabricante', 'Número do Chamado', 'Tempo de Atendimento', 'Tempo Total Area Técnica', 'Valor Despesa (R$)'); $offset = 0; foreach ($headers as $header) { $activeSheet->getColumnDimension(chr($colNum + $offset))->setWidth(25); $offset++; } $activeSheet->getColumnDimension(chr($colNum + 3))->setWidth(60); $currentRow++; InsereLinhaPlanilha($currentRow, $startColumn, $headers, PHPExcel_Style_Color::COLOR_YELLOW, 30, PHPExcel_Style_Alignment::HORIZONTAL_CENTER); // Busca as estatísticas de atendimento do mês escolhido $stats = $serviceStatisticsDAO->RetrieveRecord($month, $year); $tempoTotalAtendimento = $stats->tempoEmAtendimento; $totalEmSegundos = $stats->totalEmSegundos; // Gera as linhas da tabela $grandTotal = 0; $valorPrevio = ""; $totalCliente = 0; foreach ($laborExpenseArray as $laborExpense) { $serviceCall = $serviceCallDAO->RetrieveRecord($laborExpense->numeroChamado); $valorDespesa = $serviceCall->duracaoEmSegundos / $totalEmSegundos * $despesaMensal; $valorAtual = $laborExpense->nomeCliente; if ($valorPrevio != $valorAtual) { if (!empty($valorPrevio)) { $currentRow++; $subTotal = array($valorPrevio, '', '', '', '', '', '', number_format($totalCliente, 2, ',', '.')); InsereLinhaPlanilha($currentRow, $startColumn, $subTotal, '80AAFFFF', 20, PHPExcel_Style_Alignment::HORIZONTAL_LEFT); $totalCliente = 0; } $valorPrevio = $valorAtual; } $currentRow++; $row = array(); $row[0] = $laborExpense->nomeCliente; $row[1] = $laborExpense->serieEquipamento; $row[2] = $laborExpense->tagModelo; $row[3] = $laborExpense->fabricante; $row[4] = $laborExpense->numeroChamado; $row[5] = $serviceCall->tempoAtendimento; $row[6] = $tempoTotalAtendimento; $row[7] = number_format($valorDespesa, 2, ',', '.'); InsereLinhaPlanilha($currentRow, $startColumn, $row); $grandTotal += $valorDespesa; $totalCliente += $valorDespesa; } $currentRow++; $subTotal = array($valorPrevio, '', '', '', '', '', '', number_format($totalCliente, 2, ',', '.')); InsereLinhaPlanilha($currentRow, $startColumn, $subTotal, '80AAFFFF', 20, PHPExcel_Style_Alignment::HORIZONTAL_LEFT); $currentRow++; $total = array('Total Geral: ' . number_format($grandTotal, 2, ',', '.'), '0', '0', '0', '0', '0', '0', '0'); InsereLinhaPlanilha($currentRow, $startColumn, $total, 'FFAA2040', 32, PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $activeSheet->mergeCells(chr($colNum + 0) . $currentRow . ':' . chr($colNum + sizeof($headers) - 1) . $currentRow); }