Erro java.lang.ArrayIndexOutOfBoundsException[RESOLVIDO]

12 respostas
D

Boa tarde pessoal,

Estou com um problema em minha aplicação.  procurei aqui no fórum algum tópico que pudesse me auxiliar porém não encontrei um que eu conseguisse solucionar o meu problema.

Estou desenvolvendo uma aplicação PDV e dentre de suas diversas funções, uma delas é a tela de venda. Após inserir os produtos, o operador seleciona para ir a tela de Pagamento, porém ao executar a tela de pagamento ocorre o seguinte erro:

java.lang.reflect.InvocationTargetException

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at br.com.intercommerce.controller.PDVExec.executar(PDVExec.java:419)

at br.com.intercommerce.controller.PDVController.processarAcao(PDVController.java:83)

at br.com.intercommerce.controller.PDVExec$5.actionPerformed(PDVExec.java:490)

at javax.swing.SwingUtilities.notifyAction(Unknown Source)

at javax.swing.JComponent.processKeyBinding(Unknown Source)

at javax.swing.KeyboardManager.fireBinding(Unknown Source)

at javax.swing.KeyboardManager.fireKeyboardAction(Unknown Source)

at javax.swing.JComponent.processKeyBindingsForAllComponents(Unknown Source)

at javax.swing.JComponent.processKeyBindings(Unknown Source)

at javax.swing.JComponent.processKeyEvent(Unknown Source)

at java.awt.Component.processEvent(Unknown Source)

at java.awt.Container.processEvent(Unknown Source)

at java.awt.Component.dispatchEventImpl(Unknown Source)

at java.awt.Container.dispatchEventImpl(Unknown Source)

at java.awt.Component.dispatchEvent(Unknown Source)

at java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source)

at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)

at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source)

at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)

at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)

at java.awt.Component.dispatchEventImpl(Unknown Source)

at java.awt.Container.dispatchEventImpl(Unknown Source)

at java.awt.Window.dispatchEventImpl(Unknown Source)

at java.awt.Component.dispatchEvent(Unknown Source)

at java.awt.EventQueue.dispatchEvent(Unknown Source)

at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.run(Unknown Source)

Caused by: java.lang.ArrayIndexOutOfBoundsException: 0 >= 0

at java.util.Vector.elementAt(Unknown Source)

at javax.swing.table.DefaultTableModel.setValueAt(Unknown Source)

at br.com.intercommerce.bc.CupomBC.atualizarTelaPagamento(CupomBC.java:95)

 35 more

Será que alguém saberia me auxiliar?

o código que está com erro é o seguinte.

public class CupomBC {

	public static void atualizarTelaPagamento() throws Exception {
		
		PDVController pdv = PDVController.getInstance();
		
		JTextField tftotalAcrescimo = (JTextField)pdv.getSessao().get("tftotalAcrescimo");
		JTextField tftotalDesconto = (JTextField)pdv.getSessao().get("tftotalDesconto");
		JTextField tftotalVenda = (JTextField)pdv.getSessao().get("tftotalVenda");
		JTextField tftotalAcumulado = (JTextField)pdv.getSessao().get("tftotalAcumulado");
		JTextField tftotalSaldo = (JTextField)pdv.getSessao().get("tftotalSaldo");
		JTable tbDetalhes = (JTable)pdv.getSessao().get("tbDetalhes");
		
		BigDecimal acrescimo = BigDecimal.ZERO;
		BigDecimal desconto = BigDecimal.ZERO;
		BigDecimal total = BigDecimal.ZERO;
		
		DefaultTableModel dtm = new DefaultTableModel();
		dtm.setColumnIdentifiers(new String[] {"", "", ""});
		
		ArrayList<CondPagtoVo> condicoesEscolhidas = (ArrayList<CondPagtoVo>)pdv.getSessao().get("condicoesEscolhidas");
		TreeMap tree = new TreeMap();
		if (condicoesEscolhidas != null) {
			for (int a = 0; a < condicoesEscolhidas.size(); a++) {
				CondPagtoVo cond = condicoesEscolhidas.get(a);
				acrescimo = acrescimo.add(cond.getVlJuros());
				desconto = desconto.add(cond.getVlDesconto());
				total = total.add(cond.getVlTotal());
				
				HashMap hashTmp = cond.getParcelas();
				Iterator it = hashTmp.keySet().iterator();
				while (it.hasNext()) {
					Object chave = it.next();
					if (tree.get(chave) == null) {
						tree.put(chave, hashTmp.get(chave));
					} else {
						BigDecimal bd = (BigDecimal)tree.get(chave);
						bd = bd.add((BigDecimal)hashTmp.get(chave));
						tree.put(chave, bd);
					}
				}
			}
		}
		
		boolean primeira = true;
		if (tree.get("ENTRADA") != null) {
			BigDecimal bd = (BigDecimal)tree.get("ENTRADA");
			dtm.addRow(new String[] {"ENTRADA", Transformador.Double2S(bd.doubleValue()), ""});
			primeira = false;
		}
		
		Iterator it = tree.keySet().iterator();
		while (it.hasNext()) {
			Object chave = it.next();
			String data = chave.toString();
			if (!data.equals("ENTRADA")) {
				data = data.substring(6, 8) + "/" + data.substring(3, 5) + "/" +  data.substring(0, 2);
				BigDecimal bd = (BigDecimal)tree.get(chave);
				primeira = false;
				dtm.addRow(new String[] {data, Transformador.Double2S(bd.doubleValue()), ""});
			}
		}
		pdv.getSessao().put("item_a_ser_pago", 0);
		dtm.setValueAt("<<<", 0, 2);
		tbDetalhes.setModel(dtm);
		
		tftotalAcrescimo.setText(Transformador.Double2S(acrescimo.doubleValue()));
		tftotalDesconto.setText(Transformador.Double2S(desconto.doubleValue()));
		tftotalVenda.setText(Transformador.Double2S(total.doubleValue()));
		tftotalAcumulado.setText(Transformador.Double2S(total.doubleValue()));
		tftotalSaldo.setText(Transformador.Double2S(total.doubleValue()));
		
		VendaVo venda = (VendaVo)pdv.getSessao().get("venda");
		venda.setVlTotalAcumulado(total.doubleValue());
		venda.setVlAcrescimoTotal(acrescimo.doubleValue());
		venda.setVlDescontoTotal(desconto.doubleValue());
		
	}
	
	public static void cancelarCupomAtual() throws Exception {
		PDVController pdv = PDVController.getInstance();
		ParametroVo parametros = (ParametroVo)pdv.getSessao().get("parametros");
		Ecf ecf = EcfFactory.getInstance(parametros.getFabricanteEcf());
		ecf.cancelaCupomAtual();
		CupomLocalVo cupom = (CupomLocalVo)pdv.getSessao().get("cupom");
		cupom.setStatus("9");
		HibernatePersistenceManager.saveOrUpdateLocal(cupom);
		PosicaoLocalBC.atualizar("LIVRE");
		//PosicaoOperadorBC.atualizaOperador(vendaVo);
		System.out.println("cancelarCupomAtual");
	}
	
	public static void cancelarCupomAnterior() throws Exception {
		PDVController pdv = PDVController.getInstance();
		ParametroVo parametros = (ParametroVo)pdv.getSessao().get("parametros");
		Ecf ecf = EcfFactory.getInstance(parametros.getFabricanteEcf());
		int ret = ecf.cancelaCupomAnterior();
		
		//TODO Verificar para achar cumpom anterior, pois se nao tem, esta null e ocorre erro
		CupomLocalVo cupom = (CupomLocalVo)pdv.getSessao().get("cupom");
		//TODO if temporario para nao ocorrer erro
		if (cupom != null) {
			cupom.setStatus("1");
			HibernatePersistenceManager.saveOrUpdateLocal(cupom);
		}
		System.out.println("cancelarCupomAnterior");
	}

	public static boolean verificaCupomCancelar() throws Exception {
		boolean ret = false;
		PDVController pdv = PDVController.getInstance();
		VendaVo venda = (VendaVo)pdv.getSessao().get("venda");
		if (venda.getVlSubTotal() == 0 && venda.getQtdeItensCupom()!= 0){
			CupomBC.cancelarCupomAtual();
			ret = true;
		}
		return ret;
	}

	public static boolean verificaEncerramentoCupom() throws Exception {
		boolean ret = false;
		PDVController pdv = PDVController.getInstance();
		// sincronização de tela
		JFrame frame = (JFrame)pdv.getSessao().get("frame");
		frame.update(frame.getGraphics());
		VendaVo venda = (VendaVo)pdv.getSessao().get("venda");
		if (venda.getVlTotalRecebido() >= venda.getVlTotalAcumulado()){
			ret = true;
		}
		return ret;
	}

	
	public static boolean verificaCupomInicializado(String origem) throws Exception {
		PDVController pdv = PDVController.getInstance();
		VendaVo venda = (VendaVo)pdv.getSessao().get("venda");
		
		System.out.println("getQtdeItensCupom->" + venda.getQtdeItensCupom());
		System.out.println("getVlSubTotal(->" + venda.getVlSubTotal());
		
		if (origem.equals("V")){
			if (venda.getQtdeItensCupom() >= 1) {
				return false;
			} else {
				return true;
			}
		}else{
			if (venda.getVlSubTotal() == 0.00) {
				return false;
			} else {
				return true;
			}
		}
	}
	
	public static void gravaCupomInicio() throws Exception {

		PDVController pdv = PDVController.getInstance();
		ParametroVo param = (ParametroVo)pdv.getSessao().get("parametros");
		PosicaoLocalVo posicao = (PosicaoLocalVo)pdv.getSessao().get("posicao");
		ControlePdvVo ctrl = ControlePdvVo.getInstance();
		VendaVo venda = (VendaVo)pdv.getSessao().get("venda");
		ClienteVo cliente = (ClienteVo)pdv.getSessao().get("cliente");
		
		Date dataHoje = new Date();
		
		CupomLocalVo cupom = new CupomLocalVo();
		cupom.setIdUnn(param.getIdUnn());
		cupom.setIdEmp(param.getIdEmp());
		cupom.setNrPdv(posicao.getNrPdv());
		cupom.setNrCupom(ctrl.getNrCupom());
		cupom.setDtCupom(ctrl.getDataMovto());
		cupom.setIdOpe(posicao.getIdOperador());
		cupom.setIdFiscal(posicao.getIdFiscal());
		cupom.setIdEntrada(posicao.getIdEntrada());
		
		cupom.setIdPvd(venda.getIdPvd());
		cupom.setIdVen(venda.getIdVendedor());
		cupom.setIdPromotor(venda.getIdPromotor());
		cupom.setCdTipoCupom(venda.getCdTipoCupom());
		cupom.setCdMidia(venda.getCdMidia());
		cupom.setIdCep(venda.getIdCep());
		cupom.setIdCli(cliente.getIdCliente());
		cupom.setCdModalEnt(venda.getCdModalEnt());
		cupom.setVlCupom(0.00);
		cupom.setNrCartao(venda.getNrCartaoFidelidade());
		cupom.setNrCupInicAcum(venda.getNrCupIniAcum());
		cupom.setDtInicio(dataHoje);
		
		pdv.getSessao().put("cupom", cupom);
		
		HibernatePersistenceManager.saveOrUpdateLocal(cupom);
		
	}

	public static void gravaCupomFim() throws Exception {
		
		PDVController pdv = PDVController.getInstance();
		VendaVo venda = (VendaVo)pdv.getSessao().get("venda");
		PagamentoVo pagamento = (PagamentoVo)pdv.getSessao().get("pagamento");
		
		Date dataHoje = new Date();
		
		CupomLocalVo cupom = (CupomLocalVo)pdv.getSessao().get("cupom");
		cupom.setDtFim(dataHoje);
		cupom.setIdCpg(venda.getIdCpg());
		cupom.setQtItens(venda.getQtdeItensCupom());
		cupom.setQtItensCanc(venda.getQtdeItensCancelados());
		cupom.setVlItensCanc(venda.getVlCancelamentoItem());
		cupom.setVlCupom(venda.getVlSubTotal());
		cupom.setVlTroco(pagamento.getVlTroco());
		cupom.setVlDinheiro(pagamento.getVlDinheiro());
		cupom.setVlCheque(pagamento.getVlCheque());
		cupom.setVlChequePre(pagamento.getVlChequePre());
		cupom.setVlCupomVale(pagamento.getVlCupom());
		cupom.setVlCrtCredito(pagamento.getVlCrtCredito());
		cupom.setVlCrtDebito(pagamento.getVlCrtDebito());
		cupom.setVlCrtProprio(pagamento.getVlCrtProprio());
		cupom.setVlCrtManual(pagamento.getVlCrtManual());
		cupom.setVlCrediario(pagamento.getVlCrediario());
		cupom.setVlPlano(pagamento.getVlPlanos());
		cupom.setVlLivre1(pagamento.getVlLivre1());
		cupom.setVlLivre2(pagamento.getVlLivre2());
		cupom.setVlLivre3(pagamento.getVlLivre3());
		cupom.setVlLivre4(pagamento.getVlLivre4());
		cupom.setVlLivre5(pagamento.getVlLivre5());
		cupom.setVlLivre6(pagamento.getVlLivre6());
		cupom.setVlLivre7(pagamento.getVlLivre7());
		cupom.setVlLivre8(pagamento.getVlLivre8());
		cupom.setVlLivre9(pagamento.getVlLivre9());
		cupom.setVlLivre10(pagamento.getVlLivre10());
		cupom.setVlAcrescimo(venda.getVlAcrescimoTotal());
		cupom.setVlDesconto(venda.getVlDescontoTotal());
		cupom.setVlDescFid(venda.getVlDescontoFidelidade());
		cupom.setVlDescSup(venda.getVlDescontoSupervisor());
		cupom.setCdPlanosPg(venda.getCdPlanos());
		//cupom.setIdDev(0);
		cupom.setStatus("0");
		
		HibernatePersistenceManager.saveOrUpdateLocal(cupom);
	}
	
	public static boolean verificarCupomCancelar(String param, String permissao) {
		
		if (permissao.equals("S")) {
			
			PDVController pdv = PDVController.getInstance();
			VendaVo venda = (VendaVo)pdv.getSessao().get("venda");
			
			if (param.equals("N")) {
				if (venda.getQtdeItensCupom() >= 1) {
					return true;
				} else {
					return false;
				}
			}
			if (param.equals("A")) {
				return true;
			}
			
		}
		
		return false;
		
	}
	
}

Obrigada :smiley:

12 Respostas

T

Olá, qual é o código nessas coordenadas

br.com.intercommerce.bc.CupomBC.atualizarTelaPagamento(CupomBC.java:95) ???

Esse erro é quando você tentar acessar uma posição do array que não existe!

D

Olá Thiago,

Em primeiro lugar obrigada pela ajuda. Estou iniciando em java então tem alguns pontos que ainda me perco…

Mas então, o código é

dtm.setValueAt("<<<", 0, 2);

Que nesse caso corresponde a linha 64

Att.

T

Não há de quê, mas a linha em questão que eu gostaria de ver o código é a 95 do arquivo br.com.intercommerce.bc.CupomBC
Se você estiver utilizando algum ambiente de desenvolvimento o ideal seria você depurar o seu código para saber o porquê do erro!

D

Thiago... Já debuguei...E a linha que ele me aponta o erro é aquela que eu enviei...

O código completo é o seguinte.

package br.com.intercommerce.bc;

import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.Iterator;
import java.util.TreeMap;

import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;

import br.com.intercommerce.controller.PDVController;
import br.com.intercommerce.dispositivos.Ecf;
import br.com.intercommerce.dispositivos.EcfFactory;
import br.com.intercommerce.hibernate.HibernatePersistenceManager;
import br.com.intercommerce.util.Transformador;
import br.com.intercommerce.vo.ClienteVo;
import br.com.intercommerce.vo.CondPagtoVo;
import br.com.intercommerce.vo.ControlePdvVo;
import br.com.intercommerce.vo.PagamentoVo;
import br.com.intercommerce.vo.VendaVo;
import br.com.intercommerce.vo.hibernate.local.CupomLocalVo;
import br.com.intercommerce.vo.hibernate.local.ParametroVo;
import br.com.intercommerce.vo.hibernate.local.PosicaoLocalVo;

public class CupomBC {

	public static void atualizarTelaPagamento() throws Exception {
		
		PDVController pdv = PDVController.getInstance();
		
		JTextField tftotalAcrescimo = (JTextField)pdv.getSessao().get("tftotalAcrescimo");
		JTextField tftotalDesconto = (JTextField)pdv.getSessao().get("tftotalDesconto");
		JTextField tftotalVenda = (JTextField)pdv.getSessao().get("tftotalVenda");
		JTextField tftotalAcumulado = (JTextField)pdv.getSessao().get("tftotalAcumulado");
		JTextField tftotalSaldo = (JTextField)pdv.getSessao().get("tftotalSaldo");
		JTable tbDetalhes = (JTable)pdv.getSessao().get("tbDetalhes");
		
		BigDecimal acrescimo = BigDecimal.ZERO;
		BigDecimal desconto = BigDecimal.ZERO;
		BigDecimal total = BigDecimal.ZERO;
		
		DefaultTableModel dtm = new DefaultTableModel();
		dtm.setColumnIdentifiers(new String[] {"", "", ""});
		
		ArrayList<CondPagtoVo> condicoesEscolhidas = (ArrayList<CondPagtoVo>)pdv.getSessao().get("condicoesEscolhidas");
		TreeMap tree = new TreeMap();
		if (condicoesEscolhidas != null) {
			for (int a = 0; a < condicoesEscolhidas.size(); a++) {
				CondPagtoVo cond = condicoesEscolhidas.get(a);
				acrescimo = acrescimo.add(cond.getVlJuros());
				desconto = desconto.add(cond.getVlDesconto());
				total = total.add(cond.getVlTotal());
				
				HashMap hashTmp = cond.getParcelas();
				Iterator it = hashTmp.keySet().iterator();
				while (it.hasNext()) {
					Object chave = it.next();
					if (tree.get(chave) == null) {
						tree.put(chave, hashTmp.get(chave));
					} else {
						BigDecimal bd = (BigDecimal)tree.get(chave);
						bd = bd.add((BigDecimal)hashTmp.get(chave));
						tree.put(chave, bd);
					}
				}
			}
		}
		
		boolean primeira = true;
		if (tree.get("ENTRADA") != null) {
			BigDecimal bd = (BigDecimal)tree.get("ENTRADA");
			dtm.addRow(new String[] {"ENTRADA", Transformador.Double2S(bd.doubleValue()), ""});
			primeira = false;
		}
		
		Iterator it = tree.keySet().iterator();
		while (it.hasNext()) {
			Object chave = it.next();
			String data = chave.toString();
			if (!data.equals("ENTRADA")) {
				data = data.substring(6, 8) + "/" + data.substring(3, 5) + "/" +  data.substring(0, 2);
				BigDecimal bd = (BigDecimal)tree.get(chave);
				primeira = false;
				dtm.addRow(new String[] {data, Transformador.Double2S(bd.doubleValue()), ""});
			}
		}
		pdv.getSessao().put("item_a_ser_pago", 0);
		dtm.setValueAt("<<<", 0, 2);
		tbDetalhes.setModel(dtm);		
		
		tftotalAcrescimo.setText(Transformador.Double2S(acrescimo.doubleValue()));
		tftotalDesconto.setText(Transformador.Double2S(desconto.doubleValue()));
		tftotalVenda.setText(Transformador.Double2S(total.doubleValue()));
		tftotalAcumulado.setText(Transformador.Double2S(total.doubleValue()));
		tftotalSaldo.setText(Transformador.Double2S(total.doubleValue()));
		
		VendaVo venda = (VendaVo)pdv.getSessao().get("venda");
		venda.setVlTotalAcumulado(total.doubleValue());
		venda.setVlAcrescimoTotal(acrescimo.doubleValue());
		venda.setVlDescontoTotal(desconto.doubleValue());
		
	}
	
	public static void cancelarCupomAtual() throws Exception {
		PDVController pdv = PDVController.getInstance();
		ParametroVo parametros = (ParametroVo)pdv.getSessao().get("parametros");
		Ecf ecf = EcfFactory.getInstance(parametros.getFabricanteEcf());
		ecf.cancelaCupomAtual();
		CupomLocalVo cupom = (CupomLocalVo)pdv.getSessao().get("cupom");
		cupom.setStatus("9");
		HibernatePersistenceManager.saveOrUpdateLocal(cupom);
		PosicaoLocalBC.atualizar("LIVRE");
		//PosicaoOperadorBC.atualizaOperador(vendaVo);
		System.out.println("cancelarCupomAtual");
	}
	
	public static void cancelarCupomAnterior() throws Exception {
		PDVController pdv = PDVController.getInstance();
		ParametroVo parametros = (ParametroVo)pdv.getSessao().get("parametros");
		Ecf ecf = EcfFactory.getInstance(parametros.getFabricanteEcf());
		int ret = ecf.cancelaCupomAnterior();
		
		//TODO Verificar para achar cumpom anterior, pois se nao tem, esta null e ocorre erro
		CupomLocalVo cupom = (CupomLocalVo)pdv.getSessao().get("cupom");
		//TODO if temporario para nao ocorrer erro
		if (cupom != null) {
			cupom.setStatus("1");
			HibernatePersistenceManager.saveOrUpdateLocal(cupom);
		}
		System.out.println("cancelarCupomAnterior");
	}

	public static boolean verificaCupomCancelar() throws Exception {
		boolean ret = false;
		PDVController pdv = PDVController.getInstance();
		VendaVo venda = (VendaVo)pdv.getSessao().get("venda");
		if (venda.getVlSubTotal() == 0 && venda.getQtdeItensCupom()!= 0){
			CupomBC.cancelarCupomAtual();
			ret = true;
		}
		return ret;
	}

	public static boolean verificaEncerramentoCupom() throws Exception {
		boolean ret = false;
		PDVController pdv = PDVController.getInstance();
		// sincronização de tela
		JFrame frame = (JFrame)pdv.getSessao().get("frame");
		frame.update(frame.getGraphics());
		VendaVo venda = (VendaVo)pdv.getSessao().get("venda");
		if (venda.getVlTotalRecebido() >= venda.getVlTotalAcumulado()){
			ret = true;
		}
		return ret;
	}

	
	public static boolean verificaCupomInicializado(String origem) throws Exception {
		PDVController pdv = PDVController.getInstance();
		VendaVo venda = (VendaVo)pdv.getSessao().get("venda");
		
		System.out.println("getQtdeItensCupom->" + venda.getQtdeItensCupom());
		System.out.println("getVlSubTotal(->" + venda.getVlSubTotal());
		
		if (origem.equals("V")){
			if (venda.getQtdeItensCupom() >= 1) {
				return false;
			} else {
				return true;
			}
		}else{
			if (venda.getVlSubTotal() == 0.00) {
				return false;
			} else {
				return true;
			}
		}
	}
	
	public static void gravaCupomInicio() throws Exception {

		PDVController pdv = PDVController.getInstance();
		ParametroVo param = (ParametroVo)pdv.getSessao().get("parametros");
		PosicaoLocalVo posicao = (PosicaoLocalVo)pdv.getSessao().get("posicao");
		ControlePdvVo ctrl = ControlePdvVo.getInstance();
		VendaVo venda = (VendaVo)pdv.getSessao().get("venda");
		ClienteVo cliente = (ClienteVo)pdv.getSessao().get("cliente");
		
		Date dataHoje = new Date();
		
		CupomLocalVo cupom = new CupomLocalVo();
		cupom.setIdUnn(param.getIdUnn());
		cupom.setIdEmp(param.getIdEmp());
		cupom.setNrPdv(posicao.getNrPdv());
		cupom.setNrCupom(ctrl.getNrCupom());
		cupom.setDtCupom(ctrl.getDataMovto());
		cupom.setIdOpe(posicao.getIdOperador());
		cupom.setIdFiscal(posicao.getIdFiscal());
		cupom.setIdEntrada(posicao.getIdEntrada());
		
		cupom.setIdPvd(venda.getIdPvd());
		cupom.setIdVen(venda.getIdVendedor());
		cupom.setIdPromotor(venda.getIdPromotor());
		cupom.setCdTipoCupom(venda.getCdTipoCupom());
		cupom.setCdMidia(venda.getCdMidia());
		cupom.setIdCep(venda.getIdCep());
		cupom.setIdCli(cliente.getIdCliente());
		cupom.setCdModalEnt(venda.getCdModalEnt());
		cupom.setVlCupom(0.00);
		cupom.setNrCartao(venda.getNrCartaoFidelidade());
		cupom.setNrCupInicAcum(venda.getNrCupIniAcum());
		cupom.setDtInicio(dataHoje);
		
		pdv.getSessao().put("cupom", cupom);
		
		HibernatePersistenceManager.saveOrUpdateLocal(cupom);
		
	}

	public static void gravaCupomFim() throws Exception {
		
		PDVController pdv = PDVController.getInstance();
		VendaVo venda = (VendaVo)pdv.getSessao().get("venda");
		PagamentoVo pagamento = (PagamentoVo)pdv.getSessao().get("pagamento");
		
		Date dataHoje = new Date();
		
		CupomLocalVo cupom = (CupomLocalVo)pdv.getSessao().get("cupom");
		cupom.setDtFim(dataHoje);
		cupom.setIdCpg(venda.getIdCpg());
		cupom.setQtItens(venda.getQtdeItensCupom());
		cupom.setQtItensCanc(venda.getQtdeItensCancelados());
		cupom.setVlItensCanc(venda.getVlCancelamentoItem());
		cupom.setVlCupom(venda.getVlSubTotal());
		cupom.setVlTroco(pagamento.getVlTroco());
		cupom.setVlDinheiro(pagamento.getVlDinheiro());
		cupom.setVlCheque(pagamento.getVlCheque());
		cupom.setVlChequePre(pagamento.getVlChequePre());
		cupom.setVlCupomVale(pagamento.getVlCupom());
		cupom.setVlCrtCredito(pagamento.getVlCrtCredito());
		cupom.setVlCrtDebito(pagamento.getVlCrtDebito());
		cupom.setVlCrtProprio(pagamento.getVlCrtProprio());
		cupom.setVlCrtManual(pagamento.getVlCrtManual());
		cupom.setVlCrediario(pagamento.getVlCrediario());
		cupom.setVlPlano(pagamento.getVlPlanos());
		cupom.setVlLivre1(pagamento.getVlLivre1());
		cupom.setVlLivre2(pagamento.getVlLivre2());
		cupom.setVlLivre3(pagamento.getVlLivre3());
		cupom.setVlLivre4(pagamento.getVlLivre4());
		cupom.setVlLivre5(pagamento.getVlLivre5());
		cupom.setVlLivre6(pagamento.getVlLivre6());
		cupom.setVlLivre7(pagamento.getVlLivre7());
		cupom.setVlLivre8(pagamento.getVlLivre8());
		cupom.setVlLivre9(pagamento.getVlLivre9());
		cupom.setVlLivre10(pagamento.getVlLivre10());
		cupom.setVlAcrescimo(venda.getVlAcrescimoTotal());
		cupom.setVlDesconto(venda.getVlDescontoTotal());
		cupom.setVlDescFid(venda.getVlDescontoFidelidade());
		cupom.setVlDescSup(venda.getVlDescontoSupervisor());
		cupom.setCdPlanosPg(venda.getCdPlanos());
		//cupom.setIdDev(0);
		cupom.setStatus("0");
		
		HibernatePersistenceManager.saveOrUpdateLocal(cupom);
	}
	
	public static boolean verificarCupomCancelar(String param, String permissao) {
		
		if (permissao.equals("S")) {
			
			PDVController pdv = PDVController.getInstance();
			VendaVo venda = (VendaVo)pdv.getSessao().get("venda");
			
			if (param.equals("N")) {
				if (venda.getQtdeItensCupom() >= 1) {
					return true;
				} else {
					return false;
				}
			}
			if (param.equals("A")) {
				return true;
			}
			
		}
		
		return false;
		
	}
	
}

Esse é o br.com.intercommerce.bc.CupomBC .

Eu só não sei como solucionar o problema :(

T

Diz uma coisa, essa tabela está sendo populada?!

D

Desculpa minha ignorância mas, o que seria uma tabela populada?

T

Se está sendo inserido dados no teu objeto dtm!

D

Pelo que estou vendo ele está inserindo sim…

O que me complicou é que essa classe era meu colega quem estava desenvolvendo… E ele ficou doente e para eu dar continuidade na minha parte, tenho que resolver primeiro está

=S

estou realizando algumas alterações mas nenhum tem resultado positivo!

T

Para você prosseguir você pode tentar fazer o seguinte

troque

dtm.setValueAt("<<<", 0, 2);

por

dtm.addRow(new Object[]{null, null, "<<<"});
D

Thiago,

O erro não está mais aparecendo.
Obrigada

Mas voce sabe me explicar oq estava ocorrendo?

D

resolvido.OBrigada meninos!

W

Caused by: java.lang.ArrayIndexOutOfBoundsException: 0 >= 0 at java.util.Vector.elementAt(Unknown Source) at javax.swing.table.DefaultTableModel.setValueAt(Unknown Source) at br.com.intercommerce.bc.CupomBC.atualizarTelaPagamento(CupomBC.java:95)

Isto indica que um objeto do tipo Vector está vazio (size == 0)
No caso, provavelmente não foi adicionada à sua tabela algum item mas, mesmo assim, você está tentando obter algum valor.

Criado 26 de abril de 2010
Ultima resposta 26 de abr. de 2010
Respostas 12
Participantes 3