<?php
require("../../../database/dbConection.php");
$mesAgenda    = date("Y-m-01");
$diaMesAgenda = date("Y-m-d");


# ---- SELECIONAR PROCEDIMENTOS AGUARDANDO AGENDAMENTO ----  PROCESSAR POSIÇÃO NA FILA #
$stmConfiguracoes	= $rsConexao->prepare("SELECT * FROM reg_tb_configuracoes");
$stmConfiguracoes->execute();
$rsConfiguracoes	= $stmConfiguracoes->fetch(PDO::FETCH_OBJ);
$idadePrioritariaFila = $rsConfiguracoes->idate_prioritaria_fila;  
$numeroPosicao  = 0;

# -- Zerar posição na fila -- #
$stmProcedimentosExistentes = $rsConexao->prepare("SELECT id_procedimento FROM reg_tb_procedimento ORDER BY id_procedimento");
$stmProcedimentosExistentes -> execute();

$ultimaPosicaoidoso = 0;
if($stmProcedimentosExistentes->rowCount()>0){
  $rsProcedimentosExistentes = $stmProcedimentosExistentes->fetchAll(PDO :: FETCH_ASSOC);
  foreach($rsProcedimentosExistentes AS $fieldProcedimento){

    $idProcedimento = $fieldProcedimento['id_procedimento'];

    if($idadePrioritariaFila>0){

      # -- atualizar posição na fila de pacientes prioritários a partir da idade progamada --#
      $sqlSolicitacoes60 = "SELECT reg_tb_solicitacoes.id_solicitacao
      FROM reg_tb_solicitacoes
      INNER JOIN tb_paciente ON tb_paciente.id_paciente=reg_tb_solicitacoes.id_paciente
      WHERE (reg_tb_solicitacoes.id_statussolicitacao='2')
      AND (TIMESTAMPDIFF(YEAR, tb_paciente.datanasc, NOW())>='$idadePrioritariaFila')
      AND (reg_tb_solicitacoes.id_procedimento='$idProcedimento')    
      ORDER BY TIMESTAMPDIFF(YEAR, tb_paciente.datanasc, NOW()) DESC, DATE_FORMAT(datahora_cadastro, '%Y%m%d%H%i') ASC, id_solicitacao";

      $stmAguardando60  = $rsConexao->prepare($sqlSolicitacoes60);
      $stmAguardando60  ->execute();
      if ($stmAguardando60->rowCount() > 0) {
        $rsAguardando60 = $stmAguardando60->fetchAll(PDO::FETCH_ASSOC);
        foreach ($rsAguardando60 as $fieldAguardando60) {
          $numeroPosicao      = $numeroPosicao + 1;
          $idSolicitacao60      = $fieldAguardando60['id_solicitacao'];
          $stmAtualizaPosicao = $rsConexao->prepare("UPDATE reg_tb_solicitacoes SET posicao_fila='$numeroPosicao' WHERE id_solicitacao='$idSolicitacao60'");
          $stmAtualizaPosicao->execute();
        }
        $ultimaPosicaoidoso = $numeroPosicao;
        $numeroPosicao = 0;
      }

      # -- atualizar posição na fila de pacientes com idade abaixo da idade progamada como prioritária --#  
      $numeroPosicao = $ultimaPosicaoidoso;
      $sqlSolicitacoes59 = "SELECT reg_tb_solicitacoes.id_solicitacao
      FROM reg_tb_solicitacoes
      INNER JOIN tb_paciente ON tb_paciente.id_paciente=reg_tb_solicitacoes.id_paciente
      WHERE (reg_tb_solicitacoes.id_statussolicitacao='2')
      AND (TIMESTAMPDIFF(YEAR, tb_paciente.datanasc, NOW())<'$idadePrioritariaFila')
      AND (reg_tb_solicitacoes.id_procedimento='$idProcedimento')    
      ORDER BY DATE_FORMAT(datahora_cadastro, '%Y%m%d%H%i') ASC, id_solicitacao";

      $stmAguardando59  = $rsConexao->prepare($sqlSolicitacoes59);
      $stmAguardando59  ->execute();
      if ($stmAguardando59->rowCount() > 0) {
        $rsAguardando59 = $stmAguardando59->fetchAll(PDO::FETCH_ASSOC);
        foreach ($rsAguardando59 as $fieldAguardando59) {
          $numeroPosicao      = $numeroPosicao + 1;
          $idSolicitacao59      = $fieldAguardando59['id_solicitacao'];
          $stmAtualizaPosicao = $rsConexao->prepare("UPDATE reg_tb_solicitacoes SET posicao_fila='$numeroPosicao' WHERE id_solicitacao='$idSolicitacao59'");
          $stmAtualizaPosicao->execute();
        }
      }
    
    }else{

      $sqlSolicitacoes60 = "SELECT reg_tb_solicitacoes.id_solicitacao
      FROM reg_tb_solicitacoes
      INNER JOIN tb_paciente ON tb_paciente.id_paciente=reg_tb_solicitacoes.id_paciente
      WHERE (reg_tb_solicitacoes.id_statussolicitacao='2')
      AND (reg_tb_solicitacoes.id_procedimento='$idProcedimento')    
      ORDER BY DATE_FORMAT(datahora_cadastro, '%Y%m%d%H%i') ASC";
      
      $stmAguardando60  = $rsConexao->prepare($sqlSolicitacoes60);
      $stmAguardando60  ->execute();
      if ($stmAguardando60->rowCount() > 0) {
        $rsAguardando60 = $stmAguardando60->fetchAll(PDO::FETCH_ASSOC);
        foreach ($rsAguardando60 as $fieldAguardando60) {
          $numeroPosicao      = $numeroPosicao + 1;
          $idSolicitacao60    = $fieldAguardando60['id_solicitacao'];
          $stmAtualizaPosicao = $rsConexao->prepare("UPDATE reg_tb_solicitacoes SET posicao_fila='$numeroPosicao' WHERE id_solicitacao='$idSolicitacao60'");
          $stmAtualizaPosicao->execute();
        }
        $ultimaPosicaoidoso = $numeroPosicao;
        $numeroPosicao = 0;
      }

    }

  }

}

#************************************************************************************************************************************#
  
?>