Exemplo n.º 1
0
 public void Imprimir()
 {
     Console.WriteLine("Dados do funcionário:");
     Console.WriteLine("Código: " + Codigo.ToString());
     Console.WriteLine("Nome: " + Nome);
     Console.WriteLine("Salário: " + Salario.ToString());
 }
        public string Validar(Salario reg)
        {
            if (reg.EmployeeId == -1 || reg.EmployeeId == 0)
            {
                return("Empleado es requerido");
            }

            if (reg.Year < 1 || reg.Month < 1)
            {
                return("Año y Mes son requeridos");
            }

            if (reg.BaseSalary == 0)
            {
                return("Salario Base es requerido");
            }

            var ct = _repository.List().Where(x => x.EmployeeId == reg.EmployeeId &&
                                              x.Year == reg.Year &&
                                              x.Month == reg.Month).Count();


            if (ct > 0)
            {
                return("Ya existe un salario para el mes seleccionado");
            }

            var totalSalary = getTotalSalary(reg.BaseSalary, reg.Commission,
                                             reg.ProductionBonus, reg.Contributions);

            return("Success:" + totalSalary);
        }
Exemplo n.º 3
0
        static void Main(string[] args)
        {
            Program p = new Program();
            Double  Salario;

            Console.WriteLine("Informe o seu salário, use ponto");

            Console.WriteLine();

            Console.Write("Salario: ");
            double.TryParse(Console.ReadLine(), out Salario);

            Console.WriteLine();

            Console.Write("Salário atual: ");
            Console.ForegroundColor = ConsoleColor.Red;
            Console.Write(Salario.ToString());


            Console.ResetColor();
            Console.WriteLine();

            Console.WriteLine("\a");

            Console.Write("Novo salário: ");
            Console.ForegroundColor = ConsoleColor.Green;

            Console.Write(p.CalculaSalario(Salario));

            Console.ReadKey();
        }
Exemplo n.º 4
0
 //public string List()
 //{
 //    string todos = "";
 //    foreach (Vendedor vendedor in ListaVendedor)
 //    {
 //        todos += vendedor.ToString();
 //    }
 //    return todos;
 //}
 /// <summary>
 /// Muestra los datos de un vendedor
 /// </summary>
 public void Show()
 {
     Console.WriteLine(Cedula.ToString().PadRight(12) + Nombre.PadRight(35) + FechaNacimiento.ToShortDateString().PadLeft(12) +
                       Sexo.ToString().PadRight(12).PadLeft(15) + Telefono.ToString().PadLeft(12).PadRight(15) + Correo.PadRight(40) + Direccion.PadRight(40) +
                       EstadoCivil.ToString().PadRight(12) + IdVendedor.ToString().PadLeft(5) + FechaIngreso.ToShortDateString().PadLeft(12) +
                       Salario.ToString().PadLeft(10) + Profesion.PadLeft(20).PadRight(17) + Calificacion.ToString().PadLeft(5));
 }
Exemplo n.º 5
0
 public override string ToString()
 {
     return(IdVendedor.ToString() + "\t" + Cedula.ToString() + "\t" + Nombre + "\t" + FechaNacimiento.ToShortDateString() + "\t" +
            Sexo.ToString() + "\t" + Telefono.ToString() + "\t" + Correo + "\t" + Direccion + "\t" +
            EstadoCivil.ToString() + "\t" + FechaIngreso.ToShortDateString() + "\t" +
            Salario.ToString() + "\t" + Profesion + "\t" + Calificacion.ToString());
 }
        private static void AgregarEmpleado(Facultad facultad)
        {
            try
            {
                string   n = ConsolaHelper.PedirString("Nombre");
                string   a = ConsolaHelper.PedirString("Apellido");
                int      c = ConsolaHelper.PedirInt("Legajo");
                string   t = ConsolaHelper.PedirString("tipo empleado (D docente, B bedel, A directivo)");
                DateTime f = ConsolaHelper.PedirFecha("Ingreso laboral");
                Salario  s = ConsolaHelper.PedirSalario();

                string ap = string.Empty;
                if (t.ToUpper() == "B")
                {
                    ap = ConsolaHelper.PedirString("Apodo");
                }
                string m = string.Empty;
                if (t.ToUpper() == "D")
                {
                    m = ConsolaHelper.PedirString("Materia");
                }
                // acá si necesitamos enviarle los param al método para que sepa que tipo de obj crear
                facultad.AgregarEmpleado(n, a, c, f, s, t, ap, m);
                Console.WriteLine("Empleado agregado.");
            }
            catch (Exception ex)
            {
                // podemos usar recursión para que no salga del método hasta que no lo haga bien.
                Console.WriteLine("Error en uno de los datos ingresados. " + ex.Message + " Intente nuevamente. \n\n");

                // podemos preguntarle si quiere hacerlo de nuevo. Depende de nuestro negocio.
                // if(quiereIntentarNuevamente)
                AgregarEmpleado(facultad);
            }
        }
Exemplo n.º 7
0
        public List <Salario> ObterDoisUltimosSalarios()
        {
            var salarios = new List <Salario>();
            var strsql   = @"SELECT TOP 2 id_salario
                                        , salario
                                        , data_cadastro
                                    FROM historico_salarios
                                    WHERE id_usuario = @idUsuario
                                    ORDER BY id_salario DESC";

            using (var busca = new SqlCommand(strsql, Conexao.Conectar()))
            {
                busca.Parameters.AddWithValue("@idUsuario", Sessao.Usuario.Id);

                using (var reader = busca.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        var salario = new Salario()
                        {
                            Id           = Convert.ToInt32(reader["id_salario"]),
                            DataCadastro = Convert.ToDateTime(reader["data_cadastro"]),
                            Valor        = Convert.ToDecimal(reader["salario"])
                        };

                        salarios.Add(salario);
                    }
                }
            }
            return(salarios);
        }
        public async Task DeleteSalarioCommand()
        {
            var commandBuilder = new DeleteSalarioCommandBuilder()
                                 .ComId(new Guid("32cd6820-0da5-4c5f-94d1-e73b01f05de2"))
                                 .ComStatus(false)
                                 .Instanciar();

            commandBuilder.IsValid();

            var salarioRetorno = new Salario(decimal.One, decimal.One);

            _mocker.GetMock <IMediator>().Setup(x => x.Publish(It.IsAny <DomainNotification>(), default)).Returns(Task.CompletedTask);
            _mocker.GetMock <ISalarioRepository>().Setup(x => x.GetByIdAsync(commandBuilder.Id, default)).ReturnsAsync(salarioRetorno);
            _mocker.GetMock <ISalarioRepository>().Setup(x => x.DeleteAsync(It.IsAny <Salario>(), default))
            .Returns(Task.CompletedTask)
            .Callback <Salario, CancellationToken>((objeto, token) =>
            {
                objeto.Id.Should().NotBeEmpty();
                objeto.Id.Should().Be(commandBuilder.Id);
                objeto.Pagamento.Should().Be(salarioRetorno.Pagamento);
                objeto.Adiantamento.Should().Be(salarioRetorno.Adiantamento);
                objeto.Status.Should().BeFalse();
            });

            var resultado = await _commandHandler.Handle(commandBuilder, default);

            resultado.Should().BeTrue();
            _mocker.Verify <IMediator>(x => x.Publish(It.IsAny <DomainNotification>(), default), Times.Never);
            _mocker.Verify <ISalarioRepository>(x => x.GetByIdAsync(It.IsAny <Guid>(), default), Times.Once);
            _mocker.Verify <ISalarioRepository>(x => x.DeleteAsync(It.IsAny <Salario>(), default), Times.Once);
        }
Exemplo n.º 9
0
        public static Salario PedirSalario()
        {
            Console.WriteLine("Ingrese salario bruto:");
            double bruto = ValidacionHelper.ValidarDouble(Console.ReadLine());

            if (bruto < 0)
            {
                throw new Exception("El valor ingresado no es válido.");
            }
            Console.WriteLine("Ingrese descuentos:");
            double desc = ValidacionHelper.ValidarDouble(Console.ReadLine());

            if (desc < 0)
            {
                throw new Exception("El valor ingresado no es válido.");
            }
            Console.WriteLine("Ingrese fecha del último salario:");
            DateTime fechaSalario = Convert.ToDateTime(Console.ReadLine());

            Console.WriteLine("Ingrese código de transferencia:");
            string transferencia = ValidacionHelper.ValidarString(Console.ReadLine());

            if (transferencia == "")
            {
                throw new Exception("El valor ingresado no es válido.");
            }
            Salario s = new Salario();

            s.Bruto               = bruto;
            s.Descuentos          = desc;
            s.Fecha               = fechaSalario;
            s.CodigoTransferencia = transferencia;
            return(s);
        }
Exemplo n.º 10
0
        public async Task DeveExcluirSalarioPeloIdSalario()
        {
            var salario = new Salario(12345.42M, 54321.24M)
                          .AtualizarStatus(true);

            var command = new DeleteSalarioCommand
            {
                Id     = salario.Id,
                Status = false
            };

            await _fixture.CriarAsync(salario);

            var resultado = await _mediator.Send(command);

            resultado.Should().BeTrue();
            _notifications.HasNotifications().Should().BeFalse();
            _notifications.GetNotifications().Should().HaveCount(0);

            var resultadoBusca = await _fixture.BuscarAsync <Salario>(x => x.Id == salario.Id);

            resultadoBusca.Should().NotBeNull();
            resultadoBusca.Id.Should().Be(salario.Id);
            resultadoBusca.Pagamento.Should().Be(salario.Pagamento);
            resultadoBusca.Adiantamento.Should().Be(salario.Adiantamento);
            resultadoBusca.Status.Should().BeFalse();
        }
Exemplo n.º 11
0
        public async Task <IActionResult> Edit(int id, [Bind("SalarioId,Valor,MesId")] Salario salario)
        {
            if (id != salario.SalarioId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(salario);
                    await _context.SaveChangesAsync();

                    TempData["Confirmacao"] = "Salário atualizado com sucesso!.";
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!SalarioExists(salario.SalarioId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["MesId"] = new SelectList(_context.Meses.Where(x => x.MesId == salario.MesId), "MesId", "Nome", salario.MesId);
            return(View(salario));
        }
Exemplo n.º 12
0
        public IHttpActionResult PostSalario(Salario salario)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.Salario.Add(salario);

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateException)
            {
                if (SalarioExists(salario.CargoCod, salario.CargaHoraria, salario.EmpresaCod, salario.CidadeNome))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtRoute("DefaultApi", new { id = salario.CargoCod }, new SalarioDTO(salario)));
        }
Exemplo n.º 13
0
        public async Task <IActionResult> Edit(int?id, [Bind("SalarioId,SalarioNome, SalarioValor, SalarioData")] Salario salario)
        {
            if (id != salario.SalarioId)
            {
                return(RedirectToAction(nameof(Error), new { message = "Salario não encontrado" }));
            }

            if (ModelState.IsValid)
            {
                try
                {
                    await salarioServico.AtualizarAsync(salario);
                }
                catch (ApplicationException e)
                {
                    if (!await SalarioExists(salario.SalarioId))
                    {
                        return(RedirectToAction(nameof(Error), new { message = e.Message }));
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(salario));
        }
Exemplo n.º 14
0
        public void AtualizarDadosDespesaMenal()
        {
            var data           = DateTime.Now;
            var despesaMensal  = new DespesaMensal("Cartão", 22.55M, new DateTime(2019, 09, 05));
            var despesaMensal2 = new DespesaMensal("Celular", 32.99M, new DateTime(2019, 09, 05));
            var salario        = new Salario(1200.22M, 1500.45M)
                                 .AdicionarDespesaMensal(despesaMensal)
                                 .AdicionarDespesaMensal(despesaMensal2);

            var result = salario.DespesasMensais.FirstOrDefault(x => x.Id == despesaMensal2.Id);

            result.AtualizarDespesaMensal("NetFlix", 45.00M, data);

            salario.DespesasMensais.Should().HaveCount(2);
            salario.Id.Should().NotBeEmpty();
            salario.Pagamento.Should().Be(1200.22M);
            salario.Adiantamento.Should().Be(1500.45M);
            salario.Status.Should().BeTrue();

            salario.DespesasMensais.FirstOrDefault(x => x.Id == result.Id).Descricao.Should().Be("NetFlix");
            salario.DespesasMensais.FirstOrDefault(x => x.Id == result.Id).Valor.Should().Be(45.00M);
            salario.DespesasMensais.FirstOrDefault(x => x.Id == result.Id).Data.Should().Be(data);

            salario.DespesasMensais.FirstOrDefault(x => x.Id == despesaMensal.Id).Descricao.Should().Be("Cartão");
            salario.DespesasMensais.FirstOrDefault(x => x.Id == despesaMensal.Id).Valor.Should().Be(22.55M);
            salario.DespesasMensais.FirstOrDefault(x => x.Id == despesaMensal.Id).Data.Should().Be(new DateTime(2019, 09, 05));
        }
Exemplo n.º 15
0
        private void button1_Click(object sender, EventArgs e)
        {
            // Instanciar la lógica del negocio

            Salario objeto1 = new Salario();
            int     sueldo, dias;

            try
            {
                sueldo = Convert.ToInt32(textDias.Text);
                dias   = Convert.ToInt32(textSueldo.Text);

                // Enviar los valores a la lógica de negocio

                objeto1.setSueldo = sueldo;
                objeto1.setDias   = dias;

                if (objeto1.Calcular())
                {
                    textSalario.Text = objeto1.getSalario.ToString();
                    return;
                }
                MessageBox.Show(objeto1.geterror);
            } catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Exemplo n.º 16
0
        public void DeveCalcularOImpostoCalculandoOICMS()
        {
            var inss    = new INSS();
            var salario = new Salario(400);
            var imposto = inss.Tributos(salario);

            Assert.Equal(40, imposto);
        }
Exemplo n.º 17
0
 public void ActualizarSalario(Salario sal)
 {
     using (var dbc = new SPC_BD())
     {
         dbc.Entry(sal).State = EntityState.Modified;
         dbc.SaveChanges();
     }
 }
Exemplo n.º 18
0
        public ActionResult DeleteConfirmed(int id)
        {
            Salario salario = db.Salario.Find(id);

            db.Salario.Remove(salario);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Exemplo n.º 19
0
        public void VerificarAumentoNegativo()
        {
            Salario sal = new Salario(5000);
            double  salarioFinal;

            salarioFinal = sal.salario;
            //Assert.ThrowsAny(sal.calculaNovoSalarioPorPercentual(-5));
        }
Exemplo n.º 20
0
        static void Main(string[] args)
        {
            var salario   = new Salario(1500M, 1600M);
            var resultado = new AliquotaPercentual7(new AliquotaPercentual15());

            Console.WriteLine(resultado.CalculaImposto(salario));
            //Console.ReadKey();
        }
Exemplo n.º 21
0
 public void InsertarSalario(Salario sal)
 {
     using (var dbc = new SPC_BD())
     {
         dbc.Salario.Add(sal);
         dbc.SaveChanges();
     }
 }
Exemplo n.º 22
0
        public DataTable Salario(Salario Salario, int TipoPesquisa)
        {
            try
            {
                if (!Conexão.Checkconection())
                {
                    Conexão.Conectar();
                }

                if (Conexão.Checkconection())
                {
                    string ConsultaSalario = "SELECT * FROM SALARIO WHERE ";

                    switch (TipoPesquisa)
                    {
                    case 0:
                        ConsultaSalario = ConsultaSalario + "SALARIO = @SALARIO";
                        break;

                    case 1:
                        ConsultaSalario = ConsultaSalario + "VALOR = @VALOR";
                        break;

                    case 2:
                        ConsultaSalario = ConsultaSalario + "1";
                        break;
                    }

                    DataTable        table   = new DataTable();
                    MySqlDataAdapter adapter = new MySqlDataAdapter();
                    MySqlCommand     command = new MySqlCommand();

                    ConsultaSalario     = ConsultaSalario + ";";
                    command.CommandText = ConsultaSalario;
                    command.Connection  = Conexão.Pega_Conexão();

                    switch (TipoPesquisa)
                    {
                    case 0:
                        command.Parameters.Add("@VALOR", MySqlDbType.Int32).Value = Salario.ID_Salario;
                        break;

                    case 1:
                        command.Parameters.Add("@VALOR", MySqlDbType.Float).Value = Salario.Valor;
                        break;
                    }

                    adapter.SelectCommand = command;
                    adapter.Fill(TableSalario);
                    Conexão.Desconectar();
                }
            }
            catch (MySqlException Exception)
            {
                MessageBox.Show(Convert.ToString(Exception), "Estado da Conexão");
            }
            return(TableSalario);
        }
Exemplo n.º 23
0
        public async Task <Salario> DeletarSalarioPorId(int?id)
        {
            Salario salario = await PegarSalarioPorIdAsync(id.Value);

            _context.Salarios.Remove(salario);
            await _context.SaveChangesAsync();

            return(salario);
        }
Exemplo n.º 24
0
 public override string ToString()
 {
     return("Dados do funcionario: \n" +
            "Nome: " + Nome + "\n" +
            "CPF: " + Cpf + "\n" +
            "Salario: " + Salario.ToString("C2") + "\n" +
            "Função: " + Funcao + "\n" +
            "---------------------------------");
 }
Exemplo n.º 25
0
        public void DadaUmaTaxaDeveReajustarOSalario()
        {
            var valorEsperado = 2000;
            var salario       = new Salario();

            salario.Valor = 1000;
            salario.Reajuste(1);
            Assert.Equal(valorEsperado, salario.Valor);
        }
Exemplo n.º 26
0
        static void Main(string[] args)
        {
            var salario = new Salario(1500M, 1600M);

            salario.AplicaAliquota();
            salario.AplicaAliquota();
            salario.AplicaAliquota();

            //Console.ReadKey();
        }
        public JsonResult Validar(Salario sal)
        {
            var res = _applicationSalarios.Validar(sal);

            var ret = new
            {
                mensaje = res,
            };

            return(Json(ret));
        }
Exemplo n.º 28
0
        static void Main(string[] args)
        {
            var salario = new Salario(2900M, 2500M);

            Console.WriteLine(new AliquotaLivre().CalculaImpostoDeRenda(salario));
            Console.WriteLine(new AliquotaPercentual7().CalculaImpostoDeRenda(salario));
            Console.WriteLine(new AliquotaPercentual15().CalculaImpostoDeRenda(salario));
            Console.WriteLine(new AliquotaPercentual22().CalculaImpostoDeRenda(salario));
            Console.WriteLine(new AliquotaPercentual27().CalculaImpostoDeRenda(salario));
            //Console.ReadKey();
        }
Exemplo n.º 29
0
        public ActionResult GetCadastraSalario(decimal salarioDesejado, int qtdDiasTrabalhoSemana, int qtdHorasTrabalhoDia)

        {
            var salario = new Salario(salarioDesejado, qtdDiasTrabalhoSemana, qtdHorasTrabalhoDia);

            salario.CalculaValorDiaTrabalho();
            salario.CalculaValorHoraTrabalho();
            salario.SalvaSalario();

            return(Json(new { mensagem = "Ok" }, JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 30
0
        private void txtSalarioBase_TextChanged(object sender, EventArgs e)
        {
            pessoaLocal.SalarioBase = Convert.ToDouble(txtSalarioBase.Text);

            if (cboCategoria.SelectedItem != null)
            {
                pessoaLocal.IdCategoria = ((DataBase.Categoria)cboCategoria.SelectedItem).Id;
            }

            lblSalarioBrutoValor.Text = Salario.GetSalario(pessoaLocal, 5).ToString("C", CultureInfo.CurrentCulture);
        }
Exemplo n.º 31
0
        public void Somar()
        {
            var salario = new Salario
                {
                    Valor = 123
                };

            Salario meuNovoSalario = -500 + salario;

            // Explicito
            var valorInt = (int) meuNovoSalario;

            // Implicito
            double valor = meuNovoSalario;

            Assert.AreEqual(623, valor);
        }
        /// <summary>
        /// funcionalidade de edição de um registro de funcionario
        /// </summary>
        /// <param name="id"></param>
        private void EditarFuncionario(int id)
        {
            //abre a transação
            using (TransactionScope trans = new TransactionScope())
            {

                try
                {
                    //consulta o funcionário pelo ID
                    Funcionario funcionario = Funcionario.FindByPrimaryKey(id);
                    //atribui os dados que estão na página
                    funcionario.Nome = Request.Form["ctl00$ContentPlaceHolder1$txtNome"]; //txtNome.Text.Trim();
                    funcionario.Endereco = Request.Form["ctl00$ContentPlaceHolder1$txtEndereco"]; //txtEndereco.Text.Trim();
                    funcionario.CPF = Request.Form["ctl00$ContentPlaceHolder1$txtCpf"]; //txtCpf.Text.Trim();
                    funcionario.RG = Request.Form["ctl00$ContentPlaceHolder1$txtRG"]; //txtRG.Text.Trim();
                    funcionario.Telefone = Request.Form["ctl00$ContentPlaceHolder1$txtTelefone"]; //txtTelefone.Text.Trim();
                    funcionario.DataNascimento = DateTime.Parse(Request.Form["ctl00$ContentPlaceHolder1$txtDataNascimento"]);
                    funcionario.DataAdmissao = DateTime.Parse(Request.Form["ctl00$ContentPlaceHolder1$txtDataContratacao"]);
                    funcionario.NumeroCarteiraTrabalho = Request.Form["ctl00$ContentPlaceHolder1$txtCarteiratrabalho"];// txtCarteiratrabalho.Text.Trim();
                    funcionario.Cargo = Request.Form["ctl00$ContentPlaceHolder1$txtCargo"];// txtCargo.Text.Trim();
                    //atualiza o funcionário
                    funcionario.UpdateAndFlush();
                    if (Request.Form["ctl00$ContentPlaceHolder1$txtSalario"].Trim() != string.Empty)
                    {
                        //verifica se tem salário e se houve alteração do valor
                        decimal valor = decimal.Parse(Request.Form["ctl00$ContentPlaceHolder1$txtSalario"]);

                        if (funcionario.SalarioVigente != null)
                        {
                            if (funcionario.SalarioVigente.Valor != valor)
                            {
                                //atribui o valor da salário
                                funcionario.SalarioVigente.FinalVigencia = DateTime.Today;
                                funcionario.SalarioVigente.Vigente = false;
                                //atualiza o registro
                                funcionario.SalarioVigente.UpdateAndFlush();

                                if (valor != 0)
                                {
                                    Salario salario = new Salario();
                                    salario.InicioVigencia = DateTime.Today;
                                    salario.Vigente = true;
                                    salario.Valor = valor;
                                    salario.FuncionarioDoSalario = funcionario;
                                    salario.CreateAndFlush();
                                }
                            }
                        }
                    }
                    else
                    {
                        if (funcionario.SalarioVigente != null)
                        {
                            funcionario.SalarioVigente.FinalVigencia = DateTime.Today;
                            funcionario.SalarioVigente.Vigente = false;
                            funcionario.SalarioVigente.UpdateAndFlush();
                        }
                    }
                    //commit da transação
                    trans.VoteCommit();
                }
                catch (Exception ex)
                {
                    //rollback da transação
                    trans.VoteRollBack();
                    throw ex;
                }
                finally
                {
                    trans.Flush();
                }
            }
        }
        /// <summary>
        /// grava um novo registro de funcionário
        /// </summary>
        private void CadastrarNovoFuncionario()
        {
            //abre a transação
            using (TransactionScope trans = new TransactionScope())
            {
                try
                {
                    //atribui os dados da página para o registro de funcionário e salva no banco
                    Funcionario funcionario = new Funcionario();
                    funcionario.Nome = txtNome.Text.Trim();
                    funcionario.Endereco = txtEndereco.Text.Trim();
                    funcionario.CPF = txtCpf.Text.Trim();
                    funcionario.RG = txtRG.Text.Trim();
                    funcionario.Telefone = txtTelefone.Text.Trim();
                    funcionario.DataNascimento = DateTime.Parse(txtDataNascimento.Text.Trim());
                    funcionario.DataAdmissao = DateTime.Parse(txtDataContratacao.Text.Trim());
                    funcionario.NumeroCarteiraTrabalho = txtCarteiratrabalho.Text.Trim();
                    funcionario.Cargo = txtCargo.Text.Trim();
                    funcionario.CreateAndFlush();

                    if (txtSalario.Text.Trim() != string.Empty)
                    {
                        decimal valor = decimal.Parse(txtSalario.Text.Trim());
                        if (valor != 0)
                        {
                            //cria o registro do salário
                            Salario salario = new Salario();
                            salario.InicioVigencia = DateTime.Parse(txtDataContratacao.Text.Trim());
                            salario.Vigente = true;
                            salario.Valor = valor;
                            salario.FuncionarioDoSalario = funcionario;
                            salario.CreateAndFlush();
                        }
                    }
                    //commit da transação
                    trans.VoteCommit();
                }
                catch (Exception ex)
                {
                    //rollback da transação
                    trans.VoteRollBack();
                    //sobe o erro para o método que o chamou, onde será gravado em um arquivo de texto
                    throw ex;
                }
                finally
                {
                    //fecha a transasção
                    trans.Flush();
                }
            }
        }