\n"); $execcmd=mysqli_query($nuconexao,$cmdsql); $registro=mysqli_fetch_array($execcmd); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n",$registro['aosituacao']=="A" ? "Ativado" : "Desativado"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("
Código: $registro[pkmedico]
Nome: $registro[txnomemedico]
NuCRM: $registro[nucrm]
Situação: %s
EspecMédica: $registro[txnomeespecmedica]-($registro[fkespecmedica])
Escola: $registro[txnomeinstituicao]-($registro[fkinstiensino])

Logr. Clin.:$registro[txnomelogrclinica]-($registro[fklogradouroclinica])
Complemento: $registro[txcomplementoclinica]
CEP: $registro[nucepclinica]
Telefone: $registro[nuteleclinica]

Logr.Mora: $registro[txnomelogrmoradia]-($registro[fklogradouromoradia])
Complemento: $registro[txcomplementomoradia]
CEP: $registro[nucepmoradia]
Telefone: $registro[nutelemoradia]

Cadastro: $registro[dtcadmedico]
"); # A barra de botões pode ser montada em função do conteúdo da $acao # Os parâmetros de botoes são ($acao,$limpar,$retornar,$pesquisar,$sair) #botoes($acao,$limpa,$volta1,$volta2,$sair); printf("
\n"); } ## Fim do Bloco de Funções Locais ################################################################################################################################################################################### # Referenciando o arquivo catalogo.php require_once("../catalogo.php"); $acao =( ISSET($_REQUEST['acao']) ) ? $_REQUEST['acao'] : "Navegar"; $bloco=( ISSET($_REQUEST['bloco']) ) ? $_REQUEST['bloco'] : 1; $salto=( ISSET($_REQUEST['salto']) ) ? $_REQUEST['salto']+1 : 1; $cor=( $acao=='Listar' AND $bloco==3 ) ? FALSE : TRUE; iniciapagina($cor,"Médicos","medicos",$acao); # Note: Existem duas funções no CATALOGO.PHP que 'montam & desmontam' a tabela principal que acomoda o conteúdo de todas as páginas. # São as funções montatabela() e desmontatabela(). Elas constroem a tabela principal em todas as funcionalidades do sistema EXCETO na listagem de dados (que ocupa a tela toda) ( $acao!='Listar' ) ? montatabela("Médicos - $acao") : ""; #printf("\$acao = $acao | \$bloco = $bloco | \$salto = $salto
"); switch (TRUE) { case ( $acao=="Navegar"): { # Navegação inicial sobre os dados da tabela medicos # Executa a montagem do campo para seleção dos registros de médicos que serão exibidos na caixa de seleção printf(" Este sistema faz o Gerenciamento de dados da Tabela medicos. Esta é a funcionalidade 'Pesquisar'.\n"); printf("
\n"); printf(" \n"); printf(" \n"); printf(" \n"); printf("
\n"); # | \$salto=$salto printf(" Escreva qualquer parte do nome do médico e clique em 'Pesquisar' ou apenas clique em 'pesquisar' para ver todos os médicos do cadastro.\n"); printf("
\n"); if ( $bloco==2 ) { # neste bloco é montado o comando SQL que recupera os campos de 'medicos' e 'especialidadesmedicas' exibidos na caixa de seleção de medicos para manutenção dos dados. # Note que o comando SQL vai sendo montado com sucessivas operação de concatenação de textos (em PHP esta operação é feita com uso do sinal '.' $cmdsql="SELECT m.pkmedico, m.txnomemedico, m.nucrm, e.pkespecmedica, e.txnomeespecmedica FROM medicos AS m left JOIN especialidadesmedicas AS e ON m.fkespecmedica=e.pkespecmedica"; $cmdsql=( ISSET($_REQUEST['txnomemedico']) ) ? $cmdsql." where txnomemedico like '%$_REQUEST[txnomemedico]%'" : $cmdsql; $cmdsql=$cmdsql." order by m.txnomemedico"; # depois de montado o comando SQL ele deve ser 'enviado' para execução no SGBD e isso é feito pela função '_query'. # o retorno desta função pode ser entendido como um vetor de três partes: os nomes das tabelas indicadas no comando SQL, os nomes dos campos das tabelas e, finalmente, # a lista de endereços de registros que foram processados no comando SQL. Outras funções de ambiente da PHP podem usar este 'vetor complexo' no processamento de ações # tais como, contagem de linha, copia dos conteúdos dos campos lidos para vetores (no escopo do PA). $execcmd=mysqli_query($nuconexao,$cmdsql); if ( mysqli_num_rows($execcmd)>0 ) { # Este bloco será executado para mostrar ao usuário a tela com a caixa de seleção com dados dos medicos para permitr a escolha de ação sobre os registros. # Note: como em todo form montado, deveremos ter a passsagem em modo oculto das variáveis de controle recursivo. printf("Na caixa de escolha abaixo, selecione um médico. Na mesma linha escolha o que fazer com os dados do médico selecionado.\n"); printf("
\n"); printf(" \n"); printf(" \n"); printf(" "); printf(" "); printf("
"); printf(" Não achou o médico: você pode um novo médico ou todos os médicos.
"); # Note: Aqui a TAG
"); printf(""); } printf("
\n"); printf(" \n"); printf(" \n"); printf(" "); printf("
"); # Note: Na TELA, depois da mensagem: 'Voltar para Pesquisa' é exibida a borda tabela e uma TAG
. Esta TAG
é emitida pela função terminapagina() e a # borda da tabela é emitida pela função desmontatabela() break; } break; } # Fim do 'case Navegar' case ( $acao=="Incluir"): { # Controle da Funcionalidade: INCLUIR (dados da tabela medicos) switch (TRUE) { case ($bloco==1): { # montando o form printf("
\n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); # Montando a Picklist para a Especialidade Médica (tabela: especialidadesmedicas) printf("\n"); # Montando a Picklist para a Escola de Formação do médico (tabela: instituicoesdeensino) printf("\n"); # Montando a Picklist para a Logradouro da Clínica do Médico (tabela: logradouros+logradourostipos na visão: logradourocompleto) printf(""); printf("\n"); printf("\n"); printf("\n"); printf(" \n"); # Montando a Picklist para a Logradouro da Moradia do Médico (tabela: logradouros+logradourostipos na visão: logradourocompleto) printf(""); printf("\n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(""); printf(" \n"); printf(" \n"); printf("
Código:O código será gerado pelo Sistema
Nome:
NuCRM:-Somente números
Situação:-Ativado | -Desativado
Especialidade:"); mostrafklist('pkespecmedica','txnomeespecmedica','especialidadesmedicas','fkespecmedica',''); printf("
Escola de formação:"); mostrafklist('pkinstiensino','txnomeinstituicao','instituicoesdeensino','fkinstiensino',''); printf("

Clínica:"); mostrafklist('pklogradouro','txnomelogrcompleto','logradourocompleto','fklogradouroclinica',''); printf("
Complemento Clínica
CEP
Telefone: - somente números

Moradia:"); mostrafklist('pklogradouro','txnomelogrcompleto','logradourocompleto','fklogradouromoradia',''); printf("
Complemento moradia
CEP
Telefone: - somente números

Cadastrado em:
"); # Os parâmetros de botoes são ($acao,$limpar,$retornar,$pesquisar,$sair) $retornar=$salto-2; $pesquisar=$salto-1; botoes('Incluir',TRUE,$retornar,$pesquisar,$salto); printf("
\n"); printf("
\n"); break; } case ($bloco==2): { # Tratamento da transação. # lendo os valores digitados nos campos do form # a transação se inicia com o comando: START TRANSACTION # a transação deve ser executada 'dentro' de um laço de repetição. $mostrar=FALSE; $tenta=TRUE; while ( $tenta ) { # laço de controle de exec da trans. mysqli_query($nuconexao,"START TRANSACTION"); # construção do comando de atualização. # recuperação do último valor gravado na PK da tabela $ultimacp=mysqli_fetch_array(mysqli_query($nuconexao,"SELECT MAX(pkmedico) AS CpMAX FROM medicos")); $CP=$ultimacp['CpMAX']+1; # Construção do comando de atualização. $cmdsql="INSERT INTO medicos (pkmedico,txnomemedico,nucrm,fkespecmedica,fkinstiensino, fklogradouromoradia,txcomplementomoradia,nucepmoradia,nutelemoradia, fklogradouroclinica,txcomplementoclinica,nucepclinica,nuteleclinica,aosituacao,dtcadmedico) VALUES ('$CP', '$_REQUEST[txnomemedico]', '$_REQUEST[nucrm]', '$_REQUEST[fkespecmedica]', '$_REQUEST[fkinstiensino]', '$_REQUEST[fklogradouromoradia]', '$_REQUEST[txcomplementomoradia]', '$_REQUEST[nucepmoradia]','$_REQUEST[nutelemoradia]', '$_REQUEST[fklogradouroclinica]', '$_REQUEST[txcomplementoclinica]', '$_REQUEST[nucepclinica]','$_REQUEST[nuteleclinica]', '$_REQUEST[aosituacao]', '$_REQUEST[dtcadmedico]')"; # printf("$cmdsql
\n"); # execução do cmd. mysqli_query($nuconexao,$cmdsql); # tratamento dos erros de exec do cmd. if ( mysqli_errno($nuconexao)==0 ) { # trans pode ser concluída e não reiniciar mysqli_query($nuconexao,"COMMIT"); $tenta=FALSE; $mostrar=TRUE; $mens="Registro incluído! Valor do Código: $CP"; } else { if ( mysqli_errno($nuconexao)==1213 ) { # abortar a trans e reiniciar $tenta=TRUE; } else { # abortar a trans e NÃO reiniciar $tenta=FALSE; $mens=mysqli_errno($nuconexaomy)."-".mysqli_error($nuconexaomy); } mysqli_query($nuconexao,"ROLLBACK"); $mostrar=FALSE; } } printf("$mens
\n"); if ( $mostrar ) { # mostraregistro incova botoes que recebe os parâmetros ($acao,$limpar,$retornar,$pesquisar,$sair) $retornar=$salto-2; $pesquisar=$salto-1; mostraregistro("$CP"); # montando a Barra de botões botoes('',FALSE,$retornar,$pesquisar,$salto); } break; } } break; } # Fim do 'case Incluir' case ( $acao=="Consultar"): { # Controle da Funcionalidade: CONSULTAR (dados da tabela medicos) $retornar=$_REQUEST['salto']; $pesquisar=$_REQUEST['salto']; # mostraregistro("$_REQUEST[pkmedico]",$acao,FALSE,$retornar,$pesquisar,"$_REQUEST[salto]"); mostraregistro("$_REQUEST[pkmedico]"); # Montando a Barra de Botões botoes("",FALSE,$retornar,$pesquisar,$salto); break; } # Fim do 'case Consultar' case ( $acao=="Alterar"): { # Controle da Funcionalidade: ALTERAR (dados da tabela medicos) switch (TRUE) { case ($bloco==1): { # lendo o registro a alterar da tabela medicos $reglido=mysqli_fetch_array(mysqli_query($nuconexao,"SELECT * FROM medicos WHERE pkmedico='$_REQUEST[pkmedico]'")); # montando o form printf("
\n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(""); printf("\n"); printf("\n"); printf("\n"); # Montando a Picklist para a Especialidade Médica (tabela:especialidadesmedicas) printf("\n"); # Montando a Picklist para a Escola de Formação do Médico (tabela:instituicoesdeensino) printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf(" \n"); printf("
Nome:
NuCRM:
Situação:-Ativado-Desativado
Especialidade:"); mostrafklist('pkespecmedica','txnomeespecmedica','especialidadesmedicas','fkespecmedica',"$reglido[fkespecmedica]"); printf("
Escola de formação:"); mostrafklist('pkinstiensino','txnomeinstituicao','instituicoesdeensino','fkinstiensino',"$reglido[fkinstiensino]"); printf("

Clinica:"); mostrafklist('pklogradouro','txnomelogrcompleto','logradourocompleto','fklogradouroclinica',"$reglido[fklogradouroclinica]"); printf("
Complemento Clinica
CEP:
Telefone: - somente números

Moradia:"); mostrafklist('pklogradouro','txnomelogrcompleto','logradourocompleto','fklogradouromoradia',"$reglido[fklogradouromoradia]"); printf("
Complemento moradia
CEP
Telefone: - somente números

Cadastro em:
"); printf("
"); $retornar=$_REQUEST['salto']-1; $pesquisar=$_REQUEST['salto']; botoes('Alterar',TRUE,$retornar,$pesquisar,"$salto"); printf("
"); break; } case ($bloco==2): { # tratamento da transação. # construção do comando de atualização. $cmdsql="UPDATE medicos SET txnomemedico = '$_REQUEST[txnomemedico]', nucrm = '$_REQUEST[nucrm]', fkespecmedica = '$_REQUEST[fkespecmedica]', fkinstiensino = '$_REQUEST[fkinstiensino]', fklogradouromoradia = '$_REQUEST[fklogradouromoradia]', txcomplementomoradia = '$_REQUEST[txcomplementomoradia]', nucepmoradia = '$_REQUEST[nucepmoradia]', nuteleclinica = '$_REQUEST[nuteleclinica]', fklogradouroclinica = '$_REQUEST[fklogradouroclinica]', txcomplementoclinica = '$_REQUEST[txcomplementoclinica]', nucepclinica = '$_REQUEST[nucepclinica]', aosituacao = '$_REQUEST[aosituacao]', nutelemoradia = '$_REQUEST[nutelemoradia]', dtcadmedico = '$_REQUEST[dtcadmedico]' WHERE pkmedico='$_REQUEST[pkmedico]'"; # printf("$cmdsql
\n"); $mostrar=FALSE; $tenta=TRUE; while ( $tenta ) { # laço de controle de exec da trans. mysqli_query($nuconexao,"START TRANSACTION"); # execução do cmd. mysqli_query($nuconexao,$cmdsql); # tratamento dos erros de exec do cmd. if ( mysqli_errno($nuconexao)==0 ) { # trans pode ser concluída e não reiniciar mysqli_query($nuconexao,"COMMIT"); $tenta=FALSE; $mostrar=TRUE; $mens="Registro com código $_REQUEST[pkmedico] Alterado!"; } else { if ( mysqli_errno($nuconexao)==1213 ) { # abortar a trans e reiniciar $tenta=TRUE; } else { # abortar a trans e NÃO reiniciar $tenta=FALSE; $mens=mysqli_errno($nuconexao)."-".mysqli_error($nuconexao); } mysqli_query($nuconexao,"ROLLBACK"); $mostrar=FALSE; } } printf("$mens
\n"); if ( $mostrar ) { $retornar=$salto-2; $pesquisar=$salto-1; mostraregistro("$_REQUEST[pkmedico]"); botoes('',FALSE,$retornar,$pesquisar,$salto); } break; } } break; } # Fim do 'case Alterar' case ( $acao=="Excluir"): { # Controle da Funcionalidade: EXCLUIR (dados da tabela medicos) switch (TRUE) { case ($bloco==1): { # mostra o registro que será excluído e pede confirmação do usuário. printf("
\n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); mostraregistro("$_REQUEST[pkmedico]"); $retornar=$salto-2; $pesquisar=$salto-1; botoes('Confirmar Excluir',FALSE,$retornar,$pesquisar,$salto); printf("
"); break; } case ($bloco==2): { # tratamento da transação. # construção do comando de atualização. $cmdsql="DELETE FROM medicos WHERE medicos.pkmedico='$_REQUEST[pkmedico]'"; # printf("$cmdsql
\n"); $mostrar=FALSE; $tenta=TRUE; while ( $tenta ) { # laço de controle de exec da trans. mysqli_query($nuconexao,"START TRANSACTION"); # execução do cmd. mysqli_query($nuconexao,$cmdsql); # tratamento dos erros de exec do cmd. if ( mysqli_errno($nuconexao)==0 ) { # trans pode ser concluída e não reiniciar mysqli_query($nuconexao,"COMMIT"); $tenta=FALSE; $mostrar=TRUE; $mens="Registro com código $_REQUEST[pkmedico] excluído!"; } else { if ( mysqli_errno($nuconexao)==1213 ) { # abortar a trans e reiniciar $tenta=TRUE; } else { # abortar a trans e NÃO reiniciar $tenta=FALSE; $mens=mysqli_errno($nuconexao)."-".mysqli_error($nuconexao); } mysqli_query($nuconexao,"ROLLBACK"); $mostrar=FALSE; } } printf("$mens
\n"); $retornar=0; $pesquisar=$salto-1; botoes('',FALSE,$retornar,$pesquisar,$salto); break; } } break; } # Fim do 'case Excluir' case ( $acao=="Listar"): { # Controle da Funcionalidade: LISTAR (dados da tabela medicos) switch (TRUE) { case ( $bloco==1 ): { # este bloco monta o form e passa o bloco para o valor 2 em modo oculto # montamenu("Médicos","Listar","$_REQUEST[salto]"); montatabela("Médicos - Listar"); printf("
\n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); $dtini="1901-01-01"; $dtfim=date("Y-m-d"); printf(""); printf(" \n"); printf("
Escolha a ordem como os dados serão exibidos no relatório:
Código do Médico.:()
Nome do Médico...:()
Escolha valores para selação de dados do relatório:
Escolha uma especialidade:"); $cmdsql="SELECT pkespecmedica,txnomeespecmedica FROM especialidadesmedicas ORDER BY txnomeespecmedica"; $execcmd=mysqli_query($nuconexao,$cmdsql); printf("\n"); printf("
Intervalo de datas de cadastro: até
"); $retornar=$salto-2; $pesquisar=$salto-1; botoes('Listar',FALSE,$retornar,$pesquisar,$salto); printf("
\n"); printf("
\n"); # desmontatabela(); break; } case ( $bloco==2 || $bloco==3 ): { # Este bloco vai processar a junção de medicos com instituicaoensino, logradourocompleto (moradia e clinica) e especiaidadesmedicas. # Depois monta a tabela com os dados e a seguir um form permitindo que a listagem seja exibida para impressão em uma nova aba. $selecao=" WHERE (M.dtcadmedico between '$_REQUEST[dtcadini]' and '$_REQUEST[dtcadfim]')"; $selecao=( $_REQUEST['fkespecmedica']!='TODAS' ) ? $selecao." AND M.fkespecmedica='$_REQUEST[fkespecmedica]'" : $selecao ; $cmdsql="SELECT M.*, E.txnomeespecmedica, I.txnomeinstituicao, L1.txnomelogrcompleto AS txnomelogrmoradia, L2.txnomelogrcompleto AS txnomelogrclinica FROM medicos AS M INNER JOIN especialidadesmedicas AS E ON M.fkespecmedica=E.pkespecmedica LEFT JOIN instituicoesdeensino AS I ON M.fkinstiensino=I.pkinstiensino INNER JOIN logradourocompleto AS L1 ON M.fklogradouromoradia=L1.pklogradouro INNER JOIN logradourocompleto AS L2 ON M.fklogradouroclinica=L2.pklogradouro".$selecao." ORDER BY $_REQUEST[ordem]"; # printf("$cmdsql
\n"); $execsql=mysqli_query($nuconexao,$cmdsql); printf("
\n"); printf("
Médicos - Listar
"); # ($bloco==2) ? montamenu("Médicos","Listar","$_REQUEST[salto]"):""; $corlinha=" bgcolor='#00FA9A'"; printf("\n"); printf("\n \n \n \n \n \n \n \n \n"); printf("\n \n \n \n \n \n \n \n"); # Cores para se alternar nas linhas da listagem # #00FA9A - MediumSpringGreen # #90EE90 - LightGreen # #ADD8E6 - Lightblue # #F5F5F5 - WhiteSmoke while ( $le=mysqli_fetch_array($execsql) ) { $corlinha=($corlinha==" bgcolor='#F5F5F5'") ? " bgcolor='#ADD8E6'" : " bgcolor='#F5F5F5'"; printf("\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n"); } printf("
Cod.Nome:CRMEspecialidadeInst.de Form.MoradiaClinicaSituaçãoDt.Cad.
LogradouroComplementoCEPTelefoneLogradouroComplementoCEPTelefone
$le[pkmedico]$le[txnomemedico]$le[nucrm]$le[txnomeespecmedica]-($le[fkespecmedica])$le[txnomeinstituicao]-($le[fkinstiensino])$le[txnomelogrmoradia]-($le[fklogradouromoradia])$le[txcomplementomoradia]$le[nucepmoradia]$le[nutelemoradia]$le[txnomelogrclinica]-($le[fklogradouroclinica])$le[txcomplementoclinica]$le[nucepclinica]$le[nuteleclinica]$le[aosituacao]$le[dtcadmedico]
\n"); if ( $bloco==2 ) { printf("
\n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); $retornar=$salto-3; $pesquisar=$salto-1; # botoes("Gerar cópia para Impressão",FALSE,$retornar,$pesquisar,$salto); printf("
\n"); } else { printf(" - Corte a folha abaixo da linha no final da página
\n
\n"); } break; } } break; } # Fim do 'case Listar' } desmontatabela(); terminapagina("médicos","Médicos","medicos.php"); ?>