Pagina 1 din 1

Adaugare TVA

Scris: Vin Mar 13, 2015
de adrian_ady
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);
}

Adaugare TVA

Scris: Vin Mar 13, 2015
de MarPlo
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();
}

Adaugare TVA

Scris: Vin Mar 13, 2015
de adrian_ady
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>
Imagine
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);
}

Adaugare TVA

Scris: Vin Mar 13, 2015
de MarPlo
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

Adaugare TVA

Scris: Vin Mar 13, 2015
de adrian_ady
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.

Imagine

Adaugare TVA

Scris: Vin Mar 13, 2015
de MarPlo
Aplica roundNumber() ca sa rotunjesti numarul la cate zecimale vrei.
Adica:

Cod: Selectaţi tot

var tva_val = roundNumber(total * tva, 2);

Adaugare TVA

Scris: Vin Mar 13, 2015
de adrian_ady
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();
}

Adaugare TVA

Scris: Vin Mar 13, 2015
de MarPlo
Posibil ca unul din acele numere e preluat ca sir, de aceea semnul "+" are rol de concatenare (unire).
Asa ar trebui sa mearga:

Cod: Selectaţi tot

total = roundNumber(1*total + tva_val*1, 2);

Adaugare TVA

Scris: Vin Mar 13, 2015
de adrian_ady
Merge brici. Cum ne(ma) mai suporti pe aici asa fraieri? ;)