首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用字段和限制行

用字段和限制行
EN

Stack Overflow用户
提问于 2022-05-02 11:56:38
回答 1查看 57关注 0票数 0

我正在建立一个库存控制系统。我有两类文件:

  1. Supply -收到货物
  2. 需求的文件;注销货物

的文件

每一种供应产品都有自己的成本。

当我创造需求时,我需要了解我将从哪种供应中获取货物,以及从每一种供应中得到的产品数量是多少。

例如:

  1. 供应1- 10项产品;1项产品自费-100
  2. 供应2- 10项产品;1项产品自费-200
  3. 供应3- 10项产品;1项产品自费- 300

管理员创造了15种产品的需求。在这里,我需要弄清楚我从哪些物品中提取货物。因此,需求将从供应1中获取10种产品,从供应2中获取5种产品。

如何从DB过滤和只获取所需的行数,而不是以所有DB?为例--在上面的示例中--我需要获取供应品,如果它们的产品总量足以满足需求(供应1,供应2),而不需要过量供应(供应3),以避免额外的负载。

所以我需要这样的东西:

代码语言:javascript
运行
复制
Get supplies AND limit them by sum of supplies.quantity AND don't take extra supplies

我简化了结构,只剩下需要的部分。

EN

回答 1

Stack Overflow用户

发布于 2022-05-03 13:39:57

那我就坚持我的意见。您只需在另一栏中列出购买商品的成本、制造商认为该项目的价值(MSRP)、实际零售价。您也可以得到花哨和多行与不同数量的每个采购价格(整个销售价格,您购买的项目)。所以你的桌子看起来是这样的:

代码语言:javascript
运行
复制
Product
id   unique_item_id(sku)  description 
1       8675309            Very cool item


Location
id       name         address           phone           description
1    Joe's Place     1234 home st      555.555.5555     Joe's store
2    Bob's Place     5678 home st      666.666.6666     Bob's store
3    Jane's Place    9012 home st      777.777.7777     Jane's store


Inventory
id     sku     location    wholesale_price    msrp      retail       quantity 
1    8675309    1           1.00              6.00        5.00        9
2    8675309    2           1.00              6.00        5.00        15
3    8675309    3           1.00              6.00        5.00        12
4    8675309    3           2.00              6.00        5.00        2 

在库存表中放置外键,以指向产品和位置,指向位置id。

那么在你们的模特中:

库存

代码语言:javascript
运行
复制
public function product()
{
    return $this->belongsTo(Product::class, 'sku');
}

public function location()
{
    return $this->belongsTo(Location::class, 'id');
}

位置

代码语言:javascript
运行
复制
public function inventory()
    {
        return $this->belongsToMany(Inventory::class);
    }

产品

代码语言:javascript
运行
复制
public function inventory()
    {
        return $this->belongsToMany(Inventory::class);
    }

然后,在您想要获得结果的控制器操作中,只需执行如下调用:

代码语言:javascript
运行
复制
$inventory = Inventory::where('sku', '8675308')->with('product')->with(location)->first();

这将从条目sku为8675309的所有表中带回所有内容。从这里开始,就可以很容易地计算出产品总数的逻辑,并对每个位置的成本进行计算。*--请注意,我还没有测试过这段代码,这完全是我头上的错误。这只是一个例子,说明如何才能获得库存系统所需的所有信息。

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

https://stackoverflow.com/questions/72086326

复制
相关文章

相似问题

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