TVA金额的计算,以及应该放在那里
标记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金额的计算,以及应该放在那里的更多相关文章
- 货币金额的计算 - Java中的BigDecimal
在<Effective Java>这本书中也提到这个原则,float和double只能用来做科学计算或者是工程计算,在商业计算中我们要用 java.math.BigDecimal.,而且使 ...
- 金额的计算BigDecimal类
金额的计算BigDecimal类 double d = 9.84; double d2 = 1.22; //注意需要使用BigDecimal(String val)构造方法 BigDecimal bi ...
- Java工具类之——BigDecimal运算封装(包含金额的计算方式)
日常对于金额计算,应该都是用的BigDecimal, 可是苦于没有好的工具类方法,现在贡献一个我正在用的对于数字计算的工具类,项目中就是用的这个,简单粗暴好用,话不多说,代码奉上(该工具类需要引入g ...
- java订单金额分级计算
package ord; import java.util.ArrayList; public class order { public String orderid; public user use ...
- 关于金额,重量等浮点数的数据库字段设计(用Int,Long代替浮点数计算)
金额.重量.成绩等数据库字段推荐使用int或bigint类型. 通常我们数据库设计中金额,重量等涉及到小数位的字段会用float或decimal,mysql还可以用double,但往往每笔金额的计算我 ...
- php 关于金额的几种计算方式
php 关于金额的几种计算方式 平常开始开发过程中,多多少少都会遇到点关于金额的计算,比如设置返利.提现手续费.折扣啊等等诸如此类的比例,然后再计算出之后的实际的费用. 下面,以折扣为例,来实现这类计 ...
- 使用streaming window函数统计用户不同时间段平均消费金额等指标
场景 现在餐厅老板已经不满足仅仅统计历史用户消费金额总数了,他想知道每个用户半年,每个月,每天,或者一小时消费的总额,来店消费的次数以及平均金额. 给出的例子计算的是每5秒,每30秒,每1分钟的用户消 ...
- JAVA金额按比例分摊,零头处理
金额精确计算,必须使用BigDecimal; 平均分摊,分摊的零头,一般都是由数据"精度"和分摊系数决定的: 主要是如何对零头进行处理,保证尽可能的平均分配. 1.按户均摊 /** ...
- vue实战记录(五)- vue实现购物车功能之商品总金额计算和单选全选删除功能
vue实战,一步步实现vue购物车功能的过程记录,课程与素材来自慕课网,自己搭建了express本地服务器来请求数据 作者:狐狸家的鱼 本文链接:vue实战-实现购物车功能(五) GitHub:sue ...
随机推荐
- 【NOIP2016提高A组8.11】种树
题目 分析 题目要求把图删点,删成树. 考虑一下树的定义,点数n=边数m+1 并且,树中点两两之间联通,那么选的点就不能是割点. 可以用tarjan将图中最大的联通块,保证其中点两两之间有不止一条路径 ...
- GDKOI2016总结——被虐之旅
前言 一个被虐的旅程... 这次GDKOI的比赛虽然基本全上暴力,但是居然只有两道题得了分:30+30=60!我感觉整个人都不好了... day0 在去广州的路上,本来心情很好,但是坐在我斜后面的那位 ...
- linux运维、架构之路-xtrabackup
一.XtraBackup介绍 1.备份工具 xtrabackup:是一款基于InnoDB的在线热备工具,具有开源,免费,支持在线热备,占用磁盘空间小,能够非常快速地 ...
- java mar --->JSONArray.fromObject
<dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</art ...
- 【PowerOJ1737&网络流24题】太空飞行计划问题(最小割)
题意: 思路: #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned in ...
- oracle数据泵导入导出
1.首先建立DUMP_DIR sqlplus / as sysdba select * from dba_directories 如果没有DUMP_DIR就执行下面的语句 CREATE OR REPL ...
- duration of lease 1 0.5 0.875 DHCP 租借时间 续租时间 重新绑定时间
w
- CMD模块打包部署总结
目前线上系统利用Seajs做模板化,但是没有对js和css进行打包,在这次简历搜索优化项目里我尝试对gulp插件对Seajs模块打包. 安装gulp和相关插件 npm install -g gulp ...
- gitlab+jenkins之环境搭建
文中用到的安装包都已经上传到百度网盘,下载地址在文章底部(还没传...) 前置条件: 为了节约配置时间,在正式配置前,应该先做好如下准备: 首先先把整个流程仔仔细细的看3遍,确认对配置整体的流程,配置 ...
- 006-unity3d GUI初识、贴图、自定义鼠标指针
一.gui概念 无论摄像机拍摄到的图像怎么变换,GUI永远显示在屏幕上,不受变形.碰撞.光照的影响.对话框.战斗值.能量等.示例:用手机录像,摄像的参数不会随着拍摄场景变换.GUI基础GUI部分是每帧 ...