calculationlibrary 0.2.7 calculationlibrary: ^0.2.7 copied to clipboard
Financial Calculation Library
Calculation Library #
Uma biblioteca Dart para cálculos matemáticos.
Instalação #
Para usar esta biblioteca em seu projeto Dart, rode este comando dart pub add calculationlibrary
Isso adicionará uma linha como esta ao pubspec.yaml
:
dependencies:
calculationlibrary: ^0.2.7
Uso #
Aqui está um exemplo de como usar a biblioteca para realizar cálculos:
import 'package:calculationlibrary/Calculator.dart';
void main() {
String method = 'addItem';
String item = '{"idItem": "123", "idEntry": "abc", "isTaxed": 0, "description": "Product A", "quantity": 1.0, "value": 60.0, "modifiers": []}';
String argument = '{"method": "$method", "item": $item}';
String acc = Calculator.run(argument);
argument = '{"method": "$method", "item": $item, "acc": $acc}';
acc = Calculator.run(argument);
}
O retorno de Calculator.run()
para os métodos additem
,removeItem
,addAccountDiscount
,addItemDiscount
,addServiceCharge
, accountPayment
, addItemModifier
e updateItem
será sempre uma String no formato do acc.
Descrição dos campos #
Acc
sum
: (double) Valor total da conta
amount
: (int) Quantidade total de itens
discount
: (double) Soma total dos descontos aplicados (conta + itens)
payment
: (double) Valor total do pagamento (conta + item)
servicecharge
: Taxa de serviço aplicada à conta
type
: (int) Tipo da taxa (valor ou porcentagem)
value
: (double) Valor da taxa
accountTaxValue
: (double) Valor total da taxa de serviço aplicada na conta
task
: (List) Lista de todas as operações realizadas
result
: (String) Resultado da última operação realizada
Item
idItem
: (String) Id do item
idEntry
: (String) Id do item na conta
isTaxed
: (bool) Indicação se o item deve ser incluso no cálculo da taxa de serviço ou não
description
: (String) Descrição do item
quantity
: (double) Quantidade do item na conta
value
: (double) Valor unitário
discount
: Desconto aplicado
type
: (int) Tipo do desconto
value
: (double) Valor do desconto
modifiers
: (List) Lista de todos os modificadores
Desconto, Taxa de serviço e Pagamento
type
: (int) Tipo
value
: (double) Valor
Códigos de erro
Retornados no campo result do acc :
ITEM_ALREADY_EXISTS
ITEM_NOT_REGISTERED
INVALID_INPUT
Métodos disponíveis #
getAcc: getAcc(String acc)
Recalcula o acc.
Parâmetros :
- acc
acc {
"sum" : 0.0
"amount": 0
"discount": 0.0
"payment": 0.0,
"servicecharge":{
"type": 0,
"value": 0.0,
"accountTaxValue": 0.0
},
"task": []
"result":{}
}
addItem: addItem(String item, {String? acc})
Adiciona um item a uma conta. Se o argumento acc for fornecido, o item será adicionado à conta especificada.
Parâmetros :
- acc (opcional)
- item: O item a ser adicionado.
item without discount {
"idItem": "",
"idEntry": "",
"isTaxed": 0,
"description": "",
"quantity": 0,
"value": 0.0,
"modifiers":[]
}
item with discount {
"idItem": "",
"idEntry": "",
"isTaxed": 0,
"description": "",
"quantity": 0,
"value": 0.0,
"discount": {
"type": 0
"value": 0.0
},
"modifiers":[]
}
removeItem: removeItem(String item, String acc)
Remove um item de uma conta específica.
Parâmetros :
- item
- acc
addAccountDiscount: addAccountDiscount(String discount, String acc)
Adiciona um desconto a uma conta específica.
Parâmetros :
- acc
- discount: Uma string JSON que representa o desconto a ser adicionado.
discount by percentage (10 %): {
"type": 1
"value": 10.0
}
discount by value (10,00): {
"type": 2
"value": 10.0
}
O type do discount indica se será um desconto por porcentagem ou por valor
addItemDiscount: addItemDiscount(String discount, String item, String acc)
Adiciona um desconto a um item em uma conta específica.
Parâmetros :
- discount
- item
- acc
addServiceCharge: addServiceCharge(String service, String acc)
Adiciona taxa de serviço uma conta específica.
Parâmetros :
- acc
- service
serviceCharge by percentage (10 %): {
"type": 1
"value": 10.0
}
serviceCharge by value (10,00): {
"type": 2
"value": 10.0
}
accountPayment: accountPayment(String payment, String acc)
Realiza o pagamento em uma conta específica.
Parâmetros :
- acc
- payment
payment by percentage (10 %): {
"type": 1
"value": 10.0
}
payment by value (10,00): {
"type": 2
"value": 10.0
}
addItemModifier: addItemModifier(String item, String acc, String modifier)
Adiciona um modificador a um item em uma conta específica.
Parâmetros :
- modifier
- item
- acc
updateItem: updateItem(String item, String acc)
Realiza a atualização do item cadastrado pelo item que foi fornecido.
Parâmetros :
- item
- acc
Retorno :
- O Acc é atualizado de acordo com os demais métodos, mas o resultado agora contém informações tanto do item antigo quanto do novo.
result = {
"old" : oldItem,
"new": newItem
};
transferItem: transferItem(String sourceAcc, String destinationAcc, String item)
Realiza a transferência de um item entre duas contas.
Parâmetros :
- sourceAcc
- destinationAcc
- item
Retorno :
- Retorna um Json contendo o sourceAcc e o destinationAcc:
result = {
"sourceAcc" : updatedSourceAcc,
"destinationAcc": updatedDestinationAcc
};