Beispiel #1
0
        private void Funcionarios_Load(object sender, EventArgs e)
        {
            // Load grupos disciplinares
            loadGruposDisciplinares();

            // Execute SQL query
            //SqlCommand cmd = new SqlCommand("SELECT Pessoa.NMec, Pessoa.nome, Pessoa.telemovel, Funcionario.Salario, GrupoDisciplinar.nome AS grupoDisciplinarNome, GrupoDisciplinar.num AS grupoDisciplinarNum, CONCAT(email, '@', dominio) AS emailComposed FROM((( (GestaoEscola.Docente JOIN GestaoEscola.Funcionario ON Docente.NMec = Funcionario.PNMec) JOIN GestaoEscola.Pessoa ON Docente.NMec = Pessoa.NMec) JOIN GestaoEscola.EmailDominio ON Pessoa.emailDominio = EmailDominio.id) JOIN GestaoEscola.GrupoDisciplinar ON Docente.grupoDisciplinar = GrupoDisciplinar.num)", cn);
            SqlCommand    cmd    = new SqlCommand("SELECT * FROM vw_Docentes", cn);
            SqlDataReader reader = cmd.ExecuteReader();
            // Create list of Objects given the query results
            List <Funcionario> docentes = new List <Funcionario>();

            while (reader.Read())
            {
                Docente f = new Docente();
                f.nmec             = Int32.Parse(reader["NMec"].ToString());
                f.nome             = reader["nome"].ToString();
                f.salario          = Double.Parse(reader["salario"].ToString());
                f.telemovel        = Int32.Parse(reader["telemovel"].ToString());
                f.email            = reader["emailComposed"].ToString();
                f.grupoDisciplinar = getGrupoDisciplinar(Int32.Parse(reader["grupoDisciplinar"].ToString()));

                docentes.Add(f);
                counter++;
            }


            // ObjectListView
            // Add Objects to list view
            listObjects.SetObjects(docentes);

            // Update stats
            updateStats();

            // Close reader
            reader.Close();
        }
Beispiel #2
0
 public void clone(Docente d)
 {
     base.clone(d); // base is same as super in Java
     this.grupoDisciplinar = d.grupoDisciplinar;
 }
Beispiel #3
0
        private void submitForm(Docente docente)
        {
            bool edit = (docente != null);

            // Get form data
            int              nmec             = Int32.Parse(panelFormFieldNMec.Text);
            String           nome             = panelFormFieldNome.Text;
            Double           salario          = Double.Parse(panelFormFieldSalario.Text);
            int              telemovel        = Int32.Parse(panelFormFieldContacto.Text);
            String           emailPrefixo     = panelFormFieldEmail.Text.Split('@')[0];
            String           emailDominio     = panelFormFieldEmail.Text.Split('@')[1];
            GrupoDisciplinar grupoDisciplinar = getGrupoDisciplinar(panelFormFieldGrupoDisciplinar.Text);

            // Create command
            String     commandText = "pr_Docentes";
            SqlCommand command     = new SqlCommand(commandText, cn);

            command.CommandType = CommandType.StoredProcedure;
            // Add vars
            command.Parameters.Add("@NMec", SqlDbType.Int);
            command.Parameters["@NMec"].Value = nmec;
            command.Parameters.Add("@Nome", SqlDbType.VarChar);
            command.Parameters["@Nome"].Value = nome;
            command.Parameters.Add("@Telemovel", SqlDbType.Int);
            command.Parameters["@Telemovel"].Value = telemovel;
            command.Parameters.Add("@Email", SqlDbType.VarChar);
            command.Parameters["@Email"].Value = emailPrefixo;
            command.Parameters.Add("@EmailDominio", SqlDbType.VarChar);
            command.Parameters["@EmailDominio"].Value = emailDominio;
            command.Parameters.Add("@Salario", SqlDbType.Money);
            command.Parameters["@Salario"].Value = salario;
            command.Parameters.Add("@GrupoDisciplinar", SqlDbType.Int);
            command.Parameters["@GrupoDisciplinar"].Value = grupoDisciplinar.num;
            command.Parameters.Add("@Edit", SqlDbType.Bit);
            command.Parameters["@Edit"].Value = 0;
            if (edit)
            {
                command.Parameters["@Edit"].Value = 1;
            }
            // Return value stuff
            var returnParameter = command.Parameters.Add("@ReturnVal", SqlDbType.Int);

            returnParameter.Direction = ParameterDirection.ReturnValue;
            // Execute query
            int rowsAffected = 0;
            int returnValue;

            try
            {
                rowsAffected = command.ExecuteNonQuery();
                returnValue  = (int)returnParameter.Value;
                Console.WriteLine(String.Format("rowsAffected {0}", rowsAffected));
            }
            catch (SqlException ex)
            {
                String errorMessage = "Ocorreu um erro, verifique que preencheu todos os dados corretamente e tente novamente!";
                for (int i = 0; i < ex.Errors.Count; i++)
                {
                    if (ex.Errors[i].Message.IndexOf("Já existe uma pessoa com o email", StringComparison.OrdinalIgnoreCase) >= 0)
                    {
                        errorMessage = ex.Errors[i].Message;
                        break;
                    }
                    if (ex.Errors[i].Message.IndexOf("Já existe uma pessoa com o número de telemóvel fornecido", StringComparison.OrdinalIgnoreCase) >= 0)
                    {
                        errorMessage = ex.Errors[i].Message;
                        break;
                    }
                }
                MessageBox.Show(
                    errorMessage + "\r\n\r\n" + ex.ToString(),
                    "Erro!",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Error
                    );
                return;
            }
            // If query is successful
            if (returnValue == 1)
            {
                // If add operation, construct object (was null)
                if (!edit)
                {
                    docente = new Docente();
                }
                docente.nmec             = nmec;
                docente.nome             = nome;
                docente.email            = emailPrefixo + "@" + emailDominio;
                docente.telemovel        = telemovel;
                docente.salario          = salario;
                docente.grupoDisciplinar = grupoDisciplinar;
                if (!edit)
                {
                    listObjects.AddObject(docente);
                }
                // SHow feedback to user
                String successMessage = "O docente foi adicionado com sucesso!";
                if (edit)
                {
                    successMessage = "O docente foi editado com sucesso";
                }
                MessageBox.Show(
                    successMessage,
                    "Sucesso!",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Information
                    );
                // Update objects displayed on interface
                listObjects.BuildList(true);
                // Update stats
                updateStats();
                // Hide panels
                panelForm.Visible   = false;
                panelObject.Visible = false;
            }
            else
            {
                String messageError = "Ocorreu um erro, verifique que preencheu todos os dados corretamente e tente novamente!";
                if (returnValue == -2)
                {
                    messageError = "Já existe uma pessoa na base de dados com esse número mecanográfico!";
                }
                else if (returnValue == -3 || returnValue == -4)
                {
                    messageError = "Ocorreu um erro interno na base de dados! Tente novamente.";
                }
                MessageBox.Show(
                    messageError,
                    "Erro!",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Error
                    );
            }
        }