mirror of
https://github.com/opensourcepos/opensourcepos.git
synced 2026-09-14 06:19:44 -04:00
Signed-off-by: objecttothis <17935339+objecttothis@users.noreply.github.com>
80 lines
2.4 KiB
PHP
80 lines
2.4 KiB
PHP
<?php
|
|
|
|
namespace Tests\Support;
|
|
|
|
use App\Models\Inventory;
|
|
use App\Models\Item;
|
|
use App\Models\Item_quantity;
|
|
|
|
trait ItemSearchFixtureTrait
|
|
{
|
|
protected function createSearchableItem(array $overrides = []): int
|
|
{
|
|
$itemData = array_merge([
|
|
'item_id' => null,
|
|
'name' => 'Searchable Item ' . uniqid(),
|
|
'category' => 'Test Category',
|
|
'cost_price' => 1.00,
|
|
'unit_price' => 5.00,
|
|
'reorder_level' => 0,
|
|
'item_number' => 'SEARCH-' . uniqid(),
|
|
'allow_alt_description' => 0,
|
|
'is_serialized' => 0,
|
|
'item_type' => ITEM,
|
|
'deleted' => 0,
|
|
], $overrides);
|
|
|
|
$itemModel = model(Item::class);
|
|
$itemModel->save_value($itemData);
|
|
|
|
$itemId = (int) $itemData['item_id'];
|
|
|
|
$this->addInventoryRecord($itemId);
|
|
|
|
return $itemId;
|
|
}
|
|
|
|
protected function addInventoryRecord(int $itemId, int $locationId = 1): void
|
|
{
|
|
$inventoryModel = model(Inventory::class);
|
|
$inventoryModel->insert([
|
|
'trans_items' => $itemId,
|
|
'trans_user' => 1,
|
|
'trans_comment' => 'Test fixture',
|
|
'trans_inventory' => 0,
|
|
'trans_location' => $locationId,
|
|
]);
|
|
}
|
|
|
|
protected function addItemQuantity(int $itemId, int $locationId, float $quantity): void
|
|
{
|
|
$itemQuantityModel = model(Item_quantity::class);
|
|
$itemQuantityModel->save_value(
|
|
[
|
|
'item_id' => $itemId,
|
|
'location_id' => $locationId,
|
|
'quantity' => $quantity,
|
|
],
|
|
$itemId,
|
|
$locationId
|
|
);
|
|
}
|
|
|
|
protected function defaultSearchFilters(array $overrides = []): array
|
|
{
|
|
return array_merge([
|
|
'start_date' => '2000-01-01',
|
|
'end_date' => '2100-01-01',
|
|
'stock_location_id' => -1,
|
|
'empty_upc' => false,
|
|
'low_inventory' => false,
|
|
'is_serialized' => false,
|
|
'no_description' => false,
|
|
'search_custom' => false,
|
|
'is_deleted' => false,
|
|
'temporary' => false,
|
|
'definition_ids' => [],
|
|
], $overrides);
|
|
}
|
|
}
|