Nonviolent Pigeon Manifestation

    seneca-salestax

    0.1.3 • Public • Published

    Build Status

    seneca-salestax

    A sales tax calculation plugin for the Seneca toolkit

    This module is a plugin for the Seneca framework. It provides business logic for sales tax calculation, such as:

    • tax rate resolution based on country, region, category or any configurable system
    • tax rate calculation

    Quick example

     
        var seneca = require('seneca')()
        seneca.use('salestax', {
           country: {
             FR: 0.196,
             UK: {
               '*': 0.20, // this is a wildcard used if no category is specified
               category: {
                 energy: 0.05,
                 child: 0.05,
                 food: 0
               }
             },
             IE: {
               category: {
                 energy: 0.05,
                 child: 0.05,
                 food: 0,
                 children_clothes: 0
               }
             }
           }
         })
     
        seneca.ready(function(){
     
          var salestaxpin = seneca.pin({role:'salestax',cmd:'*'})
     
          // configure your taxes and how they should apply
     
          salestaxpin.salestax({net: 100, country: 'FR'}, function(err, calcResult){
            console.log('total: ', calcResult.total) // 119.6
            console.log('tax: ', calcResult.tax) // 19.6
            console.log('rate: ', calcResult.rate) // 0.196
          })
     
          salestaxpin.salestax({net: 100, country: 'UK'}, function(err, calcResult){
            console.log('total: ', calcResult.total) // 120
            console.log('tax: ', calcResult.tax) // 20
            console.log('rate: ', calcResult.rate) // 0.20
          })
     
          salestaxpin.salestax({net: 100, country: 'UK', category: 'energy'}, function(err, calcResult){
            console.log('total: ', calcResult.total) // 105
            console.log('tax: ', calcResult.tax) // 5
            console.log('rate: ', calcResult.rate) // 0.05
          })
     
          salestaxpin.salestax({net: 100, country: 'UK', category: 'unknown'}, function(err, calcResult){
            console.log('error: ', err) // an error is returned because the category does not match a tax rate
          })
        })

    Install

    npm install --save seneca
    npm install --save seneca-salestax

    You'll need the seneca module to use this module - it's just a plugin.

    Usage

    To load the plugin:

    seneca.use('salestax', { ... options ... })

    Test

    npm test

    Install

    npm i seneca-salestax

    DownloadsWeekly Downloads

    0

    Version

    0.1.3

    License

    MIT

    Last publish

    Collaborators

    • avatar
    • avatar