private void InserirDevolucao() {

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.getDefault());
                

        String dataDevolucao = (String) sdf.format(jDateChooserDataDevolucao.getDate());
        float quantidadeQueEstamosAdevolver = Float.parseFloat(jTextFieldQuantidadeDevolucao.getText().toString());
        String observacao = jTextAreaObservacoesDevolucao.getText();
        int idFuncionarioRresponsavel = 0;
        float quantidadeActualizar = 0.0f;
        String devolucao = "N";

        float quantidadeDevolvidadaAteAgora = 0.0f; //para ir buscar o valor a coluna e somar a de baixo
        float quantidadeDevolvidadaAteAgora_TOTAL = 0.0f; //somatorio das quantidades das devoluçoes ja efectuadas
        float quantidadeDevolvidadaAteAgora_FINAL = 0.0f; // esta e a soma das 2 -> _total + quantidadeQueEstamosAdevolver

        
        //COMBOBOX
        //FUNCIONARIO RESPONSAVEL PELA DEVOLUCAO

        String comboFuncio = jComboBoxFuncionarioResponsavelDevolucao.getSelectedItem().toString();
        
        if (comboFuncio.equals("--Funcionario--")) {

            JOptionPane.showMessageDialog(jDialogDevolucoes, "Selecione o Funcionario Responsavel");

        } else if (quantidadeQueEstamosAdevolver == 0.0) {

            //PERCORRER A BD E VER A QUANTIDADE QUE JA FOI DEVOLVIDA
            JOptionPane.showMessageDialog(jDialogDevolucoes, "Quantidade a Devolver não pode ser ZERO !");

        } else {

            //COMBO BOX DO FUNCIONARIO
            try {
                Class.forName("org.apache.derby.jdbc.ClientDriver");
            } catch (ClassNotFoundException e) { //driver não encontrado
                System.err.print("ClassNotFoundException: ");
                System.err.println(e.getMessage());
                System.out.println("O driver expecificado nao foi encontrado.");
            }

            try {
                con = DriverManager.getConnection(url);
                String nomeTabela = "FUNCIONARIO";
                String sql = "SELECT * FROM " + nomeTabela + " WHERE NOME='" + comboFuncio + "'";
                PreparedStatement st = (PreparedStatement) con.prepareStatement(sql);
                ResultSet rs = st.executeQuery();

                while (rs.next()) {
                    idFuncionarioRresponsavel = rs.getInt("IDFUNCIONARIO");
                }
                st.close();
                con.close();
            } catch (SQLException ex) {
                System.err.println("SQLException: " + ex.getMessage());
            }

            
            //BD DE DEVOLUÇÕES
            try {
                Class.forName("org.apache.derby.jdbc.ClientDriver");
            } catch (ClassNotFoundException e) { //driver não encontrado
                System.err.print("ClassNotFoundException: ");
                System.err.println(e.getMessage());
                System.out.println("O driver expecificado nao foi encontrado.");
            }

            try {
                con = DriverManager.getConnection(url);
                String nomeTabela = "DEVOLUCOES";
                String sql = "SELECT * FROM " + nomeTabela + " WHERE IDENTRADA=" + idEntradaSeleccionada;
                PreparedStatement st = (PreparedStatement) con.prepareStatement(sql);
                ResultSet rs = st.executeQuery();

                while (rs.next()) {
                    quantidadeDevolvidadaAteAgora = rs.getFloat("QUANTIDADEDEVOLVIDA");
                    quantidadeDevolvidadaAteAgora_TOTAL = quantidadeDevolvidadaAteAgora_TOTAL + quantidadeDevolvidadaAteAgora;

                    System.out.println("quantidadeDevolvidaAteAgora : " + quantidadeDevolvidadaAteAgora);

                }
                System.out.println("\nquantidadeDevolvidaAteAgora_TOTAL : " + quantidadeDevolvidadaAteAgora_TOTAL);
                st.close();
                con.close();
            } catch (SQLException ex) {
                System.err.println("SQLException: " + ex.getMessage());
            }

            //APAGAR
            mostraQuantidadeDevolvidaAteAoMomento = quantidadeDevolvidadaAteAgora_TOTAL;

            //VERIFICAR SE A QUANTIDADE JA DEVOLVIDA + A QUE VAMOS DEVOLVER ESTAO DENTRO DOS LIMITES
            quantidadeDevolvidadaAteAgora_FINAL = quantidadeDevolvidadaAteAgora_TOTAL + quantidadeQueEstamosAdevolver;
            System.out.println("CONTAS: " + quantidadeDevolvidadaAteAgora_TOTAL + " + " + quantidadeQueEstamosAdevolver + " = " + quantidadeDevolvidadaAteAgora_FINAL);

            //QUANTIDADE MAIOR
            if (quantidadeDevolvidadaAteAgora_FINAL > quantidadeADevolverSelecionada) {

                JOptionPane.showMessageDialog(jDialogDevolucoes, "Quantidade a devolvel nao pode ser tanta\nFALTA Devolver Apenas : " + (quantidadeADevolverSelecionada - quantidadeDevolvidadaAteAgora_TOTAL));

            } else if (quantidadeDevolvidadaAteAgora_FINAL == quantidadeADevolverSelecionada) {
                //QANTIDADE A DEVELVER = A DEVOLVIDA
                
                //inserir na mesma o registo mas actualizar o estado na tabela entradas
                try {
                    Class.forName("org.apache.derby.jdbc.ClientDriver");
                } catch (ClassNotFoundException e) { //driver não encontrado
                    System.err.print("ClassNotFoundException: ");
                    System.err.println(e.getMessage());
                    System.out.println("O driver expecificado nao foi encontrado.");
                }

                try {
                    con = DriverManager.getConnection(url);
                    String nomeTabela = "DEVOLUCOES";
                    sql = "INSERT INTO " + nomeTabela + "(IDFUNCIONARIO, IDFORNECEDOR, IDENTRADA, IDMATERIAPRIMA, DATADEVOLUCAO, QUANTIDADEDEVOLVIDA, OBSERVACAO)"
                            + " values(" + idFuncionarioRresponsavel + "," + idFornecedorDevolucao + "," + idEntradaSeleccionada + "," + idMateriaPrimaDevolucao + ",'" + dataDevolucao + "'," + quantidadeQueEstamosAdevolver + ",'" + observacao + "'" + ")";

                    System.out.println("\n\n** DADOS DA NOVA ENTRADA INSERIDOS COM SUCESSO !");

                    PreparedStatement st = (PreparedStatement) con.prepareStatement(sql);
                    st.executeUpdate();
                    st.close();

                    //VAMOS TER DE ACTUALIZAR O ESTADO DA DEVOLUÇÃO DE "SIM" PARA "NAO"
                    //VAMOS TER DE ACTUALUZAR O VALOR DE ADEVOLVER PARA 0
                    double aDevolter = 0.0;
                  
                    
                    String nomeTabela2 = "ENTRADA";
                    String sql2 = "UPDATE " + nomeTabela2 + " SET DEVOLUCAO='" + devolucao + "', ADEVOLVER="+ aDevolter +" WHERE IDENTRADA=" + idEntradaSeleccionada;
                    PreparedStatement st2 = (PreparedStatement) con.prepareStatement(sql2);
                    st2.executeUpdate();
                    st2.close();

                    JOptionPane.showMessageDialog(jDialogDevolucoes, "Estado da Devolução Actualizado com Sucesso.\nAgora : Devolvido");

                    jDialogDevolucoes.setVisible(false);
                    LimpaNovaDevolucao();
                    LimpaTabelaEntradas();
                    ConsultaEntradas();

                    con.close();
                } catch (SQLException ex) {
                    System.err.println("SQLException: " + ex.getMessage());
                }

            } else {

                //VER QUAL O NUMERO DA DEVOLUÇÃO QUE VAI TER -> DEVOLUCAONUMERO
                devolucaoNumero = devolucaoNumero + 1;

                //INSERIR O NOVO VALOR NA TABELA DEVOLUÇÕES
                try {
                    Class.forName("org.apache.derby.jdbc.ClientDriver");
                } catch (ClassNotFoundException e) { //driver não encontrado
                    System.err.print("ClassNotFoundException: ");
                    System.err.println(e.getMessage());
                    System.out.println("O driver expecificado nao foi encontrado.");
                }
                
                try {
                    con = DriverManager.getConnection(url);
                    String nomeTabela = "DEVOLUCOES";
                    sql = "INSERT INTO " + nomeTabela + "(IDFUNCIONARIO, IDFORNECEDOR, IDENTRADA, IDMATERIAPRIMA, DATADEVOLUCAO, QUANTIDADEDEVOLVIDA, OBSERVACAO, DEVOLUCAONUMERO)"
                            + " values(" + idFuncionarioRresponsavel + "," + idFornecedorDevolucao + "," + idEntradaSeleccionada + "," + idMateriaPrimaDevolucao + ",'" + dataDevolucao + "'," + quantidadeQueEstamosAdevolver + ",'" + observacao + "'," + devolucaoNumero + ")";

                    System.out.println("\n\n** DADOS DA NOVA DEVOLUÇÃO INSERIDOS COM SUCESSO !");

                        //ACTUALIZAR A TABELA ENTRADAS VALOR ADEVOLVER
                        //FAZER A CONTA PARA ACTUALIZAR
                        quantidadeActualizar = quantidadeADevolverSelecionada - quantidadeQueEstamosAdevolver;
                        
                        String nomeTabela2 = "ENTRADA";
                        String sql2 = "UPDATE " + nomeTabela2 + " SET ADEVOLVER="+ quantidadeActualizar +" WHERE IDENTRADA=" + idEntradaSeleccionada;
                        PreparedStatement st2 = (PreparedStatement) con.prepareStatement(sql2);
                        st2.executeUpdate();
                        st2.close();       
                        
                    PreparedStatement st = (PreparedStatement) con.prepareStatement(sql);
                    st.executeUpdate();
                    st.close();

                    jDialogDevolucoes.setVisible(false);
                    LimpaNovaDevolucao();
                    LimpaTabelaEntradas();
                    ConsultaEntradas();

                    con.close();
                } catch (SQLException ex) {
                    System.err.println("SQLException: " + ex.getMessage());
                }             
               
               
            }
        }

        System.out.println("\n\n** BOTAO GUARDAR DEVOLUCAO");
        System.out.println("ID FUNCIONARIO : " + idFuncionarioRresponsavel);
        System.out.println("ID FORNECEDOR: " + idFornecedorDevolucao);
        System.out.println("ID MMAT. PRIMA: " + idMateriaPrimaDevolucao);
        System.out.println("ID ENTRADA: " + idEntradaSeleccionada);
        System.out.println("QUANT. DEVOLVIDA: " + quantidadeQueEstamosAdevolver);
        System.out.println("DATA DEVOL: " + dataDevolucao);
        System.out.println("DESCRICAO: " + observacao);
        System.out.println("DEVOLUÇÃO NUMERO: " + devolucaoNumero);
        
        System.out.println("\n\nQUANTIDADE ADEVOLVER ACTUAÇIZADA : " + quantidadeActualizar);

    }