<?php
session_start();
require("../../database/dbConection.php");
$usuarioLogado  = $_SESSION['idUsuarioLogado'];

$opcaoCadastro          =  $_POST['opcaoCadastro'];
$idProfissional         = $_POST['idProfissional'];

switch ($opcaoCadastro) {

  case "dados-profissional":

    $cpfProfissional        = str_replace("-", "", $_POST['cpfProfissional']);
    $cpfProfissional        = str_replace(".", "", $cpfProfissional);
    $cnsProfissional        = $_POST['cnsProfissional'];
    $nomeProfissional       = $_POST['nomeProfissional'];
    $codigoProfissional     = "00000$cpfProfissional";
    if ($idProfissional == "") {
      $sqlProfissionalExistente = "SELECT codigoprofissional_cnes 
      FROM tb_profissional
      WHERE (cpf_profissional='$cpfProfissional')";
      $stmProfissionalExistente  = $rsConexao->prepare($sqlProfissionalExistente);
      $stmProfissionalExistente->execute();
      if ($stmProfissionalExistente->rowCount() > 0) {
        echo "JaExiste";
        exit;
      }
    }

    # -- registra cadastro do profissional -- #
    if ($idProfissional == "") {
      $sqlProfissional  =  "INSERT IGNORE INTO tb_profissional(
        codigoprofissional_cnes,
        cpf_profissional,
        cns_profissional,
        nome_profissional,
        datahora_cadastro,
        origem_cadastro,
        id_usuario
      ) VALUES (
        :setCodigoProfissional,
        :setCPFProfissional,
        :setCNSProfissional,
        :setNomeProfissional,
        now(),
        'sistema',
        :setUsuarioCadastrou
      )";
    } else {
      $sqlProfissional = "UPDATE tb_profissional SET
      codigoprofissional_cnes=:setCodigoProfissional,
      cpf_profissional=:setCPFProfissional,
      cns_profissional=:setCNSProfissional,
      nome_profissional=:setNomeProfissional,
      id_usuario=:setUsuarioCadastrou
      WHERE codigoprofissional_cnes='$idProfissional'";
    }

    $stmCadProfissional = $rsConexao->prepare($sqlProfissional);
    $stmCadProfissional->bindParam(":setCodigoProfissional", $codigoProfissional, PDO::PARAM_STR);
    $stmCadProfissional->bindParam(":setCPFProfissional", $cpfProfissional, PDO::PARAM_STR);
    $stmCadProfissional->bindParam(":setCNSProfissional", $cnsProfissional, PDO::PARAM_STR);
    $stmCadProfissional->bindParam(":setNomeProfissional", $nomeProfissional, PDO::PARAM_STR);
    $stmCadProfissional->bindParam(":setUsuarioCadastrou", $usuarioLogado, PDO::PARAM_STR);
    $stmCadProfissional->execute();

    # --  carregar lista atualizada -- #
    $sqlProfissinoal  = "SELECT tb_profissional.codigoprofissional_cnes,
    tb_profissional.nome_profissional,
    tb_profissional.cpf_profissional,
    tb_profissional.cns_profissional
    FROM tb_profissional
    ORDER BY nome_profissional";
    $stmProfissinoal  = $rsConexao->prepare($sqlProfissinoal);
    $stmProfissinoal->execute();

    if ($stmProfissinoal->rowCount() > 0) {
      $rsProfissinoal   = $stmProfissinoal->fetchAll(PDO::FETCH_ASSOC);
      foreach ($rsProfissinoal as $fiedProfissinoal) {
        $idProfissional         = $fiedProfissinoal['codigoprofissional_cnes'];
        $nomeProfissinoal       = $fiedProfissinoal['nome_profissional'];
        $cpfProfissinoal        = $fiedProfissinoal['cpf_profissional'];
        $cnsProfissinoal        = $fiedProfissinoal['cns_profissional'];
        $linkProfissionalPerfil	= '"window.open(' . "'cadastrar_profissional_vinculo?idp=$idProfissional')" . '"';

        $sqlVinculo = "SELECT rl_cbo.codigo_cbo,
        rl_cbo.nome_cbo,
        tb_profissional_vinculo.codigoestabelecimento_cnes,
        tb_estabelecimento.nfantasia_estabelecimento,
        tb_profissional_vinculo.registro_conselho
        FROM tb_profissional_vinculo
        INNER JOIN rl_cbo ON (tb_profissional_vinculo.codigo_cbo = rl_cbo.codigo_cbo)
        INNER JOIN tb_estabelecimento
        ON (tb_profissional_vinculo.codigoestabelecimento_cnes =
        tb_estabelecimento.codigoestabelecimento_cnes) 
        WHERE (tb_profissional_vinculo.codigoprofissional_cnes='$idProfissional')";
        $stmVinculo	= $rsConexao->prepare($sqlVinculo);
        $stmVinculo->execute();
        if ($stmVinculo->rowCount() > 0) {
          $rsVinculo		= $stmVinculo->fetchAll(PDO::FETCH_ASSOC);
          $nomeUnidade	= "";
          $nomeCBO			= "";
          foreach ($rsVinculo as $fieldVinculo) {
            $nomeCBO	= mb_strtoupper($fieldVinculo['nome_cbo']);
            if ($nomeUnidade == "") {
              $nomeUnidade	= "&bull; " . mb_strtoupper($fieldVinculo['nfantasia_estabelecimento']) . " - (CBO: $nomeCBO)";
            } else {
              $nomeUnidade	= "$nomeUnidade<br>&bull; " . mb_strtoupper($fieldVinculo['nfantasia_estabelecimento']) . " - (CBO: $nomeCBO)";
            }
          }
          $corFontVinculo = "#027fbe";
        }else{
          $nomeUnidade	= "&bull; PROFISSIONAL SEM VÍNCULO CADASTRADO";
          $corFontVinculo = "#830202";
        }
        echo "<tr>
        <td align='center'>
          <i class='icofont icofont-contact-add nova_fonte blue' style='font-size:16pt' title='Vincular profissional.' onclick=$linkProfissionalPerfil></i>
        </td>
        <td>
          <b>$nomeProfissinoal</b>
          <div style='width:auto; padding:2px; color:$corFontVinculo'>
            $nomeUnidade
          </div>
        </td>
        <td align='center'>$cpfProfissinoal</td>
        <td align='center'>$cnsProfissinoal</td>
      </tr>";
      }
    }
    break;

  case "dados-vinculo":
    $opcaoGravacao          = $_POST['opcaoGravacao'];
    $codigoCBOProfissional  = $_POST['codigoCBOProfissional'];
    $unidadeVinculada       = $_POST['unidadeVinculada'];
    $registroConselho       = $_POST['registroConselho'];
    $edicaoCBO              = $_POST['edicaoCBO'];
    $edicaoUnidade          = $_POST['edicaoUnidade'];

    if ($opcaoGravacao == "novo") {

      # -- verifica se já existe vínculo idêntico -- #
      $sqlValida = "SELECT codigoestabelecimento_cnes
      FROM tb_profissional_vinculo
      WHERE (codigoestabelecimento_cnes='$unidadeVinculada')
      AND (codigoprofissional_cnes='$idProfissional')
      AND (codigo_cbo='$codigoCBOProfissional')";
      $stmValida  =  $rsConexao->prepare($sqlValida);
      $stmValida  -> execute();
      if($stmValida->rowCount()>0){
        echo "jáExiste";
        exit;
      }

      $sqlGravarVinculo = "INSERT INTO tb_profissional_vinculo(
        codigoestabelecimento_cnes,
        codigoprofissional_cnes,
        codigo_cbo,
        registro_conselho,
        id_usuario
      )VALUES(
        :setEstabelecimento,
        :setProfissional,
        :setCBO,
        :setRegistroConselho,
        :setUsuarioLogado
      )";

    } else {

      $sqlGravarVinculo = "UPDATE tb_profissional_vinculo SET
      codigoestabelecimento_cnes=:setEstabelecimento,
      codigoprofissional_cnes=:setProfissional,        
      codigo_cbo=:setCBO,
      registro_conselho=:setRegistroConselho,
      id_usuario=:setUsuarioLogado
      WHERE (codigoestabelecimento_cnes='$edicaoUnidade')
      AND (codigoprofissional_cnes='$idProfissional')
      AND (codigo_cbo='$edicaoCBO')";

    }

    $stmGravarVinculo = $rsConexao->prepare($sqlGravarVinculo);
    $stmGravarVinculo->bindParam(":setEstabelecimento", $unidadeVinculada, PDO::PARAM_STR);
    $stmGravarVinculo->bindParam(":setProfissional", $idProfissional, PDO::PARAM_STR);
    $stmGravarVinculo->bindParam(":setCBO", $codigoCBOProfissional, PDO::PARAM_STR);
    $stmGravarVinculo->bindParam(":setRegistroConselho", $registroConselho, PDO::PARAM_STR);
    $stmGravarVinculo->bindParam(":setUsuarioLogado", $usuarioLogado, PDO::PARAM_STR);
    $stmGravarVinculo->execute();

    # -- carregar lista atualizada -- #
    $sqlVinculo = "SELECT rl_cbo.codigo_cbo,
    rl_cbo.nome_cbo,
    tb_profissional_vinculo.codigoestabelecimento_cnes,
    tb_estabelecimento.nfantasia_estabelecimento,
    tb_profissional_vinculo.registro_conselho,
    tb_profissional_vinculo.status_vinculos_profissional
    FROM tb_profissional_vinculo
    INNER JOIN rl_cbo ON (tb_profissional_vinculo.codigo_cbo = rl_cbo.codigo_cbo)
    INNER JOIN tb_estabelecimento
    ON (tb_profissional_vinculo.codigoestabelecimento_cnes =
    tb_estabelecimento.codigoestabelecimento_cnes) 
    WHERE (tb_profissional_vinculo.codigoprofissional_cnes='$idProfissional')";
    $stmVinculo  = $rsConexao->prepare($sqlVinculo);
    $stmVinculo->execute();
    if ($stmVinculo->rowCount() > 0) {
      $rsVinculo  = $stmVinculo->fetchAll(PDO::FETCH_ASSOC);
      foreach ($rsVinculo as $fieldVinculo) {
        $codigoCBO          = $fieldVinculo['codigo_cbo'];
        $nomeCBO            = mb_strtoupper($fieldVinculo['nome_cbo']);
        $codigoUnidade      = mb_strtoupper($fieldVinculo['codigoestabelecimento_cnes']);
        $nomeUnidade        = mb_strtoupper($fieldVinculo['nfantasia_estabelecimento']);
        $registroConselho    = mb_strtoupper($fieldVinculo['registro_conselho']);
        $statusVinculo      = $fieldVinculo['status_vinculos_profissional'];
        $linkEditarVinculo  = '"editarVinculo(' . "'$codigoCBO','$nomeCBO','$codigoUnidade',$registroConselho)" . '"';

        if ($statusVinculo == "I") {
          $corLinha = "style='background-color:#f3b5b5 !important; color: #700000'";
          $linkAcaoVinculo  = '"ativarDesativarVinculo(' . "'ativar','$codigoCBO','$codigoUnidade')" . '"';
          $iconeComando      = "icofont icofont-tick-boxed nova_fonte_blue";
        } else {
          $corLinha = "style=";
          $linkAcaoVinculo  = '"ativarDesativarVinculo(' . "'desativar','$codigoCBO','$codigoUnidade')" . '"';
          $iconeComando      = "icofont icofont-ui-block nova_fonte_delete";
        }
        echo "<tr $corLinha>
            <td align='center'>
              <i class='icofont icofont-edit nova_fonte' title='Editar dados do vínculo do profissional.' onclick=$linkEditarVinculo></i>&nbsp;
              <i class='$iconeComando' title='desativar vínculo do profissional.' onclick=$linkAcaoVinculo></i>
            </td>
            <td>$codigoCBO - $nomeCBO</td>
            <td>$nomeUnidade</td>
            <td align='center'>$registroConselho</td>
          </tr>";
      }
    }
    break;
}
