Ejemplo n.º 1
0
    $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>");
Ejemplo n.º 2
0
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)
}
Ejemplo n.º 3
0
$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();
Ejemplo n.º 4
0
 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;
 }