首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >改变程序逻辑适应新的零售税法

改变程序逻辑适应新的零售税法
EN

Stack Overflow用户
提问于 2010-07-22 16:04:33
回答 2查看 177关注 0票数 0

背景

我有一个计划,已经实施了加拿大安大略省的两种“经典”税收: 5%的消费税和8%的PST。在2010年7月初,该省大部分改为13%的合并HST税。这里的影响和变化,但这些并不是这个问题的要点.

问题

什么是最佳做法和良好的解决方案,以适应未来的变化,容易在零售税?税收变动经常发生。我相信有很多这样的用户有很好的经验。

因为我的编程是.NET,所以我将为解决方案设置该环境。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-22 16:15:07

我将提出以下两种解决办法:

  • 将税收计算定义为系统的插件,以便以后的更改将本地化在插件库中。未来的更改可能涉及更新插件库或更改配置文件。这对于您的应用程序也是有用的,以适应不同省份的税收计算中的变化。您可以构建一个简单的插件代码,或者查看CodePlex中的MEF。
  • 引入一个纳税表,在该表中定义有关税收和计算字段的元数据信息。您可以更进一步,定义一种简单的特定于域的语言(如脚本),然后映射到您的代码字段/logics/整数来导出计算的数量。您的主要系统将加载税务表,并使用它来驱动所有的税收计算。希望将来的更新将涉及更新纳税表文件。
票数 2
EN

Stack Overflow用户

发布于 2010-07-22 16:11:50

当是一个简单的税率(如销售税)时,您将税率放在一个常数(即readonly decimal OntarioGST = 0.05M)中,并根据税率的变化向您的程序发送一个新的常量更新。

对于更复杂的税收,您可以应用战略模式并替换相应的算法。

无论哪种方式,您都需要推出更新您的软件。实际上,您不能期望您的客户能够处理这样的事情:“如果速率发生变化,您必须在配置文件中输入一个新的费率”。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3314466

复制
相关文章
如何删除一个文件名以分号开头的文件
该文讲述了如何删除一个文件名以分号开头的文件。作者通过在Linux上使用VIM编辑器不小心创建了一个文件名以分号开头的文件,尝试使用多种方法删除该文件,包括使用rm命令和转义字符。最后,作者通过在rm命令中添加转义字符成功删除了该文件。
雷大亨
2018/01/01
2.3K0
MySQL如何删除#sql开头的临时表
巡检时发现服务器磁盘空间不足,通过查看大文件进行筛选是发现有几个#sql开头的文件,且存在超过100G及10G以上的文件。
俊才
2019/12/24
5.7K0
小知识:grep过滤以#号开头的注释行 和 空行
xtts的配置文件,有很多注释不想直接去掉的情况下,想清楚的看到目前设置了哪些参数,可以用grep过滤查看: grep -vE '^#|^$' xtt.properties
Alfred Zhao
2023/10/10
1.1K0
如何彻底删除Oracle数据库,以创建相同实例名称的库
今天建库时选择了OMF方式,结果文件名称采用Oracle自动命名的方式,看不懂啊,于是乎决定删除再重建。 Oracle提供了删除数据库的指令:drop database。 需要数据库处于mount状态,然后alter system enable restricted session;,网上有帖子说还需要exclusive,由于我是VM装的,用户只有我一个,所以不用可以。由于当前处于open状态,需要改为mount,执行: SQL> alter database close; alter database close * ERROR at line 1: ORA-01093: ALTER DATABASE CLOSE only permitted with no sessions connected 原因是有个session仍连接,退出后再次执行, SQL> alter database close; Database altered. SQL> select status from v$instance; STATUS ------------ MOUNTED SQL> alter system enable restricted session; System altered. SQL> select status from v$instance; STATUS ------------ MOUNTED SQL> drop database; Database dropped. 此时alert.log记录信息: Create Relation ADR_CONTROL Create Relation ADR_INVALIDATION Create Relation INC_METER_IMPT_DEF Create Relation INC_METER_PK_IMPTS USER (ospid: 8748): terminating the instance Instance terminated by USER, pid = 8748 Deleted Oracle managed file /opt/app/ora11g/oradata/BISAL/controlfile/o1_mf_9x4fgq77_.ctl Deleted Oracle managed file /opt/app/ora11g/flash_recovery_area/BISAL/controlfile/o1_mf_9x4fgypb_.ctl Completed: drop database Shutting down instance (abort) License high water mark = 2 Fri Jul 25 19:09:26 2014 Instance shutdown complete 到oradata路径下看已经没有任何文件了,那么认为这个数据库已经被删除。 但再次执行dbca,企图创建相同实例的库时报错:
bisal
2019/01/29
3.6K0
在Vim/Vi中删除行、多行、范围、所有行及包含模式的行
使用linux服务器,免不了和vi编辑打交道,命令行下删除数量少还好,如果删除很多,光靠删除键一点点删除真的是头痛,还好Vi有快捷的命令可以删除多行、范围。
子润先生
2021/06/24
109.2K0
Power Query里如何实现按条件计数?
昨天的文章《PQ-M及函数:如何按某列数据筛选出一个表里最大的行?》发表后,有朋友留言,问在PQ里怎么实现Excel中的Countif效果:
大海Power
2021/08/30
8.8K1
读取除#开头的行的文件
f = open('读取测试文件.txt', 'r', encoding='utf-8') n = open('读取测试文件存储文件.txt', 'w', encoding='utf-8') text = f.readlines() print(text) # 遍历所有行 for i in text: # 便利一行 for flag in range(len(i)): # 如果从第一个位置开始是空格则跳过这个字符往后继续遍历,直到这行结束 if i[flag]
汪凡
2018/05/29
1.7K0
如何用 awk 删除文件中的重复行【Programming】
了解如何在不排序或更改其顺序的情况下使用awk'!visited $ 0 ++'。
Potato
2019/11/09
8.7K0
如何用 awk 删除文件中的重复行【Programming】
如何修改django的app在admin中显示的名称
在django的开发中,很多时候我们希望app在admin中显示成我们想要的中文名,而不是显示默认的app_label名称。 比如我们有一个blog应用,在我们的blog app目录下面,默认会生成一个apps.py文件,类似:
小海怪的互联网
2019/09/25
3.4K0
如何修改django的app在admin中显示的名称
在文件每一行开头增加字符串
首先,使用vim 打开某txt文件,输入冒号,并输入%s/^/,之后输入要添加的字符串即可
DoubleV
2022/03/25
1.1K0
Linux中删除特殊名称文件的多种方式
我们都知道,在linux删除一个文件可以使用rm命令,但是有一些特殊名称的文件使用普通的rm方式却没法删除,本文介绍linux中删除特殊名称文件的多种方式。
编程珠玑
2019/09/02
5.4K0
原 在windows上创建文件名以“.”开头的文件
如果在windows平台上,右键选择“新建”->“文本文档”,给取名”.npmignore”,会发现报错“必须键入文件名”,如下图。
全栈程序员站长
2022/07/07
1.5K0
原 在windows上创建文件名以“.”开头的文件
如何使用 Python 只删除 csv 中的一行?
我们将使用 drop() 方法从任何 csv 文件中删除该行。在本教程中,我们将说明三个示例,使用相同的方法从 csv 文件中删除行。在本教程结束时,您将熟悉该概念,并能够从任何 csv 文件中删除该行。
很酷的站长
2023/08/11
8330
如何使用 Python 只删除 csv 中的一行?
Power BI 支持的颜色名称列表
在Power BI可用直接使用英文颜色名称自定义颜色,比如字体颜色、背景色、填充色等,通常使用条件判断进行颜色变化。
wujunmin
2022/12/13
1.2K0
Power BI 支持的颜色名称列表
Netty在Dubbo中的线程名称
在项目中,我们会使用RocketMQ和Dubbo.前者用于发送或消费消息,后者用于两个模块之间的接口调用.
书唐瑞
2022/06/02
1.3K0
Netty在Dubbo中的线程名称
如何删除织梦系统power by dedecms
大家好,又见面了,我是你们的朋友全栈君。 很多织梦系统底部会自带power by dedecms,这个power by dedecms是什么意思呢?这个power by 是织梦系统版权信息,但是织梦系
全栈程序员站长
2022/09/07
3.9K0
Linux 删除文本中的重复行
这里我做了个简单的测试,当file中的重复行不再一起的时候,uniq将服务删除所有的重复行。经过排序后,所有相同的行都在相邻,因此unqi可以正常删除重复行。
阳光岛主
2019/02/19
8.6K0
在Power Pivot中如何查找对应的值求得费用?
在Excel中我们可以直接使用Vlookup或者Index和Match组合匹配到,然后下拉即可
逍遥之
2020/03/24
4.3K0
在Power Pivot中如何查找对应的值求得费用?
点击加载更多

相似问题

C#按Enter键按下按钮

32

Enter键按下按钮

22

读取C中的整数,直到按下ENTER键

33

当用户按下特定的键(如enter )时,如何侦听?

25

c++输入双倍,直到按下Enter键

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文