Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 8 additions & 5 deletions src/br/ufal/ic/p2/wepayu/Facade.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
package br.ufal.ic.p2.wepayu;
import br.ufal.ic.p2.wepayu.ModuleEmpregado.Service.TiposEmpregados.ComissionadoService;
import br.ufal.ic.p2.wepayu.ModuleSindicato.Service.SindicatoService;

import static br.ufal.ic.p2.wepayu.ModuleEmpregado.Service.EmpregadoService.*;
import static br.ufal.ic.p2.wepayu.ModuleFolhaDePagamento.Service.FolhaService.geraBalancoTotal;
import static br.ufal.ic.p2.wepayu.ModuleCartaoDePonto.Service.ServiceCartaoDePonto.*;
Expand Down Expand Up @@ -54,9 +57,9 @@ public void lancaTaxaServico(String idSindical, String data, String valor) throw
}
public void alteraEmpregado(String id, String atributo, String valor) throws Exception {
if (atributo.equalsIgnoreCase("sindicato"))
AlteraEmpregadoSindicato(id, atributo, valor);
SindicatoService.AlteraEmpregadoSindicato(id, atributo, valor);
if (atributo.equalsIgnoreCase("comissao"))
AlteraEmpregadoComissionado(id,atributo,valor);
ComissionadoService.AlteraEmpregadoComissionado(id,atributo,valor);

AlteraDefaultAtributoEmpregado(id, atributo, valor);
}
Expand All @@ -67,15 +70,15 @@ public String totalFolha(String data) {

//Altera Metodo de pagamento do empregado
public void alteraEmpregado(String id, String atributo, String valor1, String banco, String agencia, String contaCorrente) throws Exception {
AlteraMetodoPagamentoEmpregado(id, atributo, valor1, banco, agencia,contaCorrente);
ComissionadoService.AlteraMetodoPagamentoEmpregado(id, atributo, valor1, banco, agencia,contaCorrente);
}
//Torna empregado sindicalizado
public void alteraEmpregado(String id, String atributo, String valor, String idSindical, String taxaSindical) throws Exception {
SindicalizaEmpregado(id, atributo, valor, idSindical, taxaSindical);
SindicatoService.SindicalizaEmpregado(id, atributo, valor, idSindical, taxaSindical);
}
//Torna empregado Comissionado
public void alteraEmpregado(String id, String tipo, String valor, String valorComissao) throws Exception {
ComissionaEmpregado(id,tipo,valor, valorComissao);
ComissionadoService.ComissionaEmpregado(id,tipo,valor, valorComissao);
}


Expand Down
207 changes: 56 additions & 151 deletions src/br/ufal/ic/p2/wepayu/ModuleEmpregado/Service/EmpregadoService.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
package br.ufal.ic.p2.wepayu.ModuleEmpregado.Service;
import br.ufal.ic.p2.wepayu.Core.Exceptions.*;
import br.ufal.ic.p2.wepayu.ModuleEmpregado.Service.TiposEmpregados.ComissionadoService;
import br.ufal.ic.p2.wepayu.ModuleEmpregado.model.Empregado;
import br.ufal.ic.p2.wepayu.ModuleEmpregado.model.InformacoesBancarias;
import br.ufal.ic.p2.wepayu.ModuleFolhaDePagamento.Service.FolhaService;
import br.ufal.ic.p2.wepayu.ModuleSindicato.Classes.MembroSindicato;
import br.ufal.ic.p2.wepayu.ModuleSindicato.Service.SindicatoService;
import br.ufal.ic.p2.wepayu.Utils.Utils;

import java.util.UUID;

import static br.ufal.ic.p2.wepayu.ModuleCartaoDePonto.Service.ServiceCartaoDePonto.CriaCartao;
Expand All @@ -18,14 +23,6 @@ public String GerarId(){
String id = UUID.randomUUID().toString();
return id;
}
public static boolean isNumeric(String str) {
try {
Double.parseDouble(str);
return true;
} catch (NumberFormatException e) {
return false;
}
}

//Create
public String AddEmpregado(String nome, String endereco, String tipo, String salario) throws Exception {
Expand Down Expand Up @@ -68,72 +65,38 @@ public String GetAtributoEmpregado(String id, String atributo) throws Exception
validaGetAtributoEmpregado(id, atributo);
Empregado empregado = listaEmpregados.get(id);

if (id.isEmpty())
throw new IDinvalido("Identificacao do empregado nao pode ser nula.");

if (empregado == null)
if(id.isEmpty() ){
throw new EmpregadoNaoExiste("Identificacao do empregado nao pode ser nula.");
}if (empregado == null) {
throw new EmpregadoNaoExiste("Empregado nao existe.");

if (atributo.equals("nome")) {
return empregado.getNome();
}

if (atributo.equals("endereco")) {
return empregado.getEndereco();
}

if (atributo.equals("tipo")) {
return empregado.getTipo();
}

if (atributo.equals("salario")) {
String salarioStr = empregado.getSalario();
if (isNumeric(salarioStr)) {
double salario = Double.parseDouble(salarioStr);
if (salario % 1 == 0) { // se for inteiro
return String.format("%.0f,00", salario);
} else { //se for decimal
return String.format("%.2f", salario).replace(".", ",");
switch (atributo.toLowerCase()) {
case "nome":
return empregado.getNome();
case "endereco":
return empregado.getEndereco();
case "tipo":
return empregado.getTipo();
case "salario":
return Utils.formatarSalario(empregado.getSalario());
case "sindicalizado":
return Boolean.toString(empregado.getIsSindicalizado());
case "comissao":
return ComissionadoService.obterComissao(empregado);
case "metodopagamento":
return empregado.getMetodoDePagamento();
case "idsindicato":
return SindicatoService.obterIdSindicato(empregado);
case "taxasindical":
return SindicatoService.obterTaxaSindical(empregado);
default:
if (atributo.equalsIgnoreCase("banco") || atributo.equalsIgnoreCase("agencia") || atributo.equalsIgnoreCase("contacorrente") || atributo.equalsIgnoreCase("valor")) {
return FolhaService.obterInformacaoBancaria(empregado, atributo);
} else {
throw new AtributoInvalido("Atributo nao existe.");
}
} else {
return salarioStr; // Retornar a string original se não for um número
}
}

if (atributo.equals("sindicalizado")) {
if (empregado.getIsSindicalizado())
return "true";
else
return "false";
}

if (atributo.equals("comissao")) {
if (empregado.getTipo().equalsIgnoreCase("comissionado"))
return empregado.getComissao();

throw new EmpregadonaoEhComissionado("Empregado nao eh comissionado.");
}

if (atributo.equals("metodoPagamento")) {
return empregado.getMetodoDePagamento();
}

if (atributo.equalsIgnoreCase("idSindicato") || atributo.equalsIgnoreCase("taxaSindical")) {
if(!empregado.getIsSindicalizado())
throw new EmpregadoNaoEhSindicalizado("Empregado nao eh sindicalizado.");

MembroSindicato sindicalista = listaDeSindicalizados.get(id);
if (atributo.equals("idSindicato")) return sindicalista.getIdSindical();
if (atributo.equals("taxaSindical")) return sindicalista.getTaxaSindical();
}

if (atributo.equalsIgnoreCase("banco") || atributo.equalsIgnoreCase("agencia") || atributo.equalsIgnoreCase("contaCorrente") || atributo.equalsIgnoreCase("valor"))
if (!empregado.isRecebedorPorBanco())
throw new MetodoDePagamentoInvalido("Empregado nao recebe em banco.");
else
return empregado.getInformacaoBancaria(atributo);

throw new AtributoInvalido("Atributo nao existe.");
}

//UPDATE
Expand All @@ -143,93 +106,35 @@ public static void AlteraDefaultAtributoEmpregado(String id, String atributo, St
if (empregadoAtualizado == null) {
throw new EmpregadoNaoExiste("Empregado não encontrado");
}
if (atributo.equalsIgnoreCase("nome")) {
empregadoAtualizado.setNome(valor);
} else if (atributo.equalsIgnoreCase("endereco")) {
empregadoAtualizado.setEndereco(valor);
} else if (atributo.equalsIgnoreCase("tipo")) {
empregadoAtualizado.setTipo(valor);
} else if (atributo.equalsIgnoreCase("salario")) {
empregadoAtualizado.setSalario(valor);
}
else if (atributo.equalsIgnoreCase("comissao")){
if (valor.equalsIgnoreCase("true")) {
empregadoAtualizado.setComissao(valor);
empregadoAtualizado.setIsComissionado(true);
}
}

else if (atributo.equalsIgnoreCase("metodoPagamento")){
if (!valor.equalsIgnoreCase("correios") && !valor.equalsIgnoreCase("emMaos") && !valor.equalsIgnoreCase("banco"))
throw new MetodoDePagamentoInvalido("Metodo de pagamento invalido.");
if (!valor.equalsIgnoreCase("banco"))
empregadoAtualizado.setisRecebedorPorBanco(false);
empregadoAtualizado.setMetodoDePagamento(valor);

switch (atributo.toLowerCase()) {
case "nome":
empregadoAtualizado.setNome(valor);
break;
case "endereco":
empregadoAtualizado.setEndereco(valor);
break;
case "tipo":
empregadoAtualizado.setTipo(valor);
break;
case "salario":
empregadoAtualizado.setSalario(valor);
break;
case "comissao":
ComissionadoService.alteraComissao(empregadoAtualizado, valor);
break;
case "metodopagamento":
FolhaService.alteraMetodoPagamento(empregadoAtualizado, valor);
break;
case "sindicalizado":
SindicatoService.alteraSindicalizado(empregadoAtualizado, valor);
break;
default:
throw new AtributoInvalido("Atributo não existe.");
}
else if (atributo.equalsIgnoreCase("sindicalizado")){
if (valor.equalsIgnoreCase("true"))
empregadoAtualizado.SetisSindicalizado(true);
if (valor.equalsIgnoreCase("false"))
empregadoAtualizado.SetisSindicalizado(false);
else
throw new ValorInvalido("Valor invalido");
}


listaEmpregados.put(id, empregadoAtualizado);
}
public static void AlteraMetodoPagamentoEmpregado(String id, String atributo, String valor1, String banco, String agencia, String contaCorrente) throws Exception {
validaBanco(id,atributo,valor1,banco,agencia,contaCorrente);
Empregado empregadoAtualizado = listaEmpregados.get(id);
InformacoesBancarias infosBancariasEmpregado = new InformacoesBancarias(valor1,banco,agencia,contaCorrente);
empregadoAtualizado.SetInformacoesBancarias(infosBancariasEmpregado);
empregadoAtualizado.setMetodoDePagamento("banco");
empregadoAtualizado.setisRecebedorPorBanco(true);
listaEmpregados.put(id,empregadoAtualizado);
}
public static void AlteraEmpregadoComissionado(String id, String atributo, String valor) throws Exception {
Empregado empregado = listaEmpregados.get(id);
if (empregado.getTipo().equals("comissionado")){
empregado.setComissao(valor);
listaEmpregados.put(id,empregado);
}
else
throw new EmpregadonaoEhComissionado("Empregado nao eh comissionado.");
}
public static void AlteraEmpregadoSindicato(String id, String atributo, String valor) throws Exception {
Empregado empregado = listaEmpregados.get(id);
if (valor.equalsIgnoreCase("false"))
empregado.SetisSindicalizado(false);

if (valor.equalsIgnoreCase("true"))
empregado.SetisSindicalizado(true);

if (!empregado.getTipo().equalsIgnoreCase("comissionado"))
throw new EmpregadoNaoEhSindicalizado("Empregado nao eh sindicalizado.");
}
public static void ComissionaEmpregado(String id, String atributo, String valor,String comissao) throws Exception{
Empregado empregado = listaEmpregados.get(id);
if (valor.equalsIgnoreCase("comissionado")){
empregado.setTipo("comissionado");
empregado.setComissao(comissao);
listaEmpregados.put(id,empregado);
}
if (valor.equalsIgnoreCase("horista")){
empregado.setTipo("horista");
empregado.setSalario(comissao);
}
}

public static void SindicalizaEmpregado(String id, String atributo, String valor, String idSindical, String taxaSindical) throws Exception {
validaSindicalizacao(id,atributo,valor,idSindical,taxaSindical);
alteraEmpregadoValidation(idSindical);
Empregado empregado = listaEmpregados.get(id);
empregado.SetisSindicalizado(true);
criaVinculoSindical(id,idSindical,taxaSindical);
listaEmpregados.put(id,empregado);
}


//DELETE
public void removerEmpregado(String id) throws Exception {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
package br.ufal.ic.p2.wepayu.ModuleEmpregado.Service.TiposEmpregados;

import br.ufal.ic.p2.wepayu.Core.Exceptions.EmpregadonaoEhComissionado;
import br.ufal.ic.p2.wepayu.Core.Exceptions.ValorInvalido;
import br.ufal.ic.p2.wepayu.ModuleEmpregado.model.Empregado;
import br.ufal.ic.p2.wepayu.ModuleEmpregado.model.InformacoesBancarias;

import static br.ufal.ic.p2.wepayu.ModuleEmpregado.Service.EmpregadoValidations.validaBanco;
import static br.ufal.ic.p2.wepayu.Sistema.listaEmpregados;

public class ComissionadoService {
public static void AlteraMetodoPagamentoEmpregado(String id, String atributo, String valor1, String banco, String agencia, String contaCorrente) throws Exception {
validaBanco(id,atributo,valor1,banco,agencia,contaCorrente);
Empregado empregadoAtualizado = listaEmpregados.get(id);
InformacoesBancarias infosBancariasEmpregado = new InformacoesBancarias(valor1,banco,agencia,contaCorrente);
empregadoAtualizado.SetInformacoesBancarias(infosBancariasEmpregado);
empregadoAtualizado.setMetodoDePagamento("banco");
empregadoAtualizado.setisRecebedorPorBanco(true);
listaEmpregados.put(id,empregadoAtualizado);
}
public static void AlteraEmpregadoComissionado(String id, String atributo, String valor) throws Exception {
Empregado empregado = listaEmpregados.get(id);
if (empregado.getTipo().equals("comissionado")){
empregado.setComissao(valor);
listaEmpregados.put(id,empregado);
}
else
throw new EmpregadonaoEhComissionado("Empregado nao eh comissionado.");
}

public static void ComissionaEmpregado(String id, String atributo, String valor,String comissao) throws Exception{
Empregado empregado = listaEmpregados.get(id);
if (valor.equalsIgnoreCase("comissionado")){
empregado.setTipo("comissionado");
empregado.setComissao(comissao);
listaEmpregados.put(id,empregado);
}
if (valor.equalsIgnoreCase("horista")){
empregado.setTipo("horista");
empregado.setSalario(comissao);
}
}

public static void alteraComissao(Empregado empregado, String valor) throws ValorInvalido {
if (valor.equalsIgnoreCase("true")) {
empregado.setComissao(valor);
empregado.setIsComissionado(true);
}
}

public static String obterComissao(Empregado empregado) throws EmpregadonaoEhComissionado {
if (empregado.getTipo().equalsIgnoreCase("comissionado")) {
return empregado.getComissao();
} else {
throw new EmpregadonaoEhComissionado("Empregado nao eh comissionado.");
}
}

}
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package br.ufal.ic.p2.wepayu.ModuleFolhaDePagamento.Service;

import br.ufal.ic.p2.wepayu.Core.Exceptions.MetodoDePagamentoInvalido;
import br.ufal.ic.p2.wepayu.ModuleCartaoDePonto.Classes.CartaoDePonto;
import br.ufal.ic.p2.wepayu.ModuleCartaoDePonto.Classes.Horas;
import br.ufal.ic.p2.wepayu.ModuleEmpregado.model.Empregado;
import br.ufal.ic.p2.wepayu.ModuleVendas.Model.Vendas;

import java.text.DecimalFormat;
Expand Down Expand Up @@ -84,4 +86,22 @@ public static String geraBalancoTotal(String data) {
DecimalFormat formato = new DecimalFormat("#,##0,00");
return formato.format(valorTotal);
}

public static void alteraMetodoPagamento(Empregado empregado, String valor) throws MetodoDePagamentoInvalido {
if (!valor.equalsIgnoreCase("correios") && !valor.equalsIgnoreCase("emMaos") && !valor.equalsIgnoreCase("banco")) {
throw new MetodoDePagamentoInvalido("Metodo de pagamento invalido.");
}
if (!valor.equalsIgnoreCase("banco")) {
empregado.setisRecebedorPorBanco(false);
}
empregado.setMetodoDePagamento(valor);
}

public static String obterInformacaoBancaria(Empregado empregado, String atributo) throws MetodoDePagamentoInvalido {
if (!empregado.isRecebedorPorBanco()) {
throw new MetodoDePagamentoInvalido("Empregado nao recebe em banco.");
}
return empregado.getInformacaoBancaria(atributo);
}

}
Loading