Ejemplo n.º 1
0
        /// <summary>
        /// Função que pesquisa informações de tranferencias
        /// Dependendo do tipo de usuário retorna todas as transferencias (tipo governo)
        /// ou as transferencias ligadas ao hospital solicitante (tipo hospital)
        /// </summary>
        /// <returns> Retorna lista de transferencias de acordo com o tipo de usuário</returns>
        public BindingList <Transferencias> PesquisaTransferencias()
        {
            LocalDatabase db = new LocalDatabase();
            string        query;

            //Preenche query de solicitação de acordo com tipo de usuário
            if ((Tipos_de_Usuario)this.Tipo_Usuario == Tipos_de_Usuario.GOVERNO)
            {
                query = $"SELECT * FROM Transferencias "; //WHERE Status == 'p'";
            }
            else
            {
                query = $"SELECT * FROM Transferencias WHERE ID_Hospital_Origem == (SELECT ID_Hospital FROM Hospital WHERE ID_Usuario = {this.ID_Usuario})";
            }
            SQLiteDataReader sqlite_datareader = db.Query(query);

            BindingList <Transferencias> transferencias = new BindingList <Transferencias>();

            //Preenche lista de transferencias com informações lidas
            while (sqlite_datareader.Read())
            {
                Transferencias transferencia = new Transferencias();
                transferencia.ID_Transferencia    = (Int64)sqlite_datareader[nameof(Transferencias.ID_Transferencia)];
                transferencia.ID_Hospital_Origem  = (Int64)sqlite_datareader[nameof(Transferencias.ID_Hospital_Origem)];
                transferencia.ID_Hospital_Destino = (Int64)sqlite_datareader[nameof(Transferencias.ID_Hospital_Destino)];
                transferencia.UTI_Adulto          = (Int64)sqlite_datareader[nameof(Transferencias.UTI_Adulto)];
                transferencia.UTI_Neonatal        = (Int64)sqlite_datareader[nameof(Transferencias.UTI_Neonatal)];
                transferencia.UTI_Pediatrica      = (Int64)sqlite_datareader[nameof(Transferencias.UTI_Pediatrica)];
                transferencia.Emergencia          = (Int64)sqlite_datareader[nameof(Transferencias.Emergencia)];
                transferencia.Status = (string)sqlite_datareader[nameof(Transferencias.Status)];

                transferencias.Add(transferencia);
            }
            sqlite_datareader.Dispose();
            db.Close();
            return(transferencias);
        }
Ejemplo n.º 2
0
      private void ContextResolverTransferencia_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
      {
          Transferencias transferenciaSelecionada = (Transferencias)this.dgvTransferencias.CurrentRow.DataBoundItem;
          LocalDatabase  db = new LocalDatabase();

          if (e.ClickedItem.Text == ACAO.Gerar_Relatorio.ToString())
          {
              string           mensagemRelatorio;
              string           query             = $"SELECT Nome_Hospital FROM Hospital WHERE ID_HOspital == {transferenciaSelecionada.ID_Hospital_Origem} ";
              SQLiteDataReader sqlite_datareader = db.Query(query);
              sqlite_datareader.Read();
              string hospitalOrigem = (string)sqlite_datareader[nameof(Hospital.Nome_Hospital)];

              query             = $"SELECT Nome_Hospital FROM Hospital WHERE ID_HOspital == {transferenciaSelecionada.ID_Hospital_Destino} ";
              sqlite_datareader = db.Query(query);
              sqlite_datareader.Read();
              string hospitalDestino = (string)sqlite_datareader[nameof(Hospital.Nome_Hospital)];


              mensagemRelatorio = $"A transferencia do {hospitalOrigem} para o {hospitalDestino}, envolvendo ";
              if (transferenciaSelecionada.UTI_Adulto > 0)
              {
                  mensagemRelatorio += $" {transferenciaSelecionada.UTI_Adulto} vaga(s) de" +
                                       $" {nameof(transferenciaSelecionada.UTI_Adulto)},";
              }
              if (transferenciaSelecionada.UTI_Pediatrica > 0)
              {
                  mensagemRelatorio += $" {transferenciaSelecionada.UTI_Pediatrica} vaga(s) de " +
                                       $"{nameof(transferenciaSelecionada.UTI_Pediatrica)},";
              }
              if (transferenciaSelecionada.UTI_Neonatal > 0)
              {
                  mensagemRelatorio += $" {transferenciaSelecionada.UTI_Neonatal} vaga(s) de" +
                                       $" {nameof(transferenciaSelecionada.UTI_Neonatal)},";
              }
              if (transferenciaSelecionada.Emergencia > 0)
              {
                  mensagemRelatorio += $" {transferenciaSelecionada.Emergencia} vaga(s) de " +
                                       $"{nameof(transferenciaSelecionada.Emergencia)},";
              }
              switch (transferenciaSelecionada.Status)
              {
              case "p":
                  mensagemRelatorio += " encontra-se pendente.";
                  break;

              case "r":
                  mensagemRelatorio += " foi rejeitada.";
                  break;

              case "a":
              default:
                  mensagemRelatorio += " foi aprovada.";
                  break;
              }
              string nomeArquivo = $"Relatorio_Transferencia_{transferenciaSelecionada.ID_Transferencia}.txt";
              File.WriteAllTextAsync(nomeArquivo, mensagemRelatorio);
          }
          else
          {
              if (transferenciaSelecionada.Status == "p")
              {
                  //se aprovar, decrementa vagas do hospital de origem. Todas serão 0, exceto as que foram solicitadas realmente.
                  if (e.ClickedItem.Text == ACAO.Aprovar.ToString())
                  {
                      //atualiza contagem de vagas no hospital destino
                      string queryLeitos = $"UPDATE Hospital SET {nameof(Hospital.UTI_Pediatrica)} = {nameof(Hospital.UTI_Pediatrica)} - {transferenciaSelecionada.UTI_Pediatrica}, " +
                                           $"{nameof(Hospital.UTI_Adulto)} = {nameof(Hospital.UTI_Adulto)} - {transferenciaSelecionada.UTI_Adulto}, " +
                                           $"{nameof(Hospital.UTI_Neonatal)} = {nameof(Hospital.UTI_Neonatal)} - {transferenciaSelecionada.UTI_Neonatal}, " +
                                           $"{nameof(Hospital.Emergencia)} ={nameof(Hospital.Emergencia)} - {transferenciaSelecionada.Emergencia} " +
                                           $"WHERE {nameof(Hospital.ID_Hospital)} == {transferenciaSelecionada.ID_Hospital_Destino}";

                      db.UpdateQuery(queryLeitos);
                  }

                  string novoStatus = e.ClickedItem.Text == ACAO.Aprovar.ToString() ? "a" : "r";
                  string query      = $"UPDATE {nameof(Transferencias)} SET {nameof(Transferencias.Status)} = '{novoStatus}'  WHERE {nameof(Transferencias.ID_Transferencia)} = {transferenciaSelecionada.ID_Transferencia} ";
                  db.UpdateQuery(query);
              }
          }
          this.FormGerenciaTransferencias_Load(null, null);
      }