标记TTC价格的货物,有以下内容:
TTC原价(自动提取),折扣(输入),折扣之后的减价(代金券,或者再次减价),最终TTC单价(自动计算)。
税率(输入),HT单价(自动计算),单价的税费(也可能不需要,SQL现场计算)。
数量(输入),HT总价(自动计算),TTC总价(自动计算),总税费(也可能不需要,SQL现场计算)。

问题:
单价小数点三位的时候怎么办?乘以数量以后会有很大的影响。

注意:
1. 我认为不存在先减价,后折扣的问题。非要先减价,后折扣,那么相当于改变商品的原价,输入时直接修改原价即可。
2. 税费和税前单价,应该是根据折扣+减价之后的价钱进行计算。代金券的话,应该是折扣之后计算,在代金券之前,因为代金券还是要算入税费的。

TVA金额的计算,以及应该放在那里

// fixme 发票的TVA金额应该在生成发票的时候当场计算,并记录在Article里。因为这里知道各子项的TVA金额,直接累计一气呵成。否则如果如果子项TVA不同的话就很麻烦。
// fixme 不清楚 TVA是应该按照实收计算。所以当修改发票的时候,即实收金额被更改以后,TVA金额也应该改变,特麻烦。
// 订单的名义TVA金额应该写在订单表里。同理,订单名义价格也应该写在订单表里。(可能区分名义TVA和实际TVA)

MIS三联表分别记录哪些信息(但是同一次交了多种款项,怎么生成发票呢?):

总结:
1. Article子项表:
所有信息自备和齐全,方便订单来对它们进行统计。同时也方便转移到另外一个订单。
2. 订单表:
方便起见,但不是必须的,可以把订单所有Article子项的金额和TVA金额写到订单表里去,方便查询。但其实可以一个字不写,等到要用的时候去现查。现查不要紧,但不要现算。因为现算既浪费时间,而且有时候SQL也很难编写。
3. 发票表(其实是交款表?发票其实应该只有一张)
所有信息自备和齐全,方便订单来对它们进行统计。到底收了多少钱,多收少收,都很简单。

MIS输入界面(有关倒推):
直接标价TTC的减价特别简单,不必倒推。但是建议TTC不变,另外加一个减价选项。这样总共减了多少价也很清楚了。
只有开价HT并且减价的时候,才需要倒推,才能知道减价后的HT是多少。

MIS数据库后台字段设计:
不必把TTC单价×数量的最后总价钱记录在数据库里,需要的话,就现场计算。否则修改的时候太麻烦了,需要改太多的东西。

TVA金额的计算,以及应该放在那里的更多相关文章

  1. 货币金额的计算 - Java中的BigDecimal

    在<Effective Java>这本书中也提到这个原则,float和double只能用来做科学计算或者是工程计算,在商业计算中我们要用 java.math.BigDecimal.,而且使 ...

  2. 金额的计算BigDecimal类

    金额的计算BigDecimal类 double d = 9.84; double d2 = 1.22; //注意需要使用BigDecimal(String val)构造方法 BigDecimal bi ...

  3. Java工具类之——BigDecimal运算封装(包含金额的计算方式)

    日常对于金额计算,应该都是用的BigDecimal,  可是苦于没有好的工具类方法,现在贡献一个我正在用的对于数字计算的工具类,项目中就是用的这个,简单粗暴好用,话不多说,代码奉上(该工具类需要引入g ...

  4. java订单金额分级计算

    package ord; import java.util.ArrayList; public class order { public String orderid; public user use ...

  5. 关于金额,重量等浮点数的数据库字段设计(用Int,Long代替浮点数计算)

    金额.重量.成绩等数据库字段推荐使用int或bigint类型. 通常我们数据库设计中金额,重量等涉及到小数位的字段会用float或decimal,mysql还可以用double,但往往每笔金额的计算我 ...

  6. php 关于金额的几种计算方式

    php 关于金额的几种计算方式 平常开始开发过程中,多多少少都会遇到点关于金额的计算,比如设置返利.提现手续费.折扣啊等等诸如此类的比例,然后再计算出之后的实际的费用. 下面,以折扣为例,来实现这类计 ...

  7. 使用streaming window函数统计用户不同时间段平均消费金额等指标

    场景 现在餐厅老板已经不满足仅仅统计历史用户消费金额总数了,他想知道每个用户半年,每个月,每天,或者一小时消费的总额,来店消费的次数以及平均金额. 给出的例子计算的是每5秒,每30秒,每1分钟的用户消 ...

  8. JAVA金额按比例分摊,零头处理

    金额精确计算,必须使用BigDecimal; 平均分摊,分摊的零头,一般都是由数据"精度"和分摊系数决定的: 主要是如何对零头进行处理,保证尽可能的平均分配. 1.按户均摊 /** ...

  9. vue实战记录(五)- vue实现购物车功能之商品总金额计算和单选全选删除功能

    vue实战,一步步实现vue购物车功能的过程记录,课程与素材来自慕课网,自己搭建了express本地服务器来请求数据 作者:狐狸家的鱼 本文链接:vue实战-实现购物车功能(五) GitHub:sue ...

随机推荐

  1. NOIP2016 D2T2 蚯蚓

    洛谷P2827 其实是一道不是很难的模拟题,暴力好像可以拿80,AC的话要发现其中隐含的单调性 首先是一个小技巧,每次将所有蚯蚓的长度都+q肯定时间复杂度很大,那我们就想,其他所有的蚯蚓加,就相当于取 ...

  2. Introduction of Generator in Python

    Python中生成器的原理与使用详解 原创牛大财有大才 发布于2018-09-05 14:36:38 0.range() 函数,其功能是创建一个整数列表,一般用在 for 循环中 语法格式:range ...

  3. Win10 设置系统时间

  4. POJ 3261 Milk Patterns ( 后缀数组 && 出现k次最长可重叠子串长度 )

    题意 : 给出一个长度为 N 的序列,再给出一个 K 要求求出出现了至少 K 次的最长可重叠子串的长度 分析 : 后缀数组套路题,思路是二分长度再对于每一个长度进行判断,判断过程就是对于 Height ...

  5. 【BZOJ1132】Tro(叉积)

    题意:平面上有N个点. 求出所有以这N个点为顶点的三角形的面积和 N<=3000 N个点的坐标,其值在[0,10000] 思路:按从左到右的预处理点排序 每次枚举最左点作为原点,把叉积从大到小排 ...

  6. 【CF1237C】Balanced Removals(降维)

    题意:三维平面上有n个点,每个点的坐标为(x[i],y[i],z[i]),n为偶数 现在要求取n/2次,每次取走一对点(x,y),要求没有未被取走的点在以x和y为对角点的矩形中 要求给出任意一组合法方 ...

  7. 3D Computer Grapihcs Using OpenGL - 06 Vertex and Fragment Shaders

    从这里就接触到了可编程图形渲染管线. 下面介绍使用Vertex Shader (顶点着色器)和 Fragment Shader(像素着色器)的方法. 我们的目标是使用这两个着色器给三角形填充绿色. 添 ...

  8. Bazinga

    Bazinga Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Sub ...

  9. SQL报错:ORA-00911:无效的字符错误

    转载自:https://blog.csdn.net/huangyanlong/article/details/38096469 *)ORA-00911:无效的字符错误——由编译环境下一个小错误引起.S ...

  10. vue-router 2.0 跳转之router.push()

    router.push(location) 除了使用 创建 a 标签来定义导航链接,我们还可以借助 router 的实例方法,通过编写代码来实现. router.push(location) 想要导航 ...