Git Product home page Git Product logo

warehouse-framework's Introduction

Laravel Warehouse Framework

PHP version Latest Version on Packagist Software License Tests Code style Total Downloads

Installation

You can install the package via composer:

composer require mvdnbrk/warehouse-framework

Run the install command:

php artisan warehouse:install

This package uses it's own database.
By default we assume that you will prepare a connection called "warehouse" in your config/database.php file.
If you would like to use a different connection you can do so by setting WAREHOUSE_DB_CONNECTION in your .env file.

Now you can run the migrations for this package with:

php artisan warehouse:migrate

Usage

Locations

You can retrieve all locations using the Just\Warehouse\Models\Location model:

Location::all();

Create a location with this artisan command:

php artisan warehouse:make:location

Inventory

Add inventory to a location with a GTIN value, you may pass an amount as the second parameter:

$location = Location::find(1);
$location->addInventory('1300000000000');
$location->addInventory('1234567890005', 2);

Move inventory to another location:

$inventory = Inventory::first();
$inventory->move($location);

You may also move inventory with it's GTIN from one location to another:

$location1 = Location::find(1);
$location2 = Location::find(2);
$location1->addInventory('1234567890005');

$location1->move('1234567890005', $location2);

Moving many items at once from one location to another:

$location->moveMany([
    '1234567890005',
    '1234567890005',
], $location2);

note: If you are trying to move many items at once and a failure occurs, an exception will be thrown and none of the items will be moved from one location to another.

Remove inventory from a location:

$location = Location::find(1);
$location->removeInventory('1234567890005');

Remove all inventory from a location:

$location = Location::find(1);
$location->removeAllInventory();

Orders

Create a new order:

$order = Order::create([
    'order_number' => 'my-first-order-0001',
]);

Add order lines with the addLine method by passing a GTIN value, you may pass an amount as the second parameter:

$order->addLine('1300000000000');
$order->addLine('1234567890005', 2);
$order->addLine(...);

note: You can only add order lines when the status of an order is either created or hold.
The same is true if you try to delete an order line.

Process the order:

$order->process();

This will update the order status to open and will be ready to be picked.

Put an order on hold

You can put an order on hold by calling the hold method. Unhold it with the unhold method:

$order->hold();
$order->unhold();

Order status

You can determine the status of an order with the following methods on the status property:

$order->status->isCreated();
$order->status->isOpen();
$order->status->isBackorder();
$order->status->isHold();
$order->status->isFulfilled();
$order->status->isDeleted();

Pick Lists

Once you have created an order you may retrieve a pick list.
To determine if a pick list is available and retrieve it:

$order->hasPickList();

$order->pickList();

The pickList method returns a collection:

$order->pickList()->each(function ($item) {
    $item->get('gtin');
    $item->get('location');
    $item->get('quantity');
});

When the order is picked you can mark it as fulfilled with the markAsFulfilled method:

$order->markAsFulfilled();

Replacing an order line

If for some reason a product is missing or for example the items is damaged you may replace an order line with the replace method:

$order->lines->first()->replace();

This will delete the reserved product from the inventory and replaces it with another item (if available).

Stock

To query stock quantities you may use the \Just\Warehouse\Facades\Stock facade:

Stock::available();
Stock::backorder();
Stock::reserved();

For a specific GTIN:

Stock::gtin('1300000000000')->available();
Stock::gtin('1300000000000')->backorder();
Stock::gtin('1300000000000')->reserved();

Events

This packages fires several events:

  • InventoryCreated
  • OrderLineCreated
  • OrderLineReplaced
  • OrderStatusUpdated
  • OrderFulfilled

Testing

composer test

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

The MIT License (MIT). Please see License File for more information.

warehouse-framework's People

Contributors

mvdnbrk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

warehouse-framework's Issues

Support laravel 9 or 10

Thanks to the author for providing such a great composer package that can be installed on laravel v8.6.12, but laravel 8 is no longer safe to update, I hope the author will support laravel 9 or 10

Unable to install using composer

Describe the bug
I'm using Laravel 8.7.1 and want to add warehouse-framework to my project using composer.

After using composer require mvdnbrk/warehouse-framework command i got errors

Problem 1 - Installation request for mvdnbrk/warehouse-framework ^0.12.0 -> satisfiable by mvdnbrk/warehouse-framework[v0.12.0]. - Conclusion: remove laravel/framework v8.7.1 - Conclusion: don't install laravel/framework v8.7.1 - mvdnbrk/warehouse-framework v0.12.0 requires illuminate/support ^6.0 || ^7.0 -> satisfiable by illuminate/support[6.x-dev, 7.x-dev, v6.0.0, v6.0.1, v6.0.2, v6.0.3, v6.0.4, v6.1.0, v6.10.0, v6.11.0, v6.12.0, v6.13.0, v6.13.1, v6.14.0, v6.15.0, v6.15.1, v6.16.0, v6.17.0, v6.17.1, v6.18.0, v6.18.1, v6.18.10, v6.18.11, v6.18.12, v6.18.13, v6.18.14, v6.18.15, v6.18.16, v6.18.17, v6.18.18, v6.18.19, v6.18.2, v6.18.20, v6.18.21, v6.18.22, v6.18.23, v6.18.24, v6.18.25, v6.18.26, v6.18.27, v6.18.28, v6.18.29, v6.18.3, v6.18.30, v6.18.31, v6.18.32, v6.18.33, v6.18.34, v6.18.35, v6.18.36, v6.18.37, v6.18.38, v6.18.39, v6.18.4, v6.18.40, v6.18.41, v6.18.42, v6.18.43, v6.18.5, v6.18.6, v6.18.7, v6.18.8, v6.18.9, v6.19.0, v6.19.1, v6.2.0, v6.20.0, v6.20.1, v6.20.10, v6.20.11, v6.20.12, v6.20.13, v6.20.14, v6.20.15, v6.20.16, v6.20.17, v6.20.18, v6.20.19, v6.20.2, v6.20.20, v6.20.21, v6.20.22, v6.20.23, v6.20.24, v6.20.25, v6.20.26, v6.20.27, v6.20.28, v6.20.29, v6.20.3, v6.20.30, v6.20.4, v6.20.5, v6.20.6, v6.20.7, v6.20.8, v6.20.9, v6.3.0, v6.4.1, v6.5.0, v6.5.1, v6.5.2, v6.6.0, v6.6.1, v6.6.2, v6.7.0, v6.8.0, v7.0.0, v7.0.1, v7.0.2, v7.0.3, v7.0.4, v7.0.5, v7.0.6, v7.0.7, v7.0.8, v7.1.0, v7.1.1, v7.1.2, v7.1.3, v7.10.0, v7.10.1, v7.10.2, v7.10.3, v7.11.0, v7.12.0, v7.13.0, v7.14.0, v7.14.1, v7.15.0, v7.16.0, v7.16.1, v7.17.0, v7.17.1, v7.17.2, v7.18.0, v7.19.0, v7.19.1, v7.2.0, v7.2.1, v7.2.2, v7.20.0, v7.21.0, v7.22.0, v7.22.1, v7.22.2, v7.22.3, v7.22.4, v7.23.0, v7.23.1, v7.23.2, v7.24.0, v7.25.0, v7.26.0, v7.26.1, v7.27.0, v7.28.0, v7.28.1, v7.28.2, v7.28.3, v7.28.4, v7.29.0, v7.29.1, v7.29.2, v7.29.3, v7.3.0, v7.30.0, v7.30.1, v7.30.2, v7.30.3, v7.30.4, v7.4.0, v7.5.0, v7.5.1, v7.5.2, v7.6.0, v7.6.1, v7.6.2, v7.7.0, v7.7.1, v7.8.0, v7.8.1, v7.9.0, v7.9.1, v7.9.2], laravel/framework[6.x-dev, 7.x-dev]. - don't install illuminate/support 6.x-dev|don't install laravel/framework v8.7.1 - don't install illuminate/support 7.x-dev|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.0.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.0.1|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.0.2|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.0.3|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.0.4|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.1.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.10.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.11.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.12.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.13.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.13.1|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.14.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.15.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.15.1|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.16.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.17.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.17.1|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.1|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.10|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.11|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.12|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.13|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.14|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.15|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.16|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.17|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.18|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.19|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.2|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.20|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.21|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.22|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.23|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.24|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.25|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.26|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.27|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.28|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.29|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.3|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.30|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.31|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.32|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.33|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.34|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.35|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.36|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.37|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.38|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.39|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.4|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.40|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.41|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.42|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.43|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.5|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.6|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.7|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.8|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.18.9|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.19.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.19.1|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.2.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.20.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.20.1|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.20.10|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.20.11|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.20.12|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.20.13|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.20.14|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.20.15|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.20.16|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.20.17|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.20.18|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.20.19|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.20.2|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.20.20|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.20.21|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.20.22|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.20.23|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.20.24|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.20.25|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.20.26|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.20.27|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.20.28|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.20.29|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.20.3|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.20.30|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.20.4|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.20.5|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.20.6|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.20.7|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.20.8|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.20.9|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.3.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.4.1|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.5.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.5.1|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.5.2|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.6.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.6.1|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.6.2|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.7.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v6.8.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.0.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.0.1|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.0.2|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.0.3|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.0.4|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.0.5|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.0.6|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.0.7|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.0.8|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.1.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.1.1|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.1.2|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.1.3|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.10.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.10.1|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.10.2|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.10.3|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.11.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.12.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.13.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.14.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.14.1|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.15.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.16.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.16.1|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.17.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.17.1|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.17.2|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.18.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.19.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.19.1|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.2.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.2.1|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.2.2|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.20.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.21.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.22.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.22.1|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.22.2|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.22.3|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.22.4|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.23.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.23.1|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.23.2|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.24.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.25.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.26.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.26.1|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.27.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.28.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.28.1|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.28.2|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.28.3|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.28.4|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.29.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.29.1|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.29.2|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.29.3|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.3.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.30.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.30.1|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.30.2|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.30.3|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.30.4|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.4.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.5.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.5.1|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.5.2|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.6.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.6.1|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.6.2|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.7.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.7.1|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.8.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.8.1|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.9.0|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.9.1|don't install laravel/framework v8.7.1 - don't install illuminate/support v7.9.2|don't install laravel/framework v8.7.1 - Can only install one of: laravel/framework[6.x-dev, v8.7.1]. - Can only install one of: laravel/framework[7.x-dev, v8.7.1]. - Installation request for laravel/framework (locked at v8.7.1, required as ^8.0) -> satisfiable by laravel/framework[v8.7.1].

Here is my composer.json file:
{ "name": "laravel/laravel", "type": "project", "description": "The Laravel Framework.", "keywords": [ "framework", "laravel" ], "license": "MIT", "require": { "php": "^7.3", "ext-json": "*", "danielme85/laravel-log-to-db": "^2.4", "fideloper/proxy": "^4.2", "fruitcake/laravel-cors": "^2.0", "guzzlehttp/guzzle": "^7.0.1", "laravel/framework": "^8.0", "laravel/jetstream": "^1.3", "laravel/sanctum": "^2.6", "laravel/tinker": "^2.0", "livewire/livewire": "^2.0", "spatie/laravel-permission": "^4.2", "telegram-bot/api": "^2.3", "torann/geoip": "^3.0" }, "require-dev": { "facade/ignition": "^2.3.6", "fzaninotto/faker": "^1.9.1", "mockery/mockery": "^1.3.1", "nunomaduro/collision": "^5.0", "phpunit/phpunit": "^9.3" }, "config": { "optimize-autoloader": true, "preferred-install": "dist", "sort-packages": true }, "extra": { "laravel": { "dont-discover": [] } }, "autoload": { "psr-4": { "App\\": "app/", "Database\\Factories\\": "database/factories/", "Database\\Seeders\\": "database/seeders/" }, "files": [ "app/Helpers/helpers.php" ] }, "autoload-dev": { "psr-4": { "Tests\\": "tests/" } }, "minimum-stability": "dev", "prefer-stable": true, "scripts": { "post-autoload-dump": [ "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", "@php artisan package:discover --ansi" ], "post-root-package-install": [ "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" ], "post-create-project-cmd": [ "@php artisan key:generate --ansi" ] } }

  • Warehouse Framework Version: latest
  • Laravel Version: 8.7.1
  • PHP Version: 7.4

Reserved inventory can be deleted.

An Inventory item which is reserved for an Order can be deleted.

It should not be possible to delete a reserved inventory item.

However, when an order is fulfilled we should allow the inventory item to be deleted.

Deleted inventory does not pair with order line when restored

Steps to reproduce:

  • Create inventory with gtin 1300000000000

  • Delete this newly created inventory item

  • Create an order with an order line with the same gtin 1300000000000

  • The order line gets status backorder

Now restore the deleted inventory item and it will not fulfill the order line.

Installation instructions

Hi.

I probably do not understand something from the instructions... So if it is easy for more clarification.

  • More detailed installation instructions
  • Add .env.example to the repository
  • Which versions of Laravel is it compatible with

Thnx

Handle the OrderLine updating event.

The OrderLineObserver currently prevents updating an OrderLine as follows:

public function updating(OrderLine $line)
{
    if ($line->gtin !== $line->getOriginal('gtin')) {
        throw new LogicException('The GTIN attribute can not be changed.');
    }

    if ($line->order_id !== $line->getOriginal('order_id')) {
        throw new LogicException('The order ID attribute can not be changed.');
    }
}

We might prevent updating an OrderLine here just by returning false or a more generic LogicException with a message saying: "An order line can not be updated".

Cannot insert duplicate key row in object 'reservation' When addInventory

Describe the bug
Cannot insert duplicate key row in object 'dbo.reservation' with unique index 'reservation_order_line_id_unique'

To Reproduce

$location = Location::find(1);
$location->addInventory('1300000000000');
$location->addInventory('1234567890005', 2);

Cannot insert duplicate key row in object 'reservation' with unique index 'reservation_order_line_id_unique'. The duplicate key value is (<NULL>). (SQL: insert into [reservation] ([inventory_id], [updated_at], [created_at]) values (2, 2020-02-06 12:44:52, 2020-02-06 12:44:52))

Please complete the following information:

  • Warehouse Framework Version: 0.11.7
  • Laravel Version: 6.x
  • PHP Version: 7.2+

Create Locations From Controller vs php artisan warehouse:make:location

Hi, is there a way to create locations within the controller instead of the artisan command?

Something like

$location = Location::create([
'gln' => 'New Location'
'name' => 'My New Stock Location'
]);

something like this would help a ton, because I have an old system with over 1000 locations that i want to transfer those location names over to your system. I hope this makes since.

Order status turns to "open" when adding new inventory.

Steps to reproduce:

  • Create a new order

  • Add an orderline (e.g. with gtin 1300000000)
    The order status is created.

  • Add inventory with gtin 1300000000
    The order status is now open.

The expected status is created and should not be updated to open.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.