Não consegui ver meu erro...na parte final do código

2 respostas
C

Amigos, estou fazendo o seguinte, instancio com scanner algumas classes que...

Pego simplificando o preco de um produto multiplicando a quantidade...apartir dai tenho o valor parcial da nota.
Com o ValorParcial tenho de calcular o ValorComImposto onde devo especificar que se for 1 pego a % do icmsRS se for 2 pego a % de icmsSC, e multiplico a exemplo se for 1 o valorParcial x 17 /100 = xxx

1) Só que nao estou conseguindo instanciar a classe dos estados IcmsRS ou IcmsSC com os valores de cada estado tipo se for 1 = RS tenho de pegar o valor 17 e calcular dentro.

2) nao consigo mostrar direito o estado escolhido e o valor total com o imposto deduzido.

segue as classes

public class NotaFiscal {

	public static void main(String args[]) {
		// Creating new invoice without using the constructor
		ItemNota items = new ItemNota("", "", 0, 0.0,0);

		items.setCodProduto();
		items.setDescricao();
		items.setQuantidade();
		items.setPreco();
		items.setUf();
		items.getValorParcial();
		
		items.getValorComIposto();
		items.getMostraTela();
		
		}

}
import java.util.Scanner;

public class ItemNota {

Scanner input = new Scanner(System.in);
	
	private String codigo;
	private String descricao;
	private int quant;
	private double preco;
	private int Uf;

	public ItemNota(String cod, String desc, int quant, double pric, int uf_imp)
	{
		this.codigo = cod;
		this.descricao = desc;
		this.quant = quant;
		this.preco = pric;
		this.Uf = uf_imp;
	}
	
	public void setCodProduto ()
	{
		System.out.printf("Qual o codigo do produto: ");
		String cod = input.nextLine();
		System.out.println();
		this.codigo = cod;
	}
	
	public void setDescricao()
	{
		System.out.printf("Descrição do produto: ");
		String desc = input.nextLine();
		System.out.println();
		this.descricao = desc;
	}
	
	public void setQuantidade ()
	{
		System.out.printf("Qual a quantidade: ");
		
		int quant = input.nextInt();
		System.out.println();
		
		if (quant < 0)
		{
			this.quant = 0;
		}
		else
		{
			this.quant = quant;
		}
	}
	
	public void setPreco ()
	{
		System.out.printf("Qual o preco do produto: ");
		
		double prec = input.nextDouble();
		System.out.println();
		
		if (prec < 0)
		{
			this.preco = 0.0;
		}
		else
		{
			this.preco = prec;
		}
	}
	

	
	public String getCodProduto ()
	{
		return this.codigo;
	}
	
	
	public String getDescricao ()
	{
		return this.descricao;
	}
	
	public int getQuantidade ()
	{
		return this.quant;
	}
	
	public double getPreco ()
	{
		return this.preco;
	}

      
	public double getValorParcial()
	{
		double valor;
		
		
		valor = this.preco * (double) this.quant;
		
		if (valor < 0)
		{
			return 0.0;
		}
		else
		{
			return valor;
		}
				
	}
	
	
	
	
	
	
	
	public int getUf() {
		return Uf;
	}

	public void setUf() {
		
		System.out.printf("Qual o Estado para o imposto 1- RS ou 2-SC: ");
		int uf_imp = input.nextInt();
		
		System.out.println();
		this.Uf = uf_imp;
	}

	public double getValorComIposto(){
		
		double valor = getValorParcial();
		int estado = getUf();
		
		IcmsRS rs = new IcmsRS();
		int icmsRS = rs.getImpostoRS();
		
		IcmsSC sc = new IcmsSC();
		int icmsSC = sc.getImpostoSC();
		if (estado ==1)
		{
			//IcmsRS rs = new IcmsRS();
			//int icms = rs.getImpostoRS();
			valor = valor * icmsRS;
			return valor;
		}
		else
		{
			//IcmsSC sc = new IcmsSC();
			
			valor = valor * icmsSC;
			return valor;
			
		}
		
		
	}
	
	
	
	
	public void getMostraTela()
	{
		System.out.printf("Historico\n%s - %s\n%d X %.2f = %.2f\n\n%s\n", getCodProduto(),
                getDescricao(), getQuantidade(), getPreco(),getValorParcial(),getUf());
		//aqui quando vou amostrar o GetUf..esta dando problema..nao consigo mostrar o estado e o valor com o imposto calculado
	}
}
public class IcmsRS {
	
	int impostoRS;

	public int getImpostoRS() {
		return impostoRS = 17;
	}

	public void setImpostoRS(int impostoRS) {
		this.impostoRS = impostoRS;
	}
	
	

}
public class IcmsSC {
	
	int impostoSC;

	public int getImpostoSC() {
		return impostoSC = 12;
	}

	public void setImpostoSC(int impostoSC) {
		this.impostoSC = impostoSC;
	}
	

}

2 Respostas

regis_hideki

Organiza esse código que você consegue entendê-lo melhor. Tá uma gambi feia de se ver :smiley:

Você instancia um ItemNota com valores padrão e depois usa o set sem passar nada como parâmetro pro Scanner colocar os valores… não é muito mais fácil pegar todos os valore por um Scanner no método main e só depois instanciar já tendo todos os valores de que precisa na mão?

C

Eu sei que está uma gambiarra danada, sou iniciante em java, aos poucos vou aprendendo a formatar padronizado melhor o código.
E este trabalho deve ser nesta forma de classes…com o main na NotaFiscal…pegando como atributo a quant do itemNota e fazendo calculos refletindo nas classes de categorias de Icms por estado.

Criado 12 de maio de 2013
Ultima resposta 12 de mai. de 2013
Respostas 2
Participantes 2