private void InserirNovaEntrada() {

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

        String nomeFuncionario = jComboBoxFuncionarioResponsavelEntrada.getSelectedItem().toString();
        int idFuncionario = selectId("FUNCIONARIO", "NOME", nomeFuncionario, "IDFUNCIONARIO");

        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 dataEntrega = (String) sdf.format(jDateChooserEntrada.getDate());

        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;
        
            
        //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
            jDialogNovaEntrada.setVisible(false);
            adevolver = 0.0f;
            gravarEntrada = true;
 
        } else {
            
            //MOSTRAR AVISO A DIZER PARA PREENCHER A QUANTIDADE KE TEM DE SER DEVOLVIDA!
          
            for (Component cp : jPanelADevolverNovaEntrada.getComponents()) 
            cp.setEnabled(true);
            
            
            for (Component cp : jPanelConformidadesNovaEntrada.getComponents()) 
            cp.setEnabled(false);
            
            for (Component cp : jPanelNovaEntrada.getComponents()) 
            cp.setEnabled(false);
            
            jButtonDesvloquearPanel.setVisible(true);
            
             adevolver = Float.parseFloat(jTextFieldQuantidadeADevolver.getText().toString());
             System.out.println("A DEVOLVER AGORA -> " + adevolver);
             
            if (adevolver > quantidade || adevolver == 0.0f) {

                if (mostraJanela == true) {
                    JOptionPane.showMessageDialog(jDialogNovaEntrada, "Quantidade A Devolver Maior que a Quantidade\n OU \nQuantidade a Devolver Igual a Zero !");
                }
                
                mostraJanela = true;
            } 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 + "," + idFuncionario + "," + 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
                
             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=" + idFuncionario
                            + " 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);
                    LerBDFuncionarioComboBoxDevolucao();
                    CalculaQuantoFaltaDevolver();                   
                    
                    st.close();
                    con.close();
                } catch (SQLException ex) {
                    System.err.println("SQLException: " + ex.getMessage());
                }
                
              
                
                }else {
                   jDialogNovaEntrada.setVisible(false);
                }
                
                
                
            }//FECHA O IF
              

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

        System.out.println("NOME FUNCIONARIO: " + nomeFuncionario);
        System.out.println("ID FUNCIONARIO : " + idFuncionario);

        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);
        

    }