copernico
v0.0.12
Published
Invoice calcs internal tool
Downloads
27
Readme
copernico
Internal tool for invoice calcs management
Install
#npm
npm install copernico
#yarn
yarn add copernico
Usage
Create new Invoice
import { Invoice } from "copernico";
const invoice = new Invoice({
date: new Date(),
issueDate: new Date(),
id: "222",
consecutive: "0001",
issuer: {
name: "someone",
address: "somewhere",
},
recipient: {
email: "someone",
},
});Add items
invoice.addItem({
id: "someid",
merchandiseId: "s233",
merchandiseType: "PRODUCT",
detail: "",
quantity: 1,
mixedMedia: " unidad",
unitPrice: 1000,
tax: {
type: "IVA",
code: "tt",
fee: 13,
},
});
modify items from invoice
// can be string or number
index = itemIndex || merchandiseId
//update line quantity
invoice.updateItemQuantity(2, index)
//update line Discount
invoice.updateItemDiscount(index ,{
value: 300,
type: 'AMOUNT'
})Add item discount on Item
//By amount
invoice.items[index].discount(300,'AMOUNT')
//By fee
invoice.items[index].discount(10,'FEE')
// 10 -> represents 10%Change items quantities on item
//By amount
invoice.items[index].updateQuantity(3)
API
Methods
| Function | Detail |
|-----------------------------------|---------------------------------------|
| Invoice.addItem(invoiceItem: InvoiceItem) | Add new item on list of items |
| Invoice.updateItemQuantity(quantity: number) | Remove specific item on list of items |
| Invoice.removeItem(quantity : number, itemIndex: string \| number) | Remove specific item on list of items |
| Invoice.updateItemDiscount(itemIndex: string \ |number, payload: {value: number, type: DiscountType}) | Update item discount by merchandiseId or item index, need the DiscountType: 'AMOUNT','FEE' |
| Invoice.updateItemTax(itemIndex: string \ |number, payload: { type: string; fee: number }) | update tax values |
| Invoice.removeItemDiscount(itemIndex: number | string) | remove discount of specific line |
| Invoice.update() | Update all values |
| Invoice.update() | Update all values |
| Item.updateQuantity(value: number) | update item quantity |
| Item.addTax(taxInfo) | Add tax data and update line data |
| Item.addDiscount(discountInfo) | Add discount to a line |
| Item.removeDiscount() | remove discount to a line |
Objects
Invoice
| Property | Detail |
|-----------------------------------|---------------------------------------|
| id | Database id |
| consecutive | number of invoice |
| date | Date of invoice |
| issueDate | creation date |
| issuer | Data of issuer can be any data structure |
| recipient | Object that represent the recipient |
| items[] | List of items each one is a InvoiceItem instance to manage the line data |
| amount | amount of invoice |
| subtotal | total before taxes |
| discounts | total of discounts |
| taxes | total of taxes |
| total | total of the invoice |
