#sales #tax #big-decimal #calculations #operations #stage #calculator

baggins

执行销售计算操作的实用工具

6 个版本

0.2.0 2024年1月11日
0.1.10 2024年1月5日
0.1.6 2023年12月31日

110财务 中排名

Download history 3/week @ 2024-03-08 11/week @ 2024-03-15

每月下载 60

MIT 许可证

77KB
1.5K SLoC

baggins

执行销售总计和子总计计算操作的实用工具。

使用

baggins 提供了一个计算器,可以获取销售子总计,其中可以输入税费和折扣。

use baggins::{Calculator, discount, tax};

let mut c = baggins::DetailCalculator::new();

let err = c.add_discount_from_str(
    "10.0", 
    discount::Mode::Percentual
);
assert!(err.is_none(), "error adding percentual discount {:?}", err);

let err = c.add_tax_from_str(
    "16.0",
    tax::Stage::OverTaxable,
    tax::Mode::Percentual,
);

assert!(err.is_none(), "error adding percentual 16% tax {:?}", err);

输入税费和折扣后,可以调用 compute 方法来获取结果

let r = c.compute(
    BigDecimal::from_str("100.0").unwrap(),
    BigDecimal::from_str("2.0").unwrap(),
    None,
);

match r {
    Ok(calc) => {
        println!("calc: {}", calc);
    }
    Err(e) => {
        panic!("{e}")
    }
}

lib.rs:

baggins

baggins 提供了一系列实用工具,可以轻松有效地计算销售操作。由于货币计算的性质,使用 Bigdecimal crate 作为后端。

重点是易用性和学习 Rust,因此有很多改进的机会。

baggins 提供了一系列实用工具,可以轻松高效地计算销售细节的总额和子总额。重点是易用性和学习 Rust,因此有很多改进的机会。

依赖项

~1.5–2.1MB
~48K SLoC