function Main()
{
    header('Content-Type: text/html; charset=iso-8859-1');
    $tpl = file_get_contents("tpl/cad-componenteexame.html");
    $codexame = base64_decode($_POST["c"]);
    $registro = base64_decode($_POST['r']);
    $tpl = str_replace("<!--hdnCodigoExame-->", $_POST["c"], $tpl);
    $tpl = str_replace("<!--nomeexame-->", TipoExame::ConsultaNomeExame($codexame), $tpl);
    // Lista os componentes já cadastrados
    $componentes = new Componente();
    $componentes->setCodexame($codexame);
    if ($registro == "") {
        $tpl = str_replace("<!--txtDescricao-->", "", $tpl);
        $tpl = str_replace("<!--hdnCodigoComp-->", "", $tpl);
    } else {
        $componentes->setCodcomponente($registro);
        $retorno = $componentes->Carrega();
        $tpl = str_replace("<!--txtDescricao-->", $retorno->getDescricao(), $tpl);
        $tpl = str_replace("<!--hdnCodigoComp-->", base64_encode($retorno->getCodcomponente()), $tpl);
    }
    $rs = $componentes->Lista();
    if (count($rs) > 0) {
        $tab = Comuns::TopoTabelaListagem("Componentes cadastrados", "componentes", array('Descrição', 'Ações'));
        foreach ($rs as $comp) {
            $excri = base64_encode($comp->CodExame);
            $compcri = base64_encode($comp->Codigo);
            $tab .= '    <tr id="' . $excri . '_' . $compcri . '">';
            $tab .= '      <td>' . $comp->Descricao . '</td>';
            $tab .= '      <td>';
            $tab .= '        <a href="javascript:void(0);" onclick="javascript:fntEditaComponente(\'' . $excri . '\',\'' . $compcri . '\');">' . Comuns::IMG_ACAO_EDITAR . '</a>';
            $tab .= '        <a href="javascript:void(0);" onclick="javascript:fntDeletaComponente(\'' . $excri . '\',\'' . $compcri . '\')">' . Comuns::IMG_ACAO_DELETAR . '</a>';
            $tab .= '        <a href="javascript:void(0);" onclick="javascript:fntAbreValorRef(\'' . $excri . '\',\'' . $compcri . '\')">' . Comuns::IMG_ACAO_VALORES_REF . '</a>';
            $tab .= '        <a href="javascript:void(0);" onclick="javascript:fntMoverComponente(\'' . $excri . '\',\'' . $compcri . '\')">' . Comuns::IMG_ACAO_MOVER . '</a>';
            $tab .= '      </td>';
            $tab .= '    </tr>';
        }
        $tab .= '  </tbody>';
        $tab .= '</table>';
    } else {
        $tab = "<br />@lng[Nenhum componente cadastrado]";
    }
    $tpl = str_replace("<!--tabela-->", $tab, $tpl);
    echo Comuns::Idioma($tpl);
}
function Main()
{
    header('Content-Type: text/html; charset=iso-8859-1');
    $codexame = base64_decode($_POST["c"]);
    $codcomp = base64_decode($_POST["r"]);
    $c = new Componente();
    $c->setCodexame($codexame);
    $c->setCodcomponente($codcomp);
    if ($c->PodeExcluir()) {
        $ret = "";
        $ret = $c->Deleta();
        if ($ret == true) {
            echo "OK";
        } else {
            echo $c->getErro();
        }
    } else {
        echo Comuns::Idioma("@lng[O registro não pode ser excluido pois está sendo usado por outro registro]");
    }
}
function Main()
{
    $exame = base64_decode($_POST["hdnCodigoExame"]);
    $comp = $_POST["hdnCodigoComp"] ? base64_decode($_POST["hdnCodigoComp"]) : '';
    $descricao = urldecode($_POST["txtDescricao"]);
    header('Content-Type: text/html; charset=iso-8859-1');
    try {
        if ($_POST['act'] && $_POST['act'] == 'novaordem') {
            $c = new Componente();
            if ($c->ReordenaComponente($_POST['ids'])) {
                echo "OK";
            } else {
                echo $c->getErro();
            }
        } else {
            $c = new Componente();
            if ($exame != "") {
                $c->setCodexame($exame);
            }
            if ($comp != "") {
                $c->setCodcomponente($comp);
            }
            if ($descricao != "") {
                $c->setDescricao($descricao);
            }
            $ret = "";
            if ($comp == "") {
                $ret = $c->Insere();
            } else {
                $ret = $c->Altera();
            }
            if ($ret === true) {
                echo "GRAVADO";
            } else {
                echo $c->getErro();
            }
        }
    } catch (PDOException $ex) {
        echo $ex->getMessage();
    }
}
 /**
  * Retorna um objeto do tipo Componente com o registro selecionado
  * @return objeto : Componente ou false
  * */
 public function Carrega()
 {
     $sql = "SELECT CodExame, Codigo, Descricao ";
     $sql .= "FROM mestipoexamecomponente ";
     $sql .= "WHERE CodExame = :pCodExame AND Codigo = :pCodigo;";
     $cnn = Conexao2::getInstance();
     $cmd = $cnn->prepare($sql);
     $cmd->bindParam(":pCodExame", $this->codexame, PDO::PARAM_INT);
     $cmd->bindParam(":pCodigo", $this->codcomponente, PDO::PARAM_INT);
     $cmd->execute();
     if ($cmd->errorCode() == Comuns::QUERY_OK) {
         $comp = new Componente();
         $rs = $cmd->fetch(PDO::FETCH_OBJ);
         $comp->setCodexame($rs->CodExame);
         $comp->setCodcomponente($rs->Codigo);
         $comp->setDescricao($rs->Descricao);
         $cmd->closeCursor();
         return $comp;
     } else {
         $this->msg_erro = $cmd->errorInfo();
         return false;
     }
 }