private void InserirNovaEntrada() {

//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.getDefault());
//        String dataEntrega = (String) sdf.format(jDateChooserEntrada.getDate());
        //LER DATA DO SISTEMA
        Date dataAtual = new Date();
        DateFormat formato = new SimpleDateFormat("yyyy-MM-dd HH:mm");
        String dataEntrega = formato.format(dataAtual);

        String nomeFornecedor = jComboBoxFornecedorEntrada.getSelectedItem().toString();
        int idForncedor = selectId("FORNECEDOR", "NOME", nomeFornecedor, "IDFORNECEDOR");

        String nomeMateriaPrima = jComboBoxMateriaPrimaEntrada.getSelectedItem().toString();
        int idMateriaPrima = selectId("MATERIA_PRIMA", "NOME", nomeMateriaPrima, "IDMATERIAPRIMA");

        String lote = jTextFieldLoteEntrada.getText();
        float quantidade = Float.parseFloat(jTextFieldQuantidadeEntrada.getText().toString());
        String temperatura = jComboBoxTemperaturaEntrada.getSelectedItem().toString();
        String datavalidade = jComboBoxDataValidadeEntrada.getSelectedItem().toString();
        String caratOrgonolepricas = jComboBoxCaraOrgonolepticasEntradas.getSelectedItem().toString();
        String embalagem = jComboBoxEmbalagemEntradas.getSelectedItem().toString();
        String devolucao = "";
        float adevolver = 0.0f;

        devolucaoNumero = 0; //-- POR ESTE CAMINHO, ESTA VAI SER SEMPRE A PRIMEIRA DEVOLUÇÃO

        boolean gravarEntrada = false;
        boolean mostraJanela = false;

        int contaPassagem = 0;

        //VRIFICAR O ESTADO DA DEVOLUÇÃO -> SIM OU NAO 
        if (temperatura.equals("NC") || datavalidade.equals("NC") || caratOrgonolepricas.equals("NC") || embalagem.equals("NC")) {
            devolucao = "S";
            jButtonGuardarNovaEntrada.setText("Guardar");
        } else {
            devolucao = "N";
            jButtonGuardarNovaEntrada.setText("Guardar");
        }

        if (devolucao.equals("N")) {
            //NAO VAI HAVER DEVOLUCAO

            int resultNaoConformidade = JOptionPane.showConfirmDialog(jDialogNaoConformidades, "Não Existem Não Conformidades !\n Deseja Guardar a Entrada?", null, JOptionPane.YES_NO_OPTION);
            if (resultNaoConformidade == JOptionPane.YES_OPTION) {
                jDialogNovaEntrada.setVisible(false);
                adevolver = 0.0f;
                gravarEntrada = true;
            }

        } else {
            //DEVOLUCAO = SIM 

            //MOSTRAR MENSAGEM A DIZER PARA PREENCHER A QUANTIDADE DA DEVOLUÇÃO            
            //JOptionPane.showMessageDialog(jDialogNovaEntrada, "PREENCHA A QUANTIDADE A DEVOLVER !");
            //QUANDO DESBLOQUEIO O PAINEL COLOCAR A UNIDADE IGUAL A UNIDADE DE ENTRADA
            jTextFieldUnidadeQuantidadeADevolver.setText(jTextFieldNovaEntradaUnidadeQuantidade.getText());

            //MOSTRAR O BOTAO DE DESBLOQUEAR
            jButtonDesvloquearPanel.setVisible(true);

            //MBLOQUEAR E DESBLOQUEAR OS PANEIS
            for (Component cp : jPanelADevolverNovaEntrada.getComponents()) {
                cp.setEnabled(true);
            }

            for (Component cp : jPanelConformidadesNovaEntrada.getComponents()) {
                cp.setEnabled(false);
            }

            for (Component cp : jPanelNovaEntrada.getComponents()) {
                cp.setEnabled(false);
            }

            //LER O VALOR -> A DEVOLVER            
            adevolver = Float.parseFloat(jTextFieldQuantidadeADevolver.getText().toString());

            //VERIFICAÇÃO DE QUANTIDADE
            if (adevolver > quantidade || adevolver == 0.0f) {

                if (contaPassagem >= 1) {

                    if (adevolver > quantidade) {
                        JOptionPane.showMessageDialog(jDialogNovaEntrada, "XEGOU CA");
                    }
                }

                contaPassagem++;

            } else {
                gravarEntrada = true;

                //ACTUALIZAMOS O VALOR DA QUANTIDADE PARA A QUANTIDADE REAL
                float quantidadeDesactualizada = quantidade;
                quantidade = quantidade - adevolver;
                JOptionPane.showMessageDialog(jDialogNovaEntrada, "Quantidade disponibel de Materia Prima!\n\n"
                        + "QUANTIDADE : " + quantidadeDesactualizada + "\n"
                        + "A DEVOLVER : " + adevolver + "\n"
                        + "DISPONIVEL : " + quantidade);
            }

        }

        if (gravarEntrada == true) {

            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 = "ENTRADA";
                sql = "INSERT INTO " + nomeTabela + "(IDFORNECEDOR, IDFUNCIONARIO, IDMATERIAPRIMA, DATAENTREGA, LOTEORIGEM, QUANTIDADE, TEMPERATURA, DATAVALIDADE, CARATORGONOLEPTICAS, EMBALAGEM, DEVOLUCAO, ADEVOLVER, QUANTIDADETOTALDISPONIVEL, QUANTIDADETOTALADEVOLVER) "
                        + " values(" + idForncedor + "," + idFuncionarioLogin + "," + idMateriaPrima + ",'" + dataEntrega + "','" + lote + "'," + quantidade + ",'" + temperatura + "','" + datavalidade + "','" + caratOrgonolepricas + "','" + embalagem + "','" + devolucao + "'," + adevolver + "," + quantidade + "," + adevolver + " )";

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

                PreparedStatement st = (PreparedStatement) con.prepareStatement(sql);
                st.executeUpdate();
                st.close();
                con.close();
            } catch (SQLException ex) {
                System.err.println("SQLException: " + ex.getMessage());
            }

            LimpaNovaEntrada();

            //COLOCAR BOTAO A PERGUNTAR SE QUEREMOS REALIZAR A DEVOLUÇÃO OU NAO
            if (devolucao.equals("S")) {

                int resultNaoConformidade = JOptionPane.showConfirmDialog(jDialogNovaEntrada, "Deseja Fazer a Devolução ?", null, JOptionPane.YES_NO_OPTION);

                if (resultNaoConformidade == JOptionPane.YES_OPTION) {
           // FAZER PESQUISA PARA SABERMOS QUAL O IDENTRADA DA ENTRADA QUE 
                    //ACABAMOS DE INSERIR VERIFCAMOS SE ESTAMOS A INSERIR NA BD

                    jDialogNovaEntrada.setVisible(false);

                    try {
                        Class.forName("org.apache.derby.jdbc.ClientDriver");
                    } catch (ClassNotFoundException e) {
                        System.err.print("ClassNotFoundException: ");
                        System.err.println(e.getMessage());
                        System.out.println("O driver expecificado nao foi encontrado.");
                    }

                    try {
                        idFornecedorDevolucao = idForncedor;
                        idMateriaPrimaDevolucao = idMateriaPrima;
                        quantidadeADevolverSelecionada = adevolver;

                        con = DriverManager.getConnection(url);
                        String nomeTabela = "ENTRADA";
                        String sql = "SELECT * FROM " + nomeTabela + " WHERE IDFUNCIONARIO=" + idFuncionarioLogin
                                + " AND IDFORNECEDOR=" + idFornecedorDevolucao
                                + " AND IDMATERIAPRIMA=" + idMateriaPrimaDevolucao
                                + " AND LOTEORIGEM='" + lote + "'"
                                + " AND QUANTIDADE=" + quantidade
                                + " AND DEVOLUCAO='" + devolucao + "'";
                        PreparedStatement st = (PreparedStatement) con.prepareStatement(sql);
                        ResultSet rs = st.executeQuery();

                        while (rs.next()) {

                            idEntradaSeleccionada = rs.getInt("IDENTRADA");

                        }
                    //DEVOLUCAO NUMERO VAI SER SEMPRE 0, POR ESTE PERCURSO, POIS É A PRIMEIRA VEZ
                        //QUE ESTAMOS A FAZER A DEVOLUÇÃO

                        devolucaoNumero = 0;

                        System.out.println("DADAOS PARA DEVOLUÇAO -> JANELA NOVA ENTRADAS");
                        System.out.println("ID ENTRADA -> " + idEntradaSeleccionada);
                        System.out.println("ID FORNECEDOR -> " + idFornecedorDevolucao);
                        System.out.println("ID MATERIA PRIMA -> " + idMateriaPrimaDevolucao);
                        System.out.println("QUANTIDADE A DEVOLVER -> " + quantidadeADevolverSelecionada);
                        System.out.println("DEVOLUÇAO NUMERO -> " + devolucaoNumero);

                        //ABRIR JANELA DE DEVOLUÇOES
                        LimpaNovaDevolucao();
                        jDialogDevolucoes.setLocationRelativeTo(this);
                        jDialogDevolucoes.setVisible(true);
                        jLabelFuncionarioLogin6.setText("" + NomeFuncionarioLogin);
                        //CalculaQuantoFaltaDevolver();   
                        //por este caminho nao tenho de usar a função, uma vez que ja fiz a conta anteriormente
                        jTextFieldQuantidadeADevolverDevolucao.setText("" + adevolver);
                        st.close();
                        con.close();
                    } catch (SQLException ex) {
                        System.err.println("SQLException: " + ex.getMessage());
                    }

                } else {
                    jDialogNovaEntrada.setVisible(false);
                }

            }

        }//FECHA O IF GRAVA ENTRADA

        System.out.println("\n\n**BOTAO GUARDAR NOVA ENTRADA**");

        System.out.println("NOME FUNCIONARIO: " + NomeFuncionarioLogin);
        System.out.println("ID FUNCIONARIO : " + idFuncionarioLogin);

        System.out.println("NOME FORNECEDOR : " + nomeFornecedor);
        System.out.println("ID FORNECEDOR : " + idForncedor);

        System.out.println("MATERIA PRIMA : " + nomeMateriaPrima);
        System.out.println("ID PRIMA : " + idMateriaPrima);

        System.out.println("DTA ENTREGA : " + dataEntrega);
        System.out.println("LOTE : " + lote);
        System.out.println("QUANTIDADE : " + quantidade);
        System.out.println("TEMPERATURA : " + temperatura);
        System.out.println("DATA VALIDADE : " + datavalidade);
        System.out.println("CARAT. ORGONOLEPRICAS : " + caratOrgonolepricas);
        System.out.println("EMBALAGEM/TRANSPORTE : " + embalagem);
        System.out.println("VAI HAVER DEVOLUÇÃO : " + devolucao);
        System.out.println("QUANTIDADE A DEVOLVER : " + adevolver);

    }