private void BtGravarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_BtGravarActionPerformed
        if (camposobrigatoriospreenchidos()) {
            if (JOptionPane.showConfirmDialog(null, "Tem certeza que deseja Gravar esta operação e de que todas as informações estçao corretas?", "Deseja gravar?", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
                enviardados();
                prodcompravenda.getCompravenda().incluir();

                ClasseMvtoEstoque mvestoque = new ClasseMvtoEstoque();
                final ClasseParcelas parcelas = new ClasseParcelas();
                mvestoque.setCompravenda(prodcompravenda.getCompravenda());
                mvestoque.setDtmvto(datas.retornadataehora());
                mvestoque.setTpmvto(prodcompravenda.getCompravenda().getOperacao().getTpestoque());
                
                if (TbProdutos.getRowCount() > 0){
                    for (int i = 0; i < TbProdutos.getRowCount(); i++) {
                        prodcompravenda.getForneproduto().getProduto().setCodigo(Integer.parseInt(TbProdutos.getValueAt(i, 1).toString()));
                        TfQuantidade.setText(TbProdutos.getValueAt(i, 3).toString());
                        prodcompravenda.setQuantidade(Float.parseFloat(TfQuantidade.getValue().toString()));
                        TfValorUnitario.setText(TbProdutos.getValueAt(i, 4).toString());
                        prodcompravenda.setValorunit(Float.parseFloat(TfValorUnitario.getValue().toString()));
                        TfValorProduto.setText(TbProdutos.getValueAt(i, 5).toString());
                        prodcompravenda.setValorprodut(Float.parseFloat(TfValorProduto.getValue().toString()));
                        prodcompravenda.incluirprodutocompravenda();

                        mvestoque.getProduto().setCodigo(Integer.parseInt(TbProdutos.getValueAt(i, 1).toString()));
                        TfQuantidade.setText(TbProdutos.getValueAt(i, 3).toString());
                        mvestoque.setQtmvto(Float.parseFloat(TfQuantidade.getValue().toString()));
                        mvestoque.incluirmvto();
                    }
                    parcelas.getConta().setTotal(Float.parseFloat(TfValorTotalOperacao.getValue().toString()));
                }else if (TbServicos.getRowCount() > 0){
                    for (int i = 0; i < TbServicos.getRowCount(); i++) {
                        prodcompravenda.getForneproduto().getProduto().setCodigo(Integer.parseInt(TbServicos.getValueAt(i, 1).toString()));
                        TfQuantidadeServ.setText(TbServicos.getValueAt(i, 3).toString());
                        prodcompravenda.setQuantidade(Float.parseFloat(TfQuantidadeServ.getValue().toString()));
                        TfValorUnitarioServ.setText(TbServicos.getValueAt(i, 4).toString());
                        prodcompravenda.setValorunit(Float.parseFloat(TfValorUnitarioServ.getValue().toString()));
                        TfValorServ.setText(TbServicos.getValueAt(i, 5).toString());
                        prodcompravenda.setValorprodut(Float.parseFloat(TfValorServ.getValue().toString()));
                        prodcompravenda.incluirprodutocompravenda();
                    }
                    parcelas.getConta().setTotal(Float.parseFloat(TfValorTotalOperacaoServ.getValue().toString()));
                }
                
                parcelas.getConta().setCompravenda(prodcompravenda.getCompravenda());
                parcelas.getConta().setCondicao(prodcompravenda.getCompravenda().getCondicao());
                parcelas.getConta().setOperacao(prodcompravenda.getCompravenda().getOperacao());
                parcelas.getConta().setDescricao(prodcompravenda.getCompravenda().getDescricao());
                parcelas.getConta().setDtconta(TfData.getText());
                parcelas.getConta().setCodigopessoa(prodcompravenda.getCompravenda().getCodigopessoa());
                parcelas.getConta().incluir();

                parcelas.gerarparcelas();

                final InterfaceAjusteDatasEPrecos tela = new InterfaceAjusteDatasEPrecos(getPrimeiratela(), true, parcelas);
                tela.setVisible(true);
                tela.addWindowListener(new java.awt.event.WindowAdapter() {
                    public void windowClosed(java.awt.event.WindowEvent evt) {
                        HashMap filtro = new HashMap();
                        filtro.put("CD_COMPRA_VENDA", prodcompravenda.getCompravenda().getCodigo());
                        filtro.put("CD_OPERACAO", prodcompravenda.getCompravenda().getOperacao().getCodigo());
                        filtro.put("CD_CONTA", parcelas.getConta().getCodigo());
                        filtro.put("DS_NOTA", "EXTRATO DE "+prodcompravenda.getCompravenda().getOperacao().getDescricao());
                        if(CbPessoa.getSelectedItem().toString().equals("Fornecedor")) filtro.put("TP_PESSOA", "Fornecedor:");
                        else                                                           filtro.put("TP_PESSOA", "Cliente:");
                        ConexaoPostgre conexao = new ConexaoPostgre();
                        JDialog dialog = new JDialog(new javax.swing.JFrame(), "Visualização - Software Loja da Fátima", true);
                        dialog.setSize(1000, 700);
                        dialog.setLocationRelativeTo(null);
                        try {
                            JasperPrint print = JasperFillManager.fillReport("relatorios\\notaoperacaoestoquefinanceiro.jasper", filtro, conexao.conecta());
                            
                            JasperViewer viewer = new JasperViewer(print, true);
                            dialog.getContentPane().add(viewer.getContentPane());
                            dialog.setVisible(true);
                        } catch (Exception ex) {
                            System.out.println(ex);
                        }
                    }
                });

                limpar.Limpar(jPanel1);
                limpar.Limpar(jPanel3);
                limpar.Limpar(jPanel4);
                limpar.Limpar(TbProdutos);
                limpar.Limpar(TbServicos);
                valida.validacamposCancelar(jPanel1, PnBotoes);
                valida.validacamposCancelar(jPanel3, PnBotoes);
                valida.validacamposCancelar(jPanel4, PnBotoes);
            }
        }
    }//GEN-LAST:event_BtGravarActionPerformed