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);
|
parent::install($app, $info, $cfgHandler);
|
||||||
|
|
||||||
self::createDefaultStock();
|
self::createDefaultStock($app);
|
||||||
|
|
||||||
/* Stock types */
|
/* Stock types */
|
||||||
$fileContent = \file_get_contents(__DIR__ . '/Install/types.json');
|
$fileContent = \file_get_contents(__DIR__ . '/Install/types.json');
|
||||||
|
|
@ -75,15 +75,38 @@ final class Installer extends InstallerAbstract
|
||||||
*
|
*
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
private static function createDefaultStock() : void
|
private static function createDefaultStock(ApplicationAbstract $app) : void
|
||||||
{
|
{
|
||||||
$stock = new Stock('Default');
|
/** @var \Modules\WarehouseManagement\Controller\ApiController $module */
|
||||||
$stock->unit = 1;
|
$module = $app->moduleManager->getModuleInstance('WarehouseManagement', 'Api');
|
||||||
StockMapper::create()->execute($stock);
|
|
||||||
|
|
||||||
$stockLocation = new StockLocation((string) ($stock->id . '-1'));
|
$response = new HttpResponse();
|
||||||
$stockLocation->stock = $stock;
|
$request = new HttpRequest(new HttpUri(''));
|
||||||
StockLocationMapper::create()->execute($stockLocation);
|
|
||||||
|
$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\StockMovementType;
|
||||||
use Modules\WarehouseManagement\Models\StockShelf;
|
use Modules\WarehouseManagement\Models\StockShelf;
|
||||||
use Modules\WarehouseManagement\Models\StockShelfMapper;
|
use Modules\WarehouseManagement\Models\StockShelfMapper;
|
||||||
|
use phpOMS\Message\Http\RequestStatusCode;
|
||||||
|
use phpOMS\Message\RequestAbstract;
|
||||||
|
use phpOMS\Message\ResponseAbstract;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* WarehouseManagement api controller class.
|
* WarehouseManagement api controller class.
|
||||||
|
|
@ -39,6 +42,137 @@ use Modules\WarehouseManagement\Models\StockShelfMapper;
|
||||||
*/
|
*/
|
||||||
final class ApiController extends Controller
|
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
|
* Event after creating a stock
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ use phpOMS\Views\View;
|
||||||
final class BackendController extends Controller
|
final class BackendController extends Controller
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Routing end-point for application behaviour.
|
* Routing end-point for application behavior.
|
||||||
*
|
*
|
||||||
* @param RequestAbstract $request Request
|
* @param RequestAbstract $request Request
|
||||||
* @param ResponseAbstract $response Response
|
* @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 RequestAbstract $request Request
|
||||||
* @param ResponseAbstract $response Response
|
* @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 RequestAbstract $request Request
|
||||||
* @param ResponseAbstract $response Response
|
* @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 RequestAbstract $request Request
|
||||||
* @param ResponseAbstract $response Response
|
* @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 RequestAbstract $request Request
|
||||||
* @param ResponseAbstract $response Response
|
* @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 RequestAbstract $request Request
|
||||||
* @param ResponseAbstract $response Response
|
* @param ResponseAbstract $response Response
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ namespace Modules\WarehouseManagement\Models;
|
||||||
use phpOMS\Stdlib\Base\Enum;
|
use phpOMS\Stdlib\Base\Enum;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Permision state enum.
|
* Permission category enum.
|
||||||
*
|
*
|
||||||
* @package Modules\WarehouseManagement\Models
|
* @package Modules\WarehouseManagement\Models
|
||||||
* @license OMS License 2.0
|
* @license OMS License 2.0
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user