$subContractId = $_REQUEST["subContractId"];
}
// 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;
}
$nivelAutorizacao = GetAuthorizationLevel($dataConnector->mysqlConnection, $functionalities["gerenciamentoContratos"]);
if ($nivelAutorizacao <= 1) {
    DisplayNotAuthorizedWarning();
    exit;
}
// Cria os objetos de mapeamento objeto-relacional
$contractBonusDAO = new ContractBonusDAO($dataConnector->mysqlConnection);
$contractBonusDAO->showErrors = 1;
$counterDAO = new CounterDAO($dataConnector->mysqlConnection);
$counterDAO->showErrors = 1;
// Busca os bonus associados ao subContrato
$bonusArray = $contractBonusDAO->RetrieveRecordArray("subcontrato_id = " . $subContractId . " ORDER BY de, ate");
if (sizeof($bonusArray) == 0) {
    echo '<tr><td colspan="5" align="center" >Nenhum registro encontrado!</td></tr>';
}
foreach ($bonusArray as $contractBonus) {
    $counter = $counterDAO->RetrieveRecord($contractBonus->codigoContador);
    ?>
    <tr>
        <td >
            <?php 
    echo $counter->nome;
Esempio n. 2
0
include_once "../../../DataTransferObjects/ActionLogDTO.php";
if (!isset($_REQUEST["acao"]) || !isset($_REQUEST["contractId"])) {
    echo "Erro no processamento da requisição.";
    exit;
}
$acao = $_REQUEST["acao"];
$contractId = $_REQUEST['contractId'];
// 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
$contractBonusDAO = new ContractBonusDAO($dataConnector->mysqlConnection);
$contractBonusDAO->showErrors = 1;
$actionLogDAO = new ActionLogDAO($dataConnector->mysqlConnection);
$actionLogDAO->showErrors = 1;
if ($acao == "store") {
    $id = 0;
    $transactionType = 'INSERT';
    $contractBonus = new ContractBonusDTO();
    if (isset($_REQUEST["id"]) && $_REQUEST["id"] != 0) {
        $id = $_REQUEST["id"];
        $transactionType = 'UPDATE';
        $contractBonus = $contractBonusDAO->RetrieveRecord($id);
    }
    $contractBonus->codigoContrato = $_REQUEST["contractId"];
    $contractBonus->codigoSubContrato = $_REQUEST["subContractId"];
    $contractBonus->codigoContador = $_REQUEST["counterId"];
Esempio n. 3
0
 function BillingEngine($dataConnector, $listaSubContratos, $itemArray, $startDate = null, $endDate = null)
 {
     $this->listaSubContratos = $listaSubContratos;
     $this->arrayItens = $itemArray;
     $this->consumos = array();
     $this->franquias = array();
     // Busca os contadores cadastrados no sistema
     $counterDAO = new CounterDAO($dataConnector->mysqlConnection);
     $counterDAO->showErrors = 1;
     $counterArray = $counterDAO->RetrieveRecordArray();
     $this->contadores = array();
     foreach ($counterArray as $counter) {
         $this->contadores[$counter->id] = $counter->nome;
     }
     // Busca os tipos de contrato cadastrados no sistema
     $contractTypeDAO = new ContractTypeDAO($dataConnector->mysqlConnection);
     $contractTypeDAO->showErrors = 1;
     $contractTypeArray = $contractTypeDAO->RetrieveRecordArray();
     $this->tiposContrato = array();
     foreach ($contractTypeArray as $contractType) {
         $this->tiposContrato[$contractType->id] = $contractType->nome . ' (' . $contractType->sigla . ')';
     }
     // Busca as formas de cobrança cadastradas nos subcontratos
     $contractChargeDAO = new ContractChargeDAO($dataConnector->mysqlConnection);
     $contractChargeDAO->showErrors = 1;
     $chargeArray = $contractChargeDAO->RetrieveRecordArray("subContrato_id IN (" . $listaSubContratos . ")");
     $this->formasCobranca = array();
     foreach ($chargeArray as $contractCharge) {
         $key = $contractCharge->codigoSubContrato . '-' . $contractCharge->codigoContador;
         $this->formasCobranca[$key] = new ChargeFormula($contractCharge->modalidadeMedicao, $contractCharge->fixo, $contractCharge->variavel, $contractCharge->franquia, $contractCharge->individual);
         if (!array_key_exists($contractCharge->codigoContador, $this->franquias)) {
             $this->franquias[$contractCharge->codigoContador] = 0;
         }
         $this->franquias[$contractCharge->codigoContador] += $contractCharge->franquia;
     }
     // Busca os preços por faixa de consumo
     $contractBonusDAO = new ContractBonusDAO($dataConnector->mysqlConnection);
     $contractBonusDAO->showErrors = 1;
     $bonusArray = $contractBonusDAO->RetrieveRecordArray("subContrato_id IN (" . $listaSubContratos . ")");
     $this->precosFaixaConsumo = array();
     foreach ($bonusArray as $bonus) {
         $this->precosFaixaConsumo[$bonus->id] = new PriceByVolume($bonus->codigoSubContrato, $bonus->codigoContador, $bonus->de, $bonus->ate, $bonus->valor);
     }
     // Busca o consumo para os contadores de cada equipamento
     $readingDAO = new ReadingDAO($dataConnector->mysqlConnection);
     $readingDAO->showErrors = 1;
     foreach ($itemArray as $contractItem) {
         $equipamento_id = $contractItem->codigoCartaoEquipamento;
         $keys = array_keys($this->contadores);
         foreach ($keys as $contador_id) {
             $ajusteReset = 0;
             $readingArray = array();
             $arrLen = 0;
             if ($startDate != null && $endDate != null) {
                 // Recupera as leituras no período, desconsiderando resets de contador como leitura final
                 $query = "codigoCartaoEquipamento=" . $equipamento_id . " AND contador_id=" . $contador_id . " AND data >= '" . $startDate . " 00:00' AND data <= '" . $endDate . " 23:59' AND origemLeitura_id=2 ORDER BY leitura.data DESC";
                 $tempArray = $readingDAO->RetrieveRecordArray($query);
                 $firstReading = null;
                 $lastReading = null;
                 foreach ($tempArray as $dto) {
                     if ($arrLen == 1 && $dto->reset) {
                         // procura a leitura inicial, depois de ter adicionado a final
                         $firstReading = $dto;
                         array_push($readingArray, $dto);
                         $arrLen++;
                     }
                     if ($arrLen == 0 && !$dto->reset) {
                         // procura a leitura final
                         $lastReading = $dto;
                         array_push($readingArray, $dto);
                         $arrLen++;
                     }
                 }
                 if ($lastReading != null) {
                     // Completa a faixa de leituras
                     $tempLen = sizeof($tempArray);
                     $firstReadingBeforeReset = $tempArray[$tempLen - 1];
                     if ($firstReading != null && $firstReading->data != $firstReadingBeforeReset->data) {
                         $lastReadingBeforeReset = null;
                         foreach (array_reverse($tempArray) as $dto) {
                             if ($dto->reset) {
                                 break;
                             }
                             $lastReadingBeforeReset = $dto;
                         }
                         $ajusteReset = $lastReadingBeforeReset->contagem - $firstReadingBeforeReset->contagem;
                     }
                     if ($firstReading == null) {
                         array_push($readingArray, $firstReadingBeforeReset);
                         $arrLen++;
                     }
                 }
             } else {
                 // Recupera as duas últimas leituras, desconsiderando resets de contador como leitura final
                 $query = "codigoCartaoEquipamento=" . $equipamento_id . " AND contador_id=" . $contador_id . " AND origemLeitura_id=2 ORDER BY leitura.data DESC LIMIT 0, 10";
                 $tempArray = $readingDAO->RetrieveRecordArray($query);
                 foreach ($tempArray as $dto) {
                     if ($arrLen == 1) {
                         // procura a leitura inicial, depois de ter adicionado a final
                         array_push($readingArray, $dto);
                         $arrLen++;
                     }
                     if ($arrLen == 0 && !$dto->reset) {
                         // procura a leitura final
                         array_push($readingArray, $dto);
                         $arrLen++;
                     }
                 }
             }
             if ($arrLen == 1) {
                 // caso tenha apenas uma leitura
                 $reading = $readingArray[0];
                 $dataLeitura = strtotime($reading->data);
                 $medicaoInicial = 0;
                 $medicaoFinal = $reading->contagem;
                 $key = $equipamento_id . '-' . $contador_id;
                 $this->consumos[$key] = new ConsumptionMeasure($equipamento_id, $contador_id, $dataLeitura, $medicaoInicial, $medicaoFinal);
                 $this->consumos[$key]->ajusteMedicaoInicial = 0;
                 $this->consumos[$key]->ajusteMedicaoFinal = $reading->ajusteContagem;
             }
             if ($arrLen > 1) {
                 // caso tenha mais de uma leitura (ordenação decrescente)
                 $initialReading = $readingArray[$arrLen - 1];
                 $finalReading = $readingArray[0];
                 $dataLeitura = strtotime($finalReading->data);
                 $medicaoInicial = $initialReading->contagem;
                 $medicaoFinal = $finalReading->contagem;
                 $key = $equipamento_id . '-' . $contador_id;
                 $this->consumos[$key] = new ConsumptionMeasure($equipamento_id, $contador_id, $dataLeitura, $medicaoInicial, $medicaoFinal);
                 $this->consumos[$key]->ajusteMedicaoInicial = $initialReading->ajusteContagem;
                 $this->consumos[$key]->ajusteMedicaoFinal = $finalReading->ajusteContagem;
             }
             if ($arrLen > 0) {
                 // adiciona o total (consumo) caso exista alguma leitura
                 $formaCobranca = $this->GetFormaCobranca($contractItem->codigoSubContrato, $contador_id);
                 if ($formaCobranca != null && $formaCobranca->modalidadeMedicao == 2) {
                     // Leitura simples (apenas a final)
                     $this->consumos[$key]->medicaoInicial = 0;
                 }
                 // o ajuste na medição inicial foi computado no faturamento anterior
                 $ajuste = $this->consumos[$key]->ajusteMedicaoFinal + $ajusteReset;
                 $this->consumos[$key]->total = $this->consumos[$key]->medicaoFinal + $ajuste - $this->consumos[$key]->medicaoInicial;
                 $this->consumos[$key]->ajusteTotal = $ajuste;
             }
         }
         // foreach de contadores
     }
     // foreach de itens
 }
Esempio n. 4
0
         $updatedCharge->fixo = $_REQUEST["fixoReajustado" . $contractCharge->id];
         $updatedCharge->variavel = $_REQUEST["variavelReajustado" . $contractCharge->id];
         $updatedCharge->franquia = $contractCharge->franquia;
         $updatedCharge->individual = $contractCharge->individual;
         $chargeId = $contractChargeDAO->StoreRecord($updatedCharge);
         if ($chargeId == null) {
             echo "Não foi possivel efetuar a operação...";
             exit;
         }
         $actionLog = new ActionLogDTO($transactionType, 'cobranca', $chargeId);
         $actionLog->tipoAgregacao = 'contrato';
         $actionLog->idAgregacao = $id;
         $actionLogDAO->StoreRecord($actionLog);
     }
 }
 $contractBonusDAO = new ContractBonusDAO($dataConnector->mysqlConnection);
 $contractBonusDAO->showErrors = 1;
 $contractBonusArray = $contractBonusDAO->RetrieveRecordArray("contrato_id=" . $id);
 foreach ($contractBonusArray as $contractBonus) {
     if (isset($_REQUEST["valorReajustado" . $contractBonus->id])) {
         if (!$contractBonusDAO->DeleteRecord($contractBonus->id)) {
             echo "Não foi possivel efetuar a operação...";
             exit;
         }
         $updatedBonus = new ContractBonusDTO();
         $updatedBonus->codigoContrato = $contractBonus->codigoContrato;
         $updatedBonus->codigoSubContrato = $contractBonus->codigoSubContrato;
         $updatedBonus->codigoContador = $contractBonus->codigoContador;
         $updatedBonus->de = $contractBonus->de;
         $updatedBonus->ate = $contractBonus->ate;
         $updatedBonus->valor = $_REQUEST["valorReajustado" . $contractBonus->id];
Esempio n. 5
0
if ($dataConnector->mysqlConnection == null || $dataConnector->sqlserverConnection == null) {
    echo 'Não foi possível se connectar ao bando de dados!';
    exit;
}
// Cria os objetos de mapeamento objeto-relacional
$actionLogDAO = new ActionLogDAO($dataConnector->mysqlConnection);
$actionLogDAO->showErrors = 1;
$loginDAO = new LoginDAO($dataConnector->mysqlConnection);
$loginDAO->showErrors = 1;
$contractDAO = new ContractDAO($dataConnector->mysqlConnection);
$contractDAO->showErrors = 1;
$subContractDAO = new SubContractDAO($dataConnector->mysqlConnection);
$subContractDAO->showErrors = 1;
$contractChargeDAO = new ContractChargeDAO($dataConnector->mysqlConnection);
$contractChargeDAO->showErrors = 1;
$contractBonusDAO = new ContractBonusDAO($dataConnector->mysqlConnection);
$contractBonusDAO->showErrors = 1;
// Traz os dados do contrato
$contract = $contractDAO->RetrieveRecord($contractId);
// Traz o nome do cliente
$clientName = new Text(BusinessPartnerDAO::GetClientName($dataConnector->sqlserverConnection, $contract->pn));
// Traz o historico para o contrato
$actionLogArray = $actionLogDAO->RetrieveRecordArray("(tipoObjeto = 'contrato' AND idObjeto = " . $contractId . ") OR (tipoAgregacao = 'contrato' AND idAgregacao = " . $contractId . ")");
function BuildRowContents($data, $usuario, $acao)
{
    echo '<tr>';
    echo '    <td>' . $data . '</td>';
    echo '    <td>' . $usuario . '</td>';
    echo '    <td>' . $acao . '</td>';
    echo '</tr>';
}