首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >库存管理数据库

库存管理数据库
EN

Stack Overflow用户
提问于 2012-08-20 15:04:45
回答 1查看 2.1K关注 0票数 5

我正在开发一个库存管理应用程序,这里是这样的场景:

-the用户通过以下信息输入购买的物品(物品Id、购买数量、购买价格、wind最低价格、购买日期)

在每个操作中,用户使用以下信息输入已售出的物品(物品Id、售出数量、wind的最终价格、交易日期),并且如果最终价格wind小于wind的最低价格,则每次操作我都会提醒用户

每一次操作,我都记录了一次风交易的收益(最终价格风-购买价格)

问题是:你可以在不同的时间以不同的价格购买相同的产品,然后我们就可以计算共同收益,

例如,如果我有以下情况

购买物品(t恤),10,25 20,25 23,10/08/2012购买物品(t恤),10,25 22,25 25,19/08/2012

在这种情况下,wind的操作我必须做什么,以恢复正确的购买价格和计算利润,并记录在销售表中的良好信息的文章?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-20 16:28:34

在金融领域,利润/亏损的计算通常(大多数情况下)是按照FIFO规则完成的。

也就是说:20美元买10美元,22美元卖5美元,21美元买5美元,23美元卖10美元,必须记录为

代码语言:javascript
复制
BUY 10 for $20 date1
BUY 5 for $21 date3

和单独的

代码语言:javascript
复制
SELL 5 @ $22 date2
SELL 10 @ $23 date4

现在,您要做的是根据FIFO规则将它们配对,并将中间投资组合写入数据库:

代码语言:javascript
复制
portfolios AFTER date
date1  10  profit/loss $0     avg-open $20
date2  5   profit/loss +$10   avg-open $20
date3  10  protit/loss +$10   avg-open $20.50
date4  0   profit/loss +$35   avg-open $0

逐一操作:在date1之后,我们以20美元的平均开盘价买入。从date1date2,我们卖出了一半的股票,赚取了5 * ($22 - $20 <- avg-open) = $10的利润,在那笔交易之后,还有5只证券的平均开盘价为20美元。

date2date3,我们增加了5只证券,利润/亏损保持不变,但平均开盘价上涨到20.5美元(20美元5只+21美元5只)。

最后,你把它们都卖了,利润率是10 * ($23 - $20.50) = $25加上之前的10美元,那就是35美元。

综上所述,您可以记录单个交易(BUY/SELL),然后动态计算投资组合、平均开盘价和盈亏。

或者,您可以将投资组合与到目前为止的利润/亏损和增量更新的平均开盘价一起存储。

我不建议两者都做(除非出于调试目的),因为这可能会给您带来数据级别的不一致,这是很糟糕的。如果您这样做了,选择其中一个表示为主,并(重新)计算另一个在不一致的情况下。

这只是个建议。

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

https://stackoverflow.com/questions/12033482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档