Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package ci_eletronico; import ci_eletronico.entities.TbAnexo; import ci_eletronico.entities.TbCIPorAprovar; import ci_eletronico.entities.TbCiDestinatario; import ci_eletronico.entities.TbComunicacaoInterna; import ci_eletronico.entities.TbTipoComunicacoInterna; import ci_eletronico.entities.TbTipoEnvio; import ci_eletronico.entities.TbUnidadeOrganizacional; import ci_eletronico.entities.TbUnidadeOrganizacionalGestor; import ci_eletronico.entities.TbUsuario; import static ci_eletronico.nova_ci.NovaCIController.ltrim; import static ci_eletronico.nova_ci.NovaCIController.rtrim; import ci_eletronico_queries.MainWindowQueries; import com.itextpdf.text.Chunk; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Element; import com.itextpdf.text.Paragraph; import com.itextpdf.text.pdf.PdfWriter; import com.itextpdf.tool.xml.ElementHandler; import com.itextpdf.tool.xml.Writable; import com.itextpdf.tool.xml.XMLWorkerHelper; import com.itextpdf.tool.xml.pipeline.WritableElement; import com.itextpdf.text.Document; import com.itextpdf.text.ExceptionConverter; import com.itextpdf.text.PageSize; import com.itextpdf.text.Rectangle; import com.itextpdf.text.pdf.ColumnText; import com.itextpdf.text.pdf.PdfPageEventHelper; import com.itextpdf.tool.xml.ElementList; import java.awt.Desktop; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.io.StringReader; import java.net.URL; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; import java.util.Optional; import java.util.ResourceBundle; import java.util.Scanner; import java.util.logging.Level; import java.util.logging.Logger; import javafx.application.Platform; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.fxml.Initializable; import javafx.geometry.Insets; import javafx.scene.Node; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.stage.Stage; import javafx.scene.control.*; import javafx.scene.control.Alert.AlertType; import javafx.scene.control.ButtonBar.ButtonData; import javafx.scene.control.cell.PropertyValueFactory; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.input.MouseEvent; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.GridPane; import javafx.scene.paint.Color; import javafx.scene.text.Font; import javafx.scene.text.FontPosture; import javafx.scene.text.Text; import javafx.scene.text.TextFlow; import javafx.scene.web.HTMLEditor; import javafx.stage.DirectoryChooser; import javafx.stage.Modality; import javafx.util.Callback; import javafx.util.Pair; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import javax.persistence.TypedQuery; /** * * @author victorcmaf */ public class FXMLMainController implements Initializable { //public class FXMLMainController { public static final String HEADER = //"<table width=\"100%\" border=\"0\"><tr><td>Header</td><td align=\"right\">Some title</td></tr></table>"; "<table width=\"100%\" border=\"0\"><tr><td><img src=\"resources\\logo_prefeitura_salvador.png\" alt=\"\"/></td><td align=\"right\">Some title</td></tr></table>"; public String FOOTER = ""; //"<table width=\"100%\" border=\"0\"><tr><td>Footer</td><td align=\"right\">Some title</td></tr></table>"; public class MyFooter extends PdfPageEventHelper { protected ElementList header; protected ElementList footer; protected Chunk chunk; protected Chunk chunk2; // public MyFooter() throws IOException { header = XMLWorkerHelper.parseToElementList(HEADER, null); footer = XMLWorkerHelper.parseToElementList(FOOTER, null); } public MyFooter(String strCIAssinatura) throws IOException { FOOTER = "<table width=\"100%\" border=\"0\"><tr><td>Assinatura digital: <font size=\"3\">" + strCIAssinatura + "</font></td><td align=\"right\"> </td></tr></table>"; header = XMLWorkerHelper.parseToElementList(HEADER, null); footer = XMLWorkerHelper.parseToElementList(FOOTER, null); } @Override public void onEndPage(PdfWriter writer, Document document) { try { com.itextpdf.text.Image logo; //logo = com.itextpdf.text.Image.getInstance("http://172.22.8.18//arquivos//ci_instalador/logo_transalvador_preto_50.png"); logo = com.itextpdf.text.Image.getInstance("http://172.22.8.18//arquivos//ci_instalador/logo.jpg"); float width = logo.getScaledWidth(); float height = logo.getScaledHeight(); logo.setAlignment(logo.ALIGN_LEFT); logo.scaleAbsoluteHeight(20); logo.scaleAbsoluteWidth(20); logo.scalePercent(100); // com.itextpdf.text.Image logo2 = com.itextpdf.text.Image.getInstance("src\\resources\\logo_pms_preto.png"); // // float width2 = logo2.getScaledWidth(); // float height2 = logo2.getScaledHeight(); // // logo2.setAlignment(logo2.ALIGN_RIGHT); // logo2.scaleAbsoluteHeight(20); // logo2.scaleAbsoluteWidth(20); // logo2.scalePercent(50); //Chunk chunk = new Chunk(logo, 0, -45); chunk = new Chunk(logo, 0, -45); //chunk2 = new Chunk(logo2, 100, -45); } catch (IOException | DocumentException e) { System.out.println(); } try { ColumnText ct = new ColumnText(writer.getDirectContent()); ct.setSimpleColumn(new Rectangle(6, 832, 559, 810)); ct.addElement(chunk); // for (Element e : header) { // //ct.addElement(e); // ct.addElement(chunk); // //ct.addElement(chunk2); // } ct.go(); ct.setSimpleColumn(new Rectangle(36, 10, 559, 32)); for (Element e : footer) { ct.addElement(e); } ct.go(); } catch (DocumentException de) { throw new ExceptionConverter(de); } } } // class MyFooter extends PdfPageEventHelper { // com.itextpdf.text.Font ffont = new com.itextpdf.text.Font(com.itextpdf.text.Font.FontFamily.UNDEFINED, 5, com.itextpdf.text.Font.ITALIC); // // public void onEndPage(PdfWriter writer, Document document) { // PdfContentByte cb = writer.getDirectContent(); // Phrase header = new Phrase("this is a header", ffont); // Phrase footer = new Phrase("this is a footer", ffont); // ColumnText.showTextAligned(cb, Element.ALIGN_CENTER, // header, // (document.right() - document.left()) / 2 + document.leftMargin(), // document.top() + 10, 0); // ColumnText.showTextAligned(cb, Element.ALIGN_CENTER, // footer, // (document.right() - document.left()) / 2 + document.leftMargin(), // document.bottom() - 10, 0); // } // } @FXML private Label lblIdUsuario; @FXML private Label lblNomeUsuario; @FXML private Label lblIdUO; @FXML private Label lblNomeUO; @FXML private Label lblIdPerfil; @FXML private Label lblNomePerfil; @FXML private Label lblUOGestora; @FXML private Label lblCaixa; @FXML private Label lblRecordCount; @FXML private Button btnTrocarSenha; @FXML private Button btnTrocarAssinatura; @FXML private Button btnSair; @FXML private Button btnPendentesAprovacao; @FXML private Button btnCaixaEntrada; @FXML private Button btnCaixaEntradaSolicitandoAprovacao; @FXML private Button btnCaixaSaida; @FXML private Button btnCaixaPendencias; @FXML private Button btnCaixaArquivadas; @FXML private Button btnCaixaEnviadosArquivados; @FXML private Button btnEditarCI; @FXML private Button btnMarcarcomoPendencia; @FXML private Button btnNovaCI; @FXML private Button btnNovaCICircular; @FXML private Button btnNovaCIConfidencial; @FXML private Button btnResponderCI; @FXML private Button btnHistoricoCI; @FXML private TableView<TbCIPorAprovar> TbViewGeral2; @FXML private TableColumn ClTipoAprovacao; @FXML private TableColumn ClIdCoin2; @FXML private TableColumn ClICiSequencial2; @FXML private TableColumn ClUODestinatario2; @FXML private TableColumn ClDataEnvio2; @FXML private TableColumn ClUORemitente2; @FXML private TableColumn ClAutorRemitente2; @FXML private TableColumn ClAssunto2; @FXML private TableColumn ClAprovado; @FXML //private TableView TbViewGeral; private TableView<TbCIPorAprovar> TbViewGeral; @FXML private TableColumn ClIdCoin; @FXML private TableColumn ClICiSequencial; @FXML private TableColumn ClUODestinatario; @FXML private TableColumn ClDataEnvio; @FXML private TableColumn ClUORemitente; @FXML private TableColumn ClAutorRemitente; @FXML private TableColumn ClAssunto; @FXML private TableColumn ClLido; @FXML private Button btnImprimirCI; @FXML private Button btnAprovarCI; @FXML private Button btnEncaminharCI; @FXML private Button btnArquivarCI; @FXML private Button btnDesarquivarCI; @FXML private HTMLEditor htmlEditorCI; @FXML private Label lblNumeroSequencialCI; @FXML private TextFlow txtFAnexos; @FXML private Label lblNomeUOGestor; @FXML private Button btnMarcarComoLido; @FXML private Label lblAguardandoAprovacao; @FXML private Button btnDesaprovarCI; @FXML private TitledPane tPaneRecebidas; @FXML private TitledPane tPaneEnviadas; @FXML private TitledPane tPaneArquivadas; @FXML private TitledPane tPaneCisPorAprovar; @FXML private Button btnCiPorAprovar; @FXML private Accordion accordionCaixa; @FXML private ScrollPane scrollPaneTextFlow; @FXML private Button btnSalvarTodosArquivos; @FXML private ListView<Choice> lviewAnexos; @FXML private AnchorPane anchorPaneButoes; @FXML private AnchorPane anchorPaneTables; // Clases para tratar Anexar Arquivos private Desktop desktop = Desktop.getDesktop(); //Tabela a ser utilizada para atualizar status das CIs (aprovadas, arquivadas, desarquivadas) // 0 ==> Sem tabela definida // 1 ==> TB_COMUNICACAO_INTERNA // 2 ==> TB_CI_DESTINATARIO int ngTabela = 0; //1-caixa de recebidas (solicitando aprovao) //2-caixa de recebidas //3-caixa de recebidas (pendencias) //4-caixa de recebidas (arquivadas) //5-Caixa de enviados (arquivadas) //6-Caixa de enviados //7-Caixa de enviados (solicitando aprovao) int ngBotao = 0; private Integer nTipoPerfil = 0; private Scene scene; private String strIdUsuario = ""; private int nIdUsuarioLogado = 0; private String strNomeUsuario = ""; private String strIdUO = ""; private String strNomeUO = ""; private String strIdPerfil = ""; private String strDescricaoPerfil = ""; private String strHtmlAssinatura = ""; private int nTipoCI = 0; private int nIdUOGestor = 0; private int nIdUnidadeOrganizacional = 0; private String strgUserLogin = ""; //private MainWindowQueries consulta = new MainWindowQueries(); private MainWindowQueries consulta; private List<TbComunicacaoInterna> listaCiSemAprovar = new ArrayList<TbComunicacaoInterna>(); //private ObservableList<TbComunicacaoInterna> obslistaTbComunicacaoInterna; private ObservableList<TbCIPorAprovar> obslistaTbCIPorAprovar; private Hyperlink linkArquivoSelecionado = new Hyperlink(); @Override public void initialize(URL url, ResourceBundle rb) { // public void initialize() { // TODO //System.out.print("Tipo de Perfil metodo initialize = " + nTipoPerfil); //Labels e botes ocultados na verso de Produo this.lblIdPerfil.setVisible(false); this.lblIdUsuario.setVisible(false); this.lblIdUO.setVisible(false); this.lblUOGestora.setVisible(false); this.btnPendentesAprovacao.setVisible(false); this.btnCaixaEntradaSolicitandoAprovacao.setVisible(false); //A partir da verso 1.5.3 debemos esconder o ScrollPane e TextFlow this.scrollPaneTextFlow.setVisible(false); //this.scrollPaneTextFlow.setTooltip(new Tooltip("Para visualizar, favor selecione o arquivo e clique 2 vezes no boto esquerdo do Mouse")); //--------------------------------------------------------------------- tPaneRecebidas.setCollapsible(false); tPaneEnviadas.setCollapsible(false); tPaneArquivadas.setCollapsible(false); //tPaneCisPorAprovar.setCollapsible(false); this.btnSalvarTodosArquivos.setVisible(true); this.lviewAnexos.setTooltip(new Tooltip( "Para visualizar, favor selecione o arquivo e clique 2 vezes no boto esquerdo do Mouse")); } public void VerificarMarcadosComoPendencia() { Long lQuantidade = 0L; int nlQuantidade = 0; int nidUoDestinatario = 0; int nlTipoPerfil = 0; nidUoDestinatario = this.nIdUnidadeOrganizacional; nlTipoPerfil = this.nTipoPerfil; lQuantidade = RecordCountMarcadosComoPendentesTbCiDestinatario(nidUoDestinatario, nlTipoPerfil); nlQuantidade = lQuantidade.intValue(); if (nlQuantidade > 0) { Alert alert = new Alert(Alert.AlertType.WARNING); alert.setTitle("Alerta"); alert.setHeaderText("CIs marcadas como pendncia"); alert.setContentText("Na sua caixa de CIs Recebidas e marcadas como Pendncias\n" + "existem CIs que no foram tratadas h dias"); alert.showAndWait(); } } @FXML private void handleBtnSalvarTodosAnexos(ActionEvent event) throws IOException { int nSize = 0; String strFileName = ""; File outfile = null; if (0 == lviewAnexos.getItems().size()) { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Error"); alert.setHeaderText(null); alert.setContentText("A CI-Eletrnica no possui arquivos para serem salvos"); alert.showAndWait(); } else { //Preenchemos Ids e nomes dos arquivos ObservableList<Choice> choicesArquivos = FXCollections.observableArrayList(); //------------------------------------------------ //Quantidade de arquvios a serem salvos nSize = lviewAnexos.getItems().size(); //Selecionamos a pasta de destino Stage stage = new Stage(); DirectoryChooser dirChooser = new DirectoryChooser(); dirChooser.setTitle("CI-Eletrnica"); //File defaultDirectory = new File("c:/dev/javafx"); dirChooser.setInitialDirectory(new File(System.getProperty("user.home") + "//Downloads")); File selectedDirectory = dirChooser.showDialog(stage); //----------------------------------------------- if (selectedDirectory != null) { choicesArquivos = lviewAnexos.getItems(); for (int i = 0; i < nSize; i++) { //Salvamos o arquivo na pasta selecionada pelo usurio MainWindowQueries consulta = new MainWindowQueries(); List<TbAnexo> listaAnexos = new ArrayList<TbAnexo>(); //Extrair o Id para realizar o download do arquivo listaAnexos = consulta.downloadAnexo(choicesArquivos.get(i).id); for (TbAnexo l : listaAnexos) { strFileName = l.getAnexoNome(); outfile = new File(selectedDirectory + "\\" + l.getAnexoNome()); try { writeArquivo(outfile, l.getAnexoBlob()); } catch (IOException e) { e.printStackTrace(); } } } Alert alert = new Alert(Alert.AlertType.INFORMATION); alert.setTitle("Informao"); alert.setHeaderText(null); alert.setContentText("Os arquivos foram salvos na pasta selecionada pelo usurio."); alert.showAndWait(); } } } @FXML private void handleBtnSalvarTodosArquivos(ActionEvent event) throws IOException { int nSize = 0; int j = 0; int nIdAnexo = 0; String strFilePath = ""; String strDelimiters = "=|\\;"; String strFileName = ""; File outfile = null; if (0 == txtFAnexos.getChildren().size()) { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Error"); alert.setHeaderText(null); alert.setContentText("A CI-Eletrnica no possui arquivos para serem salvos"); alert.showAndWait(); } else { //Quantidade de arquvios a serem salvos nSize = txtFAnexos.getChildren().size(); //Selecionamos a pasta de destino Stage stage = new Stage(); DirectoryChooser dirChooser = new DirectoryChooser(); dirChooser.setTitle("CI-Eletrnica"); //File defaultDirectory = new File("c:/dev/javafx"); dirChooser.setInitialDirectory(new File(System.getProperty("user.home") + "//Downloads")); File selectedDirectory = dirChooser.showDialog(stage); //----------------------------------------------- if (selectedDirectory != null) { ObservableList<Node> nodes = txtFAnexos.getChildren(); StringBuilder sb = new StringBuilder(); for (Node node : nodes) { sb.append((((Text) node).getText())); } strFilePath = sb.toString(); strFilePath = ltrim(strFilePath); strFilePath = rtrim(strFilePath); String[] strParts = strFilePath.split(strDelimiters); for (int i = 0; i < strParts.length; i++) { //System.out.println(strParts[i]); if ((j % 2) == 0) { System.out.println("entro en j%2: " + strParts[i]); // strIdAnexo = strParts[i]; // strIdAnexo = ltrim(strIdAnexo); // strIdAnexo = rtrim(strIdAnexo); nIdAnexo = Integer.parseInt(strParts[i].trim()); System.out.println("Id Anexo = " + nIdAnexo); //Salvamos o arquivo na pasta selecionada pelo usurio MainWindowQueries consulta = new MainWindowQueries(); List<TbAnexo> listaAnexos = new ArrayList<TbAnexo>(); //Extrair o Id para realizar o download do arquivo listaAnexos = consulta.downloadAnexo(nIdAnexo); for (TbAnexo l : listaAnexos) { strFileName = l.getAnexoNome(); outfile = new File(selectedDirectory + "\\" + l.getAnexoNome()); try { writeArquivo(outfile, l.getAnexoBlob()); } catch (IOException e) { e.printStackTrace(); } } } else { System.out.println("est fora de j%2: " + strParts[i]); } j++; strFileName = ""; } Alert alert = new Alert(Alert.AlertType.INFORMATION); alert.setTitle("Informao"); alert.setHeaderText(null); alert.setContentText("Os arquivos foram salvos na pasta selecionada pelo usurio."); alert.showAndWait(); } else { System.out.println("Button cancelar pressed"); } } } @FXML private void handleBtnSairAction(ActionEvent event) throws IOException { //Ocultamos a janela de login (((Node) event.getSource()).getScene()).getWindow().hide(); //--------- FIM Ocultar janela de Main ------------ } @FXML private void handleBtnTrocarAssinatura(ActionEvent event) { //setBotoesMainWindow(nTipoPerfil); String strAssinatura = ""; int nlIdUsuario = 0; nlIdUsuario = Integer.parseInt(lblIdUsuario.getText()); consulta = new MainWindowQueries(); List<TbUsuario> listaUsuarios = new ArrayList<TbUsuario>(); //Extrair o Id para realizar o download do arquivo listaUsuarios = consulta.listaUserAssinatura(nlIdUsuario); for (TbUsuario l : listaUsuarios) { try { if (l.getUsuAssinatura().isEmpty()) { strAssinatura = ""; } else { strAssinatura = l.getUsuAssinatura(); } } catch (Exception e) { e.printStackTrace(); } } ShowTrocarAssinatura(this, nlIdUsuario, strAssinatura); } private void ShowTrocarAssinatura(FXMLMainController mainController, int nlIdUsuario, String strAssinatura) { try { scene = new Scene(new SplitPane()); FXMLLoader loader = new FXMLLoader( getClass().getResource("/ci_eletronico/fxml_utilitarios/Assinatura.fxml")); scene.setRoot((Parent) loader.load()); ci_eletronico.fxml_utilitarios.AssinaturaController Assinatura_controller = loader.<ci_eletronico.fxml_utilitarios.AssinaturaController>getController(); Assinatura_controller.setVariaveisAmbienteTrocarAssinatura(mainController, nlIdUsuario, strAssinatura); //controller.setVariaveisAmbienteNovaCI(mainController, strIdUsuario, strNomeUsuario, strIdUO, strNomeUO, strIdPerfil, strDescricaoPerfil); Stage stage = new Stage(); stage.setTitle("Trocar Assinatura"); //set icon stage.getIcons().add(new Image("/resources/signature_32.png")); stage.setScene(scene); stage.initModality(Modality.APPLICATION_MODAL); //Window Parent fica inativo stage.showAndWait(); strHtmlAssinatura = Assinatura_controller.getNovaAssinatura(); // } catch (IOException ex) { Logger.getLogger(FXMLMainController.class.getName()).log(Level.SEVERE, null, ex); } } @FXML private void handleBtnTrocarSenha(ActionEvent event) throws IOException { //setBotoesMainWindow(nTipoPerfil); trocarSenha(nIdUsuarioLogado); } public void trocarSenha(int nIdUserUO) { Dialog<Pair<String, String>> dialog = new Dialog<>(); dialog.setTitle("Trocar senha"); dialog.setHeaderText(null); // Set the icon (must be included in the project). dialog.setGraphic(new ImageView(this.getClass().getResource("/resources/User_password.png").toString())); // Set the button types. ButtonType loginButtonType = new ButtonType("OK", ButtonData.OK_DONE); dialog.getDialogPane().getButtonTypes().addAll(loginButtonType, ButtonType.CANCEL); // Create the username and password labels and fields. GridPane grid = new GridPane(); grid.setHgap(10); grid.setVgap(10); grid.setPadding(new Insets(20, 150, 10, 10)); PasswordField username = new PasswordField(); username.setPromptText("Nova senha"); PasswordField password = new PasswordField(); password.setPromptText("Confirmar nova senha"); grid.add(new Label("Nova senha:"), 0, 0); grid.add(username, 1, 0); grid.add(new Label("Confirmar nova senha:"), 0, 1); grid.add(password, 1, 1); // Enable/Disable login button depending on whether a username was entered. Node loginButton = dialog.getDialogPane().lookupButton(loginButtonType); loginButton.setDisable(true); // Do some validation (using the Java 8 lambda syntax). username.textProperty().addListener((observable, oldValue, newValue) -> { loginButton.setDisable(newValue.trim().isEmpty()); }); dialog.getDialogPane().setContent(grid); // Request focus on the username field by default. Platform.runLater(() -> username.requestFocus()); // Convert the result to a username-password-pair when the login button is clicked. dialog.setResultConverter(dialogButton -> { String strSenha1 = ""; String strSenha2 = ""; boolean bUpdate = false; if (dialogButton == loginButtonType) { //System.out.println("OK button pressed"); strSenha1 = username.getText(); strSenha2 = password.getText(); if (username.getText().equals(password.getText())) { // Senhas batem. Update senha no banco de dados try { consulta = new MainWindowQueries(); bUpdate = consulta.UpdateTrocarSenha(nIdUserUO, username.getText()); if (bUpdate) { // System.out.println("IdUsuario = " + nIdUserUO); // System.out.println("Update deve acontecer"); Alert alert = new Alert(Alert.AlertType.INFORMATION); alert.setTitle("Informao"); alert.setHeaderText(null); alert.setContentText("Sua senha foi trocada com sucesso."); alert.showAndWait(); return new Pair<>(username.getText(), password.getText()); } else { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Trocar senha"); alert.setHeaderText("Senha no foi atualizada"); alert.setContentText("Favor contatar Administrador do sistema"); alert.showAndWait(); } } catch (Exception e) { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Trocar senha"); alert.setHeaderText(null); alert.setContentText(e.getMessage()); alert.showAndWait(); } } else { // Erro. A nova senha no bate //System.out.println("As senhas no batem"); Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Erro"); alert.setHeaderText("Os valores inseridos no batem"); alert.setContentText( "Favor verificar os valores inseridos.\nInfelizmente sua senha no foi trocada"); alert.showAndWait(); } } return null; }); Optional<Pair<String, String>> result = dialog.showAndWait(); result.ifPresent(usernamePassword -> { // System.out.println("Username=" + usernamePassword.getKey() + ", Password=" + usernamePassword.getValue()); }); } public void setVariaveisAmbiente(final LoginController loginController, String strIdUsuario, String strNomeUsuario, String strIdUO, String strNomeUO, String strIdPerfil, String strDescricaoPerfil, String strHtmlAssinatura, int nIdUOGestor, String strlUserLogin, String strlUOGestorDescricao) { lblIdUsuario.setText(strIdUsuario); lblNomeUsuario.setText(strNomeUsuario); lblIdUO.setText(strIdUO); lblNomeUO.setText(strNomeUO); lblIdPerfil.setText(strIdPerfil); lblNomePerfil.setText(strDescricaoPerfil); lblUOGestora.setText(Integer.toString(nIdUOGestor)); lblNomeUOGestor.setText(strlUOGestorDescricao); this.strHtmlAssinatura = strHtmlAssinatura; nTipoPerfil = Integer.parseInt(strIdPerfil); this.nIdUOGestor = nIdUOGestor; //System.out.print("Tipo de Perfil metodo setVariaveisAmbiente = " + nTipoPerfil); nIdUnidadeOrganizacional = Integer.parseInt(strIdUO); nIdUsuarioLogado = Integer.parseInt(strIdUsuario); this.strgUserLogin = strlUserLogin; setBotoesMainWindow(nTipoPerfil); VerificarMarcadosComoPendencia(); //Default mostrar Cis na caixa de recebeidas btnCaixaEntrada.fire(); //PreencherCaixaEntrada(2, true); } public void setBotoesMainWindow(Integer IntTipoPerfil) { switch (IntTipoPerfil) { case 1: //ROLE_ADM - Gestor da UO //Botes principais btnNovaCI.setDisable(false); btnNovaCICircular.setDisable(false); btnNovaCIConfidencial.setDisable(false); btnPendentesAprovacao.setDisable(false); //Botes secundarios btnImprimirCI.setDisable(false); btnEncaminharCI.setDisable(false); btnResponderCI.setDisable(false); btnArquivarCI.setDisable(false); btnDesarquivarCI.setDisable(false); //btnEditarCI.setVisible(false); btnAprovarCI.setDisable(true); btnEditarCI.setDisable(true); btnDesaprovarCI.setDisable(true); btnMarcarcomoPendencia.setDisable(true); //Labels lblNumeroSequencialCI.setText(""); break; case 2: //ROLE_MNG - Usuario da UO //Botes principais btnNovaCI.setDisable(false); btnNovaCICircular.setDisable(false); btnNovaCIConfidencial.setDisable(true); btnPendentesAprovacao.setDisable(false); //Botes secundarios btnImprimirCI.setDisable(false); btnAprovarCI.setDisable(true); btnEncaminharCI.setDisable(false); btnResponderCI.setDisable(false); btnArquivarCI.setDisable(false); btnDesarquivarCI.setDisable(false); btnEditarCI.setDisable(true); btnDesaprovarCI.setDisable(true); //btnEditarCI.setVisible(false); btnMarcarcomoPendencia.setDisable(true); //Labels lblNumeroSequencialCI.setText(""); break; case 3: // ROLE_USER - Usuario Comum //Botes principais btnNovaCI.setDisable(true); btnNovaCICircular.setDisable(true); btnNovaCIConfidencial.setDisable(true); btnPendentesAprovacao.setDisable(true); //Botes secundarios btnImprimirCI.setDisable(true); btnAprovarCI.setDisable(true); btnEncaminharCI.setDisable(true); btnResponderCI.setDisable(true); btnArquivarCI.setDisable(true); btnDesarquivarCI.setDisable(true); //btnEditarCI.setVisible(false); btnEditarCI.setDisable(true); btnDesarquivarCI.setDisable(true); btnMarcarcomoPendencia.setDisable(true); btnDesaprovarCI.setDisable(true); //Labels lblNumeroSequencialCI.setText(""); break; default: break; } } @FXML private void handleBtnNovaCI(ActionEvent event) throws IOException { // String strIdUsuario = ""; // String strNomeUsuario = ""; // String strIdUO = ""; // String strNomeUO = ""; // String strIdPerfil = ""; // String strDescricaoPerfil = ""; String strHtmlConteudo = ""; strIdUsuario = lblIdUsuario.getText(); strNomeUsuario = lblNomeUsuario.getText(); strIdUO = lblIdUO.getText(); strNomeUO = lblNomeUO.getText(); strIdPerfil = lblIdPerfil.getText(); strDescricaoPerfil = lblNomePerfil.getText(); nTipoCI = 1; //CI Normal int nIdUORemitente = 0; String strUONomeRemitente = ""; //Variaveis para arquivar CI aps enviado int nBotao = 0; int nTabela = 0; int nIdCiEletronica = 0; // nBotao = this.ngBotao; // nTabela = this.ngTabela; // nIdCiEletronica = TbViewGeral.getSelectionModel().getSelectedItem().getIntp_idCoin(); //--------------------------------------------- //Variaveis utilizadas nas CIs encaminhadas para no perder nmero de CI //criada e quem foi o Remitente inicial (serve para saber quais anexos acompanham o despacho tambm) int nlIdCoinGenesis = 0; int nlIdUnorGenesis = 0; int nlCoinNumeroGenesis = 0; String strCoinHistoricoAnexos = ""; String strUnorDescricaoGenesis = ""; String strlAssunto = ""; ShowNovaCIe(this, strIdUsuario, strNomeUsuario, strIdUO, strNomeUO, strIdPerfil, strDescricaoPerfil, strHtmlAssinatura, nTipoCI, nIdUOGestor, strHtmlConteudo, nlIdCoinGenesis, nlIdUnorGenesis, nlCoinNumeroGenesis, strCoinHistoricoAnexos, strUnorDescricaoGenesis, strgUserLogin, strlAssunto, nIdUORemitente/*nIdUORemitente = 0 quando for diferente de 7 - CI respondida*/, strUONomeRemitente, nBotao, nTabela, nIdCiEletronica); } @FXML private void handleBtnNovaCICircular(ActionEvent event) throws IOException { String strHtmlConteudo = ""; strIdUsuario = lblIdUsuario.getText(); strNomeUsuario = lblNomeUsuario.getText(); strIdUO = lblIdUO.getText(); strNomeUO = lblNomeUO.getText(); strIdPerfil = lblIdPerfil.getText(); strDescricaoPerfil = lblNomePerfil.getText(); nTipoCI = 2; //CI Circular int nIdUORemitente = 0; String strUONomeRemitente = ""; //Variaveis para arquivar CI aps enviado int nBotao = 0; int nTabela = 0; int nIdCiEletronica = 0; // nBotao = this.ngBotao; // nTabela = this.ngTabela; // nIdCiEletronica = TbViewGeral.getSelectionModel().getSelectedItem().getIntp_idCoin(); //--------------------------------------------- //Variaveis utilizadas nas CIs encaminhadas para no perder nmero de CI //criada e quem foi o Remitente inicial (serve para saber quais anexos acompanham o despacho tambm) int nlIdCoinGenesis = 0; int nlIdUnorGenesis = 0; int nlCoinNumeroGenesis = 0; String strCoinHistoricoAnexos = ""; String strUnorDescricaoGenesis = ""; String strlAssunto = ""; ShowNovaCIe(this, strIdUsuario, strNomeUsuario, strIdUO, strNomeUO, strIdPerfil, strDescricaoPerfil, strHtmlAssinatura, nTipoCI, nIdUOGestor, strHtmlConteudo, nlIdCoinGenesis, nlIdUnorGenesis, nlCoinNumeroGenesis, strCoinHistoricoAnexos, strUnorDescricaoGenesis, strgUserLogin, strlAssunto, nIdUORemitente/*nIdUORemitente = 0 quando for diferente de 7 - CI respondida*/, strUONomeRemitente, nBotao, nTabela, nIdCiEletronica); } @FXML private void handleBtnNovaCIConfidencial(ActionEvent event) throws IOException { String strHtmlConteudo = ""; strIdUsuario = lblIdUsuario.getText(); strNomeUsuario = lblNomeUsuario.getText(); strIdUO = lblIdUO.getText(); strNomeUO = lblNomeUO.getText(); strIdPerfil = lblIdPerfil.getText(); strDescricaoPerfil = lblNomePerfil.getText(); nTipoCI = 3; //CI Confidencial int nIdUORemitente = 0; String strUONomeRemitente = ""; //Variaveis utilizadas nas CIs encaminhadas para no perder nmero de CI //criada e quem foi o Remitente inicial (serve para saber quais anexos acompanham o despacho tambm) int nlIdCoinGenesis = 0; int nlIdUnorGenesis = 0; int nlCoinNumeroGenesis = 0; String strCoinHistoricoAnexos = ""; String strUnorDescricaoGenesis = ""; String strlAssunto = ""; //Variaveis para arquivar CI aps enviado int nBotao = 0; int nTabela = 0; int nIdCiEletronica = 0; // nBotao = this.ngBotao; // nTabela = this.ngTabela; // nIdCiEletronica = TbViewGeral.getSelectionModel().getSelectedItem().getIntp_idCoin(); //--------------------------------------------- ShowNovaCIe(this, strIdUsuario, strNomeUsuario, strIdUO, strNomeUO, strIdPerfil, strDescricaoPerfil, strHtmlAssinatura, nTipoCI, nIdUOGestor, strHtmlConteudo, nlIdCoinGenesis, nlIdUnorGenesis, nlCoinNumeroGenesis, strCoinHistoricoAnexos, strUnorDescricaoGenesis, strgUserLogin, strlAssunto, nIdUORemitente/*nIdUORemitente = 0 quando for diferente de 7 - CI respondida*/, strUONomeRemitente, nBotao, nTabela, nIdCiEletronica); } @FXML private void handleBtnCIResponder(ActionEvent event) throws IOException { if (null == TbViewGeral.getSelectionModel().getSelectedItem()) { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Erro"); alert.setHeaderText("CI no foi selecionado."); alert.setContentText("Favor selecionar uma CI da tabela"); alert.showAndWait(); } else { String strHtmlConteudo = ""; String strlAssinatura = ""; String strlAssunto = ""; strHtmlConteudo = TbViewGeral.getSelectionModel().getSelectedItem().getStrp_Conteudo(); strlAssinatura = TbViewGeral.getSelectionModel().getSelectedItem().getStrp_CoinAssinatura(); strlAssunto = TbViewGeral.getSelectionModel().getSelectedItem().getStrp_Assunto(); //Valores para preencher o campo Para: int nIdUORemitente = 0; String strUONomeRemitente = ""; nIdUORemitente = TbViewGeral.getSelectionModel().getSelectedItem().getIntp_idUORemitente(); strUONomeRemitente = TbViewGeral.getSelectionModel().getSelectedItem().getStrp_DescricaoUORemitente(); //----------------------------------------- strIdUsuario = lblIdUsuario.getText(); strNomeUsuario = lblNomeUsuario.getText(); strIdUO = lblIdUO.getText(); strNomeUO = lblNomeUO.getText(); strIdPerfil = lblIdPerfil.getText(); strDescricaoPerfil = lblNomePerfil.getText(); nTipoCI = 7; //CI Respondida //Variaveis para arquivar CI aps enviado int nBotao = 0; int nTabela = 0; int nIdCiEletronica = 0; nBotao = this.ngBotao; nTabela = this.ngTabela; nIdCiEletronica = TbViewGeral.getSelectionModel().getSelectedItem().getIntp_idCoin(); //--------------------------------------------- //Variaveis utilizadas nas CIs encaminhadas para no perder nmero de CI //criada e quem foi o Remitente inicial (serve para saber quais anexos acompanham o despacho tambm) int nlIdCoinGenesis = 0; int nlIdUnorGenesis = 0; int nlCoinNumeroGenesis = 0; String strCoinHistoricoAnexos = ""; String strUnorDescricaoGenesis = ""; nlIdCoinGenesis = TbViewGeral.getSelectionModel().getSelectedItem().getIntp_idCoinGenesis(); nlIdUnorGenesis = TbViewGeral.getSelectionModel().getSelectedItem().getIntp_idUnorGenesis(); nlCoinNumeroGenesis = TbViewGeral.getSelectionModel().getSelectedItem().getIntp_CoinNumeroGenesis(); strUnorDescricaoGenesis = TbViewGeral.getSelectionModel().getSelectedItem() .getStrp_UnorDescricaoGenesis(); //strCoinHistoricoAnexos = TbViewGeral.getSelectionModel().getSelectedItem().getStrp_CoinHistoricoAnexos(); //Verificamos se CI a ser encaminhada possui anexos if (txtFAnexos.getChildren().size() > 0) { ObservableList<Node> nodes = txtFAnexos.getChildren(); StringBuilder sb = new StringBuilder(); for (Node node : nodes) { sb.append((((Text) node).getText())); } strCoinHistoricoAnexos = strCoinHistoricoAnexos.concat(sb.toString()); } ShowNovaCIe(this, strIdUsuario, strNomeUsuario, strIdUO, strNomeUO, strIdPerfil, strDescricaoPerfil, strHtmlAssinatura, nTipoCI, nIdUOGestor, strHtmlConteudo, nlIdCoinGenesis, nlIdUnorGenesis, nlCoinNumeroGenesis, strCoinHistoricoAnexos, strUnorDescricaoGenesis, strlAssinatura, strlAssunto, nIdUORemitente, strUONomeRemitente, nBotao, nTabela, nIdCiEletronica); } } @FXML private void handleBtnCIEncaminhar(ActionEvent event) throws IOException { if (null == TbViewGeral.getSelectionModel().getSelectedItem()) { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Erro"); alert.setHeaderText("CI no foi selecionado."); alert.setContentText("Favor selecionar uma CI da tabela"); alert.showAndWait(); } else { String strHtmlConteudo = ""; String strlAssinatura = ""; String strlAssunto = ""; strHtmlConteudo = TbViewGeral.getSelectionModel().getSelectedItem().getStrp_Conteudo(); strlAssinatura = TbViewGeral.getSelectionModel().getSelectedItem().getStrp_CoinAssinatura(); strlAssunto = TbViewGeral.getSelectionModel().getSelectedItem().getStrp_Assunto(); strIdUsuario = lblIdUsuario.getText(); strNomeUsuario = lblNomeUsuario.getText(); strIdUO = lblIdUO.getText(); strNomeUO = lblNomeUO.getText(); strIdPerfil = lblIdPerfil.getText(); strDescricaoPerfil = lblNomePerfil.getText(); nTipoCI = 4; //CI Encaminhada //Variaveis para arquivar CI aps enviado int nBotao = 0; int nTabela = 0; int nIdCiEletronica = 0; nBotao = this.ngBotao; nTabela = this.ngTabela; nIdCiEletronica = TbViewGeral.getSelectionModel().getSelectedItem().getIntp_idCoin(); //--------------------------------------------- int nIdUORemitente = 0; String strUONomeRemitente = ""; //Variaveis utilizadas nas CIs encaminhadas para no perder nmero de CI //criada e quem foi o Remitente inicial (serve para saber quais anexos acompanham o despacho tambm) int nlIdCoinGenesis = 0; int nlIdUnorGenesis = 0; int nlCoinNumeroGenesis = 0; String strCoinHistoricoAnexos = ""; String strUnorDescricaoGenesis = ""; nlIdCoinGenesis = TbViewGeral.getSelectionModel().getSelectedItem().getIntp_idCoinGenesis(); nlIdUnorGenesis = TbViewGeral.getSelectionModel().getSelectedItem().getIntp_idUnorGenesis(); nlCoinNumeroGenesis = TbViewGeral.getSelectionModel().getSelectedItem().getIntp_CoinNumeroGenesis(); strUnorDescricaoGenesis = TbViewGeral.getSelectionModel().getSelectedItem() .getStrp_UnorDescricaoGenesis(); //strCoinHistoricoAnexos = TbViewGeral.getSelectionModel().getSelectedItem().getStrp_CoinHistoricoAnexos(); //Verificamos se CI a ser encaminhada possui anexos if (txtFAnexos.getChildren().size() > 0) { ObservableList<Node> nodes = txtFAnexos.getChildren(); StringBuilder sb = new StringBuilder(); for (Node node : nodes) { sb.append((((Text) node).getText())); } strCoinHistoricoAnexos = strCoinHistoricoAnexos.concat(sb.toString()); } ShowNovaCIe(this, strIdUsuario, strNomeUsuario, strIdUO, strNomeUO, strIdPerfil, strDescricaoPerfil, strHtmlAssinatura, nTipoCI, nIdUOGestor, strHtmlConteudo, nlIdCoinGenesis, nlIdUnorGenesis, nlCoinNumeroGenesis, strCoinHistoricoAnexos, strUnorDescricaoGenesis, strlAssinatura, strlAssunto, nIdUORemitente/*nIdUORemitente = 0 quando for diferente de 7 - CI respondida*/, strUONomeRemitente, nBotao, nTabela, nIdCiEletronica); } } public void ShowNovaCIe(final FXMLMainController mainController, String strIdUsuario, String strNomeUsuario, String strIdUO, String strNomeUO, String strIdPerfil, String strDescricaoPerfil, String strHtmlAssinatura, int nTipoCI, int nIdUOGestor, String strHtmlConteudo, int nlIdCoinGenesis, int nlIdUnorGenesis, int nlCoinNumeroGenesis, String strCoinHistoricoAnexos, String strUnorDescricaoGenesis, String strlUserLogin, String strlAssunto, int nIdUORemitente, String strUONomeRemitente, int nBotao, int nTabela, int nIdCiEletronica /*arquivamento aps Ci enviado*/ ) { try { scene = new Scene(new SplitPane()); FXMLLoader loader = new FXMLLoader(getClass().getResource("/ci_eletronico/nova_ci/NovaCI.fxml")); scene.setRoot((Parent) loader.load()); ci_eletronico.nova_ci.NovaCIController nova_ci_controller = loader.<ci_eletronico.nova_ci.NovaCIController>getController(); nova_ci_controller.setVariaveisAmbienteNovaCI(mainController, strIdUsuario, strNomeUsuario, strIdUO, strNomeUO, strIdPerfil, strDescricaoPerfil, strHtmlAssinatura, nTipoCI, nIdUOGestor, strHtmlConteudo, nlIdCoinGenesis, nlIdUnorGenesis, nlCoinNumeroGenesis, strCoinHistoricoAnexos, strUnorDescricaoGenesis, strlUserLogin, strlAssunto, nIdUORemitente, strUONomeRemitente, nIdCiEletronica, nBotao); //controller.setVariaveisAmbienteNovaCI(mainController, strIdUsuario, strNomeUsuario, strIdUO, strNomeUO, strIdPerfil, strDescricaoPerfil); Stage stage = new Stage(); stage.setTitle("Nova CI-eletrnico"); //set icon stage.getIcons().add(new Image("/resources/Nova_CI.png")); stage.setScene(scene); stage.initModality(Modality.APPLICATION_MODAL); //Window Parent fica inativo stage.showAndWait(); //Arquivamos as CIs que foram do tipo Ci - Encaminhada ==>4 ou Ci -respondida ==>7 switch (nTipoCI) { case 4: case 7: //ArquivarCiRespondidaOuEncaminhada(Integer.parseInt(strIdUO),nIdCiEletronica, nTabela); //Refresh da TableView switch (nBotao) { case 1: btnCaixaEntradaSolicitandoAprovacao.fire(); break; case 2: btnCaixaEntrada.fire(); break; case 3: btnCaixaPendencias.fire(); break; case 4: btnCaixaArquivadas.fire(); break; case 5: btnCaixaEnviadosArquivados.fire(); break; case 6: btnCaixaSaida.fire(); break; case 7: btnPendentesAprovacao.fire(); break; default: break; } break; default: break; } // } catch (IOException ex) { Logger.getLogger(FXMLMainController.class.getName()).log(Level.SEVERE, null, ex); } } @FXML private void handleBtnCaixaEntradaPendentesAprovacao(ActionEvent event) throws IOException { // lblCaixa.setText(""); // lblCaixa.setText("Caixa de recebidas (solicitando aprovao)"); // // setBotoesMainWindow(nTipoPerfil); // // btnEncaminharCI.setDisable(true); // btnDesarquivarCI.setDisable(true); // // if ((this.nIdUnidadeOrganizacional == this.nIdUOGestor) &&(this.nTipoPerfil == 1)){ // btnAprovarCI.setDisable(false); // }else{ // btnAprovarCI.setDisable(true); // } // clearTelas(); // // boolean blPreencherTableView2 = true; // PreencherCaixaEntrada(1,blPreencherTableView2); } @FXML private void handleBtnPendentesAprovacao(ActionEvent event) throws IOException { // // lblCaixa.setText(""); // lblCaixa.setText("Caixa de enviados (solicitando aprovao)"); // // setBotoesMainWindow(nTipoPerfil); // // // btnEncaminharCI.setDisable(true); // btnDesarquivarCI.setDisable(true); // // // // btnEditarCI.setVisible(true); // btnMarcarcomoPendencia.setDisable(true); // // if ((this.nIdUnidadeOrganizacional == this.nIdUOGestor) &&(this.nTipoPerfil == 1)){ // btnAprovarCI.setDisable(false); // }else{ // btnAprovarCI.setDisable(true); // } // // clearTelas(); // // ngTabela = 1; // TB_COMUNICACAO_INTERNA // ngBotao = 7; // // //Tipo de perfil // int nlTipoPerfil = 0; // nlTipoPerfil = this.nTipoPerfil; // // //List<TbComunicacaoInterna> listaCiSemAprovar = new ArrayList<>(); // int nIdCoin = 0; // int nSequencial = 0; // String strAssunto = ""; // String strConteudo = ""; // int nIdUsuario = 0; // String strUsuarioNomeCompleto = ""; // String strApensamento = ""; // int nIdUO = 0; // int nIdUOGestor = 0; // int nTipoCoin = 0; // int nIdTabelaFonte = 0; // String strUODescricao = ""; // Date dataCriacao; // Date dataAutorizado; // DateFormat df = new SimpleDateFormat("dd-MM-yyyy HH:mm"); // String strDataCriacao = ""; // boolean bTemAnexos = false; // boolean bAutorizado = false; // boolean bGestorArquivado = false; // boolean bArquivadoUO = false; // boolean bArquivadoUOGestor = false; // boolean bCoinReadOnly = false; // // //Variaveis utilizadas nas CIs encaminhadas para no perder nmero de CI // //criada e quem foi o Remitente inicial (serve para saber quais anexos acompanham o despacho tambm) // int nlIdCoinGenesis = 0; // int nlIdUnorGenesis = 0; // int nlCoinNumeroGenesis = 0; // String strCoinHistoricoAnexos = ""; // String strUnorDescricaoGenesis = ""; // //------------------------------------------- // // String strlDescricaoUODestinatario = ""; // // //Assinatura MD5 // String strlAssinatura = ""; // // boolean bCoinLido = false; // // obslistaTbCIPorAprovar = FXCollections.observableArrayList(); // // consulta = new MainWindowQueries(); // // //Deve-se mostrar as Cis para aprovao s para usurio que faz parte da UO Gestora // if (this.nIdUOGestor == this.nIdUnidadeOrganizacional){ // if (1 == nlTipoPerfil){ //Perfil Gestor // listaCiSemAprovar = consulta.getlistaTbComunicacaoInternaPorAprovar(this.nIdUOGestor); // } else { // listaCiSemAprovar = consulta.getlistaTbComunicacaoInternaPorAprovarPerfil2(this.nIdUOGestor); // } // // for(TbComunicacaoInterna l : listaCiSemAprovar){ // try { // nIdCoin = l.getIdCoin(); // strAssunto = l.getCoinAssunto(); // strConteudo = l.getCoinConteudo(); // nIdUsuario = l.getIdUsuario(); // strUsuarioNomeCompleto = l.getUsuNomeCompleto(); // nIdUO = l.getIdUnidadeOrganizacional(); // strUODescricao = l.getUnorDescricao(); // nIdUOGestor = l.getIdUoGestor(); // bAutorizado = l.getCoinAutorizado(); // nTipoCoin = l.getIdTipoCoin().getIdTipoCoin(); // strApensamento = l.getCoinApensamento(); // nSequencial = l.getCoinNumero(); // bArquivadoUO = l.getCoinUoArquivado(); // bArquivadoUOGestor = l.getCoinUoGestorArquivado(); // dataCriacao = l.getCoinDataCriacao(); // strDataCriacao = df.format(dataCriacao); // dataAutorizado = l.getCoinDataAutorizado(); // bCoinReadOnly = l.getCoinReadOnly(); // bTemAnexos = l.getCoinTemAnexos(); // nIdTabelaFonte = 1; // // nlIdCoinGenesis = l.getIdCoinGenesis(); // nlIdUnorGenesis = l.getIdUnorGenesis(); // nlCoinNumeroGenesis = l.getCoinNumeroGenesis(); // strCoinHistoricoAnexos = l.getCoinHistoricoAnexos(); // strUnorDescricaoGenesis = l.getUnorDescricaoGenesis(); // // strlAssinatura = l.getCoinAssinatura(); // // // // obslistaTbCIPorAprovar.add(new TbCIPorAprovar(nIdCoin,strAssunto,strConteudo,nIdUsuario,strUsuarioNomeCompleto, // // nIdUO,strUODescricao,nSequencial,dataCriacao,strDataCriacao,bAutorizado,bTemAnexos,1)); // obslistaTbCIPorAprovar.add(new TbCIPorAprovar(nIdCoin, strAssunto, strConteudo, nIdUsuario, strUsuarioNomeCompleto, nIdUO, strUODescricao, // nIdUOGestor, bAutorizado, nTipoCoin, strApensamento, nSequencial, bArquivadoUO, bArquivadoUOGestor, dataCriacao, strDataCriacao, // dataAutorizado, bCoinReadOnly, bTemAnexos ,nIdTabelaFonte, // nlIdCoinGenesis, nlIdUnorGenesis, nlCoinNumeroGenesis, strCoinHistoricoAnexos, strUnorDescricaoGenesis, // strlDescricaoUODestinatario, // strlAssinatura, bCoinLido)); // } catch (Exception e){ // Alert alert = new Alert(Alert.AlertType.ERROR); // alert.setTitle("Error"); // alert.setHeaderText("ObservableList Error"); // alert.setContentText(e.toString()); // alert.showAndWait(); // } // } // // ClDataEnvio; ClUORemitente; ClAutorRemitente; ClAssunto; // ClAprovado.setCellValueFactory(new PropertyValueFactory<TbCIPorAprovar,Boolean>("boolp_CoinLido")); // ClIdCoin.setCellValueFactory(new PropertyValueFactory<TbCIPorAprovar,Integer>("intp_idCoin")); // ClUODestinatario.setCellValueFactory(new PropertyValueFactory<TbCIPorAprovar,String>("strp_DescricaoUODestinatario")); // ClDataEnvio.setCellValueFactory(new PropertyValueFactory<TbCIPorAprovar,String>("strp_dataCriacao")); // ClUORemitente.setCellValueFactory(new PropertyValueFactory<TbCIPorAprovar,String>("strp_DescricaoUORemitente")); // ClAutorRemitente.setCellValueFactory(new PropertyValueFactory<TbCIPorAprovar,String>("strp_UsuarioNomeCompleto")); // ClAssunto.setCellValueFactory(new PropertyValueFactory<TbCIPorAprovar,String>("strp_Assunto")); // TbViewGeral.setItems(obslistaTbCIPorAprovar); // //TbViewGeral // // // // TbViewGeral.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() { // @Override // public void changed(ObservableValue observableValue, Object oldValue, Object newValue) { // //Check whether item is selected and set value of selected item to Label // try{ // //TableView<TbCIPorAprovar> TbViewGeral = new TableView<>(); // if(TbViewGeral.getSelectionModel().getSelectedItem() != null){ // //TbCIPorAprovar tbCiPorAprovar = TbViewGeral.getSelectionModel().getSelectedItem(); // //TbCIPorAprovar tbtbCiPorAprovar = new TbCIPorAprovar(); // TbCIPorAprovar tbCiPorAprovar = TbViewGeral.getSelectionModel().getSelectedItem(); // int nCISequencial = 0; // int nlIdCI = 0; // boolean bTemAnexo = false; // // String strCoinHistoricoAnexos = ""; // // String strDescricaoUO = ""; // String strYear = ""; // Date dataCriacao; // SimpleDateFormat df = new SimpleDateFormat("yyyy"); // // nlIdCI = tbCiPorAprovar.getIntp_idCoin(); // //strDescricaoUO = tbCiPorAprovar.getStrp_DescricaoUORemitente(); // strDescricaoUO = tbCiPorAprovar.getStrp_UnorDescricaoGenesis(); // nCISequencial = tbCiPorAprovar.getIntp_idCoinNumero(); // dataCriacao = tbCiPorAprovar.getDataCriacao(); // bTemAnexo = tbCiPorAprovar.getBoolp_CoinTemAnexos(); // strCoinHistoricoAnexos = tbCiPorAprovar.getStrp_CoinHistoricoAnexos(); // // strYear = df.format(dataCriacao); // // htmlEditorCI.setHtmlText(tbCiPorAprovar.getStrp_Conteudo()); // lblNumeroSequencialCI.setText(strDescricaoUO + "-" + String.format("%05d",nCISequencial)+"-" + strYear); // if ((bTemAnexo) || (strCoinHistoricoAnexos.length()>0) ){ // PreencherTxtFAnexos(nlIdCI,strCoinHistoricoAnexos); // } // else { // txtFAnexos.getChildren().clear(); // } // } // }catch (Exception e) { // e.printStackTrace(); // //labelMessage.setText("Error on get row Data"); // Alert alert = new Alert(Alert.AlertType.ERROR); // alert.setTitle("Erro"); // alert.setHeaderText("Erro na carga da TableView"); // alert.setContentText(e.getMessage()); // alert.showAndWait(); // } // } // }); // } } private void PreencherTxtFAnexos(int nlIdCI, String strCoinHistoricoAnexos) { txtFAnexos.getChildren().clear(); lviewAnexos.getItems().clear(); //Hyperlink linkArquivoSelecionado = new Hyperlink() ; Text txtIdAnexo; Text txtArquivoSelecionado; Text txtNomeArquivo; String strDelimiters = ";"; String strSeparador = "=|\\;"; //Preenchemos Ids e nomes dos arquivos ObservableList<Choice> choicesArquivos = FXCollections.observableArrayList(); //------------------------------------------------ if (nlIdCI > 0) { consulta = new MainWindowQueries(); List<TbAnexo> listaAnexos = new ArrayList<TbAnexo>(); TbComunicacaoInterna nlIdCoin = new TbComunicacaoInterna(nlIdCI); listaAnexos = consulta.getlistaAnexo(nlIdCoin); for (TbAnexo l : listaAnexos) { choicesArquivos.add(new Choice(l.getIdAnexo(), l.getAnexoNome())); linkArquivoSelecionado = new Hyperlink(); linkArquivoSelecionado.setText(l.getIdAnexo() + "=" + l.getAnexoNome() + " ;\n"); //txtArquivoSelecionado.getStyleClass().add("link"); txtIdAnexo = new Text(); txtNomeArquivo = new Text(); txtArquivoSelecionado = new Text(); //txtArquivoSelecionado.setText("\""+ UOSelected.get(nContador)+ "\"; "); txtIdAnexo.setFill(Color.SILVER); txtIdAnexo.setFont(Font.font("Arial", FontPosture.REGULAR, 12)); txtIdAnexo.setText(l.getIdAnexo() + "=" /*+ l.getAnexoNome() + " ;\n"*/); txtNomeArquivo.setFill(Color.BLUE); txtNomeArquivo.setFont(Font.font("Arial", FontPosture.REGULAR, 12)); txtNomeArquivo.setText(l.getAnexoNome()/*+";\n"*/); TextFlow textFlow = new TextFlow(txtIdAnexo, txtNomeArquivo); txtArquivoSelecionado.setFill(Color.BLUE); //txtArquivoSelecionado.setFont(Font.font("Arial", FontPosture.REGULAR, 12)); //txtArquivoSelecionado.setText(txtIdAnexo.getText() + txtNomeArquivo.getText() ); txtArquivoSelecionado.setText(l.getIdAnexo() + "=" + l.getAnexoNome() + " ;\n"); //txtArquivoSelecionado.setFont(Font.font("Arial", FontPosture.REGULAR, 12)); txtFAnexos.getChildren().add(txtArquivoSelecionado); //txtFAnexos.getChildren().add(textFlow); //txtFAnexos.getChildren().add(linkArquivoSelecionado); // linkArquivoSelecionado.setOnAction(ev->{ // System.out.println("Click on link: " + linkArquivoSelecionado.getText()); //// AbrirArquivo(linkArquivoSelecionado.getText(),1); // }); } lviewAnexos.setItems(choicesArquivos); } if (strCoinHistoricoAnexos.length() > 0) { //Utilizamos o controle ListView String strHistoricoAnexos = strCoinHistoricoAnexos; strHistoricoAnexos = ltrim(strHistoricoAnexos); strHistoricoAnexos = rtrim(strHistoricoAnexos); //System.out.println("strHistoricoAnexos <==> " + strHistoricoAnexos); String[] strParteSeparada = strHistoricoAnexos.split(strSeparador); // // Initialize Scanner object // Scanner scan = new Scanner(strHistoricoAnexos); // // initialize the string delimiter // scan.useDelimiter("="); // // Printing the delimiter used // System.out.println("The delimiter use is "+scan.delimiter()); // // Printing the tokenized Strings // while(scan.hasNext()){ // System.out.println(scan.next()); // } // // closing the scanner stream // scan.close(); int j = 1; int y = 0; int z = 0; int nContador = strParteSeparada.length / 2; int[] nArrayId = new int[strParteSeparada.length / 2]; //Dividimos x 2 para pegar s a quantidade exata de Ids no array String[] strArrayNomeArquivo = new String[strParteSeparada.length / 2]; for (int i = 0; i < strParteSeparada.length; i++) { if ((j % 2) == 0) { strArrayNomeArquivo[y] = strParteSeparada[i].trim(); //System.out.println("Nome Arquivo <==> " + strArrayNomeArquivo[y]); y++; } else { nArrayId[z] = Integer.parseInt(strParteSeparada[i].trim()); //System.out.println("Id <==> " + nArrayId[z]); z++; } //System.out.println("Anexo = "+strParteSeparada[i]); j++; } //System.out.println("Fim"); for (int i = 0; i < nContador; i++) { choicesArquivos.add(new Choice(nArrayId[i], strArrayNomeArquivo[i])); } lviewAnexos.setItems(choicesArquivos); //---------------------------------------------------------------- String[] strParts = strCoinHistoricoAnexos.split(strDelimiters); for (int i = 0; i < strParts.length; i++) { //choicesArquivos.add(new Choice(l.getIdAnexo(), l.getAnexoNome())); linkArquivoSelecionado = new Hyperlink(); linkArquivoSelecionado.setText(strParts[i] + " ;\n"); txtArquivoSelecionado = new Text(); txtArquivoSelecionado.setText(strParts[i] + "\n"); txtArquivoSelecionado.setFill(Color.BLUE); txtArquivoSelecionado.setFont(Font.font("Arial", FontPosture.REGULAR, 12)); txtFAnexos.getChildren().add(txtArquivoSelecionado); //txtFAnexos.getChildren().add(linkArquivoSelecionado); // linkArquivoSelecionado.setOnAction(ev->{ // //System.out.println("Click on link: " + linkArquivoSelecionado.getText()); // AbrirArquivo(linkArquivoSelecionado.getText(),1); // }); } } // linkArquivoSelecionado.setOnAction(ev->{ // System.out.println("Click on link: " + linkArquivoSelecionado.getText()); //// AbrirArquivo(linkArquivoSelecionado.getText(),1); // }); lviewAnexos.setOnMouseClicked(ev -> { if (1 == ev.getClickCount()) { Choice choiceAnexo = lviewAnexos.getSelectionModel().getSelectedItem(); System.out.println(); } if (2 == ev.getClickCount()) { Choice choiceAnexo = lviewAnexos.getSelectionModel().getSelectedItem(); System.out.println();// AbrirAnexo(choiceAnexo.id, 1); } }); lviewAnexos.setOnMousePressed(new EventHandler<MouseEvent>() { public void handle(MouseEvent ev) { boolean bPrimary = false; boolean bMiddle = false; boolean bSecondary = false; bPrimary = ev.isPrimaryButtonDown(); bMiddle = ev.isMiddleButtonDown(); bSecondary = ev.isSecondaryButtonDown(); final ContextMenu contextMenu = new ContextMenu(); MenuItem menuItemAbrir = new MenuItem("Abrir arquivo"); MenuItem menuItemSalvar = new MenuItem("Salvar arquivo"); contextMenu.getItems().addAll(menuItemAbrir, menuItemSalvar); contextMenu.hide(); menuItemAbrir.setOnAction(new EventHandler<ActionEvent>() { public void handle(ActionEvent e) { Choice choiceAnexo = lviewAnexos.getSelectionModel().getSelectedItem(); System.out.println(); AbrirAnexo(choiceAnexo.id, 1); } }); menuItemSalvar.setOnAction(new EventHandler<ActionEvent>() { public void handle(ActionEvent e) { // System.out.println("Salvar arquivo clicked"); Choice choiceAnexo = lviewAnexos.getSelectionModel().getSelectedItem(); System.out.println(); AbrirAnexo(choiceAnexo.id, 2); } }); if (ev.isSecondaryButtonDown()) { if (1 == ev.getClickCount()) { if (ev.getTarget() instanceof Text) { contextMenu.show(txtFAnexos, ev.getScreenX(), ev.getScreenY()); } } } } }); txtFAnexos.setOnMouseClicked(ev -> { if (1 == ev.getClickCount()) { if (ev.getTarget() instanceof Text) { Text clicked = (Text) ev.getTarget(); clicked.setFill(Color.RED); clicked.setFont(Font.font("Arial", FontPosture.ITALIC, 12)); clicked.setUnderline(true); System.out.println(clicked.getText()); //AbrirArquivo(clicked.getText(),1); //txtFAnexado.getChildren().remove(ev.getTarget()); } } if (2 == ev.getClickCount()) { if (ev.getTarget() instanceof Text) { Text clicked = (Text) ev.getTarget(); System.out.println(clicked.getText()); AbrirArquivo(clicked.getText(), 1); //txtFAnexado.getChildren().remove(ev.getTarget()); } } }); txtFAnexos.setOnMousePressed(new EventHandler<MouseEvent>() { public void handle(MouseEvent ev) { boolean bPrimary = false; boolean bMiddle = false; boolean bSecondary = false; bPrimary = ev.isPrimaryButtonDown(); bMiddle = ev.isMiddleButtonDown(); bSecondary = ev.isSecondaryButtonDown(); final ContextMenu contextMenu = new ContextMenu(); MenuItem menuItemAbrir = new MenuItem("Abrir arquivo"); MenuItem menuItemSalvar = new MenuItem("Salvar arquivo"); contextMenu.getItems().addAll(menuItemAbrir, menuItemSalvar); contextMenu.hide(); menuItemAbrir.setOnAction(new EventHandler<ActionEvent>() { public void handle(ActionEvent e) { // int nlIdCoinAnexo = 0; // nlIdCoinAnexo = nlIdCoin.getIdCoin(); Text clicked = (Text) ev.getTarget(); // System.out.println("Abrir arquivo clicked"); // System.out.println("IdCoin = " + nlIdCoinAnexo + " Nome arquivo clicked = " + clicked.getText()); AbrirArquivo(clicked.getText(), 1); } }); menuItemSalvar.setOnAction(new EventHandler<ActionEvent>() { public void handle(ActionEvent e) { // System.out.println("Salvar arquivo clicked"); Text clicked = (Text) ev.getTarget(); // System.out.println("Abrir arquivo clicked"); // System.out.println("IdCoin = " + nlIdCoinAnexo + " Nome arquivo clicked = " + clicked.getText()); AbrirArquivo(clicked.getText(), 2); } }); if (ev.isSecondaryButtonDown()) { if (1 == ev.getClickCount()) { if (ev.getTarget() instanceof Text) { contextMenu.show(txtFAnexos, ev.getScreenX(), ev.getScreenY()); } } } } }); } private void AbrirArquivo(String strArquivo, int nlMenuItem) { int nlIdAnexo = 0; File outfile = null; String strFileName = ""; String strUserHome = System.getProperty("user.home") + "//Downloads//"; String strDelimiters = "="; String[] strParts = strArquivo.split(strDelimiters); for (int i = 0; i < strParts.length; i++) { if (0 == i) { nlIdAnexo = Integer.parseInt(strParts[i].trim()); } } consulta = new MainWindowQueries(); List<TbAnexo> listaAnexos = new ArrayList<TbAnexo>(); //Extrair o Id para realizar o download do arquivo listaAnexos = consulta.downloadAnexo(nlIdAnexo); for (TbAnexo l : listaAnexos) { strFileName = l.getAnexoNome(); outfile = new File(strUserHome + l.getAnexoNome()); try { writeArquivo(outfile, l.getAnexoBlob()); } catch (IOException e) { e.printStackTrace(); } } switch (nlMenuItem) { case 1: openArquivo(outfile); break; case 2: Alert alert = new Alert(Alert.AlertType.INFORMATION); alert.setTitle("Salvar arquivo"); alert.setHeaderText("O arquivo " + strFileName + " foi salvo com sucesso"); alert.setContentText("IMPORTANTE: O arquivo foi salvo na pasta Downloads"); alert.showAndWait(); break; default: break; } } private void AbrirAnexo(int nlIdAnexo, int nlMenuItem) { File outfile = null; String strFileName = ""; String strUserHome = System.getProperty("user.home") + "//Downloads//"; consulta = new MainWindowQueries(); List<TbAnexo> listaAnexos = new ArrayList<TbAnexo>(); //Extrair o Id para realizar o download do arquivo listaAnexos = consulta.downloadAnexo(nlIdAnexo); for (TbAnexo l : listaAnexos) { strFileName = l.getAnexoNome(); outfile = new File(strUserHome + l.getAnexoNome()); try { writeArquivo(outfile, l.getAnexoBlob()); } catch (IOException e) { e.printStackTrace(); } } switch (nlMenuItem) { case 1: openArquivo(outfile); break; case 2: Alert alert = new Alert(Alert.AlertType.INFORMATION); alert.setTitle("Salvar arquivo"); alert.setHeaderText("O arquivo " + strFileName + " foi salvo com sucesso"); alert.setContentText("IMPORTANTE: O arquivo foi salvo na pasta Downloads"); alert.showAndWait(); break; default: break; } } public void openArquivo(File file) { try { desktop.open(file); } catch (IOException ex) { Logger.getLogger(FXMLMainController.class.getName()).log(Level.SEVERE, null, ex); Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Erro"); alert.setHeaderText(null); alert.setContentText(ex.getMessage()); alert.showAndWait(); } } public void writeArquivo(File file, byte[] data) throws IOException { OutputStream fo = new FileOutputStream(file); // Write the data fo.write(data); // flush the file (down the toilet) fo.flush(); // Close the door to keep the smell in. fo.close(); } @FXML private void handleBtnAprovarCI(ActionEvent event) throws IOException { if (null == TbViewGeral2.getSelectionModel().getSelectedItem()) { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Erro"); alert.setHeaderText("CI no foi selecionado."); alert.setContentText("Favor selecionar uma CI da tabela"); alert.showAndWait(); } else { int nIdCI = 0; int nBotao = 0; int nTabela = 0; Alert alert = new Alert(AlertType.CONFIRMATION); alert.setTitle("Confirmar Aprovao"); alert.setHeaderText(null); alert.setContentText("Deseja realmente aprovar CI?"); Optional<ButtonType> result = alert.showAndWait(); if (result.get() == ButtonType.OK) { //nIdCI = TbViewGeral.getSelectionModel().getSelectedItem().getIntp_idCoin(); nBotao = this.ngBotao; //nTabela = this.ngTabela; nTabela = TbViewGeral2.getSelectionModel().getSelectedItem().getIntp_idTabelaFonte(); // Aprovamos CI //Tabela a ser utilizada para atualizar status das CIs (aprovadas, arquivadas, desarquivadas) // 0 ==> Sem tabela definida // 1 ==> TB_COMUNICACAO_INTERNA // 2 ==> TB_CI_DESTINATARIO switch (nTabela) { case 1: nIdCI = TbViewGeral2.getSelectionModel().getSelectedItem().getIntp_idCoin(); AprovarCI(nIdCI, 1); //TableViewRefresh(nBotao); break; case 2: nIdCI = TbViewGeral2.getSelectionModel().getSelectedItem().getIntp_idCoinDestinatario(); AprovarCI(nIdCI, 2); //TableViewRefresh(nBotao); break; default: break; } } else { // ... user chose CANCEL or closed the dialog } } } private void AprovarCI(int nlIdCI, int nlTabela) { boolean bUpdate = false; boolean bAprovado = true; //Valores dos botes //1-caixa de recebidas (solicitando aprovao) - btnCaixaEntradaSolicitandoAprovacao //2-caixa de recebidas - btnCaixaEntrada //3-caixa de recebidas (pendencias) - btnCaixaPendencias //4-caixa de recebidas (arquivadas) - btnCaixaArquivadas //5-Caixa de enviados (arquivadas) - btnCaixaEnviadosArquivados //6-Caixa de enviados - btnCaixaSaida; //7-Caixa de enviados (solicitando aprovao) - btnPendentesAprovacao int nlButtonSelected = 0; nlButtonSelected = ngBotao; MainWindowQueries consulta = new MainWindowQueries(); EntityManager em; EntityManagerFactory emf; TbComunicacaoInterna nTbComunicacaoInternaIdCoin = new TbComunicacaoInterna(nlIdCI); //Tabela a ser utilizada para atualizar status das CIs (aprovadas, arquivadas, desarquivadas) // 0 ==> Sem tabela definida // 1 ==> TB_COMUNICACAO_INTERNA // 2 ==> TB_CI_DESTINATARIO switch (nlTabela) { case 1: try { bUpdate = consulta.AprovarCIEnviada(nlIdCI); } catch (Exception e) { e.printStackTrace(); } try { consulta = new MainWindowQueries(); emf = Persistence.createEntityManagerFactory("CI_EletronicoPU"); em = emf.createEntityManager(); em.getTransaction().begin(); //Atualizamos registros na tabela TB_CI_DESTINATARIO //Iniciamos a criao da TableView List<TbCiDestinatario> listaCiDestinatario = new ArrayList<TbCiDestinatario>(); listaCiDestinatario = consulta.getlistaCiParaAprovar(nTbComunicacaoInternaIdCoin); for (TbCiDestinatario l : listaCiDestinatario) { l.setCoinRemitenteGestorAutorizado(bAprovado); em.merge(l); } em.getTransaction().commit(); em.close(); emf.close(); } catch (javax.persistence.PersistenceException e) { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Aprovar CI "); alert.setHeaderText("Case 1: Tabela TB_CI_DESTINATARIO"); alert.setContentText(e.getMessage()); alert.showAndWait(); } break; case 2: try { bUpdate = consulta.AprovarCIRecebida(nlIdCI); } catch (Exception e) { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Aprovar CI "); alert.setHeaderText("Case 2: Tabela TB_CI_DESTINATARIO"); alert.setContentText(e.getMessage()); alert.showAndWait(); } break; default: break; } if (bUpdate) { // System.out.println("IdUsuario = " + nIdUserUO); // System.out.println("Update deve acontecer"); Alert alert = new Alert(Alert.AlertType.INFORMATION); alert.setTitle("Informao"); alert.setHeaderText(null); alert.setContentText("CI foi aprovada com sucesso."); alert.showAndWait(); //Refresh da TableView switch (nlButtonSelected) { case 1: btnCaixaEntradaSolicitandoAprovacao.fire(); break; case 2: btnCaixaEntrada.fire(); break; case 3: btnCaixaPendencias.fire(); break; case 4: btnCaixaArquivadas.fire(); break; case 5: btnCaixaEnviadosArquivados.fire(); break; case 6: btnCaixaSaida.fire(); break; case 7: btnPendentesAprovacao.fire(); break; case 8: //handleBtnCaixaPendentesAprovacao() btnCiPorAprovar.fire(); break; default: break; } } else { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Erro"); alert.setHeaderText("No foi possvel aprovar CI"); alert.setContentText("Favor contatar o Administrador do sistema"); alert.showAndWait(); } } @FXML private void handleBtnDesaprovarCI(ActionEvent event) throws IOException { if (null == TbViewGeral2.getSelectionModel().getSelectedItem()) { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Erro"); alert.setHeaderText("CI no foi selecionado."); alert.setContentText("Favor selecionar uma CI da tabela"); alert.showAndWait(); } else { int nIdCI = 0; int nBotao = 0; int nTabela = 0; Alert alert = new Alert(AlertType.CONFIRMATION); alert.setTitle("Confirmar Desaprovao"); alert.setHeaderText(null); alert.setContentText("Deseja realmente Desaprovar CI?"); Optional<ButtonType> result = alert.showAndWait(); if (result.get() == ButtonType.OK) { //nIdCI = TbViewGeral.getSelectionModel().getSelectedItem().getIntp_idCoin(); nBotao = this.ngBotao; //nTabela = this.ngTabela; nTabela = TbViewGeral2.getSelectionModel().getSelectedItem().getIntp_idTabelaFonte(); // Aprovamos CI //Tabela a ser utilizada para atualizar status das CIs (aprovadas, arquivadas, desarquivadas) // 0 ==> Sem tabela definida // 1 ==> TB_COMUNICACAO_INTERNA // 2 ==> TB_CI_DESTINATARIO switch (nTabela) { case 1: nIdCI = TbViewGeral2.getSelectionModel().getSelectedItem().getIntp_idCoin(); DesaprovarCI(nIdCI, 1); //TableViewRefresh(nBotao); break; case 2: nIdCI = TbViewGeral2.getSelectionModel().getSelectedItem().getIntp_idCoinDestinatario(); DesaprovarCI(nIdCI, 2); //TableViewRefresh(nBotao); break; default: break; } } else { // ... user chose CANCEL or closed the dialog } } } private void DesaprovarCI(int nlIdCI, int nlTabela) { boolean bUpdate = false; boolean bDesaprovado = true; //Valores dos botes //1-caixa de recebidas (solicitando aprovao) - btnCaixaEntradaSolicitandoAprovacao //2-caixa de recebidas - btnCaixaEntrada //3-caixa de recebidas (pendencias) - btnCaixaPendencias //4-caixa de recebidas (arquivadas) - btnCaixaArquivadas //5-Caixa de enviados (arquivadas) - btnCaixaEnviadosArquivados //6-Caixa de enviados - btnCaixaSaida; //7-Caixa de enviados (solicitando aprovao) - btnPendentesAprovacao int nlButtonSelected = 0; nlButtonSelected = ngBotao; MainWindowQueries consulta = new MainWindowQueries(); EntityManager em; EntityManagerFactory emf; TbComunicacaoInterna nTbComunicacaoInternaIdCoin = new TbComunicacaoInterna(nlIdCI); //Tabela a ser utilizada para atualizar status das CIs (aprovadas, arquivadas, desarquivadas) // 0 ==> Sem tabela definida // 1 ==> TB_COMUNICACAO_INTERNA // 2 ==> TB_CI_DESTINATARIO switch (nlTabela) { case 1: try { TbComunicacaoInterna EntidadeTbCI = new TbComunicacaoInterna(); EntidadeTbCI = consulta.DesaprovarCIEnviada(nlIdCI); bUpdate = EnviarMsgCiDesaprovada(nlIdCI, 1, EntidadeTbCI, null); // if (bUpdate){ // EntidadeTbCI = consulta.DesaprovarCIEnviada(nlIdCI); // } } catch (Exception e) { e.printStackTrace(); } try { consulta = new MainWindowQueries(); emf = Persistence.createEntityManagerFactory("CI_EletronicoPU"); em = emf.createEntityManager(); em.getTransaction().begin(); //Atualizamos registros na tabela TB_CI_DESTINATARIO //Iniciamos a criao da TableView List<TbCiDestinatario> listaCiDestinatario = new ArrayList<TbCiDestinatario>(); listaCiDestinatario = consulta.getlistaCiParaAprovar(nTbComunicacaoInternaIdCoin); for (TbCiDestinatario l : listaCiDestinatario) { l.setCoinCancelado(bDesaprovado); em.merge(l); } em.getTransaction().commit(); em.close(); emf.close(); } catch (javax.persistence.PersistenceException e) { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Desaprovar CI "); alert.setHeaderText("Case 1: Tabela TB_CI_DESTINATARIO"); alert.setContentText(e.getMessage()); alert.showAndWait(); } break; case 2: try { TbCiDestinatario EntidadeTbCI = new TbCiDestinatario(); EntidadeTbCI = consulta.DesaprovarCIRecebida(nlIdCI); bUpdate = EnviarMsgCiDesaprovada(nlIdCI, 2, null, EntidadeTbCI); // if (bUpdate){ // EntidadeTbCI = consulta.DesaprovarCIRecebida(nlIdCI); // } } catch (Exception e) { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Desaprovar CI "); alert.setHeaderText("Case 2: Tabela TB_CI_DESTINATARIO"); alert.setContentText(e.getMessage()); alert.showAndWait(); } break; default: break; } if (bUpdate) { // System.out.println("IdUsuario = " + nIdUserUO); // System.out.println("Update deve acontecer"); Alert alert = new Alert(Alert.AlertType.INFORMATION); alert.setTitle("Informao"); alert.setHeaderText("CI foi Desaprovada com sucesso."); alert.setContentText("Foi enviada uma menssagem para o emisor da CI desaprovada"); alert.showAndWait(); //Refresh da TableView switch (nlButtonSelected) { case 1: btnCaixaEntradaSolicitandoAprovacao.fire(); break; case 2: btnCaixaEntrada.fire(); break; case 3: btnCaixaPendencias.fire(); break; case 4: btnCaixaArquivadas.fire(); break; case 5: btnCaixaEnviadosArquivados.fire(); break; case 6: btnCaixaSaida.fire(); break; case 7: btnPendentesAprovacao.fire(); break; case 8: //handleBtnCaixaPendentesAprovacao() btnCiPorAprovar.fire(); break; default: break; } } else { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Erro"); alert.setHeaderText("No foi possvel desaprovar CI"); alert.setContentText("Favor contatar o Administrador do sistema"); alert.showAndWait(); } } private void EnviarMsgCiLida( int nlIdCI/*, int nlTabela, TbComunicacaoInterna EntidadeTbCI, TbCiDestinatario EntidadeTbCIDest*/) { // Iniciamos a Persistencia de dados EntityManager em; EntityManagerFactory emf; emf = Persistence.createEntityManagerFactory("CI_EletronicoPU"); em = emf.createEntityManager(); em.getTransaction().begin(); MainWindowQueries consulta = new MainWindowQueries(); //--------------------------------------------------- //Pegamos os dados da entidade fonte TbCiDestinatario entidadeTbCiDestinatario = new TbCiDestinatario(); try { entidadeTbCiDestinatario = consulta.getEntidadeTbCiDestinatario(nlIdCI); } catch (Exception ex) { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("CI - Lida "); alert.setHeaderText("Tabela TB_CI_DESTINATARIO"); alert.setContentText(ex.getMessage()); alert.showAndWait(); } //------------------------------------------------------------- //Instanciar novo objeto a ser salvo TbTipoComunicacoInterna TipoCI = new TbTipoComunicacoInterna(8); //8 ==> CI Lida TbComunicacaoInterna newTbCI = new TbComunicacaoInterna(); TbCiDestinatario newTbCIDestinatario = new TbCiDestinatario(); TbUnidadeOrganizacionalGestor UOGestorDestinatario = new TbUnidadeOrganizacionalGestor(); //--------------------------------------------------------- TbUnidadeOrganizacional nIdUOTemp; nIdUOTemp = new TbUnidadeOrganizacional(this.nIdUnidadeOrganizacional); MainWindowQueries consultaUOGestor = new MainWindowQueries(); UOGestorDestinatario = consultaUOGestor.getIdUOGestor(nIdUOTemp); int nIdCoin = 0; String strlAssunto = ""; //strlAssunto = TbViewGeral.getSelectionModel().getSelectedItem().getStrp_Assunto(); nIdCoin = TbViewGeral.getSelectionModel().getSelectedItem().getIntp_idCoin(); //Valores para preencher o campo Para: int nIdUORemitente = 0; String strUONomeRemitente = ""; nIdUORemitente = TbViewGeral.getSelectionModel().getSelectedItem().getIntp_idUORemitente(); strUONomeRemitente = TbViewGeral.getSelectionModel().getSelectedItem().getStrp_DescricaoUORemitente(); String strSequencialCI = this.lblNumeroSequencialCI.getText(); String strlUODescricao = ""; String strlCITitulo = ""; String strlConteudo = ""; String strPara = ""; //Seteamos Datas String strToday = ""; String strTodayCI = ""; DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // utilizado para banco de dados DateFormat dfCI = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss"); // utilizado para mostrar na aplicao java.util.Date data_criacao; data_criacao = new Date(); strToday = df.format(data_criacao); strTodayCI = dfCI.format(data_criacao); Calendar data = Calendar.getInstance(); int nYear = data.get(Calendar.YEAR); // //strlAssunto = strlAssunto.concat(" - CI - " + strSequencialCI + " foi lida pelo destinatrio. Ref Id:" + Integer.toString(nIdCoin)); strlAssunto = "Menssagem de confirmao: " + strSequencialCI + " foi lida pelo destinatrio. Ref Id: " + Integer.toString(nIdCoin); consulta = new MainWindowQueries(); strlConteudo = consulta.getMessagemCiLida("NOTIFICACAO_CI_LIDA"); strlCITitulo = "<br /><p align=\"center\"><b>" + strSequencialCI + "</b></p>"; //strlConteudo = "<html dir=\"ltr\"><head></head><body contenteditable=\"true\"><p><span style=\"font-family: 'Segoe UI';\">Prezado(a), </span></p><p><font face=\"Segoe UI\">Informamos que a CI foi cancelada pela UO Gestora e por esse motivo no ser possvel o seu envio para seu(s) destinatrio(s).</font></p><p><font face=\"Segoe UI\">Atenciosamente, </font></p><p><font face=\"Segoe UI\">Sistema CI-eletrnica.</font></p></body></html>"; strPara = strPara.concat(strlCITitulo); strPara = strPara.concat("<br /><hr><br /><b><FONT COLOR=\"0000FF\">CI Lida</FONT></b>"); strPara = strPara.concat( "<br /><hr><br /><FONT COLOR=\"000000\">De: <b>" + this.lblNomeUO.getText() + "</b></FONT><br />"); strPara = strPara.concat("<FONT COLOR=\"000000\">Usurio remitente: " + this.lblNomeUsuario.getText() + "</FONT><br /><br />"); strPara = strPara.concat("<FONT COLOR=\"000000\">Assunto: " + strlAssunto + "</FONT><br /><br />"); strPara = strPara.concat("<FONT COLOR=\"000000\">Data criao: " + strTodayCI + "</FONT><br /><br />"); strPara = strPara.concat(strlConteudo); try { //Seteamos nmero sequencial da CI de acordo ao UO Remitente TypedQuery<Integer> query = em.createQuery( "SELECT max(c.coinNumero) FROM TbComunicacaoInterna c WHERE c.idUnidadeOrganizacional = :idUnidadeOrganizacional AND FUNCTION('YEAR',c.coinDataCriacao) = :Ano", Integer.class).setParameter("idUnidadeOrganizacional", nIdUnidadeOrganizacional) .setParameter("Ano", nYear); Integer Resultado = query.getSingleResult(); //----------------------------------------------------------- // //Seteamos entity TB_COMUNICACAO_INTERNA newTbCI.setCoinAssunto(strlAssunto); //newTbCI.setCoinConteudo(htmlEditor.getHtmlText()); newTbCI.setCoinConteudo(strPara); newTbCI.setIdUsuario(this.nIdUsuarioLogado); newTbCI.setUsuNomeCompleto(this.lblNomeUsuario.getText()); newTbCI.setIdUnidadeOrganizacional(this.nIdUnidadeOrganizacional); newTbCI.setUnorDescricao(this.lblNomeUO.getText()); newTbCI.setIdUoGestor(this.nIdUOGestor); newTbCI.setCoinAutorizado(true); newTbCI.setIdTipoCoin(TipoCI); newTbCI.setCoinApensamento(""); newTbCI.setCoinNumero(Resultado.intValue()); newTbCI.setCoinUoArquivado(false); newTbCI.setCoinUoGestorArquivado(false); newTbCI.setCoinDataCriacao(data_criacao); newTbCI.setCoinDataAutorizado(data_criacao); newTbCI.setCoinReadOnly(false); newTbCI.setCoinTemAnexos(false); //newTbCI.setCoinEnviadoPara(""); //newTbCI.setCoinEnviadoComCopia(""); newTbCI.setIdCoinGenesis(entidadeTbCiDestinatario.getIdCoinGenesis()); newTbCI.setIdUnorGenesis(entidadeTbCiDestinatario.getIdUnorGenesis()); newTbCI.setCoinNumeroGenesis(entidadeTbCiDestinatario.getCoinNumeroGenesis()); newTbCI.setCoinHistoricoAnexos(""); newTbCI.setUnorDescricaoGenesis(entidadeTbCiDestinatario.getUnorDescricaoGenesis()); newTbCI.setCoinAssinatura(entidadeTbCiDestinatario.getCoinAssinatura()); em.persist(newTbCI); em.flush(); long IdCoin = newTbCI.getIdCoin(); TbComunicacaoInterna nCoinId = new TbComunicacaoInterna((int) IdCoin); TbTipoEnvio nIdTipoEnvio = new TbTipoEnvio(1); //1 - Tipo = ENVIADO "PARA" //Procuramos saber qual UO gestora da UO destinataria nIdUOTemp = new TbUnidadeOrganizacional(nIdUORemitente); UOGestorDestinatario = consultaUOGestor.getIdUOGestor(nIdUOTemp); //----------------------------------------------------------- newTbCIDestinatario.setIdCoin(nCoinId); newTbCIDestinatario.setIdUsuarioRemitente(this.nIdUsuarioLogado); newTbCIDestinatario.setUsuNomeCompletoRemitente(this.lblNomeUsuario.getText()); newTbCIDestinatario.setIdUoRemitente(this.nIdUnidadeOrganizacional); newTbCIDestinatario.setInorDescricaoRemitente(this.lblNomeUO.getText()); newTbCIDestinatario.setIdUoDestinatario(nIdUORemitente); newTbCIDestinatario.setUnorDescricaoDestinatario(strUONomeRemitente); newTbCIDestinatario.setIdUoGestorDestinatario(UOGestorDestinatario.getIdUoGestor()); newTbCIDestinatario.setCoinDestinatarioGestorAutorizado(true); newTbCIDestinatario.setCoinDestinatarioUoArquivado(false); newTbCIDestinatario.setCoinDestinatarioUoGestorArquivado(false); newTbCIDestinatario.setCoinDestinatarioAssunto(strlAssunto); newTbCIDestinatario.setCoinDestinatarioConteudo(strPara); newTbCIDestinatario.setCoinDestinatarioPendente(false); newTbCIDestinatario.setCoinDestinatarioLido(false); newTbCIDestinatario.setCoinDestinatarioDataCriacao(data_criacao); newTbCIDestinatario.setIdTipoEnvio(nIdTipoEnvio); newTbCIDestinatario.setCoinDestinatarioNumero(Resultado.intValue()); newTbCIDestinatario.setCoinDestinatarioReadOnly(false); newTbCIDestinatario.setCoinDestinatarioTemAnexos(false); newTbCIDestinatario.setCoinRemitenteGestorAutorizado(true); //Variaveis Genesis newTbCIDestinatario.setIdCoinGenesis(entidadeTbCiDestinatario.getIdCoinGenesis()); newTbCIDestinatario.setIdUnorGenesis(entidadeTbCiDestinatario.getIdUnorGenesis()); newTbCIDestinatario.setCoinNumeroGenesis(entidadeTbCiDestinatario.getCoinNumeroGenesis()); newTbCIDestinatario.setCoinHistoricoAnexos(""); newTbCIDestinatario.setUnorDescricaoGenesis(entidadeTbCiDestinatario.getUnorDescricaoGenesis()); //---------------------------------- newTbCIDestinatario.setIdTipoCoin(TipoCI); newTbCIDestinatario.setCoinAssinatura(entidadeTbCiDestinatario.getCoinAssinatura()); em.persist(newTbCIDestinatario); } catch (javax.persistence.PersistenceException e) { //e.printStackTrace(); // Show the error message. Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Erro"); alert.setHeaderText("Falha no envio da CI - Lida"); alert.setContentText(e.getMessage()); alert.showAndWait(); em.close(); emf.close(); } //----------FIM da rotina para salvar a CI na tabela TB_CI_DESTINATARIO em.getTransaction().commit(); em.close(); emf.close(); } private boolean EnviarMsgCiDesaprovada(int nlIdCI, int nlTabela, TbComunicacaoInterna EntidadeTbCI, TbCiDestinatario EntidadeTbCIDest) { // Iniciamos a Persistencia de dados EntityManager em; EntityManagerFactory emf; emf = Persistence.createEntityManagerFactory("CI_EletronicoPU"); em = emf.createEntityManager(); em.getTransaction().begin(); //---------------------------------------------------------------- boolean bCondicao = false; String strSequencialCI = this.lblNumeroSequencialCI.getText(); String strlUODescricao = ""; String strlCITitulo = ""; String strlConteudo = ""; String strPara = ""; //Seteamos Datas String strToday = ""; String strTodayCI = ""; //Construimos a frase do campo Assunto: //int nIdCoin = 0; String strlAssunto = ""; //nIdCoin = TbViewGeral.getSelectionModel().getSelectedItem().getIntp_idCoin(); //---------------------------------------- DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // utilizado para banco de dados DateFormat dfCI = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss"); // utilizado para mostrar na aplicao java.util.Date data_criacao; data_criacao = new Date(); strToday = df.format(data_criacao); strTodayCI = dfCI.format(data_criacao); // MainWindowQueries consulta = new MainWindowQueries(); strlConteudo = consulta.getMessagemCiDesaprovada("NOTIFICACAO_CI_DESAPROVADA"); //strlAssunto = "CI: " + strSequencialCI + " foi desaprovada pelo Gestor da UO. Ref Id: " + Integer.toString(nIdCoin); strlAssunto = "CI: " + strSequencialCI + " foi desaprovada pelo Gestor da UO."; strlCITitulo = "<br /><p align=\"center\"><b>" + strSequencialCI + "</b></p>"; //strlConteudo = "<html dir=\"ltr\"><head></head><body contenteditable=\"true\"><p><span style=\"font-family: 'Segoe UI';\">Prezado(a), </span></p><p><font face=\"Segoe UI\">Informamos que a CI foi cancelada pela UO Gestora e por esse motivo no ser possvel o seu envio para seu(s) destinatrio(s).</font></p><p><font face=\"Segoe UI\">Atenciosamente, </font></p><p><font face=\"Segoe UI\">Sistema CI-eletrnica.</font></p></body></html>"; strPara = strPara.concat(strlCITitulo); strPara = strPara.concat("<br /><hr><br /><b><FONT COLOR=\"0000FF\">CI Desaprovada</FONT></b>"); strPara = strPara.concat( "<br /><hr><br /><FONT COLOR=\"000000\">De: <b>" + this.lblNomeUO.getText() + "</b></FONT><br />"); strPara = strPara.concat("<FONT COLOR=\"000000\">Usurio remitente: " + this.lblNomeUsuario.getText() + "</FONT><br /><br />"); strPara = strPara.concat("<FONT COLOR=\"000000\">Assunto: " + strlAssunto + "</FONT><br /><br />"); strPara = strPara.concat("<FONT COLOR=\"000000\">Data criao: " + strTodayCI + "</FONT><br /><br />"); strPara = strPara.concat(strlConteudo); switch (nlTabela) { case 1: //CI Desaprovado - Caixa Enviados //Passo 1 - Guardar na tabela TB_COMUICACAO_INTERNA TbComunicacaoInterna newTbCI = new TbComunicacaoInterna(); TbTipoComunicacoInterna nlTipoCI = new TbTipoComunicacoInterna(6); //6 ==> CI Desaprovada //Enviar messagem informando que CI no foi autorizado //Seteamos entity TB_COMUNICACAO_INTERNA try { newTbCI.setCoinAssunto("CI No foi autorizada pela Unidade Gestora"); newTbCI.setCoinConteudo(strPara); newTbCI.setIdUsuario(this.nIdUsuarioLogado); newTbCI.setUsuNomeCompleto(this.lblNomeUsuario.getText()); newTbCI.setIdUnidadeOrganizacional(this.nIdUnidadeOrganizacional); newTbCI.setUnorDescricao(this.lblNomeUO.getText()); newTbCI.setIdUoGestor(this.nIdUOGestor); newTbCI.setCoinAutorizado(true); newTbCI.setIdTipoCoin(nlTipoCI); newTbCI.setCoinApensamento(""); newTbCI.setCoinNumero(EntidadeTbCI.getCoinNumero()); //Nmero Sequencial no incrementado. newTbCI.setCoinUoArquivado(false); newTbCI.setCoinUoGestorArquivado(false); newTbCI.setCoinDataCriacao(data_criacao); newTbCI.setCoinReadOnly(false); newTbCI.setCoinTemAnexos(false); newTbCI.setIdCoinGenesis(EntidadeTbCI.getIdCoinGenesis()); newTbCI.setIdUnorGenesis(EntidadeTbCI.getIdUnorGenesis()); newTbCI.setCoinNumeroGenesis(EntidadeTbCI.getCoinNumeroGenesis()); newTbCI.setCoinHistoricoAnexos(EntidadeTbCI.getCoinHistoricoAnexos()); newTbCI.setUnorDescricaoGenesis(EntidadeTbCI.getUnorDescricaoGenesis()); newTbCI.setCoinAssinatura(EntidadeTbCI.getCoinAssinatura()); // Assinatura igual CI desaprovada em.persist(newTbCI); em.flush(); //Passo 2 - Guardamos na Tabela TB_CI_DESTINATARIO long IdCoin = newTbCI.getIdCoin(); TbCiDestinatario newTbCIDestinatario = new TbCiDestinatario(); TbComunicacaoInterna nCoinId = new TbComunicacaoInterna((int) IdCoin); TbTipoEnvio nIdTipoEnvio = new TbTipoEnvio(1); //1 - Tipo = ENVIADO "PARA" newTbCIDestinatario.setIdCoin(nCoinId); newTbCIDestinatario.setIdUsuarioRemitente(this.nIdUsuarioLogado); newTbCIDestinatario.setUsuNomeCompletoRemitente(this.lblNomeUsuario.getText()); newTbCIDestinatario.setIdUoRemitente(this.nIdUnidadeOrganizacional); newTbCIDestinatario.setInorDescricaoRemitente(this.lblNomeUO.getText()); newTbCIDestinatario.setIdUoDestinatario(EntidadeTbCI.getIdUnidadeOrganizacional()); newTbCIDestinatario.setUnorDescricaoDestinatario(EntidadeTbCI.getUnorDescricao()); newTbCIDestinatario.setIdUoGestorDestinatario(this.nIdUnidadeOrganizacional); newTbCIDestinatario.setCoinDestinatarioGestorAutorizado(true); newTbCIDestinatario.setCoinDestinatarioUoArquivado(false); newTbCIDestinatario.setCoinDestinatarioUoGestorArquivado(false); newTbCIDestinatario.setCoinDestinatarioAssunto("CI No foi autorizada pela Unidade Gestora"); newTbCIDestinatario.setCoinDestinatarioConteudo(strPara); newTbCIDestinatario.setCoinDestinatarioPendente(false); newTbCIDestinatario.setCoinDestinatarioLido(false); newTbCIDestinatario.setCoinDestinatarioDataCriacao(data_criacao); newTbCIDestinatario.setIdTipoEnvio(nIdTipoEnvio); // 1 ==> CI normal newTbCIDestinatario.setCoinDestinatarioNumero(EntidadeTbCI.getCoinNumero()); //Nmero Sequencial no incrementado. newTbCIDestinatario.setCoinDestinatarioReadOnly(false); newTbCIDestinatario.setCoinDestinatarioTemAnexos(false); newTbCIDestinatario.setCoinRemitenteGestorAutorizado(true); //Variaveis Genesis // newTbCIDestinatario.setIdCoinGenesis(nlIdCoinGenesis); // newTbCIDestinatario.setIdUnorGenesis(nlIdUnorGenesis); // newTbCIDestinatario.setCoinNumeroGenesis(nlCoinNumeroGenesis); // newTbCIDestinatario.setCoinHistoricoAnexos(strCoinHistoricoAnexos); // newTbCIDestinatario.setUnorDescricaoGenesis(strUnorDescricaoGenesis); newTbCIDestinatario.setIdCoinGenesis(EntidadeTbCI.getIdCoinGenesis()); newTbCIDestinatario.setIdUnorGenesis(EntidadeTbCI.getIdUnorGenesis()); newTbCIDestinatario.setCoinNumeroGenesis(EntidadeTbCI.getCoinNumeroGenesis()); newTbCIDestinatario.setCoinHistoricoAnexos(EntidadeTbCI.getCoinHistoricoAnexos()); newTbCIDestinatario.setUnorDescricaoGenesis(EntidadeTbCI.getUnorDescricaoGenesis()); //---------------------------------- newTbCIDestinatario.setIdTipoCoin(nlTipoCI); ////6 ==> CI Desaprovada newTbCIDestinatario.setCoinAssinatura(EntidadeTbCI.getCoinAssinatura()); // Assinatura igual CI desaprovada em.persist(newTbCIDestinatario); em.getTransaction().commit(); em.close(); emf.close(); bCondicao = true; } catch (javax.persistence.PersistenceException e) { //e.printStackTrace(); em.close(); emf.close(); bCondicao = false; } break; case 2: //CI Desaprovado - Caixa Recebidos //Passo 1 - Guardar na tabela TB_COMUICACAO_INTERNA TbComunicacaoInterna newTbCI2 = new TbComunicacaoInterna(); TbTipoComunicacoInterna nlTipoCI2 = new TbTipoComunicacoInterna(6); //6 ==> CI Desaprovada //Enviar messagem informando que CI no foi autorizado //Seteamos entity TB_COMUNICACAO_INTERNA try { newTbCI2.setCoinAssunto("CI No foi autorizada pela Unidade Gestora"); newTbCI2.setCoinConteudo(strPara); newTbCI2.setIdUsuario(this.nIdUsuarioLogado); newTbCI2.setUsuNomeCompleto(this.lblNomeUsuario.getText()); newTbCI2.setIdUnidadeOrganizacional(this.nIdUnidadeOrganizacional); newTbCI2.setUnorDescricao(this.lblNomeUO.getText()); newTbCI2.setIdUoGestor(this.nIdUOGestor); newTbCI2.setCoinAutorizado(true); newTbCI2.setIdTipoCoin(nlTipoCI2); newTbCI2.setCoinApensamento(""); newTbCI2.setCoinNumero(EntidadeTbCIDest.getCoinDestinatarioNumero()); //Nmero Sequencial no incrementado. newTbCI2.setCoinUoArquivado(false); newTbCI2.setCoinUoGestorArquivado(false); newTbCI2.setCoinDataCriacao(data_criacao); newTbCI2.setCoinReadOnly(false); newTbCI2.setCoinTemAnexos(false); newTbCI2.setIdCoinGenesis(EntidadeTbCIDest.getIdCoinGenesis()); newTbCI2.setIdUnorGenesis(EntidadeTbCIDest.getIdUnorGenesis()); newTbCI2.setCoinNumeroGenesis(EntidadeTbCIDest.getCoinNumeroGenesis()); newTbCI2.setCoinHistoricoAnexos(EntidadeTbCIDest.getCoinHistoricoAnexos()); newTbCI2.setUnorDescricaoGenesis(EntidadeTbCIDest.getUnorDescricaoGenesis()); newTbCI2.setCoinAssinatura(EntidadeTbCIDest.getCoinAssinatura()); // Assinatura igual CI desaprovada em.persist(newTbCI2); em.flush(); //Passo 2 - Guardamos na Tabela TB_CI_DESTINATARIO long IdCoin2 = newTbCI2.getIdCoin(); TbCiDestinatario newTbCIDestinatario2 = new TbCiDestinatario(); TbComunicacaoInterna nCoinId2 = new TbComunicacaoInterna((int) IdCoin2); TbTipoEnvio nIdTipoEnvio2 = new TbTipoEnvio(1); //1 - Tipo = ENVIADO "PARA" newTbCIDestinatario2.setIdCoin(nCoinId2); newTbCIDestinatario2.setIdUsuarioRemitente(this.nIdUsuarioLogado); newTbCIDestinatario2.setUsuNomeCompletoRemitente(this.lblNomeUsuario.getText()); newTbCIDestinatario2.setIdUoRemitente(this.nIdUnidadeOrganizacional); newTbCIDestinatario2.setInorDescricaoRemitente(this.lblNomeUO.getText()); newTbCIDestinatario2.setIdUoDestinatario(EntidadeTbCIDest.getIdUoRemitente()); newTbCIDestinatario2.setUnorDescricaoDestinatario(EntidadeTbCIDest.getInorDescricaoRemitente()); newTbCIDestinatario2.setIdUoGestorDestinatario(EntidadeTbCIDest.getIdCoin().getIdUoGestor()); newTbCIDestinatario2.setCoinDestinatarioGestorAutorizado(true); newTbCIDestinatario2.setCoinDestinatarioUoArquivado(false); newTbCIDestinatario2.setCoinDestinatarioUoGestorArquivado(false); newTbCIDestinatario2.setCoinDestinatarioAssunto("CI No foi autorizada pela Unidade Gestora"); newTbCIDestinatario2.setCoinDestinatarioConteudo(strPara); newTbCIDestinatario2.setCoinDestinatarioPendente(false); newTbCIDestinatario2.setCoinDestinatarioLido(false); newTbCIDestinatario2.setCoinDestinatarioDataCriacao(data_criacao); newTbCIDestinatario2.setIdTipoEnvio(nIdTipoEnvio2); // 1 ==> Enviado Para newTbCIDestinatario2.setCoinDestinatarioNumero(EntidadeTbCIDest.getCoinDestinatarioNumero()); //Nmero Sequencial no incrementado. newTbCIDestinatario2.setCoinDestinatarioReadOnly(false); newTbCIDestinatario2.setCoinDestinatarioTemAnexos(false); newTbCIDestinatario2.setCoinRemitenteGestorAutorizado(true); newTbCIDestinatario2.setIdCoinGenesis(EntidadeTbCIDest.getIdCoinGenesis()); newTbCIDestinatario2.setIdUnorGenesis(EntidadeTbCIDest.getIdUnorGenesis()); newTbCIDestinatario2.setCoinNumeroGenesis(EntidadeTbCIDest.getCoinNumeroGenesis()); newTbCIDestinatario2.setCoinHistoricoAnexos(EntidadeTbCIDest.getCoinHistoricoAnexos()); newTbCIDestinatario2.setUnorDescricaoGenesis(EntidadeTbCIDest.getUnorDescricaoGenesis()); //---------------------------------- newTbCIDestinatario2.setIdTipoCoin(nlTipoCI2); ////6 ==> CI Desaprovada newTbCIDestinatario2.setCoinAssinatura(EntidadeTbCIDest.getCoinAssinatura()); // Assinatura igual CI desaprovada em.persist(newTbCIDestinatario2); //Passo 3 enviamos Com cpia para o gestor //Verificamos se o gestor da UO remitente igual ao remitente //para evitar enviar 2 vezes if ((EntidadeTbCIDest.getIdUoRemitente()) != (EntidadeTbCIDest.getIdCoin().getIdUoGestor())) { //Procuramos descrio da UO gestora int nIdUOGestora = 0; TbComunicacaoInterna nIdCoin = new TbComunicacaoInterna(0); nIdCoin = EntidadeTbCIDest.getIdCoin(); nIdUOGestora = EntidadeTbCIDest.getIdCoin().getIdUoGestor(); TbUnidadeOrganizacional newTbUnidadeOrganizacional = new TbUnidadeOrganizacional(); MainWindowQueries consulta2 = new MainWindowQueries(); newTbUnidadeOrganizacional = consulta2.getUODescricao(nIdUOGestora); strlUODescricao = newTbUnidadeOrganizacional.getUnorNome(); TbCiDestinatario newTbCIDestinatario3 = new TbCiDestinatario(); TbTipoEnvio nIdTipoEnvio3 = new TbTipoEnvio(2); //2 - Tipo = ENVIADO "COM COPIA" try { newTbCIDestinatario3.setIdCoin(nCoinId2); newTbCIDestinatario3.setIdUsuarioRemitente(this.nIdUsuarioLogado); newTbCIDestinatario3.setUsuNomeCompletoRemitente(this.lblNomeUsuario.getText()); newTbCIDestinatario3.setIdUoRemitente(this.nIdUnidadeOrganizacional); newTbCIDestinatario3.setInorDescricaoRemitente(this.lblNomeUO.getText()); newTbCIDestinatario3.setIdUoDestinatario(EntidadeTbCIDest.getIdCoin().getIdUoGestor()); newTbCIDestinatario3.setUnorDescricaoDestinatario(strlUODescricao); newTbCIDestinatario3 .setIdUoGestorDestinatario(EntidadeTbCIDest.getIdCoin().getIdUoGestor()); newTbCIDestinatario3.setCoinDestinatarioGestorAutorizado(true); newTbCIDestinatario3.setCoinDestinatarioUoArquivado(false); newTbCIDestinatario3.setCoinDestinatarioUoGestorArquivado(false); newTbCIDestinatario3 .setCoinDestinatarioAssunto("CI No foi autorizada pela Unidade Gestora"); newTbCIDestinatario3.setCoinDestinatarioConteudo(strPara); newTbCIDestinatario3.setCoinDestinatarioPendente(false); newTbCIDestinatario3.setCoinDestinatarioLido(false); newTbCIDestinatario3.setCoinDestinatarioDataCriacao(data_criacao); newTbCIDestinatario3.setIdTipoEnvio(nIdTipoEnvio3); // 2 ==> Enviado "Com cpia" newTbCIDestinatario3 .setCoinDestinatarioNumero(EntidadeTbCIDest.getCoinDestinatarioNumero()); //Nmero Sequencial no incrementado. newTbCIDestinatario3.setCoinDestinatarioReadOnly(false); newTbCIDestinatario3.setCoinDestinatarioTemAnexos(false); newTbCIDestinatario3.setCoinRemitenteGestorAutorizado(true); newTbCIDestinatario3.setIdCoinGenesis(EntidadeTbCIDest.getIdCoinGenesis()); newTbCIDestinatario3.setIdUnorGenesis(EntidadeTbCIDest.getIdUnorGenesis()); newTbCIDestinatario3.setCoinNumeroGenesis(EntidadeTbCIDest.getCoinNumeroGenesis()); newTbCIDestinatario3.setCoinHistoricoAnexos(EntidadeTbCIDest.getCoinHistoricoAnexos()); newTbCIDestinatario3.setUnorDescricaoGenesis(EntidadeTbCIDest.getUnorDescricaoGenesis()); //---------------------------------- newTbCIDestinatario3.setIdTipoCoin(nlTipoCI2); ////6 ==> CI Desaprovada newTbCIDestinatario3.setCoinAssinatura(EntidadeTbCIDest.getCoinAssinatura()); // Assinatura igual CI desaprovada em.persist(newTbCIDestinatario3); } catch (javax.persistence.PersistenceException e) { //e.printStackTrace(); em.close(); emf.close(); bCondicao = false; } } em.getTransaction().commit(); em.close(); emf.close(); bCondicao = true; } catch (javax.persistence.PersistenceException e) { //e.printStackTrace(); em.close(); emf.close(); bCondicao = false; } break; default: bCondicao = false; break; } return bCondicao; } @FXML private void handleBtnEditarCI(ActionEvent event) throws IOException { if (null == TbViewGeral2.getSelectionModel().getSelectedItem()) { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Erro"); alert.setHeaderText("CI no foi selecionado."); alert.setContentText("Favor selecionar uma CI da tabela"); alert.showAndWait(); } else { // do something int nlIdCI = 0; int nTabela = 0; String strHtmlUpdateCI = ""; nTabela = TbViewGeral2.getSelectionModel().getSelectedItem().getIntp_idTabelaFonte(); if (1 == nTabela) { nlIdCI = TbViewGeral2.getSelectionModel().getSelectedItem().getIntp_idCoin(); strHtmlUpdateCI = TbViewGeral2.getSelectionModel().getSelectedItem().getStrp_Conteudo(); UpdateCI(this, nlIdCI, strHtmlUpdateCI); //Valores dos botes //1-caixa de recebidas (solicitando aprovao) - btnCaixaEntradaSolicitandoAprovacao //2-caixa de recebidas - btnCaixaEntrada //3-caixa de recebidas (pendencias) - btnCaixaPendencias //4-caixa de recebidas (arquivadas) - btnCaixaArquivadas //5-Caixa de enviados (arquivadas) - btnCaixaEnviadosArquivados //6-Caixa de enviados - btnCaixaSaida; //7-Caixa de enviados (solicitando aprovao) - btnPendentesAprovacao int nlButtonSelected = 0; nlButtonSelected = ngBotao; //Refresh da TableView switch (nlButtonSelected) { case 1: btnCaixaEntradaSolicitandoAprovacao.fire(); break; case 2: btnCaixaEntrada.fire(); break; case 3: btnCaixaPendencias.fire(); break; case 4: btnCaixaArquivadas.fire(); break; case 5: btnCaixaEnviadosArquivados.fire(); break; case 6: btnCaixaSaida.fire(); break; case 7: btnPendentesAprovacao.fire(); break; case 8: //handleBtnCaixaPendentesAprovacao() btnCiPorAprovar.fire(); break; default: break; } } else { Alert alert = new Alert(Alert.AlertType.WARNING); alert.setTitle("Advertncia"); alert.setHeaderText("CI no pode ser editada."); alert.setContentText("CIs criadas em outras UOs no podem ser editadas"); alert.showAndWait(); } } } public void UpdateCI(FXMLMainController mainController, int nlIdCI, String strHtmlUpdateCI) { try { scene = new Scene(new SplitPane()); FXMLLoader loader = new FXMLLoader( getClass().getResource("/ci_eletronico/fxml_utilitarios/UpdateCI.fxml")); scene.setRoot((Parent) loader.load()); ci_eletronico.fxml_utilitarios.UpdateCIController Update_ci_controller = loader.<ci_eletronico.fxml_utilitarios.UpdateCIController>getController(); Update_ci_controller.setVariaveisAmbienteUpdateCI(mainController, nlIdCI, strHtmlUpdateCI); Stage stage = new Stage(); stage.setTitle("Atualizar CI-eletrnico"); //set icon stage.getIcons().add(new Image("/resources/repeat_green.png")); stage.setScene(scene); stage.initModality(Modality.APPLICATION_MODAL); //Window Parent fica inativo stage.showAndWait(); // } catch (IOException ex) { Logger.getLogger(FXMLMainController.class.getName()).log(Level.SEVERE, null, ex); } } public Long RecordCountTbCiDestinatario(int nidUoDestinatario, int nlTipoPerfil) { EntityManager em; EntityManagerFactory emf; emf = Persistence.createEntityManagerFactory("CI_EletronicoPU"); em = emf.createEntityManager(); Long lResultado = 0L; try { em.getTransaction().begin(); if (1 == nlTipoPerfil) { //Perfil Gestor TypedQuery<Long> query = em.createQuery( "SELECT COUNT(t) FROM TbCiDestinatario t WHERE t.idUoDestinatario = :idUoDestinatario AND t.coinRemitenteGestorAutorizado = 1 AND t.coinDestinatarioGestorAutorizado = 1 AND t.coinDestinatarioPendente = 0 AND t.coinDestinatarioUoArquivado = 0 AND t.coinDestinatarioLido = 0 AND t.coinCancelado = 0", Long.class).setParameter("idUoDestinatario", nidUoDestinatario); lResultado = query.getSingleResult(); } else { List<Integer> nValues = new ArrayList<>(); nValues.add(1); nValues.add(2); nValues.add(4); nValues.add(6); TypedQuery<Long> query = em.createQuery( "SELECT COUNT(t) FROM TbCiDestinatario t WHERE t.idUoDestinatario = :idUoDestinatario AND t.coinRemitenteGestorAutorizado = 1 AND t.coinDestinatarioGestorAutorizado = 1 AND t.coinDestinatarioPendente = 0 AND t.coinDestinatarioUoArquivado = 0 AND t.coinDestinatarioLido = 0 AND t.coinCancelado = 0 AND t.idTipoCoin IN :idTipoCoin", Long.class).setParameter("idUoDestinatario", nidUoDestinatario) .setParameter("idTipoCoin", nValues); lResultado = query.getSingleResult(); } //Long Resultado = query.getSingleResult(); em.close(); emf.close(); return lResultado; } catch (javax.persistence.PersistenceException e) { System.out.println("Erro:" + e); em.close(); emf.close(); return 0L; } //return 0L; } public Long RecordCountMarcadosComoPendentesTbCiDestinatario(int nidUoDestinatario, int nlTipoPerfil) { // Iniciamos cdigo para calular as datas a serem utilizadas String strlDias = ""; int nlDias = 0; MainWindowQueries consulta = new MainWindowQueries(); strlDias = consulta.getMessagemCiDesaprovada("NOTIFICACAO_PENDENCIA"); strlDias = strlDias.trim(); nlDias = Integer.parseInt(strlDias); Date dateInstance = new Date(); Calendar cal = Calendar.getInstance(); cal.setTime(dateInstance); cal.add(Calendar.DATE, -nlDias); Date dateSubtractDays = cal.getTime(); System.out.println("Date = " + dateSubtractDays); //---------------------------------------------------------- EntityManager em; EntityManagerFactory emf; emf = Persistence.createEntityManagerFactory("CI_EletronicoPU"); em = emf.createEntityManager(); Long lResultado = 0L; try { em.getTransaction().begin(); if (1 == nlTipoPerfil) { //Perfil Gestor TypedQuery<Long> query = em.createQuery( "SELECT COUNT(t) FROM TbCiDestinatario t WHERE t.idUoDestinatario = :idUoDestinatario AND t.coinRemitenteGestorAutorizado = 1 AND t.coinDestinatarioGestorAutorizado = 1 AND t.coinDestinatarioPendente = 1 AND t.coinDestinatarioUoArquivado = 0 AND t.coinDestinatarioLido = 0 AND t.coinCancelado = 0 AND t.coinDestinatarioDataMarcadoPendente < :data", Long.class).setParameter("idUoDestinatario", nidUoDestinatario) .setParameter("data", dateSubtractDays); lResultado = query.getSingleResult(); } else { List<Integer> nValues = new ArrayList<>(); nValues.add(1); nValues.add(2); nValues.add(4); nValues.add(6); TypedQuery<Long> query = em.createQuery( "SELECT COUNT(t) FROM TbCiDestinatario t WHERE t.idUoDestinatario = :idUoDestinatario AND t.coinRemitenteGestorAutorizado = 1 AND t.coinDestinatarioGestorAutorizado = 1 AND t.coinDestinatarioPendente = 1 AND t.coinDestinatarioUoArquivado = 0 AND t.coinDestinatarioLido = 0 AND t.coinCancelado = 0 AND t.coinDestinatarioDataMarcadoPendente < :data AND t.idTipoCoin IN :idTipoCoin", Long.class).setParameter("idUoDestinatario", nidUoDestinatario) .setParameter("data", dateSubtractDays).setParameter("idTipoCoin", nValues); lResultado = query.getSingleResult(); } //Long Resultado = query.getSingleResult(); em.close(); emf.close(); return lResultado; } catch (javax.persistence.PersistenceException e) { System.out.println("Erro:" + e); em.close(); emf.close(); return 0L; } //return 0L; } public Long RecordCountEnviadosTbComunicacaoInterna(int nidUoDestinatario, int nlTipoPerfil) { EntityManager em; EntityManagerFactory emf; emf = Persistence.createEntityManagerFactory("CI_EletronicoPU"); em = emf.createEntityManager(); Long lResultado = 0L; try { em.getTransaction().begin(); if (1 == nlTipoPerfil) { TypedQuery<Long> query = em.createQuery( "SELECT COUNT(t) FROM TbComunicacaoInterna t WHERE t.idUoGestor = :idUoGestor AND t.coinAutorizado = 0 AND t.coinUoGestorArquivado = 0 AND t.coinCancelado = 0", Long.class).setParameter("idUoGestor", nidUoDestinatario); lResultado = query.getSingleResult(); } else { List<Integer> nValues = new ArrayList<>(); nValues.add(1); nValues.add(2); nValues.add(4); nValues.add(6); TypedQuery<Long> query = em.createQuery( "SELECT COUNT(t) FROM TbComunicacaoInterna t WHERE t.idUoGestor = :idUoGestor AND t.coinAutorizado = 0 AND t.coinUoGestorArquivado = 0 AND t.coinCancelado = 0 AND t.idTipoCoin IN :idTipoCoin", Long.class).setParameter("idUoGestor", nidUoDestinatario) .setParameter("idTipoCoin", nValues); lResultado = query.getSingleResult(); } //Long Resultado = query.getSingleResult(); em.close(); emf.close(); return lResultado; } catch (javax.persistence.PersistenceException e) { System.out.println("Erro:" + e); em.close(); emf.close(); return 0L; } //return 0L; } @FXML private void handleBtnMarcarcomoPendencia(ActionEvent event) throws IOException { if (null == TbViewGeral.getSelectionModel().getSelectedItem()) { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Erro"); alert.setHeaderText("CI no foi selecionado."); alert.setContentText("Favor selecionar uma CI da tabela"); alert.showAndWait(); } else { int nIdCI = 0; int nBotao = 0; int nTabela = 0; Alert alert = new Alert(AlertType.CONFIRMATION); alert.setTitle("Confirmar"); alert.setHeaderText(null); alert.setContentText("Deseja realmente marcar como pendncia?"); Optional<ButtonType> result = alert.showAndWait(); if (result.get() == ButtonType.OK) { // do something nBotao = this.ngBotao; nTabela = this.ngTabela; // Aprovamos CI //Tabela a ser utilizada para atualizar status das CIs (aprovadas, arquivadas, desarquivadas) // 0 ==> Sem tabela definida // 1 ==> TB_COMUNICACAO_INTERNA // 2 ==> TB_CI_DESTINATARIO switch (nTabela) { case 1: // 1 ==> TB_COMUNICACAO_INTERNA nIdCI = TbViewGeral.getSelectionModel().getSelectedItem().getIntp_idCoin(); MarcarComoPendente(nIdCI, 1); //TableViewRefresh(nBotao); break; case 2: // 2 ==> TB_CI_DESTINATARIO nIdCI = TbViewGeral.getSelectionModel().getSelectedItem().getIntp_idCoinDestinatario(); MarcarComoPendente(nIdCI, 2); //TableViewRefresh(nBotao); break; default: break; } } else { //...do nothing } } } @FXML private void handleBtnArquivarCI(ActionEvent event) throws IOException { if (null == TbViewGeral.getSelectionModel().getSelectedItem()) { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Erro"); alert.setHeaderText("CI no foi selecionado."); alert.setContentText("Favor selecionar uma CI da tabela"); alert.showAndWait(); } else { int nIdCI = 0; int nBotao = 0; int nTabela = 0; Alert alert = new Alert(AlertType.CONFIRMATION); alert.setTitle("Confirmar Arquivamento"); alert.setHeaderText(null); alert.setContentText("Deseja realmente arquivar CI?"); Optional<ButtonType> result = alert.showAndWait(); if (result.get() == ButtonType.OK) { //nIdCI = TbViewGeral.getSelectionModel().getSelectedItem().getIntp_idCoin(); nBotao = this.ngBotao; //nTabela = this.ngTabela; nTabela = TbViewGeral.getSelectionModel().getSelectedItem().getIntp_idTabelaFonte(); // Aprovamos CI //Tabela a ser utilizada para atualizar status das CIs (aprovadas, arquivadas, desarquivadas) // 0 ==> Sem tabela definida // 1 ==> TB_COMUNICACAO_INTERNA // 2 ==> TB_CI_DESTINATARIO switch (nTabela) { case 1: // 1 ==> TB_COMUNICACAO_INTERNA nIdCI = TbViewGeral.getSelectionModel().getSelectedItem().getIntp_idCoin(); ArquivarCI(nIdCI, 1); //TableViewRefresh(nBotao); break; case 2: // 2 ==> TB_CI_DESTINATARIO nIdCI = TbViewGeral.getSelectionModel().getSelectedItem().getIntp_idCoinDestinatario(); ArquivarCI(nIdCI, 2); //TableViewRefresh(nBotao); break; default: break; } } else { // ... user chose CANCEL or closed the dialog } } } private void DesarquivarCI(int nlIdCI, int nlTabela) { boolean bUpdate = false; //Valores dos botes //1-caixa de recebidas (solicitando aprovao) - btnCaixaEntradaSolicitandoAprovacao //2-caixa de recebidas - btnCaixaEntrada //3-caixa de recebidas (pendencias) - btnCaixaPendencias //4-caixa de recebidas (arquivadas) - btnCaixaArquivadas //5-Caixa de enviados (arquivadas) - btnCaixaEnviadosArquivados //6-Caixa de enviados - btnCaixaSaida; //7-Caixa de enviados (solicitando aprovao) - btnPendentesAprovacao int nlButtonSelected = 0; nlButtonSelected = ngBotao; MainWindowQueries consulta = new MainWindowQueries(); //Tabela a ser utilizada para atualizar status das CIs (aprovadas, arquivadas, desarquivadas) // 0 ==> Sem tabela definida // 1 ==> TB_COMUNICACAO_INTERNA // 2 ==> TB_CI_DESTINATARIO switch (nlTabela) { case 1: try { bUpdate = consulta.DesarquivarCIEnviada(nlIdCI); } catch (Exception e) { e.printStackTrace(); Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Desarquivar CI "); alert.setHeaderText("Tabela TB_COMUNICACAO_INTERNA"); alert.setContentText(e.getMessage()); alert.showAndWait(); } break; case 2: try { bUpdate = consulta.DesarquivarCIRecebida(nlIdCI); } catch (Exception e) { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Desarquivar CI "); alert.setHeaderText("Tabela TB_CI_DESTINATARIO"); alert.setContentText(e.getMessage()); alert.showAndWait(); } break; default: break; } if (bUpdate) { // System.out.println("IdUsuario = " + nIdUserUO); // System.out.println("Update deve acontecer"); Alert alert = new Alert(Alert.AlertType.INFORMATION); alert.setTitle("Informao"); alert.setHeaderText(null); alert.setContentText("CI foi desarquivada com sucesso."); alert.showAndWait(); //Refresh da TableView switch (nlButtonSelected) { case 1: btnCaixaEntradaSolicitandoAprovacao.fire(); break; case 2: btnCaixaEntrada.fire(); break; case 3: btnCaixaPendencias.fire(); break; case 4: btnCaixaArquivadas.fire(); break; case 5: btnCaixaEnviadosArquivados.fire(); break; case 6: btnCaixaSaida.fire(); break; case 7: btnPendentesAprovacao.fire(); break; default: break; } } else { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Erro"); alert.setHeaderText("No foi possvel desarquivar CI"); alert.setContentText("Favor contatar o Administrador do sistema"); alert.showAndWait(); } } /* private void ArquivarCiRespondidaOuEncaminhada(int nIdUO, int nlIdCI, int nlTabela){ //Valores dos botes //1-caixa de recebidas (solicitando aprovao) - btnCaixaEntradaSolicitandoAprovacao //2-caixa de recebidas - btnCaixaEntrada //3-caixa de recebidas (pendencias) - btnCaixaPendencias //4-caixa de recebidas (arquivadas) - btnCaixaArquivadas //5-Caixa de enviados (arquivadas) - btnCaixaEnviadosArquivados //6-Caixa de enviados - btnCaixaSaida; //7-Caixa de enviados (solicitando aprovao) - btnPendentesAprovacao int nlButtonSelected = 0; nlButtonSelected = ngBotao; boolean bUpdate = false; TbComunicacaoInterna nIdCoin = new TbComunicacaoInterna(nlIdCI); try{ bUpdate = consulta.ArquivarCIRespondidaOuEncaminhada(nIdCoin, nIdUO, nlButtonSelected); }catch(Exception e){ Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Arquivar CI Respondida ou CI Encaminhada"); alert.setHeaderText("Tabela TB_CI_DESTINATARIO"); alert.setContentText(e.getMessage()); alert.showAndWait(); } if(bUpdate){ //Refresh da TableView switch(nlButtonSelected){ case 1: btnCaixaEntradaSolicitandoAprovacao.fire(); break; case 2: btnCaixaEntrada.fire(); break; case 3: btnCaixaPendencias.fire(); break; case 4: btnCaixaArquivadas.fire(); break; case 5: btnCaixaEnviadosArquivados.fire(); break; case 6: btnCaixaSaida.fire(); break; case 7: btnPendentesAprovacao.fire(); break; default: break; } } else { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Erro"); alert.setHeaderText("No foi possvel arquivar CI"); alert.setContentText("Favor contatar o Administrador do sistema"); alert.showAndWait(); } } */ private void ArquivarCI(int nlIdCI, int nlTabela) { boolean bUpdate = false; //Valores dos botes //1-caixa de recebidas (solicitando aprovao) - btnCaixaEntradaSolicitandoAprovacao //2-caixa de recebidas - btnCaixaEntrada //3-caixa de recebidas (pendencias) - btnCaixaPendencias //4-caixa de recebidas (arquivadas) - btnCaixaArquivadas //5-Caixa de enviados (arquivadas) - btnCaixaEnviadosArquivados //6-Caixa de enviados - btnCaixaSaida; //7-Caixa de enviados (solicitando aprovao) - btnPendentesAprovacao int nlButtonSelected = 0; nlButtonSelected = ngBotao; MainWindowQueries consulta = new MainWindowQueries(); //Tabela a ser utilizada para atualizar status das CIs (aprovadas, arquivadas, desarquivadas) // 0 ==> Sem tabela definida // 1 ==> TB_COMUNICACAO_INTERNA // 2 ==> TB_CI_DESTINATARIO switch (nlTabela) { case 1: try { bUpdate = consulta.ArquivarCIEnviada(nlIdCI, nlButtonSelected); } catch (Exception e) { e.printStackTrace(); Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Arquivar CI "); alert.setHeaderText("Tabela TB_COMUNICACAO_INTERNA"); alert.setContentText(e.getMessage()); alert.showAndWait(); } break; case 2: try { bUpdate = consulta.ArquivarCIRecebida(nlIdCI, nlButtonSelected); } catch (Exception e) { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Arquivar CI "); alert.setHeaderText("Tabela TB_CI_DESTINATARIO"); alert.setContentText(e.getMessage()); alert.showAndWait(); } break; default: break; } if (bUpdate) { // System.out.println("IdUsuario = " + nIdUserUO); // System.out.println("Update deve acontecer"); Alert alert = new Alert(Alert.AlertType.INFORMATION); alert.setTitle("Informao"); alert.setHeaderText(null); alert.setContentText("CI foi arquivada com sucesso."); alert.showAndWait(); //Refresh da TableView switch (nlButtonSelected) { case 1: btnCaixaEntradaSolicitandoAprovacao.fire(); break; case 2: btnCaixaEntrada.fire(); break; case 3: btnCaixaPendencias.fire(); break; case 4: btnCaixaArquivadas.fire(); break; case 5: btnCaixaEnviadosArquivados.fire(); break; case 6: btnCaixaSaida.fire(); break; case 7: btnPendentesAprovacao.fire(); break; case 8: //handleBtnCaixaPendentesAprovacao() btnCiPorAprovar.fire(); break; default: break; } } else { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Erro"); alert.setHeaderText("No foi possvel arquivar CI"); alert.setContentText("Favor contatar o Administrador do sistema"); alert.showAndWait(); } } private void MarcarComoPendente(int nlIdCI, int nlTabela) { boolean bUpdate = false; //Valores dos botes //1-caixa de recebidas (solicitando aprovao) - btnCaixaEntradaSolicitandoAprovacao //2-caixa de recebidas - btnCaixaEntrada //3-caixa de recebidas (pendencias) - btnCaixaPendencias //4-caixa de recebidas (arquivadas) - btnCaixaArquivadas //5-Caixa de enviados (arquivadas) - btnCaixaEnviadosArquivados //6-Caixa de enviados - btnCaixaSaida; //7-Caixa de enviados (solicitando aprovao) - btnPendentesAprovacao int nlButtonSelected = 0; nlButtonSelected = ngBotao; consulta = new MainWindowQueries(); //Tabela a ser utilizada para atualizar status das CIs (aprovadas, arquivadas, desarquivadas) // 0 ==> Sem tabela definida // 1 ==> TB_COMUNICACAO_INTERNA // 2 ==> TB_CI_DESTINATARIO switch (nlTabela) { case 1: //Tabela TB_COMUNICACAO_INTERNA no possui campo para setear // registro como marcar como pendencia // try{ // bUpdate = consulta.ArquivarCIEnviada(nlIdCI, nlButtonSelected); // } catch (Exception e){ // e.printStackTrace(); // Alert alert = new Alert(Alert.AlertType.ERROR); // alert.setTitle("CI - Marcar como pendncia"); // alert.setHeaderText("Tabela TB_COMUNICACAO_INTERNA"); // alert.setContentText(e.getMessage()); // alert.showAndWait(); // } break; case 2: try { bUpdate = consulta.MarcarComoPendenciaCIRecebida(nlIdCI, nlButtonSelected); } catch (Exception e) { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("CI - Marcar como pendncia"); alert.setHeaderText("Tabela TB_CI_DESTINATARIO"); alert.setContentText(e.getMessage()); alert.showAndWait(); } break; default: break; } if (bUpdate) { // System.out.println("IdUsuario = " + nIdUserUO); // System.out.println("Update deve acontecer"); Alert alert = new Alert(Alert.AlertType.INFORMATION); alert.setTitle("Informao"); alert.setHeaderText(null); alert.setContentText("CI foi marcada como pendncia com sucesso."); alert.showAndWait(); //Refresh da TableView switch (nlButtonSelected) { case 1: btnCaixaEntradaSolicitandoAprovacao.fire(); break; case 2: btnCaixaEntrada.fire(); break; case 3: btnCaixaPendencias.fire(); break; case 4: btnCaixaArquivadas.fire(); break; case 5: btnCaixaEnviadosArquivados.fire(); break; case 6: btnCaixaSaida.fire(); break; case 7: btnPendentesAprovacao.fire(); break; case 8: //handleBtnCaixaPendentesAprovacao() btnCiPorAprovar.fire(); break; default: break; } } else { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Erro"); alert.setHeaderText("No foi possvel marcar como pendncia"); alert.setContentText("Favor contatar o Administrador do sistema"); alert.showAndWait(); } } @FXML private void handleBtnDesarquivarCI(ActionEvent event) throws IOException { if (null == TbViewGeral.getSelectionModel().getSelectedItem()) { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Erro"); alert.setHeaderText("CI no foi selecionado."); alert.setContentText("Favor selecionar uma CI da tabela"); alert.showAndWait(); } else { Alert alert = new Alert(AlertType.CONFIRMATION); alert.setTitle("Confirmar Desarquivamento"); alert.setHeaderText(null); alert.setContentText("Deseja realmente desarquivar CI?"); Optional<ButtonType> result = alert.showAndWait(); if (result.get() == ButtonType.OK) { // ... user chose OK int nIdCI = 0; int nBotao = 0; int nTabela = 0; boolean blcoinUOGestorArquivado = false; nBotao = this.ngBotao; //nTabela = this.ngTabela; nTabela = TbViewGeral.getSelectionModel().getSelectedItem().getIntp_idTabelaFonte(); // Aprovamos CI //Tabela a ser utilizada para atualizar status das CIs (aprovadas, arquivadas, desarquivadas) // 0 ==> Sem tabela definida // 1 ==> TB_COMUNICACAO_INTERNA // 2 ==> TB_CI_DESTINATARIO switch (nTabela) { case 1: // 1 ==> TB_COMUNICACAO_INTERNA nIdCI = TbViewGeral.getSelectionModel().getSelectedItem().getIntp_idCoin(); //Se tentamos desarquivar CI que foi do tipo "Enviados aprovado pelo Gestor" simplesmente no pode ser feito blcoinUOGestorArquivado = TbViewGeral.getSelectionModel().getSelectedItem() .getBoolp_ArquivadoUOGestor(); if (blcoinUOGestorArquivado) { alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Erro"); alert.setHeaderText("CI no pode ser Desarquivada."); alert.setContentText("Provavelmente a CI foi do tipo: 'Enviada e aguardando aprovao'"); alert.showAndWait(); } else { DesarquivarCI(nIdCI, 1); } //TableViewRefresh(nBotao); break; case 2: // 2 ==> TB_CI_DESTINATARIO nIdCI = TbViewGeral.getSelectionModel().getSelectedItem().getIntp_idCoinDestinatario(); //Se tentamos desarquivar CI que foi do tipo "Enviados aprovado pelo Gestor" simplesmente no pode ser feito blcoinUOGestorArquivado = TbViewGeral.getSelectionModel().getSelectedItem() .getBoolp_ArquivadoPeloUOGestor(); if (blcoinUOGestorArquivado) { alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Erro"); alert.setHeaderText("CI no pode ser Desarquivada."); alert.setContentText("Provavelmente a CI foi do tipo: 'Recebida e aguardando aprovao'"); alert.showAndWait(); } else { DesarquivarCI(nIdCI, 2); } //TableViewRefresh(nBotao); break; default: break; } } else { // ... user chose CANCEL or closed the dialog } } } @FXML private void handleBtnImprimirCI(ActionEvent event) throws IOException { if (null == TbViewGeral.getSelectionModel().getSelectedItem()) { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Erro"); alert.setHeaderText("CI no foi selecionada."); alert.setContentText("Favor selecionar uma CI da tabela"); alert.showAndWait(); } else { File outfile = null; // variavel para abrir documento pdf aps sua criao String strFileName = this.lblNumeroSequencialCI.getText(); String strUserHome = System.getProperty("user.home") + "\\Downloads\\" + strFileName + ".pdf"; final Document document = new Document(); try { document.setPageSize(PageSize.A4); document.setMargins(10f, 10f, 70f, 40f); String strCIAssinatura = TbViewGeral.getSelectionModel().getSelectedItem().getStrp_CoinAssinatura(); //PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("c:/Temp/teste.pdf")); PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(strUserHome)); MyFooter evento = new MyFooter(strCIAssinatura); writer.setPageEvent(evento); } catch (IOException | DocumentException e) { System.out.println(e.toString()); System.out.println(e.getMessage()); } document.open(); //String htmlString = htmlEditorCI.getHtmlText(); String strlCITitulo = ""; strlCITitulo = "<br /><p align=\"center\"><b>" + strFileName + "</b></p>"; String htmlString = TbViewGeral.getSelectionModel().getSelectedItem().getStrp_Conteudo(); //String strCIAssinatura = TbViewGeral.getSelectionModel().getSelectedItem().getStrp_CoinAssinatura(); // htmlString = htmlString.replace("<br>", "\n"); // htmlString = htmlString.replace("<br/>", "\n"); // htmlString = htmlString.replace("<br />", "\n"); htmlString = htmlString.replace("<br>", "<br />"); // htmlString = htmlString.replace("<hr>", "<p></p>"); // htmlString = htmlString.replace("<hr/>", "<p></p>"); // htmlString = htmlString.replace("<hr />", "<p></p>"); htmlString = htmlString.replace("<hr>", "<hr />"); htmlString = strlCITitulo.concat(htmlString); StringReader in = new StringReader(htmlString); try { final Paragraph test = new Paragraph(); XMLWorkerHelper.getInstance().parseXHtml(new ElementHandler() { @Override public void add(final Writable w) { if (w instanceof WritableElement) { List<Element> elements = ((WritableElement) w).elements(); for (Element e : elements) { test.add(e); } } } }, in); document.add(test); } catch (IOException | DocumentException e) { System.out.println(e.toString()); System.out.println(e.getMessage()); } document.close(); outfile = new File(strUserHome); // Alert alert = new Alert(Alert.AlertType.INFORMATION); // alert.setTitle("Informao"); // alert.setHeaderText("Imprimir CI: " + strFileName ); // alert.setContentText("Arquivo pdf criado com sucesso na pasta Downloads"); // alert.showAndWait(); openArquivo(outfile); // Abrimos o pdf criado para ser visualizado } } @FXML private void handleBtnCaixaPendentesAprovacao(ActionEvent event) throws IOException { //Solicitao de Patricia para juntar todas as CIs pendentes de aprovao numa caixa s clearTelasAguardandoAprovacao(); this.ngBotao = 8; lblCaixa.setText(""); lblCaixa.setText("CIs AGUARDANDO APROVAO"); TbViewGeral.setVisible(false); String strTituloCiporAprovar = ""; int nlIdCoinDestinatario = 0; TbComunicacaoInterna nlIdCoin; int nlIdUsuarioRemitente = 0; String strUsuarioNomeCompleto = ""; int nlIdUORemitente = 0; String strDescricaoUORemitente = ""; int nlIdUODestinatario = 0; String strDescricaoUODestinatario = ""; int nlIdUOGestorDestinatario = 0; String strDescricaoUOGestorDestinatario = ""; boolean bAutorizadoPeloGestor = false; boolean bArquivadoPeloUODestinatario = false; boolean bArquivadoPeloUOGestor = false; String strAssunto = ""; String strConteudo = ""; boolean bPendentePeloUODestinatario = false; Date dataAutorizadoPeloGestorDestinatario; boolean bLidoPeloUODestinatario = false; Date dataCriacao; TbTipoEnvio nlIdTipoEnvio; //1-Enviado "Para; 2-Enviado "Com cpia"; 3-Enviado "Com cpia oculta" //TbTipoComunicacoInterna tbTipoCoin; int nlTipoCoin = 0; int nlIdCoinNumero = 0; //Nmero sequencial das CIs para cada UO boolean bReadOnlyUODestinatario = false; boolean bCoinTemAnexos = false; boolean bAutorizadoPeloGestorRemitente = false; String strDataCriacao = ""; //Variaveis utilizadas nas CIs encaminhadas para no perder nmero de CI //criada e quem foi o Remitente inicial (serve para saber quais anexos acompanham o despacho tambm) int nlIdCoinGenesis = 0; int nlIdUnorGenesis = 0; int nlCoinNumeroGenesis = 0; String strCoinHistoricoAnexos = ""; String strUnorDescricaoGenesis = ""; //Variavel para construo da Ci Sequencial String strCiSequencial = ""; String strAno = ""; SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); //Variaveis de apoio DateFormat df = new SimpleDateFormat("dd-MM-yyyy HH:mm"); int nIdCoin = 0; int nIdTipoEnvio = 0; //Assinatura MD5 String strlAssinatura = ""; //CI Lido ou no boolean bCoinLido = false; boolean bCancelado = false; //A variavel intp_idTabelaFonte foi criada para saber qual a fonte de dados //por tanto, no existe fisicamente mapeado para tabela nenhuma int nlIdTabelaFonte = 0; //----------------------------------------------------- MainWindowQueries consultaTbCiDestinatario; consultaTbCiDestinatario = new MainWindowQueries(); MainWindowQueries consultaTbComunicacaoInterna = new MainWindowQueries(); TbViewGeral2.setVisible(true); TbViewGeral2.setLayoutX(1); TbViewGeral2.setLayoutY(30); TbViewGeral2.setPrefHeight(656); lblAguardandoAprovacao.setVisible(false); lblRecordCount.setText(""); //Unidade Organizacional utilizado nas queries int nlIdUnidadeOrganizacional = 0; nlIdUnidadeOrganizacional = this.nIdUnidadeOrganizacional; //Tipo de perfil int nlTipoPerfil = 0; nlTipoPerfil = this.nTipoPerfil; List<TbCiDestinatario> listaCiDestinatario2 = new ArrayList<TbCiDestinatario>(); List<TbComunicacaoInterna> listaCiSemAprovar2 = new ArrayList<TbComunicacaoInterna>(); ObservableList<TbCIPorAprovar> obslistaTbCaixaEntrada2 = FXCollections.observableArrayList(); if (1 == nlTipoPerfil) { //Perfil Gestor //TableView2 listaCiDestinatario2 = consultaTbCiDestinatario .getlistaCaixaEntradaSolicitandoAprovacao(nlIdUnidadeOrganizacional); } else { //TableView2 listaCiDestinatario2 = consultaTbCiDestinatario .getlistaCaixaEntradaSolicitandoAprovacaoPerfil2(nlIdUnidadeOrganizacional); } for (TbCiDestinatario l : listaCiDestinatario2) { nlIdCoinDestinatario = l.getIdCoinDestinatario(); nlIdCoin = l.getIdCoin(); nIdCoin = nlIdCoin.getIdCoin(); nlIdUsuarioRemitente = l.getIdUsuarioRemitente(); strUsuarioNomeCompleto = l.getUsuNomeCompletoRemitente(); nlIdUORemitente = l.getIdUoRemitente(); strDescricaoUORemitente = l.getInorDescricaoRemitente(); nlIdUODestinatario = l.getIdUoDestinatario(); strDescricaoUODestinatario = l.getUnorDescricaoDestinatario(); nlIdUOGestorDestinatario = l.getIdUoGestorDestinatario(); strDescricaoUOGestorDestinatario = l.getUnorDescricaoGestorDestinatario(); bAutorizadoPeloGestor = l.getCoinDestinatarioGestorAutorizado(); bArquivadoPeloUODestinatario = l.getCoinDestinatarioUoArquivado(); bArquivadoPeloUOGestor = l.getCoinDestinatarioUoGestorArquivado(); strAssunto = l.getCoinDestinatarioAssunto(); strConteudo = l.getCoinDestinatarioConteudo(); bPendentePeloUODestinatario = l.getCoinDestinatarioPendente(); dataAutorizadoPeloGestorDestinatario = l.getCoinDestinatarioGestorDataAutorizado(); bLidoPeloUODestinatario = l.getCoinDestinatarioLido(); dataCriacao = l.getCoinDestinatarioDataCriacao(); nlIdTipoEnvio = l.getIdTipoEnvio(); //1-Enviado "Para; 2-Enviado "Com cpia"; 3-Enviado "Com cpia oculta" nIdTipoEnvio = nlIdTipoEnvio.getIdTipoEnvio(); nlIdCoinNumero = l.getCoinDestinatarioNumero(); //Nmero sequencial das CIs para cada UO bReadOnlyUODestinatario = l.getCoinDestinatarioReadOnly(); bCoinTemAnexos = l.getCoinDestinatarioTemAnexos(); bAutorizadoPeloGestorRemitente = l.getCoinRemitenteGestorAutorizado(); nlIdCoinGenesis = l.getIdCoinGenesis(); nlIdUnorGenesis = l.getIdUnorGenesis(); nlCoinNumeroGenesis = l.getCoinNumeroGenesis(); strCoinHistoricoAnexos = l.getCoinHistoricoAnexos(); strUnorDescricaoGenesis = l.getUnorDescricaoGenesis(); nlTipoCoin = l.getIdTipoCoin().getIdTipoCoin(); strlAssinatura = l.getCoinAssinatura(); bCoinLido = l.getCoinDestinatarioLido(); bCancelado = l.getCoinCancelado(); strDataCriacao = df.format(dataCriacao); //Construo da CI sequencial strAno = sdf.format(dataCriacao); strCiSequencial = strUnorDescricaoGenesis + "-" + String.format("%05d", nlCoinNumeroGenesis) + "-" + strAno; //---------------------------------------------------------- nlIdTabelaFonte = 2; strTituloCiporAprovar = "RECEBIDAS"; obslistaTbCaixaEntrada2.add(new TbCIPorAprovar(nlIdCoinDestinatario, nIdCoin, nlIdUsuarioRemitente, strUsuarioNomeCompleto, nlIdUORemitente, strDescricaoUORemitente, nlIdUODestinatario, strDescricaoUODestinatario, nlIdUOGestorDestinatario, strDescricaoUOGestorDestinatario, bAutorizadoPeloGestor, bArquivadoPeloUODestinatario, bArquivadoPeloUOGestor, strAssunto, strConteudo, bPendentePeloUODestinatario, dataAutorizadoPeloGestorDestinatario, bLidoPeloUODestinatario, dataCriacao, nIdTipoEnvio, nlIdCoinNumero, bReadOnlyUODestinatario, bCoinTemAnexos, bAutorizadoPeloGestorRemitente, strDataCriacao, nlIdTabelaFonte, nlIdCoinGenesis, nlIdUnorGenesis, nlCoinNumeroGenesis, strCoinHistoricoAnexos, strUnorDescricaoGenesis, nlTipoCoin, strlAssinatura, bCoinLido, bCancelado, strCiSequencial, strTituloCiporAprovar)); // System.out.println(); } //Agora TB_COMUNICACAO_INTERNA int nIdUsuario = 0; int nIdUOGestor = 0; int nIdUO = 0; String strUODescricao = ""; boolean bAutorizado = false; int nTipoCoin = 0; String strApensamento = ""; int nSequencial = 0; boolean bArquivadoUO = false; boolean bArquivadoUOGestor = false; Date dataAutorizado; boolean bCoinReadOnly = false; boolean bTemAnexos = false; String strlDescricaoUODestinatario = ""; //Deve-se mostrar as Cis para aprovao s para usurio que faz parte da UO Gestora if (this.nIdUOGestor == this.nIdUnidadeOrganizacional) { if (1 == nlTipoPerfil) { //Perfil Gestor listaCiSemAprovar2 = consultaTbComunicacaoInterna .getlistaTbComunicacaoInternaPorAprovar(this.nIdUOGestor); } else { listaCiSemAprovar2 = consultaTbComunicacaoInterna .getlistaTbComunicacaoInternaPorAprovarPerfil2(this.nIdUOGestor); } //Para construir campo destinatario MainWindowQueries consultaDestinatario = new MainWindowQueries(); List<TbCiDestinatario> listaDestinatario = new ArrayList<TbCiDestinatario>(); String strDestinatarios = ""; //--------------------------------------------- for (TbComunicacaoInterna l : listaCiSemAprovar2) { try { nIdCoin = l.getIdCoin(); strAssunto = l.getCoinAssunto(); strConteudo = l.getCoinConteudo(); nIdUsuario = l.getIdUsuario(); strUsuarioNomeCompleto = l.getUsuNomeCompleto(); nIdUO = l.getIdUnidadeOrganizacional(); strUODescricao = l.getUnorDescricao(); nIdUOGestor = l.getIdUoGestor(); bAutorizado = l.getCoinAutorizado(); nTipoCoin = l.getIdTipoCoin().getIdTipoCoin(); strApensamento = l.getCoinApensamento(); nSequencial = l.getCoinNumero(); bArquivadoUO = l.getCoinUoArquivado(); bArquivadoUOGestor = l.getCoinUoGestorArquivado(); dataCriacao = l.getCoinDataCriacao(); strDataCriacao = df.format(dataCriacao); dataAutorizado = l.getCoinDataAutorizado(); bCoinReadOnly = l.getCoinReadOnly(); bTemAnexos = l.getCoinTemAnexos(); nlIdTabelaFonte = 1; nlIdCoinGenesis = l.getIdCoinGenesis(); nlIdUnorGenesis = l.getIdUnorGenesis(); nlCoinNumeroGenesis = l.getCoinNumeroGenesis(); strCoinHistoricoAnexos = l.getCoinHistoricoAnexos(); strUnorDescricaoGenesis = l.getUnorDescricaoGenesis(); strlAssinatura = l.getCoinAssinatura(); bCancelado = l.getCoinCancelado(); //Construo da CI sequencial strAno = sdf.format(dataCriacao); strCiSequencial = strUnorDescricaoGenesis + "-" + String.format("%05d", nlCoinNumeroGenesis) + "-" + strAno; //---------------------------------------------------------- //Construo dos destinatarios strDestinatarios = ""; TbComunicacaoInterna nTbIdCoin = new TbComunicacaoInterna(nIdCoin); listaDestinatario = consultaDestinatario.getlistaDestinatariosNaoAutorizados(nTbIdCoin); for (TbCiDestinatario lista : listaDestinatario) { strDestinatarios = strDestinatarios.concat(lista.getUnorDescricaoDestinatario() + "; "); } //---------------------------------------------------------- strTituloCiporAprovar = "ENVIADAS"; // obslistaTbCIPorAprovar.add(new TbCIPorAprovar(nIdCoin,strAssunto,strConteudo,nIdUsuario,strUsuarioNomeCompleto, // nIdUO,strUODescricao,nSequencial,dataCriacao,strDataCriacao,bAutorizado,bTemAnexos,1)); obslistaTbCaixaEntrada2.add(new TbCIPorAprovar(nIdCoin, strAssunto, strConteudo, nIdUsuario, strUsuarioNomeCompleto, nIdUO, strUODescricao, nIdUOGestor, bAutorizado, nTipoCoin, strApensamento, nSequencial, bArquivadoUO, bArquivadoUOGestor, dataCriacao, strDataCriacao, dataAutorizado, bCoinReadOnly, bTemAnexos, nlIdTabelaFonte, nlIdCoinGenesis, nlIdUnorGenesis, nlCoinNumeroGenesis, strCoinHistoricoAnexos, strUnorDescricaoGenesis, strlDescricaoUODestinatario, strlAssinatura, bCoinLido, bCancelado, strCiSequencial, strDestinatarios, strTituloCiporAprovar)); } catch (Exception e) { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Error"); alert.setHeaderText("ObservableList Error"); alert.setContentText(e.toString()); alert.showAndWait(); } } } //ClAprovado.setCellValueFactory(new PropertyValueFactory<TbCIPorAprovar,String>("strp_CiAguardandoAprovacao")); ClAprovado.setCellValueFactory( new PropertyValueFactory<TbCIPorAprovar, Boolean>("boolp_AutorizadoPeloGestor")); ClTipoAprovacao.setCellValueFactory( new PropertyValueFactory<TbCIPorAprovar, String>("strp_CiAguardandoAprovacao")); ClIdCoin2.setCellValueFactory(new PropertyValueFactory<TbCIPorAprovar, Integer>("intp_idCoin")); ClICiSequencial2 .setCellValueFactory(new PropertyValueFactory<TbCIPorAprovar, Integer>("strp_CiSequencial")); ClUODestinatario2.setCellValueFactory( new PropertyValueFactory<TbCIPorAprovar, String>("strp_DescricaoUODestinatario")); ClDataEnvio2.setCellValueFactory(new PropertyValueFactory<TbCIPorAprovar, String>("strp_dataCriacao")); ClUORemitente2 .setCellValueFactory(new PropertyValueFactory<TbCIPorAprovar, String>("strp_DescricaoUORemitente")); ClAutorRemitente2 .setCellValueFactory(new PropertyValueFactory<TbCIPorAprovar, String>("strp_UsuarioNomeCompleto")); ClAssunto2.setCellValueFactory(new PropertyValueFactory<TbCIPorAprovar, String>("strp_Assunto")); TbViewGeral2.setItems(obslistaTbCaixaEntrada2); TbViewGeral2.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() { @Override public void changed(ObservableValue observableValue, Object oldValue, Object newValue) { //Check whether item is selected and set value of selected item to Label try { //TableView<TbCIPorAprovar> TbViewGeral = new TableView<>(); if (TbViewGeral2.getSelectionModel().getSelectedItem() != null) { //TbCIPorAprovar tbCiPorAprovar = TbViewGeral.getSelectionModel().getSelectedItem(); //TbCIPorAprovar tbtbCiPorAprovar = new TbCIPorAprovar(); TbCIPorAprovar tbCiPorAprovar = TbViewGeral2.getSelectionModel().getSelectedItem(); int nCISequencial = 0; int nlIdCI = 0; boolean bTemAnexo = false; boolean bLido = false; boolean blCancelado = false; String strlBtnMarcarComoLido = ""; String strCoinHistoricoAnexos = ""; String strAssunto = ""; String strDescricaoUO = ""; String strYear = ""; Date dataCriacao; SimpleDateFormat df = new SimpleDateFormat("yyyy"); nlIdCI = tbCiPorAprovar.getIntp_idCoin(); strDescricaoUO = tbCiPorAprovar.getStrp_UnorDescricaoGenesis(); nCISequencial = tbCiPorAprovar.getIntp_CoinNumeroGenesis(); dataCriacao = tbCiPorAprovar.getDataCriacao(); bTemAnexo = tbCiPorAprovar.getBoolp_CoinTemAnexos(); bLido = tbCiPorAprovar.getBoolp_CoinLido(); blCancelado = tbCiPorAprovar.getBoolp_CoinCancelado(); strAssunto = tbCiPorAprovar.getStrp_Assunto(); strCoinHistoricoAnexos = tbCiPorAprovar.getStrp_CoinHistoricoAnexos(); strYear = df.format(dataCriacao); //Verificamos se Gestor ou no int nlIdUnidadeOrganizacional = Integer.parseInt(lblIdUO.getText()); int nlIdUOGestor = Integer.parseInt(lblUOGestora.getText()); int nlTipoPerfil = Integer.parseInt(lblIdPerfil.getText()); if ((nlIdUnidadeOrganizacional == nlIdUOGestor) && (nlTipoPerfil == 1)) { btnAprovarCI.setDisable(false); btnEditarCI.setDisable(false); btnDesaprovarCI.setDisable(false); } else { btnAprovarCI.setDisable(true); btnEditarCI.setDisable(true); btnDesaprovarCI.setDisable(true); } //-----TableView2 //btnAprovarCI.setDisable(false); btnEncaminharCI.setDisable(true); btnResponderCI.setDisable(true); btnArquivarCI.setDisable(true); btnDesarquivarCI.setDisable(true); btnHistoricoCI.setDisable(true); btnMarcarComoLido.setText("Marcar como Lido"); btnMarcarComoLido.setDisable(true); btnMarcarcomoPendencia.setDisable(true); //btnEditarCI.setVisible(true); // //TableView2 Habilita boto Aprovar CI e desabilita Marcar como Lido // btnMarcarComoLido.setText("Marcar como Lido"); // btnMarcarComoLido.setDisable(true); // btnEncaminharCI.setDisable(true); // btnMarcarcomoPendencia.setDisable(true); // btnAprovarCI.setDisable(false); // strlBtnMarcarComoLido = (bLido ? "Marcar como no Lido" : "Marcar como Lido"); // btnMarcarComoLido.setText(strlBtnMarcarComoLido); htmlEditorCI.setHtmlText(tbCiPorAprovar.getStrp_Conteudo()); if (strAssunto.equals("CI No foi autorizada pela Unidade Gestora")) { lblNumeroSequencialCI.setText("CI-DESAPROVADA"); } else { lblNumeroSequencialCI.setText( strDescricaoUO + "-" + String.format("%05d", nCISequencial) + "-" + strYear); } //lblNumeroSequencialCI.setText(strDescricaoUO + "-" + String.format("%05d",nCISequencial)+"-" + strYear); if ((bTemAnexo) || (strCoinHistoricoAnexos.length() > 0)) { PreencherTxtFAnexos(nlIdCI, strCoinHistoricoAnexos); } else { lviewAnexos.getItems().clear(); txtFAnexos.getChildren().clear(); } } } catch (Exception e) { e.printStackTrace(); //labelMessage.setText("Error on get row Data"); Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Erro"); alert.setHeaderText("Erro na carga da TableView2"); alert.setContentText(e.getMessage()); alert.showAndWait(); } } }); // Alert alert = new Alert(Alert.AlertType.INFORMATION); // alert.setTitle("Informao"); // alert.setHeaderText(null); // alert.setContentText("Boto Caixa de CIs pendentes de aprovao."); // alert.showAndWait(); } @FXML private void handleBtnCaixaEntrada(ActionEvent event) throws IOException { lblCaixa.setText(""); lblCaixa.setText("CAIXA DE RECEBIDAS"); //Calculamos a quantidade de registros que ainda no foram lidos //Unidade Organizacional utilizado nas queries //Tipo de perfil int nlTipoPerfil = 0; nlTipoPerfil = this.nTipoPerfil; int nlIdUnidadeOrganizacional = 0; nlIdUnidadeOrganizacional = this.nIdUnidadeOrganizacional; Long nlResultado = 0L; nlResultado = RecordCountTbCiDestinatario(nlIdUnidadeOrganizacional, nlTipoPerfil); String strLabel = ""; strLabel = "CIs no lidos = "; strLabel = strLabel.concat(Long.toString(nlResultado)); lblRecordCount.setText(""); lblRecordCount.setText(strLabel); setBotoesMainWindow(nTipoPerfil); btnAprovarCI.setDisable(true); btnEncaminharCI.setDisable(false); btnResponderCI.setDisable(false); btnArquivarCI.setDisable(false); btnDesarquivarCI.setDisable(true); //btnEditarCI.setVisible(false); btnEditarCI.setDisable(true); btnDesaprovarCI.setDisable(true); btnMarcarcomoPendencia.setDisable(false); clearTelas(); boolean bPreencherTableView2 = true; PreencherCaixaEntrada(2, bPreencherTableView2); } @FXML private void handleBtnCaixaSaida(ActionEvent event) throws IOException { lblCaixa.setText(""); lblCaixa.setText("CAIXA DE ENVIADOS"); lblRecordCount.setText(""); setBotoesMainWindow(nTipoPerfil); btnAprovarCI.setDisable(true); btnEncaminharCI.setDisable(true); btnResponderCI.setDisable(true); btnArquivarCI.setDisable(false); btnDesarquivarCI.setDisable(true); //Calculamos a quantidade de registros que ainda no foram lidos //Unidade Organizacional utilizado nas queries //Tipo de perfil int nlTipoPerfil = 0; nlTipoPerfil = this.nTipoPerfil; int nlIdUnidadeOrganizacional = 0; nlIdUnidadeOrganizacional = this.nIdUnidadeOrganizacional; Long nlResultado = 0L; nlResultado = RecordCountEnviadosTbComunicacaoInterna(nlIdUnidadeOrganizacional, nlTipoPerfil); String strLabel = ""; strLabel = "Caixa de enviados"; btnCaixaSaida.setText(""); if (0 == nlResultado) { btnCaixaSaida.setText(strLabel); } else { strLabel = strLabel.concat(" Aprovao:" + Long.toString(nlResultado)); btnCaixaSaida.setText(strLabel); } clearTelas(); ngTabela = 1; // TB_COMUNICACAO_INTERNA ngBotao = 6; int nlTipoPreenchimento = 0; nlTipoPreenchimento = this.ngBotao; boolean blPreencherTableView2 = true; PreencherCaixaSaida(nlTipoPreenchimento, blPreencherTableView2); } private void PreencherCaixaSaida(int nlTipoPreenchimento, boolean blPreencherTableView2) { ngTabela = 1; // TB_COMUNICACAO_INTERNA //List<TbComunicacaoInterna> listaCiSemAprovar = new ArrayList<>(); int nIdCoin = 0; int nSequencial = 0; String strAssunto = ""; String strConteudo = ""; int nIdUsuario = 0; String strUsuarioNomeCompleto = ""; String strApensamento = ""; int nIdUO = 0; int nIdUOGestor = 0; int nTipoCoin = 0; int nIdTabelaFonte = 0; String strUODescricao = ""; Date dataCriacao; Date dataAutorizado; DateFormat df = new SimpleDateFormat("dd-MM-yyyy HH:mm"); String strDataCriacao = ""; boolean bTemAnexos = false; boolean bAutorizado = false; boolean bGestorArquivado = false; boolean bArquivadoUO = false; boolean bArquivadoUOGestor = false; boolean bCoinReadOnly = false; //Variaveis utilizadas nas CIs encaminhadas para no perder nmero de CI //criada e quem foi o Remitente inicial (serve para saber quais anexos acompanham o despacho tambm) int nlIdCoinGenesis = 0; int nlIdUnorGenesis = 0; int nlCoinNumeroGenesis = 0; String strCoinHistoricoAnexos = ""; String strUnorDescricaoGenesis = ""; //---------------------------------------------------------- //Variavel para construo da Ci Sequencial String strCiSequencial = ""; String strAno = ""; SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); //--------------------------------------------------- String strlDescricaoUODestinatario = ""; //Assinatura MD5 String strlAssinatura = ""; //CI Lido ou no boolean bCoinLido = false; boolean bCancelado = false; //Id Unidade Organizacional logado int nlIdUnidadeOrganizacional = 0; nlIdUnidadeOrganizacional = this.nIdUnidadeOrganizacional; //Tipo de perfil int nlTipoPerfil = 0; nlTipoPerfil = this.nTipoPerfil; //obslistaTbCIPorAprovar = FXCollections.observableArrayList(); //Iniciamos a criao da TableView //List<TbCiDestinatario> listaCiDestinatario = new ArrayList<TbCiDestinatario>(); List<TbComunicacaoInterna> listaComunicacaoInterna = new ArrayList<TbComunicacaoInterna>(); ObservableList<TbCIPorAprovar> obslistaTbCaixaSaida = FXCollections.observableArrayList(); MainWindowQueries consulta = new MainWindowQueries(); //Para construir campo destinatario MainWindowQueries consultaDestinatario = new MainWindowQueries(); List<TbCiDestinatario> listaDestinatario = new ArrayList<TbCiDestinatario>(); String strDestinatarios = ""; //---------------------------------------------------------------------- String strTituloCiporAprovar = ""; //Mtodo utilizado para preencher TableView: private void PreencherCaixaEntrada(int nlTipoPreenchimento) //Mtodo utilizado para preencher TableView: private void PreencherCaixaSaida(int nlTipoPreenchimento) //Valores dos botes: //1-caixa de recebidas (solicitando aprovao) - btnCaixaEntradaPendentesAprovacao //2-caixa de recebidas - btnCaixaEntrada //3-caixa de recebidas (pendencias) - btnCaixaPendencias //4-caixa de recebidas (arquivadas) - btnCaixaArquivadas //5-Caixa de enviados (arquivadas) - btnCaixaEnviadosArquivados //6-Caixa de enviados - btnCaixaSaida; //7-Caixa de enviados (solicitando aprovao) - btnPendentesAprovacao switch (nlTipoPreenchimento) { case 6: //6-Caixa de enviados ngBotao = 6; ngTabela = 1; // TB_COMUNICACAO_INTERNA TbViewGeral2.setVisible(true); //----No ser mais visualizado TableView Cis aguardando aprovao TbViewGeral2.setVisible(false); lblAguardandoAprovacao.setVisible(false); // TbViewGeral2.setVisible(true); // TbViewGeral2.setLayoutX(1); // TbViewGeral2.setLayoutY(360); // TbViewGeral2.setPrefHeight(492); // lblAguardandoAprovacao.setVisible(true); ///---------------------------------------- TbViewGeral.setVisible(true); // TbViewGeral.setPrefHeight(328); TbViewGeral.setPrefHeight(656); if (1 == nlTipoPerfil) { //Perfil Gestor listaComunicacaoInterna = consulta.getlistaTbComunicacaoInternaEnviados(nlIdUnidadeOrganizacional); //listaCiDestinatario = consulta.getlistaCaixaEntrada(this.nIdUnidadeOrganizacional); } else { listaComunicacaoInterna = consulta .getlistaTbComunicacaoInternaEnviadosPerfil2(nlIdUnidadeOrganizacional); } break; case 5: //5-Caixa de enviados (arquivadas) ngBotao = 5; ngTabela = 1; // TB_COMUNICACAO_INTERNA TbViewGeral2.setVisible(false); TbViewGeral.setVisible(true); TbViewGeral.setPrefHeight(656); lblAguardandoAprovacao.setVisible(false); if (1 == nlTipoPerfil) { //Perfil Gestor listaComunicacaoInterna = consulta.getlistaCaixaSaidaArquivados(nlIdUnidadeOrganizacional); } else { listaComunicacaoInterna = consulta.getlistaCaixaSaidaArquivadosPerfil2(nlIdUnidadeOrganizacional); } break; } for (TbComunicacaoInterna l : listaComunicacaoInterna) { nIdCoin = l.getIdCoin(); strAssunto = l.getCoinAssunto(); strConteudo = l.getCoinConteudo(); nIdUsuario = l.getIdUsuario(); strUsuarioNomeCompleto = l.getUsuNomeCompleto(); nIdUO = l.getIdUnidadeOrganizacional(); strUODescricao = l.getUnorDescricao(); nIdUOGestor = l.getIdUoGestor(); bAutorizado = l.getCoinAutorizado(); nTipoCoin = l.getIdTipoCoin().getIdTipoCoin(); strApensamento = l.getCoinApensamento(); nSequencial = l.getCoinNumero(); bArquivadoUO = l.getCoinUoArquivado(); bArquivadoUOGestor = l.getCoinUoGestorArquivado(); dataCriacao = l.getCoinDataCriacao(); strDataCriacao = df.format(dataCriacao); dataAutorizado = l.getCoinDataAutorizado(); bCoinReadOnly = l.getCoinReadOnly(); bTemAnexos = l.getCoinTemAnexos(); nIdTabelaFonte = 1; nlIdCoinGenesis = l.getIdCoinGenesis(); nlIdUnorGenesis = l.getIdUnorGenesis(); nlCoinNumeroGenesis = l.getCoinNumeroGenesis(); strCoinHistoricoAnexos = l.getCoinHistoricoAnexos(); strUnorDescricaoGenesis = l.getUnorDescricaoGenesis(); strlAssinatura = l.getCoinAssinatura(); bCoinLido = false; bCancelado = l.getCoinCancelado(); //Construo da CI sequencial strAno = sdf.format(dataCriacao); strCiSequencial = strUnorDescricaoGenesis + "-" + String.format("%05d", nlCoinNumeroGenesis) + "-" + strAno; //---------------------------------------------------------- //Construo dos destinatarios strDestinatarios = ""; TbComunicacaoInterna nTbIdCoin = new TbComunicacaoInterna(nIdCoin); listaDestinatario = consultaDestinatario.getlistaDestinatarios(nTbIdCoin); for (TbCiDestinatario lista : listaDestinatario) { strDestinatarios = strDestinatarios.concat(lista.getUnorDescricaoDestinatario() + "; "); } //---------------------------------------------------------- strTituloCiporAprovar = "ENVIADAS"; obslistaTbCaixaSaida.add(new TbCIPorAprovar(nIdCoin, strAssunto, strConteudo, nIdUsuario, strUsuarioNomeCompleto, nIdUO, strUODescricao, nIdUOGestor, bAutorizado, nTipoCoin, strApensamento, nSequencial, bArquivadoUO, bArquivadoUOGestor, dataCriacao, strDataCriacao, dataAutorizado, bCoinReadOnly, bTemAnexos, nIdTabelaFonte, nlIdCoinGenesis, nlIdUnorGenesis, nlCoinNumeroGenesis, strCoinHistoricoAnexos, strUnorDescricaoGenesis, strlDescricaoUODestinatario, strlAssinatura, bCoinLido, bCancelado, strCiSequencial, strDestinatarios, strTituloCiporAprovar)); } // ClDataEnvio; ClUORemitente; ClAutorRemitente; ClAssunto; ClLido.setCellValueFactory(new PropertyValueFactory<TbCIPorAprovar, Boolean>("boolp_CoinLido")); ClIdCoin.setCellValueFactory(new PropertyValueFactory<TbCIPorAprovar, Integer>("intp_idCoin")); ClICiSequencial.setCellValueFactory(new PropertyValueFactory<TbCIPorAprovar, Integer>("strp_CiSequencial")); //ClUODestinatario.setCellValueFactory(new PropertyValueFactory<TbCIPorAprovar,String>("strp_DescricaoUODestinatario")); ClUODestinatario .setCellValueFactory(new PropertyValueFactory<TbCIPorAprovar, String>("strp_Destinatarios")); ClDataEnvio.setCellValueFactory(new PropertyValueFactory<TbCIPorAprovar, String>("strp_dataCriacao")); ClUORemitente .setCellValueFactory(new PropertyValueFactory<TbCIPorAprovar, String>("strp_DescricaoUORemitente")); ClAutorRemitente .setCellValueFactory(new PropertyValueFactory<TbCIPorAprovar, String>("strp_UsuarioNomeCompleto")); ClAssunto.setCellValueFactory(new PropertyValueFactory<TbCIPorAprovar, String>("strp_Assunto")); TbViewGeral.setItems(obslistaTbCaixaSaida); //TbViewGeral.refresh(); // Cdigo para mudar cor do registro ClLido.setCellFactory( new Callback<TableColumn<TbCIPorAprovar, Boolean>, TableCell<TbCIPorAprovar, Boolean>>() { @Override public TableCell<TbCIPorAprovar, Boolean> call( TableColumn<TbCIPorAprovar, Boolean> soCalledFriendBooleanTableColumn) { return new TableCell<TbCIPorAprovar, Boolean>() { @Override public void updateItem(final Boolean item, final boolean empty) { super.updateItem(item, empty); // clear any custom styles //this.getStyleClass().remove("willPayCell"); //this.getStyleClass().remove("wontPayCell"); this.getTableRow().getStyleClass().remove("willPayRow"); this.getTableRow().getStyleClass().remove("wontPayRow"); this.getTableRow().getStyleClass().remove("porAprovarRow"); this.getTableRow().getStyleClass().remove("caixaEnviadosRow"); // update the item and set a custom style if necessary if (item != null) { setText(item.toString()); //this.getStyleClass().add(item ? "willPayCell" : "wontPayCell"); this.getTableRow().getStyleClass() .add(item ? "willPayRow" : "caixaEnviadosRow"); } } }; } }); Platform.runLater(new Runnable() { @Override public void run() { TbViewGeral.requestFocus(); TbViewGeral.getSelectionModel().select(0); TbViewGeral.getFocusModel().focus(0); } }); TbViewGeral.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() { @Override public void changed(ObservableValue observableValue, Object oldValue, Object newValue) { //Check whether item is selected and set value of selected item to Label try { //TableView<TbCIPorAprovar> TbViewGeral = new TableView<>(); if (TbViewGeral.getSelectionModel().getSelectedItem() != null) { //TbCIPorAprovar tbCiPorAprovar = TbViewGeral.getSelectionModel().getSelectedItem(); //TbCIPorAprovar tbtbCiPorAprovar = new TbCIPorAprovar(); TbCIPorAprovar tbCiPorAprovar = TbViewGeral.getSelectionModel().getSelectedItem(); int nCISequencial = 0; int nlIdCI = 0; int nlIdTipoCoin = 0; boolean bTemAnexo = false; boolean blCancelado = false; String strCoinHistoricoAnexos = ""; String strAssunto = ""; String strDescricaoUO = ""; String strYear = ""; Date dataCriacao; SimpleDateFormat df = new SimpleDateFormat("yyyy"); nlIdCI = tbCiPorAprovar.getIntp_idCoin(); nlIdTipoCoin = tbCiPorAprovar.getIntp_idTipoCoin(); //strDescricaoUO = tbCiPorAprovar.getStrp_DescricaoUORemitente(); strDescricaoUO = tbCiPorAprovar.getStrp_UnorDescricaoGenesis(); if (4 == nlIdTipoCoin) { nCISequencial = tbCiPorAprovar.getIntp_CoinNumeroGenesis(); } else { nCISequencial = tbCiPorAprovar.getIntp_idCoinNumero(); } dataCriacao = tbCiPorAprovar.getDataCriacao(); bTemAnexo = tbCiPorAprovar.getBoolp_CoinTemAnexos(); blCancelado = tbCiPorAprovar.getBoolp_CoinCancelado(); strCoinHistoricoAnexos = tbCiPorAprovar.getStrp_CoinHistoricoAnexos(); strAssunto = tbCiPorAprovar.getStrp_Assunto(); strYear = df.format(dataCriacao); switch (nlTipoPreenchimento) { case 6: //6-Caixa de enviados btnAprovarCI.setDisable(true); btnEncaminharCI.setDisable(true); btnResponderCI.setDisable(true); btnArquivarCI.setDisable(false); btnDesarquivarCI.setDisable(true); btnHistoricoCI.setDisable(false); btnMarcarComoLido.setDisable(true); btnMarcarcomoPendencia.setDisable(true); //btnEditarCI.setVisible(false); btnEditarCI.setDisable(true); btnDesaprovarCI.setDisable(true); break; case 5: //5-Caixa de enviados (arquivadas) btnAprovarCI.setDisable(true); btnEncaminharCI.setDisable(true); btnResponderCI.setDisable(true); btnArquivarCI.setDisable(true); btnDesarquivarCI.setDisable(false); btnHistoricoCI.setDisable(false); btnMarcarComoLido.setDisable(true); btnMarcarcomoPendencia.setDisable(true); //btnEditarCI.setVisible(false); btnEditarCI.setDisable(true); btnDesaprovarCI.setDisable(true); break; } htmlEditorCI.setHtmlText(tbCiPorAprovar.getStrp_Conteudo()); if (strAssunto.equals("CI No foi autorizada pela Unidade Gestora")) { lblNumeroSequencialCI.setText("CI-DESAPROVADA"); } else { lblNumeroSequencialCI.setText( strDescricaoUO + "-" + String.format("%05d", nCISequencial) + "-" + strYear); } //lblNumeroSequencialCI.setText(strDescricaoUO + "-" + String.format("%05d",nCISequencial)+"-" + strYear); if ((bTemAnexo) || (strCoinHistoricoAnexos.length() > 0)) { PreencherTxtFAnexos(nlIdCI, strCoinHistoricoAnexos); } else { lviewAnexos.getItems().clear(); txtFAnexos.getChildren().clear(); } } } catch (Exception e) { e.printStackTrace(); //labelMessage.setText("Error on get row Data"); Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Erro"); alert.setHeaderText("Erro na carga da TableView"); alert.setContentText(e.getMessage()); alert.showAndWait(); } } }); if (blPreencherTableView2) { try { EnviadosPendentesAprovacao(); } catch (IOException ex) { System.out.println("Erro ao preencher tabela Enviados para aprovao: " + ex.getMessage()); } } } private void EnviadosPendentesAprovacao() throws IOException { // lblCaixa.setText(""); // lblCaixa.setText("Caixa de enviados (solicitando aprovao)"); setBotoesMainWindow(nTipoPerfil); btnEncaminharCI.setDisable(true); btnResponderCI.setDisable(true); btnDesarquivarCI.setDisable(true); btnHistoricoCI.setDisable(true); //btnEditarCI.setVisible(true); btnMarcarcomoPendencia.setDisable(true); if ((this.nIdUnidadeOrganizacional == this.nIdUOGestor) && (this.nTipoPerfil == 1)) { btnAprovarCI.setDisable(false); btnEditarCI.setDisable(false); btnDesaprovarCI.setDisable(false); } else { btnAprovarCI.setDisable(true); btnEditarCI.setDisable(true); btnDesaprovarCI.setDisable(true); } //clearTelas(); ngTabela = 1; // TB_COMUNICACAO_INTERNA //ngBotao = 7; //Tipo de perfil int nlTipoPerfil = 0; nlTipoPerfil = this.nTipoPerfil; //List<TbComunicacaoInterna> listaCiSemAprovar = new ArrayList<>(); int nIdCoin = 0; int nSequencial = 0; String strAssunto = ""; String strConteudo = ""; int nIdUsuario = 0; String strUsuarioNomeCompleto = ""; String strApensamento = ""; int nIdUO = 0; int nIdUOGestor = 0; int nTipoCoin = 0; int nIdTabelaFonte = 0; String strUODescricao = ""; Date dataCriacao; Date dataAutorizado; DateFormat df = new SimpleDateFormat("dd-MM-yyyy HH:mm"); String strDataCriacao = ""; boolean bTemAnexos = false; boolean bAutorizado = false; boolean bGestorArquivado = false; boolean bArquivadoUO = false; boolean bArquivadoUOGestor = false; boolean bCoinReadOnly = false; //Variaveis utilizadas nas CIs encaminhadas para no perder nmero de CI //criada e quem foi o Remitente inicial (serve para saber quais anexos acompanham o despacho tambm) int nlIdCoinGenesis = 0; int nlIdUnorGenesis = 0; int nlCoinNumeroGenesis = 0; String strCoinHistoricoAnexos = ""; String strUnorDescricaoGenesis = ""; //------------------------------------------- //Variavel para construo da Ci Sequencial String strCiSequencial = ""; String strAno = ""; SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); //---------------------------------------------------- String strlDescricaoUODestinatario = ""; //Assinatura MD5 String strlAssinatura = ""; boolean bCoinLido = false; boolean bCancelado = false; ObservableList<TbCIPorAprovar> obslistaTbCIPorAprovar2; obslistaTbCIPorAprovar2 = FXCollections.observableArrayList(); MainWindowQueries consulta2 = new MainWindowQueries(); List<TbComunicacaoInterna> listaCiSemAprovar2 = new ArrayList<TbComunicacaoInterna>(); //Para construir campo destinatario MainWindowQueries consultaDestinatario = new MainWindowQueries(); List<TbCiDestinatario> listaDestinatario = new ArrayList<TbCiDestinatario>(); String strDestinatarios = ""; //---------------------------------------------------------------------- String strTituloCiporAprovar = ""; //Deve-se mostrar as Cis para aprovao s para usurio que faz parte da UO Gestora if (this.nIdUOGestor == this.nIdUnidadeOrganizacional) { if (1 == nlTipoPerfil) { //Perfil Gestor listaCiSemAprovar2 = consulta2.getlistaTbComunicacaoInternaPorAprovar(this.nIdUOGestor); } else { listaCiSemAprovar2 = consulta2.getlistaTbComunicacaoInternaPorAprovarPerfil2(this.nIdUOGestor); } for (TbComunicacaoInterna l : listaCiSemAprovar2) { try { nIdCoin = l.getIdCoin(); strAssunto = l.getCoinAssunto(); strConteudo = l.getCoinConteudo(); nIdUsuario = l.getIdUsuario(); strUsuarioNomeCompleto = l.getUsuNomeCompleto(); nIdUO = l.getIdUnidadeOrganizacional(); strUODescricao = l.getUnorDescricao(); nIdUOGestor = l.getIdUoGestor(); bAutorizado = l.getCoinAutorizado(); nTipoCoin = l.getIdTipoCoin().getIdTipoCoin(); strApensamento = l.getCoinApensamento(); nSequencial = l.getCoinNumero(); bArquivadoUO = l.getCoinUoArquivado(); bArquivadoUOGestor = l.getCoinUoGestorArquivado(); dataCriacao = l.getCoinDataCriacao(); strDataCriacao = df.format(dataCriacao); dataAutorizado = l.getCoinDataAutorizado(); bCoinReadOnly = l.getCoinReadOnly(); bTemAnexos = l.getCoinTemAnexos(); nIdTabelaFonte = 1; nlIdCoinGenesis = l.getIdCoinGenesis(); nlIdUnorGenesis = l.getIdUnorGenesis(); nlCoinNumeroGenesis = l.getCoinNumeroGenesis(); strCoinHistoricoAnexos = l.getCoinHistoricoAnexos(); strUnorDescricaoGenesis = l.getUnorDescricaoGenesis(); strlAssinatura = l.getCoinAssinatura(); bCancelado = l.getCoinCancelado(); //Construo da CI sequencial strAno = sdf.format(dataCriacao); strCiSequencial = strUnorDescricaoGenesis + "-" + String.format("%05d", nlCoinNumeroGenesis) + "-" + strAno; //---------------------------------------------------------- //Construo dos destinatarios strDestinatarios = ""; TbComunicacaoInterna nTbIdCoin = new TbComunicacaoInterna(nIdCoin); listaDestinatario = consultaDestinatario.getlistaDestinatariosNaoAutorizados(nTbIdCoin); for (TbCiDestinatario lista : listaDestinatario) { strDestinatarios = strDestinatarios.concat(lista.getUnorDescricaoDestinatario() + "; "); } //---------------------------------------------------------- strTituloCiporAprovar = "ENVIADAS"; // obslistaTbCIPorAprovar.add(new TbCIPorAprovar(nIdCoin,strAssunto,strConteudo,nIdUsuario,strUsuarioNomeCompleto, // nIdUO,strUODescricao,nSequencial,dataCriacao,strDataCriacao,bAutorizado,bTemAnexos,1)); obslistaTbCIPorAprovar2.add(new TbCIPorAprovar(nIdCoin, strAssunto, strConteudo, nIdUsuario, strUsuarioNomeCompleto, nIdUO, strUODescricao, nIdUOGestor, bAutorizado, nTipoCoin, strApensamento, nSequencial, bArquivadoUO, bArquivadoUOGestor, dataCriacao, strDataCriacao, dataAutorizado, bCoinReadOnly, bTemAnexos, nIdTabelaFonte, nlIdCoinGenesis, nlIdUnorGenesis, nlCoinNumeroGenesis, strCoinHistoricoAnexos, strUnorDescricaoGenesis, strlDescricaoUODestinatario, strlAssinatura, bCoinLido, bCancelado, strCiSequencial, strDestinatarios, strTituloCiporAprovar)); } catch (Exception e) { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Error"); alert.setHeaderText("ObservableList Error"); alert.setContentText(e.toString()); alert.showAndWait(); } } // ClDataEnvio; ClUORemitente; ClAutorRemitente; ClAssunto; ClAprovado.setCellValueFactory(new PropertyValueFactory<TbCIPorAprovar, Boolean>("boolp_Autorizado")); ClIdCoin2.setCellValueFactory(new PropertyValueFactory<TbCIPorAprovar, Integer>("intp_idCoin")); ClICiSequencial2 .setCellValueFactory(new PropertyValueFactory<TbCIPorAprovar, Integer>("strp_CiSequencial")); ClUODestinatario2.setCellValueFactory( new PropertyValueFactory<TbCIPorAprovar, String>("strp_DescricaoUODestinatario")); ClDataEnvio2.setCellValueFactory(new PropertyValueFactory<TbCIPorAprovar, String>("strp_dataCriacao")); ClUORemitente2.setCellValueFactory( new PropertyValueFactory<TbCIPorAprovar, String>("strp_DescricaoUORemitente")); ClAutorRemitente2.setCellValueFactory( new PropertyValueFactory<TbCIPorAprovar, String>("strp_UsuarioNomeCompleto")); ClAssunto2.setCellValueFactory(new PropertyValueFactory<TbCIPorAprovar, String>("strp_Assunto")); TbViewGeral2.setItems(obslistaTbCIPorAprovar2); //TbViewGeral ClAprovado.setCellFactory( new Callback<TableColumn<TbCIPorAprovar, Boolean>, TableCell<TbCIPorAprovar, Boolean>>() { @Override public TableCell<TbCIPorAprovar, Boolean> call( TableColumn<TbCIPorAprovar, Boolean> soCalledFriendBooleanTableColumn) { return new TableCell<TbCIPorAprovar, Boolean>() { @Override public void updateItem(final Boolean item, final boolean empty) { super.updateItem(item, empty); // clear any custom styles //this.getStyleClass().remove("willPayCell"); //this.getStyleClass().remove("wontPayCell"); this.getTableRow().getStyleClass().remove("willPayRow"); this.getTableRow().getStyleClass().remove("wontPayRow"); this.getTableRow().getStyleClass().remove("porAprovarRow"); // update the item and set a custom style if necessary if (item != null) { setText(item.toString()); //this.getStyleClass().add(item ? "willPayCell" : "wontPayCell"); this.getTableRow().getStyleClass() .add(item ? "wontPayRow" : "porAprovarRow"); } } }; } }); TbViewGeral2.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() { @Override public void changed(ObservableValue observableValue, Object oldValue, Object newValue) { //Check whether item is selected and set value of selected item to Label try { //TableView<TbCIPorAprovar> TbViewGeral = new TableView<>(); if (TbViewGeral2.getSelectionModel().getSelectedItem() != null) { //TbCIPorAprovar tbCiPorAprovar = TbViewGeral.getSelectionModel().getSelectedItem(); //TbCIPorAprovar tbtbCiPorAprovar = new TbCIPorAprovar(); TbCIPorAprovar tbCiPorAprovar = TbViewGeral2.getSelectionModel().getSelectedItem(); int nCISequencial = 0; int nlIdCI = 0; boolean bTemAnexo = false; boolean blCancelado = false; String strCoinHistoricoAnexos = ""; String strAssunto = ""; String strDescricaoUO = ""; String strYear = ""; Date dataCriacao; SimpleDateFormat df = new SimpleDateFormat("yyyy"); nlIdCI = tbCiPorAprovar.getIntp_idCoin(); //strDescricaoUO = tbCiPorAprovar.getStrp_DescricaoUORemitente(); strDescricaoUO = tbCiPorAprovar.getStrp_UnorDescricaoGenesis(); nCISequencial = tbCiPorAprovar.getIntp_idCoinNumero(); dataCriacao = tbCiPorAprovar.getDataCriacao(); bTemAnexo = tbCiPorAprovar.getBoolp_CoinTemAnexos(); blCancelado = tbCiPorAprovar.getBoolp_CoinCancelado(); strAssunto = tbCiPorAprovar.getStrp_Assunto(); strCoinHistoricoAnexos = tbCiPorAprovar.getStrp_CoinHistoricoAnexos(); strYear = df.format(dataCriacao); //Verificamos se Gestor ou no int nlIdUnidadeOrganizacional = Integer.parseInt(lblIdUO.getText()); int nlIdUOGestor = Integer.parseInt(lblUOGestora.getText()); int nlTipoPerfil = Integer.parseInt(lblIdPerfil.getText()); if ((nlIdUnidadeOrganizacional == nlIdUOGestor) && (nlTipoPerfil == 1)) { btnAprovarCI.setDisable(false); btnEditarCI.setDisable(false); btnDesaprovarCI.setDisable(false); } else { btnAprovarCI.setDisable(true); btnEditarCI.setDisable(true); btnDesaprovarCI.setDisable(true); } //btnAprovarCI.setDisable(false); btnEncaminharCI.setDisable(true); btnResponderCI.setDisable(true); btnArquivarCI.setDisable(true); btnDesarquivarCI.setDisable(true); btnHistoricoCI.setDisable(true); btnMarcarComoLido.setText("Marcar como Lido"); btnMarcarComoLido.setDisable(true); btnMarcarcomoPendencia.setDisable(true); //btnEditarCI.setVisible(true); htmlEditorCI.setHtmlText(tbCiPorAprovar.getStrp_Conteudo()); if (strAssunto.equals("CI No foi autorizada pela Unidade Gestora")) { lblNumeroSequencialCI.setText("CI-DESAPROVADA"); } else { lblNumeroSequencialCI.setText(strDescricaoUO + "-" + String.format("%05d", nCISequencial) + "-" + strYear); } //lblNumeroSequencialCI.setText(strDescricaoUO + "-" + String.format("%05d",nCISequencial)+"-" + strYear); if ((bTemAnexo) || (strCoinHistoricoAnexos.length() > 0)) { PreencherTxtFAnexos(nlIdCI, strCoinHistoricoAnexos); } else { lviewAnexos.getItems().clear(); txtFAnexos.getChildren().clear(); } } } catch (Exception e) { e.printStackTrace(); //labelMessage.setText("Error on get row Data"); Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Erro"); alert.setHeaderText("Erro na carga da TableView"); alert.setContentText(e.getMessage()); alert.showAndWait(); } } }); } } @FXML private void handleBtnCaixaPendencias(ActionEvent event) throws IOException { lblCaixa.setText(""); lblCaixa.setText("Caixa de recebidas (pendncias)"); lblRecordCount.setText(""); setBotoesMainWindow(nTipoPerfil); btnDesarquivarCI.setDisable(true); btnHistoricoCI.setDisable(false); btnEditarCI.setDisable(true); btnDesaprovarCI.setDisable(true); btnMarcarcomoPendencia.setDisable(true); clearTelas(); boolean blPreencherTableView2 = false; PreencherCaixaEntrada(3, blPreencherTableView2); } @FXML private void handleBtnCaixaArquivadas(ActionEvent event) throws IOException { lblCaixa.setText(""); lblCaixa.setText("Caixa de recebidas (arquivadas)"); lblRecordCount.setText(""); setBotoesMainWindow(nTipoPerfil); clearTelas(); btnArquivarCI.setDisable(true); btnAprovarCI.setDisable(true); btnEncaminharCI.setDisable(true); btnResponderCI.setDisable(true); boolean blPreencherTableView2 = false; PreencherCaixaEntrada(4, blPreencherTableView2); } @FXML private void handleBtnMarcarcomoLido(ActionEvent event) throws IOException { if (null == TbViewGeral.getSelectionModel().getSelectedItem()) { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Erro"); alert.setHeaderText("CI no foi selecionado."); alert.setContentText("Favor selecionar uma CI da tabela"); alert.showAndWait(); } else { int nIdCI = 0; int nBotao = 0; int nTabela = 0; boolean blCILido = false; String strLabel = ""; strLabel = btnMarcarComoLido.getText(); blCILido = ((strLabel == "Marcar como Lido") ? true : false); nBotao = this.ngBotao; nTabela = this.ngTabela; // Aprovamos CI //Tabela a ser utilizada para atualizar status das CIs (aprovadas, arquivadas, desarquivadas) // 0 ==> Sem tabela definida // 1 ==> TB_COMUNICACAO_INTERNA // 2 ==> TB_CI_DESTINATARIO switch (nTabela) { case 1: // 1 ==> TB_COMUNICACAO_INTERNA nIdCI = TbViewGeral.getSelectionModel().getSelectedItem().getIntp_idCoin(); MarcarComoLido(nIdCI, 1, blCILido); //TableViewRefresh(nBotao); break; case 2: // 2 ==> TB_CI_DESTINATARIO nIdCI = TbViewGeral.getSelectionModel().getSelectedItem().getIntp_idCoinDestinatario(); MarcarComoLido(nIdCI, 2, blCILido); //TableViewRefresh(nBotao); break; default: break; } } } private void MarcarComoLido(int nlIdCI, int nlTabela, boolean blCILido) { Alert alert; boolean bUpdate = false; boolean bSolicitaEnvioMsgCiLida = false; int nlButtonSelected = 0; nlButtonSelected = ngBotao; MainWindowQueries consulta; consulta = new MainWindowQueries(); //Tabela a ser utilizada para atualizar status das CIs (aprovadas, arquivadas, desarquivadas) // 0 ==> Sem tabela definida // 1 ==> TB_COMUNICACAO_INTERNA // 2 ==> TB_CI_DESTINATARIO switch (nlTabela) { case 1: //Tabela TB_COMUNICACAO_INTERNA no possui campo para setear // registro como marcar como lido ou no // try{ // bUpdate = consulta.ArquivarCIEnviada(nlIdCI, nlButtonSelected); // } catch (Exception e){ // e.printStackTrace(); // Alert alert = new Alert(Alert.AlertType.ERROR); // alert.setTitle("CI - Marcar como pendncia"); // alert.setHeaderText("Tabela TB_COMUNICACAO_INTERNA"); // alert.setContentText(e.getMessage()); // alert.showAndWait(); // } break; case 2: //Tabela TB_CI_DESTINATARIO try { bUpdate = consulta.MarcarComoLido(nlIdCI, nlButtonSelected, blCILido); if (blCILido) { consulta = new MainWindowQueries(); bSolicitaEnvioMsgCiLida = consulta.SolicitaConfirmacaoLeitura(nlIdCI); if (bSolicitaEnvioMsgCiLida) { alert = new Alert(AlertType.CONFIRMATION); alert.setTitle("Confirmar envio de menssagem"); alert.setHeaderText("O remitente solicitou confirmao de leitura da CI"); alert.setContentText("Deseja enviar menssagem confirmando que a CI foi Lida?"); Optional<ButtonType> result = alert.showAndWait(); if (result.get() == ButtonType.OK) { EnviarMsgCiLida(nlIdCI); } else { //Do nothing } } } } catch (Exception e) { alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("CI - Marcar como Lido/no Lido"); alert.setHeaderText("Tabela TB_CI_DESTINATARIO"); alert.setContentText(e.getMessage()); alert.showAndWait(); } break; default: break; } if (bUpdate) { // System.out.println("IdUsuario = " + nIdUserUO); // System.out.println("Update deve acontecer"); alert = new Alert(Alert.AlertType.INFORMATION); alert.setTitle("Informao"); alert.setHeaderText(null); alert.setContentText("CI foi marcada com sucesso."); alert.showAndWait(); //Valores dos botes //1-caixa de recebidas (solicitando aprovao) - btnCaixaEntradaSolicitandoAprovacao //2-caixa de recebidas - btnCaixaEntrada //3-caixa de recebidas (pendencias) - btnCaixaPendencias //4-caixa de recebidas (arquivadas) - btnCaixaArquivadas //5-Caixa de enviados (arquivadas) - btnCaixaEnviadosArquivados //6-Caixa de enviados - btnCaixaSaida; //7-Caixa de enviados (solicitando aprovao) - btnPendentesAprovacao //Refresh da TableView switch (nlButtonSelected) { case 1: btnCaixaEntradaSolicitandoAprovacao.fire(); break; case 2: btnCaixaEntrada.fire(); break; case 3: btnCaixaPendencias.fire(); break; case 4: btnCaixaArquivadas.fire(); break; case 5: btnCaixaEnviadosArquivados.fire(); break; case 6: btnCaixaSaida.fire(); break; case 7: btnPendentesAprovacao.fire(); break; default: break; } } else { alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Erro"); alert.setHeaderText("No foi possvel marcar como Lido/no Lido"); alert.setContentText("Favor contatar o Administrador do sistema"); alert.showAndWait(); } } @FXML private void handleBtnCaixaEnviadasArquivadas(ActionEvent event) throws IOException { lblCaixa.setText(""); lblCaixa.setText("Caixa de enviados (arquivadas)"); lblRecordCount.setText(""); setBotoesMainWindow(nTipoPerfil); clearTelas(); btnArquivarCI.setDisable(true); btnAprovarCI.setDisable(true); btnEncaminharCI.setDisable(true); btnResponderCI.setDisable(true); ngTabela = 1; // TB_COMUNICACAO_INTERNA ngBotao = 5; // Alert alert = new Alert(Alert.AlertType.INFORMATION); // alert.setTitle("Informao"); // alert.setHeaderText("Caixa de enviados (arquivar)"); // alert.setContentText("Funcionalidade ser disponibilizada em breve"); // alert.showAndWait(); //PreencherCaixaEntrada(5); int nlTipoPreenchimento = 0; nlTipoPreenchimento = this.ngBotao; boolean blPreencherTableView2 = false; PreencherCaixaSaida(nlTipoPreenchimento, blPreencherTableView2); } private void clearTelas() { int nlTblViewGeralSize = 0; //Devemos fazer refresh da tableView nlTblViewGeralSize = TbViewGeral.getItems().size(); if (nlTblViewGeralSize > 0) { TbViewGeral.getItems().clear(); } htmlEditorCI.setHtmlText(""); lviewAnexos.getItems().clear(); txtFAnexos.getChildren().clear(); } private void clearTelasAguardandoAprovacao() { int nlTblViewGeralSize = 0; //Devemos fazer refresh da tableView nlTblViewGeralSize = TbViewGeral2.getItems().size(); if (nlTblViewGeralSize > 0) { TbViewGeral2.getItems().clear(); } htmlEditorCI.setHtmlText(""); lviewAnexos.getItems().clear(); txtFAnexos.getChildren().clear(); } private void PreencherCaixaEntrada(int nlTipoPreenchimento, boolean blPreencherTableView2) { String strTituloCiporAprovar = ""; int nlIdCoinDestinatario = 0; TbComunicacaoInterna nlIdCoin; int nlIdUsuarioRemitente = 0; String strUsuarioNomeCompleto = ""; int nlIdUORemitente = 0; String strDescricaoUORemitente = ""; int nlIdUODestinatario = 0; String strDescricaoUODestinatario = ""; int nlIdUOGestorDestinatario = 0; String strDescricaoUOGestorDestinatario = ""; boolean bAutorizadoPeloGestor = false; boolean bArquivadoPeloUODestinatario = false; boolean bArquivadoPeloUOGestor = false; String strAssunto = ""; String strConteudo = ""; boolean bPendentePeloUODestinatario = false; Date dataAutorizadoPeloGestorDestinatario; boolean bLidoPeloUODestinatario = false; Date dataCriacao; TbTipoEnvio nlIdTipoEnvio; //1-Enviado "Para; 2-Enviado "Com cpia"; 3-Enviado "Com cpia oculta" //TbTipoComunicacoInterna tbTipoCoin; int nlTipoCoin = 0; int nlIdCoinNumero = 0; //Nmero sequencial das CIs para cada UO boolean bReadOnlyUODestinatario = false; boolean bCoinTemAnexos = false; boolean bAutorizadoPeloGestorRemitente = false; String strDataCriacao = ""; //A variavel intp_idTabelaFonte foi criada para saber qual a fonte de dados //por tanto, no existe fisicamente mapeado para tabela nenhuma int nlIdTabelaFonte = 2; //Variaveis utilizadas nas CIs encaminhadas para no perder nmero de CI //criada e quem foi o Remitente inicial (serve para saber quais anexos acompanham o despacho tambm) int nlIdCoinGenesis = 0; int nlIdUnorGenesis = 0; int nlCoinNumeroGenesis = 0; String strCoinHistoricoAnexos = ""; String strUnorDescricaoGenesis = ""; //Variavel para construo da Ci Sequencial String strCiSequencial = ""; String strAno = ""; SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); //Variaveis de apoio DateFormat df = new SimpleDateFormat("dd-MM-yyyy HH:mm"); int nIdCoin = 0; int nIdTipoEnvio = 0; //Unidade Organizacional utilizado nas queries int nlIdUnidadeOrganizacional = 0; nlIdUnidadeOrganizacional = this.nIdUnidadeOrganizacional; //Tipo de perfil int nlTipoPerfil = 0; nlTipoPerfil = this.nTipoPerfil; //Assinatura MD5 String strlAssinatura = ""; //CI Lido ou no boolean bCoinLido = false; boolean bCancelado = false; //Iniciamos a criao da TableView List<TbCiDestinatario> listaCiDestinatario = new ArrayList<TbCiDestinatario>(); ObservableList<TbCIPorAprovar> obslistaTbCaixaEntrada = FXCollections.observableArrayList(); List<TbCiDestinatario> listaCiDestinatario2 = new ArrayList<TbCiDestinatario>(); ObservableList<TbCIPorAprovar> obslistaTbCaixaEntrada2 = FXCollections.observableArrayList(); MainWindowQueries consulta; consulta = new MainWindowQueries(); MainWindowQueries consulta2; consulta2 = new MainWindowQueries(); //Criamos a consulta a depender da variavel nlTipoPreenchimento //e tambm seteamos a visibilidade dos botes switch (nlTipoPreenchimento) { case 1: //caixa de recebidas (solicitando aprovao) ngBotao = 1; ngTabela = 2; // TB_CI_DESTINATARIO btnAprovarCI.setDisable(false); if (1 == nlTipoPerfil) { //Perfil Gestor //listaCiDestinatario2 = consulta2.getlistaCaixaEntradaSolicitandoAprovacao(this.nIdUnidadeOrganizacional); listaCiDestinatario2 = consulta2 .getlistaCaixaEntradaSolicitandoAprovacao(nlIdUnidadeOrganizacional); } else { //listaCiDestinatario2 = consulta2.getlistaCaixaEntradaSolicitandoAprovacaoPerfil2(this.nIdUnidadeOrganizacional); listaCiDestinatario2 = consulta2 .getlistaCaixaEntradaSolicitandoAprovacaoPerfil2(nlIdUnidadeOrganizacional); } break; case 2: //caixa de recebidas ngBotao = 2; ngTabela = 2; // TB_CI_DESTINATARIO btnAprovarCI.setDisable(true); //----No ser mais visualizado TableView Cis aguardando aprovao TbViewGeral2.setVisible(false); lblAguardandoAprovacao.setVisible(false); // TbViewGeral2.setVisible(true); // TbViewGeral2.setLayoutX(1); // TbViewGeral2.setLayoutY(360); // TbViewGeral2.setPrefHeight(492); // lblAguardandoAprovacao.setVisible(true); //--------------------------------------- TbViewGeral.setVisible(true); // TbViewGeral.setPrefHeight(328); TbViewGeral.setPrefHeight(656); if (1 == nlTipoPerfil) { //Perfil Gestor //TableView1 listaCiDestinatario = consulta.getlistaCaixaEntrada(nlIdUnidadeOrganizacional); //TableView2 listaCiDestinatario2 = consulta2 .getlistaCaixaEntradaSolicitandoAprovacao(nlIdUnidadeOrganizacional); } else { //TableView1 listaCiDestinatario = consulta.getlistaCaixaEntradaPerfil2(nlIdUnidadeOrganizacional); //TableView2 listaCiDestinatario2 = consulta2 .getlistaCaixaEntradaSolicitandoAprovacaoPerfil2(nlIdUnidadeOrganizacional); } break; case 3: //caixa de recebidas (pendencias) ngBotao = 3; ngTabela = 2; // TB_CI_DESTINATARIO btnMarcarcomoPendencia.setDisable(true); TbViewGeral2.setVisible(false); lblAguardandoAprovacao.setVisible(false); TbViewGeral.setVisible(true); TbViewGeral.setPrefHeight(656); //TbViewGeral.setMaxHeight(656); if (1 == nlTipoPerfil) { //Perfil Gestor listaCiDestinatario = consulta.getlistaCaixaEntradaPendencias(nlIdUnidadeOrganizacional); } else { listaCiDestinatario = consulta.getlistaCaixaEntradaPendenciasPerfil2(nlIdUnidadeOrganizacional); } break; case 4: //caixa de recebidas (arquivadas) ngBotao = 4; ngTabela = 2; // TB_CI_DESTINATARIO TbViewGeral2.setVisible(false); lblAguardandoAprovacao.setVisible(false); btnAprovarCI.setDisable(true); TbViewGeral.setVisible(true); TbViewGeral.setPrefHeight(656); // if ((this.nIdUnidadeOrganizacional == this.nIdUOGestor) &&(this.nTipoPerfil == 1)){ // listaCiDestinatario = consulta.getlistaGestorCaixaEntradaArquivados(this.nIdUnidadeOrganizacional); // } else { if (1 == nlTipoPerfil) { //Perfil Gestor listaCiDestinatario = consulta.getlistaCaixaEntradaArquivados(nlIdUnidadeOrganizacional); } else { listaCiDestinatario = consulta.getlistaCaixaEntradaArquivadosPerfil2(nlIdUnidadeOrganizacional); } // } break; default: break; } if ((2 == nlTipoPreenchimento) || (3 == nlTipoPreenchimento) || (4 == nlTipoPreenchimento)) { for (TbCiDestinatario l : listaCiDestinatario) { nlIdCoinDestinatario = l.getIdCoinDestinatario(); nlIdCoin = l.getIdCoin(); nIdCoin = nlIdCoin.getIdCoin(); nlIdUsuarioRemitente = l.getIdUsuarioRemitente(); strUsuarioNomeCompleto = l.getUsuNomeCompletoRemitente(); nlIdUORemitente = l.getIdUoRemitente(); strDescricaoUORemitente = l.getInorDescricaoRemitente(); nlIdUODestinatario = l.getIdUoDestinatario(); strDescricaoUODestinatario = l.getUnorDescricaoDestinatario(); nlIdUOGestorDestinatario = l.getIdUoGestorDestinatario(); strDescricaoUOGestorDestinatario = l.getUnorDescricaoGestorDestinatario(); bAutorizadoPeloGestor = l.getCoinDestinatarioGestorAutorizado(); bArquivadoPeloUODestinatario = l.getCoinDestinatarioUoArquivado(); bArquivadoPeloUOGestor = l.getCoinDestinatarioUoGestorArquivado(); strAssunto = l.getCoinDestinatarioAssunto(); strConteudo = l.getCoinDestinatarioConteudo(); bPendentePeloUODestinatario = l.getCoinDestinatarioPendente(); dataAutorizadoPeloGestorDestinatario = l.getCoinDestinatarioGestorDataAutorizado(); bLidoPeloUODestinatario = l.getCoinDestinatarioLido(); dataCriacao = l.getCoinDestinatarioDataCriacao(); nlIdTipoEnvio = l.getIdTipoEnvio(); //1-Enviado "Para; 2-Enviado "Com cpia"; 3-Enviado "Com cpia oculta" nIdTipoEnvio = nlIdTipoEnvio.getIdTipoEnvio(); nlIdCoinNumero = l.getCoinDestinatarioNumero(); //Nmero sequencial das CIs para cada UO bReadOnlyUODestinatario = l.getCoinDestinatarioReadOnly(); bCoinTemAnexos = l.getCoinDestinatarioTemAnexos(); bAutorizadoPeloGestorRemitente = l.getCoinRemitenteGestorAutorizado(); nlIdCoinGenesis = l.getIdCoinGenesis(); nlIdUnorGenesis = l.getIdUnorGenesis(); nlCoinNumeroGenesis = l.getCoinNumeroGenesis(); strCoinHistoricoAnexos = l.getCoinHistoricoAnexos(); strUnorDescricaoGenesis = l.getUnorDescricaoGenesis(); nlTipoCoin = l.getIdTipoCoin().getIdTipoCoin(); strlAssinatura = l.getCoinAssinatura(); bCoinLido = l.getCoinDestinatarioLido(); bCancelado = l.getCoinCancelado(); strDataCriacao = df.format(dataCriacao); //Construo da CI sequencial strAno = sdf.format(dataCriacao); strCiSequencial = strUnorDescricaoGenesis + "-" + String.format("%05d", nlCoinNumeroGenesis) + "-" + strAno; //---------------------------------------------------------- strTituloCiporAprovar = "RECEBIDAS"; obslistaTbCaixaEntrada.add(new TbCIPorAprovar(nlIdCoinDestinatario, nIdCoin, nlIdUsuarioRemitente, strUsuarioNomeCompleto, nlIdUORemitente, strDescricaoUORemitente, nlIdUODestinatario, strDescricaoUODestinatario, nlIdUOGestorDestinatario, strDescricaoUOGestorDestinatario, bAutorizadoPeloGestor, bArquivadoPeloUODestinatario, bArquivadoPeloUOGestor, strAssunto, strConteudo, bPendentePeloUODestinatario, dataAutorizadoPeloGestorDestinatario, bLidoPeloUODestinatario, dataCriacao, nIdTipoEnvio, nlIdCoinNumero, bReadOnlyUODestinatario, bCoinTemAnexos, bAutorizadoPeloGestorRemitente, strDataCriacao, nlIdTabelaFonte, nlIdCoinGenesis, nlIdUnorGenesis, nlCoinNumeroGenesis, strCoinHistoricoAnexos, strUnorDescricaoGenesis, nlTipoCoin, strlAssinatura, bCoinLido, bCancelado, strCiSequencial, strTituloCiporAprovar)); System.out.println(); } ClLido.setCellValueFactory(new PropertyValueFactory<TbCIPorAprovar, Boolean>("boolp_CoinLido")); ClIdCoin.setCellValueFactory(new PropertyValueFactory<TbCIPorAprovar, Integer>("intp_idCoin")); ClICiSequencial .setCellValueFactory(new PropertyValueFactory<TbCIPorAprovar, Integer>("strp_CiSequencial")); ClUODestinatario.setCellValueFactory( new PropertyValueFactory<TbCIPorAprovar, String>("strp_DescricaoUODestinatario")); ClDataEnvio.setCellValueFactory(new PropertyValueFactory<TbCIPorAprovar, String>("strp_dataCriacao")); ClUORemitente.setCellValueFactory( new PropertyValueFactory<TbCIPorAprovar, String>("strp_DescricaoUORemitente")); ClAutorRemitente.setCellValueFactory( new PropertyValueFactory<TbCIPorAprovar, String>("strp_UsuarioNomeCompleto")); ClAssunto.setCellValueFactory(new PropertyValueFactory<TbCIPorAprovar, String>("strp_Assunto")); TbViewGeral.setItems(obslistaTbCaixaEntrada); // TbViewGeral.setFixedCellSize(25); // TbViewGeral.prefHeightProperty().bind(TbViewGeral.fixedCellSizeProperty().multiply(Bindings.size(TbViewGeral.getItems()).add(1.01))); // TbViewGeral.minHeightProperty().bind(TbViewGeral.prefHeightProperty()); // TbViewGeral.maxHeightProperty().bind(TbViewGeral.prefHeightProperty()); // Cdigo para mudar cor do registro ClLido.setCellFactory( new Callback<TableColumn<TbCIPorAprovar, Boolean>, TableCell<TbCIPorAprovar, Boolean>>() { @Override public TableCell<TbCIPorAprovar, Boolean> call( TableColumn<TbCIPorAprovar, Boolean> soCalledFriendBooleanTableColumn) { return new TableCell<TbCIPorAprovar, Boolean>() { @Override public void updateItem(final Boolean item, final boolean empty) { super.updateItem(item, empty); // clear any custom styles //this.getStyleClass().remove("willPayCell"); //this.getStyleClass().remove("wontPayCell"); this.getTableRow().getStyleClass().remove("willPayRow"); this.getTableRow().getStyleClass().remove("wontPayRow"); this.getTableRow().getStyleClass().remove("porAprovarRow"); this.getTableRow().getStyleClass().remove("caixaEnviadosRow"); // update the item and set a custom style if necessary if (item != null) { setText(item.toString()); //this.getStyleClass().add(item ? "willPayCell" : "wontPayCell"); if (4 == nlTipoPreenchimento) { this.getTableRow().getStyleClass() .add(item ? "willPayRow" : "caixaEnviadosRow"); } else { this.getTableRow().getStyleClass() .add(item ? "willPayRow" : "wontPayRow"); } } } }; } }); Platform.runLater(new Runnable() { @Override public void run() { TbViewGeral.requestFocus(); TbViewGeral.getSelectionModel().select(0); TbViewGeral.getFocusModel().focus(0); } }); // TbViewGeral.requestFocus(); // Get the focus // TbViewGeral.getSelectionModel().selectFirst(); // select first item in TableView model // TbViewGeral.getFocusModel().focus(0); // set the focus on the first element //Codigo para // final StyleChangingRowFactory<TbCIPorAprovar> rowFactory = new StyleChangingRowFactory<>("highlighted"); // TbViewGeral.setRowFactory(rowFactory); // // btnMarcarComoLido.disableProperty().bind(Bindings.isEmpty(TbViewGeral.getSelectionModel().getSelectedIndices())); // btnMarcarComoLido.setOnAction(event -> rowFactory.getStyledRowIndices().setAll(TbViewGeral.getSelectionModel().getSelectedIndex())); //------------------------------------------------ TbViewGeral.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() { @Override public void changed(ObservableValue observableValue, Object oldValue, Object newValue) { //Check whether item is selected and set value of selected item to Label try { //TableView<TbCIPorAprovar> TbViewGeral = new TableView<>(); if (TbViewGeral.getSelectionModel().getSelectedItem() != null) { //TbCIPorAprovar tbCiPorAprovar = TbViewGeral.getSelectionModel().getSelectedItem(); //TbCIPorAprovar tbtbCiPorAprovar = new TbCIPorAprovar(); TbCIPorAprovar tbCiPorAprovar = TbViewGeral.getSelectionModel().getSelectedItem(); int nCISequencial = 0; int nlIdCI = 0; boolean bTemAnexo = false; boolean bLido = false; boolean blCancelado = false; String strlBtnMarcarComoLido = ""; String strCoinHistoricoAnexos = ""; String strAssunto = ""; String strDescricaoUO = ""; String strYear = ""; Date dataCriacao; SimpleDateFormat df = new SimpleDateFormat("yyyy"); nlIdCI = tbCiPorAprovar.getIntp_idCoin(); strDescricaoUO = tbCiPorAprovar.getStrp_UnorDescricaoGenesis(); nCISequencial = tbCiPorAprovar.getIntp_CoinNumeroGenesis(); dataCriacao = tbCiPorAprovar.getDataCriacao(); bTemAnexo = tbCiPorAprovar.getBoolp_CoinTemAnexos(); bLido = tbCiPorAprovar.getBoolp_CoinLido(); blCancelado = tbCiPorAprovar.getBoolp_CoinCancelado(); strAssunto = tbCiPorAprovar.getStrp_Assunto(); strCoinHistoricoAnexos = tbCiPorAprovar.getStrp_CoinHistoricoAnexos(); strYear = df.format(dataCriacao); //TableView1 desabilita boto Aprovar CI e habilita MArcar como Lido switch (nlTipoPreenchimento) { case 2: //caixa de recebidas e pendentes de aprovao btnAprovarCI.setDisable(true); btnEncaminharCI.setDisable(false); btnResponderCI.setDisable(false); btnArquivarCI.setDisable(false); btnDesarquivarCI.setDisable(true); btnHistoricoCI.setDisable(false); btnMarcarComoLido.setDisable(false); btnMarcarcomoPendencia.setDisable(false); btnEditarCI.setDisable(true); btnDesaprovarCI.setDisable(true); //Icons para boto Marcar como Lido ou no // Adding images Image imgRead = new Image( getClass().getResourceAsStream("/resources/mail_read_24.png")); Image imgUnread = new Image( getClass().getResourceAsStream("/resources/mail_unread_24.png")); Image imgView; strlBtnMarcarComoLido = (bLido ? "Marcar como no Lido" : "Marcar como Lido"); btnMarcarComoLido.setText(strlBtnMarcarComoLido); imgView = (bLido ? imgUnread : imgRead); btnMarcarComoLido.setGraphic(new ImageView(imgView)); break; case 3://caixa de recebidas (pendencias) btnAprovarCI.setDisable(true); btnEncaminharCI.setDisable(false); btnResponderCI.setDisable(false); btnArquivarCI.setDisable(false); btnDesarquivarCI.setDisable(true); btnHistoricoCI.setDisable(false); btnMarcarComoLido.setDisable(false); btnMarcarcomoPendencia.setDisable(true); btnEditarCI.setDisable(true); btnDesaprovarCI.setDisable(true); break; case 4: //caixa de recebidas (arquivadas) btnAprovarCI.setDisable(true); btnEncaminharCI.setDisable(true); btnResponderCI.setDisable(true); btnArquivarCI.setDisable(true); btnDesarquivarCI.setDisable(false); btnHistoricoCI.setDisable(false); btnMarcarComoLido.setDisable(true); btnMarcarcomoPendencia.setDisable(true); btnEditarCI.setDisable(true); btnDesaprovarCI.setDisable(true); break; } //---------------------------------------------------------------------------------- htmlEditorCI.setHtmlText(tbCiPorAprovar.getStrp_Conteudo()); if (strAssunto.equals("CI No foi autorizada pela Unidade Gestora")) { lblNumeroSequencialCI.setText("CI-DESAPROVADA"); } else { lblNumeroSequencialCI.setText(strDescricaoUO + "-" + String.format("%05d", nCISequencial) + "-" + strYear); } if ((bTemAnexo) || (strCoinHistoricoAnexos.length() > 0)) { PreencherTxtFAnexos(nlIdCI, strCoinHistoricoAnexos); } else { lviewAnexos.getItems().clear(); txtFAnexos.getChildren().clear(); } } } catch (Exception e) { e.printStackTrace(); //labelMessage.setText("Error on get row Data"); Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Erro"); alert.setHeaderText("Erro na carga da TableView"); alert.setContentText(e.getMessage()); alert.showAndWait(); } } }); } // Cdigo para caixa de Aguardando aprovao if (blPreencherTableView2) { //if ((1 == nlTipoPreenchimento)){ for (TbCiDestinatario l : listaCiDestinatario2) { nlIdCoinDestinatario = l.getIdCoinDestinatario(); nlIdCoin = l.getIdCoin(); nIdCoin = nlIdCoin.getIdCoin(); nlIdUsuarioRemitente = l.getIdUsuarioRemitente(); strUsuarioNomeCompleto = l.getUsuNomeCompletoRemitente(); nlIdUORemitente = l.getIdUoRemitente(); strDescricaoUORemitente = l.getInorDescricaoRemitente(); nlIdUODestinatario = l.getIdUoDestinatario(); strDescricaoUODestinatario = l.getUnorDescricaoDestinatario(); nlIdUOGestorDestinatario = l.getIdUoGestorDestinatario(); strDescricaoUOGestorDestinatario = l.getUnorDescricaoGestorDestinatario(); bAutorizadoPeloGestor = l.getCoinDestinatarioGestorAutorizado(); bArquivadoPeloUODestinatario = l.getCoinDestinatarioUoArquivado(); bArquivadoPeloUOGestor = l.getCoinDestinatarioUoGestorArquivado(); strAssunto = l.getCoinDestinatarioAssunto(); strConteudo = l.getCoinDestinatarioConteudo(); bPendentePeloUODestinatario = l.getCoinDestinatarioPendente(); dataAutorizadoPeloGestorDestinatario = l.getCoinDestinatarioGestorDataAutorizado(); bLidoPeloUODestinatario = l.getCoinDestinatarioLido(); dataCriacao = l.getCoinDestinatarioDataCriacao(); nlIdTipoEnvio = l.getIdTipoEnvio(); //1-Enviado "Para; 2-Enviado "Com cpia"; 3-Enviado "Com cpia oculta" nIdTipoEnvio = nlIdTipoEnvio.getIdTipoEnvio(); nlIdCoinNumero = l.getCoinDestinatarioNumero(); //Nmero sequencial das CIs para cada UO bReadOnlyUODestinatario = l.getCoinDestinatarioReadOnly(); bCoinTemAnexos = l.getCoinDestinatarioTemAnexos(); bAutorizadoPeloGestorRemitente = l.getCoinRemitenteGestorAutorizado(); nlIdCoinGenesis = l.getIdCoinGenesis(); nlIdUnorGenesis = l.getIdUnorGenesis(); nlCoinNumeroGenesis = l.getCoinNumeroGenesis(); strCoinHistoricoAnexos = l.getCoinHistoricoAnexos(); strUnorDescricaoGenesis = l.getUnorDescricaoGenesis(); nlTipoCoin = l.getIdTipoCoin().getIdTipoCoin(); strlAssinatura = l.getCoinAssinatura(); bCoinLido = l.getCoinDestinatarioLido(); bCancelado = l.getCoinCancelado(); strDataCriacao = df.format(dataCriacao); //Construo da CI sequencial strAno = sdf.format(dataCriacao); strCiSequencial = strUnorDescricaoGenesis + "-" + String.format("%05d", nlCoinNumeroGenesis) + "-" + strAno; //---------------------------------------------------------- strTituloCiporAprovar = "RECEBIDAS"; obslistaTbCaixaEntrada2.add(new TbCIPorAprovar(nlIdCoinDestinatario, nIdCoin, nlIdUsuarioRemitente, strUsuarioNomeCompleto, nlIdUORemitente, strDescricaoUORemitente, nlIdUODestinatario, strDescricaoUODestinatario, nlIdUOGestorDestinatario, strDescricaoUOGestorDestinatario, bAutorizadoPeloGestor, bArquivadoPeloUODestinatario, bArquivadoPeloUOGestor, strAssunto, strConteudo, bPendentePeloUODestinatario, dataAutorizadoPeloGestorDestinatario, bLidoPeloUODestinatario, dataCriacao, nIdTipoEnvio, nlIdCoinNumero, bReadOnlyUODestinatario, bCoinTemAnexos, bAutorizadoPeloGestorRemitente, strDataCriacao, nlIdTabelaFonte, nlIdCoinGenesis, nlIdUnorGenesis, nlCoinNumeroGenesis, strCoinHistoricoAnexos, strUnorDescricaoGenesis, nlTipoCoin, strlAssinatura, bCoinLido, bCancelado, strCiSequencial, strTituloCiporAprovar)); System.out.println(); } ClAprovado.setCellValueFactory( new PropertyValueFactory<TbCIPorAprovar, Boolean>("boolp_AutorizadoPeloGestor")); ClIdCoin2.setCellValueFactory(new PropertyValueFactory<TbCIPorAprovar, Integer>("intp_idCoin")); ClICiSequencial2 .setCellValueFactory(new PropertyValueFactory<TbCIPorAprovar, Integer>("strp_CiSequencial")); ClUODestinatario2.setCellValueFactory( new PropertyValueFactory<TbCIPorAprovar, String>("strp_DescricaoUODestinatario")); ClDataEnvio2.setCellValueFactory(new PropertyValueFactory<TbCIPorAprovar, String>("strp_dataCriacao")); ClUORemitente2.setCellValueFactory( new PropertyValueFactory<TbCIPorAprovar, String>("strp_DescricaoUORemitente")); ClAutorRemitente2.setCellValueFactory( new PropertyValueFactory<TbCIPorAprovar, String>("strp_UsuarioNomeCompleto")); ClAssunto2.setCellValueFactory(new PropertyValueFactory<TbCIPorAprovar, String>("strp_Assunto")); TbViewGeral2.setItems(obslistaTbCaixaEntrada2); // Cdigo para mudar cor do registro ClAprovado.setCellFactory( new Callback<TableColumn<TbCIPorAprovar, Boolean>, TableCell<TbCIPorAprovar, Boolean>>() { @Override public TableCell<TbCIPorAprovar, Boolean> call( TableColumn<TbCIPorAprovar, Boolean> soCalledFriendBooleanTableColumn) { return new TableCell<TbCIPorAprovar, Boolean>() { @Override public void updateItem(final Boolean item, final boolean empty) { super.updateItem(item, empty); // clear any custom styles //this.getStyleClass().remove("willPayCell"); //this.getStyleClass().remove("wontPayCell"); this.getTableRow().getStyleClass().remove("willPayRow"); this.getTableRow().getStyleClass().remove("wontPayRow"); this.getTableRow().getStyleClass().remove("porAprovarRow"); // update the item and set a custom style if necessary if (item != null) { setText(item.toString()); //this.getStyleClass().add(item ? "willPayCell" : "wontPayCell"); this.getTableRow().getStyleClass() .add(item ? "wontPayRow" : "porAprovarRow"); } } }; } }); //Codigo para // final StyleChangingRowFactory<TbCIPorAprovar> rowFactory = new StyleChangingRowFactory<>("highlighted"); // TbViewGeral.setRowFactory(rowFactory); // // btnMarcarComoLido.disableProperty().bind(Bindings.isEmpty(TbViewGeral.getSelectionModel().getSelectedIndices())); // btnMarcarComoLido.setOnAction(event -> rowFactory.getStyledRowIndices().setAll(TbViewGeral.getSelectionModel().getSelectedIndex())); //------------------------------------------------ TbViewGeral2.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() { @Override public void changed(ObservableValue observableValue, Object oldValue, Object newValue) { //Check whether item is selected and set value of selected item to Label try { //TableView<TbCIPorAprovar> TbViewGeral = new TableView<>(); if (TbViewGeral2.getSelectionModel().getSelectedItem() != null) { //TbCIPorAprovar tbCiPorAprovar = TbViewGeral.getSelectionModel().getSelectedItem(); //TbCIPorAprovar tbtbCiPorAprovar = new TbCIPorAprovar(); TbCIPorAprovar tbCiPorAprovar = TbViewGeral2.getSelectionModel().getSelectedItem(); int nCISequencial = 0; int nlIdCI = 0; boolean bTemAnexo = false; boolean bLido = false; boolean blCancelado = false; String strlBtnMarcarComoLido = ""; String strCoinHistoricoAnexos = ""; String strAssunto = ""; String strDescricaoUO = ""; String strYear = ""; Date dataCriacao; SimpleDateFormat df = new SimpleDateFormat("yyyy"); nlIdCI = tbCiPorAprovar.getIntp_idCoin(); strDescricaoUO = tbCiPorAprovar.getStrp_UnorDescricaoGenesis(); nCISequencial = tbCiPorAprovar.getIntp_CoinNumeroGenesis(); dataCriacao = tbCiPorAprovar.getDataCriacao(); bTemAnexo = tbCiPorAprovar.getBoolp_CoinTemAnexos(); bLido = tbCiPorAprovar.getBoolp_CoinLido(); blCancelado = tbCiPorAprovar.getBoolp_CoinCancelado(); strAssunto = tbCiPorAprovar.getStrp_Assunto(); strCoinHistoricoAnexos = tbCiPorAprovar.getStrp_CoinHistoricoAnexos(); strYear = df.format(dataCriacao); //Verificamos se Gestor ou no int nlIdUnidadeOrganizacional = Integer.parseInt(lblIdUO.getText()); int nlIdUOGestor = Integer.parseInt(lblUOGestora.getText()); int nlTipoPerfil = Integer.parseInt(lblIdPerfil.getText()); if ((nlIdUnidadeOrganizacional == nlIdUOGestor) && (nlTipoPerfil == 1)) { btnAprovarCI.setDisable(false); btnEditarCI.setDisable(false); btnDesaprovarCI.setDisable(false); } else { btnAprovarCI.setDisable(true); btnEditarCI.setDisable(true); btnDesaprovarCI.setDisable(true); } //-----TableView2 //btnAprovarCI.setDisable(false); btnEncaminharCI.setDisable(true); btnResponderCI.setDisable(true); btnArquivarCI.setDisable(true); btnDesarquivarCI.setDisable(true); btnHistoricoCI.setDisable(true); btnMarcarComoLido.setText("Marcar como Lido"); btnMarcarComoLido.setDisable(true); btnMarcarcomoPendencia.setDisable(true); //btnEditarCI.setVisible(true); // //TableView2 Habilita boto Aprovar CI e desabilita Marcar como Lido // btnMarcarComoLido.setText("Marcar como Lido"); // btnMarcarComoLido.setDisable(true); // btnEncaminharCI.setDisable(true); // btnMarcarcomoPendencia.setDisable(true); // btnAprovarCI.setDisable(false); // strlBtnMarcarComoLido = (bLido ? "Marcar como no Lido" : "Marcar como Lido"); // btnMarcarComoLido.setText(strlBtnMarcarComoLido); htmlEditorCI.setHtmlText(tbCiPorAprovar.getStrp_Conteudo()); if (strAssunto.equals("CI No foi autorizada pela Unidade Gestora")) { lblNumeroSequencialCI.setText("CI-DESAPROVADA"); } else { lblNumeroSequencialCI.setText(strDescricaoUO + "-" + String.format("%05d", nCISequencial) + "-" + strYear); } //lblNumeroSequencialCI.setText(strDescricaoUO + "-" + String.format("%05d",nCISequencial)+"-" + strYear); if ((bTemAnexo) || (strCoinHistoricoAnexos.length() > 0)) { PreencherTxtFAnexos(nlIdCI, strCoinHistoricoAnexos); } else { lviewAnexos.getItems().clear(); txtFAnexos.getChildren().clear(); } } } catch (Exception e) { e.printStackTrace(); //labelMessage.setText("Error on get row Data"); Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Erro"); alert.setHeaderText("Erro na carga da TableView2"); alert.setContentText(e.getMessage()); alert.showAndWait(); } } }); //} } } @FXML private void handleBtnHistoricoCI(ActionEvent event) throws IOException { int nBotao = 0; nBotao = this.ngBotao; //Variaveis para construir o Histrico da CI String strSequencialCI = this.lblNumeroSequencialCI.getText(); int nTabela = 0; int nIdCoinDestinatario = 0; int nIdCoin = 0; String strAssinaturaTbCiDestinatario = ""; String strAssinaturaTbCi = ""; nTabela = this.ngTabela; //Valores nTabela: // 1 - TB_COMUNICACAO_INTERNA // 2 - TB_CI_DESTINATARIO //-------------------------------------------------------- //Valores dos botes: //1-caixa de recebidas (solicitando aprovao) - btnCaixaEntradaPendentesAprovacao //2-caixa de recebidas - btnCaixaEntrada //3-caixa de recebidas (pendencias) - btnCaixaPendencias //4-caixa de recebidas (arquivadas) - btnCaixaArquivadas //5-Caixa de enviados (arquivadas) - btnCaixaEnviadosArquivados //6-Caixa de enviados - btnCaixaSaida; //7-Caixa de enviados (solicitando aprovao) - btnPendentesAprovacao switch (nBotao) { case 1: case 2: case 3: case 4: //TB_CI_DESTINATARIO if (null == TbViewGeral.getSelectionModel().getSelectedItem()) { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Erro"); alert.setHeaderText("CI no foi selecionado."); alert.setContentText("Favor selecionar uma CI da tabela"); alert.showAndWait(); } else { nIdCoinDestinatario = TbViewGeral.getSelectionModel().getSelectedItem() .getIntp_idCoinDestinatario(); nIdCoin = TbViewGeral.getSelectionModel().getSelectedItem().getIntp_idCoin(); strAssinaturaTbCiDestinatario = TbViewGeral.getSelectionModel().getSelectedItem() .getStrp_CoinAssinatura(); System.out.println(); //Mostramos o historico ShowHistoricoCIe(this, nIdCoinDestinatario, strSequencialCI, nBotao, nTabela, strAssinaturaTbCiDestinatario); //--------------------------------------------- } break; case 5: case 6: case 7: //TB_COMUNICACAO_INTERNA if (null == TbViewGeral.getSelectionModel().getSelectedItem()) { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Erro"); alert.setHeaderText("CI no foi selecionado."); alert.setContentText("Favor selecionar uma CI da tabela"); alert.showAndWait(); } else { //nIdCoinDestinatario = TbViewGeral.getSelectionModel().getSelectedItem().getIntp_idCoinDestinatario(); nIdCoin = TbViewGeral.getSelectionModel().getSelectedItem().getIntp_idCoin(); strAssinaturaTbCi = TbViewGeral.getSelectionModel().getSelectedItem().getStrp_CoinAssinatura(); System.out.println(); //Mostramos o historico ShowHistoricoCIe(this, nIdCoin, strSequencialCI, nBotao, nTabela, strAssinaturaTbCi); //--------------------------------------------- } break; default: break; } } public void ShowHistoricoCIe(final FXMLMainController mainController, int nIdCiEletronica, String strSequencialCI, int nBotao, int nTabela, String strAssinaturaCI) { try { scene = new Scene(new SplitPane()); FXMLLoader loader = new FXMLLoader( getClass().getResource("/ci_eletronico/fxml_utilitarios/HistoricoCI.fxml")); scene.setRoot((Parent) loader.load()); ci_eletronico.fxml_utilitarios.HistoricoCIController HistoricoCiController = loader.<ci_eletronico.fxml_utilitarios.HistoricoCIController>getController(); HistoricoCiController.setVariaveisAmbienteHistoricoCI(mainController, nIdCiEletronica, strSequencialCI, nBotao, nTabela, strAssinaturaCI); Stage stage = new Stage(); stage.setTitle("Histrico da CI-eletrnica"); //set icon stage.getIcons().add(new Image("/resources/Business-Process-icon_16.png")); stage.setScene(scene); stage.initModality(Modality.APPLICATION_MODAL); //Window Parent fica inativo stage.showAndWait(); } catch (IOException ex) { Logger.getLogger(FXMLMainController.class.getName()).log(Level.SEVERE, null, ex); } } } class Choice { Integer id; String displayString; String displayString2; Choice(Integer id) { this(id, null, null); } Choice(String displayString) { this(null, displayString); } Choice(Integer id, String displayString) { this.id = id; this.displayString = displayString; } Choice(Integer id, String displayString, String displayString2) { this.id = id; this.displayString = displayString; this.displayString2 = displayString2; } @Override public String toString() { return displayString; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Choice choice = (Choice) o; return displayString != null && displayString.equals(choice.displayString) || id != null && id.equals(choice.id); } @Override public int hashCode() { int result = id != null ? id.hashCode() : 0; result = 31 * result + (displayString != null ? displayString.hashCode() : 0); return result; } }