mirror of
https://github.com/Karaka-Management/oms-SupplierManagement.git
synced 2026-01-11 17:28:41 +00:00
update
This commit is contained in:
parent
80069d910a
commit
6260cf9d0e
10
Admin/Install/Admin.install.json
Normal file
10
Admin/Install/Admin.install.json
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"description": "Default supplier segmentation (segment, section, sales group, product group)",
|
||||||
|
"type": "setting",
|
||||||
|
"name": "1003200001",
|
||||||
|
"content": "[\"segment\":1, \"section\":1, \"supplier_group\":1]",
|
||||||
|
"pattern": "",
|
||||||
|
"module": "SupplierManagement"
|
||||||
|
}
|
||||||
|
]
|
||||||
43
Admin/Install/Admin.php
Normal file
43
Admin/Install/Admin.php
Normal file
|
|
@ -0,0 +1,43 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Jingga
|
||||||
|
*
|
||||||
|
* PHP Version 8.1
|
||||||
|
*
|
||||||
|
* @package Modules\SupplierManagement\Admin\Install
|
||||||
|
* @copyright Dennis Eichhorn
|
||||||
|
* @license OMS License 2.0
|
||||||
|
* @version 1.0.0
|
||||||
|
* @link https://jingga.app
|
||||||
|
*/
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Modules\SupplierManagement\Admin\Install;
|
||||||
|
|
||||||
|
use phpOMS\Application\ApplicationAbstract;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Admin class.
|
||||||
|
*
|
||||||
|
* @package Modules\SupplierManagement\Admin\Install
|
||||||
|
* @license OMS License 2.0
|
||||||
|
* @link https://jingga.app
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
class Admin
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Install Admin providing
|
||||||
|
*
|
||||||
|
* @param ApplicationAbstract $app Application
|
||||||
|
* @param string $path Module path
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public static function install(ApplicationAbstract $app, string $path) : void
|
||||||
|
{
|
||||||
|
\Modules\Admin\Admin\Installer::installExternal($app, ['path' => __DIR__ . '/Admin.install.json']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -56,10 +56,52 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "group",
|
"name": "segment",
|
||||||
"l11n": {
|
"l11n": {
|
||||||
"en": "Group",
|
"en": "Segment",
|
||||||
"de": "Gruppe"
|
"de": "Segment"
|
||||||
|
},
|
||||||
|
"value_type": 1,
|
||||||
|
"is_custom_allowed": false,
|
||||||
|
"validation_pattern": "",
|
||||||
|
"is_required": true,
|
||||||
|
"default_value": "",
|
||||||
|
"values": [
|
||||||
|
{
|
||||||
|
"value": 1,
|
||||||
|
"l11n": {
|
||||||
|
"en": "Segment 1",
|
||||||
|
"de": "Segment 1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "section",
|
||||||
|
"l11n": {
|
||||||
|
"en": "Section",
|
||||||
|
"de": "Sparte"
|
||||||
|
},
|
||||||
|
"value_type": 1,
|
||||||
|
"is_custom_allowed": false,
|
||||||
|
"validation_pattern": "",
|
||||||
|
"is_required": true,
|
||||||
|
"default_value": "",
|
||||||
|
"values": [
|
||||||
|
{
|
||||||
|
"value": 1,
|
||||||
|
"l11n": {
|
||||||
|
"en": "Section 1",
|
||||||
|
"de": "Section 1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "supplier_group",
|
||||||
|
"l11n": {
|
||||||
|
"en": "Supplier Group",
|
||||||
|
"de": "Lieferantengruppe"
|
||||||
},
|
},
|
||||||
"value_type": 1,
|
"value_type": 1,
|
||||||
"is_custom_allowed": false,
|
"is_custom_allowed": false,
|
||||||
|
|
@ -75,6 +117,27 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "supplier_type",
|
||||||
|
"l11n": {
|
||||||
|
"en": "Supplier Type",
|
||||||
|
"de": "Lieferantentyp"
|
||||||
|
},
|
||||||
|
"value_type": 1,
|
||||||
|
"is_custom_allowed": false,
|
||||||
|
"validation_pattern": "",
|
||||||
|
"is_required": true,
|
||||||
|
"default_value": "",
|
||||||
|
"values": [
|
||||||
|
{
|
||||||
|
"value": 1,
|
||||||
|
"l11n": {
|
||||||
|
"en": "Type 1",
|
||||||
|
"de": "Typ 1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "vat_id",
|
"name": "vat_id",
|
||||||
|
|
|
||||||
524
Controller/ApiAttributeController.php
Normal file
524
Controller/ApiAttributeController.php
Normal file
|
|
@ -0,0 +1,524 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Jingga
|
||||||
|
*
|
||||||
|
* PHP Version 8.1
|
||||||
|
*
|
||||||
|
* @package Modules\SupplierManagement
|
||||||
|
* @copyright Dennis Eichhorn
|
||||||
|
* @license OMS License 2.0
|
||||||
|
* @version 1.0.0
|
||||||
|
* @link https://jingga.app
|
||||||
|
*/
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Modules\SupplierManagement\Controller;
|
||||||
|
|
||||||
|
use Modules\Attribute\Models\Attribute;
|
||||||
|
use Modules\Attribute\Models\AttributeType;
|
||||||
|
use Modules\Attribute\Models\AttributeValue;
|
||||||
|
use Modules\SupplierManagement\Models\Attribute\SupplierAttributeMapper;
|
||||||
|
use Modules\SupplierManagement\Models\Attribute\SupplierAttributeTypeL11nMapper;
|
||||||
|
use Modules\SupplierManagement\Models\Attribute\SupplierAttributeTypeMapper;
|
||||||
|
use Modules\SupplierManagement\Models\Attribute\SupplierAttributeValueL11nMapper;
|
||||||
|
use Modules\SupplierManagement\Models\Attribute\SupplierAttributeValueMapper;
|
||||||
|
use phpOMS\Localization\BaseStringL11n;
|
||||||
|
use phpOMS\Message\Http\RequestStatusCode;
|
||||||
|
use phpOMS\Message\RequestAbstract;
|
||||||
|
use phpOMS\Message\ResponseAbstract;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* SupplierManagement class.
|
||||||
|
*
|
||||||
|
* @package Modules\SupplierManagement
|
||||||
|
* @license OMS License 2.0
|
||||||
|
* @link https://jingga.app
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
final class ApiAttributeController extends Controller
|
||||||
|
{
|
||||||
|
use \Modules\Attribute\Controller\ApiAttributeTraitController;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Api method to create item attribute
|
||||||
|
*
|
||||||
|
* @param RequestAbstract $request Request
|
||||||
|
* @param ResponseAbstract $response Response
|
||||||
|
* @param array $data Generic data
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @api
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public function apiSupplierAttributeCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
|
||||||
|
{
|
||||||
|
if (!empty($val = $this->validateAttributeCreate($request))) {
|
||||||
|
$response->header->status = RequestStatusCode::R_400;
|
||||||
|
$this->createInvalidCreateResponse($request, $response, $val);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$type = SupplierAttributeTypeMapper::get()->with('defaults')->where('id', (int) $request->getData('type'))->execute();
|
||||||
|
$attribute = $this->createAttributeFromRequest($request, $type);
|
||||||
|
$this->createModel($request->header->account, $attribute, SupplierAttributeMapper::class, 'attribute', $request->getOrigin());
|
||||||
|
$this->createStandardCreateResponse($request, $response, $attribute);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Api method to create supplier attribute l11n
|
||||||
|
*
|
||||||
|
* @param RequestAbstract $request Request
|
||||||
|
* @param ResponseAbstract $response Response
|
||||||
|
* @param array $data Generic data
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @api
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public function apiSupplierAttributeTypeL11nCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
|
||||||
|
{
|
||||||
|
if (!empty($val = $this->validateAttributeTypeL11nCreate($request))) {
|
||||||
|
$response->header->status = RequestStatusCode::R_400;
|
||||||
|
$this->createInvalidCreateResponse($request, $response, $val);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$attrL11n = $this->createAttributeTypeL11nFromRequest($request);
|
||||||
|
$this->createModel($request->header->account, $attrL11n, SupplierAttributeTypeL11nMapper::class, 'attr_type_l11n', $request->getOrigin());
|
||||||
|
$this->createStandardCreateResponse($request, $response, $attrL11n);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Api method to create supplier attribute type
|
||||||
|
*
|
||||||
|
* @param RequestAbstract $request Request
|
||||||
|
* @param ResponseAbstract $response Response
|
||||||
|
* @param array $data Generic data
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @api
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public function apiSupplierAttributeTypeCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
|
||||||
|
{
|
||||||
|
if (!empty($val = $this->validateAttributeTypeCreate($request))) {
|
||||||
|
$response->header->status = RequestStatusCode::R_400;
|
||||||
|
$this->createInvalidCreateResponse($request, $response, $val);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$attrType = $this->createAttributeTypeFromRequest($request);
|
||||||
|
$this->createModel($request->header->account, $attrType, SupplierAttributeTypeMapper::class, 'attr_type', $request->getOrigin());
|
||||||
|
$this->createStandardCreateResponse($request, $response, $attrType);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Api method to create supplier attribute value
|
||||||
|
*
|
||||||
|
* @param RequestAbstract $request Request
|
||||||
|
* @param ResponseAbstract $response Response
|
||||||
|
* @param array $data Generic data
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @api
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public function apiSupplierAttributeValueCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
|
||||||
|
{
|
||||||
|
if (!empty($val = $this->validateAttributeValueCreate($request))) {
|
||||||
|
$response->header->status = RequestStatusCode::R_400;
|
||||||
|
$this->createInvalidCreateResponse($request, $response, $val);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @var \Modules\Attribute\Models\AttributeType $type */
|
||||||
|
$type = SupplierAttributeTypeMapper::get()
|
||||||
|
->where('id', $request->getDataInt('type') ?? 0)
|
||||||
|
->execute();
|
||||||
|
|
||||||
|
$attrValue = $this->createAttributeValueFromRequest($request, $type);
|
||||||
|
$this->createModel($request->header->account, $attrValue, SupplierAttributeValueMapper::class, 'attr_value', $request->getOrigin());
|
||||||
|
|
||||||
|
if ($attrValue->isDefault) {
|
||||||
|
$this->createModelRelation(
|
||||||
|
$request->header->account,
|
||||||
|
(int) $request->getData('type'),
|
||||||
|
$attrValue->id,
|
||||||
|
SupplierAttributeTypeMapper::class, 'defaults', '', $request->getOrigin()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->createStandardCreateResponse($request, $response, $attrValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Api method to create supplier attribute l11n
|
||||||
|
*
|
||||||
|
* @param RequestAbstract $request Request
|
||||||
|
* @param ResponseAbstract $response Response
|
||||||
|
* @param array $data Generic data
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @api
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public function apiSupplierAttributeValueL11nCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
|
||||||
|
{
|
||||||
|
if (!empty($val = $this->validateAttributeValueL11nCreate($request))) {
|
||||||
|
$response->header->status = RequestStatusCode::R_400;
|
||||||
|
$this->createInvalidCreateResponse($request, $response, $val);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$attrL11n = $this->createAttributeValueL11nFromRequest($request);
|
||||||
|
$this->createModel($request->header->account, $attrL11n, SupplierAttributeValueL11nMapper::class, 'attr_value_l11n', $request->getOrigin());
|
||||||
|
$this->createStandardCreateResponse($request, $response, $attrL11n);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Api method to update SupplierAttribute
|
||||||
|
*
|
||||||
|
* @param RequestAbstract $request Request
|
||||||
|
* @param ResponseAbstract $response Response
|
||||||
|
* @param array $data Generic data
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @api
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public function apiSupplierAttributeUpdate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
|
||||||
|
{
|
||||||
|
if (!empty($val = $this->validateAttributeUpdate($request))) {
|
||||||
|
$response->header->status = RequestStatusCode::R_400;
|
||||||
|
$this->createInvalidUpdateResponse($request, $response, $val);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @var Attribute $old */
|
||||||
|
$old = SupplierAttributeMapper::get()
|
||||||
|
->with('type')
|
||||||
|
->with('type/defaults')
|
||||||
|
->with('value')
|
||||||
|
->where('id', (int) $request->getData('id'))
|
||||||
|
->execute();
|
||||||
|
|
||||||
|
$new = $this->updateAttributeFromRequest($request, clone $old);
|
||||||
|
|
||||||
|
if ($new->id === 0) {
|
||||||
|
// Set response header to invalid request because of invalid data
|
||||||
|
$response->header->status = RequestStatusCode::R_400;
|
||||||
|
$this->createInvalidUpdateResponse($request, $response, $new);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->updateModel($request->header->account, $old, $new, SupplierAttributeMapper::class, 'supplier_attribute', $request->getOrigin());
|
||||||
|
|
||||||
|
if ($new->value->getValue() !== $old->value->getValue()
|
||||||
|
&& $new->type->custom
|
||||||
|
) {
|
||||||
|
$this->updateModel($request->header->account, $old->value, $new->value, SupplierAttributeValueMapper::class, 'attribute_value', $request->getOrigin());
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->createStandardUpdateResponse($request, $response, $new);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Api method to delete SupplierAttribute
|
||||||
|
*
|
||||||
|
* @param RequestAbstract $request Request
|
||||||
|
* @param ResponseAbstract $response Response
|
||||||
|
* @param array $data Generic data
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @api
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public function apiSupplierAttributeDelete(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
|
||||||
|
{
|
||||||
|
if (!empty($val = $this->validateAttributeDelete($request))) {
|
||||||
|
$response->header->status = RequestStatusCode::R_400;
|
||||||
|
$this->createInvalidDeleteResponse($request, $response, $val);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$supplierAttribute = SupplierAttributeMapper::get()
|
||||||
|
->with('type')
|
||||||
|
->where('id', (int) $request->getData('id'))
|
||||||
|
->execute();
|
||||||
|
|
||||||
|
if ($supplierAttribute->type->isRequired) {
|
||||||
|
$this->createInvalidDeleteResponse($request, $response, []);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->deleteModel($request->header->account, $supplierAttribute, SupplierAttributeMapper::class, 'supplier_attribute', $request->getOrigin());
|
||||||
|
$this->createStandardDeleteResponse($request, $response, $supplierAttribute);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Api method to update SupplierAttributeTypeL11n
|
||||||
|
*
|
||||||
|
* @param RequestAbstract $request Request
|
||||||
|
* @param ResponseAbstract $response Response
|
||||||
|
* @param array $data Generic data
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @api
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public function apiSupplierAttributeTypeL11nUpdate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
|
||||||
|
{
|
||||||
|
if (!empty($val = $this->validateAttributeTypeL11nUpdate($request))) {
|
||||||
|
$response->header->status = RequestStatusCode::R_400;
|
||||||
|
$this->createInvalidUpdateResponse($request, $response, $val);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @var BaseStringL11n $old */
|
||||||
|
$old = SupplierAttributeTypeL11nMapper::get()->where('id', (int) $request->getData('id'))->execute();
|
||||||
|
$new = $this->updateAttributeTypeL11nFromRequest($request, clone $old);
|
||||||
|
|
||||||
|
$this->updateModel($request->header->account, $old, $new, SupplierAttributeTypeL11nMapper::class, 'supplier_attribute_type_l11n', $request->getOrigin());
|
||||||
|
$this->createStandardUpdateResponse($request, $response, $new);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Api method to delete SupplierAttributeTypeL11n
|
||||||
|
*
|
||||||
|
* @param RequestAbstract $request Request
|
||||||
|
* @param ResponseAbstract $response Response
|
||||||
|
* @param array $data Generic data
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @api
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public function apiSupplierAttributeTypeL11nDelete(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
|
||||||
|
{
|
||||||
|
if (!empty($val = $this->validateAttributeTypeL11nDelete($request))) {
|
||||||
|
$response->header->status = RequestStatusCode::R_400;
|
||||||
|
$this->createInvalidDeleteResponse($request, $response, $val);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @var BaseStringL11n $supplierAttributeTypeL11n */
|
||||||
|
$supplierAttributeTypeL11n = SupplierAttributeTypeL11nMapper::get()->where('id', (int) $request->getData('id'))->execute();
|
||||||
|
$this->deleteModel($request->header->account, $supplierAttributeTypeL11n, SupplierAttributeTypeL11nMapper::class, 'supplier_attribute_type_l11n', $request->getOrigin());
|
||||||
|
$this->createStandardDeleteResponse($request, $response, $supplierAttributeTypeL11n);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Api method to update SupplierAttributeType
|
||||||
|
*
|
||||||
|
* @param RequestAbstract $request Request
|
||||||
|
* @param ResponseAbstract $response Response
|
||||||
|
* @param array $data Generic data
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @api
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public function apiSupplierAttributeTypeUpdate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
|
||||||
|
{
|
||||||
|
if (!empty($val = $this->validateAttributeTypeUpdate($request))) {
|
||||||
|
$response->header->status = RequestStatusCode::R_400;
|
||||||
|
$this->createInvalidUpdateResponse($request, $response, $val);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @var AttributeType $old */
|
||||||
|
$old = SupplierAttributeTypeMapper::get()->with('defaults')->where('id', (int) $request->getData('id'))->execute();
|
||||||
|
$new = $this->updateAttributeTypeFromRequest($request, clone $old);
|
||||||
|
|
||||||
|
$this->updateModel($request->header->account, $old, $new, SupplierAttributeTypeMapper::class, 'supplier_attribute_type', $request->getOrigin());
|
||||||
|
$this->createStandardUpdateResponse($request, $response, $new);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Api method to delete SupplierAttributeType
|
||||||
|
*
|
||||||
|
* @param RequestAbstract $request Request
|
||||||
|
* @param ResponseAbstract $response Response
|
||||||
|
* @param array $data Generic data
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @api
|
||||||
|
*
|
||||||
|
* @todo Implement API function
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public function apiSupplierAttributeTypeDelete(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
|
||||||
|
{
|
||||||
|
if (!empty($val = $this->validateAttributeTypeDelete($request))) {
|
||||||
|
$response->header->status = RequestStatusCode::R_400;
|
||||||
|
$this->createInvalidDeleteResponse($request, $response, $val);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @var AttributeType $supplierAttributeType */
|
||||||
|
$supplierAttributeType = SupplierAttributeTypeMapper::get()->with('defaults')->where('id', (int) $request->getData('id'))->execute();
|
||||||
|
$this->deleteModel($request->header->account, $supplierAttributeType, SupplierAttributeTypeMapper::class, 'supplier_attribute_type', $request->getOrigin());
|
||||||
|
$this->createStandardDeleteResponse($request, $response, $supplierAttributeType);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Api method to update SupplierAttributeValue
|
||||||
|
*
|
||||||
|
* @param RequestAbstract $request Request
|
||||||
|
* @param ResponseAbstract $response Response
|
||||||
|
* @param array $data Generic data
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @api
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public function apiSupplierAttributeValueUpdate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
|
||||||
|
{
|
||||||
|
if (!empty($val = $this->validateAttributeValueUpdate($request))) {
|
||||||
|
$response->header->status = RequestStatusCode::R_400;
|
||||||
|
$this->createInvalidUpdateResponse($request, $response, $val);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @var AttributeValue $old */
|
||||||
|
$old = SupplierAttributeValueMapper::get()->where('id', (int) $request->getData('id'))->execute();
|
||||||
|
|
||||||
|
/** @var \Modules\Attribute\Models\Attribute $attr */
|
||||||
|
$attr = SupplierAttributeMapper::get()
|
||||||
|
->with('type')
|
||||||
|
->where('id', $request->getDataInt('attribute') ?? 0)
|
||||||
|
->execute();
|
||||||
|
|
||||||
|
$new = $this->updateAttributeValueFromRequest($request, clone $old, $attr);
|
||||||
|
|
||||||
|
$this->updateModel($request->header->account, $old, $new, SupplierAttributeValueMapper::class, 'supplier_attribute_value', $request->getOrigin());
|
||||||
|
$this->createStandardUpdateResponse($request, $response, $new);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Api method to delete SupplierAttributeValue
|
||||||
|
*
|
||||||
|
* @param RequestAbstract $request Request
|
||||||
|
* @param ResponseAbstract $response Response
|
||||||
|
* @param array $data Generic data
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @api
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public function apiSupplierAttributeValueDelete(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
|
||||||
|
{
|
||||||
|
// @todo I don't think values can be deleted? Only Attributes
|
||||||
|
// However, It should be possible to remove UNUSED default values
|
||||||
|
// either here or other function?
|
||||||
|
// if (!empty($val = $this->validateAttributeValueDelete($request))) {
|
||||||
|
// $response->header->status = RequestStatusCode::R_400;
|
||||||
|
// $this->createInvalidDeleteResponse($request, $response, $val);
|
||||||
|
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// /** @var \Modules\SupplierManagement\Models\SupplierAttributeValue $supplierAttributeValue */
|
||||||
|
// $supplierAttributeValue = SupplierAttributeValueMapper::get()->where('id', (int) $request->getData('id'))->execute();
|
||||||
|
// $this->deleteModel($request->header->account, $supplierAttributeValue, SupplierAttributeValueMapper::class, 'supplier_attribute_value', $request->getOrigin());
|
||||||
|
// $this->createStandardDeleteResponse($request, $response, $supplierAttributeValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Api method to update SupplierAttributeValueL11n
|
||||||
|
*
|
||||||
|
* @param RequestAbstract $request Request
|
||||||
|
* @param ResponseAbstract $response Response
|
||||||
|
* @param array $data Generic data
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @api
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public function apiSupplierAttributeValueL11nUpdate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
|
||||||
|
{
|
||||||
|
if (!empty($val = $this->validateAttributeValueL11nUpdate($request))) {
|
||||||
|
$response->header->status = RequestStatusCode::R_400;
|
||||||
|
$this->createInvalidUpdateResponse($request, $response, $val);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @var BaseStringL11n $old */
|
||||||
|
$old = SupplierAttributeValueL11nMapper::get()->where('id', (int) $request->getData('id'));
|
||||||
|
$new = $this->updateAttributeValueL11nFromRequest($request, clone $old);
|
||||||
|
|
||||||
|
$this->updateModel($request->header->account, $old, $new, SupplierAttributeValueL11nMapper::class, 'supplier_attribute_value_l11n', $request->getOrigin());
|
||||||
|
$this->createStandardUpdateResponse($request, $response, $new);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Api method to delete SupplierAttributeValueL11n
|
||||||
|
*
|
||||||
|
* @param RequestAbstract $request Request
|
||||||
|
* @param ResponseAbstract $response Response
|
||||||
|
* @param array $data Generic data
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @api
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public function apiSupplierAttributeValueL11nDelete(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
|
||||||
|
{
|
||||||
|
if (!empty($val = $this->validateAttributeValueL11nDelete($request))) {
|
||||||
|
$response->header->status = RequestStatusCode::R_400;
|
||||||
|
$this->createInvalidDeleteResponse($request, $response, $val);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @var BaseStringL11n $supplierAttributeValueL11n */
|
||||||
|
$supplierAttributeValueL11n = SupplierAttributeValueL11nMapper::get()->where('id', (int) $request->getData('id'))->execute();
|
||||||
|
$this->deleteModel($request->header->account, $supplierAttributeValueL11n, SupplierAttributeValueL11nMapper::class, 'supplier_attribute_value_l11n', $request->getOrigin());
|
||||||
|
$this->createStandardDeleteResponse($request, $response, $supplierAttributeValueL11n);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -15,24 +15,26 @@ declare(strict_types=1);
|
||||||
namespace Modules\SupplierManagement\Controller;
|
namespace Modules\SupplierManagement\Controller;
|
||||||
|
|
||||||
use Modules\Admin\Models\Account;
|
use Modules\Admin\Models\Account;
|
||||||
|
use Modules\Admin\Models\NullAccount;
|
||||||
use Modules\Media\Models\MediaMapper;
|
use Modules\Media\Models\MediaMapper;
|
||||||
use Modules\Media\Models\PathSettings;
|
use Modules\Media\Models\PathSettings;
|
||||||
|
use Modules\SupplierManagement\Models\SettingsEnum;
|
||||||
use Modules\SupplierManagement\Models\Supplier;
|
use Modules\SupplierManagement\Models\Supplier;
|
||||||
use Modules\SupplierManagement\Models\SupplierAttributeMapper;
|
use Modules\SupplierManagement\Models\Attribute\SupplierAttributeTypeMapper;
|
||||||
use Modules\SupplierManagement\Models\SupplierAttributeTypeL11nMapper;
|
|
||||||
use Modules\SupplierManagement\Models\SupplierAttributeTypeMapper;
|
|
||||||
use Modules\SupplierManagement\Models\SupplierAttributeValueL11nMapper;
|
|
||||||
use Modules\SupplierManagement\Models\SupplierAttributeValueMapper;
|
|
||||||
use Modules\SupplierManagement\Models\SupplierL11nMapper;
|
use Modules\SupplierManagement\Models\SupplierL11nMapper;
|
||||||
use Modules\SupplierManagement\Models\SupplierL11nTypeMapper;
|
use Modules\SupplierManagement\Models\SupplierL11nTypeMapper;
|
||||||
use Modules\SupplierManagement\Models\SupplierMapper;
|
use Modules\SupplierManagement\Models\SupplierMapper;
|
||||||
|
use phpOMS\Api\Geocoding\Nominatim;
|
||||||
use phpOMS\Localization\BaseStringL11n;
|
use phpOMS\Localization\BaseStringL11n;
|
||||||
use phpOMS\Localization\BaseStringL11nType;
|
use phpOMS\Localization\BaseStringL11nType;
|
||||||
|
use phpOMS\Localization\ISO3166TwoEnum;
|
||||||
use phpOMS\Localization\NullBaseStringL11nType;
|
use phpOMS\Localization\NullBaseStringL11nType;
|
||||||
|
use phpOMS\Message\Http\HttpRequest;
|
||||||
use phpOMS\Message\Http\RequestStatusCode;
|
use phpOMS\Message\Http\RequestStatusCode;
|
||||||
use phpOMS\Message\RequestAbstract;
|
use phpOMS\Message\RequestAbstract;
|
||||||
use phpOMS\Message\ResponseAbstract;
|
use phpOMS\Message\ResponseAbstract;
|
||||||
use phpOMS\Stdlib\Base\Address;
|
use phpOMS\Stdlib\Base\Address;
|
||||||
|
use phpOMS\Uri\HttpUri;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SupplierManagement class.
|
* SupplierManagement class.
|
||||||
|
|
@ -70,6 +72,9 @@ final class ApiController extends Controller
|
||||||
|
|
||||||
$supplier = $this->createSupplierFromRequest($request);
|
$supplier = $this->createSupplierFromRequest($request);
|
||||||
$this->createModel($request->header->account, $supplier, SupplierMapper::class, 'supplier', $request->getOrigin());
|
$this->createModel($request->header->account, $supplier, SupplierMapper::class, 'supplier', $request->getOrigin());
|
||||||
|
|
||||||
|
$this->createSupplierSegmentation($request, $response, $supplier);
|
||||||
|
|
||||||
$this->createStandardCreateResponse($request, $response, $supplier);
|
$this->createStandardCreateResponse($request, $response, $supplier);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -84,27 +89,70 @@ final class ApiController extends Controller
|
||||||
*/
|
*/
|
||||||
private function createSupplierFromRequest(RequestAbstract $request) : Supplier
|
private function createSupplierFromRequest(RequestAbstract $request) : Supplier
|
||||||
{
|
{
|
||||||
$account = new Account();
|
$account = null;
|
||||||
$account->name1 = $request->getDataString('name1') ?? '';
|
if (!$request->hasData('account')) {
|
||||||
$account->name2 = $request->getDataString('name2') ?? '';
|
$account = new Account();
|
||||||
|
$account->name1 = $request->getDataString('name1') ?? '';
|
||||||
|
$account->name2 = $request->getDataString('name2') ?? '';
|
||||||
|
} else {
|
||||||
|
$account = new NullAccount((int) $request->getData('account'));
|
||||||
|
}
|
||||||
|
|
||||||
$supplier = new Supplier();
|
$supplier = new Supplier();
|
||||||
$supplier->number = $request->getDataString('number') ?? '';
|
$supplier->number = $request->getDataString('number') ?? '';
|
||||||
$supplier->account = $account;
|
$supplier->account = $account;
|
||||||
|
$supplier->unit = $request->getDataInt('unit') ?? 1;
|
||||||
|
|
||||||
|
// Handle main address
|
||||||
$addr = new Address();
|
$addr = new Address();
|
||||||
$addr->address = $request->getDataString('address') ?? '';
|
$addr->address = $request->getDataString('address') ?? '';
|
||||||
$addr->postal = $request->getDataString('postal') ?? '';
|
$addr->postal = $request->getDataString('postal') ?? '';
|
||||||
$addr->city = $request->getDataString('city') ?? '';
|
$addr->city = $request->getDataString('city') ?? '';
|
||||||
$addr->state = $request->getDataString('state') ?? '';
|
$addr->state = $request->getDataString('state') ?? '';
|
||||||
$addr->setCountry($request->getDataString('country') ?? '');
|
$addr->setCountry($request->getDataString('country') ?? ISO3166TwoEnum::_XXX);
|
||||||
$supplier->mainAddress = $addr;
|
$supplier->mainAddress = $addr;
|
||||||
|
|
||||||
$supplier->unit = $request->getDataInt('unit');
|
// Try to find lat/lon through external API
|
||||||
|
$geocoding = Nominatim::geocoding($addr->country, $addr->city, $addr->address);
|
||||||
|
if ($geocoding === ['lat' => 0.0, 'lon' => 0.0]) {
|
||||||
|
$geocoding = Nominatim::geocoding($addr->country, $addr->city);
|
||||||
|
}
|
||||||
|
|
||||||
|
$supplier->mainAddress->lat = $geocoding['lat'];
|
||||||
|
$supplier->mainAddress->lon = $geocoding['lon'];
|
||||||
|
|
||||||
return $supplier;
|
return $supplier;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function createSupplierSegmentation(RequestAbstract $request, ResponseAbstract $response, Supplier $supplier) : void
|
||||||
|
{
|
||||||
|
/** @var \Model\Setting $settings */
|
||||||
|
$settings = $this->app->appSettings->get(null, [
|
||||||
|
SettingsEnum::DEFAULT_SEGMENTATION,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$segmentation = \json_decode($settings->content, true);
|
||||||
|
if ($segmentation === false) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$types = SupplierAttributeTypeMapper::get()
|
||||||
|
->where('name', \array_keys($segmentation), 'IN')
|
||||||
|
->execute();
|
||||||
|
|
||||||
|
foreach ($types as $type) {
|
||||||
|
$internalResponse = clone $response;
|
||||||
|
$internalRequest = new HttpRequest(new HttpUri(''));
|
||||||
|
|
||||||
|
$internalRequest->header->account = $request->header->account;
|
||||||
|
$internalRequest->setData('ref', $supplier->id);
|
||||||
|
$internalRequest->setData('type', $type->id);
|
||||||
|
$internalRequest->setData('value_id', $segmentation[$type->name]);
|
||||||
|
|
||||||
|
$this->app->moduleManager->get('SupplierManagement', 'ApiAttribute')->apiItemAttributeCreate($internalRequest, $internalResponse);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Validate news create request
|
* Validate news create request
|
||||||
*
|
*
|
||||||
|
|
@ -261,157 +309,6 @@ final class ApiController extends Controller
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Api method to create supplier attribute
|
|
||||||
*
|
|
||||||
* @param RequestAbstract $request Request
|
|
||||||
* @param ResponseAbstract $response Response
|
|
||||||
* @param array $data Generic data
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*
|
|
||||||
* @api
|
|
||||||
*
|
|
||||||
* @since 1.0.0
|
|
||||||
*/
|
|
||||||
public function apiSupplierAttributeCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
|
|
||||||
{
|
|
||||||
if (!empty($val = $this->validateAttributeCreate($request))) {
|
|
||||||
$response->header->status = RequestStatusCode::R_400;
|
|
||||||
$this->createInvalidCreateResponse($request, $response, $val);
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$type = SupplierAttributeTypeMapper::get()->with('defaults')->where('id', (int) $request->getData('type'))->execute();
|
|
||||||
$attribute = $this->createAttributeFromRequest($request, $type);
|
|
||||||
$this->createModel($request->header->account, $attribute, SupplierAttributeMapper::class, 'attribute', $request->getOrigin());
|
|
||||||
$this->createStandardCreateResponse($request, $response, $attribute);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Api method to create supplier attribute l11n
|
|
||||||
*
|
|
||||||
* @param RequestAbstract $request Request
|
|
||||||
* @param ResponseAbstract $response Response
|
|
||||||
* @param array $data Generic data
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*
|
|
||||||
* @api
|
|
||||||
*
|
|
||||||
* @since 1.0.0
|
|
||||||
*/
|
|
||||||
public function apiSupplierAttributeTypeL11nCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
|
|
||||||
{
|
|
||||||
if (!empty($val = $this->validateAttributeTypeL11nCreate($request))) {
|
|
||||||
$response->header->status = RequestStatusCode::R_400;
|
|
||||||
$this->createInvalidCreateResponse($request, $response, $val);
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$attrL11n = $this->createAttributeTypeL11nFromRequest($request);
|
|
||||||
$this->createModel($request->header->account, $attrL11n, SupplierAttributeTypeL11nMapper::class, 'attr_type_l11n', $request->getOrigin());
|
|
||||||
$this->createStandardCreateResponse($request, $response, $attrL11n);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Api method to create supplier attribute type
|
|
||||||
*
|
|
||||||
* @param RequestAbstract $request Request
|
|
||||||
* @param ResponseAbstract $response Response
|
|
||||||
* @param array $data Generic data
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*
|
|
||||||
* @api
|
|
||||||
*
|
|
||||||
* @since 1.0.0
|
|
||||||
*/
|
|
||||||
public function apiSupplierAttributeTypeCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
|
|
||||||
{
|
|
||||||
if (!empty($val = $this->validateAttributeTypeCreate($request))) {
|
|
||||||
$response->header->status = RequestStatusCode::R_400;
|
|
||||||
$this->createInvalidCreateResponse($request, $response, $val);
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$attrType = $this->createAttributeTypeFromRequest($request);
|
|
||||||
$this->createModel($request->header->account, $attrType, SupplierAttributeTypeMapper::class, 'attr_type', $request->getOrigin());
|
|
||||||
$this->createStandardCreateResponse($request, $response, $attrType);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Api method to create supplier attribute value
|
|
||||||
*
|
|
||||||
* @param RequestAbstract $request Request
|
|
||||||
* @param ResponseAbstract $response Response
|
|
||||||
* @param array $data Generic data
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*
|
|
||||||
* @api
|
|
||||||
*
|
|
||||||
* @since 1.0.0
|
|
||||||
*/
|
|
||||||
public function apiSupplierAttributeValueCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
|
|
||||||
{
|
|
||||||
if (!empty($val = $this->validateAttributeValueCreate($request))) {
|
|
||||||
$response->header->status = RequestStatusCode::R_400;
|
|
||||||
$this->createInvalidCreateResponse($request, $response, $val);
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @var \Modules\Attribute\Models\AttributeType $type */
|
|
||||||
$type = SupplierAttributeTypeMapper::get()
|
|
||||||
->where('id', $request->getDataInt('type') ?? 0)
|
|
||||||
->execute();
|
|
||||||
|
|
||||||
$attrValue = $this->createAttributeValueFromRequest($request, $type);
|
|
||||||
$this->createModel($request->header->account, $attrValue, SupplierAttributeValueMapper::class, 'attr_value', $request->getOrigin());
|
|
||||||
|
|
||||||
if ($attrValue->isDefault) {
|
|
||||||
$this->createModelRelation(
|
|
||||||
$request->header->account,
|
|
||||||
(int) $request->getData('type'),
|
|
||||||
$attrValue->id,
|
|
||||||
SupplierAttributeTypeMapper::class, 'defaults', '', $request->getOrigin()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->createStandardCreateResponse($request, $response, $attrValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Api method to create item attribute l11n
|
|
||||||
*
|
|
||||||
* @param RequestAbstract $request Request
|
|
||||||
* @param ResponseAbstract $response Response
|
|
||||||
* @param array $data Generic data
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*
|
|
||||||
* @api
|
|
||||||
*
|
|
||||||
* @since 1.0.0
|
|
||||||
*/
|
|
||||||
public function apiSupplierAttributeValueL11nCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
|
|
||||||
{
|
|
||||||
if (!empty($val = $this->validateAttributeValueL11nCreate($request))) {
|
|
||||||
$response->header->status = RequestStatusCode::R_400;
|
|
||||||
$this->createInvalidCreateResponse($request, $response, $val);
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$attrL11n = $this->createAttributeValueL11nFromRequest($request);
|
|
||||||
$this->createModel($request->header->account, $attrL11n, SupplierAttributeValueL11nMapper::class, 'attr_value_l11n', $request->getOrigin());
|
|
||||||
$this->createStandardCreateResponse($request, $response, $attrL11n);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Api method to create supplier files
|
* Api method to create supplier files
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,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
|
||||||
|
|
@ -72,7 +72,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
|
||||||
|
|
@ -101,7 +101,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
|
||||||
|
|
@ -136,7 +136,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
|
||||||
|
|
@ -165,7 +165,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
|
||||||
|
|
@ -186,7 +186,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
|
||||||
|
|
@ -275,7 +275,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
|
||||||
|
|
|
||||||
6
Models/SupplierAttributeMapper.php → Models/Attribute/SupplierAttributeMapper.php
Executable file → Normal file
6
Models/SupplierAttributeMapper.php → Models/Attribute/SupplierAttributeMapper.php
Executable file → Normal file
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* PHP Version 8.1
|
* PHP Version 8.1
|
||||||
*
|
*
|
||||||
* @package Modules\SupplierManagement\Models
|
* @package Modules\SupplierManagement\Models\Attribute
|
||||||
* @copyright Dennis Eichhorn
|
* @copyright Dennis Eichhorn
|
||||||
* @license OMS License 2.0
|
* @license OMS License 2.0
|
||||||
* @version 1.0.0
|
* @version 1.0.0
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
*/
|
*/
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Modules\SupplierManagement\Models;
|
namespace Modules\SupplierManagement\Models\Attribute;
|
||||||
|
|
||||||
use Modules\Attribute\Models\Attribute;
|
use Modules\Attribute\Models\Attribute;
|
||||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||||
|
|
@ -20,7 +20,7 @@ use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||||
/**
|
/**
|
||||||
* Supplier mapper class.
|
* Supplier mapper class.
|
||||||
*
|
*
|
||||||
* @package Modules\SupplierManagement\Models
|
* @package Modules\SupplierManagement\Models\Attribute
|
||||||
* @license OMS License 2.0
|
* @license OMS License 2.0
|
||||||
* @link https://jingga.app
|
* @link https://jingga.app
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
6
Models/SupplierAttributeTypeL11nMapper.php → Models/Attribute/SupplierAttributeTypeL11nMapper.php
Executable file → Normal file
6
Models/SupplierAttributeTypeL11nMapper.php → Models/Attribute/SupplierAttributeTypeL11nMapper.php
Executable file → Normal file
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* PHP Version 8.1
|
* PHP Version 8.1
|
||||||
*
|
*
|
||||||
* @package Modules\SupplierManagement\Models
|
* @package Modules\SupplierManagement\Models\Attribute
|
||||||
* @copyright Dennis Eichhorn
|
* @copyright Dennis Eichhorn
|
||||||
* @license OMS License 2.0
|
* @license OMS License 2.0
|
||||||
* @version 1.0.0
|
* @version 1.0.0
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
*/
|
*/
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Modules\SupplierManagement\Models;
|
namespace Modules\SupplierManagement\Models\Attribute;
|
||||||
|
|
||||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||||
use phpOMS\Localization\BaseStringL11n;
|
use phpOMS\Localization\BaseStringL11n;
|
||||||
|
|
@ -20,7 +20,7 @@ use phpOMS\Localization\BaseStringL11n;
|
||||||
/**
|
/**
|
||||||
* Supplier mapper class.
|
* Supplier mapper class.
|
||||||
*
|
*
|
||||||
* @package Modules\SupplierManagement\Models
|
* @package Modules\SupplierManagement\Models\Attribute
|
||||||
* @license OMS License 2.0
|
* @license OMS License 2.0
|
||||||
* @link https://jingga.app
|
* @link https://jingga.app
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
6
Models/SupplierAttributeTypeMapper.php → Models/Attribute/SupplierAttributeTypeMapper.php
Executable file → Normal file
6
Models/SupplierAttributeTypeMapper.php → Models/Attribute/SupplierAttributeTypeMapper.php
Executable file → Normal file
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* PHP Version 8.1
|
* PHP Version 8.1
|
||||||
*
|
*
|
||||||
* @package Modules\SupplierManagement\Models
|
* @package Modules\SupplierManagement\Models\Attribute
|
||||||
* @copyright Dennis Eichhorn
|
* @copyright Dennis Eichhorn
|
||||||
* @license OMS License 2.0
|
* @license OMS License 2.0
|
||||||
* @version 1.0.0
|
* @version 1.0.0
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
*/
|
*/
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Modules\SupplierManagement\Models;
|
namespace Modules\SupplierManagement\Models\Attribute;
|
||||||
|
|
||||||
use Modules\Attribute\Models\AttributeType;
|
use Modules\Attribute\Models\AttributeType;
|
||||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||||
|
|
@ -20,7 +20,7 @@ use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||||
/**
|
/**
|
||||||
* Supplier mapper class.
|
* Supplier mapper class.
|
||||||
*
|
*
|
||||||
* @package Modules\SupplierManagement\Models
|
* @package Modules\SupplierManagement\Models\Attribute
|
||||||
* @license OMS License 2.0
|
* @license OMS License 2.0
|
||||||
* @link https://jingga.app
|
* @link https://jingga.app
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
6
Models/SupplierAttributeValueL11nMapper.php → Models/Attribute/SupplierAttributeValueL11nMapper.php
Executable file → Normal file
6
Models/SupplierAttributeValueL11nMapper.php → Models/Attribute/SupplierAttributeValueL11nMapper.php
Executable file → Normal file
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* PHP Version 8.1
|
* PHP Version 8.1
|
||||||
*
|
*
|
||||||
* @package Modules\SupplierManagement\Models
|
* @package Modules\SupplierManagement\Models\Attribute
|
||||||
* @copyright Dennis Eichhorn
|
* @copyright Dennis Eichhorn
|
||||||
* @license OMS License 2.0
|
* @license OMS License 2.0
|
||||||
* @version 1.0.0
|
* @version 1.0.0
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
*/
|
*/
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Modules\SupplierManagement\Models;
|
namespace Modules\SupplierManagement\Models\Attribute;
|
||||||
|
|
||||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||||
use phpOMS\Localization\BaseStringL11n;
|
use phpOMS\Localization\BaseStringL11n;
|
||||||
|
|
@ -20,7 +20,7 @@ use phpOMS\Localization\BaseStringL11n;
|
||||||
/**
|
/**
|
||||||
* Supplier mapper class.
|
* Supplier mapper class.
|
||||||
*
|
*
|
||||||
* @package Modules\SupplierManagement\Models
|
* @package Modules\SupplierManagement\Models\Attribute
|
||||||
* @license OMS License 2.0
|
* @license OMS License 2.0
|
||||||
* @link https://jingga.app
|
* @link https://jingga.app
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
6
Models/SupplierAttributeValueMapper.php → Models/Attribute/SupplierAttributeValueMapper.php
Executable file → Normal file
6
Models/SupplierAttributeValueMapper.php → Models/Attribute/SupplierAttributeValueMapper.php
Executable file → Normal file
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* PHP Version 8.1
|
* PHP Version 8.1
|
||||||
*
|
*
|
||||||
* @package Modules\SupplierManagement\Models
|
* @package Modules\SupplierManagement\Models\Attribute
|
||||||
* @copyright Dennis Eichhorn
|
* @copyright Dennis Eichhorn
|
||||||
* @license OMS License 2.0
|
* @license OMS License 2.0
|
||||||
* @version 1.0.0
|
* @version 1.0.0
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
*/
|
*/
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Modules\SupplierManagement\Models;
|
namespace Modules\SupplierManagement\Models\Attribute;
|
||||||
|
|
||||||
use Modules\Attribute\Models\AttributeValue;
|
use Modules\Attribute\Models\AttributeValue;
|
||||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||||
|
|
@ -20,7 +20,7 @@ use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||||
/**
|
/**
|
||||||
* Supplier mapper class.
|
* Supplier mapper class.
|
||||||
*
|
*
|
||||||
* @package Modules\SupplierManagement\Models
|
* @package Modules\SupplierManagement\Models\Attribute
|
||||||
* @license OMS License 2.0
|
* @license OMS License 2.0
|
||||||
* @link https://jingga.app
|
* @link https://jingga.app
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
|
|
@ -17,7 +17,7 @@ namespace Modules\SupplierManagement\Models;
|
||||||
use phpOMS\Stdlib\Base\Enum;
|
use phpOMS\Stdlib\Base\Enum;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Permision state enum.
|
* Permission category enum.
|
||||||
*
|
*
|
||||||
* @package Modules\SupplierManagement\Models
|
* @package Modules\SupplierManagement\Models
|
||||||
* @license OMS License 2.0
|
* @license OMS License 2.0
|
||||||
|
|
|
||||||
30
Models/SettingsEnum.php
Normal file
30
Models/SettingsEnum.php
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Jingga
|
||||||
|
*
|
||||||
|
* PHP Version 8.1
|
||||||
|
*
|
||||||
|
* @package Modules\SupplierManagement\Models
|
||||||
|
* @copyright Dennis Eichhorn
|
||||||
|
* @license OMS License 2.0
|
||||||
|
* @version 1.0.0
|
||||||
|
* @link https://jingga.app
|
||||||
|
*/
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Modules\SupplierManagement\Models;
|
||||||
|
|
||||||
|
use phpOMS\Stdlib\Base\Enum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Default settings enum.
|
||||||
|
*
|
||||||
|
* @package Modules\SupplierManagement\Models
|
||||||
|
* @license OMS License 2.0
|
||||||
|
* @link https://jingga.app
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
abstract class SettingsEnum extends Enum
|
||||||
|
{
|
||||||
|
public const DEFAULT_SEGMENTATION = '1003200001';
|
||||||
|
}
|
||||||
|
|
@ -41,7 +41,7 @@ echo $this->data['nav']->render(); ?>
|
||||||
<div class="col-xs-12 col-md-6">
|
<div class="col-xs-12 col-md-6">
|
||||||
<div class="portlet">
|
<div class="portlet">
|
||||||
<div class="portlet-head"><?= $this->getHtml('Language', '0', '0'); ?><i class="g-icon download btn end-xs">download</i></div>
|
<div class="portlet-head"><?= $this->getHtml('Language', '0', '0'); ?><i class="g-icon download btn end-xs">download</i></div>
|
||||||
<table class="default">
|
<table class="default sticky">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
|
|
|
||||||
|
|
@ -20,12 +20,12 @@ echo $this->data['nav']->render(); ?>
|
||||||
<div class="tabview tab-2">
|
<div class="tabview tab-2">
|
||||||
<div class="box">
|
<div class="box">
|
||||||
<ul class="tab-links">
|
<ul class="tab-links">
|
||||||
<li><label for="c-tab-1"><?= $this->getHtml('Master'); ?></label></li>
|
<li><label for="c-tab-1"><?= $this->getHtml('Master'); ?></label>
|
||||||
<li><label for="c-tab-2"><?= $this->getHtml('Contact'); ?></label></li>
|
<li><label for="c-tab-2"><?= $this->getHtml('Contact'); ?></label>
|
||||||
<li><label for="c-tab-3"><?= $this->getHtml('Addresses'); ?></label></li>
|
<li><label for="c-tab-3"><?= $this->getHtml('Addresses'); ?></label>
|
||||||
<li><label for="c-tab-4"><?= $this->getHtml('PaymentTerm'); ?></label></li>
|
<li><label for="c-tab-4"><?= $this->getHtml('PaymentTerm'); ?></label>
|
||||||
<li><label for="c-tab-5"><?= $this->getHtml('Payment'); ?></label></li>
|
<li><label for="c-tab-5"><?= $this->getHtml('Payment'); ?></label>
|
||||||
<li><label for="c-tab-6"><?= $this->getHtml('Files'); ?></label></li>
|
<li><label for="c-tab-6"><?= $this->getHtml('Files'); ?></label>
|
||||||
<li><label for="c-tab-7"><?= $this->getHtml('Logs'); ?></label>
|
<li><label for="c-tab-7"><?= $this->getHtml('Logs'); ?></label>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -40,11 +40,11 @@ echo $this->data['nav']->render(); ?>
|
||||||
<tr><td><label for="iId"><?= $this->getHtml('ID', '0', '0'); ?></label>
|
<tr><td><label for="iId"><?= $this->getHtml('ID', '0', '0'); ?></label>
|
||||||
<tr><td><span class="input"><button type="button" formaction=""><i class="g-icon">book</i></button><input type="number" id="iId" min="1" name="id" required></span>
|
<tr><td><span class="input"><button type="button" formaction=""><i class="g-icon">book</i></button><input type="number" id="iId" min="1" name="id" required></span>
|
||||||
<tr><td><label for="iName1"><?= $this->getHtml('Name1'); ?></label>
|
<tr><td><label for="iName1"><?= $this->getHtml('Name1'); ?></label>
|
||||||
<tr><td><input type="text" id="iName1" name="name1" placeholder="" required>
|
<tr><td><input type="text" id="iName1" name="name1" placeholder="" required>
|
||||||
<tr><td><label for="iName2"><?= $this->getHtml('Name2'); ?></label>
|
<tr><td><label for="iName2"><?= $this->getHtml('Name2'); ?></label>
|
||||||
<tr><td><input type="text" id="iName2" name="name2" placeholder="">
|
<tr><td><input type="text" id="iName2" name="name2" placeholder="">
|
||||||
<tr><td><label for="iName3"><?= $this->getHtml('Name3'); ?></label>
|
<tr><td><label for="iName3"><?= $this->getHtml('Name3'); ?></label>
|
||||||
<tr><td><input type="text" id="iName3" name="name3" placeholder="">
|
<tr><td><input type="text" id="iName3" name="name3" placeholder="">
|
||||||
<tr><td colspan="2"><input type="submit" value="<?= $this->getHtml('Create', '0', '0'); ?>" name="create-supplier">
|
<tr><td colspan="2"><input type="submit" value="<?= $this->getHtml('Create', '0', '0'); ?>" name="create-supplier">
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
|
|
@ -168,7 +168,7 @@ echo $this->data['nav']->render(); ?>
|
||||||
$footerView->setPage(1);
|
$footerView->setPage(1);
|
||||||
?>
|
?>
|
||||||
<div class="box w-100">
|
<div class="box w-100">
|
||||||
<table class="default">
|
<table class="default sticky">
|
||||||
<caption><?= $this->getHtml('Logs'); ?><i class="g-icon end-xs download btn">download</i></caption>
|
<caption><?= $this->getHtml('Logs'); ?><i class="g-icon end-xs download btn">download</i></caption>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ $bills = $this->data['newestInvoices'] ?? [];
|
||||||
<div class="col-xs-12">
|
<div class="col-xs-12">
|
||||||
<div class="portlet">
|
<div class="portlet">
|
||||||
<div class="portlet-head"><?= $this->getHtml('Bills'); ?><i class="g-icon download btn end-xs">download</i></div>
|
<div class="portlet-head"><?= $this->getHtml('Bills'); ?><i class="g-icon download btn end-xs">download</i></div>
|
||||||
<table id="billList" class="default">
|
<table id="billList" class="default sticky">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<td><label class="checkbox" for="iBillSelect-">
|
<td><label class="checkbox" for="iBillSelect-">
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ $items = $this->data['items'] ?? [];
|
||||||
<div class="col-xs-12">
|
<div class="col-xs-12">
|
||||||
<section class="portlet">
|
<section class="portlet">
|
||||||
<div class="portlet-head"><?= $this->getHtml('Items'); ?><i class="g-icon download btn end-xs">download</i></div>
|
<div class="portlet-head"><?= $this->getHtml('Items'); ?><i class="g-icon download btn end-xs">download</i></div>
|
||||||
<table id="iPurchaseItemList" class="default">
|
<table id="iPurchaseItemList" class="default sticky">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<td><label class="checkbox" for="iPurchaseItemSelect-">
|
<td><label class="checkbox" for="iPurchaseItemSelect-">
|
||||||
|
|
|
||||||
|
|
@ -39,12 +39,12 @@ echo $this->data['nav']->render();
|
||||||
<div class="tabview tab-2">
|
<div class="tabview tab-2">
|
||||||
<div class="box">
|
<div class="box">
|
||||||
<ul class="tab-links">
|
<ul class="tab-links">
|
||||||
<li><label for="c-tab-1"><?= $this->getHtml('Profile'); ?></label></li>
|
<li><label for="c-tab-1"><?= $this->getHtml('Profile'); ?></label>
|
||||||
<li><label for="c-tab-3"><?= $this->getHtml('Addresses'); ?></label></li>
|
<li><label for="c-tab-3"><?= $this->getHtml('Addresses'); ?></label>
|
||||||
<li><label for="c-tab-5"><?= $this->getHtml('Payment'); ?></label></li>
|
<li><label for="c-tab-5"><?= $this->getHtml('Payment'); ?></label>
|
||||||
<li><label for="c-tab-6"><?= $this->getHtml('Prices'); ?></label></li>
|
<li><label for="c-tab-6"><?= $this->getHtml('Prices'); ?></label>
|
||||||
<li><label for="c-tab-7"><?= $this->getHtml('Attributes'); ?></label></li>
|
<li><label for="c-tab-7"><?= $this->getHtml('Attributes'); ?></label>
|
||||||
<li><label for="c-tab-8"><?= $this->getHtml('Files'); ?></label></li>
|
<li><label for="c-tab-8"><?= $this->getHtml('Files'); ?></label>
|
||||||
<li><label for="c-tab-9"><?= $this->getHtml('Invoices'); ?></label>
|
<li><label for="c-tab-9"><?= $this->getHtml('Invoices'); ?></label>
|
||||||
<li><label for="c-tab-10"><?= $this->getHtml('Articles'); ?></label>
|
<li><label for="c-tab-10"><?= $this->getHtml('Articles'); ?></label>
|
||||||
<li><label for="c-tab-11"><?= $this->getHtml('Messages'); ?></label><!-- incl. support -->
|
<li><label for="c-tab-11"><?= $this->getHtml('Messages'); ?></label><!-- incl. support -->
|
||||||
|
|
@ -229,7 +229,7 @@ echo $this->data['nav']->render();
|
||||||
<section class="portlet">
|
<section class="portlet">
|
||||||
<div class="portlet-head"><?= $this->getHtml('Notes'); ?></div>
|
<div class="portlet-head"><?= $this->getHtml('Notes'); ?></div>
|
||||||
<div class="slider">
|
<div class="slider">
|
||||||
<table id="iNotesItemList" class="default">
|
<table id="iNotesItemList" class="default sticky">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="wf-100"><?= $this->getHtml('Title'); ?>
|
<td class="wf-100"><?= $this->getHtml('Title'); ?>
|
||||||
|
|
@ -251,7 +251,7 @@ echo $this->data['nav']->render();
|
||||||
<section class="portlet">
|
<section class="portlet">
|
||||||
<div class="portlet-head"><?= $this->getHtml('Documents'); ?></div>
|
<div class="portlet-head"><?= $this->getHtml('Documents'); ?></div>
|
||||||
<div class="slider">
|
<div class="slider">
|
||||||
<table id="iFilesSupplierList" class="default">
|
<table id="iFilesSupplierList" class="default sticky">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="wf-100"><?= $this->getHtml('Title'); ?>
|
<td class="wf-100"><?= $this->getHtml('Title'); ?>
|
||||||
|
|
@ -276,7 +276,7 @@ echo $this->data['nav']->render();
|
||||||
<div class="col-xs-12">
|
<div class="col-xs-12">
|
||||||
<section class="portlet">
|
<section class="portlet">
|
||||||
<div class="portlet-head"><?= $this->getHtml('RecentInvoices'); ?></div>
|
<div class="portlet-head"><?= $this->getHtml('RecentInvoices'); ?></div>
|
||||||
<table id="iSalesItemList" class="default">
|
<table id="iSalesItemList" class="default sticky">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<td><?= $this->getHtml('Number'); ?>
|
<td><?= $this->getHtml('Number'); ?>
|
||||||
|
|
@ -608,7 +608,7 @@ echo $this->data['nav']->render();
|
||||||
$footerView->setPage(1);
|
$footerView->setPage(1);
|
||||||
?>
|
?>
|
||||||
<div class="box wf-100">
|
<div class="box wf-100">
|
||||||
<table class="default">
|
<table class="default sticky">
|
||||||
<caption><?= $this->getHtml('Logs'); ?><i class="g-icon end-xs download btn">download</i></caption>
|
<caption><?= $this->getHtml('Logs'); ?><i class="g-icon end-xs download btn">download</i></caption>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user