more tests and make classes final

This commit is contained in:
Dennis Eichhorn 2021-10-21 22:16:05 +02:00
parent 3907512532
commit c8f7f03bf7
36 changed files with 2459 additions and 281 deletions

View File

@ -0,0 +1,845 @@
<?php
/**
* Orange Management
*
* PHP Version 8.0
*
* @package Modules\Accounting
* @copyright Dennis Eichhorn
* @license OMS License 1.0
* @version 1.0.0
* @link https://orange-management.org
*/
declare(strict_types=1);
namespace Modules\Accounting\Controller;
use phpOMS\Message\RequestAbstract;
use phpOMS\Message\ResponseAbstract;
use phpOMS\Message\Http\RequestStatusCode;
use phpOMS\Model\Message\FormValidation;
/**
* Accounting controller class.
*
* This class is responsible for the basic accounting activities.
*
* @package Modules\Accounting
* @license OMS License 1.0
* @link https://orange-management.org
* @since 1.0.0
*/
final class ApiController extends Controller
{
/**
* Api method to create an account
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiAccountCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{
if (!empty($val = $this->validateAccountCreate($request))) {
$response->set('account_create', new FormValidation($val));
$response->header->status = RequestStatusCode::R_400;
return;
}
}
/**
* Validate account create request
*
* @param RequestAbstract $request Request
*
* @return array<string, bool>
*
* @since 1.0.0
*/
private function validateAccountCreate(RequestAbstract $request) : array
{
$val = [];
if (($val['name'] = empty($request->getData('name')))
|| ($val['status'] = false)
) {
return $val;
}
return [];
}
/**
* Method to create account from request.
*
* @param RequestAbstract $request Request
*
* @return mixed
*
* @since 1.0.0
*/
private function createAccountFromRequest(RequestAbstract $request) : mixed
{
return null;
}
/**
* Api method to update an account
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiAccountUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{
if (!empty($val = $this->validateAccountUpdate($request))) {
$response->set('account_update', new FormValidation($val));
$response->header->status = RequestStatusCode::R_400;
return;
}
}
/**
* Validate account update request
*
* @param RequestAbstract $request Request
*
* @return array<string, bool>
*
* @since 1.0.0
*/
private function validateAccountUpdate(RequestAbstract $request) : array
{
$val = [];
if (($val['id'] = empty($request->getData('id')))
|| ($val['status'] = false)
) {
return $val;
}
return [];
}
/**
* Method to update account from request.
*
* @param RequestAbstract $request Request
*
* @return mixed
*
* @since 1.0.0
*/
private function updateAccountFromRequest(RequestAbstract $request) : mixed
{
return null;
}
/**
* Api method to create an cost center
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiCostCenterCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{
if (!empty($val = $this->validateCostCenterCreate($request))) {
$response->set('account_create', new FormValidation($val));
$response->header->status = RequestStatusCode::R_400;
return;
}
}
/**
* Validate cost center create request
*
* @param RequestAbstract $request Request
*
* @return array<string, bool>
*
* @since 1.0.0
*/
private function validateCostCenterCreate(RequestAbstract $request) : array
{
$val = [];
if (($val['name'] = empty($request->getData('name')))
|| ($val['status'] = false)
) {
return $val;
}
return [];
}
/**
* Method to create cost center from request.
*
* @param RequestAbstract $request Request
*
* @return mixed
*
* @since 1.0.0
*/
private function createCostCenterFromRequest(RequestAbstract $request) : mixed
{
return null;
}
/**
* Api method to update an cost center
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiCostCenterUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{
if (!empty($val = $this->validateCostCenterUpdate($request))) {
$response->set('account_update', new FormValidation($val));
$response->header->status = RequestStatusCode::R_400;
return;
}
}
/**
* Validate cost center update request
*
* @param RequestAbstract $request Request
*
* @return array<string, bool>
*
* @since 1.0.0
*/
private function validateCostCenterUpdate(RequestAbstract $request) : array
{
$val = [];
if (($val['id'] = empty($request->getData('id')))
|| ($val['status'] = false)
) {
return $val;
}
return [];
}
/**
* Method to update cost center from request.
*
* @param RequestAbstract $request Request
*
* @return mixed
*
* @since 1.0.0
*/
private function updateCostCenterFromRequest(RequestAbstract $request) : mixed
{
return null;
}
/**
* Api method to create an cost object
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiCostObjectCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{
if (!empty($val = $this->validateCostObjectCreate($request))) {
$response->set('account_create', new FormValidation($val));
$response->header->status = RequestStatusCode::R_400;
return;
}
}
/**
* Validate cost object create request
*
* @param RequestAbstract $request Request
*
* @return array<string, bool>
*
* @since 1.0.0
*/
private function validateCostObjectCreate(RequestAbstract $request) : array
{
$val = [];
if (($val['name'] = empty($request->getData('name')))
|| ($val['status'] = false)
) {
return $val;
}
return [];
}
/**
* Method to create cost object from request.
*
* @param RequestAbstract $request Request
*
* @return mixed
*
* @since 1.0.0
*/
private function createCostObjectFromRequest(RequestAbstract $request) : mixed
{
return null;
}
/**
* Api method to update an cost object
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiCostObjectUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{
if (!empty($val = $this->validateCostObjectUpdate($request))) {
$response->set('account_update', new FormValidation($val));
$response->header->status = RequestStatusCode::R_400;
return;
}
}
/**
* Validate cost object update request
*
* @param RequestAbstract $request Request
*
* @return array<string, bool>
*
* @since 1.0.0
*/
private function validateCostObjectUpdate(RequestAbstract $request) : array
{
$val = [];
if (($val['id'] = empty($request->getData('id')))
|| ($val['status'] = false)
) {
return $val;
}
return [];
}
/**
* Method to update cost object from request.
*
* @param RequestAbstract $request Request
*
* @return mixed
*
* @since 1.0.0
*/
private function updateCostObjectFromRequest(RequestAbstract $request) : mixed
{
return null;
}
/**
* Api method to create an entry
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiEntryCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{
if (!empty($val = $this->validateEntryCreate($request))) {
$response->set('account_create', new FormValidation($val));
$response->header->status = RequestStatusCode::R_400;
return;
}
}
/**
* Validate entry create request
*
* @param RequestAbstract $request Request
*
* @return array<string, bool>
*
* @since 1.0.0
*/
private function validateEntryCreate(RequestAbstract $request) : array
{
$val = [];
if (($val['name'] = empty($request->getData('name')))
|| ($val['status'] = false)
) {
return $val;
}
return [];
}
/**
* Method to create entry from request.
*
* @param RequestAbstract $request Request
*
* @return mixed
*
* @since 1.0.0
*/
private function createEntryFromRequest(RequestAbstract $request) : mixed
{
return null;
}
/**
* Api method to update an entry
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiEntryUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{
if (!empty($val = $this->validateEntryUpdate($request))) {
$response->set('account_update', new FormValidation($val));
$response->header->status = RequestStatusCode::R_400;
return;
}
}
/**
* Validate entry update request
*
* @param RequestAbstract $request Request
*
* @return array<string, bool>
*
* @since 1.0.0
*/
private function validateEntryUpdate(RequestAbstract $request) : array
{
$val = [];
if (($val['id'] = empty($request->getData('id')))
|| ($val['status'] = false)
) {
return $val;
}
return [];
}
/**
* Method to update entry from request.
*
* @param RequestAbstract $request Request
*
* @return mixed
*
* @since 1.0.0
*/
private function updateEntryFromRequest(RequestAbstract $request) : mixed
{
return null;
}
/**
* Api method to create an recurring entry
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiRecurringEntryCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{
if (!empty($val = $this->validateRecurringEntryCreate($request))) {
$response->set('account_create', new FormValidation($val));
$response->header->status = RequestStatusCode::R_400;
return;
}
}
/**
* Validate recurring entry create request
*
* @param RequestAbstract $request Request
*
* @return array<string, bool>
*
* @since 1.0.0
*/
private function validateRecurringEntryCreate(RequestAbstract $request) : array
{
$val = [];
if (($val['name'] = empty($request->getData('name')))
|| ($val['status'] = false)
) {
return $val;
}
return [];
}
/**
* Method to create recurring entry from request.
*
* @param RequestAbstract $request Request
*
* @return mixed
*
* @since 1.0.0
*/
private function createRecurringEntryFromRequest(RequestAbstract $request) : mixed
{
return null;
}
/**
* Api method to update an recurring entry
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiRecurringEntryUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{
if (!empty($val = $this->validateRecurringEntryUpdate($request))) {
$response->set('account_update', new FormValidation($val));
$response->header->status = RequestStatusCode::R_400;
return;
}
}
/**
* Validate recurring entry update request
*
* @param RequestAbstract $request Request
*
* @return array<string, bool>
*
* @since 1.0.0
*/
private function validateRecurringEntryUpdate(RequestAbstract $request) : array
{
$val = [];
if (($val['id'] = empty($request->getData('id')))
|| ($val['status'] = false)
) {
return $val;
}
return [];
}
/**
* Method to update recurring entry from request.
*
* @param RequestAbstract $request Request
*
* @return mixed
*
* @since 1.0.0
*/
private function updateRecurringEntryFromRequest(RequestAbstract $request) : mixed
{
return null;
}
/**
* Api method to create an tax key
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiTaxKeyCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{
if (!empty($val = $this->validateTaxKeyCreate($request))) {
$response->set('account_create', new FormValidation($val));
$response->header->status = RequestStatusCode::R_400;
return;
}
}
/**
* Validate tax key create request
*
* @param RequestAbstract $request Request
*
* @return array<string, bool>
*
* @since 1.0.0
*/
private function validateTaxKeyCreate(RequestAbstract $request) : array
{
$val = [];
if (($val['name'] = empty($request->getData('name')))
|| ($val['status'] = false)
) {
return $val;
}
return [];
}
/**
* Method to create tax key from request.
*
* @param RequestAbstract $request Request
*
* @return mixed
*
* @since 1.0.0
*/
private function createTaxKeyFromRequest(RequestAbstract $request) : mixed
{
return null;
}
/**
* Api method to update an tax key
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiTaxKeyUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{
if (!empty($val = $this->validateTaxKeyUpdate($request))) {
$response->set('account_update', new FormValidation($val));
$response->header->status = RequestStatusCode::R_400;
return;
}
}
/**
* Validate tax key update request
*
* @param RequestAbstract $request Request
*
* @return array<string, bool>
*
* @since 1.0.0
*/
private function validateTaxKeyUpdate(RequestAbstract $request) : array
{
$val = [];
if (($val['id'] = empty($request->getData('id')))
|| ($val['status'] = false)
) {
return $val;
}
return [];
}
/**
* Method to update tax key from request.
*
* @param RequestAbstract $request Request
*
* @return mixed
*
* @since 1.0.0
*/
private function updateTaxKeyFromRequest(RequestAbstract $request) : mixed
{
return null;
}
/**
* Api method to create an batch entry
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiBatchEntryCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{
if (!empty($val = $this->validateBatchEntryCreate($request))) {
$response->set('account_create', new FormValidation($val));
$response->header->status = RequestStatusCode::R_400;
return;
}
}
/**
* Validate batch entry create request
*
* @param RequestAbstract $request Request
*
* @return array<string, bool>
*
* @since 1.0.0
*/
private function validateBatchEntryCreate(RequestAbstract $request) : array
{
$val = [];
if (($val['name'] = empty($request->getData('name')))
|| ($val['status'] = false)
) {
return $val;
}
return [];
}
/**
* Method to create batch entry from request.
*
* @param RequestAbstract $request Request
*
* @return mixed
*
* @since 1.0.0
*/
private function createBatchEntryFromRequest(RequestAbstract $request) : mixed
{
return null;
}
/**
* Api method to update an batch entry
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiBatchEntryUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{
if (!empty($val = $this->validateBatchEntryUpdate($request))) {
$response->set('account_update', new FormValidation($val));
$response->header->status = RequestStatusCode::R_400;
return;
}
}
/**
* Validate batch entry update request
*
* @param RequestAbstract $request Request
*
* @return array<string, bool>
*
* @since 1.0.0
*/
private function validateBatchEntryUpdate(RequestAbstract $request) : array
{
$val = [];
if (($val['id'] = empty($request->getData('id')))
|| ($val['status'] = false)
) {
return $val;
}
return [];
}
/**
* Method to update batch entry from request.
*
* @param RequestAbstract $request Request
*
* @return mixed
*
* @since 1.0.0
*/
private function updateBatchEntryFromRequest(RequestAbstract $request) : mixed
{
return null;
}
}

View File

@ -242,6 +242,69 @@ final class BackendController extends Controller
return $view;
}
/**
* Routing end-point for application behaviour.
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return RenderableInterface
*
* @since 1.0.0
* @codeCoverageIgnore
*/
public function viewCostCenterProfile(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface
{
$view = new View($this->app->l11nManager, $request, $response);
$view->setTemplate('/Modules/Accounting/Theme/Backend/gl-profile');
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1002604001, $request, $response));
return $view;
}
/**
* Routing end-point for application behaviour.
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return RenderableInterface
*
* @since 1.0.0
* @codeCoverageIgnore
*/
public function viewImpersonalEntries(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface
{
$view = new View($this->app->l11nManager, $request, $response);
$view->setTemplate('/Modules/Accounting/Theme/Backend/gl-profile');
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1002604001, $request, $response));
return $view;
}
/**
* Routing end-point for application behaviour.
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return RenderableInterface
*
* @since 1.0.0
* @codeCoverageIgnore
*/
public function viewPersonalEntries(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface
{
$view = new View($this->app->l11nManager, $request, $response);
$view->setTemplate('/Modules/Accounting/Theme/Backend/gl-profile');
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1002604001, $request, $response));
return $view;
}
/**
* Routing end-point for application behaviour.
*

View File

@ -32,6 +32,14 @@ abstract class AccountAbstract
*/
protected int $id = 0;
/**
* Summary account.
*
* @var null|int
* @since 1.0.0
*/
public ?int $summaryAccount = null;
/**
* Type.
*
@ -48,18 +56,6 @@ abstract class AccountAbstract
*/
protected array $entries = [];
/**
* Constructor.
*
* @param int $id Account ID
*
* @since 1.0.0
*/
public function __construct(int $id = 0)
{
$this->id = $id;
}
/**
* Get account id.
*
@ -90,14 +86,14 @@ abstract class AccountAbstract
* Get entry.
*
* @param \DateTime $start Interval start
* @param \DateTime $end Interval end
* @param null|\DateTime $end Interval end
* @param int $dateType Date type by witch the entries should be filtered
*
* @return array
*
* @since 1.0.0
*/
public function getEntriesByDate(\DateTime $start, \DateTime $end, int $dateType = TimeRangeType::RECEIPT_DATE) : array
public function getEntriesByDate(\DateTime $start, \DateTime $end = null, int $dateType = TimeRangeType::RECEIPT_DATE) : array
{
return [];
}

View File

@ -30,7 +30,7 @@ class Balance
* @var int
* @since 1.0.0
*/
private int $id = 0;
protected int $id = 0;
/**
* Balance data.
@ -41,20 +41,22 @@ class Balance
private array $balance = [];
/**
* Balance name.
* Localization.
*
* @var string
* @var BalanceL11n
* @since 1.0.0
*/
public string $name = '';
public BalanceL11n $l11n;
/**
* Balance description.
* Constructor.
*
* @var string
* @since 1.0.0
*/
private string $description = '';
public function __construct()
{
$this->l11n = new BalanceL11n();
}
/**
* Get balance id
@ -67,30 +69,4 @@ class Balance
{
return $this->id;
}
/**
* Set description
*
* @param string $description Balance description
*
* @return void
*
* @since 1.0.0
*/
public function setDescription(string $description) : void
{
$this->description = $description;
}
/**
* Get description
*
* @return string
*
* @since 1.0.0
*/
public function getDescription() : string
{
return $this->description;
}
}

129
Models/BalanceL11n.php Normal file
View File

@ -0,0 +1,129 @@
<?php
/**
* Orange Management
*
* PHP Version 8.0
*
* @package Modules\Accounting\Models
* @copyright Dennis Eichhorn
* @license OMS License 1.0
* @version 1.0.0
* @link https://orange-management.org
*/
declare(strict_types=1);
namespace Modules\Accounting\Models;
use phpOMS\Contract\ArrayableInterface;
use phpOMS\Localization\ISO639x1Enum;
/**
* Balance class.
*
* @package Modules\Accounting\Models
* @license OMS License 1.0
* @link https://orange-management.org
* @since 1.0.0
*/
class BalanceL11n implements \JsonSerializable, ArrayableInterface
{
/**
* Article ID.
*
* @var int
* @since 1.0.0
*/
protected int $id = 0;
/**
* Balance ID.
*
* @var int
* @since 1.0.0
*/
public int $balance = 0;
/**
* Language.
*
* @var string
* @since 1.0.0
*/
protected string $language = ISO639x1Enum::_EN;
/**
* Name.
*
* @var string
* @since 1.0.0
*/
public string $name = '';
/**
* Description.
*
* @var string
* @since 1.0.0
*/
public string $description = '';
/**
* Get id
*
* @return int
*
* @since 1.0.0
*/
public function getId() : int
{
return $this->id;
}
/**
* Get language
*
* @return string
*
* @since 1.0.0
*/
public function getLanguage() : string
{
return $this->language;
}
/**
* Set language
*
* @param string $language Language
*
* @return void
*
* @since 1.0.0
*/
public function setLanguage(string $language) : void
{
$this->language = $language;
}
/**
* {@inheritdoc}
*/
public function toArray() : array
{
return [
'id' => $this->id,
'name' => $this->name,
'description' => $this->description,
'balance' => $this->balance,
'language' => $this->language,
];
}
/**
* {@inheritdoc}
*/
public function jsonSerialize()
{
return $this->toArray();
}
}

View File

@ -30,7 +30,7 @@ class BatchPosting implements \Countable
* @var int
* @since 1.0.0
*/
private int $id = 0;
protected int $id = 0;
/**
* Creator.
@ -38,7 +38,7 @@ class BatchPosting implements \Countable
* @var int
* @since 1.0.0
*/
private int $creator = 0;
public int $creator = 0;
/**
* Created.
@ -46,7 +46,7 @@ class BatchPosting implements \Countable
* @var \DateTimeImmutable
* @since 1.0.0
*/
private \DateTimeImmutable $created;
public \DateTimeImmutable $created;
/**
* Description.
@ -54,7 +54,7 @@ class BatchPosting implements \Countable
* @var string
* @since 1.0.0
*/
private string $description = '';
public string $description = '';
/**
* Postings.
@ -86,70 +86,6 @@ class BatchPosting implements \Countable
return $this->id;
}
/**
* Get description.
*
* @return string
*
* @since 1.0.0
*/
public function getDescription() : string
{
return $this->description;
}
/**
* Set description.
*
* @param string $desc Description
*
* @return void
*
* @since 1.0.0
*/
public function setDescription(string $desc) : void
{
$this->description = $desc;
}
/**
* Get created.
*
* @return \DateTimeImmutable
*
* @since 1.0.0
*/
public function getCreatedAt() : \DateTimeImmutable
{
return $this->created;
}
/**
* Get creator.
*
* @return int
*
* @since 1.0.0
*/
public function getCreator()
{
return $this->creator;
}
/**
* Set creator.
*
* @param int $creator Creator ID
*
* @return void
*
* @since 1.0.0
*/
public function setCreator($creator) : void
{
$this->creator = $creator;
}
/**
* Get posting.
*

View File

@ -43,10 +43,10 @@ class CostCenter
/**
* Localization.
*
* @var L11nCostCenter
* @var CostCenterL11n
* @since 1.0.0
*/
public L11nCostCenter $l11n;
public CostCenterL11n $l11n;
/**
* Parent.
@ -63,7 +63,7 @@ class CostCenter
*/
public function __construct()
{
$this->l11n = new L11nCostCenter();
$this->l11n = new CostCenterL11n();
}
/**

31
Models/L11nCostCenter.php → Models/CostCenterL11n.php Executable file → Normal file
View File

@ -25,7 +25,7 @@ use phpOMS\Localization\ISO639x1Enum;
* @link https://orange-management.org
* @since 1.0.0
*/
class L11nCostCenter implements \JsonSerializable, ArrayableInterface
class CostCenterL11n implements \JsonSerializable, ArrayableInterface
{
/**
* Article ID.
@ -41,7 +41,7 @@ class L11nCostCenter implements \JsonSerializable, ArrayableInterface
* @var int
* @since 1.0.0
*/
protected int $costcenter = 0;
public int $costcenter = 0;
/**
* Language.
@ -79,32 +79,6 @@ class L11nCostCenter implements \JsonSerializable, ArrayableInterface
return $this->id;
}
/**
* Set costcenter.
*
* @param int $costcenter CostCenter id
*
* @return void
*
* @since 1.0.0
*/
public function setCostCenter(int $costcenter) : void
{
$this->costcenter = $costcenter;
}
/**
* Get costcenter
*
* @return int
*
* @since 1.0.0
*/
public function getCostCenter() : int
{
return $this->costcenter;
}
/**
* Get language
*
@ -139,6 +113,7 @@ class L11nCostCenter implements \JsonSerializable, ArrayableInterface
return [
'id' => $this->id,
'name' => $this->name,
'description' => $this->description,
'costcenter' => $this->costcenter,
'language' => $this->language,
];

View File

@ -24,7 +24,7 @@ use phpOMS\DataStorage\Database\DataMapperAbstract;
* @link https://orange-management.org
* @since 1.0.0
*/
final class L11nCostCenterMapper extends DataMapperAbstract
final class CostCenterL11nMapper extends DataMapperAbstract
{
/**
* Columns.

View File

@ -45,7 +45,7 @@ final class CostCenterMapper extends DataMapperAbstract
*/
protected static array $hasMany = [
'l11n' => [
'mapper' => L11nCostCenterMapper::class,
'mapper' => CostCenterL11nMapper::class,
'table' => 'accounting_costcenter_l11n',
'self' => 'accounting_costcenter_l11n_costcenter',
'conditional' => true,

View File

@ -43,10 +43,10 @@ class CostObject
/**
* Localization.
*
* @var L11nCostObject
* @var CostObjectL11n
* @since 1.0.0
*/
public L11nCostObject $l11n;
public CostObjectL11n $l11n;
/**
* Parent.
@ -63,7 +63,7 @@ class CostObject
*/
public function __construct()
{
$this->l11n = new L11nCostObject();
$this->l11n = new CostObjectL11n();
}
/**

31
Models/L11nCostObject.php → Models/CostObjectL11n.php Executable file → Normal file
View File

@ -25,7 +25,7 @@ use phpOMS\Localization\ISO639x1Enum;
* @link https://orange-management.org
* @since 1.0.0
*/
class L11nCostObject implements \JsonSerializable, ArrayableInterface
class CostObjectL11n implements \JsonSerializable, ArrayableInterface
{
/**
* Article ID.
@ -41,7 +41,7 @@ class L11nCostObject implements \JsonSerializable, ArrayableInterface
* @var int
* @since 1.0.0
*/
protected int $costobject = 0;
public int $costobject = 0;
/**
* Language.
@ -79,32 +79,6 @@ class L11nCostObject implements \JsonSerializable, ArrayableInterface
return $this->id;
}
/**
* Set costobject.
*
* @param int $costobject CostObject id
*
* @return void
*
* @since 1.0.0
*/
public function setCostObject(int $costobject) : void
{
$this->costobject = $costobject;
}
/**
* Get costobject
*
* @return int
*
* @since 1.0.0
*/
public function getCostObject() : int
{
return $this->costobject;
}
/**
* Get language
*
@ -139,6 +113,7 @@ class L11nCostObject implements \JsonSerializable, ArrayableInterface
return [
'id' => $this->id,
'name' => $this->name,
'description' => $this->description,
'costobject' => $this->costobject,
'language' => $this->language,
];

View File

@ -24,7 +24,7 @@ use phpOMS\DataStorage\Database\DataMapperAbstract;
* @link https://orange-management.org
* @since 1.0.0
*/
final class L11nCostObjectMapper extends DataMapperAbstract
final class CostObjectL11nMapper extends DataMapperAbstract
{
/**
* Columns.

View File

@ -45,7 +45,7 @@ final class CostObjectMapper extends DataMapperAbstract
*/
protected static array $hasMany = [
'l11n' => [
'mapper' => L11nCostObjectMapper::class,
'mapper' => CostObjectL11nMapper::class,
'table' => 'accounting_costobject_l11n',
'self' => 'accounting_costobject_l11n_costobject',
'conditional' => true,

View File

@ -40,7 +40,7 @@ class Creditor
* @var null|int|Account
* @since 1.0.0
*/
protected $account = null;
public $account = null;
/**
* Get id.
@ -53,16 +53,4 @@ class Creditor
{
return $this->id;
}
/**
* Get account.
*
* @return null|int|Account
*
* @since 1.0.0
*/
public function getAccount()
{
return $this->account;
}
}

View File

@ -40,7 +40,7 @@ class Debitor
* @var null|int|Account
* @since 1.0.0
*/
protected $account = null;
public $account = null;
/**
* Get id.
@ -53,16 +53,4 @@ class Debitor
{
return $this->id;
}
/**
* Get account.
*
* @return null|int|Account
*
* @since 1.0.0
*/
public function getAccount()
{
return $this->account;
}
}

View File

@ -0,0 +1,91 @@
<?php
/**
* Orange Management
*
* PHP Version 8.0
*
* @package tests
* @copyright Dennis Eichhorn
* @license OMS License 1.0
* @version 1.0.0
* @link https://orange-management.org
*/
declare(strict_types=1);
namespace Modules\Accounting\tests\Controller\Api;
use phpOMS\Message\Http\HttpRequest;
use phpOMS\Message\Http\HttpResponse;
use phpOMS\Message\Http\RequestStatusCode;
use phpOMS\Uri\HttpUri;
trait ApiControllerAccountTrait
{
/**
* @covers Modules\Accounting\Controller\ApiController
* @group module
*/
public function testApiAccountCreate() : void
{
$response = new HttpResponse();
$request = new HttpRequest(new HttpUri(''));
$request->header->account = 1;
$request->setData('name', '1');
$this->module->apiAccountCreate($request, $response);
self::assertTrue(true);
//self::assertGreaterThan(0, $response->get('')['response']->getId());
}
/**
* @covers Modules\Accounting\Controller\ApiController
* @group module
*/
public function testApiAccountCreateInvalid() : void
{
$response = new HttpResponse();
$request = new HttpRequest(new HttpUri(''));
$request->header->account = 1;
$request->setData('invalid', '1');
$this->module->apiAccountCreate($request, $response);
self::assertEquals(RequestStatusCode::R_400, $response->header->status);
}
/**
* @covers Modules\Accounting\Controller\ApiController
* @group module
*/
public function testApiAccountUpdate() : void
{
$response = new HttpResponse();
$request = new HttpRequest(new HttpUri(''));
$request->header->account = 1;
$request->setData('id', '1');
$this->module->apiAccountUpdate($request, $response);
self::assertTrue(true);
//self::assertGreaterThan(0, $response->get('')['response']->getId());
}
/**
* @covers Modules\Accounting\Controller\ApiController
* @group module
*/
public function testApiAccountUpdateInvalid() : void
{
$response = new HttpResponse();
$request = new HttpRequest(new HttpUri(''));
$request->header->account = 1;
$request->setData('invalid', '1');
$this->module->apiAccountUpdate($request, $response);
self::assertEquals(RequestStatusCode::R_400, $response->header->status);
}
}

View File

@ -0,0 +1,159 @@
<?php
/**
* Orange Management
*
* PHP Version 8.0
*
* @package tests
* @copyright Dennis Eichhorn
* @license OMS License 1.0
* @version 1.0.0
* @link https://orange-management.org
*/
declare(strict_types=1);
namespace Modules\Accounting\tests\Controller\Api;
use phpOMS\Message\Http\HttpRequest;
use phpOMS\Message\Http\HttpResponse;
use phpOMS\Message\Http\RequestStatusCode;
use phpOMS\Uri\HttpUri;
trait ApiControllerBatchEntryTrait
{
/**
* @covers Modules\Accounting\Controller\ApiController
* @group module
*/
public function testApiBatchEntryCreate() : void
{
$response = new HttpResponse();
$request = new HttpRequest(new HttpUri(''));
$request->header->account = 1;
$request->setData('name', '1');
$this->module->apiBatchEntryCreate($request, $response);
self::assertTrue(true);
//self::assertGreaterThan(0, $response->get('')['response']->getId());
}
/**
* @covers Modules\Accounting\Controller\ApiController
* @group module
*/
public function testApiBatchEntryCreateInvalid() : void
{
$response = new HttpResponse();
$request = new HttpRequest(new HttpUri(''));
$request->header->account = 1;
$request->setData('invalid', '1');
$this->module->apiBatchEntryCreate($request, $response);
self::assertEquals(RequestStatusCode::R_400, $response->header->status);
}
/**
* @covers Modules\Accounting\Controller\ApiController
* @group module
*/
public function testApiBatchEntryUpdate() : void
{
$response = new HttpResponse();
$request = new HttpRequest(new HttpUri(''));
$request->header->account = 1;
$request->setData('id', '1');
$this->module->apiBatchEntryUpdate($request, $response);
self::assertTrue(true);
//self::assertGreaterThan(0, $response->get('')['response']->getId());
}
/**
* @covers Modules\Accounting\Controller\ApiController
* @group module
*/
public function testApiBatchEntryUpdateInvalid() : void
{
$response = new HttpResponse();
$request = new HttpRequest(new HttpUri(''));
$request->header->account = 1;
$request->setData('invalid', '1');
$this->module->apiBatchEntryUpdate($request, $response);
self::assertEquals(RequestStatusCode::R_400, $response->header->status);
}
/**
* @covers Modules\Accounting\Controller\ApiController
* @group module
*/
public function testApiRecurringEntryCreate() : void
{
$response = new HttpResponse();
$request = new HttpRequest(new HttpUri(''));
$request->header->account = 1;
$request->setData('name', '1');
$this->module->apiRecurringEntryCreate($request, $response);
self::assertTrue(true);
//self::assertGreaterThan(0, $response->get('')['response']->getId());
}
/**
* @covers Modules\Accounting\Controller\ApiController
* @group module
*/
public function testApiRecurringEntryCreateInvalid() : void
{
$response = new HttpResponse();
$request = new HttpRequest(new HttpUri(''));
$request->header->account = 1;
$request->setData('invalid', '1');
$this->module->apiRecurringEntryCreate($request, $response);
self::assertEquals(RequestStatusCode::R_400, $response->header->status);
}
/**
* @covers Modules\Accounting\Controller\ApiController
* @group module
*/
public function testApiRecurringEntryUpdate() : void
{
$response = new HttpResponse();
$request = new HttpRequest(new HttpUri(''));
$request->header->account = 1;
$request->setData('id', '1');
$this->module->apiRecurringEntryUpdate($request, $response);
self::assertTrue(true);
//self::assertGreaterThan(0, $response->get('')['response']->getId());
}
/**
* @covers Modules\Accounting\Controller\ApiController
* @group module
*/
public function testApiRecurringEntryUpdateInvalid() : void
{
$response = new HttpResponse();
$request = new HttpRequest(new HttpUri(''));
$request->header->account = 1;
$request->setData('invalid', '1');
$this->module->apiRecurringEntryUpdate($request, $response);
self::assertEquals(RequestStatusCode::R_400, $response->header->status);
}
}

View File

@ -0,0 +1,91 @@
<?php
/**
* Orange Management
*
* PHP Version 8.0
*
* @package tests
* @copyright Dennis Eichhorn
* @license OMS License 1.0
* @version 1.0.0
* @link https://orange-management.org
*/
declare(strict_types=1);
namespace Modules\Accounting\tests\Controller\Api;
use phpOMS\Message\Http\HttpRequest;
use phpOMS\Message\Http\HttpResponse;
use phpOMS\Message\Http\RequestStatusCode;
use phpOMS\Uri\HttpUri;
trait ApiControllerCostCenterTrait
{
/**
* @covers Modules\Accounting\Controller\ApiController
* @group module
*/
public function testApiCostCenterCreate() : void
{
$response = new HttpResponse();
$request = new HttpRequest(new HttpUri(''));
$request->header->account = 1;
$request->setData('name', '1');
$this->module->apiCostCenterCreate($request, $response);
self::assertTrue(true);
//self::assertGreaterThan(0, $response->get('')['response']->getId());
}
/**
* @covers Modules\Accounting\Controller\ApiController
* @group module
*/
public function testApiCostCenterCreateInvalid() : void
{
$response = new HttpResponse();
$request = new HttpRequest(new HttpUri(''));
$request->header->account = 1;
$request->setData('invalid', '1');
$this->module->apiCostCenterCreate($request, $response);
self::assertEquals(RequestStatusCode::R_400, $response->header->status);
}
/**
* @covers Modules\Accounting\Controller\ApiController
* @group module
*/
public function testApiCostCenterUpdate() : void
{
$response = new HttpResponse();
$request = new HttpRequest(new HttpUri(''));
$request->header->account = 1;
$request->setData('id', '1');
$this->module->apiCostCenterUpdate($request, $response);
self::assertTrue(true);
//self::assertGreaterThan(0, $response->get('')['response']->getId());
}
/**
* @covers Modules\Accounting\Controller\ApiController
* @group module
*/
public function testApiCostCenterUpdateInvalid() : void
{
$response = new HttpResponse();
$request = new HttpRequest(new HttpUri(''));
$request->header->account = 1;
$request->setData('invalid', '1');
$this->module->apiCostCenterUpdate($request, $response);
self::assertEquals(RequestStatusCode::R_400, $response->header->status);
}
}

View File

@ -0,0 +1,91 @@
<?php
/**
* Orange Management
*
* PHP Version 8.0
*
* @package tests
* @copyright Dennis Eichhorn
* @license OMS License 1.0
* @version 1.0.0
* @link https://orange-management.org
*/
declare(strict_types=1);
namespace Modules\Accounting\tests\Controller\Api;
use phpOMS\Message\Http\HttpRequest;
use phpOMS\Message\Http\HttpResponse;
use phpOMS\Message\Http\RequestStatusCode;
use phpOMS\Uri\HttpUri;
trait ApiControllerCostObjectTrait
{
/**
* @covers Modules\Accounting\Controller\ApiController
* @group module
*/
public function testApiCostObjectCreate() : void
{
$response = new HttpResponse();
$request = new HttpRequest(new HttpUri(''));
$request->header->account = 1;
$request->setData('name', '1');
$this->module->apiCostObjectCreate($request, $response);
self::assertTrue(true);
//self::assertGreaterThan(0, $response->get('')['response']->getId());
}
/**
* @covers Modules\Accounting\Controller\ApiController
* @group module
*/
public function testApiCostObjectCreateInvalid() : void
{
$response = new HttpResponse();
$request = new HttpRequest(new HttpUri(''));
$request->header->account = 1;
$request->setData('invalid', '1');
$this->module->apiCostObjectCreate($request, $response);
self::assertEquals(RequestStatusCode::R_400, $response->header->status);
}
/**
* @covers Modules\Accounting\Controller\ApiController
* @group module
*/
public function testApiCostObjectUpdate() : void
{
$response = new HttpResponse();
$request = new HttpRequest(new HttpUri(''));
$request->header->account = 1;
$request->setData('id', '1');
$this->module->apiCostObjectUpdate($request, $response);
self::assertTrue(true);
//self::assertGreaterThan(0, $response->get('')['response']->getId());
}
/**
* @covers Modules\Accounting\Controller\ApiController
* @group module
*/
public function testApiCostObjectUpdateInvalid() : void
{
$response = new HttpResponse();
$request = new HttpRequest(new HttpUri(''));
$request->header->account = 1;
$request->setData('invalid', '1');
$this->module->apiCostObjectUpdate($request, $response);
self::assertEquals(RequestStatusCode::R_400, $response->header->status);
}
}

View File

@ -0,0 +1,91 @@
<?php
/**
* Orange Management
*
* PHP Version 8.0
*
* @package tests
* @copyright Dennis Eichhorn
* @license OMS License 1.0
* @version 1.0.0
* @link https://orange-management.org
*/
declare(strict_types=1);
namespace Modules\Accounting\tests\Controller\Api;
use phpOMS\Message\Http\HttpRequest;
use phpOMS\Message\Http\HttpResponse;
use phpOMS\Message\Http\RequestStatusCode;
use phpOMS\Uri\HttpUri;
trait ApiControllerEntryTrait
{
/**
* @covers Modules\Accounting\Controller\ApiController
* @group module
*/
public function testApiEntryCreate() : void
{
$response = new HttpResponse();
$request = new HttpRequest(new HttpUri(''));
$request->header->account = 1;
$request->setData('name', '1');
$this->module->apiEntryCreate($request, $response);
self::assertTrue(true);
//self::assertGreaterThan(0, $response->get('')['response']->getId());
}
/**
* @covers Modules\Accounting\Controller\ApiController
* @group module
*/
public function testApiEntryCreateInvalidData() : void
{
$response = new HttpResponse();
$request = new HttpRequest(new HttpUri(''));
$request->header->account = 1;
$request->setData('invalid', '1');
$this->module->apiEntryCreate($request, $response);
self::assertEquals(RequestStatusCode::R_400, $response->header->status);
}
/**
* @covers Modules\Accounting\Controller\ApiController
* @group module
*/
public function testApiEntryUpdate() : void
{
$response = new HttpResponse();
$request = new HttpRequest(new HttpUri(''));
$request->header->account = 1;
$request->setData('id', '1');
$this->module->apiEntryUpdate($request, $response);
self::assertTrue(true);
//self::assertGreaterThan(0, $response->get('')['response']->getId());
}
/**
* @covers Modules\Accounting\Controller\ApiController
* @group module
*/
public function testApiEntryUpdateInvalidData() : void
{
$response = new HttpResponse();
$request = new HttpRequest(new HttpUri(''));
$request->header->account = 1;
$request->setData('invalid', '1');
$this->module->apiEntryUpdate($request, $response);
self::assertEquals(RequestStatusCode::R_400, $response->header->status);
}
}

View File

@ -0,0 +1,91 @@
<?php
/**
* Orange Management
*
* PHP Version 8.0
*
* @package tests
* @copyright Dennis Eichhorn
* @license OMS License 1.0
* @version 1.0.0
* @link https://orange-management.org
*/
declare(strict_types=1);
namespace Modules\Accounting\tests\Controller\Api;
use phpOMS\Message\Http\HttpRequest;
use phpOMS\Message\Http\HttpResponse;
use phpOMS\Message\Http\RequestStatusCode;
use phpOMS\Uri\HttpUri;
trait ApiControllerTaxKeyTrait
{
/**
* @covers Modules\Accounting\Controller\ApiController
* @group module
*/
public function testApiTaxKeyCreate() : void
{
$response = new HttpResponse();
$request = new HttpRequest(new HttpUri(''));
$request->header->account = 1;
$request->setData('name', '1');
$this->module->apiTaxKeyCreate($request, $response);
self::assertTrue(true);
//self::assertGreaterThan(0, $response->get('')['response']->getId());
}
/**
* @covers Modules\Accounting\Controller\ApiController
* @group module
*/
public function testApiTaxKeyCreateInvalid() : void
{
$response = new HttpResponse();
$request = new HttpRequest(new HttpUri(''));
$request->header->account = 1;
$request->setData('invalid', '1');
$this->module->apiTaxKeyCreate($request, $response);
self::assertEquals(RequestStatusCode::R_400, $response->header->status);
}
/**
* @covers Modules\Accounting\Controller\ApiController
* @group module
*/
public function testApiTaxKeyUpdate() : void
{
$response = new HttpResponse();
$request = new HttpRequest(new HttpUri(''));
$request->header->account = 1;
$request->setData('id', '1');
$this->module->apiTaxKeyUpdate($request, $response);
self::assertTrue(true);
//self::assertGreaterThan(0, $response->get('')['response']->getId());
}
/**
* @covers Modules\Accounting\Controller\ApiController
* @group module
*/
public function testApiTaxKeyUpdateInvalid() : void
{
$response = new HttpResponse();
$request = new HttpRequest(new HttpUri(''));
$request->header->account = 1;
$request->setData('invalid', '1');
$this->module->apiTaxKeyUpdate($request, $response);
self::assertEquals(RequestStatusCode::R_400, $response->header->status);
}
}

View File

@ -0,0 +1,99 @@
<?php
/**
* Orange Management
*
* PHP Version 8.0
*
* @package tests
* @copyright Dennis Eichhorn
* @license OMS License 1.0
* @version 1.0.0
* @link https://orange-management.org
*/
declare(strict_types=1);
namespace Modules\Accounting\tests\Controller;
use Model\CoreSettings;
use Modules\Admin\Models\AccountPermission;
use Modules\Accounting\tests\Controller\Api\ApiControllerAccountTrait;
use Modules\Accounting\tests\Controller\Api\ApiControllerCostCenterTrait;
use Modules\Accounting\tests\Controller\Api\ApiControllerCostObjectTrait;
use Modules\Accounting\tests\Controller\Api\ApiControllerTaxKeyTrait;
use Modules\Accounting\tests\Controller\Api\ApiControllerEntryTrait;
use Modules\Accounting\tests\Controller\Api\ApiControllerBatchEntryTrait;
use phpOMS\Account\Account;
use phpOMS\Account\AccountManager;
use phpOMS\Account\PermissionType;
use phpOMS\Application\ApplicationAbstract;
use phpOMS\Dispatcher\Dispatcher;
use phpOMS\Event\EventManager;
use phpOMS\Module\ModuleAbstract;
use phpOMS\Module\ModuleManager;
use phpOMS\Router\WebRouter;
use phpOMS\Utils\TestUtils;
/**
* @testdox Modules\Accounting\tests\Controller\ApiControllerTest: Accounting api controller
*
* @internal
*/
class ApiControllerTest extends \PHPUnit\Framework\TestCase
{
protected ApplicationAbstract $app;
/**
* @var \Modules\Accounting\Controller\ApiController
*/
protected ModuleAbstract $module;
/**
* {@inheritdoc}
*/
protected function setUp() : void
{
$this->app = new class() extends ApplicationAbstract
{
protected string $appName = 'Api';
};
$this->app->dbPool = $GLOBALS['dbpool'];
$this->app->orgId = 1;
$this->app->accountManager = new AccountManager($GLOBALS['session']);
$this->app->appSettings = new CoreSettings();
$this->app->moduleManager = new ModuleManager($this->app, __DIR__ . '/../../../../Modules/');
$this->app->dispatcher = new Dispatcher($this->app);
$this->app->eventManager = new EventManager($this->app->dispatcher);
$this->app->eventManager->importFromFile(__DIR__ . '/../../../../Web/Api/Hooks.php');
$account = new Account();
TestUtils::setMember($account, 'id', 1);
$permission = new AccountPermission();
$permission->setUnit(1);
$permission->setApp('backend');
$permission->setPermission(
PermissionType::READ
| PermissionType::CREATE
| PermissionType::MODIFY
| PermissionType::DELETE
| PermissionType::PERMISSION
);
$account->addPermission($permission);
$this->app->accountManager->add($account);
$this->app->router = new WebRouter();
$this->module = $this->app->moduleManager->get('Accounting');
TestUtils::setMember($this->module, 'app', $this->app);
}
use ApiControllerAccountTrait;
use ApiControllerCostCenterTrait;
use ApiControllerCostObjectTrait;
use ApiControllerTaxKeyTrait;
use ApiControllerEntryTrait;
use ApiControllerBatchEntryTrait;
}

View File

@ -0,0 +1,44 @@
<?php
/**
* Orange Management
*
* PHP Version 8.0
*
* @package tests
* @copyright Dennis Eichhorn
* @license OMS License 1.0
* @version 1.0.0
* @link https://orange-management.org
*/
declare(strict_types=1);
namespace Modules\Accounting\tests\Models;
use Modules\Accounting\Models\AccountAbstract;
/**
* @testdox Modules\Accounting\tests\Models\AccountAbstractTest: Account abstraction
*
* @internal
*/
class AccountAbstractTest extends \PHPUnit\Framework\TestCase
{
private $class = null;
/**
* {@inheritdoc}
*/
protected function setUp() : void
{
$this->class = new class() extends AccountAbstract {
};
}
public function testDefault() : void
{
self::assertEquals(0, $this->class->getId());
self::assertEquals(null, $this->class->summaryAccount);
self::assertEquals(null, $this->class->getEntryById(0));
self::assertEquals([], $this->class->getEntriesByDate(new \DateTime()));
}
}

View File

@ -0,0 +1,100 @@
<?php
/**
* Orange Management
*
* PHP Version 8.0
*
* @package tests
* @copyright Dennis Eichhorn
* @license OMS License 1.0
* @version 1.0.0
* @link https://orange-management.org
*/
declare(strict_types=1);
namespace Modules\Accounting\tests\Models;
use Modules\Accounting\Models\BalanceL11n;
use phpOMS\Localization\ISO639x1Enum;
/**
* @internal
*/
class BalanceL11nTest extends \PHPUnit\Framework\TestCase
{
private BalanceL11n $l11n;
/**
* {@inheritdoc}
*/
protected function setUp() : void
{
$this->l11n = new BalanceL11n();
}
/**
* @covers Modules\Accounting\Models\BalanceL11n
* @group module
*/
public function testDefault() : void
{
self::assertEquals(0, $this->l11n->getId());
self::assertEquals('', $this->l11n->name);
self::assertEquals('', $this->l11n->description);
self::assertEquals(0, $this->l11n->balance);
self::assertEquals(ISO639x1Enum::_EN, $this->l11n->getLanguage());
}
/**
* @covers Modules\Accounting\Models\BalanceL11n
* @group module
*/
public function testNameInputOutput() : void
{
$this->l11n->name = 'TestName';
self::assertEquals('TestName', $this->l11n->name);
}
/**
* @covers Modules\Accounting\Models\BalanceL11n
* @group module
*/
public function testDescriptionInputOutput() : void
{
$this->l11n->description = 'TestDescription';
self::assertEquals('TestDescription', $this->l11n->description);
}
/**
* @covers Modules\Accounting\Models\BalanceL11n
* @group module
*/
public function testLanguageInputOutput() : void
{
$this->l11n->setLanguage(ISO639x1Enum::_DE);
self::assertEquals(ISO639x1Enum::_DE, $this->l11n->getLanguage());
}
/**
* @covers Modules\Accounting\Models\BalanceL11n
* @group module
*/
public function testSerialize() : void
{
$this->l11n->name = 'Title';
$this->l11n->description = 'Description';
$this->l11n->balance = 2;
$this->l11n->setLanguage(ISO639x1Enum::_DE);
self::assertEquals(
[
'id' => 0,
'name' => 'Title',
'description' => 'Description',
'balance' => 2,
'language' => ISO639x1Enum::_DE,
],
$this->l11n->jsonSerialize()
);
}
}

View File

@ -0,0 +1,42 @@
<?php
/**
* Orange Management
*
* PHP Version 8.0
*
* @package tests
* @copyright Dennis Eichhorn
* @license OMS License 1.0
* @version 1.0.0
* @link https://orange-management.org
*/
declare(strict_types=1);
namespace Modules\Accounting\tests\Models;
use Modules\Accounting\Models\Balance;
/**
* @internal
*/
class BalanceTest extends \PHPUnit\Framework\TestCase
{
private Balance $balance;
/**
* {@inheritdoc}
*/
protected function setUp() : void
{
$this->balance = new Balance();
}
/**
* @covers Modules\Accounting\Models\Balance
* @group module
*/
public function testDefault() : void
{
self::assertEquals(0, $this->balance->getId());
}
}

View File

@ -0,0 +1,100 @@
<?php
/**
* Orange Management
*
* PHP Version 8.0
*
* @package tests
* @copyright Dennis Eichhorn
* @license OMS License 1.0
* @version 1.0.0
* @link https://orange-management.org
*/
declare(strict_types=1);
namespace Modules\Accounting\tests\Models;
use Modules\Accounting\Models\CostCenterL11n;
use phpOMS\Localization\ISO639x1Enum;
/**
* @internal
*/
class CostCenterL11nTest extends \PHPUnit\Framework\TestCase
{
private CostCenterL11n $l11n;
/**
* {@inheritdoc}
*/
protected function setUp() : void
{
$this->l11n = new CostCenterL11n();
}
/**
* @covers Modules\Accounting\Models\CostCenterL11n
* @group module
*/
public function testDefault() : void
{
self::assertEquals(0, $this->l11n->getId());
self::assertEquals('', $this->l11n->name);
self::assertEquals('', $this->l11n->description);
self::assertEquals(0, $this->l11n->costcenter);
self::assertEquals(ISO639x1Enum::_EN, $this->l11n->getLanguage());
}
/**
* @covers Modules\Accounting\Models\CostCenterL11n
* @group module
*/
public function testNameInputOutput() : void
{
$this->l11n->name = 'TestName';
self::assertEquals('TestName', $this->l11n->name);
}
/**
* @covers Modules\Accounting\Models\CostCenterL11n
* @group module
*/
public function testDescriptionInputOutput() : void
{
$this->l11n->description = 'TestDescription';
self::assertEquals('TestDescription', $this->l11n->description);
}
/**
* @covers Modules\Accounting\Models\CostCenterL11n
* @group module
*/
public function testLanguageInputOutput() : void
{
$this->l11n->setLanguage(ISO639x1Enum::_DE);
self::assertEquals(ISO639x1Enum::_DE, $this->l11n->getLanguage());
}
/**
* @covers Modules\Accounting\Models\CostCenterL11n
* @group module
*/
public function testSerialize() : void
{
$this->l11n->name = 'Title';
$this->l11n->description = 'Description';
$this->l11n->costcenter = 2;
$this->l11n->setLanguage(ISO639x1Enum::_DE);
self::assertEquals(
[
'id' => 0,
'name' => 'Title',
'description' => 'Description',
'costcenter' => 2,
'language' => ISO639x1Enum::_DE,
],
$this->l11n->jsonSerialize()
);
}
}

View File

@ -21,31 +21,25 @@ use Modules\Accounting\Models\CostCenter;
*/
class CostCenterTest extends \PHPUnit\Framework\TestCase
{
/**
* @covers Modules\Accounting\Models\CostCenter
* @group module
*/
public function testDefault() : void
{
$cc = new CostCenter();
private CostCenter $cc;
self::assertEquals(0, $cc->getId());
self::assertEquals('', $cc->l11n->name);
self::assertEquals('', $cc->code);
self::assertEquals('', $cc->l11n->description);
self::assertNull($cc->parent);
/**
* {@inheritdoc}
*/
protected function setUp() : void
{
$this->cc = new CostCenter();
}
/**
* @covers Modules\Accounting\Models\CostCenter
* @group module
*/
public function testNameInputOutput() : void
public function testDefault() : void
{
$cc = new CostCenter();
$cc->l11n->name = 'TestName';
self::assertEquals('TestName', $cc->l11n->name);
self::assertEquals(0, $this->cc->getId());
self::assertEquals('', $this->cc->code);
self::assertNull($this->cc->parent);
}
/**
@ -54,22 +48,8 @@ class CostCenterTest extends \PHPUnit\Framework\TestCase
*/
public function testCodeInputOutput() : void
{
$cc = new CostCenter();
$cc->code = 'TestCode';
self::assertEquals('TestCode', $cc->code);
}
/**
* @covers Modules\Accounting\Models\CostCenter
* @group module
*/
public function testDescriptionInputOutput() : void
{
$cc = new CostCenter();
$cc->l11n->description = 'TestDescription';
self::assertEquals('TestDescription', $cc->l11n->description);
$this->cc->code = 'TestCode';
self::assertEquals('TestCode', $this->cc->code);
}
/**
@ -78,9 +58,7 @@ class CostCenterTest extends \PHPUnit\Framework\TestCase
*/
public function testParentInputOutput() : void
{
$cc = new CostCenter();
$cc->parent = 1;
self::assertEquals(1, $cc->parent);
$this->cc->parent = 1;
self::assertEquals(1, $this->cc->parent);
}
}

View File

@ -0,0 +1,100 @@
<?php
/**
* Orange Management
*
* PHP Version 8.0
*
* @package tests
* @copyright Dennis Eichhorn
* @license OMS License 1.0
* @version 1.0.0
* @link https://orange-management.org
*/
declare(strict_types=1);
namespace Modules\Accounting\tests\Models;
use Modules\Accounting\Models\CostObjectL11n;
use phpOMS\Localization\ISO639x1Enum;
/**
* @internal
*/
class CostObjectL11nTest extends \PHPUnit\Framework\TestCase
{
private CostObjectL11n $l11n;
/**
* {@inheritdoc}
*/
protected function setUp() : void
{
$this->l11n = new CostObjectL11n();
}
/**
* @covers Modules\Accounting\Models\CostObjectL11n
* @group module
*/
public function testDefault() : void
{
self::assertEquals(0, $this->l11n->getId());
self::assertEquals('', $this->l11n->name);
self::assertEquals('', $this->l11n->description);
self::assertEquals(0, $this->l11n->costobject);
self::assertEquals(ISO639x1Enum::_EN, $this->l11n->getLanguage());
}
/**
* @covers Modules\Accounting\Models\CostObjectL11n
* @group module
*/
public function testNameInputOutput() : void
{
$this->l11n->name = 'TestName';
self::assertEquals('TestName', $this->l11n->name);
}
/**
* @covers Modules\Accounting\Models\CostObjectL11n
* @group module
*/
public function testDescriptionInputOutput() : void
{
$this->l11n->description = 'TestDescription';
self::assertEquals('TestDescription', $this->l11n->description);
}
/**
* @covers Modules\Accounting\Models\CostObjectL11n
* @group module
*/
public function testLanguageInputOutput() : void
{
$this->l11n->setLanguage(ISO639x1Enum::_DE);
self::assertEquals(ISO639x1Enum::_DE, $this->l11n->getLanguage());
}
/**
* @covers Modules\Accounting\Models\CostObjectL11n
* @group module
*/
public function testSerialize() : void
{
$this->l11n->name = 'Title';
$this->l11n->description = 'Description';
$this->l11n->costobject = 2;
$this->l11n->setLanguage(ISO639x1Enum::_DE);
self::assertEquals(
[
'id' => 0,
'name' => 'Title',
'description' => 'Description',
'costobject' => 2,
'language' => ISO639x1Enum::_DE,
],
$this->l11n->jsonSerialize()
);
}
}

View File

@ -21,31 +21,25 @@ use Modules\Accounting\Models\CostObject;
*/
class CostObjectTest extends \PHPUnit\Framework\TestCase
{
/**
* @covers Modules\Accounting\Models\CostObject
* @group module
*/
public function testDefault() : void
{
$co = new CostObject();
private CostObject $cc;
self::assertEquals(0, $co->getId());
self::assertEquals('', $co->l11n->name);
self::assertEquals('', $co->code);
self::assertEquals('', $co->l11n->description);
self::assertNull($co->parent);
/**
* {@inheritdoc}
*/
protected function setUp() : void
{
$this->cc = new CostObject();
}
/**
* @covers Modules\Accounting\Models\CostObject
* @group module
*/
public function testNameInputOutput() : void
public function testDefault() : void
{
$co = new CostObject();
$co->l11n->name = 'TestName';
self::assertEquals('TestName', $co->l11n->name);
self::assertEquals(0, $this->cc->getId());
self::assertEquals('', $this->cc->code);
self::assertNull($this->cc->parent);
}
/**
@ -54,22 +48,8 @@ class CostObjectTest extends \PHPUnit\Framework\TestCase
*/
public function testCodeInputOutput() : void
{
$co = new CostObject();
$co->code = 'TestCode';
self::assertEquals('TestCode', $co->code);
}
/**
* @covers Modules\Accounting\Models\CostObject
* @group module
*/
public function testDescriptionInputOutput() : void
{
$co = new CostObject();
$co->l11n->description = 'TestDescription';
self::assertEquals('TestDescription', $co->l11n->description);
$this->cc->code = 'TestCode';
self::assertEquals('TestCode', $this->cc->code);
}
/**
@ -78,9 +58,7 @@ class CostObjectTest extends \PHPUnit\Framework\TestCase
*/
public function testParentInputOutput() : void
{
$co = new CostObject();
$co->parent = 1;
self::assertEquals(1, $co->parent);
$this->cc->parent = 1;
self::assertEquals(1, $this->cc->parent);
}
}

View File

@ -0,0 +1,42 @@
<?php
/**
* Orange Management
*
* PHP Version 8.0
*
* @package tests
* @copyright Dennis Eichhorn
* @license OMS License 1.0
* @version 1.0.0
* @link https://orange-management.org
*/
declare(strict_types=1);
namespace Modules\Accounting\tests\Models;
use Modules\Accounting\Models\Creditor;
/**
* @internal
*/
class CreditorTest extends \PHPUnit\Framework\TestCase
{
private Creditor $creditor;
/**
* {@inheritdoc}
*/
protected function setUp() : void
{
$this->creditor = new Creditor();
}
/**
* @covers Modules\Accounting\Models\Creditor
* @group module
*/
public function testDefault() : void
{
self::assertEquals(0, $this->creditor->getId());
}
}

View File

@ -0,0 +1,42 @@
<?php
/**
* Orange Management
*
* PHP Version 8.0
*
* @package tests
* @copyright Dennis Eichhorn
* @license OMS License 1.0
* @version 1.0.0
* @link https://orange-management.org
*/
declare(strict_types=1);
namespace Modules\Accounting\tests\Models;
use Modules\Accounting\Models\Debitor;
/**
* @internal
*/
class DebitorTest extends \PHPUnit\Framework\TestCase
{
private Debitor $creditor;
/**
* {@inheritdoc}
*/
protected function setUp() : void
{
$this->creditor = new Debitor();
}
/**
* @covers Modules\Accounting\Models\Debitor
* @group module
*/
public function testDefault() : void
{
self::assertEquals(0, $this->creditor->getId());
}
}

View File

@ -0,0 +1,42 @@
<?php
/**
* Orange Management
*
* PHP Version 8.0
*
* @package tests
* @copyright Dennis Eichhorn
* @license OMS License 1.0
* @version 1.0.0
* @link https://orange-management.org
*/
declare(strict_types=1);
namespace Modules\Accounting\tests\Models;
use Modules\Accounting\Models\NullCostCenter;
/**
* @internal
*/
final class Null extends \PHPUnit\Framework\TestCase
{
/**
* @covers Modules\Accounting\Models\NullCostCenter
* @group framework
*/
public function testNull() : void
{
self::assertInstanceOf('\Modules\Accounting\Models\CostCenter', new NullCostCenter());
}
/**
* @covers Modules\Accounting\Models\NullCostCenter
* @group framework
*/
public function testId() : void
{
$null = new NullCostCenter(2);
self::assertEquals(2, $null->getId());
}
}

View File

@ -0,0 +1,42 @@
<?php
/**
* Orange Management
*
* PHP Version 8.0
*
* @package tests
* @copyright Dennis Eichhorn
* @license OMS License 1.0
* @version 1.0.0
* @link https://orange-management.org
*/
declare(strict_types=1);
namespace Modules\Accounting\tests\Models;
use Modules\Accounting\Models\NullCostCenter;
/**
* @internal
*/
final class NullCostCenterTest extends \PHPUnit\Framework\TestCase
{
/**
* @covers Modules\Accounting\Models\NullCostCenter
* @group framework
*/
public function testNull() : void
{
self::assertInstanceOf('\Modules\Accounting\Models\CostCenter', new NullCostCenter());
}
/**
* @covers Modules\Accounting\Models\NullCostCenter
* @group framework
*/
public function testId() : void
{
$null = new NullCostCenter(2);
self::assertEquals(2, $null->getId());
}
}

View File

@ -0,0 +1,42 @@
<?php
/**
* Orange Management
*
* PHP Version 8.0
*
* @package tests
* @copyright Dennis Eichhorn
* @license OMS License 1.0
* @version 1.0.0
* @link https://orange-management.org
*/
declare(strict_types=1);
namespace Modules\Accounting\tests\Models;
use Modules\Accounting\Models\NullCostObject;
/**
* @internal
*/
final class Null extends \PHPUnit\Framework\TestCase
{
/**
* @covers Modules\Accounting\Models\NullCostObject
* @group framework
*/
public function testNull() : void
{
self::assertInstanceOf('\Modules\Accounting\Models\CostObject', new NullCostObject());
}
/**
* @covers Modules\Accounting\Models\NullCostObject
* @group framework
*/
public function testId() : void
{
$null = new NullCostObject(2);
self::assertEquals(2, $null->getId());
}
}

View File

@ -0,0 +1,42 @@
<?php
/**
* Orange Management
*
* PHP Version 8.0
*
* @package tests
* @copyright Dennis Eichhorn
* @license OMS License 1.0
* @version 1.0.0
* @link https://orange-management.org
*/
declare(strict_types=1);
namespace Modules\Accounting\tests\Models;
use Modules\Accounting\Models\NullCostObject;
/**
* @internal
*/
final class NullCostObjectTest extends \PHPUnit\Framework\TestCase
{
/**
* @covers Modules\Accounting\Models\NullCostObject
* @group framework
*/
public function testNull() : void
{
self::assertInstanceOf('\Modules\Accounting\Models\CostObject', new NullCostObject());
}
/**
* @covers Modules\Accounting\Models\NullCostObject
* @group framework
*/
public function testId() : void
{
$null = new NullCostObject(2);
self::assertEquals(2, $null->getId());
}
}