mirror of
https://github.com/Karaka-Management/oms-WarehouseManagement.git
synced 2026-01-11 15:18:41 +00:00
update
This commit is contained in:
parent
12e282057e
commit
42e9c0121c
|
|
@ -51,7 +51,7 @@ final class Installer extends InstallerAbstract
|
|||
{
|
||||
parent::install($app, $info, $cfgHandler);
|
||||
|
||||
self::createDefaultStock();
|
||||
self::createDefaultStock($app);
|
||||
|
||||
/* Stock types */
|
||||
$fileContent = \file_get_contents(__DIR__ . '/Install/types.json');
|
||||
|
|
@ -75,15 +75,38 @@ final class Installer extends InstallerAbstract
|
|||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private static function createDefaultStock() : void
|
||||
private static function createDefaultStock(ApplicationAbstract $app) : void
|
||||
{
|
||||
$stock = new Stock('Default');
|
||||
$stock->unit = 1;
|
||||
StockMapper::create()->execute($stock);
|
||||
/** @var \Modules\WarehouseManagement\Controller\ApiController $module */
|
||||
$module = $app->moduleManager->getModuleInstance('WarehouseManagement', 'Api');
|
||||
|
||||
$stockLocation = new StockLocation((string) ($stock->id . '-1'));
|
||||
$stockLocation->stock = $stock;
|
||||
StockLocationMapper::create()->execute($stockLocation);
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->header->account = 1;
|
||||
$request->setData('name', 'Default');
|
||||
$request->setData('unit', 1);
|
||||
$module->apiStockCreate($request, $response);
|
||||
|
||||
$responseData = $response->getData('');
|
||||
if (!\is_array($responseData)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$id = $responseData['response']->id;
|
||||
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->header->account = 1;
|
||||
$request->setData('name', $id . '-1');
|
||||
$request->setData('stock', $id);
|
||||
$module->apiStockLocationCreate($request, $response);
|
||||
|
||||
$responseData = $response->getData('');
|
||||
if (!\is_array($responseData)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -28,6 +28,9 @@ use Modules\WarehouseManagement\Models\StockMovementState;
|
|||
use Modules\WarehouseManagement\Models\StockMovementType;
|
||||
use Modules\WarehouseManagement\Models\StockShelf;
|
||||
use Modules\WarehouseManagement\Models\StockShelfMapper;
|
||||
use phpOMS\Message\Http\RequestStatusCode;
|
||||
use phpOMS\Message\RequestAbstract;
|
||||
use phpOMS\Message\ResponseAbstract;
|
||||
|
||||
/**
|
||||
* WarehouseManagement api controller class.
|
||||
|
|
@ -39,6 +42,137 @@ use Modules\WarehouseManagement\Models\StockShelfMapper;
|
|||
*/
|
||||
final class ApiController extends Controller
|
||||
{
|
||||
/**
|
||||
* Api method to create stock
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
* @param array $data Generic data
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @api
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function apiStockCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
|
||||
{
|
||||
if (!empty($val = $this->validateStockCreate($request))) {
|
||||
$response->header->status = RequestStatusCode::R_400;
|
||||
$this->createInvalidCreateResponse($request, $response, $val);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$stock = $this->createStockFromRequest($request);
|
||||
$this->createModel($request->header->account, $stock, StockMapper::class, 'stock', $request->getOrigin());
|
||||
$this->createStandardCreateResponse($request, $response, $stock);
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate stock create request
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
* @return array<string, bool>
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function validateStockCreate(RequestAbstract $request) : array
|
||||
{
|
||||
$val = [];
|
||||
if (($val['name'] = !$request->hasData('name'))
|
||||
) {
|
||||
return $val;
|
||||
}
|
||||
|
||||
return [];
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to create stock from request.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
* @return Stock
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function createStockFromRequest(RequestAbstract $request) : Stock
|
||||
{
|
||||
$stock = new Stock();
|
||||
$stock->name = $request->getDataString('name') ?? '';
|
||||
$stock->unit = $request->getDataInt('unit') ?? 1;
|
||||
|
||||
return $stock;
|
||||
}
|
||||
|
||||
/**
|
||||
* Api method to create stock
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
* @param array $data Generic data
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @api
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function apiStockLocationCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
|
||||
{
|
||||
if (!empty($val = $this->validateStockLocationCreate($request))) {
|
||||
$response->header->status = RequestStatusCode::R_400;
|
||||
$this->createInvalidCreateResponse($request, $response, $val);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$stock = $this->createStockLocationFromRequest($request);
|
||||
$this->createModel($request->header->account, $stock, StockLocationMapper::class, 'stocklocation', $request->getOrigin());
|
||||
$this->createStandardCreateResponse($request, $response, $stock);
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate stock create request
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
* @return array<string, bool>
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function validateStockLocationCreate(RequestAbstract $request) : array
|
||||
{
|
||||
$val = [];
|
||||
if (($val['name'] = !$request->hasData('name'))
|
||||
|| ($val['stock'] = !$request->hasData('stock'))
|
||||
) {
|
||||
return $val;
|
||||
}
|
||||
|
||||
return [];
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to create stock from request.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
* @return StockLocation
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function createStockLocationFromRequest(RequestAbstract $request) : StockLocation
|
||||
{
|
||||
$location = new StockLocation();
|
||||
$location->name = $request->getDataString('name') ?? '';
|
||||
$location->stock = $request->getDataInt('stock') ?? 1;
|
||||
|
||||
return $location;
|
||||
}
|
||||
|
||||
/**
|
||||
* Event after creating a stock
|
||||
*
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ use phpOMS\Views\View;
|
|||
final class BackendController extends Controller
|
||||
{
|
||||
/**
|
||||
* Routing end-point for application behaviour.
|
||||
* Routing end-point for application behavior.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
|
|
@ -77,7 +77,7 @@ final class BackendController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Routing end-point for application behaviour.
|
||||
* Routing end-point for application behavior.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
|
|
@ -113,7 +113,7 @@ final class BackendController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Routing end-point for application behaviour.
|
||||
* Routing end-point for application behavior.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
|
|
@ -137,7 +137,7 @@ final class BackendController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Routing end-point for application behaviour.
|
||||
* Routing end-point for application behavior.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
|
|
@ -168,7 +168,7 @@ final class BackendController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Routing end-point for application behaviour.
|
||||
* Routing end-point for application behavior.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
|
|
@ -207,7 +207,7 @@ final class BackendController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Routing end-point for application behaviour.
|
||||
* Routing end-point for application behavior.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ namespace Modules\WarehouseManagement\Models;
|
|||
use phpOMS\Stdlib\Base\Enum;
|
||||
|
||||
/**
|
||||
* Permision state enum.
|
||||
* Permission category enum.
|
||||
*
|
||||
* @package Modules\WarehouseManagement\Models
|
||||
* @license OMS License 2.0
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user