$subContractId = $_REQUEST["subContractId"]; } // Abre a conexao com o banco de dados $dataConnector = new DataConnector('both'); $dataConnector->OpenConnection(); if ($dataConnector->mysqlConnection == null || $dataConnector->sqlserverConnection == null) { echo 'Não foi possível se connectar ao bando de dados!'; exit; } // Cria o objeto de mapeamento objeto-relacional $contractItem = new ContractItemDTO(); // Busca o código do Parceiro de Negócios $businessPartnerCode = ""; $subContractDAO = new SubContractDAO($dataConnector->mysqlConnection); $subContractDAO->showErrors = 1; $subContract = $subContractDAO->RetrieveRecord($subContractId); if ($subContract != null) { $contractDAO = new ContractDAO($dataConnector->mysqlConnection); $contractDAO->showErrors = 1; $contract = $contractDAO->RetrieveRecord($subContract->codigoContrato); $businessPartnerCode = $contract->pn; } ?> <script type="text/javascript" > function GetEquipmentInfo() { var equipmentCode = $("select[name=equipmentCode]").val(); if (!equipmentCode) equipmentCode = 0; var targetUrl = "AjaxCalls/GetEquipmentInfo.php?equipmentCode=" + equipmentCode; $("form[name=fDados]").append("<div id='popup'></div>");
function BuildRows($valuesOnly) { global $dataConnector; global $itemArray; global $calculoFaturamento; global $totalContadores; // Cria os objetos de mapeamento objeto-relacional $subContractDAO = new SubContractDAO($dataConnector->mysqlConnection); $subContractDAO->showErrors = 1; $businessPartnerDAO = new BusinessPartnerDAO($dataConnector->sqlserverConnection); $businessPartnerDAO->showErrors = 1; $equipmentDAO = new EquipmentDAO($dataConnector->sqlserverConnection); $equipmentDAO->showErrors = 1; $inventoryItemDAO = new InventoryItemDAO($dataConnector->sqlserverConnection); $inventoryItemDAO->showErrors = 1; // Para cada equipamento monta os dados de faturamento foreach ($itemArray as $contractItem) { $equipmentId = $contractItem->codigoCartaoEquipamento; $subContract = $subContractDAO->RetrieveRecord($contractItem->codigoSubContrato); $contractType = $subContract->codigoTipoContrato; $contractDTO = $calculoFaturamento->GetContract($dataConnector->mysqlConnection, $subContract->id); $divisor = $calculoFaturamento->GetDivisor($dataConnector->mysqlConnection, $contractDTO, $subContract); // divisor para calculo da média (no caso de contrato global) // Caso o status do contrato seja finalizado ou cancelado não fatura, passa para o proximo equipamento if ($contractDTO->status == 3 || $contractDTO->status == 4) { continue; } $equipmentDTO = $equipmentDAO->RetrieveRecord($equipmentId); $inventoryItem = $inventoryItemDAO->RetrieveRecord($equipmentDTO->itemCode); $contractTypeInfo = $calculoFaturamento->GetTipoContratoAsText($contractType); $equipmentInfo = GetEquipmentInfo($equipmentDTO, $contractTypeInfo); echo '<tr bgcolor="LIGHTGRAY" ><td colspan="11" >' . $equipmentInfo . '</td></tr>'; $counterIdArray = array_keys($calculoFaturamento->GetContadores()); foreach ($counterIdArray as $counterId) { $billingSummary = $totalContadores[$counterId]; $formaCobranca = $calculoFaturamento->GetFormaCobranca($subContract->id, $counterId); $consumo = $calculoFaturamento->GetConsumo($equipmentId, $counterId); $consumoGlobal = 0; $excedenteGlobal = 0; if ($contractDTO->global) { $consumoGlobal = $calculoFaturamento->GetConsumoGlobal($dataConnector->mysqlConnection, $contractDTO->id, $counterId); $franquiaGlobal = $calculoFaturamento->GetFranquiaGlobal($dataConnector->mysqlConnection, $counterId); $excedenteGlobal = $consumoGlobal > $franquiaGlobal ? $consumoGlobal - $franquiaGlobal : 0; if ($franquiaGlobal == 0) { $excedenteGlobal = 0; } } $modalidadeMedicao = 0; $fixo = 0.0; $variavelDefault = 0.0; $franquia = 0; $individualPorCapacidade = 0; if ($formaCobranca != null) { $modalidadeMedicao = $formaCobranca->modalidadeMedicao; $fixo = $formaCobranca->fixo / $divisor; $variavelDefault = $formaCobranca->variavel; $franquia = $formaCobranca->franquia / $divisor; $individualPorCapacidade = $formaCobranca->individual; if ($individualPorCapacidade) { $franquia = $equipmentDTO->capacity; } } if ($modalidadeMedicao == 1) { // Sem leituras $rowData = '<td>' . $calculoFaturamento->GetContadorAsText($counterId) . '</td><td>Sem leitura</td><td>Sem leitura</td><td>Sem leitura</td><td>0</td><td>0</td><td>0</td><td>0</td><td>' . formatBrCurrency($fixo, 2) . '</td><td>0</td><td>' . formatBrCurrency($fixo, 2) . '</td>'; if ($valuesOnly) { $rowData = '<td>' . $equipmentId . '</td><td>' . $contractTypeInfo . '</td><td>' . $counterId . '</td><td>Sem leitura</td><td>Sem leitura</td><td>Sem leitura</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>' . $fixo . '</td><td>0</td><td>' . $fixo . '</td>'; } echo '<tr bgcolor="WHITE" >' . $rowData . '</tr>'; $billingSummary->valorFixo += $fixo; $billingSummary->excedente += 0; $billingSummary->valorTotal += $fixo; } if ($consumo != null && $modalidadeMedicao != 1) { $dataLeitura = $consumo->dataLeitura; $medicaoInicial = $consumo->medicaoInicial; $medicaoFinal = $consumo->medicaoFinal; $consumoMedido = $consumo->total; $ajuste = $consumo->ajusteTotal; $excedente = $consumoMedido > $franquia ? $consumoMedido - $franquia : 0; if ($contractDTO->global && !$individualPorCapacidade) { $excedente = $excedenteGlobal / sizeof($itemArray); } if ($franquia == 0) { $excedente = 0; } $tarifaExcedente = $calculoFaturamento->GetCustoVariavel($subContract->id, $counterId, $consumoMedido, $variavelDefault); if ($contractDTO->global && !$individualPorCapacidade) { $tarifaExcedente = $calculoFaturamento->GetCustoVariavel($subContract->id, $counterId, $consumoGlobal, $variavelDefault); } $valorFixo = $fixo; $valorVariavel = $franquia != 0 ? $excedente * $tarifaExcedente : $consumoMedido * $tarifaExcedente; $valorTotal = $valorFixo + $valorVariavel; $rowData = '<td>' . $calculoFaturamento->GetContadorAsText($counterId) . '</td><td>' . date("d/m/Y", $dataLeitura) . '</td><td>' . $medicaoFinal . '</td><td>' . $medicaoInicial . '</td><td>' . $consumoMedido . '<br/>(Acrésc/Desc = ' . $ajuste . ')' . '</td><td>' . formatDecimal($franquia, 2) . '</td><td>' . round($excedente) . '</td><td>' . formatDecimal($tarifaExcedente, null) . '</td><td>' . formatBrCurrency($valorFixo, 2) . '</td><td>' . formatBrCurrency($valorVariavel, 2) . '</td><td>' . formatBrCurrency($valorTotal, 2) . '</td>'; if ($valuesOnly) { $rowData = '<td>' . $equipmentId . '</td><td>' . $contractTypeInfo . '</td><td>' . $counterId . '</td><td>' . date("Y-m-d", $dataLeitura) . '</td><td>' . $medicaoFinal . '</td><td>' . $medicaoInicial . '</td><td>' . $consumoMedido . '</td><td>' . $ajuste . '</td><td>' . $franquia . '</td><td>' . $excedente . '</td><td>' . $tarifaExcedente . '</td><td>' . $valorFixo . '</td><td>' . $valorVariavel . '</td><td>' . $valorTotal . '</td>'; } echo '<tr bgcolor="WHITE" >' . $rowData . '</tr>'; $billingSummary->consumo += $consumoMedido; $billingSummary->franquia += $franquia; $billingSummary->excedente += $excedente; $billingSummary->valorFixo += $valorFixo; $billingSummary->valorVariavel += $valorVariavel; $billingSummary->valorTotal += $valorTotal; } } // foreach de tipos de contador } // foreach de itens de faturamento (equipamentos) }
$contractDAO->showErrors = 1; $contractItemDAO = new ContractItemDAO($dataConnector->mysqlConnection); $contractItemDAO->showErrors = 1; $subContractDAO = new SubContractDAO($dataConnector->mysqlConnection); $subContractDAO->showErrors = 1; // Busca os contratos pertencentes ao parceiro de negócios $contractArray = $contractDAO->RetrieveRecordArray("pn='" . $businessPartnerCode . "'"); // Busca os items de contrato pertencentes ao parceiro de negócios $itemArray = $contractItemDAO->RetrieveRecordArray("businessPartnerCode = '" . $businessPartnerCode . "'"); echo '<option value="0" >Agrupar equips. do cliente(independente do contrato)</option>'; $contractIdArray = array(); foreach ($contractArray as $contract) { array_push($contractIdArray, $contract->id); } foreach ($itemArray as $contractItem) { $subContract = $subContractDAO->RetrieveRecord($contractItem->codigoSubContrato); if (!in_array($subContract->codigoContrato, $contractIdArray)) { array_push($contractIdArray, $subContract->codigoContrato); } } foreach ($contractIdArray as $id) { $contract = $contractDAO->RetrieveRecord($id); $status = ContractDAO::GetStatusAsText($contract->status); $attributes = ""; if ($contract->id == $contractId) { $attributes = "selected='selected'"; } echo '<option ' . $attributes . ' value="' . $contract->id . '" >' . str_pad($contract->numero, 5, '0', STR_PAD_LEFT) . ' [SYS ID=' . $contract->id . ' STATUS=' . $status . ']</option>'; } // Fecha a conexão com o banco de dados $dataConnector->CloseConnection();
function GetContract($mysqlConnection, $subContractId) { // Cria os objetos de mapeamento objeto-relacional $contractDAO = new ContractDAO($mysqlConnection); $contractDAO->showErrors = 1; $subContractDAO = new SubContractDAO($mysqlConnection); $subContractDAO->showErrors = 1; // Busca o contrato a que pertence $subContract = $subContractDAO->RetrieveRecord($subContractId); $contract = $contractDAO->RetrieveRecord($subContract->codigoContrato); return $contract; }