appstract/laravel-stock

为 Eloquent 模型管理库存

1.2.0 2021-05-14 07:49 UTC

This package is auto-updated.

Last update: 2024-09-14 14:55:41 UTC


README

Latest Version on Packagist Total Downloads Software License Build Status

为 Eloquent 模型管理库存。此包将跟踪模型的库存变更。您可以增加、减少、清除和设置库存。还可以检查模型在特定日期/时间是否在库存中。

安装

您可以通过 composer 安装此包

composer require appstract/laravel-stock

在您的项目中运行 php artisan vendor:publish --provider="Appstract\Stock\StockServiceProvider" 将发布此包的所有文件。运行 php artisan migrate 来迁移表。现在您的数据库中将有 stock_mutations 表。

使用方法

添加 HasStock 特性将启用模型上的库存功能。

use Appstract\Stock\HasStock;

class Book extends Model
{
    use HasStock;
}

基本变更

$book->increaseStock(10);
$book->decreaseStock(10);
$book->mutateStock(10);
$book->mutateStock(-10);

清除库存

还可以清除库存并直接设置新的值。

$book->clearStock();
$book->clearStock(10);

设置库存

可以设置库存。这将创建一个新变更是旧值和新值之间的差异。

$book->setStock(10);

检查模型是否在库存中

还可以检查产品是否在库存中(具有最小值)。

$book->inStock();
$book->inStock(10);

当前库存

获取特定日期的当前库存值。

$book->stock;
$book->stock(Carbon::now()->subDays(10));

库存参数

向 StockMutation 添加描述和/或参考模型。

$book->increaseStock(10, [
    'description' => 'This is a description',
    'reference' => $otherModel,
]);

查询作用域

还可以根据库存进行查询。

Book::whereInStock()->get();
Book::whereOutOfStock()->get();

测试

composer test

贡献

欢迎贡献,感谢大家 :)

关于 Appstract

Appstract 是来自荷兰的一个小型团队。我们为 Web 开发者创建(开源)工具,并在 Medium 上撰写相关主题。您可以在 Twitter 上关注我们,为我们买杯啤酒在 Patreon 上支持我们

许可证

MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件