JSFiddle - React, Tailwind, and code Playground

by Al Kasih

HTML

<div id="result">

</div>

JavaScript

var userA_income = '75000000';  
var userB_income = '750000000';  
var detailMutaion = []; 

var resultAnnualIncomeTax = getAnnualIncomeTax(userB_income); 
printToTable(resultAnnualIncomeTax);
console.log("resultAnnualIncomeTax is", resultAnnualIncomeTax);
console.log("detailMutaion is", detailMutaion);

function printToTable(detailTax) {
	
}

function getAnnualIncomeTax(income){
  
  var currentRate = [
    {id: 1, min_cost:0, max_cost: 50000000, currency:'IDR', rate_percentage: 5},
    {id: 2, min_cost:50000000, max_cost: 250000000, currency:'IDR', rate_percentage: 15},
    {id: 3, min_cost:250000000, max_cost: 500000000, currency:'IDR', rate_percentage: 25},
    {id: 4, min_cost:500000000, max_cost: false, currency:'IDR', rate_percentage: 30}
  ];
 	    
    
  for(var i=0; i<currentRate.length; i++){

    if(income > 0) {
      if(income >= currentRate[i].min_cost) {
        if(currentRate[i].max_cost != false) {
          rateRange = currentRate[i].max_cost - currentRate[i].min_cost; 
        } else {
          rateRange = currentRate[i].min_cost;                                 
        }
      } else {
        rateRange = income                  
      }
      income = income - rateRange;

      rateReducion = (rateRange * currentRate[i].rate_percentage) / 100; 

      newObj = {
        percentage:currentRate[i].rate_percentage, 
        rateRange:rateRange, 
        rateReducion: rateReducion
      }; 

      detailMutaion.push(newObj); 
    }
  }      
  return income;   
}; 



//getAnnualIncomeTax(userB_income);