在通过 logic hook 开发 SuiteCRM 合同回款率计算功能时,遇到一个疑问:
为何合同模块有两个合同金额字段?在计算回款率时,我应该使用哪个作为合同金额计算的参考呢?
- total_contract_value:合同金额
- total_contract_value_usdollar:合同金额(默认货币)
这两个字段在数据库的 aos_contracts 表中就能看到,在 admin 的工作室功能中也能看到。
同时,可以看到所有钱相关的字段,都是用了两个字段表示。即便加上了更多的币种,比如人民币,美元,欧元等,也是这两个字段。有 usdollar 后缀的字段,就是默认货币。
实测数据
通过实际测试数据,更容易理解一点。
比如,新建一个合同,设置合同金额的币种为美元,金额为 1000。
然后在数据库中就会看到:
- total_contract_value:合同金额为 1000
- total_contract_value_usdollar:合同金额(默认货币)为 7300,因为我将人民币设置为了 CRM 系统的默认货币。
这样就很清楚了。
结论
合同模块中的金额字段都是成对出现的。
有个金额,及默认金额。
金额就是界面上看到金额,不管是人民币、美元、欧元。
而存储的时候,实际上存储了两份,就是多了一个默认金额的自动转换。
比如,存储 2000 美元的合同金额,在数据库中还会存储一个乘以汇率之后的人民币金额 (因为目前系统的默认货币是人民币)
计算回款率时,直接使用合同金额作为分母即可,忽略默认金额。
没用的知识又增加了 : )
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式