moduleManager->get('WarehouseManagement', 'Api'); $response = new HttpResponse(); $request = new HttpRequest(); $request->header->account = 1; $request->setData('name', 'Default'); $request->setData('unit', 1); $request->setData('inventory', true); $module->apiStockCreate($request, $response); } /** * Install default stock types * * @param ApplicationAbstract $app Application * @param array $types Stock types * * @return array * * @since 1.0.0 */ private static function createStockTypes(ApplicationAbstract $app, array $types) : array { $stockTypes = []; /** @var \Modules\WarehouseManagement\Controller\ApiStockTypeController $module */ $module = $app->moduleManager->get('WarehouseManagement', 'ApiStockType'); foreach ($types as $type) { $response = new HttpResponse(); $request = new HttpRequest(); $request->header->account = 1; $request->setData('name', $type['name'] ?? ''); $request->setData('title', \reset($type['l11n'])); $request->setData('language', \array_keys($type['l11n'])[0] ?? 'en'); $module->apiStockTypeCreate($request, $response); $responseData = $response->getData(''); if (!\is_array($responseData)) { continue; } $stockType = \is_array($responseData['response']) ? $responseData['response'] : $responseData['response']->toArray(); $stockTypes[] = $stockType; $isFirst = true; foreach ($type['l11n'] as $language => $l11n) { if ($isFirst) { $isFirst = false; continue; } $response = new HttpResponse(); $request = new HttpRequest(); $request->header->account = 1; $request->setData('title', $l11n); $request->setData('language', $language); $request->setData('type', $stockType['id']); $module->apiStockTypeL11nCreate($request, $response); } } return $stockTypes; } /** * Import accounts * * @param ApplicationAbstract $app Application * @param string $type Personal account type * * @return void * * @since 1.0.0 */ public static function personalStock(ApplicationAbstract $app, string $type) : void { /** @var \Modules\WarehouseManagement\Controller\ApiController $module */ $module = $app->moduleManager->get('WarehouseManagement', 'Api'); $mapper = $type === 'client' ? \Modules\ClientManagement\Models\ClientMapper::class : \Modules\SupplierManagement\Models\SupplierMapper::class; /** @var \Modules\ClientManagement\Models\Client|\Modules\SupplierManagement\Models\Supplier $person */ foreach ($mapper::yield()->executeYield() as $person) { $response = new HttpResponse(); $request = new HttpRequest(); $request->header->account = 1; $request->setData('name', $person->number); $request->setData($type, $person->id); $module->apiStockCreate($request, $response); } } }