Inquiridor
Descobrir iva

Pergunta
-
Boas pessoal,
Em matemática podemos descobrir assim o iva, exemplo: ProdutoX 13€ com Iva de 23
13€/1.23 = 10.57 logo o iva é 10.57*23%= 2.43
Em programação tenho o produto na datagridview com o preço de 13 e iva de 23
como posso fazer a programação da conta para descobrir o iva e mandar o iva para uma textbox, não esquecendo que poderei ter um produto de iva 6 ou 13.
Todas as Respostas
-
cara não min lembro muito bem o que é iva, mais se não min engano é o imposto sobre o produto,
então vc quer saber qual foi o valor do imposto sobre o produto? se sim
segue um exemplo no qual o valor do produto com imposto é 54.00 e a pocentagem de imposto é 30%
o formatnumber é para a redondar os numeros para duas casa decimais
Dim PrecoComIVA As Double = 54.0 Dim IVA As Integer = 30 Dim PrecoSemIVA As Double Dim MotanteIVA As Double PrecoSemIVA = FormatNumber(PrecoComIVA / ((IVA + 100) / 100), 2) MotanteIVA = FormatNumber(PrecoSemIVA * (IVA / 100), 2)
- Sugerido como Resposta Jonnathanvb terça-feira, 29 de abril de 2014 14:06
- Editado Jonnathanvb terça-feira, 29 de abril de 2014 14:06
-
JotaMax, explica isso:
- ProdutoX 13€ com Iva de 23
13€/1.23 = 10.57 logo o iva é 10.57*23%= 2.43
Isso é o que? o IVA é igual a 13 dividido por 1,23 que da 10,57 então dividido por 23% (ou vezes 0,23) que da um IVA de 2,43? É esse 2,43 que você quer que apareça na TextBox, se for é fácil.
Friend Function ValIVA(ByRef Valor As Double, ByRef IVA As Double) As Double 'Use IVA = 0.23 para 23% Return ((Valor * (1 + IVA)) * IVA) End Function
Essa função da o retorno.
- Sugerido como Resposta SammuelMiranda sexta-feira, 25 de abril de 2014 20:24
- ProdutoX 13€ com Iva de 23
-
quant
produto
iva
Preco
Calcular iva
2
Papel
23
1.50
3
Champo
13
3.50
4
Banana
6
2.65
8
Maca
6
3.65
tenho uma datagrid onde o utilizar vai inserir os produtos e queria ao clicar num botao que fizesse a conta de quanto é o iva na celula(4) (calcular iva). Nao sei se me faço entender.
-
jotamax, so tem um problema, pelo o que intendi você quer o motante do iva na ultima coluna, mais qual valor você quer,
obs: os exemplos abaixo e sobre a primeira linha da tabela acima
1 - O mutante do iva sobre o valor unitario = 0,28
2 - O mutante do iva sobre o valor total ja que a quantidade é dois então o mutante do iva sera sobre a quantidade vezes o preço = 0,56
se caso sejá uma dessas situações segue o codigo abaixo para cada uma delas
codigo para o caso 1
For Each linha As DataGridViewRow In datagridview1.Rows Dim PrecoComIVA As Double = linha.Cells(3).Value Dim IVA As Integer = linha.Cells(2).Value Dim PrecoSemIVA As Double Dim MotanteIVA As Double PrecoSemIVA = FormatNumber(PrecoComIVA / ((IVA + 100) / 100), 2) MotanteIVA = FormatNumber(PrecoSemIVA * (IVA / 100), 2) linha.Cells(4).Value = MotanteIVA Next
codigo para o caso 2
For Each linha As DataGridViewRow In datagridview1.Rows Dim PrecoComIVA As Double = linha.Cells(0).Value * linha.Cells(3).Value Dim IVA As Integer = linha.Cells(2).Value Dim PrecoSemIVA As Double Dim MotanteIVA As Double PrecoSemIVA = FormatNumber(PrecoComIVA / ((IVA + 100) / 100), 2) MotanteIVA = FormatNumber(PrecoSemIVA * (IVA / 100), 2) linha.Cells(4).Value = MotanteIVA Next
-
OK Jota, faz assim olha,
veja a função que eu escrevi antes ok? o "Friend Function ValIVA(ByRef Valor As Double, ByRef IVA As Double) As Double" ok? Vou re-escrever pois o IVA está entre 0 e 100 e não entre 0 e 1 (não está no formato decimal da porcentagem).
Ficaria assim:
Friend Function ValIVA(ByRef Valor As Double, ByVal IVA As Double) As Double IVA = IVA / 100 Return ((Valor * (1 + IVA)) * IVA) End Function
Transformei o IVA em "ByVal" para poder atribuir novos valores, e não gerar retorno para não alterar a exibição na célula. Ai você tem o seguinte, ANTES DE ATRIBUIR O DATASET AO DATAGRID, faça:
Friend Sub Prepare(ByRef DSet As Sytem.Data.DataSet) For Each DRow As System.Data.DataRow In DSet.Tables(0).Rows DRow.Item(4) = ValIVA(CDbl(DRow.Item(3)), CDbl(DRow.Item(2))) Next DRow End Sub
Então, faça a sua query (ou o que quer que for que você vai usar para abastecer o DATAGRID - vai ser um DataSet) e antes de dar BIND no DATAGRID, rode o "Friend Sub Prepare(ByRef DSet As System.Data.DataSet)". É isso.
O único ponto é que quero que você confira o cálculo, se for:
-
ProdutoX 13€ com Iva de 23
13€/1.23 = 10.57 logo o iva é 10.57*23%= 2.43
Então a função está certa, se não tem que adequar a conta na linha do "Return" na função "ValIVA".
-
ProdutoX 13€ com Iva de 23
-