Skip to content

Commit

Permalink
Merge pull request #37 from CristianoMends/app/feature/entregador
Browse files Browse the repository at this point in the history
App/feature/entregador
  • Loading branch information
CristianoMends authored Jan 30, 2025
2 parents 0124e5f + 447c1b8 commit 6ea35b2
Show file tree
Hide file tree
Showing 7 changed files with 179 additions and 97 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import edu.pies.sysaguaapp.services.EntregadorService;
import edu.pies.sysaguaapp.services.TokenManager;
import javafx.animation.PauseTransition;
import javafx.beans.property.SimpleObjectProperty;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
Expand All @@ -14,6 +15,7 @@
import javafx.scene.layout.*;
import javafx.scene.shape.Rectangle;
import javafx.util.Duration;
import javafx.beans.property.SimpleStringProperty;


import java.util.List;
Expand Down Expand Up @@ -69,6 +71,9 @@ public class EntregadorController {
@FXML
private Button btnCancelar;

@FXML
private CheckBox exibirInativosCheckBox;

private Entregador entregadorEditando = null;

private ObservableList<Entregador> entregadorObservable;
Expand All @@ -87,6 +92,8 @@ public void initialize() {
carregarEntregadores();
showMenuContext();

exibirInativosCheckBox.selectedProperty().addListener((observable, oldValue, newValue) -> carregarEntregadores());

// Validar texto
configurarValidacaoTexto(nomeField);
nomeField.textProperty().addListener((obs, oldText, newText) -> {
Expand Down Expand Up @@ -132,8 +139,8 @@ private void handleSalvar() {
//Fazer o tratamento correto de texto e numeros

Entregador novoEntregador = new Entregador();
novoEntregador.setNome(nome);
novoEntregador.setTelefone(telefone);
novoEntregador.setName(nome);
novoEntregador.setPhone(telefone);

try {
String token = TokenManager.getInstance().getToken();
Expand Down Expand Up @@ -246,8 +253,8 @@ private void handleEditarEntregador() {
}

private void preencherCampos(Entregador entregador) {
nomeField.setText(entregador.getNome());
telefoneField.setText(entregador.getTelefone());
nomeField.setText(entregador.getName());
telefoneField.setText(entregador.getPhone());

}

Expand All @@ -264,21 +271,58 @@ private void handleInativarEntregador() {
private void configurarTabela() {
// Configuração das colunas da tabela
TableColumn<Entregador, String> colunaNome = new TableColumn<>("Nome");
colunaNome.setCellValueFactory(new PropertyValueFactory<>("nome"));
colunaNome.setCellValueFactory(new PropertyValueFactory<>("name"));

TableColumn<Entregador, Long> colunaCodigo = new TableColumn<>("Código");
colunaCodigo.setCellValueFactory(cellData -> new SimpleObjectProperty<>(cellData.getValue().getId()));
colunaCodigo.setStyle("-fx-alignment: CENTER;");
colunaCodigo.setSortType(TableColumn.SortType.ASCENDING);

TableColumn<Entregador, String> colunaTelefone = new TableColumn<>("Telefone");
colunaTelefone.setCellValueFactory(new PropertyValueFactory<>("telefone"));
colunaTelefone.setCellValueFactory(new PropertyValueFactory<>("phone"));
colunaTelefone.setStyle("-fx-alignment: CENTER;");

tabelaEntregador.getColumns().addAll(colunaNome, colunaTelefone);
TableColumn<Entregador, String> colunaData = new TableColumn<>("Data de cadastro");
colunaData.setCellValueFactory(new PropertyValueFactory<>("createdAt"));
colunaData.setStyle("-fx-alignment: CENTER;");

TableColumn<Entregador, String> colunaStatus = new TableColumn<>("Status");
colunaStatus.setCellValueFactory(cellData -> {
if (cellData.getValue().getActive()) {
return new SimpleStringProperty("Ativo");
}
return new SimpleStringProperty("Inativo");
});
colunaStatus.setStyle("-fx-alignment: CENTER;");

tabelaEntregador.getColumns().addAll(colunaCodigo,colunaNome, colunaTelefone, colunaData, colunaStatus);

tabelaEntregador.setItems(entregadorObservable);

tabelaEntregador.setRowFactory(tv -> new TableRow<>() {
@Override
protected void updateItem(Entregador entregador, boolean empty) {
super.updateItem(entregador, empty);
if (entregador == null || empty) {
setStyle("");
} else if (!entregador.isActive()) {
setStyle("-fx-text-fill: red;");
} else {
setStyle("");
}
}
});
}

private void carregarEntregadores() {
try {
String token = TokenManager.getInstance().getToken();
List<Entregador> todosEntregadores = entregadorService.buscarEntregadores(token);

if (!exibirInativosCheckBox.isSelected()) {
todosEntregadores.removeIf(entregador -> !entregador.getActive());
}

// Calcula o total de páginas
totalPaginas = (int) Math.ceil((double) todosEntregadores.size() / itensPorPagina);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import edu.pies.sysaguaapp.services.ProductCategoryService;
import edu.pies.sysaguaapp.services.ProductLineService;
import javafx.animation.PauseTransition;
import javafx.beans.property.SimpleObjectProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
Expand Down Expand Up @@ -41,67 +42,31 @@ public class ProdutosController{
private HBox paginationContainer;

@FXML
private Button btnAnterior;
private Button btnAnterior, btnProximo;

@FXML
private Button btnProximo;

@FXML
private TextField nomeField;
private TextField nomeField, custoField, precoUnitarioField, marcaField, unidadeField;

@FXML
private ComboBox<String> categoriaComboBox;

@FXML
private TextField custoField;

@FXML
private TextField precoUnitarioField;

@FXML
private TextField marcaField;

@FXML
private TextField unidadeField;

@FXML
private TextField lineField;

@FXML
private TextField ncmField;

@FXML
private TextField descricaoField;

@FXML
private TextField cestField;

@FXML
private TextField gtinField;
private TextField ncmField, descricaoField, cestField, gtinField;

@FXML
private BorderPane formCadastroProduto;

@FXML
private VBox detailsFormProduto;

@FXML
private VBox detailsFormFiscal;
private VBox detailsFormProduto, detailsFormFiscal,listProductView;

@FXML
private Rectangle overlay;

@FXML
private VBox listProductView;

@FXML
private Label successMessage;

@FXML
private Label nomeErrorLabel;

@FXML
private Label categoriaErrorLabel;
private Label nomeErrorLabel, categoriaErrorLabel, custoErrorLabel, precoUnitarioErrorLabel, marcaErrorLabel, linhaErrorLabel, unidadeErrorLabel;

@FXML
private Button btnSalvar;
Expand All @@ -113,31 +78,10 @@ public class ProdutosController{
private ComboBox<String> linhaComboBox;

@FXML
private Label custoErrorLabel;

@FXML
private Label precoUnitarioErrorLabel;
private Label ncmErrorLabel, descricaoErrorLabel, cestErrorLabel, gtinErrorLabel;

@FXML
private Label marcaErrorLabel;

@FXML
private Label linhaErrorLabel;

@FXML
private Label unidadeErrorLabel;

@FXML
private Label ncmErrorLabel;

@FXML
private Label descricaoErrorLabel;

@FXML
private Label cestErrorLabel;

@FXML
private Label gtinErrorLabel;
private CheckBox exibirInativosCheckBox;

private ObservableList<Produto> produtosObservable;
private int paginaAtual = 0;
Expand All @@ -163,6 +107,7 @@ public void initialize() {
carregarLinhas();
showMenuContext();
validarCampos();
configurarFiltroInativos();
}


Expand Down Expand Up @@ -326,8 +271,9 @@ private boolean validarFormulario() {
private void handleCancelar() {
hideForm();
hideOverlay();
listProductView.setDisable(false);
clearFieldForm();
clearFieldForm();
this.produtoEditando = null;
listProductView.setDisable(false);
}

@FXML
Expand Down Expand Up @@ -364,6 +310,8 @@ private void hideDetailsModal(VBox root) {

@FXML
private void handleAddProduto() {
updateButtonText();
clearFieldForm();
if (!formCadastroProduto.isVisible()) {
showOverlay();
showForm();
Expand Down Expand Up @@ -468,6 +416,11 @@ private void configurarTabela() {
TableColumn<Produto, String> colunaNome = new TableColumn<>("Nome");
colunaNome.setCellValueFactory(new PropertyValueFactory<>("name"));

TableColumn<Produto, Long> colunaCodigo = new TableColumn<>("Código");
colunaCodigo.setCellValueFactory(cellData -> new SimpleObjectProperty<>(cellData.getValue().getId()));
colunaCodigo.setStyle("-fx-alignment: CENTER;");
colunaCodigo.setSortType(TableColumn.SortType.ASCENDING);

TableColumn<Produto, String> colunaCategoria = new TableColumn<>("Categoria");
colunaCategoria.setCellValueFactory(cellData -> {
Produto produto = cellData.getValue();
Expand All @@ -483,15 +436,39 @@ private void configurarTabela() {

TableColumn<Produto, String> colunaUnidade = new TableColumn<>("Unidade");
colunaUnidade.setCellValueFactory(new PropertyValueFactory<>("unit"));
colunaUnidade.setStyle("-fx-alignment: CENTER;");

TableColumn<Produto, Double> colunaPreco = new TableColumn<>("Preço");
colunaPreco.setCellValueFactory(new PropertyValueFactory<>("price"));
TableColumn<Produto, String> colunaPreco = new TableColumn<>("Preço");
colunaPreco.setCellValueFactory(cellData ->{
BigDecimal preco = cellData.getValue().getPrice();
return new SimpleStringProperty(preco != null ? "R$ " + preco.setScale(4, RoundingMode.HALF_UP).toString() : "");
});
colunaPreco.setStyle("-fx-alignment: CENTER;");

TableColumn<Produto, Double> colunaCusto = new TableColumn<>("Custo");
colunaCusto.setCellValueFactory(new PropertyValueFactory<>("cost"));
TableColumn<Produto, String> colunaCusto = new TableColumn<>("Custo");
colunaCusto.setCellValueFactory(cellData -> {
BigDecimal custo = cellData.getValue().getPrice();
return new SimpleStringProperty(custo != null ? "R$ " + custo.setScale(4, RoundingMode.HALF_UP).toString() : "");
});
colunaCusto.setStyle("-fx-alignment: CENTER;");

tabelaProdutos.getColumns().addAll(colunaNome, colunaCategoria, colunaMarca ,colunaUnidade,colunaPreco, colunaCusto);
tabelaProdutos.getColumns().addAll(colunaCodigo, colunaNome, colunaCategoria, colunaMarca ,colunaUnidade,colunaPreco, colunaCusto);

tabelaProdutos.getSortOrder().add(colunaCodigo);

tabelaProdutos.setRowFactory(tv -> new TableRow<>() {
@Override
protected void updateItem(Produto produto, boolean empty) {
super.updateItem(produto, empty);
if (produto == null || empty) {
setStyle("");
} else if (!produto.isActive()) {
setStyle("-fx-text-fill: red;");
} else {
setStyle("");
}
}
});

tabelaProdutos.setItems(produtosObservable);
}
Expand All @@ -501,6 +478,13 @@ private void carregarProdutos() {
String token = TokenManager.getInstance().getToken();
List<Produto> todosProdutos = produtoService.buscarProdutos(token);

// Filtra os produtos ativos se o checkbox não estiver marcado
if (!exibirInativosCheckBox.isSelected()) {
todosProdutos = todosProdutos.stream()
.filter(Produto::isActive)
.toList();
}

// Calcula o total de páginas
totalPaginas = (int) Math.ceil((double) todosProdutos.size() / itensPorPagina);

Expand Down Expand Up @@ -651,6 +635,10 @@ private void configurarValidacaoTexto(TextField textField, Label errorLabel) {
});
}

private void configurarFiltroInativos() {
exibirInativosCheckBox.selectedProperty().addListener((observable, oldValue, newValue) -> carregarProdutos());
}

/*------------------------ mensagens ---------------*/

private void showSucessMessage() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,8 @@ public void initialize() {
private void configurarTabela() {
TableColumn<Estoque, Long> colunaCodigo = new TableColumn<>("Código");
colunaCodigo.setCellValueFactory(cellData -> new SimpleObjectProperty<>(cellData.getValue().getProduct().getId()));
colunaCodigo.setStyle("-fx-alignment: CENTER;");
colunaCodigo.setSortType(TableColumn.SortType.ASCENDING); // Adiciona a ordenação por ID

TableColumn<Estoque, String> colunaProduto = new TableColumn<>("Produto");
colunaProduto.setCellValueFactory(cellData -> new SimpleStringProperty(cellData.getValue().getProduct().getName()));
Expand All @@ -82,12 +84,15 @@ private void configurarTabela() {
BigDecimal cost = cellData.getValue().getProduct().getCost();
return new SimpleStringProperty(cost != null ? "R$ " + cost.setScale(4, RoundingMode.HALF_UP).toString() : "");
});
colunaCusto.setStyle("-fx-alignment: CENTER;");

TableColumn<Estoque, Integer> colunaQuantidade = new TableColumn<>("Quantidade");
colunaQuantidade.setCellValueFactory(new PropertyValueFactory<>("currentQuantity"));
colunaQuantidade.setStyle("-fx-alignment: CENTER;");

tabelaEstoque.getColumns().addAll(colunaCodigo, colunaProduto, colunaCusto, colunaQuantidade);
tabelaEstoque.setItems(estoqueObservable);
tabelaEstoque.getSortOrder().add(colunaCodigo); // Define a coluna de ID como a coluna de ordenação padrão
}

private void carregarProdutos() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,20 @@

import lombok.*;

import java.time.LocalDate;

@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class Entregador {
private Long id;
private String nome;
private String telefone;
private String name;
private String phone;
private Boolean active;
private String createdAt;

public boolean isActive() {
return active;
}
}
Loading

0 comments on commit 6ea35b2

Please sign in to comment.