Adaugare TVA
Discutii si intrebari legate de scripturi si functii JavaScript, jQuery si Ajax, cod JavaScript in general.
-
adrian_ady
- Mesaje: 80
Adaugare TVA
Salut,
cum se adauga functia de calcul TVA la codul urmator?
Cod: Selectaţi tot
function update_total() {
var total = 0;
$('.price').each(function(i){
price = $(this).html().replace(" Lei","");
if (!isNaN(price)) total += Number(price);
});
total = roundNumber(total,2);
$('#subtotal').html(total+" Lei");
$('#total').html(total+" Lei");
update_balance();
}
function update_balance() {
var due = $("#total").html().replace(" Lei","") - $("#paid").val().replace(" Lei","");
due = roundNumber(due,2);
$('.due').html(due+" Lei");
}
function update_price() {
var row = $(this).parents('.item-row');
var price = row.find('.cost').val().replace(" Lei","") * row.find('.qty').val();
price = roundNumber(price,2);
isNaN(price) ? row.find('.price').html("N/A") : row.find('.price').html(price+" Lei");
update_total();
}
function bind() {
$(".cost").blur(update_price);
$(".qty").blur(update_price);
}
MarPlo
Mesaje: 4343
Salut
Ca sa obtii valoarea TVA, se inmulteste pretul sau total cu procentul de TVA. De exemplu, 24% inseamna sa inmultesti cu 0.24.
Pe cod e asa:
Cod: Selectaţi tot
var tva = 0.24; // TVA 24%
function update_total() {
var total = 0;
$('.price').each(function(i){
price = $(this).html().replace(" Lei","");
if (!isNaN(price)) total += Number(price);
});
total *= tva; // se aplica TVA-ul
total = roundNumber(total,2);
$('#subtotal').html(total+" Lei");
$('#total').html(total+" Lei");
update_balance();
}
adrian_ady
Mesaje: 80
Am facut schimbarile, rezultatul nu e chiar ok, am facut doua imagini ca sa vezi. TVA-ul il iau din db->setari.
Cod: Selectaţi tot
<table class="table_factura" id="items">
<tr>
<th>Produs</th>
<th>Descriere</th>
<th>Pret unitar</th>
<th>Cantitate</th>
<th>Total rand</th>
</tr>
<tr class="item-row">
<td class="item-name"><div class="delete-wpr"><textarea class="textarea_factura" placeholder=" Denumire produs "></textarea></div></td>
<td class="description"><textarea class="textarea_factura" placeholder=" Descriere produs "></textarea></td>
<td><textarea class="textarea_factura cost"></textarea></td>
<td><textarea class="textarea_factura qty"></textarea></td>
<td><span class="price"></span></td>
</tr>
<tr id="hiderow">
<td colspan="5"><a id="addrow" href="javascript:;" title="Add a row"> <i class="fa fa-plus-square-o"></i></a></td>
</tr>
<tr>
<td colspan="2" class="blank"> </td>
<td colspan="2" class="total-line">Subtotal</td>
<td class="total-value"><div id="subtotal"></div></td>
</tr>
<tr>
<td colspan="2" class="blank"> </td>
<td colspan="2" class="total-line">+ TVA <?=$tva?></td>
<td class="total-value"><div id="tva"></div></td>
</tr>
<tr>
<td colspan="2" class="blank"> </td>
<td colspan="2" class="total-line">Total</td>
<td class="total-value"><div id="total"></div></td>
</tr>
<tr>
<td colspan="2" class="blank"> </td>
<td colspan="2" class="total-line">- Avans platit</td>
<td class="total-value"><textarea class="textarea_factura" id="paid"></textarea></td>
</tr>
<tr>
<td colspan="2" class="blank"> </td>
<td colspan="2" class="total-line balance"><b>Total de plata</b></td>
<td class="total-value balance"><div class="due"></div></td>
</tr>
</table>
Codul
Cod: Selectaţi tot
var tva = 0.24; // TVA 24%
function update_total() {
var total = 0;
$('.price').each(function(i){
price = $(this).html().replace(" Lei","");
if (!isNaN(price)) total += Number(price);
});
total *= tva; // se aplica TVA-ul
total = roundNumber(total,2);
$('#subtotal').html(total+" Lei");
$('#total').html(total+" Lei");
$('#tva').html(total+" Lei");
update_balance();
}
function update_subtotal() {
var subtotal = $("#tva").html().replace(" Lei","") + $("#total").html().replace(" Lei","");
subtotal = roundNumber(subtotal,2);
$('.subtotal').html(subtotal+" Lei");
}
function update_balance() {
var due = $("#total").html().replace(" Lei","") - $("#paid").val().replace(" Lei","") + $("#subtotal").html().replace(" Lei","");
due = roundNumber(due,2);
$('.due').html(due+" Lei");
}
function update_price() {
var row = $(this).parents('.item-row');
var price = row.find('.cost').val().replace(" Lei","") * row.find('.qty').val();
price = roundNumber(price,2);
isNaN(price) ? row.find('.price').html("N/A") : row.find('.price').html(price+" Lei");
update_total();
}
function bind() {
$(".cost").blur(update_price);
$(".qty").blur(update_price);
$(".tva").blur(update_price);
}
MarPlo
Mesaje: 4343
Nu stiu exact unde trebuie aplicat tva-ul in codul tau. Eu doar iti arat cum obtii si incluzi tva-ul in pretul total, in rest aplica-l in codul tau unde stii ca trebuie adaugat.
Deci, in loc de aceste linii de cod:
Cod: Selectaţi tot
total *= tva; // se aplica TVA-ul
total = roundNumber(total,2);
$('#subtotal').html(total+" Lei");
$('#total').html(total+" Lei");
$('#tva').html(total+" Lei");
Foloseste pe acestea:
Cod: Selectaţi tot
var tva_val = total * tva; // obtine valoarea tva-ului
$('#tva').html(tva_val +" Lei"); // adauga tva in html
$('#subtotal').html(total+" Lei"); // in html totalul fara tva
total = roundNumber(total + tva_val, 2); // adauga TVA la total, si se rotunjeste numarul
$('#total').html(total+" Lei"); // in html totalul cu tva inclus
adrian_ady
Mesaje: 80
Multumesc, este foaaaaaarte bine!
Ar mai fi ceva care credeam ca pot sa rezolv insa... iata ca nu. Exista mici neconcordante cu zecimalele, arat in poza.
MarPlo
Mesaje: 4343
Aplica roundNumber() ca sa rotunjesti numarul la cate zecimale vrei.
Adica:
adrian_ady
Mesaje: 80
Ies toate in afara de Total: total = roundNumber(total + tva_val, 2);
Semnul plus adauga una langa alta cele doua valori, nu le aduna. Ex: 1+3 = 13 in loc de 1+3 = 4
Cod: Selectaţi tot
function update_total() {
var total = 0;
$('.price').each(function(i){
price = $(this).html().replace(" Lei","");
if (!isNaN(price)) total += Number(price);
});
var tva_val = total * tva; // obtine valoarea tva-ului
tva_val = roundNumber(tva_val,2);
$('#tva').html(tva_val+" Lei"); // adauga tva in html
var subtotal = total;
subtotal = roundNumber(subtotal,2);
$('#subtotal').html(subtotal+" Lei"); // in html totalul fara tva
total = roundNumber(total + tva_val, 2);
$('#total').html(total+" Lei"); // in html totalul cu tva inclus
update_balance();
}
MarPlo
Mesaje: 4343
Posibil ca unul din acele numere e preluat ca sir, de aceea semnul "+" are rol de concatenare (unire).
Asa ar trebui sa mearga:
adrian_ady
Mesaje: 80
Merge brici. Cum ne(ma) mai suporti pe aici asa fraieri?
Subiecte similare
-
Adaugare apostrof la value in input cu JavaScript
JavaScript - jQuery - Ajax
Primul mesaj
Am un cod JavaScript care adaugă un câmp input pentru utilizator:
var user = O'Conner, John ;
b.innerHTML += <input type='hidden' value=' +...
Ultimul mesaj
Poți să înlocuiesti caracterul cu entitatea lui HTML.
Astfel, pentru apostrof (') poate fi ’ sau ‘
var user = O'Conner,...
-
adaugare element nou intr-un array de obiecte
PHP - MySQL - XML
Primul mesaj
Salutare,
Am un array de obiecte sub forma aceasta:
$sql =
si un aray de forma aceasta:
$tipuri =
Cum pot adauga in primul array inca...
Ultimul mesaj
primesc o eroare pe linia json_decode($sql, true); , eroare este: json_decode() expects parameter 1 to be string, array given
Am rezolvat problema...
-
Adaugare orar zilele saptamanii in baza de date
PHP - MySQL - XML
Primul mesaj
Salut
Am o baza de date cu toate locatiile
location_id | name |address |telephone | open
Si un formular prin care incarc datele in bd....
Ultimul mesaj
Treaba cu adaugare json in mysql e simpla, se rezuma la adaugarea unui sir care contine ghilimele duble.
Problema la tine e ca acele ghilimele sunt...
-
Gasire element in array si adaugare ca prim index
JavaScript - jQuery - Ajax
Primul mesaj
Se presupune urmatorul array cu persoane:
const arr =
Vreau sa caut un anume 'name' in acel array, iar daca exista sa fie pus la inceput, cu...
Ultimul mesaj
Poti sa sortezi array-ul cu metoda sort() .
Codul urmator muta in fata (la inceput) toate obiectele cu proprietatea 'name'.
const arr = ;
let...
-
Adaugare array in acelasi array JS
JavaScript - jQuery - Ajax
Primul mesaj
Incerc sa adaug un array in acelasi array in javascript, Dar se pare ca nu functioneaza; al treilea element se adauga incontinuu.
Iata codul:
var...
Ultimul mesaj
Nu functioneaza cum vrei fiindca adaugi aceeași referință la array. De aceea, când array-ul se actualizează, cel din interior va fi si el actualizat....