Esempio n. 1
0
        public void CadastrarConsulta(AtributosConsulta atrConsulta)
        {
            if (!String.IsNullOrEmpty(atrConsulta.Observacoes) || !String.IsNullOrEmpty(atrConsulta.Comentario) ||
                atrConsulta.Satisfacao != -1)
            {
                throw new Exception("Atributos da consulta invalido! Dados demais!");
            }
            if ((atrConsulta.Status != 'n' && atrConsulta.Status != 's' && atrConsulta.Status != 'c') || String.IsNullOrEmpty(atrConsulta.Proposito) ||
                atrConsulta.Horario == null || String.IsNullOrEmpty(atrConsulta.EmailMedico) ||
                String.IsNullOrEmpty(atrConsulta.EmailPaciente))
            {
                throw new Exception("Atributos da consulta invalido! Faltando dados!");
            }

            //a consulta tem que ser marcada antes para depois realiza-la (5 minutos de tolerancia)
            DateTime agoraComTolerancia;

            if (DateTime.Now.Minute < MINUTOS_DE_TOLERANCIA)
            {
                agoraComTolerancia = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day,
                                                  DateTime.Now.Hour - 1, 60 - MINUTOS_DE_TOLERANCIA + DateTime.Now.Minute, DateTime.Now.Second);
            }
            else
            {
                agoraComTolerancia = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day,
                                                  DateTime.Now.Hour, DateTime.Now.Minute - MINUTOS_DE_TOLERANCIA, DateTime.Now.Second);
            }
            if (atrConsulta.Horario.CompareTo(DateTime.Now) < 0)
            {
                throw new Exception("Consulta tem que ser depois do horário atual! Tolerância: " + MINUTOS_DE_TOLERANCIA + " minutos.");
            }

            if (!Medico.HorarioConsultaEhLivre(atrConsulta, this.conexaoBD))
            {
                throw new Exception("Médico estará em outra consulta!");
            }
            if (!Paciente.HorarioConsultaEhLivre(atrConsulta, this.conexaoBD))
            {
                throw new Exception("Paciente estará em outra consulta!");
            }

            //proposito, horario, umaHora, observacoes, status, emailMedico, emailPac
            this.conexaoBD.ExecuteInUpDel("insert into consulta(proposito, horario, umaHora, status, emailMedico, emailPac, jahMandouEmailSMS) " +
                                          "values('" + atrConsulta.Proposito + "', '" + atrConsulta.Horario + "', " + (atrConsulta.UmaHora?"1":"0") + ", '" +
                                          atrConsulta.Status + "', '" + atrConsulta.EmailMedico + "', '" + atrConsulta.EmailPaciente + "', 0)");
        }