Sha256: 930509f1cbef4bafb9cf1dd8d6a672f9d386056328fc3477d4149da8158892e7

Contents?: true

Size: 1.17 KB

Versions: 2

Compression:

Stored size: 1.17 KB

Contents

if (typeof tax === "undefined") {
  var tax = {};
}

tax.NONTAXABLE = <%= TaxJp::TAX_TYPE_NONTAXABLE %>; // 非課税
tax.INCLUSIVE = <%= TaxJp::TAX_TYPE_INCLUSIVE %>; // 内税
tax.EXCLUSIVE = <%= TaxJp::TAX_TYPE_EXCLUSIVE %>; // 外税

tax.RATE_3 = Date.parse('1989-04-01');

tax.consumptionTaxes = [
  <%- TaxJp::Utils.load_yaml('consumption_taxes.yml')['consumption_taxes'].reverse_each do |start_date, rate| -%>
    {date: Date.parse('<%= start_date.strftime('%Y-%m-%d') %>'), rate: <%= rate %>},
  <%- end -%>
];

tax.getRateOn = function(date, options) {
  if (typeof date === 'string') {
    date = Date.parse(date);
  }
  options = options || {};

  var ret = 0;
  for (var i = 0; this.consumptionTaxes.length; i ++) {
    ret = this.consumptionTaxes[i].rate;
    if (date >= this.consumptionTaxes[i].date) {
      break;
    }
  }

  if (options.percent) {
    ret *= 100;
  }
  
  return ret;
};

tax.calcTaxAmount = function(taxType, rate, amount) {
  if ( isNaN( amount ) ) {
    return '';
  }

  if ( taxType == tax.INCLUSIVE ) {
    return parseInt(amount * rate / (1 + rate));
  }
  else if ( taxType == tax.EXCLUSIVE ) {
    return parseInt(amount * rate); 
  }

  return '';
};

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
tax_jp-0.0.6 templates/app/assets/javascripts/tax.js.erb
tax_jp-0.0.5 templates/app/assets/javascripts/tax.js.erb